github.com/n1ghtfa1l/go-vnt@v0.6.4-alpha.6/core/wavm/tests/qlang/PERC20.wat (about)

     1  (module
     2    (type $t0 (func))
     3    (type $t1 (func (param i32)))
     4    (type $t2 (func (param i32) (result i32)))
     5    (type $t3 (func (param i32)))
     6    (type $t4 (func (result i32)))
     7    (type $t5 (func (param i32) (result i64)))
     8    (type $t6 (func (param i32 i32)))
     9    (type $t7 (func (param i32 i32) (result i32)))
    10    (type $t8 (func (param i32 i32) (result i32)))
    11    (type $t9 (func (param i32 i32) (result i32)))
    12    (type $t10 (func (param i32 i32)))
    13    (type $t11 (func (param i32 i32 i64) (result i64)))
    14    (type $t12 (func (param i32 i32 i32)))
    15    (type $t13 (func (param i32) (result i32)))
    16    (type $t14 (func (param i32 i32) (result i32)))
    17    (type $t15 (func (param i32 i32) (result i32)))
    18    (type $t16 (func (param i32) (result i32)))
    19    (type $t17 (func (result i32)))
    20    (type $t18 (func (result i64)))
    21    (type $t19 (func (param i32 i32) (result i64)))
    22    (type $t20 (func (param i32) (result i64)))
    23    (type $t21 (func (param i32 i32 i64) (result i32)))
    24    (type $t22 (func (param i32 i64) (result i32)))
    25    (type $t23 (func (param i32 i32 i32) (result i32)))
    26    (type $t24 (func (param i32 i32) (result i64)))
    27    (type $t25 (func (param i32 i32 i32 i64) (result i32)))
    28    (type $t26 (func (param i32 i32 i64) (result i32)))
    29    (type $t27 (func (param i32 i32 i64) (result i64)))
    30    (type $t28 (func (param i32 i64) (result i64)))
    31    (type $t29 (func (param i32 i32 i32) (result i64)))
    32    (type $t30 (func (param i32 i32) (result i64)))
    33    (import "env" "Sender" (func $env.Sender (type $t3)))
    34    (import "env" "Store" (func $env.Store (type $t10)))
    35    (import "env" "Load" (func $env.Load (type $t14)))
    36    (func $f3 (type $t0)
    37      (unreachable))
    38    (func $f4 (type $t1) (param $p0 i32)
    39      (local $l0 i32)
    40      (set_local $l0
    41        (get_local $p0))
    42      (i32.store offset=4
    43        (get_local $l0)
    44        (i32.const 0))
    45      (i32.store offset=8
    46        (get_local $l0)
    47        (i32.const 0)))
    48    (func $f5 (type $t2) (param $p0 i32) (result i32)
    49      (local $l0 i32) (local $l1 i32)
    50      (set_local $l0
    51        (get_local $p0))
    52      (set_global $heap_pointer
    53        (i32.add
    54          (i32.load offset=16
    55            (get_local $l0))
    56          (tee_local $l1
    57            (get_global $heap_pointer))))
    58      (i32.store
    59        (get_local $l1)
    60        (get_local $l0))
    61      (call_indirect (type $t1)
    62        (get_local $l1)
    63        (i32.add
    64          (i32.mul
    65            (i32.const 4)
    66            (i32.load offset=12
    67              (i32.load
    68                (get_local $l1))))
    69          (i32.const 0)))
    70      (get_local $l1))
    71    (func $f6 (type $t4) (result i32)
    72      (local $l0 i32)
    73      (set_global $heap_pointer
    74        (i32.add
    75          (i32.const 20)
    76          (tee_local $l0
    77            (get_global $heap_pointer))))
    78      (call $env.Sender
    79        (get_local $l0))
    80      (get_local $l0))
    81    (func $f7 (type $t5) (param $p0 i32) (result i64)
    82      (i64.const 1234567890123456))
    83    (func $f8 (type $t7) (param $p0 i32) (param $p1 i32) (result i32)
    84      (local $l0 i32) (local $l1 i32)
    85      (set_local $l0
    86        (get_local $p0))
    87      (set_global $heap_pointer
    88        (i32.add
    89          (i32.load offset=16
    90            (get_local $l0))
    91          (tee_local $l1
    92            (get_global $heap_pointer))))
    93      (i32.store
    94        (get_local $l1)
    95        (get_local $l0))
    96      (call_indirect (type $t6)
    97        (get_local $l1)
    98        (get_local $p1)
    99        (i32.add
   100          (i32.mul
   101            (i32.const 4)
   102            (i32.load offset=12
   103              (i32.load
   104                (get_local $l1))))
   105          (i32.const 1)))
   106      (get_local $l1))
   107    (func $f9 (type $t2) (param $p0 i32) (result i32)
   108      (local $l0 i32)
   109      (set_local $l0
   110        (get_local $p0))
   111      (if $I0
   112        (i32.eqz
   113          (i32.load offset=4
   114            (get_local $l0)))
   115        (then
   116          (i32.store offset=8
   117            (get_local $l0)
   118            (get_global $g0))
   119          (set_global $g0
   120            (get_local $l0))
   121          (i32.store offset=4
   122            (get_local $l0)
   123            (i32.add
   124              (get_global $g1)
   125              (i32.const 1)))))
   126      (i32.load offset=4
   127        (get_local $l0)))
   128    (func $f10 (type $t8) (param $p0 i32) (param $p1 i32) (result i32)
   129      (local $l0 i32) (local $l1 i32)
   130      (set_local $l0
   131        (get_local $p0))
   132      (set_local $l1
   133        (i32.load offset=16
   134          (get_local $l0)))
   135      (i32.store
   136        (i32.add
   137          (i32.load offset=20
   138            (get_local $l0))
   139          (get_local $l1))
   140        (get_local $p1))
   141      (i32.store offset=16
   142        (get_local $l0)
   143        (i32.add
   144          (get_local $l1)
   145          (i32.const 4)))
   146      (get_local $l0))
   147    (func $f11 (type $t9) (param $p0 i32) (param $p1 i32) (result i32)
   148      (local $l0 i32) (local $l1 i32) (local $l2 i32)
   149      (set_local $l0
   150        (get_local $p0))
   151      (set_local $l1
   152        (get_local $p1))
   153      (set_local $l2
   154        (i32.add
   155          (i32.load offset=20
   156            (get_local $l0))
   157          (i32.load offset=16
   158            (get_local $l0))))
   159      (i64.store
   160        (get_local $l2)
   161        (i64.load
   162          (get_local $l1)))
   163      (i64.store offset=8
   164        (get_local $l2)
   165        (i64.load offset=8
   166          (get_local $l1)))
   167      (i32.store offset=16
   168        (get_local $l2)
   169        (i32.load offset=16
   170          (get_local $l1)))
   171      (i32.store offset=16
   172        (get_local $l0)
   173        (i32.add
   174          (i32.load offset=16
   175            (get_local $l0))
   176          (i32.const 20)))
   177      (get_local $l0))
   178    (func $f12 (type $t11) (param $p0 i32) (param $p1 i32) (param $p2 i64) (result i64)
   179      (local $l0 i32) (local $l1 i64)
   180      (set_local $l1
   181        (get_local $p2))
   182      (i64.store
   183        (i32.const 392)
   184        (get_local $l1))
   185      (set_local $l0
   186        (call $f11
   187          (call $f10
   188            (call $f8
   189              (i32.const 180)
   190              (i32.const 64))
   191            (call $f9
   192              (get_local $p0)))
   193          (get_local $p1)))
   194      (i32.store
   195        (i32.const 360)
   196        (i32.load offset=16
   197          (get_local $l0)))
   198      (i32.store offset=4
   199        (i32.const 360)
   200        (i32.load offset=20
   201          (get_local $l0)))
   202      (i32.store
   203        (i32.const 368)
   204        (i32.const 8))
   205      (i32.store offset=4
   206        (i32.const 368)
   207        (i32.const 392))
   208      (get_local $l1))
   209    (func $f13 (type $t1) (param $p0 i32)
   210      (block $B0
   211        (i32.store offset=12
   212          (get_local $p0)
   213          (call $f5
   214            (i32.const 216)))
   215        (i32.store offset=16
   216          (get_local $p0)
   217          (call $f5
   218            (i32.const 288)))
   219        (drop
   220          (call $f12
   221            (i32.load offset=12
   222              (get_local $p0))
   223            (call $f6)
   224            (call $f7
   225              (get_local $p0))))
   226        (nop)))
   227    (func $f14 (type $t6) (param $p0 i32) (param $p1 i32)
   228      (local $l0 i32) (local $l1 i32)
   229      (set_local $l0
   230        (get_local $p0))
   231      (i32.store offset=16
   232        (get_local $l0)
   233        (i32.const 0))
   234      (i32.store offset=12
   235        (get_local $l0)
   236        (get_local $p1))
   237      (set_global $heap_pointer
   238        (i32.add
   239          (i32.const 32)
   240          (tee_local $l1
   241            (get_global $heap_pointer))))
   242      (i32.store offset=20
   243        (get_local $l0)
   244        (get_local $l1)))
   245    (func $f15 (type $t12) (param $p0 i32) (param $p1 i32) (param $p2 i32)
   246      (local $l0 i32)
   247      (set_local $l0
   248        (get_local $p0))
   249      (i32.store offset=12
   250        (get_local $l0)
   251        (get_local $p1))
   252      (i32.store offset=16
   253        (get_local $l0)
   254        (get_local $p2))
   255      (nop))
   256    (func $f16 (type $t8) (param $p0 i32) (param $p1 i32) (result i32)
   257      (call $f10
   258        (get_local $p1)
   259        (call $f9
   260          (get_local $p0))))
   261    (func $f17 (type $t8) (param $p0 i32) (param $p1 i32) (result i32)
   262      (local $l0 i32)
   263      (set_local $l0
   264        (get_local $p0))
   265      (call $f11
   266        (call $f11
   267          (get_local $p1)
   268          (i32.load offset=12
   269            (get_local $l0)))
   270        (i32.load offset=16
   271          (get_local $l0))))
   272    (func $malloc (export "malloc") (type $t13) (param $p0 i32) (result i32)
   273      (local $l0 i32)
   274      (set_global $heap_pointer
   275        (i32.add
   276          (get_local $p0)
   277          (tee_local $l0
   278            (get_global $heap_pointer))))
   279      (get_local $l0))
   280    (func $f19 (type $t2) (param $p0 i32) (result i32)
   281      (local $l0 i32) (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i32)
   282      (set_local $l0
   283        (get_local $p0))
   284      (if $I0
   285        (i32.load offset=32
   286          (tee_local $l2
   287            (i32.load
   288              (get_local $l0))))
   289        (then
   290          (set_local $l1
   291            (i32.add
   292              (get_local $l0)
   293              (i32.load offset=24
   294                (i32.load
   295                  (get_local $l0)))))
   296          (loop $L1
   297            (set_local $l4
   298              (i32.add
   299                (get_local $l0)
   300                (i32.load offset=24
   301                  (get_local $l2))))
   302            (set_local $l5
   303              (i32.add
   304                (get_local $l0)
   305                (i32.load offset=28
   306                  (get_local $l2))))
   307            (set_local $l3
   308              (i32.add
   309                (get_local $l0)
   310                (i32.load offset=16
   311                  (tee_local $l2
   312                    (i32.load offset=32
   313                      (get_local $l2))))))
   314            (loop $L2
   315              (block $B3
   316                (br_if $B3
   317                  (i32.gt_u
   318                    (get_local $l3)
   319                    (tee_local $l5
   320                      (i32.sub
   321                        (get_local $l5)
   322                        (i32.const 4)))))
   323                (i32.store
   324                  (get_local $l5)
   325                  (call $f9
   326                    (i32.load
   327                      (get_local $l5))))
   328                (br $L2)))
   329            (if $I4
   330              (i32.eq
   331                (get_local $l4)
   332                (get_local $l1))
   333              (then
   334                (set_local $l1
   335                  (tee_local $l4
   336                    (get_local $l3))))
   337              (else
   338                (loop $L5
   339                  (block $B6
   340                    (br_if $B6
   341                      (i32.gt_u
   342                        (get_local $l3)
   343                        (tee_local $l4
   344                          (i32.sub
   345                            (get_local $l4)
   346                            (i32.const 8)))))
   347                    (i64.store
   348                      (tee_local $l1
   349                        (i32.sub
   350                          (get_local $l1)
   351                          (i32.const 8)))
   352                      (i64.load
   353                        (get_local $l4)))
   354                    (br $L5)))
   355                (if $I7
   356                  (i32.le_u
   357                    (get_local $l3)
   358                    (tee_local $l4
   359                      (i32.add
   360                        (get_local $l4)
   361                        (i32.const 4))))
   362                  (then
   363                    (i32.store
   364                      (tee_local $l1
   365                        (i32.sub
   366                          (get_local $l1)
   367                          (i32.const 4)))
   368                      (i32.load offset=4
   369                        (tee_local $l4
   370                          (i32.sub
   371                            (get_local $l4)
   372                            (i32.const 4)))))))
   373                (if $I8
   374                  (i32.le_u
   375                    (get_local $l3)
   376                    (tee_local $l4
   377                      (i32.add
   378                        (get_local $l4)
   379                        (i32.const 2))))
   380                  (then
   381                    (i32.store16
   382                      (tee_local $l1
   383                        (i32.sub
   384                          (get_local $l1)
   385                          (i32.const 2)))
   386                      (i32.load16_u offset=2
   387                        (tee_local $l4
   388                          (i32.sub
   389                            (get_local $l4)
   390                            (i32.const 2)))))))
   391                (if $I9
   392                  (i32.le_u
   393                    (get_local $l3)
   394                    (tee_local $l4
   395                      (i32.add
   396                        (get_local $l4)
   397                        (i32.const 1))))
   398                  (then
   399                    (i32.store8
   400                      (tee_local $l1
   401                        (i32.sub
   402                          (get_local $l1)
   403                          (i32.const 1)))
   404                      (i32.load8_u
   405                        (get_local $l4))))
   406                  (else
   407                    (set_local $l4
   408                      (i32.add
   409                        (get_local $l4)
   410                        (i32.const 1)))))))
   411            (br_if $L1
   412              (get_local $l2))))
   413        (else
   414          (set_local $l1
   415            (i32.add
   416              (get_local $l0)
   417              (i32.const 0)))))
   418      (if $I10
   419        (i32.eqz
   420          (i32.load offset=4
   421            (get_local $l0)))
   422        (then
   423          (i32.store offset=8
   424            (get_local $l0)
   425            (get_global $g0))
   426          (set_global $g0
   427            (get_local $l0))
   428          (i32.store offset=4
   429            (get_local $l0)
   430            (i32.add
   431              (get_global $g1)
   432              (i32.const 1)))))
   433      (i32.store offset=4
   434        (i32.const 360)
   435        (i32.add
   436          (get_local $l0)
   437          (i32.const 4)))
   438      (i32.store
   439        (i32.const 368)
   440        (i32.sub
   441          (i32.add
   442            (get_local $l0)
   443            (i32.load offset=24
   444              (i32.load
   445                (get_local $l0))))
   446          (get_local $l1)))
   447      (i32.store offset=4
   448        (i32.const 368)
   449        (get_local $l1))
   450      (get_local $l0))
   451    (func $ERC20::init (export "ERC20::init") (type $t0)
   452      (local $l0 i32)
   453      (i32.store
   454        (i32.const 360)
   455        (i32.const 4))
   456      (i32.store offset=4
   457        (i32.const 360)
   458        (i32.const 0))
   459      (drop
   460        (call $env.Load
   461          (i32.const 360)
   462          (i32.const 384)))
   463      (set_global $g1
   464        (i32.load
   465          (i32.const 384)))
   466      (set_local $l0
   467        (call $f5
   468          (i32.const 324)))
   469      (i32.store offset=8
   470        (get_local $l0)
   471        (get_global $g0))
   472      (if $I0
   473        (get_global $g0)
   474        (then
   475          (drop
   476            (call $f19
   477              (get_global $g0)))))
   478      (if $I1
   479        (i32.ne
   480          (get_global $g1)
   481          (i32.load
   482            (i32.const 384)))
   483        (then
   484          (i32.store
   485            (i32.const 384)
   486            (get_global $g1))
   487          (i32.store offset=4
   488            (i32.const 360)
   489            (i32.const 0))
   490          (i32.store
   491            (i32.const 368)
   492            (i32.const 4))
   493          (i32.store offset=4
   494            (i32.const 368)
   495            (i32.const 384))))
   496      (nop))
   497    (func $f21 (type $t15) (param $p0 i32) (param $p1 i32) (result i32)
   498      (local $l0 i32) (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i32)
   499      (set_local $l0
   500        (get_local $p0))
   501      (set_local $l1
   502        (get_local $p1))
   503      (set_global $heap_pointer
   504        (i32.add
   505          (i32.load offset=16
   506            (get_local $l0))
   507          (tee_local $l3
   508            (get_global $heap_pointer))))
   509      (i32.store
   510        (i32.const 372)
   511        (get_local $l1))
   512      (i32.store
   513        (i32.const 360)
   514        (i32.const 4))
   515      (i32.store offset=4
   516        (i32.const 360)
   517        (i32.const 372))
   518      (set_local $l2
   519        (i32.add
   520          (call $env.Load
   521            (i32.const 360)
   522            (get_local $l3))
   523          (get_local $l3)))
   524      (loop $L0
   525        (set_local $l4
   526          (i32.sub
   527            (get_local $l2)
   528            (i32.load offset=20
   529              (get_local $l0))))
   530        (set_local $l5
   531          (i32.add
   532            (get_local $l3)
   533            (i32.load offset=24
   534              (get_local $l0))))
   535        (if $I1
   536          (i32.eq
   537            (get_local $l2)
   538            (get_local $l5))
   539          (then
   540            (set_local $l5
   541              (tee_local $l2
   542                (get_local $l4))))
   543          (else
   544            (loop $L2
   545              (block $B3
   546                (br_if $B3
   547                  (i32.gt_u
   548                    (get_local $l4)
   549                    (tee_local $l2
   550                      (i32.sub
   551                        (get_local $l2)
   552                        (i32.const 8)))))
   553                (i64.store
   554                  (tee_local $l5
   555                    (i32.sub
   556                      (get_local $l5)
   557                      (i32.const 8)))
   558                  (i64.load
   559                    (get_local $l2)))
   560                (br $L2)))
   561            (if $I4
   562              (i32.le_u
   563                (get_local $l4)
   564                (tee_local $l2
   565                  (i32.add
   566                    (get_local $l2)
   567                    (i32.const 4))))
   568              (then
   569                (i32.store
   570                  (tee_local $l5
   571                    (i32.sub
   572                      (get_local $l5)
   573                      (i32.const 4)))
   574                  (i32.load offset=4
   575                    (tee_local $l2
   576                      (i32.sub
   577                        (get_local $l2)
   578                        (i32.const 4)))))))
   579            (if $I5
   580              (i32.le_u
   581                (get_local $l4)
   582                (tee_local $l2
   583                  (i32.add
   584                    (get_local $l2)
   585                    (i32.const 2))))
   586              (then
   587                (i32.store16
   588                  (tee_local $l5
   589                    (i32.sub
   590                      (get_local $l5)
   591                      (i32.const 2)))
   592                  (i32.load16_u offset=2
   593                    (tee_local $l2
   594                      (i32.sub
   595                        (get_local $l2)
   596                        (i32.const 2)))))))
   597            (if $I6
   598              (i32.le_u
   599                (get_local $l4)
   600                (tee_local $l2
   601                  (i32.add
   602                    (get_local $l2)
   603                    (i32.const 1))))
   604              (then
   605                (i32.store8
   606                  (tee_local $l5
   607                    (i32.sub
   608                      (get_local $l5)
   609                      (i32.const 1)))
   610                  (i32.load8_u
   611                    (get_local $l2))))
   612              (else
   613                (set_local $l2
   614                  (i32.add
   615                    (get_local $l2)
   616                    (i32.const 1)))))))
   617        (br_if $L0
   618          (tee_local $l0
   619            (i32.load offset=32
   620              (get_local $l0)))))
   621      (i32.store offset=4
   622        (get_local $l3)
   623        (get_local $l1))
   624      (get_local $l3))
   625    (func $f22 (type $t16) (param $p0 i32) (result i32)
   626      (i32.const 8))
   627    (func $decimals (export "decimals") (type $t17) (result i32)
   628      (local $l0 i32) (local $l1 i32)
   629      (i32.store
   630        (i32.const 360)
   631        (i32.const 4))
   632      (i32.store offset=4
   633        (i32.const 360)
   634        (i32.const 0))
   635      (drop
   636        (call $env.Load
   637          (i32.const 360)
   638          (i32.const 384)))
   639      (set_global $g1
   640        (i32.load
   641          (i32.const 384)))
   642      (set_local $l1
   643        (call $f21
   644          (i32.const 324)
   645          (i32.const 1)))
   646      (set_local $l0
   647        (call $f22
   648          (get_local $l1)))
   649      (i32.store offset=8
   650        (get_local $l1)
   651        (get_global $g0))
   652      (set_global $g0
   653        (get_local $l1))
   654      (if $I0
   655        (get_global $g0)
   656        (then
   657          (drop
   658            (call $f19
   659              (get_global $g0)))))
   660      (if $I1
   661        (i32.ne
   662          (get_global $g1)
   663          (i32.load
   664            (i32.const 384)))
   665        (then
   666          (i32.store
   667            (i32.const 384)
   668            (get_global $g1))
   669          (i32.store offset=4
   670            (i32.const 360)
   671            (i32.const 0))
   672          (i32.store
   673            (i32.const 368)
   674            (i32.const 4))
   675          (i32.store offset=4
   676            (i32.const 368)
   677            (i32.const 384))))
   678      (get_local $l0))
   679    (func $totalSupply (export "totalSupply") (type $t18) (result i64)
   680      (local $l0 i32) (local $l1 i64)
   681      (i32.store
   682        (i32.const 360)
   683        (i32.const 4))
   684      (i32.store offset=4
   685        (i32.const 360)
   686        (i32.const 0))
   687      (drop
   688        (call $env.Load
   689          (i32.const 360)
   690          (i32.const 384)))
   691      (set_global $g1
   692        (i32.load
   693          (i32.const 384)))
   694      (set_local $l0
   695        (call $f21
   696          (i32.const 324)
   697          (i32.const 1)))
   698      (set_local $l1
   699        (call $f7
   700          (get_local $l0)))
   701      (i32.store offset=8
   702        (get_local $l0)
   703        (get_global $g0))
   704      (set_global $g0
   705        (get_local $l0))
   706      (if $I0
   707        (get_global $g0)
   708        (then
   709          (drop
   710            (call $f19
   711              (get_global $g0)))))
   712      (if $I1
   713        (i32.ne
   714          (get_global $g1)
   715          (i32.load
   716            (i32.const 384)))
   717        (then
   718          (i32.store
   719            (i32.const 384)
   720            (get_global $g1))
   721          (i32.store offset=4
   722            (i32.const 360)
   723            (i32.const 0))
   724          (i32.store
   725            (i32.const 368)
   726            (i32.const 4))
   727          (i32.store offset=4
   728            (i32.const 368)
   729            (i32.const 384))))
   730      (get_local $l1))
   731    (func $f25 (type $t19) (param $p0 i32) (param $p1 i32) (result i64)
   732      (local $l0 i32) (local $l1 i32)
   733      (set_local $l0
   734        (call $f11
   735          (call $f10
   736            (call $f8
   737              (i32.const 180)
   738              (i32.const 64))
   739            (call $f9
   740              (get_local $p0)))
   741          (get_local $p1)))
   742      (i32.store
   743        (i32.const 360)
   744        (i32.load offset=16
   745          (get_local $l0)))
   746      (i32.store offset=4
   747        (i32.const 360)
   748        (i32.load offset=20
   749          (get_local $l0)))
   750      (set_global $heap_pointer
   751        (i32.add
   752          (call $env.Load
   753            (i32.const 360)
   754            (tee_local $l1
   755              (get_global $heap_pointer)))
   756          (get_global $heap_pointer)))
   757      (i64.load
   758        (get_local $l1)))
   759    (func $f26 (type $t19) (param $p0 i32) (param $p1 i32) (result i64)
   760      (call $f25
   761        (i32.load offset=12
   762          (get_local $p0))
   763        (get_local $p1)))
   764    (func $balanceOf (export "balanceOf") (type $t20) (param $p0 i32) (result i64)
   765      (local $l0 i32) (local $l1 i64)
   766      (i32.store
   767        (i32.const 360)
   768        (i32.const 4))
   769      (i32.store offset=4
   770        (i32.const 360)
   771        (i32.const 0))
   772      (drop
   773        (call $env.Load
   774          (i32.const 360)
   775          (i32.const 384)))
   776      (set_global $g1
   777        (i32.load
   778          (i32.const 384)))
   779      (set_local $l0
   780        (call $f21
   781          (i32.const 324)
   782          (i32.const 1)))
   783      (set_local $l1
   784        (call $f26
   785          (get_local $l0)
   786          (get_local $p0)))
   787      (i32.store offset=8
   788        (get_local $l0)
   789        (get_global $g0))
   790      (set_global $g0
   791        (get_local $l0))
   792      (if $I0
   793        (get_global $g0)
   794        (then
   795          (drop
   796            (call $f19
   797              (get_global $g0)))))
   798      (if $I1
   799        (i32.ne
   800          (get_global $g1)
   801          (i32.load
   802            (i32.const 384)))
   803        (then
   804          (i32.store
   805            (i32.const 384)
   806            (get_global $g1))
   807          (i32.store offset=4
   808            (i32.const 360)
   809            (i32.const 0))
   810          (i32.store
   811            (i32.const 368)
   812            (i32.const 4))
   813          (i32.store offset=4
   814            (i32.const 368)
   815            (i32.const 384))))
   816      (get_local $l1))
   817    (func $f28 (type $t21) (param $p0 i32) (param $p1 i32) (param $p2 i64) (result i32)
   818      (local $l0 i32) (local $l1 i32)
   819      (if $I0 (result i32)
   820        (i64.lt_u
   821          (call $f25
   822            (i32.load offset=12
   823              (get_local $p0))
   824            (call $f6))
   825          (get_local $p2))
   826        (then
   827          (i32.const 0))
   828        (else
   829          (set_local $l0
   830            (call $f6))
   831          (drop
   832            (call $f12
   833              (i32.load offset=12
   834                (get_local $p0))
   835              (get_local $l0)
   836              (i64.sub
   837                (call $f25
   838                  (i32.load offset=12
   839                    (get_local $p0))
   840                  (get_local $l0))
   841                (get_local $p2))))
   842          (set_local $l1
   843            (get_local $p1))
   844          (drop
   845            (call $f12
   846              (i32.load offset=12
   847                (get_local $p0))
   848              (get_local $l1)
   849              (i64.add
   850                (call $f25
   851                  (i32.load offset=12
   852                    (get_local $p0))
   853                  (get_local $l1))
   854                (get_local $p2))))
   855          (i32.const 1))))
   856    (func $transfer (export "transfer") (type $t22) (param $p0 i32) (param $p1 i64) (result i32)
   857      (local $l0 i32) (local $l1 i32)
   858      (i32.store
   859        (i32.const 360)
   860        (i32.const 4))
   861      (i32.store offset=4
   862        (i32.const 360)
   863        (i32.const 0))
   864      (drop
   865        (call $env.Load
   866          (i32.const 360)
   867          (i32.const 384)))
   868      (set_global $g1
   869        (i32.load
   870          (i32.const 384)))
   871      (set_local $l1
   872        (call $f21
   873          (i32.const 324)
   874          (i32.const 1)))
   875      (set_local $l0
   876        (call $f28
   877          (get_local $l1)
   878          (get_local $p0)
   879          (get_local $p1)))
   880      (i32.store offset=8
   881        (get_local $l1)
   882        (get_global $g0))
   883      (set_global $g0
   884        (get_local $l1))
   885      (if $I0
   886        (get_global $g0)
   887        (then
   888          (drop
   889            (call $f19
   890              (get_global $g0)))))
   891      (if $I1
   892        (i32.ne
   893          (get_global $g1)
   894          (i32.load
   895            (i32.const 384)))
   896        (then
   897          (i32.store
   898            (i32.const 384)
   899            (get_global $g1))
   900          (i32.store offset=4
   901            (i32.const 360)
   902            (i32.const 0))
   903          (i32.store
   904            (i32.const 368)
   905            (i32.const 4))
   906          (i32.store offset=4
   907            (i32.const 368)
   908            (i32.const 384))))
   909      (get_local $l0))
   910    (func $f30 (type $t23) (param $p0 i32) (param $p1 i32) (param $p2 i32) (result i32)
   911      (local $l0 i32) (local $l1 i32)
   912      (set_local $l0
   913        (get_local $p0))
   914      (set_global $heap_pointer
   915        (i32.add
   916          (i32.load offset=16
   917            (get_local $l0))
   918          (tee_local $l1
   919            (get_global $heap_pointer))))
   920      (i32.store
   921        (get_local $l1)
   922        (get_local $l0))
   923      (call_indirect (type $t12)
   924        (get_local $l1)
   925        (get_local $p1)
   926        (get_local $p2)
   927        (i32.add
   928          (i32.mul
   929            (i32.const 4)
   930            (i32.load offset=12
   931              (i32.load
   932                (get_local $l1))))
   933          (i32.const 2)))
   934      (get_local $l1))
   935    (func $f31 (type $t24) (param $p0 i32) (param $p1 i32) (result i64)
   936      (local $l0 i32) (local $l1 i32)
   937      (set_local $l0
   938        (get_local $p1))
   939      (set_local $l0
   940        (call_indirect (type $t8)
   941          (get_local $l0)
   942          (call $f10
   943            (call $f8
   944              (i32.const 180)
   945              (i32.const 64))
   946            (call $f9
   947              (get_local $p0)))
   948          (i32.add
   949            (i32.mul
   950              (i32.const 4)
   951              (i32.load offset=12
   952                (i32.load
   953                  (get_local $l0))))
   954            (i32.const 3))))
   955      (i32.store
   956        (i32.const 360)
   957        (i32.load offset=16
   958          (get_local $l0)))
   959      (i32.store offset=4
   960        (i32.const 360)
   961        (i32.load offset=20
   962          (get_local $l0)))
   963      (set_global $heap_pointer
   964        (i32.add
   965          (call $env.Load
   966            (i32.const 360)
   967            (tee_local $l1
   968              (get_global $heap_pointer)))
   969          (get_global $heap_pointer)))
   970      (i64.load
   971        (get_local $l1)))
   972    (func $f32 (type $t25) (param $p0 i32) (param $p1 i32) (param $p2 i32) (param $p3 i64) (result i32)
   973      (local $l0 i32) (local $l1 i32) (local $l2 i64)
   974      (block $B0 (result i32)
   975        (set_local $l2
   976          (call $f31
   977            (i32.load offset=16
   978              (get_local $p0))
   979            (call $f30
   980              (i32.const 252)
   981              (get_local $p1)
   982              (get_local $p2))))
   983        (if $I1 (result i32)
   984          (i64.lt_u
   985            (get_local $l2)
   986            (get_local $p3))
   987          (then
   988            (i32.const 0))
   989          (else
   990            (set_local $l0
   991              (get_local $p1))
   992            (drop
   993              (call $f12
   994                (i32.load offset=12
   995                  (get_local $p0))
   996                (get_local $l0)
   997                (i64.sub
   998                  (call $f25
   999                    (i32.load offset=12
  1000                      (get_local $p0))
  1001                    (get_local $l0))
  1002                  (get_local $p3))))
  1003            (set_local $l1
  1004              (get_local $p2))
  1005            (drop
  1006              (call $f12
  1007                (i32.load offset=12
  1008                  (get_local $p0))
  1009                (get_local $l1)
  1010                (i64.add
  1011                  (call $f25
  1012                    (i32.load offset=12
  1013                      (get_local $p0))
  1014                    (get_local $l1))
  1015                  (get_local $p3))))
  1016            (i32.const 1)))))
  1017    (func $transferFrom (export "transferFrom") (type $t26) (param $p0 i32) (param $p1 i32) (param $p2 i64) (result i32)
  1018      (local $l0 i32) (local $l1 i32)
  1019      (i32.store
  1020        (i32.const 360)
  1021        (i32.const 4))
  1022      (i32.store offset=4
  1023        (i32.const 360)
  1024        (i32.const 0))
  1025      (drop
  1026        (call $env.Load
  1027          (i32.const 360)
  1028          (i32.const 384)))
  1029      (set_global $g1
  1030        (i32.load
  1031          (i32.const 384)))
  1032      (set_local $l1
  1033        (call $f21
  1034          (i32.const 324)
  1035          (i32.const 1)))
  1036      (set_local $l0
  1037        (call $f32
  1038          (get_local $l1)
  1039          (get_local $p0)
  1040          (get_local $p1)
  1041          (get_local $p2)))
  1042      (i32.store offset=8
  1043        (get_local $l1)
  1044        (get_global $g0))
  1045      (set_global $g0
  1046        (get_local $l1))
  1047      (if $I0
  1048        (get_global $g0)
  1049        (then
  1050          (drop
  1051            (call $f19
  1052              (get_global $g0)))))
  1053      (if $I1
  1054        (i32.ne
  1055          (get_global $g1)
  1056          (i32.load
  1057            (i32.const 384)))
  1058        (then
  1059          (i32.store
  1060            (i32.const 384)
  1061            (get_global $g1))
  1062          (i32.store offset=4
  1063            (i32.const 360)
  1064            (i32.const 0))
  1065          (i32.store
  1066            (i32.const 368)
  1067            (i32.const 4))
  1068          (i32.store offset=4
  1069            (i32.const 368)
  1070            (i32.const 384))))
  1071      (get_local $l0))
  1072    (func $f34 (type $t27) (param $p0 i32) (param $p1 i32) (param $p2 i64) (result i64)
  1073      (local $l0 i32) (local $l1 i64)
  1074      (set_local $l0
  1075        (get_local $p1))
  1076      (set_local $l1
  1077        (get_local $p2))
  1078      (i64.store
  1079        (i32.const 392)
  1080        (get_local $l1))
  1081      (set_local $l0
  1082        (call_indirect (type $t8)
  1083          (get_local $l0)
  1084          (call $f10
  1085            (call $f8
  1086              (i32.const 180)
  1087              (i32.const 64))
  1088            (call $f9
  1089              (get_local $p0)))
  1090          (i32.add
  1091            (i32.mul
  1092              (i32.const 4)
  1093              (i32.load offset=12
  1094                (i32.load
  1095                  (get_local $l0))))
  1096            (i32.const 3))))
  1097      (i32.store
  1098        (i32.const 360)
  1099        (i32.load offset=16
  1100          (get_local $l0)))
  1101      (i32.store offset=4
  1102        (i32.const 360)
  1103        (i32.load offset=20
  1104          (get_local $l0)))
  1105      (i32.store
  1106        (i32.const 368)
  1107        (i32.const 8))
  1108      (i32.store offset=4
  1109        (i32.const 368)
  1110        (i32.const 392))
  1111      (get_local $l1))
  1112    (func $f35 (type $t11) (param $p0 i32) (param $p1 i32) (param $p2 i64) (result i64)
  1113      (call $f34
  1114        (i32.load offset=16
  1115          (get_local $p0))
  1116        (call $f30
  1117          (i32.const 252)
  1118          (call $f6)
  1119          (get_local $p1))
  1120        (get_local $p2)))
  1121    (func $approve (export "approve") (type $t28) (param $p0 i32) (param $p1 i64) (result i64)
  1122      (local $l0 i32) (local $l1 i64)
  1123      (i32.store
  1124        (i32.const 360)
  1125        (i32.const 4))
  1126      (i32.store offset=4
  1127        (i32.const 360)
  1128        (i32.const 0))
  1129      (drop
  1130        (call $env.Load
  1131          (i32.const 360)
  1132          (i32.const 384)))
  1133      (set_global $g1
  1134        (i32.load
  1135          (i32.const 384)))
  1136      (set_local $l0
  1137        (call $f21
  1138          (i32.const 324)
  1139          (i32.const 1)))
  1140      (set_local $l1
  1141        (call $f35
  1142          (get_local $l0)
  1143          (get_local $p0)
  1144          (get_local $p1)))
  1145      (i32.store offset=8
  1146        (get_local $l0)
  1147        (get_global $g0))
  1148      (set_global $g0
  1149        (get_local $l0))
  1150      (if $I0
  1151        (get_global $g0)
  1152        (then
  1153          (drop
  1154            (call $f19
  1155              (get_global $g0)))))
  1156      (if $I1
  1157        (i32.ne
  1158          (get_global $g1)
  1159          (i32.load
  1160            (i32.const 384)))
  1161        (then
  1162          (i32.store
  1163            (i32.const 384)
  1164            (get_global $g1))
  1165          (i32.store offset=4
  1166            (i32.const 360)
  1167            (i32.const 0))
  1168          (i32.store
  1169            (i32.const 368)
  1170            (i32.const 4))
  1171          (i32.store offset=4
  1172            (i32.const 368)
  1173            (i32.const 384))))
  1174      (get_local $l1))
  1175    (func $f37 (type $t29) (param $p0 i32) (param $p1 i32) (param $p2 i32) (result i64)
  1176      (call $f31
  1177        (i32.load offset=16
  1178          (get_local $p0))
  1179        (call $f30
  1180          (i32.const 252)
  1181          (get_local $p1)
  1182          (get_local $p2))))
  1183    (func $allowance (export "allowance") (type $t30) (param $p0 i32) (param $p1 i32) (result i64)
  1184      (local $l0 i32) (local $l1 i64)
  1185      (i32.store
  1186        (i32.const 360)
  1187        (i32.const 4))
  1188      (i32.store offset=4
  1189        (i32.const 360)
  1190        (i32.const 0))
  1191      (drop
  1192        (call $env.Load
  1193          (i32.const 360)
  1194          (i32.const 384)))
  1195      (set_global $g1
  1196        (i32.load
  1197          (i32.const 384)))
  1198      (set_local $l0
  1199        (call $f21
  1200          (i32.const 324)
  1201          (i32.const 1)))
  1202      (set_local $l1
  1203        (call $f37
  1204          (get_local $l0)
  1205          (get_local $p0)
  1206          (get_local $p1)))
  1207      (i32.store offset=8
  1208        (get_local $l0)
  1209        (get_global $g0))
  1210      (set_global $g0
  1211        (get_local $l0))
  1212      (if $I0
  1213        (get_global $g0)
  1214        (then
  1215          (drop
  1216            (call $f19
  1217              (get_global $g0)))))
  1218      (if $I1
  1219        (i32.ne
  1220          (get_global $g1)
  1221          (i32.load
  1222            (i32.const 384)))
  1223        (then
  1224          (i32.store
  1225            (i32.const 384)
  1226            (get_global $g1))
  1227          (i32.store offset=4
  1228            (i32.const 360)
  1229            (i32.const 0))
  1230          (i32.store
  1231            (i32.const 368)
  1232            (i32.const 4))
  1233          (i32.store offset=4
  1234            (i32.const 368)
  1235            (i32.const 384))))
  1236      (get_local $l1))
  1237    (table $T0 40 40 anyfunc)
  1238    (memory $default (export "default") 1 1)
  1239    (global $g0 i32 (i32.const 0))
  1240    (global $g1 i32 (i32.const 0))
  1241    (global $heap_pointer (export "heap_pointer") i32 (i32.const 400))
  1242    (elem (i32.const 0) $f3 $f3 $f3 $f3 $f4 $f3 $f3 $f16 $f4 $f3 $f3 $f16 $f4 $f3 $f3 $f16 $f4 $f3 $f3 $f16 $f4 $f14 $f3 $f16 $f4 $f3 $f3 $f16 $f4 $f3 $f15 $f17 $f4 $f3 $f3 $f16 $f13 $f3 $f3 $f16)
  1243    (data (i32.const 0) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00H\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\04\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00H\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00\00\00\00\00\0c\00\00\00\0c\00\00\00$\00\00\00H\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\14\00\00\00\00\00\00\00\0c\00\00\00\0c\00\00\00$\00\00\00H\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\0c\00\00\00\00\00\00\00\0c\00\00\00\0c\00\00\00$\00\00\00H\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\18\00\00\00\00\00\00\00\0c\00\00\00\0c\00\00\00$\00\00\00H\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\0c\00\00\00\00\00\00\00\0c\00\00\00\0c\00\00\00\90\00\00\00H\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\14\00\00\00\08\00\00\00\14\00\00\00\0c\00\00\00$\00\00\00H\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\0c\00\00\00\0c\00\00\00\90\00\00\00H\00\00\00\00\00\00\00\00\00\00\00\09\00\00\00\14\00\00\00\08\00\00\00\14\00\00\00\14\00\00\00$\00\00\00")
  1244    (data (i32.const 360) "\04\00\00\00\00\00\00\00")
  1245    (data (i32.const 368) "\00\00\00\00\00\00\00\00")
  1246    (data (i32.const 376) "\00\00\00\00\00\00\00\00")
  1247    (data (i32.const 392) "\00\00\00\00\00\00\00\00"))