github.com/annchain/OG@v0.0.9/vm/vm_test/contracts/o/TokenERC20.evm (about)

     1      /* "../contracts/token.sol":1164:2928  contract TokenERC20 is SafeMath {... */
     2    mstore(0x40, 0x80)
     3      /* "../contracts/token.sol":1277:1279  18 */
     4    0x12
     5      /* "../contracts/token.sol":1253:1279  uint8 public decimals = 18 */
     6    0x2
     7    exp(0x100, 0x0)
     8    dup2
     9    sload
    10    dup2
    11    0xff
    12    mul
    13    not
    14    and
    15    swap1
    16    dup4
    17    0xff
    18    and
    19    mul
    20    or
    21    swap1
    22    sstore
    23    pop
    24      /* "../contracts/token.sol":1520:1779  function TokenERC20(uint256 initialSupply, string tokenName, string tokenSymbol) public {... */
    25    callvalue
    26      /* "--CODEGEN--":8:17   */
    27    dup1
    28      /* "--CODEGEN--":5:7   */
    29    iszero
    30    tag_1
    31    jumpi
    32      /* "--CODEGEN--":30:31   */
    33    0x0
    34      /* "--CODEGEN--":27:28   */
    35    dup1
    36      /* "--CODEGEN--":20:32   */
    37    revert
    38      /* "--CODEGEN--":5:7   */
    39  tag_1:
    40      /* "../contracts/token.sol":1520:1779  function TokenERC20(uint256 initialSupply, string tokenName, string tokenSymbol) public {... */
    41    pop
    42    mload(0x40)
    43    sub(codesize, bytecodeSize)
    44    dup1
    45    bytecodeSize
    46    dup4
    47    codecopy
    48    dup2
    49    add
    50    dup1
    51    0x40
    52    mstore
    53    dup2
    54    add
    55    swap1
    56    dup1
    57    dup1
    58    mload
    59    swap1
    60    0x20
    61    add
    62    swap1
    63    swap3
    64    swap2
    65    swap1
    66    dup1
    67    mload
    68    dup3
    69    add
    70    swap3
    71    swap2
    72    swap1
    73    0x20
    74    add
    75    dup1
    76    mload
    77    dup3
    78    add
    79    swap3
    80    swap2
    81    swap1
    82    pop
    83    pop
    84    pop
    85      /* "../contracts/token.sol":1662:1670  decimals */
    86    0x2
    87    0x0
    88    swap1
    89    sload
    90    swap1
    91    0x100
    92    exp
    93    swap1
    94    div
    95    0xff
    96    and
    97      /* "../contracts/token.sol":1654:1671  uint256(decimals) */
    98    0xff
    99    and
   100      /* "../contracts/token.sol":1648:1650  10 */
   101    0xa
   102      /* "../contracts/token.sol":1648:1671  10 ** uint256(decimals) */
   103    exp
   104      /* "../contracts/token.sol":1632:1645  initialSupply */
   105    dup4
   106      /* "../contracts/token.sol":1632:1671  initialSupply * 10 ** uint256(decimals) */
   107    mul
   108      /* "../contracts/token.sol":1618:1629  totalSupply */
   109    0x3
   110      /* "../contracts/token.sol":1618:1671  totalSupply = initialSupply * 10 ** uint256(decimals) */
   111    dup2
   112    swap1
   113    sstore
   114    pop
   115      /* "../contracts/token.sol":1705:1716  totalSupply */
   116    sload(0x3)
   117      /* "../contracts/token.sol":1681:1690  balanceOf */
   118    0x4
   119      /* "../contracts/token.sol":1681:1702  balanceOf[msg.sender] */
   120    0x0
   121      /* "../contracts/token.sol":1691:1701  msg.sender */
   122    caller
   123      /* "../contracts/token.sol":1681:1702  balanceOf[msg.sender] */
   124    0xffffffffffffffffffffffffffffffffffffffff
   125    and
   126    0xffffffffffffffffffffffffffffffffffffffff
   127    and
   128    dup2
   129    mstore
   130    0x20
   131    add
   132    swap1
   133    dup2
   134    mstore
   135    0x20
   136    add
   137    0x0
   138    keccak256
   139      /* "../contracts/token.sol":1681:1716  balanceOf[msg.sender] = totalSupply */
   140    dup2
   141    swap1
   142    sstore
   143    pop
   144      /* "../contracts/token.sol":1733:1742  tokenName */
   145    dup2
   146      /* "../contracts/token.sol":1726:1730  name */
   147    0x0
   148      /* "../contracts/token.sol":1726:1742  name = tokenName */
   149    swap1
   150    dup1
   151    mload
   152    swap1
   153    0x20
   154    add
   155    swap1
   156    tag_4
   157    swap3
   158    swap2
   159    swap1
   160    jump	// in(tag_5)
   161  tag_4:
   162    pop
   163      /* "../contracts/token.sol":1761:1772  tokenSymbol */
   164    dup1
   165      /* "../contracts/token.sol":1752:1758  symbol */
   166    0x1
   167      /* "../contracts/token.sol":1752:1772  symbol = tokenSymbol */
   168    swap1
   169    dup1
   170    mload
   171    swap1
   172    0x20
   173    add
   174    swap1
   175    tag_6
   176    swap3
   177    swap2
   178    swap1
   179    jump	// in(tag_5)
   180  tag_6:
   181    pop
   182      /* "../contracts/token.sol":1520:1779  function TokenERC20(uint256 initialSupply, string tokenName, string tokenSymbol) public {... */
   183    pop
   184    pop
   185    pop
   186      /* "../contracts/token.sol":1164:2928  contract TokenERC20 is SafeMath {... */
   187    jump(tag_7)
   188  tag_5:
   189    dup3
   190    dup1
   191    sload
   192    0x1
   193    dup2
   194    0x1
   195    and
   196    iszero
   197    0x100
   198    mul
   199    sub
   200    and
   201    0x2
   202    swap1
   203    div
   204    swap1
   205    0x0
   206    mstore
   207    keccak256(0x0, 0x20)
   208    swap1
   209    0x1f
   210    add
   211    0x20
   212    swap1
   213    div
   214    dup2
   215    add
   216    swap3
   217    dup3
   218    0x1f
   219    lt
   220    tag_9
   221    jumpi
   222    dup1
   223    mload
   224    not(0xff)
   225    and
   226    dup4
   227    dup1
   228    add
   229    or
   230    dup6
   231    sstore
   232    jump(tag_8)
   233  tag_9:
   234    dup3
   235    dup1
   236    add
   237    0x1
   238    add
   239    dup6
   240    sstore
   241    dup3
   242    iszero
   243    tag_8
   244    jumpi
   245    swap2
   246    dup3
   247    add
   248  tag_10:
   249    dup3
   250    dup2
   251    gt
   252    iszero
   253    tag_11
   254    jumpi
   255    dup3
   256    mload
   257    dup3
   258    sstore
   259    swap2
   260    0x20
   261    add
   262    swap2
   263    swap1
   264    0x1
   265    add
   266    swap1
   267    jump(tag_10)
   268  tag_11:
   269  tag_8:
   270    pop
   271    swap1
   272    pop
   273    tag_12
   274    swap2
   275    swap1
   276    jump	// in(tag_13)
   277  tag_12:
   278    pop
   279    swap1
   280    jump	// out
   281  tag_13:
   282    tag_14
   283    swap2
   284    swap1
   285  tag_15:
   286    dup1
   287    dup3
   288    gt
   289    iszero
   290    tag_16
   291    jumpi
   292    0x0
   293    dup2
   294    0x0
   295    swap1
   296    sstore
   297    pop
   298    0x1
   299    add
   300    jump(tag_15)
   301  tag_16:
   302    pop
   303    swap1
   304    jump
   305  tag_14:
   306    swap1
   307    jump	// out
   308  tag_7:
   309    dataSize(sub_0)
   310    dup1
   311    dataOffset(sub_0)
   312    0x0
   313    codecopy
   314    0x0
   315    return
   316  stop
   317  
   318  sub_0: assembly {
   319          /* "../contracts/token.sol":1164:2928  contract TokenERC20 is SafeMath {... */
   320        mstore(0x40, 0x80)
   321        jumpi(tag_1, lt(calldatasize, 0x4))
   322        calldataload(0x0)
   323        0x100000000000000000000000000000000000000000000000000000000
   324        swap1
   325        div
   326        0xffffffff
   327        and
   328        dup1
   329        0x6fdde03
   330        eq
   331        tag_2
   332        jumpi
   333        dup1
   334        0x95ea7b3
   335        eq
   336        tag_3
   337        jumpi
   338        dup1
   339        0x18160ddd
   340        eq
   341        tag_4
   342        jumpi
   343        dup1
   344        0x23b872dd
   345        eq
   346        tag_5
   347        jumpi
   348        dup1
   349        0x313ce567
   350        eq
   351        tag_6
   352        jumpi
   353        dup1
   354        0x70a08231
   355        eq
   356        tag_7
   357        jumpi
   358        dup1
   359        0x95d89b41
   360        eq
   361        tag_8
   362        jumpi
   363        dup1
   364        0xa9059cbb
   365        eq
   366        tag_9
   367        jumpi
   368        dup1
   369        0xdd62ed3e
   370        eq
   371        tag_10
   372        jumpi
   373      tag_1:
   374        0x0
   375        dup1
   376        revert
   377          /* "../contracts/token.sol":1203:1221  string public name */
   378      tag_2:
   379        callvalue
   380          /* "--CODEGEN--":8:17   */
   381        dup1
   382          /* "--CODEGEN--":5:7   */
   383        iszero
   384        tag_11
   385        jumpi
   386          /* "--CODEGEN--":30:31   */
   387        0x0
   388          /* "--CODEGEN--":27:28   */
   389        dup1
   390          /* "--CODEGEN--":20:32   */
   391        revert
   392          /* "--CODEGEN--":5:7   */
   393      tag_11:
   394          /* "../contracts/token.sol":1203:1221  string public name */
   395        pop
   396        tag_12
   397        jump(tag_13)
   398      tag_12:
   399        mload(0x40)
   400        dup1
   401        dup1
   402        0x20
   403        add
   404        dup3
   405        dup2
   406        sub
   407        dup3
   408        mstore
   409        dup4
   410        dup2
   411        dup2
   412        mload
   413        dup2
   414        mstore
   415        0x20
   416        add
   417        swap2
   418        pop
   419        dup1
   420        mload
   421        swap1
   422        0x20
   423        add
   424        swap1
   425        dup1
   426        dup4
   427        dup4
   428          /* "--CODEGEN--":23:24   */
   429        0x0
   430          /* "--CODEGEN--":8:108   */
   431      tag_14:
   432          /* "--CODEGEN--":33:36   */
   433        dup4
   434          /* "--CODEGEN--":30:31   */
   435        dup2
   436          /* "--CODEGEN--":27:37   */
   437        lt
   438          /* "--CODEGEN--":8:108   */
   439        iszero
   440        tag_15
   441        jumpi
   442          /* "--CODEGEN--":99:100   */
   443        dup1
   444          /* "--CODEGEN--":94:97   */
   445        dup3
   446          /* "--CODEGEN--":90:101   */
   447        add
   448          /* "--CODEGEN--":84:102   */
   449        mload
   450          /* "--CODEGEN--":80:81   */
   451        dup2
   452          /* "--CODEGEN--":75:78   */
   453        dup5
   454          /* "--CODEGEN--":71:82   */
   455        add
   456          /* "--CODEGEN--":64:103   */
   457        mstore
   458          /* "--CODEGEN--":52:54   */
   459        0x20
   460          /* "--CODEGEN--":49:50   */
   461        dup2
   462          /* "--CODEGEN--":45:55   */
   463        add
   464          /* "--CODEGEN--":40:55   */
   465        swap1
   466        pop
   467          /* "--CODEGEN--":8:108   */
   468        jump(tag_14)
   469      tag_15:
   470          /* "--CODEGEN--":12:26   */
   471        pop
   472          /* "../contracts/token.sol":1203:1221  string public name */
   473        pop
   474        pop
   475        pop
   476        swap1
   477        pop
   478        swap1
   479        dup2
   480        add
   481        swap1
   482        0x1f
   483        and
   484        dup1
   485        iszero
   486        tag_17
   487        jumpi
   488        dup1
   489        dup3
   490        sub
   491        dup1
   492        mload
   493        0x1
   494        dup4
   495        0x20
   496        sub
   497        0x100
   498        exp
   499        sub
   500        not
   501        and
   502        dup2
   503        mstore
   504        0x20
   505        add
   506        swap2
   507        pop
   508      tag_17:
   509        pop
   510        swap3
   511        pop
   512        pop
   513        pop
   514        mload(0x40)
   515        dup1
   516        swap2
   517        sub
   518        swap1
   519        return
   520          /* "../contracts/token.sol":2767:2926  function approve(address _spender, uint256 _value) public returns (bool success) {... */
   521      tag_3:
   522        callvalue
   523          /* "--CODEGEN--":8:17   */
   524        dup1
   525          /* "--CODEGEN--":5:7   */
   526        iszero
   527        tag_18
   528        jumpi
   529          /* "--CODEGEN--":30:31   */
   530        0x0
   531          /* "--CODEGEN--":27:28   */
   532        dup1
   533          /* "--CODEGEN--":20:32   */
   534        revert
   535          /* "--CODEGEN--":5:7   */
   536      tag_18:
   537          /* "../contracts/token.sol":2767:2926  function approve(address _spender, uint256 _value) public returns (bool success) {... */
   538        pop
   539        tag_19
   540        0x4
   541        dup1
   542        calldatasize
   543        sub
   544        dup2
   545        add
   546        swap1
   547        dup1
   548        dup1
   549        calldataload
   550        0xffffffffffffffffffffffffffffffffffffffff
   551        and
   552        swap1
   553        0x20
   554        add
   555        swap1
   556        swap3
   557        swap2
   558        swap1
   559        dup1
   560        calldataload
   561        swap1
   562        0x20
   563        add
   564        swap1
   565        swap3
   566        swap2
   567        swap1
   568        pop
   569        pop
   570        pop
   571        jump(tag_20)
   572      tag_19:
   573        mload(0x40)
   574        dup1
   575        dup3
   576        iszero
   577        iszero
   578        iszero
   579        iszero
   580        dup2
   581        mstore
   582        0x20
   583        add
   584        swap2
   585        pop
   586        pop
   587        mload(0x40)
   588        dup1
   589        swap2
   590        sub
   591        swap1
   592        return
   593          /* "../contracts/token.sol":1285:1311  uint256 public totalSupply */
   594      tag_4:
   595        callvalue
   596          /* "--CODEGEN--":8:17   */
   597        dup1
   598          /* "--CODEGEN--":5:7   */
   599        iszero
   600        tag_21
   601        jumpi
   602          /* "--CODEGEN--":30:31   */
   603        0x0
   604          /* "--CODEGEN--":27:28   */
   605        dup1
   606          /* "--CODEGEN--":20:32   */
   607        revert
   608          /* "--CODEGEN--":5:7   */
   609      tag_21:
   610          /* "../contracts/token.sol":1285:1311  uint256 public totalSupply */
   611        pop
   612        tag_22
   613        jump(tag_23)
   614      tag_22:
   615        mload(0x40)
   616        dup1
   617        dup3
   618        dup2
   619        mstore
   620        0x20
   621        add
   622        swap2
   623        pop
   624        pop
   625        mload(0x40)
   626        dup1
   627        swap2
   628        sub
   629        swap1
   630        return
   631          /* "../contracts/token.sol":2446:2761  function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {... */
   632      tag_5:
   633        callvalue
   634          /* "--CODEGEN--":8:17   */
   635        dup1
   636          /* "--CODEGEN--":5:7   */
   637        iszero
   638        tag_24
   639        jumpi
   640          /* "--CODEGEN--":30:31   */
   641        0x0
   642          /* "--CODEGEN--":27:28   */
   643        dup1
   644          /* "--CODEGEN--":20:32   */
   645        revert
   646          /* "--CODEGEN--":5:7   */
   647      tag_24:
   648          /* "../contracts/token.sol":2446:2761  function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {... */
   649        pop
   650        tag_25
   651        0x4
   652        dup1
   653        calldatasize
   654        sub
   655        dup2
   656        add
   657        swap1
   658        dup1
   659        dup1
   660        calldataload
   661        0xffffffffffffffffffffffffffffffffffffffff
   662        and
   663        swap1
   664        0x20
   665        add
   666        swap1
   667        swap3
   668        swap2
   669        swap1
   670        dup1
   671        calldataload
   672        0xffffffffffffffffffffffffffffffffffffffff
   673        and
   674        swap1
   675        0x20
   676        add
   677        swap1
   678        swap3
   679        swap2
   680        swap1
   681        dup1
   682        calldataload
   683        swap1
   684        0x20
   685        add
   686        swap1
   687        swap3
   688        swap2
   689        swap1
   690        pop
   691        pop
   692        pop
   693        jump(tag_26)
   694      tag_25:
   695        mload(0x40)
   696        dup1
   697        dup3
   698        iszero
   699        iszero
   700        iszero
   701        iszero
   702        dup2
   703        mstore
   704        0x20
   705        add
   706        swap2
   707        pop
   708        pop
   709        mload(0x40)
   710        dup1
   711        swap2
   712        sub
   713        swap1
   714        return
   715          /* "../contracts/token.sol":1253:1279  uint8 public decimals = 18 */
   716      tag_6:
   717        callvalue
   718          /* "--CODEGEN--":8:17   */
   719        dup1
   720          /* "--CODEGEN--":5:7   */
   721        iszero
   722        tag_27
   723        jumpi
   724          /* "--CODEGEN--":30:31   */
   725        0x0
   726          /* "--CODEGEN--":27:28   */
   727        dup1
   728          /* "--CODEGEN--":20:32   */
   729        revert
   730          /* "--CODEGEN--":5:7   */
   731      tag_27:
   732          /* "../contracts/token.sol":1253:1279  uint8 public decimals = 18 */
   733        pop
   734        tag_28
   735        jump(tag_29)
   736      tag_28:
   737        mload(0x40)
   738        dup1
   739        dup3
   740        0xff
   741        and
   742        0xff
   743        and
   744        dup2
   745        mstore
   746        0x20
   747        add
   748        swap2
   749        pop
   750        pop
   751        mload(0x40)
   752        dup1
   753        swap2
   754        sub
   755        swap1
   756        return
   757          /* "../contracts/token.sol":1318:1363  mapping (address => uint256) public balanceOf */
   758      tag_7:
   759        callvalue
   760          /* "--CODEGEN--":8:17   */
   761        dup1
   762          /* "--CODEGEN--":5:7   */
   763        iszero
   764        tag_30
   765        jumpi
   766          /* "--CODEGEN--":30:31   */
   767        0x0
   768          /* "--CODEGEN--":27:28   */
   769        dup1
   770          /* "--CODEGEN--":20:32   */
   771        revert
   772          /* "--CODEGEN--":5:7   */
   773      tag_30:
   774          /* "../contracts/token.sol":1318:1363  mapping (address => uint256) public balanceOf */
   775        pop
   776        tag_31
   777        0x4
   778        dup1
   779        calldatasize
   780        sub
   781        dup2
   782        add
   783        swap1
   784        dup1
   785        dup1
   786        calldataload
   787        0xffffffffffffffffffffffffffffffffffffffff
   788        and
   789        swap1
   790        0x20
   791        add
   792        swap1
   793        swap3
   794        swap2
   795        swap1
   796        pop
   797        pop
   798        pop
   799        jump(tag_32)
   800      tag_31:
   801        mload(0x40)
   802        dup1
   803        dup3
   804        dup2
   805        mstore
   806        0x20
   807        add
   808        swap2
   809        pop
   810        pop
   811        mload(0x40)
   812        dup1
   813        swap2
   814        sub
   815        swap1
   816        return
   817          /* "../contracts/token.sol":1227:1247  string public symbol */
   818      tag_8:
   819        callvalue
   820          /* "--CODEGEN--":8:17   */
   821        dup1
   822          /* "--CODEGEN--":5:7   */
   823        iszero
   824        tag_33
   825        jumpi
   826          /* "--CODEGEN--":30:31   */
   827        0x0
   828          /* "--CODEGEN--":27:28   */
   829        dup1
   830          /* "--CODEGEN--":20:32   */
   831        revert
   832          /* "--CODEGEN--":5:7   */
   833      tag_33:
   834          /* "../contracts/token.sol":1227:1247  string public symbol */
   835        pop
   836        tag_34
   837        jump(tag_35)
   838      tag_34:
   839        mload(0x40)
   840        dup1
   841        dup1
   842        0x20
   843        add
   844        dup3
   845        dup2
   846        sub
   847        dup3
   848        mstore
   849        dup4
   850        dup2
   851        dup2
   852        mload
   853        dup2
   854        mstore
   855        0x20
   856        add
   857        swap2
   858        pop
   859        dup1
   860        mload
   861        swap1
   862        0x20
   863        add
   864        swap1
   865        dup1
   866        dup4
   867        dup4
   868          /* "--CODEGEN--":23:24   */
   869        0x0
   870          /* "--CODEGEN--":8:108   */
   871      tag_36:
   872          /* "--CODEGEN--":33:36   */
   873        dup4
   874          /* "--CODEGEN--":30:31   */
   875        dup2
   876          /* "--CODEGEN--":27:37   */
   877        lt
   878          /* "--CODEGEN--":8:108   */
   879        iszero
   880        tag_37
   881        jumpi
   882          /* "--CODEGEN--":99:100   */
   883        dup1
   884          /* "--CODEGEN--":94:97   */
   885        dup3
   886          /* "--CODEGEN--":90:101   */
   887        add
   888          /* "--CODEGEN--":84:102   */
   889        mload
   890          /* "--CODEGEN--":80:81   */
   891        dup2
   892          /* "--CODEGEN--":75:78   */
   893        dup5
   894          /* "--CODEGEN--":71:82   */
   895        add
   896          /* "--CODEGEN--":64:103   */
   897        mstore
   898          /* "--CODEGEN--":52:54   */
   899        0x20
   900          /* "--CODEGEN--":49:50   */
   901        dup2
   902          /* "--CODEGEN--":45:55   */
   903        add
   904          /* "--CODEGEN--":40:55   */
   905        swap1
   906        pop
   907          /* "--CODEGEN--":8:108   */
   908        jump(tag_36)
   909      tag_37:
   910          /* "--CODEGEN--":12:26   */
   911        pop
   912          /* "../contracts/token.sol":1227:1247  string public symbol */
   913        pop
   914        pop
   915        pop
   916        swap1
   917        pop
   918        swap1
   919        dup2
   920        add
   921        swap1
   922        0x1f
   923        and
   924        dup1
   925        iszero
   926        tag_39
   927        jumpi
   928        dup1
   929        dup3
   930        sub
   931        dup1
   932        mload
   933        0x1
   934        dup4
   935        0x20
   936        sub
   937        0x100
   938        exp
   939        sub
   940        not
   941        and
   942        dup2
   943        mstore
   944        0x20
   945        add
   946        swap2
   947        pop
   948      tag_39:
   949        pop
   950        swap3
   951        pop
   952        pop
   953        pop
   954        mload(0x40)
   955        dup1
   956        swap2
   957        sub
   958        swap1
   959        return
   960          /* "../contracts/token.sol":2335:2440  function transfer(address _to, uint256 _value) public {... */
   961      tag_9:
   962        callvalue
   963          /* "--CODEGEN--":8:17   */
   964        dup1
   965          /* "--CODEGEN--":5:7   */
   966        iszero
   967        tag_40
   968        jumpi
   969          /* "--CODEGEN--":30:31   */
   970        0x0
   971          /* "--CODEGEN--":27:28   */
   972        dup1
   973          /* "--CODEGEN--":20:32   */
   974        revert
   975          /* "--CODEGEN--":5:7   */
   976      tag_40:
   977          /* "../contracts/token.sol":2335:2440  function transfer(address _to, uint256 _value) public {... */
   978        pop
   979        tag_41
   980        0x4
   981        dup1
   982        calldatasize
   983        sub
   984        dup2
   985        add
   986        swap1
   987        dup1
   988        dup1
   989        calldataload
   990        0xffffffffffffffffffffffffffffffffffffffff
   991        and
   992        swap1
   993        0x20
   994        add
   995        swap1
   996        swap3
   997        swap2
   998        swap1
   999        dup1
  1000        calldataload
  1001        swap1
  1002        0x20
  1003        add
  1004        swap1
  1005        swap3
  1006        swap2
  1007        swap1
  1008        pop
  1009        pop
  1010        pop
  1011        jump(tag_42)
  1012      tag_41:
  1013        stop
  1014          /* "../contracts/token.sol":1369:1435  mapping (address => mapping (address => uint256)) public allowance */
  1015      tag_10:
  1016        callvalue
  1017          /* "--CODEGEN--":8:17   */
  1018        dup1
  1019          /* "--CODEGEN--":5:7   */
  1020        iszero
  1021        tag_43
  1022        jumpi
  1023          /* "--CODEGEN--":30:31   */
  1024        0x0
  1025          /* "--CODEGEN--":27:28   */
  1026        dup1
  1027          /* "--CODEGEN--":20:32   */
  1028        revert
  1029          /* "--CODEGEN--":5:7   */
  1030      tag_43:
  1031          /* "../contracts/token.sol":1369:1435  mapping (address => mapping (address => uint256)) public allowance */
  1032        pop
  1033        tag_44
  1034        0x4
  1035        dup1
  1036        calldatasize
  1037        sub
  1038        dup2
  1039        add
  1040        swap1
  1041        dup1
  1042        dup1
  1043        calldataload
  1044        0xffffffffffffffffffffffffffffffffffffffff
  1045        and
  1046        swap1
  1047        0x20
  1048        add
  1049        swap1
  1050        swap3
  1051        swap2
  1052        swap1
  1053        dup1
  1054        calldataload
  1055        0xffffffffffffffffffffffffffffffffffffffff
  1056        and
  1057        swap1
  1058        0x20
  1059        add
  1060        swap1
  1061        swap3
  1062        swap2
  1063        swap1
  1064        pop
  1065        pop
  1066        pop
  1067        jump(tag_45)
  1068      tag_44:
  1069        mload(0x40)
  1070        dup1
  1071        dup3
  1072        dup2
  1073        mstore
  1074        0x20
  1075        add
  1076        swap2
  1077        pop
  1078        pop
  1079        mload(0x40)
  1080        dup1
  1081        swap2
  1082        sub
  1083        swap1
  1084        return
  1085          /* "../contracts/token.sol":1203:1221  string public name */
  1086      tag_13:
  1087        0x0
  1088        dup1
  1089        sload
  1090        0x1
  1091        dup2
  1092        0x1
  1093        and
  1094        iszero
  1095        0x100
  1096        mul
  1097        sub
  1098        and
  1099        0x2
  1100        swap1
  1101        div
  1102        dup1
  1103        0x1f
  1104        add
  1105        0x20
  1106        dup1
  1107        swap2
  1108        div
  1109        mul
  1110        0x20
  1111        add
  1112        mload(0x40)
  1113        swap1
  1114        dup2
  1115        add
  1116        0x40
  1117        mstore
  1118        dup1
  1119        swap3
  1120        swap2
  1121        swap1
  1122        dup2
  1123        dup2
  1124        mstore
  1125        0x20
  1126        add
  1127        dup3
  1128        dup1
  1129        sload
  1130        0x1
  1131        dup2
  1132        0x1
  1133        and
  1134        iszero
  1135        0x100
  1136        mul
  1137        sub
  1138        and
  1139        0x2
  1140        swap1
  1141        div
  1142        dup1
  1143        iszero
  1144        tag_46
  1145        jumpi
  1146        dup1
  1147        0x1f
  1148        lt
  1149        tag_47
  1150        jumpi
  1151        0x100
  1152        dup1
  1153        dup4
  1154        sload
  1155        div
  1156        mul
  1157        dup4
  1158        mstore
  1159        swap2
  1160        0x20
  1161        add
  1162        swap2
  1163        jump(tag_46)
  1164      tag_47:
  1165        dup3
  1166        add
  1167        swap2
  1168        swap1
  1169        0x0
  1170        mstore
  1171        keccak256(0x0, 0x20)
  1172        swap1
  1173      tag_48:
  1174        dup2
  1175        sload
  1176        dup2
  1177        mstore
  1178        swap1
  1179        0x1
  1180        add
  1181        swap1
  1182        0x20
  1183        add
  1184        dup1
  1185        dup4
  1186        gt
  1187        tag_48
  1188        jumpi
  1189        dup3
  1190        swap1
  1191        sub
  1192        0x1f
  1193        and
  1194        dup3
  1195        add
  1196        swap2
  1197      tag_46:
  1198        pop
  1199        pop
  1200        pop
  1201        pop
  1202        pop
  1203        dup2
  1204        jump	// out
  1205          /* "../contracts/token.sol":2767:2926  function approve(address _spender, uint256 _value) public returns (bool success) {... */
  1206      tag_20:
  1207          /* "../contracts/token.sol":2834:2846  bool success */
  1208        0x0
  1209          /* "../contracts/token.sol":2892:2898  _value */
  1210        dup2
  1211          /* "../contracts/token.sol":2858:2867  allowance */
  1212        0x5
  1213          /* "../contracts/token.sol":2858:2879  allowance[msg.sender] */
  1214        0x0
  1215          /* "../contracts/token.sol":2868:2878  msg.sender */
  1216        caller
  1217          /* "../contracts/token.sol":2858:2879  allowance[msg.sender] */
  1218        0xffffffffffffffffffffffffffffffffffffffff
  1219        and
  1220        0xffffffffffffffffffffffffffffffffffffffff
  1221        and
  1222        dup2
  1223        mstore
  1224        0x20
  1225        add
  1226        swap1
  1227        dup2
  1228        mstore
  1229        0x20
  1230        add
  1231        0x0
  1232        keccak256
  1233          /* "../contracts/token.sol":2858:2889  allowance[msg.sender][_spender] */
  1234        0x0
  1235          /* "../contracts/token.sol":2880:2888  _spender */
  1236        dup6
  1237          /* "../contracts/token.sol":2858:2889  allowance[msg.sender][_spender] */
  1238        0xffffffffffffffffffffffffffffffffffffffff
  1239        and
  1240        0xffffffffffffffffffffffffffffffffffffffff
  1241        and
  1242        dup2
  1243        mstore
  1244        0x20
  1245        add
  1246        swap1
  1247        dup2
  1248        mstore
  1249        0x20
  1250        add
  1251        0x0
  1252        keccak256
  1253          /* "../contracts/token.sol":2858:2898  allowance[msg.sender][_spender] = _value */
  1254        dup2
  1255        swap1
  1256        sstore
  1257        pop
  1258          /* "../contracts/token.sol":2915:2919  true */
  1259        0x1
  1260          /* "../contracts/token.sol":2908:2919  return true */
  1261        swap1
  1262        pop
  1263          /* "../contracts/token.sol":2767:2926  function approve(address _spender, uint256 _value) public returns (bool success) {... */
  1264        swap3
  1265        swap2
  1266        pop
  1267        pop
  1268        jump	// out
  1269          /* "../contracts/token.sol":1285:1311  uint256 public totalSupply */
  1270      tag_23:
  1271        sload(0x3)
  1272        dup2
  1273        jump	// out
  1274          /* "../contracts/token.sol":2446:2761  function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {... */
  1275      tag_26:
  1276          /* "../contracts/token.sol":2528:2540  bool success */
  1277        0x0
  1278          /* "../contracts/token.sol":2570:2579  allowance */
  1279        0x5
  1280          /* "../contracts/token.sol":2570:2586  allowance[_from] */
  1281        0x0
  1282          /* "../contracts/token.sol":2580:2585  _from */
  1283        dup6
  1284          /* "../contracts/token.sol":2570:2586  allowance[_from] */
  1285        0xffffffffffffffffffffffffffffffffffffffff
  1286        and
  1287        0xffffffffffffffffffffffffffffffffffffffff
  1288        and
  1289        dup2
  1290        mstore
  1291        0x20
  1292        add
  1293        swap1
  1294        dup2
  1295        mstore
  1296        0x20
  1297        add
  1298        0x0
  1299        keccak256
  1300          /* "../contracts/token.sol":2570:2598  allowance[_from][msg.sender] */
  1301        0x0
  1302          /* "../contracts/token.sol":2587:2597  msg.sender */
  1303        caller
  1304          /* "../contracts/token.sol":2570:2598  allowance[_from][msg.sender] */
  1305        0xffffffffffffffffffffffffffffffffffffffff
  1306        and
  1307        0xffffffffffffffffffffffffffffffffffffffff
  1308        and
  1309        dup2
  1310        mstore
  1311        0x20
  1312        add
  1313        swap1
  1314        dup2
  1315        mstore
  1316        0x20
  1317        add
  1318        0x0
  1319        keccak256
  1320        sload
  1321          /* "../contracts/token.sol":2560:2566  _value */
  1322        dup3
  1323          /* "../contracts/token.sol":2560:2598  _value <= allowance[_from][msg.sender] */
  1324        gt
  1325        iszero
  1326          /* "../contracts/token.sol":2552:2599  require(_value <= allowance[_from][msg.sender]) */
  1327        iszero
  1328        iszero
  1329        tag_51
  1330        jumpi
  1331        0x0
  1332        dup1
  1333        revert
  1334      tag_51:
  1335          /* "../contracts/token.sol":2640:2694  SafeMath.safeSub(allowance[_from][msg.sender], _value) */
  1336        tag_52
  1337          /* "../contracts/token.sol":2657:2666  allowance */
  1338        0x5
  1339          /* "../contracts/token.sol":2657:2673  allowance[_from] */
  1340        0x0
  1341          /* "../contracts/token.sol":2667:2672  _from */
  1342        dup7
  1343          /* "../contracts/token.sol":2657:2673  allowance[_from] */
  1344        0xffffffffffffffffffffffffffffffffffffffff
  1345        and
  1346        0xffffffffffffffffffffffffffffffffffffffff
  1347        and
  1348        dup2
  1349        mstore
  1350        0x20
  1351        add
  1352        swap1
  1353        dup2
  1354        mstore
  1355        0x20
  1356        add
  1357        0x0
  1358        keccak256
  1359          /* "../contracts/token.sol":2657:2685  allowance[_from][msg.sender] */
  1360        0x0
  1361          /* "../contracts/token.sol":2674:2684  msg.sender */
  1362        caller
  1363          /* "../contracts/token.sol":2657:2685  allowance[_from][msg.sender] */
  1364        0xffffffffffffffffffffffffffffffffffffffff
  1365        and
  1366        0xffffffffffffffffffffffffffffffffffffffff
  1367        and
  1368        dup2
  1369        mstore
  1370        0x20
  1371        add
  1372        swap1
  1373        dup2
  1374        mstore
  1375        0x20
  1376        add
  1377        0x0
  1378        keccak256
  1379        sload
  1380          /* "../contracts/token.sol":2687:2693  _value */
  1381        dup4
  1382          /* "../contracts/token.sol":2640:2656  SafeMath.safeSub */
  1383        tag_53
  1384          /* "../contracts/token.sol":2640:2694  SafeMath.safeSub(allowance[_from][msg.sender], _value) */
  1385        jump	// in
  1386      tag_52:
  1387          /* "../contracts/token.sol":2609:2618  allowance */
  1388        0x5
  1389          /* "../contracts/token.sol":2609:2625  allowance[_from] */
  1390        0x0
  1391          /* "../contracts/token.sol":2619:2624  _from */
  1392        dup7
  1393          /* "../contracts/token.sol":2609:2625  allowance[_from] */
  1394        0xffffffffffffffffffffffffffffffffffffffff
  1395        and
  1396        0xffffffffffffffffffffffffffffffffffffffff
  1397        and
  1398        dup2
  1399        mstore
  1400        0x20
  1401        add
  1402        swap1
  1403        dup2
  1404        mstore
  1405        0x20
  1406        add
  1407        0x0
  1408        keccak256
  1409          /* "../contracts/token.sol":2609:2637  allowance[_from][msg.sender] */
  1410        0x0
  1411          /* "../contracts/token.sol":2626:2636  msg.sender */
  1412        caller
  1413          /* "../contracts/token.sol":2609:2637  allowance[_from][msg.sender] */
  1414        0xffffffffffffffffffffffffffffffffffffffff
  1415        and
  1416        0xffffffffffffffffffffffffffffffffffffffff
  1417        and
  1418        dup2
  1419        mstore
  1420        0x20
  1421        add
  1422        swap1
  1423        dup2
  1424        mstore
  1425        0x20
  1426        add
  1427        0x0
  1428        keccak256
  1429          /* "../contracts/token.sol":2609:2694  allowance[_from][msg.sender] = SafeMath.safeSub(allowance[_from][msg.sender], _value) */
  1430        dup2
  1431        swap1
  1432        sstore
  1433        pop
  1434          /* "../contracts/token.sol":2704:2733  _transfer(_from, _to, _value) */
  1435        tag_54
  1436          /* "../contracts/token.sol":2714:2719  _from */
  1437        dup5
  1438          /* "../contracts/token.sol":2721:2724  _to */
  1439        dup5
  1440          /* "../contracts/token.sol":2726:2732  _value */
  1441        dup5
  1442          /* "../contracts/token.sol":2704:2713  _transfer */
  1443        tag_55
  1444          /* "../contracts/token.sol":2704:2733  _transfer(_from, _to, _value) */
  1445        jump	// in
  1446      tag_54:
  1447          /* "../contracts/token.sol":2750:2754  true */
  1448        0x1
  1449          /* "../contracts/token.sol":2743:2754  return true */
  1450        swap1
  1451        pop
  1452          /* "../contracts/token.sol":2446:2761  function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {... */
  1453        swap4
  1454        swap3
  1455        pop
  1456        pop
  1457        pop
  1458        jump	// out
  1459          /* "../contracts/token.sol":1253:1279  uint8 public decimals = 18 */
  1460      tag_29:
  1461        0x2
  1462        0x0
  1463        swap1
  1464        sload
  1465        swap1
  1466        0x100
  1467        exp
  1468        swap1
  1469        div
  1470        0xff
  1471        and
  1472        dup2
  1473        jump	// out
  1474          /* "../contracts/token.sol":1318:1363  mapping (address => uint256) public balanceOf */
  1475      tag_32:
  1476        mstore(0x20, 0x4)
  1477        dup1
  1478        0x0
  1479        mstore
  1480        keccak256(0x0, 0x40)
  1481        0x0
  1482        swap2
  1483        pop
  1484        swap1
  1485        pop
  1486        sload
  1487        dup2
  1488        jump	// out
  1489          /* "../contracts/token.sol":1227:1247  string public symbol */
  1490      tag_35:
  1491        0x1
  1492        dup1
  1493        sload
  1494        0x1
  1495        dup2
  1496        0x1
  1497        and
  1498        iszero
  1499        0x100
  1500        mul
  1501        sub
  1502        and
  1503        0x2
  1504        swap1
  1505        div
  1506        dup1
  1507        0x1f
  1508        add
  1509        0x20
  1510        dup1
  1511        swap2
  1512        div
  1513        mul
  1514        0x20
  1515        add
  1516        mload(0x40)
  1517        swap1
  1518        dup2
  1519        add
  1520        0x40
  1521        mstore
  1522        dup1
  1523        swap3
  1524        swap2
  1525        swap1
  1526        dup2
  1527        dup2
  1528        mstore
  1529        0x20
  1530        add
  1531        dup3
  1532        dup1
  1533        sload
  1534        0x1
  1535        dup2
  1536        0x1
  1537        and
  1538        iszero
  1539        0x100
  1540        mul
  1541        sub
  1542        and
  1543        0x2
  1544        swap1
  1545        div
  1546        dup1
  1547        iszero
  1548        tag_56
  1549        jumpi
  1550        dup1
  1551        0x1f
  1552        lt
  1553        tag_57
  1554        jumpi
  1555        0x100
  1556        dup1
  1557        dup4
  1558        sload
  1559        div
  1560        mul
  1561        dup4
  1562        mstore
  1563        swap2
  1564        0x20
  1565        add
  1566        swap2
  1567        jump(tag_56)
  1568      tag_57:
  1569        dup3
  1570        add
  1571        swap2
  1572        swap1
  1573        0x0
  1574        mstore
  1575        keccak256(0x0, 0x20)
  1576        swap1
  1577      tag_58:
  1578        dup2
  1579        sload
  1580        dup2
  1581        mstore
  1582        swap1
  1583        0x1
  1584        add
  1585        swap1
  1586        0x20
  1587        add
  1588        dup1
  1589        dup4
  1590        gt
  1591        tag_58
  1592        jumpi
  1593        dup3
  1594        swap1
  1595        sub
  1596        0x1f
  1597        and
  1598        dup3
  1599        add
  1600        swap2
  1601      tag_56:
  1602        pop
  1603        pop
  1604        pop
  1605        pop
  1606        pop
  1607        dup2
  1608        jump	// out
  1609          /* "../contracts/token.sol":2335:2440  function transfer(address _to, uint256 _value) public {... */
  1610      tag_42:
  1611          /* "../contracts/token.sol":2399:2433  _transfer(msg.sender, _to, _value) */
  1612        tag_60
  1613          /* "../contracts/token.sol":2409:2419  msg.sender */
  1614        caller
  1615          /* "../contracts/token.sol":2421:2424  _to */
  1616        dup4
  1617          /* "../contracts/token.sol":2426:2432  _value */
  1618        dup4
  1619          /* "../contracts/token.sol":2399:2408  _transfer */
  1620        tag_55
  1621          /* "../contracts/token.sol":2399:2433  _transfer(msg.sender, _to, _value) */
  1622        jump	// in
  1623      tag_60:
  1624          /* "../contracts/token.sol":2335:2440  function transfer(address _to, uint256 _value) public {... */
  1625        pop
  1626        pop
  1627        jump	// out
  1628          /* "../contracts/token.sol":1369:1435  mapping (address => mapping (address => uint256)) public allowance */
  1629      tag_45:
  1630        mstore(0x20, 0x5)
  1631        dup2
  1632        0x0
  1633        mstore
  1634        mstore(0x20, keccak256(0x0, 0x40))
  1635        dup1
  1636        0x0
  1637        mstore
  1638        keccak256(0x0, 0x40)
  1639        0x0
  1640        swap2
  1641        pop
  1642        swap2
  1643        pop
  1644        pop
  1645        sload
  1646        dup2
  1647        jump	// out
  1648          /* "../contracts/token.sol":406:530  function safeSub(uint256 a, uint256 b) internal pure returns (uint256) {... */
  1649      tag_53:
  1650          /* "../contracts/token.sol":468:475  uint256 */
  1651        0x0
  1652          /* "../contracts/token.sol":499:500  a */
  1653        dup3
  1654          /* "../contracts/token.sol":494:495  b */
  1655        dup3
  1656          /* "../contracts/token.sol":494:500  b <= a */
  1657        gt
  1658        iszero
  1659          /* "../contracts/token.sol":487:501  assert(b <= a) */
  1660        iszero
  1661        iszero
  1662        tag_62
  1663        jumpi
  1664        invalid
  1665      tag_62:
  1666          /* "../contracts/token.sol":522:523  b */
  1667        dup2
  1668          /* "../contracts/token.sol":518:519  a */
  1669        dup4
  1670          /* "../contracts/token.sol":518:523  a - b */
  1671        sub
  1672          /* "../contracts/token.sol":511:523  return a - b */
  1673        swap1
  1674        pop
  1675          /* "../contracts/token.sol":406:530  function safeSub(uint256 a, uint256 b) internal pure returns (uint256) {... */
  1676        swap3
  1677        swap2
  1678        pop
  1679        pop
  1680        jump	// out
  1681          /* "../contracts/token.sol":1785:2329  function _transfer(address _from, address _to, uint256 _value) private {... */
  1682      tag_55:
  1683          /* "../contracts/token.sol":1999:2023  uint256 previousBalances */
  1684        0x0
  1685          /* "../contracts/token.sol":1881:1884  0x0 */
  1686        dup1
  1687          /* "../contracts/token.sol":1874:1877  _to */
  1688        dup4
  1689          /* "../contracts/token.sol":1874:1884  _to != 0x0 */
  1690        0xffffffffffffffffffffffffffffffffffffffff
  1691        and
  1692        eq
  1693        iszero
  1694          /* "../contracts/token.sol":1866:1885  require(_to != 0x0) */
  1695        iszero
  1696        iszero
  1697        tag_64
  1698        jumpi
  1699        0x0
  1700        dup1
  1701        revert
  1702      tag_64:
  1703          /* "../contracts/token.sol":1923:1929  _value */
  1704        dup2
  1705          /* "../contracts/token.sol":1903:1912  balanceOf */
  1706        0x4
  1707          /* "../contracts/token.sol":1903:1919  balanceOf[_from] */
  1708        0x0
  1709          /* "../contracts/token.sol":1913:1918  _from */
  1710        dup7
  1711          /* "../contracts/token.sol":1903:1919  balanceOf[_from] */
  1712        0xffffffffffffffffffffffffffffffffffffffff
  1713        and
  1714        0xffffffffffffffffffffffffffffffffffffffff
  1715        and
  1716        dup2
  1717        mstore
  1718        0x20
  1719        add
  1720        swap1
  1721        dup2
  1722        mstore
  1723        0x20
  1724        add
  1725        0x0
  1726        keccak256
  1727        sload
  1728          /* "../contracts/token.sol":1903:1929  balanceOf[_from] >= _value */
  1729        lt
  1730        iszero
  1731          /* "../contracts/token.sol":1895:1930  require(balanceOf[_from] >= _value) */
  1732        iszero
  1733        iszero
  1734        tag_65
  1735        jumpi
  1736        0x0
  1737        dup1
  1738        revert
  1739      tag_65:
  1740          /* "../contracts/token.sol":1974:1983  balanceOf */
  1741        0x4
  1742          /* "../contracts/token.sol":1974:1988  balanceOf[_to] */
  1743        0x0
  1744          /* "../contracts/token.sol":1984:1987  _to */
  1745        dup5
  1746          /* "../contracts/token.sol":1974:1988  balanceOf[_to] */
  1747        0xffffffffffffffffffffffffffffffffffffffff
  1748        and
  1749        0xffffffffffffffffffffffffffffffffffffffff
  1750        and
  1751        dup2
  1752        mstore
  1753        0x20
  1754        add
  1755        swap1
  1756        dup2
  1757        mstore
  1758        0x20
  1759        add
  1760        0x0
  1761        keccak256
  1762        sload
  1763          /* "../contracts/token.sol":1965:1971  _value */
  1764        dup3
  1765          /* "../contracts/token.sol":1948:1957  balanceOf */
  1766        0x4
  1767          /* "../contracts/token.sol":1948:1962  balanceOf[_to] */
  1768        0x0
  1769          /* "../contracts/token.sol":1958:1961  _to */
  1770        dup7
  1771          /* "../contracts/token.sol":1948:1962  balanceOf[_to] */
  1772        0xffffffffffffffffffffffffffffffffffffffff
  1773        and
  1774        0xffffffffffffffffffffffffffffffffffffffff
  1775        and
  1776        dup2
  1777        mstore
  1778        0x20
  1779        add
  1780        swap1
  1781        dup2
  1782        mstore
  1783        0x20
  1784        add
  1785        0x0
  1786        keccak256
  1787        sload
  1788          /* "../contracts/token.sol":1948:1971  balanceOf[_to] + _value */
  1789        add
  1790          /* "../contracts/token.sol":1948:1988  balanceOf[_to] + _value > balanceOf[_to] */
  1791        gt
  1792          /* "../contracts/token.sol":1940:1989  require(balanceOf[_to] + _value > balanceOf[_to]) */
  1793        iszero
  1794        iszero
  1795        tag_66
  1796        jumpi
  1797        0x0
  1798        dup1
  1799        revert
  1800      tag_66:
  1801          /* "../contracts/token.sol":2026:2075  SafeMath.safeAdd(balanceOf[_from],balanceOf[_to]) */
  1802        tag_67
  1803          /* "../contracts/token.sol":2043:2052  balanceOf */
  1804        0x4
  1805          /* "../contracts/token.sol":2043:2059  balanceOf[_from] */
  1806        0x0
  1807          /* "../contracts/token.sol":2053:2058  _from */
  1808        dup7
  1809          /* "../contracts/token.sol":2043:2059  balanceOf[_from] */
  1810        0xffffffffffffffffffffffffffffffffffffffff
  1811        and
  1812        0xffffffffffffffffffffffffffffffffffffffff
  1813        and
  1814        dup2
  1815        mstore
  1816        0x20
  1817        add
  1818        swap1
  1819        dup2
  1820        mstore
  1821        0x20
  1822        add
  1823        0x0
  1824        keccak256
  1825        sload
  1826          /* "../contracts/token.sol":2060:2069  balanceOf */
  1827        0x4
  1828          /* "../contracts/token.sol":2060:2074  balanceOf[_to] */
  1829        0x0
  1830          /* "../contracts/token.sol":2070:2073  _to */
  1831        dup7
  1832          /* "../contracts/token.sol":2060:2074  balanceOf[_to] */
  1833        0xffffffffffffffffffffffffffffffffffffffff
  1834        and
  1835        0xffffffffffffffffffffffffffffffffffffffff
  1836        and
  1837        dup2
  1838        mstore
  1839        0x20
  1840        add
  1841        swap1
  1842        dup2
  1843        mstore
  1844        0x20
  1845        add
  1846        0x0
  1847        keccak256
  1848        sload
  1849          /* "../contracts/token.sol":2026:2042  SafeMath.safeAdd */
  1850        tag_68
  1851          /* "../contracts/token.sol":2026:2075  SafeMath.safeAdd(balanceOf[_from],balanceOf[_to]) */
  1852        jump	// in
  1853      tag_67:
  1854          /* "../contracts/token.sol":1999:2075  uint256 previousBalances = SafeMath.safeAdd(balanceOf[_from],balanceOf[_to]) */
  1855        swap1
  1856        pop
  1857          /* "../contracts/token.sol":2104:2146  SafeMath.safeSub(balanceOf[_from], _value) */
  1858        tag_69
  1859          /* "../contracts/token.sol":2121:2130  balanceOf */
  1860        0x4
  1861          /* "../contracts/token.sol":2121:2137  balanceOf[_from] */
  1862        0x0
  1863          /* "../contracts/token.sol":2131:2136  _from */
  1864        dup7
  1865          /* "../contracts/token.sol":2121:2137  balanceOf[_from] */
  1866        0xffffffffffffffffffffffffffffffffffffffff
  1867        and
  1868        0xffffffffffffffffffffffffffffffffffffffff
  1869        and
  1870        dup2
  1871        mstore
  1872        0x20
  1873        add
  1874        swap1
  1875        dup2
  1876        mstore
  1877        0x20
  1878        add
  1879        0x0
  1880        keccak256
  1881        sload
  1882          /* "../contracts/token.sol":2139:2145  _value */
  1883        dup4
  1884          /* "../contracts/token.sol":2104:2120  SafeMath.safeSub */
  1885        tag_53
  1886          /* "../contracts/token.sol":2104:2146  SafeMath.safeSub(balanceOf[_from], _value) */
  1887        jump	// in
  1888      tag_69:
  1889          /* "../contracts/token.sol":2085:2094  balanceOf */
  1890        0x4
  1891          /* "../contracts/token.sol":2085:2101  balanceOf[_from] */
  1892        0x0
  1893          /* "../contracts/token.sol":2095:2100  _from */
  1894        dup7
  1895          /* "../contracts/token.sol":2085:2101  balanceOf[_from] */
  1896        0xffffffffffffffffffffffffffffffffffffffff
  1897        and
  1898        0xffffffffffffffffffffffffffffffffffffffff
  1899        and
  1900        dup2
  1901        mstore
  1902        0x20
  1903        add
  1904        swap1
  1905        dup2
  1906        mstore
  1907        0x20
  1908        add
  1909        0x0
  1910        keccak256
  1911          /* "../contracts/token.sol":2085:2146  balanceOf[_from] = SafeMath.safeSub(balanceOf[_from], _value) */
  1912        dup2
  1913        swap1
  1914        sstore
  1915        pop
  1916          /* "../contracts/token.sol":2173:2213  SafeMath.safeAdd(balanceOf[_to], _value) */
  1917        tag_70
  1918          /* "../contracts/token.sol":2190:2199  balanceOf */
  1919        0x4
  1920          /* "../contracts/token.sol":2190:2204  balanceOf[_to] */
  1921        0x0
  1922          /* "../contracts/token.sol":2200:2203  _to */
  1923        dup6
  1924          /* "../contracts/token.sol":2190:2204  balanceOf[_to] */
  1925        0xffffffffffffffffffffffffffffffffffffffff
  1926        and
  1927        0xffffffffffffffffffffffffffffffffffffffff
  1928        and
  1929        dup2
  1930        mstore
  1931        0x20
  1932        add
  1933        swap1
  1934        dup2
  1935        mstore
  1936        0x20
  1937        add
  1938        0x0
  1939        keccak256
  1940        sload
  1941          /* "../contracts/token.sol":2206:2212  _value */
  1942        dup4
  1943          /* "../contracts/token.sol":2173:2189  SafeMath.safeAdd */
  1944        tag_68
  1945          /* "../contracts/token.sol":2173:2213  SafeMath.safeAdd(balanceOf[_to], _value) */
  1946        jump	// in
  1947      tag_70:
  1948          /* "../contracts/token.sol":2156:2165  balanceOf */
  1949        0x4
  1950          /* "../contracts/token.sol":2156:2170  balanceOf[_to] */
  1951        0x0
  1952          /* "../contracts/token.sol":2166:2169  _to */
  1953        dup6
  1954          /* "../contracts/token.sol":2156:2170  balanceOf[_to] */
  1955        0xffffffffffffffffffffffffffffffffffffffff
  1956        and
  1957        0xffffffffffffffffffffffffffffffffffffffff
  1958        and
  1959        dup2
  1960        mstore
  1961        0x20
  1962        add
  1963        swap1
  1964        dup2
  1965        mstore
  1966        0x20
  1967        add
  1968        0x0
  1969        keccak256
  1970          /* "../contracts/token.sol":2156:2213  balanceOf[_to] = SafeMath.safeAdd(balanceOf[_to], _value) */
  1971        dup2
  1972        swap1
  1973        sstore
  1974        pop
  1975          /* "../contracts/token.sol":2239:2242  _to */
  1976        dup3
  1977          /* "../contracts/token.sol":2223:2251  Transfer(_from, _to, _value) */
  1978        0xffffffffffffffffffffffffffffffffffffffff
  1979        and
  1980          /* "../contracts/token.sol":2232:2237  _from */
  1981        dup5
  1982          /* "../contracts/token.sol":2223:2251  Transfer(_from, _to, _value) */
  1983        0xffffffffffffffffffffffffffffffffffffffff
  1984        and
  1985        0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
  1986          /* "../contracts/token.sol":2244:2250  _value */
  1987        dup5
  1988          /* "../contracts/token.sol":2223:2251  Transfer(_from, _to, _value) */
  1989        mload(0x40)
  1990        dup1
  1991        dup3
  1992        dup2
  1993        mstore
  1994        0x20
  1995        add
  1996        swap2
  1997        pop
  1998        pop
  1999        mload(0x40)
  2000        dup1
  2001        swap2
  2002        sub
  2003        swap1
  2004        log3
  2005          /* "../contracts/token.sol":2305:2321  previousBalances */
  2006        dup1
  2007          /* "../contracts/token.sol":2287:2296  balanceOf */
  2008        0x4
  2009          /* "../contracts/token.sol":2287:2301  balanceOf[_to] */
  2010        0x0
  2011          /* "../contracts/token.sol":2297:2300  _to */
  2012        dup6
  2013          /* "../contracts/token.sol":2287:2301  balanceOf[_to] */
  2014        0xffffffffffffffffffffffffffffffffffffffff
  2015        and
  2016        0xffffffffffffffffffffffffffffffffffffffff
  2017        and
  2018        dup2
  2019        mstore
  2020        0x20
  2021        add
  2022        swap1
  2023        dup2
  2024        mstore
  2025        0x20
  2026        add
  2027        0x0
  2028        keccak256
  2029        sload
  2030          /* "../contracts/token.sol":2268:2277  balanceOf */
  2031        0x4
  2032          /* "../contracts/token.sol":2268:2284  balanceOf[_from] */
  2033        0x0
  2034          /* "../contracts/token.sol":2278:2283  _from */
  2035        dup8
  2036          /* "../contracts/token.sol":2268:2284  balanceOf[_from] */
  2037        0xffffffffffffffffffffffffffffffffffffffff
  2038        and
  2039        0xffffffffffffffffffffffffffffffffffffffff
  2040        and
  2041        dup2
  2042        mstore
  2043        0x20
  2044        add
  2045        swap1
  2046        dup2
  2047        mstore
  2048        0x20
  2049        add
  2050        0x0
  2051        keccak256
  2052        sload
  2053          /* "../contracts/token.sol":2268:2301  balanceOf[_from] + balanceOf[_to] */
  2054        add
  2055          /* "../contracts/token.sol":2268:2321  balanceOf[_from] + balanceOf[_to] == previousBalances */
  2056        eq
  2057          /* "../contracts/token.sol":2261:2322  assert(balanceOf[_from] + balanceOf[_to] == previousBalances) */
  2058        iszero
  2059        iszero
  2060        tag_71
  2061        jumpi
  2062        invalid
  2063      tag_71:
  2064          /* "../contracts/token.sol":1785:2329  function _transfer(address _from, address _to, uint256 _value) private {... */
  2065        pop
  2066        pop
  2067        pop
  2068        pop
  2069        jump	// out
  2070          /* "../contracts/token.sol":536:689  function safeAdd(uint256 a, uint256 b) internal pure returns (uint256) {... */
  2071      tag_68:
  2072          /* "../contracts/token.sol":598:605  uint256 */
  2073        0x0
  2074          /* "../contracts/token.sol":617:626  uint256 c */
  2075        dup1
  2076          /* "../contracts/token.sol":633:634  b */
  2077        dup3
  2078          /* "../contracts/token.sol":629:630  a */
  2079        dup5
  2080          /* "../contracts/token.sol":629:634  a + b */
  2081        add
  2082          /* "../contracts/token.sol":617:634  uint256 c = a + b */
  2083        swap1
  2084        pop
  2085          /* "../contracts/token.sol":654:655  a */
  2086        dup4
  2087          /* "../contracts/token.sol":651:652  c */
  2088        dup2
  2089          /* "../contracts/token.sol":651:655  c>=a */
  2090        lt
  2091        iszero
  2092          /* "../contracts/token.sol":651:663  c>=a && c>=b */
  2093        dup1
  2094        iszero
  2095        tag_73
  2096        jumpi
  2097        pop
  2098          /* "../contracts/token.sol":662:663  b */
  2099        dup3
  2100          /* "../contracts/token.sol":659:660  c */
  2101        dup2
  2102          /* "../contracts/token.sol":659:663  c>=b */
  2103        lt
  2104        iszero
  2105          /* "../contracts/token.sol":651:663  c>=a && c>=b */
  2106      tag_73:
  2107          /* "../contracts/token.sol":644:664  assert(c>=a && c>=b) */
  2108        iszero
  2109        iszero
  2110        tag_74
  2111        jumpi
  2112        invalid
  2113      tag_74:
  2114          /* "../contracts/token.sol":681:682  c */
  2115        dup1
  2116          /* "../contracts/token.sol":674:682  return c */
  2117        swap2
  2118        pop
  2119          /* "../contracts/token.sol":536:689  function safeAdd(uint256 a, uint256 b) internal pure returns (uint256) {... */
  2120        pop
  2121        swap3
  2122        swap2
  2123        pop
  2124        pop
  2125        jump	// out
  2126  
  2127      auxdata: 0xa165627a7a72305820260079fc6deb4f6fdab814ae5ee600f6d2954edb51b1791b9ca7fec275e42a0f0029
  2128  }