Skip to content

Instantly share code, notes, and snippets.

@andreibancioiu
Created November 21, 2019 08:21
Show Gist options
  • Save andreibancioiu/57ce6477bb215fcf9a96b92dd53e82a2 to your computer and use it in GitHub Desktop.
Save andreibancioiu/57ce6477bb215fcf9a96b92dd53e82a2 to your computer and use it in GitHub Desktop.
SOLL 0.0.3.sol, WASM (WAT)
(module
(type $t0 (func (param i32 i32)))
(type $t1 (func (param i32)))
(type $t2 (func (result i64)))
(type $t3 (func (param i64 i32 i32 i32) (result i32)))
(type $t4 (func (param i32 i32 i32)))
(type $t5 (func (result i32)))
(type $t6 (func (param i32 i32 i32 i32 i32 i32 i32)))
(type $t7 (func))
(type $t8 (func (param i32 i64 i64 i64 i64)))
(type $t9 (func (param i32 i64 i64 i64)))
(type $t10 (func (param i64 i64 i64 i64 i64 i64 i64)))
(import "ethereum" "finish" (func $ethereum.finish (type $t0)))
(import "ethereum" "getCallValue" (func $ethereum.getCallValue (type $t1)))
(import "ethereum" "storageStore" (func $ethereum.storageStore (type $t0)))
(import "ethereum" "getCaller" (func $ethereum.getCaller (type $t1)))
(import "ethereum" "getGasLeft" (func $ethereum.getGasLeft (type $t2)))
(import "ethereum" "callStatic" (func $ethereum.callStatic (type $t3)))
(import "ethereum" "returnDataCopy" (func $ethereum.returnDataCopy (type $t4)))
(import "ethereum" "storageLoad" (func $ethereum.storageLoad (type $t0)))
(import "ethereum" "revert" (func $ethereum.revert (type $t0)))
(import "ethereum" "getCallDataSize" (func $ethereum.getCallDataSize (type $t5)))
(import "ethereum" "callDataCopy" (func $ethereum.callDataCopy (type $t4)))
(import "ethereum" "log" (func $ethereum.log (type $t6)))
(func $__wasm_call_ctors (type $t7))
(func $solidity.bswapi256 (type $t8) (param $p0 i32) (param $p1 i64) (param $p2 i64) (param $p3 i64) (param $p4 i64)
get_local $p0
get_local $p4
i64.const 56
i64.shr_u
get_local $p4
i64.const 56
i64.shl
i64.or
get_local $p4
i64.const 40
i64.shl
i64.const 71776119061217280
i64.and
i64.or
get_local $p4
i64.const 24
i64.shl
i64.const 280375465082880
i64.and
i64.or
get_local $p4
i64.const 8
i64.shl
i64.const 1095216660480
i64.and
i64.or
get_local $p4
i64.const 8
i64.shr_u
i64.const 4278190080
i64.and
i64.or
get_local $p4
i64.const 24
i64.shr_u
i64.const 16711680
i64.and
i64.or
get_local $p4
i64.const 40
i64.shr_u
i64.const 65280
i64.and
i64.or
i64.store
get_local $p0
i32.const 24
i32.add
get_local $p1
i64.const 56
i64.shl
get_local $p1
i64.const 40
i64.shl
i64.const 71776119061217280
i64.and
i64.or
get_local $p1
i64.const 24
i64.shl
i64.const 280375465082880
i64.and
i64.or
get_local $p1
i64.const 8
i64.shl
i64.const 1095216660480
i64.and
i64.or
get_local $p1
i64.const 8
i64.shr_u
i64.const 4278190080
i64.and
i64.or
get_local $p1
i64.const 24
i64.shr_u
i64.const 16711680
i64.and
i64.or
get_local $p1
i64.const 40
i64.shr_u
i64.const 65280
i64.and
i64.or
get_local $p1
i64.const 56
i64.shr_u
i64.or
i64.store
get_local $p0
get_local $p2
i64.const 56
i64.shl
get_local $p2
i64.const 40
i64.shl
i64.const 71776119061217280
i64.and
i64.or
get_local $p2
i64.const 24
i64.shl
i64.const 280375465082880
i64.and
i64.or
get_local $p2
i64.const 8
i64.shl
i64.const 1095216660480
i64.and
i64.or
get_local $p2
i64.const 8
i64.shr_u
i64.const 4278190080
i64.and
i64.or
get_local $p2
i64.const 24
i64.shr_u
i64.const 16711680
i64.and
i64.or
get_local $p2
i64.const 40
i64.shr_u
i64.const 65280
i64.and
i64.or
get_local $p2
i64.const 56
i64.shr_u
i64.or
i64.store offset=16
get_local $p0
get_local $p3
i64.const 56
i64.shl
get_local $p3
i64.const 40
i64.shl
i64.const 71776119061217280
i64.and
i64.or
get_local $p3
i64.const 24
i64.shl
i64.const 280375465082880
i64.and
i64.or
get_local $p3
i64.const 8
i64.shl
i64.const 1095216660480
i64.and
i64.or
get_local $p3
i64.const 8
i64.shr_u
i64.const 4278190080
i64.and
i64.or
get_local $p3
i64.const 24
i64.shr_u
i64.const 16711680
i64.and
i64.or
get_local $p3
i64.const 40
i64.shr_u
i64.const 65280
i64.and
i64.or
get_local $p3
i64.const 56
i64.shr_u
i64.or
i64.store offset=8)
(func $balanceOf.address (type $t9) (param $p0 i32) (param $p1 i64) (param $p2 i64) (param $p3 i64)
(local $l0 i32) (local $l1 i32) (local $l2 i64) (local $l3 i32) (local $l4 i32) (local $l5 i32)
get_global $g0
i32.const 208
i32.sub
tee_local $l0
set_global $g0
get_local $l0
tee_local $l1
i32.const 136
i32.add
call $ethereum.getCallValue
block $B0
get_local $l1
i64.load offset=136
get_local $l1
i32.const 136
i32.add
i32.const 8
i32.add
i64.load
i64.or
i64.const 0
i64.ne
br_if $B0
get_local $l1
i32.const 104
i32.add
get_local $p1
get_local $p2
get_local $p3
i64.const 4294967295
i64.and
i64.const 0
call $solidity.bswapi256
get_local $l1
i32.const 104
i32.add
i32.const 8
i32.add
i64.load
set_local $p1
get_local $l1
i32.const 104
i32.add
i32.const 16
i32.add
i64.load
set_local $p2
get_local $l1
i32.const 104
i32.add
i32.const 24
i32.add
i64.load
set_local $p3
get_local $l1
i64.load offset=104
set_local $l2
get_local $l0
tee_local $l0
i32.const -64
i32.add
tee_local $l3
tee_local $l4
set_global $g0
get_local $l0
i32.const -8
i32.add
i64.const 216172782113783808
i64.store
get_local $l0
i32.const -16
i32.add
i64.const 0
i64.store
get_local $l0
i32.const -24
i32.add
i64.const 0
i64.store
get_local $l0
i32.const -32
i32.add
i64.const 0
i64.store
get_local $l0
i32.const -40
i32.add
get_local $p3
i64.store
get_local $l0
i32.const -48
i32.add
get_local $p2
i64.store
get_local $l0
i32.const -56
i32.add
get_local $p1
i64.store
get_local $l3
get_local $l2
i64.store
get_local $l1
i64.const 0
i64.store offset=192
get_local $l1
i64.const 0
i64.store offset=184
get_local $l1
i64.const 150994944
i64.store32 offset=200
call $ethereum.getGasLeft
get_local $l1
i32.const 184
i32.add
get_local $l3
i32.const 64
call $ethereum.callStatic
drop
get_local $l1
i32.const 152
i32.add
i32.const 0
i32.const 32
call $ethereum.returnDataCopy
get_local $l1
i32.const 72
i32.add
get_local $l1
i64.load offset=152
get_local $l1
i32.const 152
i32.add
i32.const 8
i32.add
i64.load
get_local $l1
i32.const 152
i32.add
i32.const 16
i32.add
i64.load
get_local $l1
i32.const 152
i32.add
i32.const 24
i32.add
i64.load
call $solidity.bswapi256
get_local $l1
i32.const 40
i32.add
get_local $l1
i64.load offset=72
get_local $l1
i32.const 72
i32.add
i32.const 8
i32.add
i64.load
get_local $l1
i32.const 72
i32.add
i32.const 16
i32.add
i64.load
get_local $l1
i32.const 72
i32.add
i32.const 24
i32.add
i64.load
call $solidity.bswapi256
get_local $l1
i32.const 40
i32.add
i32.const 8
i32.add
i64.load
set_local $p1
get_local $l1
i32.const 40
i32.add
i32.const 16
i32.add
i64.load
set_local $p2
get_local $l1
i32.const 40
i32.add
i32.const 24
i32.add
i64.load
set_local $p3
get_local $l1
i64.load offset=40
set_local $l2
get_local $l4
tee_local $l0
i32.const -32
i32.add
tee_local $l4
tee_local $l3
set_global $g0
get_local $l3
tee_local $l3
i32.const -32
i32.add
tee_local $l5
set_global $g0
get_local $l0
i32.const -8
i32.add
get_local $p3
i64.store
get_local $l0
i32.const -16
i32.add
get_local $p2
i64.store
get_local $l0
i32.const -24
i32.add
get_local $p1
i64.store
get_local $l4
get_local $l2
i64.store
get_local $l4
get_local $l5
call $ethereum.storageLoad
get_local $l1
i32.const 8
i32.add
get_local $l5
i64.load
get_local $l3
i32.const -24
i32.add
i64.load
get_local $l3
i32.const -16
i32.add
i64.load
get_local $l3
i32.const -8
i32.add
i64.load
call $solidity.bswapi256
get_local $l1
i32.const 8
i32.add
i32.const 8
i32.add
i64.load
set_local $p1
get_local $l1
i32.const 8
i32.add
i32.const 16
i32.add
i64.load
set_local $p2
get_local $l1
i64.load offset=8
set_local $p3
get_local $p0
i32.const 24
i32.add
get_local $l1
i32.const 8
i32.add
i32.const 24
i32.add
i64.load
i64.store
get_local $p0
get_local $p2
i64.store offset=16
get_local $p0
get_local $p1
i64.store offset=8
get_local $p0
get_local $p3
i64.store
get_local $l1
i32.const 208
i32.add
set_global $g0
return
end
i32.const 1085
i32.const 23
call $ethereum.revert
unreachable)
(func $transfer.address.uint256 (type $t10) (param $p0 i64) (param $p1 i64) (param $p2 i64) (param $p3 i64) (param $p4 i64) (param $p5 i64) (param $p6 i64)
(local $l0 i32) (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i64) (local $l5 i64) (local $l6 i64) (local $l7 i64) (local $l8 i32) (local $l9 i32) (local $l10 i32) (local $l11 i64) (local $l12 i64) (local $l13 i64) (local $l14 i64) (local $l15 i64) (local $l16 i64) (local $l17 i64)
get_global $g0
i32.const 720
i32.sub
tee_local $l0
set_global $g0
get_local $l0
tee_local $l1
i32.const 648
i32.add
call $ethereum.getCallValue
block $B0
block $B1
block $B2
block $B3
block $B4
get_local $l1
i64.load offset=648
get_local $l1
i32.const 648
i32.add
i32.const 8
i32.add
i64.load
i64.or
i64.const 0
i64.ne
br_if $B4
get_local $l0
tee_local $l0
i32.const -32
i32.add
tee_local $l2
tee_local $l3
set_global $g0
get_local $l2
call $ethereum.getCaller
get_local $l1
i32.const 616
i32.add
i64.const 0
get_local $l2
i64.load
tee_local $l4
i64.const 32
i64.shl
get_local $l4
i64.const 32
i64.shr_u
get_local $l0
i32.const -24
i32.add
i64.load
tee_local $l4
i64.const 32
i64.shl
i64.or
get_local $l0
i32.const -16
i32.add
i64.load32_u
i64.const 32
i64.shl
get_local $l4
i64.const 32
i64.shr_u
i64.or
call $solidity.bswapi256
get_local $l1
i32.const 584
i32.add
get_local $l1
i64.load offset=616
get_local $l1
i32.const 616
i32.add
i32.const 8
i32.add
i64.load
get_local $l1
i32.const 616
i32.add
i32.const 16
i32.add
i64.load32_u
i64.const 0
call $solidity.bswapi256
get_local $l1
i32.const 584
i32.add
i32.const 8
i32.add
i64.load
set_local $l4
get_local $l1
i32.const 584
i32.add
i32.const 16
i32.add
i64.load
set_local $l5
get_local $l1
i32.const 584
i32.add
i32.const 24
i32.add
i64.load
set_local $l6
get_local $l1
i64.load offset=584
set_local $l7
get_local $l3
tee_local $l0
i32.const -64
i32.add
tee_local $l2
tee_local $l8
set_global $g0
get_local $l0
i32.const -8
i32.add
i64.const 216172782113783808
i64.store
get_local $l0
i32.const -16
i32.add
i64.const 0
i64.store
get_local $l0
i32.const -24
i32.add
i64.const 0
i64.store
get_local $l0
i32.const -32
i32.add
i64.const 0
i64.store
get_local $l0
i32.const -40
i32.add
get_local $l6
i64.store
get_local $l0
i32.const -48
i32.add
get_local $l5
i64.store
get_local $l0
i32.const -56
i32.add
get_local $l4
i64.store
get_local $l2
get_local $l7
i64.store
get_local $l1
i64.const 0
i64.store offset=704
get_local $l1
i64.const 0
i64.store offset=696
get_local $l1
i64.const 150994944
i64.store32 offset=712
call $ethereum.getGasLeft
get_local $l1
i32.const 696
i32.add
get_local $l2
i32.const 64
call $ethereum.callStatic
drop
get_local $l1
i32.const 664
i32.add
i32.const 0
i32.const 32
call $ethereum.returnDataCopy
get_local $l1
i32.const 552
i32.add
get_local $l1
i64.load offset=664
get_local $l1
i32.const 664
i32.add
i32.const 8
i32.add
tee_local $l3
i64.load
get_local $l1
i32.const 664
i32.add
i32.const 16
i32.add
tee_local $l9
i64.load
get_local $l1
i32.const 664
i32.add
i32.const 24
i32.add
tee_local $l10
i64.load
call $solidity.bswapi256
get_local $l1
i32.const 552
i32.add
i32.const 24
i32.add
i64.load
set_local $l11
get_local $l1
i32.const 552
i32.add
i32.const 16
i32.add
i64.load
set_local $l12
get_local $l1
i32.const 552
i32.add
i32.const 8
i32.add
i64.load
set_local $l13
get_local $l1
i64.load offset=552
set_local $l14
get_local $l8
tee_local $l0
i32.const -32
i32.add
tee_local $l2
tee_local $l8
set_global $g0
get_local $l2
call $ethereum.getCaller
get_local $l1
i32.const 520
i32.add
i64.const 0
get_local $l2
i64.load
tee_local $l4
i64.const 32
i64.shl
get_local $l4
i64.const 32
i64.shr_u
get_local $l0
i32.const -24
i32.add
i64.load
tee_local $l4
i64.const 32
i64.shl
i64.or
get_local $l0
i32.const -16
i32.add
i64.load32_u
i64.const 32
i64.shl
get_local $l4
i64.const 32
i64.shr_u
i64.or
call $solidity.bswapi256
get_local $l1
i32.const 488
i32.add
get_local $l1
i64.load offset=520
get_local $l1
i32.const 520
i32.add
i32.const 8
i32.add
i64.load
get_local $l1
i32.const 520
i32.add
i32.const 16
i32.add
i64.load32_u
i64.const 0
call $solidity.bswapi256
get_local $l1
i32.const 488
i32.add
i32.const 8
i32.add
i64.load
set_local $l4
get_local $l1
i32.const 488
i32.add
i32.const 16
i32.add
i64.load
set_local $l5
get_local $l1
i32.const 488
i32.add
i32.const 24
i32.add
i64.load
set_local $l6
get_local $l1
i64.load offset=488
set_local $l7
get_local $l8
tee_local $l0
i32.const -64
i32.add
tee_local $l2
tee_local $l8
set_global $g0
get_local $l0
i32.const -8
i32.add
i64.const 216172782113783808
i64.store
get_local $l0
i32.const -16
i32.add
i64.const 0
i64.store
get_local $l0
i32.const -24
i32.add
i64.const 0
i64.store
get_local $l0
i32.const -32
i32.add
i64.const 0
i64.store
get_local $l0
i32.const -40
i32.add
get_local $l6
i64.store
get_local $l0
i32.const -48
i32.add
get_local $l5
i64.store
get_local $l0
i32.const -56
i32.add
get_local $l4
i64.store
get_local $l2
get_local $l7
i64.store
get_local $l1
i64.const 0
i64.store offset=704
get_local $l1
i64.const 0
i64.store offset=696
get_local $l1
i64.const 150994944
i64.store32 offset=712
call $ethereum.getGasLeft
get_local $l1
i32.const 696
i32.add
get_local $l2
i32.const 64
call $ethereum.callStatic
drop
get_local $l1
i32.const 664
i32.add
i32.const 0
i32.const 32
call $ethereum.returnDataCopy
get_local $l1
i32.const 456
i32.add
get_local $l1
i64.load offset=664
get_local $l3
i64.load
get_local $l9
i64.load
get_local $l10
i64.load
call $solidity.bswapi256
get_local $l1
i32.const 424
i32.add
get_local $l1
i64.load offset=456
get_local $l1
i32.const 456
i32.add
i32.const 8
i32.add
i64.load
get_local $l1
i32.const 456
i32.add
i32.const 16
i32.add
i64.load
get_local $l1
i32.const 456
i32.add
i32.const 24
i32.add
i64.load
call $solidity.bswapi256
get_local $l1
i32.const 424
i32.add
i32.const 8
i32.add
i64.load
set_local $l4
get_local $l1
i32.const 424
i32.add
i32.const 16
i32.add
i64.load
set_local $l5
get_local $l1
i32.const 424
i32.add
i32.const 24
i32.add
i64.load
set_local $l6
get_local $l1
i64.load offset=424
set_local $l7
get_local $l8
tee_local $l0
i32.const -32
i32.add
tee_local $l8
tee_local $l2
set_global $g0
get_local $l2
tee_local $l2
i32.const -32
i32.add
tee_local $l9
tee_local $l10
set_global $g0
get_local $l0
i32.const -8
i32.add
get_local $l6
i64.store
get_local $l0
i32.const -16
i32.add
get_local $l5
i64.store
get_local $l0
i32.const -24
i32.add
get_local $l4
i64.store
get_local $l8
get_local $l7
i64.store
get_local $l8
get_local $l9
call $ethereum.storageLoad
get_local $l1
i32.const 392
i32.add
get_local $l9
i64.load
get_local $l2
i32.const -24
i32.add
i64.load
get_local $l2
i32.const -16
i32.add
i64.load
get_local $l2
i32.const -8
i32.add
i64.load
call $solidity.bswapi256
get_local $l1
i32.const 392
i32.add
i32.const 24
i32.add
i64.load
set_local $l4
get_local $l1
i32.const 392
i32.add
i32.const 16
i32.add
i64.load
set_local $l5
get_local $l1
i32.const 392
i32.add
i32.const 8
i32.add
i64.load
set_local $l6
get_local $l1
i64.load offset=392
set_local $l7
get_local $l1
i32.const 664
i32.add
call $ethereum.getCallValue
get_local $l1
i64.load offset=664
get_local $l3
i64.load
i64.or
i64.const 0
i64.ne
br_if $B3
get_local $l7
get_local $p3
i64.lt_u
tee_local $l0
get_local $l6
get_local $p4
i64.lt_u
get_local $l6
get_local $p4
i64.eq
select
tee_local $l2
get_local $l5
get_local $p5
i64.lt_u
tee_local $l3
get_local $l4
get_local $p6
i64.lt_u
get_local $l4
get_local $p6
i64.eq
select
get_local $l5
get_local $p5
i64.xor
get_local $l4
get_local $p6
i64.xor
i64.or
i64.eqz
select
br_if $B2
get_local $l1
i32.const 360
i32.add
get_local $l14
get_local $l13
get_local $l12
get_local $l11
call $solidity.bswapi256
get_local $l1
i32.const 360
i32.add
i32.const 8
i32.add
i64.load
set_local $l11
get_local $l1
i32.const 360
i32.add
i32.const 16
i32.add
i64.load
set_local $l12
get_local $l1
i32.const 360
i32.add
i32.const 24
i32.add
i64.load
set_local $l13
get_local $l1
i64.load offset=360
set_local $l14
get_local $l1
i32.const 328
i32.add
get_local $l7
get_local $p3
i64.sub
get_local $l6
get_local $p4
i64.sub
get_local $l0
i64.extend_u/i32
i64.sub
get_local $l5
get_local $p5
i64.sub
tee_local $l5
get_local $l2
i64.extend_u/i32
tee_local $l6
i64.sub
get_local $l4
get_local $p6
i64.sub
get_local $l3
i64.extend_u/i32
i64.sub
get_local $l5
get_local $l6
i64.lt_u
i64.extend_u/i32
i64.sub
call $solidity.bswapi256
get_local $l1
i32.const 328
i32.add
i32.const 8
i32.add
i64.load
set_local $l4
get_local $l1
i32.const 328
i32.add
i32.const 16
i32.add
i64.load
set_local $l5
get_local $l1
i32.const 328
i32.add
i32.const 24
i32.add
i64.load
set_local $l6
get_local $l1
i64.load offset=328
set_local $l7
get_local $l10
tee_local $l0
i32.const -32
i32.add
tee_local $l3
tee_local $l2
set_global $g0
get_local $l2
tee_local $l2
i32.const -32
i32.add
tee_local $l8
tee_local $l9
set_global $g0
get_local $l2
i32.const -8
i32.add
get_local $l6
i64.store
get_local $l2
i32.const -16
i32.add
get_local $l5
i64.store
get_local $l2
i32.const -24
i32.add
get_local $l4
i64.store
get_local $l8
get_local $l7
i64.store
get_local $l0
i32.const -8
i32.add
get_local $l13
i64.store
get_local $l0
i32.const -16
i32.add
get_local $l12
i64.store
get_local $l0
i32.const -24
i32.add
get_local $l11
i64.store
get_local $l3
get_local $l14
i64.store
get_local $l3
get_local $l8
call $ethereum.storageStore
get_local $l1
i32.const 296
i32.add
get_local $p0
get_local $p1
get_local $p2
i64.const 4294967295
i64.and
i64.const 0
call $solidity.bswapi256
get_local $l1
i32.const 296
i32.add
i32.const 8
i32.add
i64.load
set_local $l6
get_local $l1
i32.const 296
i32.add
i32.const 16
i32.add
i64.load
set_local $l7
get_local $l1
i32.const 296
i32.add
i32.const 24
i32.add
i64.load
set_local $p0
get_local $l1
i64.load offset=296
set_local $p1
get_local $l9
tee_local $l0
i32.const -64
i32.add
tee_local $l2
tee_local $l8
set_global $g0
get_local $l0
i32.const -8
i32.add
i64.const 216172782113783808
i64.store
get_local $l0
i32.const -16
i32.add
i64.const 0
i64.store
get_local $l0
i32.const -24
i32.add
i64.const 0
i64.store
get_local $l0
i32.const -32
i32.add
i64.const 0
i64.store
get_local $l0
i32.const -40
i32.add
get_local $p0
i64.store
get_local $l0
i32.const -48
i32.add
get_local $l7
i64.store
get_local $l0
i32.const -56
i32.add
get_local $l6
i64.store
get_local $l2
get_local $p1
i64.store
get_local $l1
i64.const 0
i64.store offset=704
get_local $l1
i64.const 0
i64.store offset=696
get_local $l1
i64.const 150994944
i64.store32 offset=712
call $ethereum.getGasLeft
get_local $l1
i32.const 696
i32.add
get_local $l2
i32.const 64
call $ethereum.callStatic
drop
get_local $l1
i32.const 664
i32.add
i32.const 0
i32.const 32
call $ethereum.returnDataCopy
get_local $l1
i32.const 264
i32.add
get_local $l1
i64.load offset=664
get_local $l1
i32.const 664
i32.add
i32.const 8
i32.add
tee_local $l3
i64.load
get_local $l1
i32.const 664
i32.add
i32.const 16
i32.add
tee_local $l9
i64.load
get_local $l1
i32.const 664
i32.add
i32.const 24
i32.add
tee_local $l10
i64.load
call $solidity.bswapi256
get_local $l1
i32.const 264
i32.add
i32.const 24
i32.add
i64.load
set_local $l13
get_local $l1
i32.const 264
i32.add
i32.const 16
i32.add
i64.load
set_local $l14
get_local $l1
i32.const 264
i32.add
i32.const 8
i32.add
i64.load
set_local $l15
get_local $l1
i64.load offset=264
set_local $l16
get_local $l8
tee_local $l0
i32.const -64
i32.add
tee_local $l2
tee_local $l8
set_global $g0
get_local $l0
i32.const -8
i32.add
i64.const 216172782113783808
i64.store
get_local $l0
i32.const -16
i32.add
i64.const 0
i64.store
get_local $l0
i32.const -24
i32.add
i64.const 0
i64.store
get_local $l0
i32.const -32
i32.add
i64.const 0
i64.store
get_local $l0
i32.const -40
i32.add
get_local $p0
i64.store
get_local $l0
i32.const -48
i32.add
get_local $l7
i64.store
get_local $l0
i32.const -56
i32.add
get_local $l6
i64.store
get_local $l2
get_local $p1
i64.store
get_local $l1
i64.const 0
i64.store offset=704
get_local $l1
i64.const 0
i64.store offset=696
get_local $l1
i64.const 150994944
i64.store32 offset=712
call $ethereum.getGasLeft
get_local $l1
i32.const 696
i32.add
get_local $l2
i32.const 64
call $ethereum.callStatic
drop
get_local $l1
i32.const 664
i32.add
i32.const 0
i32.const 32
call $ethereum.returnDataCopy
get_local $l1
i32.const 232
i32.add
get_local $l1
i64.load offset=664
get_local $l3
i64.load
get_local $l9
i64.load
get_local $l10
i64.load
call $solidity.bswapi256
get_local $l1
i32.const 200
i32.add
get_local $l1
i64.load offset=232
get_local $l1
i32.const 232
i32.add
i32.const 8
i32.add
i64.load
get_local $l1
i32.const 232
i32.add
i32.const 16
i32.add
i64.load
get_local $l1
i32.const 232
i32.add
i32.const 24
i32.add
i64.load
call $solidity.bswapi256
get_local $l1
i32.const 200
i32.add
i32.const 8
i32.add
i64.load
set_local $l4
get_local $l1
i32.const 200
i32.add
i32.const 16
i32.add
i64.load
set_local $l5
get_local $l1
i32.const 200
i32.add
i32.const 24
i32.add
i64.load
set_local $p2
get_local $l1
i64.load offset=200
set_local $l11
get_local $l8
tee_local $l0
i32.const -32
i32.add
tee_local $l8
tee_local $l2
set_global $g0
get_local $l2
tee_local $l2
i32.const -32
i32.add
tee_local $l9
tee_local $l10
set_global $g0
get_local $l0
i32.const -8
i32.add
get_local $p2
i64.store
get_local $l0
i32.const -16
i32.add
get_local $l5
i64.store
get_local $l0
i32.const -24
i32.add
get_local $l4
i64.store
get_local $l8
get_local $l11
i64.store
get_local $l8
get_local $l9
call $ethereum.storageLoad
get_local $l1
i32.const 168
i32.add
get_local $l9
i64.load
get_local $l2
i32.const -24
i32.add
i64.load
get_local $l2
i32.const -16
i32.add
i64.load
get_local $l2
i32.const -8
i32.add
i64.load
call $solidity.bswapi256
get_local $l1
i32.const 168
i32.add
i32.const 24
i32.add
i64.load
set_local $l4
get_local $l1
i32.const 168
i32.add
i32.const 16
i32.add
i64.load
set_local $l5
get_local $l1
i32.const 168
i32.add
i32.const 8
i32.add
i64.load
set_local $p2
get_local $l1
i64.load offset=168
set_local $l11
get_local $l1
i32.const 664
i32.add
call $ethereum.getCallValue
get_local $l1
i64.load offset=664
get_local $l3
i64.load
i64.or
i64.const 0
i64.ne
br_if $B1
get_local $l11
get_local $p3
i64.add
tee_local $l17
get_local $l11
i64.lt_u
tee_local $l0
get_local $p2
get_local $p4
i64.add
get_local $l0
i64.extend_u/i32
i64.add
tee_local $l12
get_local $p2
i64.lt_u
get_local $l12
get_local $p2
i64.eq
select
tee_local $l0
get_local $l5
get_local $p5
i64.add
tee_local $l11
get_local $l0
i64.extend_u/i32
i64.add
tee_local $p2
get_local $l5
i64.lt_u
get_local $l4
get_local $p6
i64.add
get_local $l11
get_local $l5
i64.lt_u
i64.extend_u/i32
i64.add
get_local $p2
get_local $l11
i64.lt_u
i64.extend_u/i32
i64.add
tee_local $l11
get_local $l4
i64.lt_u
get_local $l11
get_local $l4
i64.eq
select
get_local $p2
get_local $l5
i64.xor
get_local $l11
get_local $l4
i64.xor
i64.or
i64.eqz
select
br_if $B0
get_local $l1
i32.const 136
i32.add
get_local $l16
get_local $l15
get_local $l14
get_local $l13
call $solidity.bswapi256
get_local $l1
i32.const 136
i32.add
i32.const 8
i32.add
i64.load
set_local $l4
get_local $l1
i32.const 136
i32.add
i32.const 16
i32.add
i64.load
set_local $l5
get_local $l1
i32.const 136
i32.add
i32.const 24
i32.add
i64.load
set_local $l13
get_local $l1
i64.load offset=136
set_local $l14
get_local $l1
i32.const 104
i32.add
get_local $l17
get_local $l12
get_local $p2
get_local $l11
call $solidity.bswapi256
get_local $l1
i32.const 104
i32.add
i32.const 8
i32.add
i64.load
set_local $p2
get_local $l1
i32.const 104
i32.add
i32.const 16
i32.add
i64.load
set_local $l11
get_local $l1
i32.const 104
i32.add
i32.const 24
i32.add
i64.load
set_local $l12
get_local $l1
i64.load offset=104
set_local $l15
get_local $l10
tee_local $l0
i32.const -32
i32.add
tee_local $l3
tee_local $l2
set_global $g0
get_local $l2
tee_local $l2
i32.const -32
i32.add
tee_local $l8
tee_local $l9
set_global $g0
get_local $l2
i32.const -8
i32.add
get_local $l12
i64.store
get_local $l2
i32.const -16
i32.add
get_local $l11
i64.store
get_local $l2
i32.const -24
i32.add
get_local $p2
i64.store
get_local $l8
get_local $l15
i64.store
get_local $l0
i32.const -8
i32.add
get_local $l13
i64.store
get_local $l0
i32.const -16
i32.add
get_local $l5
i64.store
get_local $l0
i32.const -24
i32.add
get_local $l4
i64.store
get_local $l3
get_local $l14
i64.store
get_local $l3
get_local $l8
call $ethereum.storageStore
get_local $l9
tee_local $l0
i32.const -32
i32.add
tee_local $l2
tee_local $l3
set_global $g0
get_local $l2
call $ethereum.getCaller
get_local $l1
i32.const 72
i32.add
i64.const 0
get_local $l2
i64.load
tee_local $l4
i64.const 32
i64.shl
get_local $l4
i64.const 32
i64.shr_u
get_local $l0
i32.const -24
i32.add
i64.load
tee_local $l4
i64.const 32
i64.shl
i64.or
get_local $l0
i32.const -16
i32.add
i64.load32_u
i64.const 32
i64.shl
get_local $l4
i64.const 32
i64.shr_u
i64.or
call $solidity.bswapi256
get_local $l1
i32.const 72
i32.add
i32.const 8
i32.add
i64.load
set_local $l4
get_local $l1
i32.const 72
i32.add
i32.const 16
i32.add
i64.load32_u
set_local $l5
get_local $l1
i64.load offset=72
set_local $p2
get_local $l3
tee_local $l0
i32.const -32
i32.add
tee_local $l2
tee_local $l3
set_global $g0
get_local $l1
i32.const 40
i32.add
get_local $p2
get_local $l4
get_local $l5
i64.const 0
call $solidity.bswapi256
get_local $l1
i32.const 40
i32.add
i32.const 8
i32.add
i64.load
set_local $l4
get_local $l1
i32.const 40
i32.add
i32.const 16
i32.add
i64.load
set_local $l5
get_local $l1
i64.load offset=40
set_local $p2
get_local $l0
i32.const -8
i32.add
get_local $l1
i32.const 40
i32.add
i32.const 24
i32.add
i64.load
i64.store
get_local $l0
i32.const -16
i32.add
get_local $l5
i64.store
get_local $l0
i32.const -24
i32.add
get_local $l4
i64.store
get_local $l2
get_local $p2
i64.store
get_local $l3
tee_local $l0
i32.const -32
i32.add
tee_local $l3
tee_local $l8
set_global $g0
get_local $l0
i32.const -8
i32.add
get_local $p0
i64.store
get_local $l0
i32.const -16
i32.add
get_local $l7
i64.store
get_local $l0
i32.const -24
i32.add
get_local $l6
i64.store
get_local $l3
get_local $p1
i64.store
get_local $l8
tee_local $l0
i32.const -32
i32.add
tee_local $l8
set_global $g0
get_local $l1
i32.const 8
i32.add
get_local $p3
get_local $p4
get_local $p5
get_local $p6
call $solidity.bswapi256
get_local $l1
i32.const 8
i32.add
i32.const 8
i32.add
i64.load
set_local $p6
get_local $l1
i32.const 8
i32.add
i32.const 16
i32.add
i64.load
set_local $p4
get_local $l1
i64.load offset=8
set_local $p5
get_local $l0
i32.const -8
i32.add
get_local $l1
i32.const 8
i32.add
i32.const 24
i32.add
i64.load
i64.store
get_local $l0
i32.const -16
i32.add
get_local $p4
i64.store
get_local $l0
i32.const -24
i32.add
get_local $p6
i64.store
get_local $l8
get_local $p5
i64.store
get_local $l8
i32.const 32
i32.const 4
i32.const 1024
get_local $l2
get_local $l3
i32.const 0
call $ethereum.log
get_local $l1
i32.const 720
i32.add
set_global $g0
return
end
i32.const 1085
i32.const 23
call $ethereum.revert
unreachable
end
i32.const 1085
i32.const 23
call $ethereum.revert
unreachable
end
i32.const 1055
i32.const 30
call $ethereum.revert
unreachable
end
i32.const 1085
i32.const 23
call $ethereum.revert
unreachable
end
i32.const 1028
i32.const 27
call $ethereum.revert
unreachable)
(func $main (type $t7)
(local $l0 i32) (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i64) (local $l6 i64) (local $l7 i64) (local $l8 i64)
get_global $g0
i32.const 160
i32.sub
tee_local $l0
set_local $l1
get_local $l0
set_global $g0
get_local $l0
set_local $l2
block $B0
block $B1
block $B2
call $ethereum.getCallDataSize
i32.const 3
i32.le_u
br_if $B2
get_local $l0
i32.const -16
i32.add
tee_local $l0
tee_local $l3
set_global $g0
get_local $l0
i32.const 0
i32.const 4
call $ethereum.callDataCopy
get_local $l0
i32.load
tee_local $l0
i32.const -1147402839
i32.eq
br_if $B1
get_local $l0
i32.const 830644336
i32.ne
br_if $B2
get_local $l3
tee_local $l0
i32.const -32
i32.add
tee_local $l3
tee_local $l4
set_global $g0
get_local $l3
i32.const 4
i32.const 32
call $ethereum.callDataCopy
get_local $l1
i32.const 64
i32.add
get_local $l3
i64.load
get_local $l0
i32.const -24
i32.add
i64.load
get_local $l0
i32.const -16
i32.add
i64.load
get_local $l0
i32.const -8
i32.add
i64.load
call $solidity.bswapi256
get_local $l1
i32.const 32
i32.add
get_local $l1
i64.load offset=64
get_local $l1
i32.const 64
i32.add
i32.const 8
i32.add
i64.load
get_local $l1
i32.const 64
i32.add
i32.const 16
i32.add
i64.load32_u
call $balanceOf.address
get_local $l1
get_local $l1
i64.load offset=32
get_local $l1
i32.const 32
i32.add
i32.const 8
i32.add
i64.load
get_local $l1
i32.const 32
i32.add
i32.const 16
i32.add
i64.load
get_local $l1
i32.const 32
i32.add
i32.const 24
i32.add
i64.load
call $solidity.bswapi256
get_local $l1
i32.const 8
i32.add
i64.load
set_local $l5
get_local $l1
i32.const 16
i32.add
i64.load
set_local $l6
get_local $l1
i32.const 24
i32.add
i64.load
set_local $l7
get_local $l1
i64.load
set_local $l8
get_local $l4
tee_local $l0
i32.const -32
i32.add
tee_local $l3
set_global $g0
get_local $l0
i32.const -8
i32.add
get_local $l7
i64.store
get_local $l0
i32.const -16
i32.add
get_local $l6
i64.store
get_local $l0
i32.const -24
i32.add
get_local $l5
i64.store
get_local $l3
get_local $l8
i64.store
get_local $l3
i32.const 32
call $ethereum.finish
br $B0
end
i32.const 0
i32.const 0
call $ethereum.finish
br $B0
end
get_local $l3
tee_local $l0
i32.const -64
i32.add
tee_local $l3
tee_local $l4
set_global $g0
get_local $l3
i32.const 4
i32.const 64
call $ethereum.callDataCopy
get_local $l1
i32.const 128
i32.add
get_local $l3
i64.load
get_local $l0
i32.const -56
i32.add
i64.load
get_local $l0
i32.const -48
i32.add
i64.load
get_local $l0
i32.const -40
i32.add
i64.load
call $solidity.bswapi256
get_local $l1
i32.const 96
i32.add
get_local $l0
i32.const -32
i32.add
i64.load
get_local $l0
i32.const -24
i32.add
i64.load
get_local $l0
i32.const -16
i32.add
i64.load
get_local $l0
i32.const -8
i32.add
i64.load
call $solidity.bswapi256
get_local $l1
i64.load offset=128
get_local $l1
i32.const 128
i32.add
i32.const 8
i32.add
i64.load
get_local $l1
i32.const 128
i32.add
i32.const 16
i32.add
i64.load32_u
get_local $l1
i64.load offset=96
get_local $l1
i32.const 96
i32.add
i32.const 8
i32.add
i64.load
get_local $l1
i32.const 96
i32.add
i32.const 16
i32.add
i64.load
get_local $l1
i32.const 120
i32.add
i64.load
call $transfer.address.uint256
get_local $l4
tee_local $l0
i32.const -32
i32.add
tee_local $l3
set_global $g0
get_local $l0
i32.const -8
i32.add
i64.const 72057594037927936
i64.store
get_local $l0
i32.const -16
i32.add
i64.const 0
i64.store
get_local $l0
i32.const -24
i32.add
i64.const 0
i64.store
get_local $l3
i64.const 0
i64.store
get_local $l3
i32.const 32
call $ethereum.finish
end
get_local $l2
drop
get_local $l1
i32.const 160
i32.add
set_global $g0)
(table $T0 1 1 anyfunc)
(memory $memory 2)
(global $g0 (mut i32) (i32.const 66656))
(global $__heap_base i32 (i32.const 66656))
(global $__data_end i32 (i32.const 1108))
(export "memory" (memory 0))
(export "__heap_base" (global 1))
(export "__data_end" (global 2))
(export "main" (func $main))
(data (i32.const 1024) "\dd\f2R\adSafeMath: addition overflowSafeMath: subtraction overflowFunction is not payable"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment