Online Solidity Decompiler

« Decompile another contract

Address

0xb82e605782ae206b35905fb0919053cc87ebe0dd [etherscan.io | etherchain.org]

Public Methods

Method names cached from 4byte.directory.
0x06fdde03 name()
0x095ea7b3 approve(address,uint256)
0x1249c58b mint()
0x173b9904 reserveFactorMantissa()
0x17bfdfbc borrowBalanceCurrent(address)
0x18160ddd totalSupply()
0x182df0f5 exchangeRateStored()
0x23b872dd transferFrom(address,address,uint256)
0x2ebf040e Unknown
0x313ce567 decimals()
0x3ac4202f isDToken()
0x3af9e669 balanceOfUnderlying(address)
0x3b1d21a2 getCash()
0x47bd3718 totalBorrows()
0x4dc3487d Unknown
0x4e4d9fea repayBorrow()
0x601a0bf1 _reduceReserves(uint256)
0x6c540baf accrualBlockNumber()
0x704b6c02 setAdmin(address)
0x70a08231 balanceOf(address)
0x73acee98 totalBorrowsCurrent()
0x852a12e3 redeemUnderlying(uint256)
0x8f840ddd totalReserves()
0x92eefe9b setController(address)
0x954f92a3 Unknown
0x95d89b41 symbol()
0x95dd9193 borrowBalanceStored(address)
0xa6afed95 accrueInterest()
0xa9059cbb transfer(address,uint256)
0xaa5af0fd borrowIndex()
0xaae40a2a liquidateBorrow(address,address)
0xae9d70b0 supplyRatePerBlock()
0xb2a02ff1 seize(address,address,uint256)
0xbd6d894d exchangeRateCurrent()
0xc37f68e2 getAccountSnapshot(address)
0xc5ebeaec borrow(uint256)
0xc7b7cc13 Unknown
0xd90a730e underlyingSymbol()
0xdd62ed3e allowance(address,address)
0xe5974619 repayBorrowBehalf(address)
0xf2b3abbd _setInterestRateModel(address)
0xf3fdb15a interestRateModel()
0xf77c4791 controller()
0xf851a440 admin()
0xf8f9da28 borrowRatePerBlock()
0xfca7820b _setReserveFactor(uint256)
0xfcb64147 _addReserves()

Internal Methods

approve(arg0, arg1) returns (r0)
borrowBalanceCurrent(arg0, arg1) returns (r0)
transferFrom(arg0, arg1) returns (r0)
balanceOfUnderlying(arg0, arg1) returns (r0)
func_0510(arg0, arg2) returns (r0)
setAdmin(arg0, arg1)
balanceOf(arg0, arg1) returns (r0)
setController(arg0, arg1) returns (r0)
func_0692(arg0, arg2) returns (r0)
borrowBalanceStored(arg0, arg1) returns (r0)
transfer(arg0, arg1) returns (r0)
liquidateBorrow(arg0, arg1)
seize(arg0, arg1) returns (r0)
getAccountSnapshot(arg1) returns (r0, r1, r2, r3)
allowance(arg0, arg1) returns (r0)
_setInterestRateModel(arg0, arg1) returns (r0)
_setReserveFactor(arg0, arg1) returns (r0)
name(arg0) returns (r0)
reserveFactorMantissa(arg0) returns (r0)
totalSupply(arg0) returns (r0)
exchangeRateStored() returns (r0)
decimals(arg0) returns (r0)
isDToken(arg0) returns (r0)
totalBorrows(arg0) returns (r0)
accrualBlockNumber(arg0) returns (r0)
totalBorrowsCurrent() returns (r0)
totalReserves(arg0) returns (r0)
symbol(arg0) returns (r0)
func_19D9(arg0) returns (r0)
accrueInterest() returns (r0)
borrowIndex(arg0) returns (r0)
supplyRatePerBlock() returns (r0)
exchangeRateCurrent() returns (r0)
underlyingSymbol(arg0) returns (r0)
interestRateModel(arg0) returns (r0)
controller(arg0) returns (r0)
admin(arg0) returns (r0)
borrowRatePerBlock() returns (r0)
func_23F2() returns (r0)
func_23F6() returns (r0, r1)
func_24A1(arg0, arg1) returns (r0)
func_2586(arg0, arg1) returns (r0, r1)
func_25AC(arg0, arg1, arg2, arg3) returns (r0)
func_28BD(arg0, arg1) returns (r0)
func_3057(arg0, arg1) returns (r0, r1)
getCash() returns (r0)
func_309A(arg0) returns (r0, r1)
func_3119(arg0) returns (r0)
func_330C(arg0) returns (r0, r1)
func_33C0(arg0, arg1) returns (r0, r1)
func_33E3(arg0, arg1) returns (r0, r1)
func_344B(arg0, arg1, arg2) returns (r0, r1)
func_3492(arg0, arg6) returns (r0, r1)
func_34A7(arg0, arg1, arg2) returns (r0, r1)
func_361A(arg0, arg1)
func_381C(arg0, arg1, arg2, arg3) returns (r0)
func_3B3B() returns (r0)
func_3DAA(arg0, arg1) returns (r0, r1)
func_3E21(arg0) returns (r0)
func_3E60(arg0) returns (r0)
func_3FD8(arg0) returns (r0)
_addReserves(arg0) returns (r0)
func_41C6(arg0, arg1, arg2) returns (r0, r1)
func_4204(arg0, arg1) returns (r0, r1)
func_42B4(arg0, arg1) returns (r0, r1)
func_4313(arg0) returns (r0)
func_4322(arg0, arg1, arg2) returns (r0)
func_4388(arg0, arg1) returns (r0)
func_43EE(arg0, arg1) returns (r0)
func_442E(arg0, arg1, arg2) returns (r0, r1)
func_47E4(arg0, arg1) returns (r0, r1)
func_4823(arg0, arg1) returns (r0, r1)
func_484E(arg0, arg1, arg2, arg3) returns (r0, r1)
func_4E3D(arg0, arg1) returns (r0)
func_5216(arg0) returns (r0)
func_521C(arg0) returns (r0, r1)
func_5311() returns (r0)
func_5357() returns (r0)
func_536A() returns (r0)
func_544D(arg0, arg1) returns (r0)
func_5451() returns (r0)

Decompilation

contract Contract { function main() { memory[0x40:0x60] = 0x80; if (msg.data.length < 0x04) { label_0288: var var0 = 0x0292; var var1 = msg.sender; var var2 = msg.value; label_0B18: var var3 = 0x00; if (storage[var3] / 0x010000 & 0xff) { var var4 = 0x00; storage[var4] = storage[var4] & ~0xff0000; var var5 = 0x0b76; var5 = accrueInterest(); label_0B76: if (var5 == var4) { var4 = 0x00; var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = 0x78cb4c05 * (0x01 << 0xe1); memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = address(this); var temp1 = (0x01 << 0xa0) - 0x01; memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = temp1 & var1; var5 = temp1 & storage[var4] / 0x01000000; var var6 = 0xf196980a; var var7 = temp0 + 0x44; var var8 = 0x20; var var9 = memory[0x40:0x60]; var var10 = temp0 - var9 + 0x44; var var11 = var9; var var12 = var4; var var13 = var5; var var14 = !address(var13).code.length; if (var14) { revert(memory[0x00:0x00]); } var temp2; temp2, memory[var9:var9 + var8] = address(var13).call.gas(msg.gas).value(var12)(memory[var11:var11 + var10]); var8 = !temp2; if (!var8) { var5 = memory[0x40:0x60]; var6 = returndata.length; if (var6 < 0x20) { revert(memory[0x00:0x00]); } var4 = memory[var5:var5 + 0x20]; if (!var4) { var5 = 0x0c88; var5 = func_23F2(); if (storage[0x08] == var5) { var5 = 0x0cd1; var5 = func_5311(); var6 = 0x0cd9; var6, var7 = func_23F6(); var temp3 = var5; memory[temp3 + 0x40:temp3 + 0x40 + 0x20] = var7; var8 = temp3 + 0x20; var9 = var6; if (var9 > 0x03) { assert(); } if (var9 > 0x03) { assert(); } memory[var8:var8 + 0x20] = var9; var6 = 0x00; var7 = memory[var5 + 0x20:var5 + 0x20 + 0x20]; if (var7 > 0x03) { assert(); } if (var7 == var6) { var6 = 0x0d5a; var7 = var1; var8 = var2; var6 = func_24A1(var7, var8); var temp4 = var5; var temp5 = var6; memory[temp4 + 0xc0:temp4 + 0xc0 + 0x20] = temp5; var temp6 = memory[0x40:0x60]; memory[0x40:0x60] = temp6 + 0x20; memory[temp6:temp6 + 0x20] = memory[temp4 + 0x40:temp4 + 0x40 + 0x20]; var6 = 0x0d7b; var7 = temp5; var8 = temp6; var9 = 0x00; var10 = var9; var11 = 0x00; var12 = 0x253f; var12 = func_5357(); var13 = 0x2549; var14 = var7; var var15 = var8; var13, var14 = func_42B4(var14, var15); var temp7 = var13; var11 = temp7; var12 = var14; var13 = 0x00; var14 = var11; if (var14 > 0x03) { assert(); } if (var14 == var13) { var13 = 0x00; var14 = 0x2578; var15 = var12; var14 = func_4313(var15); var10 = var14; var9 = var13; label_257F: var7 = var10; var6 = var9; // Error: Could not resolve jump destination! } else { var9 = var11; var10 = 0x00; goto label_257F; } } else { var temp8 = memory[0x40:0x60]; memory[temp8:temp8 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp8 + 0x04:temp8 + 0x04 + 0x20] = 0x20; memory[temp8 + 0x24:temp8 + 0x24 + 0x20] = 0x03; memory[temp8 + 0x44:temp8 + 0x44 + 0x20] = 0x229899 * (0x01 << 0xe9); var temp9 = memory[0x40:0x60]; revert(memory[temp9:temp9 + temp8 - temp9 + 0x64]); } } else { var temp10 = memory[0x40:0x60]; memory[temp10:temp10 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp10 + 0x04:temp10 + 0x04 + 0x20] = 0x20; memory[temp10 + 0x24:temp10 + 0x24 + 0x20] = 0x03; memory[temp10 + 0x44:temp10 + 0x44 + 0x20] = 0x08a627 * (0x01 << 0xeb); var temp11 = memory[0x40:0x60]; revert(memory[temp11:temp11 + temp10 - temp11 + 0x64]); } } else { var temp12 = memory[0x40:0x60]; memory[temp12:temp12 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp12 + 0x04:temp12 + 0x04 + 0x20] = 0x20; memory[temp12 + 0x24:temp12 + 0x24 + 0x20] = 0x03; memory[temp12 + 0x44:temp12 + 0x44 + 0x20] = 0x045313 * (0x01 << 0xec); var temp13 = memory[0x40:0x60]; revert(memory[temp13:temp13 + temp12 - temp13 + 0x64]); } } else { var temp14 = returndata.length; memory[0x00:0x00 + temp14] = returndata[0x00:0x00 + temp14]; revert(memory[0x00:0x00 + returndata.length]); } } else { var temp15 = memory[0x40:0x60]; memory[temp15:temp15 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp15 + 0x04:temp15 + 0x04 + 0x20] = 0x20; memory[temp15 + 0x24:temp15 + 0x24 + 0x20] = 0x02; memory[temp15 + 0x44:temp15 + 0x44 + 0x20] = 0x4535 * (0x01 << 0xf0); var temp16 = memory[0x40:0x60]; revert(memory[temp16:temp16 + temp15 - temp16 + 0x64]); } } else { var temp17 = memory[0x40:0x60]; memory[temp17:temp17 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp17 + 0x04:temp17 + 0x04 + 0x20] = 0x20; memory[temp17 + 0x24:temp17 + 0x24 + 0x20] = 0x03; memory[temp17 + 0x44:temp17 + 0x44 + 0x20] = 0x453637 * (0x01 << 0xe8); var temp18 = memory[0x40:0x60]; revert(memory[temp18:temp18 + temp17 - temp18 + 0x64]); } } else { var0 = msg.data[0x00:0x20] >> 0xe0; if (0x92eefe9b > var0) { if (0x3af9e669 > var0) { if (0x18160ddd > var0) { if (var0 == 0x06fdde03) { // Dispatch table entry for name() var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x02aa; var2 = name(); label_02AA: var temp19 = memory[0x40:0x60]; memory[temp19:temp19 + 0x20] = 0x20; var temp20 = var2; memory[temp19 + 0x20:temp19 + 0x20 + 0x20] = memory[temp20:temp20 + 0x20]; var3 = temp19; var4 = var3; var5 = var4 + 0x40; var7 = memory[temp20:temp20 + 0x20]; var6 = temp20 + 0x20; var8 = var7; var9 = var5; var10 = var6; var11 = 0x00; if (var11 >= var8) { label_02E4: var temp21 = var7; var5 = temp21 + var5; var6 = temp21 & 0x1f; if (!var6) { var temp22 = memory[0x40:0x60]; return memory[temp22:temp22 + var5 - temp22]; } else { var temp23 = var6; var temp24 = var5 - temp23; memory[temp24:temp24 + 0x20] = ~(0x0100 ** (0x20 - temp23) - 0x01) & memory[temp24:temp24 + 0x20]; var temp25 = memory[0x40:0x60]; return memory[temp25:temp25 + (temp24 + 0x20) - temp25]; } } else { label_02D5: var temp26 = var11; memory[temp26 + var9:temp26 + var9 + 0x20] = memory[temp26 + var10:temp26 + var10 + 0x20]; var11 = temp26 + 0x20; if (var11 >= var8) { goto label_02E4; } else { goto label_02D5; } } } else if (var0 == 0x095ea7b3) { // Dispatch table entry for approve(address,uint256) var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0358; var2 = 0x04; var3 = msg.data.length - var2; if (var3 < 0x40) { revert(memory[0x00:0x00]); } var1 = approve(var2, var3); label_0358: var temp27 = memory[0x40:0x60]; memory[temp27:temp27 + 0x20] = !!var1; var temp28 = memory[0x40:0x60]; return memory[temp28:temp28 + temp27 - temp28 + 0x20]; } else if (var0 == 0x1249c58b) { // Dispatch table entry for mint() var1 = 0x0374; var2 = 0x00; var3 = 0x11a3; var4 = msg.sender; var5 = msg.value; goto label_0B18; } else if (var0 == 0x173b9904) { // Dispatch table entry for reserveFactorMantissa() var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = reserveFactorMantissa(); label_0374: var temp29 = memory[0x40:0x60]; memory[temp29:temp29 + 0x20] = var2; var temp30 = memory[0x40:0x60]; return memory[temp30:temp30 + temp29 - temp30 + 0x20]; } else if (var0 == 0x17bfdfbc) { // Dispatch table entry for borrowBalanceCurrent(address) var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = 0x04; var3 = msg.data.length - var2; if (var3 < 0x20) { revert(memory[0x00:0x00]); } var1 = borrowBalanceCurrent(var2, var3); goto label_0374; } else { goto label_0288; } } else if (var0 == 0x18160ddd) { // Dispatch table entry for totalSupply() var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = totalSupply(); goto label_0374; } else if (var0 == 0x182df0f5) { // Dispatch table entry for exchangeRateStored() var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var1 = exchangeRateStored(); goto label_0374; } else if (var0 == 0x23b872dd) { // Dispatch table entry for transferFrom(address,address,uint256) var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0358; var2 = 0x04; var3 = msg.data.length - var2; if (var3 < 0x60) { revert(memory[0x00:0x00]); } var1 = transferFrom(var2, var3); goto label_0358; } else if (var0 == 0x2ebf040e) { // Dispatch table entry for 0x2ebf040e (unknown) var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = 0x00; var3 = var2; var4 = 0x135d; var4 = accrueInterest(); label_135D: if (var4 == var3) { var3 = 0x13a2; var3 = func_23F2(); if (storage[0x08] == var3) { var3 = 0x00; var temp31 = memory[0x40:0x60]; memory[temp31:temp31 + 0x20] = 0xf53cc4b3 * (0x01 << 0xe0); memory[temp31 + 0x04:temp31 + 0x04 + 0x20] = address(this); memory[temp31 + 0x24:temp31 + 0x24 + 0x20] = msg.sender; var4 = storage[var3] / 0x01000000 & (0x01 << 0xa0) - 0x01; var5 = 0xf53cc4b3; var6 = temp31 + 0x44; var7 = 0x20; var8 = memory[0x40:0x60]; var9 = temp31 - var8 + 0x44; var10 = var8; var11 = var3; var12 = var4; var13 = !address(var12).code.length; if (var13) { revert(memory[0x00:0x00]); } var temp32; temp32, memory[var8:var8 + var7] = address(var12).call.gas(msg.gas).value(var11)(memory[var10:var10 + var9]); var7 = !temp32; if (!var7) { var4 = memory[0x40:0x60]; var5 = returndata.length; if (var5 < 0x20) { revert(memory[0x00:0x00]); } var3 = memory[var4:var4 + 0x20]; if (!var3) { var4 = 0x12cf; var5 = msg.sender; var6 = ~0x00; var4 = func_28BD(var5, var6); var1 = var4; // Error: Could not resolve jump destination! } else { var temp33 = memory[0x40:0x60]; memory[temp33:temp33 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp33 + 0x04:temp33 + 0x04 + 0x20] = 0x20; memory[temp33 + 0x24:temp33 + 0x24 + 0x20] = 0x03; memory[temp33 + 0x44:temp33 + 0x44 + 0x20] = 0x453733 * (0x01 << 0xe8); var temp34 = memory[0x40:0x60]; revert(memory[temp34:temp34 + temp33 - temp34 + 0x64]); } } else { var temp35 = returndata.length; memory[0x00:0x00 + temp35] = returndata[0x00:0x00 + temp35]; revert(memory[0x00:0x00 + returndata.length]); } } else { var temp36 = memory[0x40:0x60]; memory[temp36:temp36 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp36 + 0x04:temp36 + 0x04 + 0x20] = 0x20; memory[temp36 + 0x24:temp36 + 0x24 + 0x20] = 0x03; memory[temp36 + 0x44:temp36 + 0x44 + 0x20] = 0x453333 * (0x01 << 0xe8); var temp37 = memory[0x40:0x60]; revert(memory[temp37:temp37 + temp36 - temp37 + 0x64]); } } else { var temp38 = memory[0x40:0x60]; memory[temp38:temp38 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp38 + 0x04:temp38 + 0x04 + 0x20] = 0x20; memory[temp38 + 0x24:temp38 + 0x24 + 0x20] = 0x02; memory[temp38 + 0x44:temp38 + 0x44 + 0x20] = 0x4535 * (0x01 << 0xf0); var temp39 = memory[0x40:0x60]; revert(memory[temp39:temp39 + temp38 - temp39 + 0x64]); } } else if (var0 == 0x313ce567) { // Dispatch table entry for decimals() var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0465; var2 = decimals(); var temp40 = memory[0x40:0x60]; memory[temp40:temp40 + 0x20] = var2 & 0xff; var temp41 = memory[0x40:0x60]; return memory[temp41:temp41 + temp40 - temp41 + 0x20]; } else if (var0 == 0x3ac4202f) { // Dispatch table entry for isDToken() var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0358; var2 = isDToken(); goto label_0358; } else { goto label_0288; } } else if (0x6c540baf > var0) { if (var0 == 0x3af9e669) { // Dispatch table entry for balanceOfUnderlying(address) var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = 0x04; var3 = msg.data.length - var2; if (var3 < 0x20) { revert(memory[0x00:0x00]); } var1 = balanceOfUnderlying(var2, var3); goto label_0374; } else if (var0 == 0x3b1d21a2) { // Dispatch table entry for getCash() var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = 0x00; var3 = 0x11a3; var3 = getCash(); label_11A3: var2 = var3; label_11A6: var1 = var2; // Error: Could not resolve jump destination! } else if (var0 == 0x47bd3718) { // Dispatch table entry for totalBorrows() var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = totalBorrows(); goto label_0374; } else if (var0 == 0x4dc3487d) { // Dispatch table entry for 0x4dc3487d (unknown) var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = 0x04; var3 = msg.data.length - var2; if (var3 < 0x20) { revert(memory[0x00:0x00]); } var2 = func_0510(var2, var3); goto label_0374; } else if (var0 == 0x4e4d9fea) { // Dispatch table entry for repayBorrow() var1 = 0x0528; var2 = 0x00; var3 = var2; var4 = var3; var5 = 0x1596; var5 = accrueInterest(); label_1596: if (var5 == var4) { var4 = 0x15db; var4 = func_23F2(); if (storage[0x08] == var4) { var4 = 0x1624; var5 = msg.value; var4, var5 = func_309A(var5); var3 = var5; var2 = var4; var temp42 = var2; var2 = var3; var1 = temp42; // Error: Could not resolve jump destination! } else { var temp43 = memory[0x40:0x60]; memory[temp43:temp43 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp43 + 0x04:temp43 + 0x04 + 0x20] = 0x20; memory[temp43 + 0x24:temp43 + 0x24 + 0x20] = 0x02; memory[temp43 + 0x44:temp43 + 0x44 + 0x20] = 0x4537 * (0x01 << 0xf0); var temp44 = memory[0x40:0x60]; revert(memory[temp44:temp44 + temp43 - temp44 + 0x64]); } } else { var temp45 = memory[0x40:0x60]; memory[temp45:temp45 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp45 + 0x04:temp45 + 0x04 + 0x20] = 0x20; memory[temp45 + 0x24:temp45 + 0x24 + 0x20] = 0x02; memory[temp45 + 0x44:temp45 + 0x44 + 0x20] = 0x4535 * (0x01 << 0xf0); var temp46 = memory[0x40:0x60]; revert(memory[temp46:temp46 + temp45 - temp46 + 0x64]); } } else if (var0 == 0x601a0bf1) { // Dispatch table entry for _reduceReserves(uint256) var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = 0x04; var3 = msg.data.length - var2; if (var3 < 0x20) { revert(memory[0x00:0x00]); } var2 = msg.data[var2:var2 + 0x20]; var3 = 0x00; var4 = var3; var5 = 0x1638; var5 = accrueInterest(); label_1638: var4 = var5; if (!var4) { var5 = 0x1681; var6 = var2; var5 = func_3119(var6); var1 = var5; // Error: Could not resolve jump destination! } else { var temp47 = memory[0x40:0x60]; memory[temp47:temp47 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp47 + 0x04:temp47 + 0x04 + 0x20] = 0x20; memory[temp47 + 0x24:temp47 + 0x24 + 0x20] = 0x02; memory[temp47 + 0x44:temp47 + 0x44 + 0x20] = 0x4535 * (0x01 << 0xf0); var temp48 = memory[0x40:0x60]; revert(memory[temp48:temp48 + temp47 - temp48 + 0x64]); } } else { goto label_0288; } } else if (var0 == 0x6c540baf) { // Dispatch table entry for accrualBlockNumber() var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = accrualBlockNumber(); goto label_0374; } else if (var0 == 0x704b6c02) { // Dispatch table entry for setAdmin(address) var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x05b3; var2 = 0x04; var3 = msg.data.length - var2; if (var3 < 0x20) { revert(memory[0x00:0x00]); } setAdmin(var2, var3); stop(); } else if (var0 == 0x70a08231) { // Dispatch table entry for balanceOf(address) var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = 0x04; var3 = msg.data.length - var2; if (var3 < 0x20) { revert(memory[0x00:0x00]); } var1 = balanceOf(var2, var3); goto label_0374; } else if (var0 == 0x73acee98) { // Dispatch table entry for totalBorrowsCurrent() var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var1 = totalBorrowsCurrent(); goto label_0374; } else if (var0 == 0x852a12e3) { // Dispatch table entry for redeemUnderlying(uint256) var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = 0x04; var3 = msg.data.length - var2; if (var3 < 0x20) { revert(memory[0x00:0x00]); } var2 = msg.data[var2:var2 + 0x20]; var3 = 0x00; var4 = var3; var5 = 0x181a; var5 = accrueInterest(); label_181A: if (var5 == var4) { var4 = 0x185f; var4 = func_23F2(); if (storage[0x08] == var4) { var4 = 0x18aa; var5 = msg.sender; var6 = var2; var4 = func_28BD(var5, var6); var1 = var4; // Error: Could not resolve jump destination! } else { var temp49 = memory[0x40:0x60]; memory[temp49:temp49 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp49 + 0x04:temp49 + 0x04 + 0x20] = 0x20; memory[temp49 + 0x24:temp49 + 0x24 + 0x20] = 0x03; memory[temp49 + 0x44:temp49 + 0x44 + 0x20] = 0x453333 * (0x01 << 0xe8); var temp50 = memory[0x40:0x60]; revert(memory[temp50:temp50 + temp49 - temp50 + 0x64]); } } else { var temp51 = memory[0x40:0x60]; memory[temp51:temp51 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp51 + 0x04:temp51 + 0x04 + 0x20] = 0x20; memory[temp51 + 0x24:temp51 + 0x24 + 0x20] = 0x02; memory[temp51 + 0x44:temp51 + 0x44 + 0x20] = 0x4535 * (0x01 << 0xf0); var temp52 = memory[0x40:0x60]; revert(memory[temp52:temp52 + temp51 - temp52 + 0x64]); } } else if (var0 == 0x8f840ddd) { // Dispatch table entry for totalReserves() var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = totalReserves(); goto label_0374; } else { goto label_0288; } } else if (0xc5ebeaec > var0) { if (0xaa5af0fd > var0) { if (var0 == 0x92eefe9b) { // Dispatch table entry for setController(address) var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = 0x04; var3 = msg.data.length - var2; if (var3 < 0x20) { revert(memory[0x00:0x00]); } var1 = setController(var2, var3); goto label_0374; } else if (var0 == 0x954f92a3) { // Dispatch table entry for 0x954f92a3 (unknown) var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = 0x04; var3 = msg.data.length - var2; if (var3 < 0x20) { revert(memory[0x00:0x00]); } var2 = func_0692(var2, var3); goto label_0374; } else if (var0 == 0x95d89b41) { // Dispatch table entry for symbol() var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x02aa; var2 = symbol(); goto label_02AA; } else if (var0 == 0x95dd9193) { // Dispatch table entry for borrowBalanceStored(address) var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = 0x04; var3 = msg.data.length - var2; if (var3 < 0x20) { revert(memory[0x00:0x00]); } var1 = borrowBalanceStored(var2, var3); goto label_0374; } else if (var0 == 0xa6afed95) { // Dispatch table entry for accrueInterest() var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var1 = accrueInterest(); goto label_0374; } else if (var0 == 0xa9059cbb) { // Dispatch table entry for transfer(address,uint256) var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0358; var2 = 0x04; var3 = msg.data.length - var2; if (var3 < 0x40) { revert(memory[0x00:0x00]); } var1 = transfer(var2, var3); goto label_0358; } else { goto label_0288; } } else if (var0 == 0xaa5af0fd) { // Dispatch table entry for borrowIndex() var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = borrowIndex(); goto label_0374; } else if (var0 == 0xaae40a2a) { // Dispatch table entry for liquidateBorrow(address,address) var1 = 0x05b3; var2 = 0x04; var3 = msg.data.length - var2; if (var3 < 0x40) { revert(memory[0x00:0x00]); } liquidateBorrow(var2, var3); stop(); } else if (var0 == 0xae9d70b0) { // Dispatch table entry for supplyRatePerBlock() var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var1 = supplyRatePerBlock(); goto label_0374; } else if (var0 == 0xb2a02ff1) { // Dispatch table entry for seize(address,address,uint256) var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = 0x04; var3 = msg.data.length - var2; if (var3 < 0x60) { revert(memory[0x00:0x00]); } var1 = seize(var2, var3); goto label_0374; } else if (var0 == 0xbd6d894d) { // Dispatch table entry for exchangeRateCurrent() var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var1 = exchangeRateCurrent(); goto label_0374; } else if (var0 == 0xc37f68e2) { // Dispatch table entry for getAccountSnapshot(address) var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x081b; var2 = 0x04; var3 = msg.data.length - var2; if (var3 < 0x20) { revert(memory[0x00:0x00]); } var1, var2, var3, var4 = getAccountSnapshot(var2); var temp53 = memory[0x40:0x60]; memory[temp53:temp53 + 0x20] = var1; memory[temp53 + 0x20:temp53 + 0x20 + 0x20] = var2; memory[temp53 + 0x40:temp53 + 0x40 + 0x20] = var3; memory[temp53 + 0x60:temp53 + 0x60 + 0x20] = var4; var temp54 = memory[0x40:0x60]; return memory[temp54:temp54 + temp53 - temp54 + 0x80]; } else { goto label_0288; } } else if (0xf3fdb15a > var0) { if (var0 == 0xc5ebeaec) { // Dispatch table entry for borrow(uint256) var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = 0x04; var3 = msg.data.length - var2; if (var3 < 0x20) { revert(memory[0x00:0x00]); } var2 = msg.data[var2:var2 + 0x20]; var3 = 0x00; var4 = 0x18aa; var5 = var2; var6 = 0x00; if (storage[var6] / 0x010000 & 0xff) { var7 = 0x00; storage[var7] = storage[var7] & ~0xff0000; var8 = 0x3af4; var8 = accrueInterest(); label_3AF4: if (var8 == var7) { var7 = 0x1253; var8 = msg.sender; var9 = var5; var7 = func_4E3D(var8, var9); storage[0x00] = (storage[0x00] & ~0xff0000) | 0x010000; var4 = var7; // Error: Could not resolve jump destination! } else { var temp55 = memory[0x40:0x60]; memory[temp55:temp55 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp55 + 0x04:temp55 + 0x04 + 0x20] = 0x20; memory[temp55 + 0x24:temp55 + 0x24 + 0x20] = 0x02; memory[temp55 + 0x44:temp55 + 0x44 + 0x20] = 0x4535 * (0x01 << 0xf0); var temp56 = memory[0x40:0x60]; revert(memory[temp56:temp56 + temp55 - temp56 + 0x64]); } } else { var temp57 = memory[0x40:0x60]; memory[temp57:temp57 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp57 + 0x04:temp57 + 0x04 + 0x20] = 0x20; memory[temp57 + 0x24:temp57 + 0x24 + 0x20] = 0x03; memory[temp57 + 0x44:temp57 + 0x44 + 0x20] = 0x453637 * (0x01 << 0xe8); var temp58 = memory[0x40:0x60]; revert(memory[temp58:temp58 + temp57 - temp58 + 0x64]); } } else if (var0 == 0xc7b7cc13) { // Dispatch table entry for 0xc7b7cc13 (unknown) var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x05b3; var2 = 0x04; var3 = msg.data.length - var2; if (var3 < 0xe0) { revert(memory[0x00:0x00]); } var temp59 = (0x01 << 0xa0) - 0x01; var temp60 = var2; var2 = temp59 & msg.data[temp60:temp60 + 0x20]; var temp61 = var3; var3 = temp59 & msg.data[temp60 + 0x20:temp60 + 0x20 + 0x20]; var4 = msg.data[temp60 + 0x40:temp60 + 0x40 + 0x20]; var5 = temp60 + temp61; var6 = temp60; var7 = var6 + 0x80; var8 = msg.data[var6 + 0x60:var6 + 0x60 + 0x20]; if (var8 > 0x0100000000) { revert(memory[0x00:0x00]); } var temp62 = var6 + var8; var8 = temp62; if (var8 + 0x20 > var5) { revert(memory[0x00:0x00]); } var temp63 = var8; var temp64 = msg.data[temp63:temp63 + 0x20]; var8 = temp64; var9 = var7; var7 = temp63 + 0x20; if ((var8 > 0x0100000000) | (var7 + var8 > var5)) { revert(memory[0x00:0x00]); } var temp65 = var9; var temp66 = var8; var temp67 = memory[0x40:0x60]; memory[0x40:0x60] = temp67 + (temp66 + 0x1f) / 0x20 * 0x20 + 0x20; memory[temp67:temp67 + 0x20] = temp66; var temp68 = temp67 + 0x20; memory[temp68:temp68 + temp66] = msg.data[var7:var7 + temp66]; memory[temp68 + temp66:temp68 + temp66 + 0x20] = 0x00; var temp69 = var5; var5 = temp67; var temp70 = var6; var6 = temp69; var7 = temp70; var8 = temp65 + 0x20; var9 = msg.data[temp65:temp65 + 0x20]; if (var9 > 0x0100000000) { revert(memory[0x00:0x00]); } var temp71 = var7 + var9; var9 = temp71; if (var9 + 0x20 > var6) { revert(memory[0x00:0x00]); } var temp72 = var9; var temp73 = msg.data[temp72:temp72 + 0x20]; var9 = temp73; var10 = var8; var8 = temp72 + 0x20; if ((var9 > 0x0100000000) | (var8 + var9 > var6)) { revert(memory[0x00:0x00]); } var temp74 = var10; var temp75 = var9; var temp76 = memory[0x40:0x60]; memory[0x40:0x60] = temp76 + (temp75 + 0x1f) / 0x20 * 0x20 + 0x20; memory[temp76:temp76 + 0x20] = temp75; var temp77 = temp76 + 0x20; memory[temp77:temp77 + temp75] = msg.data[var8:var8 + temp75]; memory[temp77 + temp75:temp77 + temp75 + 0x20] = 0x00; var6 = temp76; var7 = msg.data[temp74:temp74 + 0x20]; var8 = msg.data[temp74 + 0x20:temp74 + 0x20 + 0x20] & 0xff; var9 = storage[0x00] / 0x0100 & 0xff; if (var9) { label_2111: if (var9) { if (var9) { label_215D: var9 = !(storage[0x00] / 0x0100 & 0xff); if (!var9) { storage[0x05] = msg.sender * 0x0100 | (storage[0x05] & ~((0x01 << 0xa8) - 0x0100)); var10 = 0x21ae; var11 = var2; var12 = var3; var13 = var4; var14 = var5; var15 = var6; var var16 = var7; var var17 = var8; label_3B4C: var var18 = storage[0x00] / 0x0100 & 0xff; if (var18) { label_3B65: if (var18) { if (var18) { label_3BB1: var18 = !(storage[0x00] / 0x0100 & 0xff); if (var18) { storage[0x00] = (((storage[0x00] & ~0xff00) | 0x0100) & ~0xff) | 0x01; if (msg.sender == storage[0x05] / 0x0100 & (0x01 << 0xa0) - 0x01) { goto label_3C2B; } else { goto label_3BF4; } } else if (msg.sender == storage[0x05] / 0x0100 & (0x01 << 0xa0) - 0x01) { label_3C2B: var var19 = !storage[0x08]; if (!var19) { if (var19) { label_3C77: storage[0x0c] = var13; if (var13) { storage[0x00] = (var11 & (0x01 << 0xa0) - 0x01) * 0x01000000 | (storage[0x00] & ~((0x01 << 0xb8) - 0x01000000)); var19 = 0x3ce5; var19 = func_23F2(); storage[0x08] = var19; storage[0x09] = 0x0de0b6b3a7640000; var19 = 0x00; var var20 = 0x3cff; var var21 = var12; var20 = func_3E60(var21); var19 = var20; if (!var19) { var temp78 = var14; var20 = 0x3d52; var21 = 0x03; var var22 = temp78 + 0x20; var var23 = memory[temp78:temp78 + 0x20]; var temp79 = var21; var temp80 = storage[temp79]; memory[0x00:0x20] = temp79; var var24 = keccak256(memory[0x00:0x20]); var var25 = var22; var22 = var24 + ((!(temp80 & 0x01) * 0x0100 - 0x01 & temp80) / 0x02 + 0x1f) / 0x20; if (0x1f < var23) { var temp81 = var23; storage[var21] = temp81 + temp81 + 0x01; if (!temp81) { label_5441: var temp82 = var22; var22 = 0x544d; var23 = temp82; var temp83 = var23; var23 = 0x11a6; var temp84 = var24; var25 = temp84; var24 = temp83; if (var24 <= var25) { var23 = func_544D(var24, var25); goto label_11A6; } else { label_5497: var temp85 = var25; storage[temp85] = 0x00; var25 = temp85 + 0x01; if (var24 > var25) { goto label_5497; } var23 = func_544D(var24, var25); // Error: Could not resolve method call return address! } } else { var temp86 = var23; var temp87 = var25; var23 = temp87; var25 = var23 + temp86; if (var25 <= var23) { goto label_5441; } label_542F: var temp88 = var23; var temp89 = var24; storage[temp89] = memory[temp88:temp88 + 0x20]; var23 = temp88 + 0x20; var24 = temp89 + 0x01; var25 = var25; if (var25 <= var23) { goto label_5441; } else { goto label_542F; } } } else { var temp90 = var23; storage[var21] = temp90 + temp90 | (memory[var25:var25 + 0x20] & ~0xff); goto label_5441; } } else { var temp91 = memory[0x40:0x60]; memory[temp91:temp91 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp91 + 0x04:temp91 + 0x04 + 0x20] = 0x20; memory[temp91 + 0x24:temp91 + 0x24 + 0x20] = 0x02; memory[temp91 + 0x44:temp91 + 0x44 + 0x20] = 0x114d * (0x01 << 0xf2); var temp92 = memory[0x40:0x60]; revert(memory[temp92:temp92 + temp91 - temp92 + 0x64]); } } else { var temp93 = memory[0x40:0x60]; memory[temp93:temp93 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp93 + 0x04:temp93 + 0x04 + 0x20] = 0x20; memory[temp93 + 0x24:temp93 + 0x24 + 0x20] = 0x02; memory[temp93 + 0x44:temp93 + 0x44 + 0x20] = 0x4533 * (0x01 << 0xf0); var temp94 = memory[0x40:0x60]; revert(memory[temp94:temp94 + temp93 - temp94 + 0x64]); } } else { label_3C40: var temp95 = memory[0x40:0x60]; memory[temp95:temp95 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp95 + 0x04:temp95 + 0x04 + 0x20] = 0x20; memory[temp95 + 0x24:temp95 + 0x24 + 0x20] = 0x02; memory[temp95 + 0x44:temp95 + 0x44 + 0x20] = 0x2299 * (0x01 << 0xf1); var temp96 = memory[0x40:0x60]; revert(memory[temp96:temp96 + temp95 - temp96 + 0x64]); } } else if (!storage[0x09]) { goto label_3C77; } else { goto label_3C40; } } else { label_3BF4: var temp97 = memory[0x40:0x60]; memory[temp97:temp97 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp97 + 0x04:temp97 + 0x04 + 0x20] = 0x20; memory[temp97 + 0x24:temp97 + 0x24 + 0x20] = 0x02; memory[temp97 + 0x44:temp97 + 0x44 + 0x20] = 0x4531 * (0x01 << 0xf0); var temp98 = memory[0x40:0x60]; revert(memory[temp98:temp98 + temp97 - temp98 + 0x64]); } } else { label_3B78: var temp99 = memory[0x40:0x60]; memory[temp99:temp99 + 0x20] = 0x461bcd * (0x01 << 0xe5); var temp100 = temp99 + 0x04; var temp101 = temp100 + 0x20; memory[temp100:temp100 + 0x20] = temp101 - temp100; memory[temp101:temp101 + 0x20] = 0x2e; var temp102 = temp101 + 0x20; memory[temp102:temp102 + 0x2e] = code[0x54a3:0x54d1]; var temp103 = memory[0x40:0x60]; revert(memory[temp103:temp103 + (temp102 + 0x40) - temp103]); } } else if (!(storage[0x00] & 0xff)) { goto label_3BB1; } else { goto label_3B78; } } else { var18 = 0x3b65; var18 = func_3B3B(); goto label_3B65; } } else { storage[0x00] = (((storage[0x00] & ~0xff00) | 0x0100) & ~0xff) | 0x01; storage[0x05] = msg.sender * 0x0100 | (storage[0x05] & ~((0x01 << 0xa8) - 0x0100)); var10 = 0x21ae; var11 = var2; var12 = var3; var13 = var4; var14 = var5; var15 = var6; var16 = var7; var17 = var8; goto label_3B4C; } } else { label_2124: var temp104 = memory[0x40:0x60]; memory[temp104:temp104 + 0x20] = 0x461bcd * (0x01 << 0xe5); var temp105 = temp104 + 0x04; var temp106 = temp105 + 0x20; memory[temp105:temp105 + 0x20] = temp106 - temp105; memory[temp106:temp106 + 0x20] = 0x2e; var temp107 = temp106 + 0x20; memory[temp107:temp107 + 0x2e] = code[0x54a3:0x54d1]; var temp108 = memory[0x40:0x60]; revert(memory[temp108:temp108 + (temp107 + 0x40) - temp108]); } } else if (!(storage[0x00] & 0xff)) { goto label_215D; } else { goto label_2124; } } else { var9 = 0x2111; var9 = func_3B3B(); goto label_2111; } } else if (var0 == 0xd90a730e) { // Dispatch table entry for underlyingSymbol() var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = underlyingSymbol(); goto label_0374; } else if (var0 == 0xdd62ed3e) { // Dispatch table entry for allowance(address,address) var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = 0x04; var3 = msg.data.length - var2; if (var3 < 0x40) { revert(memory[0x00:0x00]); } var1 = allowance(var2, var3); goto label_0374; } else if (var0 == 0xe5974619) { // Dispatch table entry for repayBorrowBehalf(address) var1 = 0x05b3; var2 = 0x04; var3 = msg.data.length - var2; if (var3 < 0x20) { revert(memory[0x00:0x00]); } var2 = msg.data[var2:var2 + 0x20] & (0x01 << 0xa0) - 0x01; var3 = 0x00; var4 = 0x2207; var5 = var2; var6 = msg.value; var4, var5 = func_3DAA(var5, var6); var temp109 = var4; var3 = temp109; var4 = 0x2232; var5 = var3; var temp110 = memory[0x40:0x60]; var6 = temp110; memory[0x40:0x60] = var6 + 0x40; memory[var6:var6 + 0x20] = 0x03; memory[var6 + 0x20:var6 + 0x20 + 0x20] = 0x453735 * (0x01 << 0xe8); func_361A(var5, var6); // Error: Could not resolve jump destination! } else if (var0 == 0xf2b3abbd) { // Dispatch table entry for _setInterestRateModel(address) var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = 0x04; var3 = msg.data.length - var2; if (var3 < 0x20) { revert(memory[0x00:0x00]); } var1 = _setInterestRateModel(var2, var3); goto label_0374; } else { goto label_0288; } } else if (var0 == 0xf3fdb15a) { // Dispatch table entry for interestRateModel() var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0a8b; var2 = interestRateModel(); label_0A8B: var temp111 = memory[0x40:0x60]; memory[temp111:temp111 + 0x20] = var2 & (0x01 << 0xa0) - 0x01; var temp112 = memory[0x40:0x60]; return memory[temp112:temp112 + temp111 - temp112 + 0x20]; } else if (var0 == 0xf77c4791) { // Dispatch table entry for controller() var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0a8b; var2 = controller(); goto label_0A8B; } else if (var0 == 0xf851a440) { // Dispatch table entry for admin() var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0a8b; var2 = admin(); goto label_0A8B; } else if (var0 == 0xf8f9da28) { // Dispatch table entry for borrowRatePerBlock() var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var1 = borrowRatePerBlock(); goto label_0374; } else if (var0 == 0xfca7820b) { // Dispatch table entry for _setReserveFactor(uint256) var1 = msg.value; if (var1) { revert(memory[0x00:0x00]); } var1 = 0x0374; var2 = 0x04; var3 = msg.data.length - var2; if (var3 < 0x20) { revert(memory[0x00:0x00]); } var1 = _setReserveFactor(var2, var3); goto label_0374; } else if (var0 == 0xfcb64147) { // Dispatch table entry for _addReserves() var1 = 0x0374; var2 = 0x00; var3 = 0x11a3; var4 = msg.value; var3 = _addReserves(var4); goto label_11A3; } else { goto label_0288; } } } function approve(var arg0, var arg1) returns (var r0) { var temp0 = arg0; arg0 = msg.data[temp0:temp0 + 0x20] & (0x01 << 0xa0) - 0x01; arg1 = msg.data[temp0 + 0x20:temp0 + 0x20 + 0x20]; var temp1 = msg.sender; memory[0x00:0x20] = temp1; memory[0x20:0x40] = 0x0e; var temp2 = keccak256(memory[0x00:0x40]); var temp3 = arg0 & (0x01 << 0xa0) - 0x01; memory[0x00:0x20] = temp3; memory[0x20:0x40] = temp2; var temp4 = arg1; storage[keccak256(memory[0x00:0x40])] = temp4; var temp5 = memory[0x40:0x60]; memory[temp5:temp5 + 0x20] = temp4; var temp6 = memory[0x40:0x60]; log(memory[temp6:temp6 + temp5 - temp6 + 0x20], [0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925, msg.sender, stack[-2] & (0x01 << 0xa0) - 0x01]); return 0x01; } function borrowBalanceCurrent(var arg0, var arg1) returns (var r0) { arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01; arg1 = 0x00; if (storage[arg1] / 0x010000 & 0xff) { var var0 = 0x00; storage[var0] = storage[var0] & ~0xff0000; var var1 = 0x120d; var1 = accrueInterest(); label_120D: if (var1 == var0) { var0 = 0x1253; var1 = arg0; var0 = func_19D9(var1); storage[0x00] = (storage[0x00] & ~0xff0000) | 0x010000; return var0; } else { var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = 0x20; memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = 0x02; memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = 0x4535 * (0x01 << 0xf0); var temp1 = memory[0x40:0x60]; revert(memory[temp1:temp1 + temp0 - temp1 + 0x64]); } } else { var temp2 = memory[0x40:0x60]; memory[temp2:temp2 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp2 + 0x04:temp2 + 0x04 + 0x20] = 0x20; memory[temp2 + 0x24:temp2 + 0x24 + 0x20] = 0x03; memory[temp2 + 0x44:temp2 + 0x44 + 0x20] = 0x453637 * (0x01 << 0xe8); var temp3 = memory[0x40:0x60]; revert(memory[temp3:temp3 + temp2 - temp3 + 0x64]); } } function transferFrom(var arg0, var arg1) returns (var r0) { var temp0 = (0x01 << 0xa0) - 0x01; var temp1 = arg0; arg0 = temp0 & msg.data[temp1:temp1 + 0x20]; arg1 = temp0 & msg.data[temp1 + 0x20:temp1 + 0x20 + 0x20]; var var0 = msg.data[temp1 + 0x40:temp1 + 0x40 + 0x20]; var var1 = 0x00; if (storage[var1] / 0x010000 & 0xff) { var var2 = 0x00; storage[var2] = storage[var2] & ~0xff0000; var var3 = 0x1337; var var4 = msg.sender; var var5 = arg0; var var6 = arg1; var var7 = var0; var3 = func_25AC(var4, var5, var6, var7); label_1337: storage[0x00] = (storage[0x00] & ~0xff0000) | 0x010000; return var3 == var2; } else { var temp2 = memory[0x40:0x60]; memory[temp2:temp2 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp2 + 0x04:temp2 + 0x04 + 0x20] = 0x20; memory[temp2 + 0x24:temp2 + 0x24 + 0x20] = 0x03; memory[temp2 + 0x44:temp2 + 0x44 + 0x20] = 0x453637 * (0x01 << 0xe8); var temp3 = memory[0x40:0x60]; revert(memory[temp3:temp3 + temp2 - temp3 + 0x64]); } } function balanceOfUnderlying(var arg0, var arg1) returns (var r0) { arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01; arg1 = 0x00; var var0 = 0x14d0; var0 = func_5357(); var temp0 = memory[0x40:0x60]; var var1 = temp0; memory[0x40:0x60] = var1 + 0x20; var var2 = var1; var var3 = 0x14e3; var3 = exchangeRateCurrent(); memory[var2:var2 + 0x20] = var3; memory[0x00:0x20] = arg0 & (0x01 << 0xa0) - 0x01; memory[0x20:0x40] = 0x0d; var temp1 = var1; var0 = temp1; var1 = 0x00; var2 = var1; var3 = 0x150f; var var5 = storage[keccak256(memory[var2:var2 + 0x40])]; var var4 = var0; var3, var4 = func_3057(var4, var5); var temp2 = var3; var1 = temp2; var2 = var4; var3 = 0x00; var4 = var1; if (var4 > 0x03) { assert(); } if (var4 == var3) { return var2; } var temp3 = memory[0x40:0x60]; memory[temp3:temp3 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp3 + 0x04:temp3 + 0x04 + 0x20] = 0x20; memory[temp3 + 0x24:temp3 + 0x24 + 0x20] = 0x03; memory[temp3 + 0x44:temp3 + 0x44 + 0x20] = 0x453639 * (0x01 << 0xe8); var temp4 = memory[0x40:0x60]; revert(memory[temp4:temp4 + temp3 - temp4 + 0x64]); } function func_0510(var arg0, var arg1) returns (var arg0) { arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01; memory[0x20:0x40] = 0x0f; memory[0x00:0x20] = arg0; return storage[keccak256(memory[0x00:0x40])]; } function setAdmin(var arg0, var arg1) { arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01; if (msg.sender == storage[0x05] / 0x0100 & (0x01 << 0xa0) - 0x01) { var temp0 = (0x01 << 0xa0) - 0x01; var temp1 = (storage[0x05] & ~((0x01 << 0xa8) - 0x0100)) | (arg0 & temp0) * 0x0100; storage[0x05] = temp1; var temp2 = memory[0x40:0x60]; memory[temp2:temp2 + 0x20] = temp1 / 0x0100 & temp0; var temp3 = memory[0x40:0x60]; log(memory[temp3:temp3 + temp2 - temp3 + 0x20], [0x71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c]); return; } else { var temp4 = memory[0x40:0x60]; memory[temp4:temp4 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp4 + 0x04:temp4 + 0x04 + 0x20] = 0x20; memory[temp4 + 0x24:temp4 + 0x24 + 0x20] = 0x02; memory[temp4 + 0x44:temp4 + 0x44 + 0x20] = 0x4531 * (0x01 << 0xf0); var temp5 = memory[0x40:0x60]; revert(memory[temp5:temp5 + temp4 - temp5 + 0x64]); } } function balanceOf(var arg0, var arg1) returns (var r0) { arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01; memory[0x00:0x20] = arg0 & (0x01 << 0xa0) - 0x01; memory[0x20:0x40] = 0x0d; return storage[keccak256(memory[0x00:0x40])]; } function setController(var arg0, var arg1) returns (var r0) { arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01; arg1 = 0x00; if (msg.sender == storage[0x05] / 0x0100 & (0x01 << 0xa0) - 0x01) { var temp0 = arg0 & (0x01 << 0xa0) - 0x01; storage[0x00] = (storage[0x00] & ~((0x01 << 0xb8) - 0x01000000)) | temp0 * 0x01000000; var temp1 = memory[0x40:0x60]; memory[temp1:temp1 + 0x20] = temp0; var temp2 = memory[0x40:0x60]; log(memory[temp2:temp2 + temp1 - temp2 + 0x20], [0xe253457d9ad994ca9682fc3bbc38c890dca73a2d5ecee3809e548bac8b00d7c6]); var var0 = 0x00; return var0; } else { var temp3 = memory[0x40:0x60]; memory[temp3:temp3 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp3 + 0x04:temp3 + 0x04 + 0x20] = 0x20; memory[temp3 + 0x24:temp3 + 0x24 + 0x20] = 0x02; memory[temp3 + 0x44:temp3 + 0x44 + 0x20] = 0x4531 * (0x01 << 0xf0); var temp4 = memory[0x40:0x60]; revert(memory[temp4:temp4 + temp3 - temp4 + 0x64]); } } function func_0692(var arg0, var arg1) returns (var arg0) { arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01; memory[0x20:0x40] = 0x10; memory[0x00:0x20] = arg0; return storage[keccak256(memory[0x00:0x40])]; } function borrowBalanceStored(var arg0, var arg1) returns (var r0) { arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01; r0 = func_19D9(arg0); // Error: Could not resolve method call return address! } function transfer(var arg0, var arg1) returns (var r0) { var temp0 = arg0; arg0 = msg.data[temp0:temp0 + 0x20] & (0x01 << 0xa0) - 0x01; arg1 = msg.data[temp0 + 0x20:temp0 + 0x20 + 0x20]; var var0 = 0x00; if (storage[var0] / 0x010000 & 0xff) { var var1 = 0x00; storage[var1] = storage[var1] & ~0xff0000; var var2 = 0x1e27; var var3 = msg.sender; var var4 = msg.sender; var var5 = arg0; var var6 = arg1; var2 = func_25AC(var3, var4, var5, var6); label_1E27: storage[0x00] = (storage[0x00] & ~0xff0000) | 0x010000; return var2 == var1; } else { var temp1 = memory[0x40:0x60]; memory[temp1:temp1 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp1 + 0x04:temp1 + 0x04 + 0x20] = 0x20; memory[temp1 + 0x24:temp1 + 0x24 + 0x20] = 0x03; memory[temp1 + 0x44:temp1 + 0x44 + 0x20] = 0x453637 * (0x01 << 0xe8); var temp2 = memory[0x40:0x60]; revert(memory[temp2:temp2 + temp1 - temp2 + 0x64]); } } function liquidateBorrow(var arg0, var arg1) { var temp0 = (0x01 << 0xa0) - 0x01; var temp1 = arg0; arg0 = temp0 & msg.data[temp1:temp1 + 0x20]; arg1 = msg.data[temp1 + 0x20:temp1 + 0x20 + 0x20] & temp0; var var0 = 0x00; var var1 = 0x1e54; var var2 = arg0; var var3 = msg.value; var var4 = arg1; var1, var2 = func_34A7(var2, var3, var4); var temp2 = var1; var0 = temp2; var1 = 0x1e7f; var2 = var0; var temp3 = memory[0x40:0x60]; var3 = temp3; memory[0x40:0x60] = var3 + 0x40; memory[var3:var3 + 0x20] = 0x03; memory[var3 + 0x20:var3 + 0x20 + 0x20] = 0x229b9b * (0x01 << 0xe9); func_361A(var2, var3); } function seize(var arg0, var arg1) returns (var r0) { var temp0 = (0x01 << 0xa0) - 0x01; var temp1 = arg0; arg0 = temp0 & msg.data[temp1:temp1 + 0x20]; arg1 = temp0 & msg.data[temp1 + 0x20:temp1 + 0x20 + 0x20]; var var0 = msg.data[temp1 + 0x40:temp1 + 0x40 + 0x20]; var var1 = 0x00; if (storage[var1] / 0x010000 & 0xff) { storage[0x00] = storage[0x00] & ~0xff0000; var var2 = 0x1f85; var var3 = msg.sender; var var4 = arg0; var var5 = arg1; var var6 = var0; var2 = func_381C(var3, var4, var5, var6); storage[0x00] = (storage[0x00] & ~0xff0000) | 0x010000; return var2; } else { var temp2 = memory[0x40:0x60]; memory[temp2:temp2 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp2 + 0x04:temp2 + 0x04 + 0x20] = 0x20; memory[temp2 + 0x24:temp2 + 0x24 + 0x20] = 0x03; memory[temp2 + 0x44:temp2 + 0x44 + 0x20] = 0x453637 * (0x01 << 0xe8); var temp3 = memory[0x40:0x60]; revert(memory[temp3:temp3 + temp2 - temp3 + 0x64]); } } function getAccountSnapshot(var arg0) returns (var r0, var arg0, var r2, var r3) { arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01; r2 = 0x00; memory[r2:r2 + 0x20] = arg0 & (0x01 << 0xa0) - 0x01; memory[0x20:0x40] = 0x0d; r3 = r2; var var1 = r3; var var3 = storage[keccak256(memory[var1:var1 + 0x40])]; var var2 = var1; var var4 = var2; var var5 = var4; var var6 = var5; var var7 = 0x2083; var var8 = arg0; var7, var8 = func_330C(var8); var4 = var8; var temp0 = var7; var6 = temp0; var7 = 0x00; var8 = var6; if (var8 > 0x03) { assert(); } if (var8 == var7) { var7 = 0x20bb; var7, var8 = func_23F6(); var5 = var8; var temp1 = var7; var6 = temp1; var7 = 0x00; var8 = var6; if (var8 > 0x03) { assert(); } if (var8 == var7) { r2 = 0x00; r3 = var3; var1 = var4; var2 = var5; label_20E6: var temp2 = r3; r3 = var2; arg0 = temp2; var temp3 = r2; r2 = var1; r0 = temp3; return r0, arg0, r2, r3; } else { var7 = 0x09; r2 = var7; r3 = 0x00; var1 = r3; var2 = var1; goto label_20E6; } } else { r2 = 0x09; r3 = 0x00; var1 = r3; var2 = var1; goto label_20E6; } } function allowance(var arg0, var arg1) returns (var r0) { var temp0 = (0x01 << 0xa0) - 0x01; var temp1 = arg0; arg0 = temp0 & msg.data[temp1:temp1 + 0x20]; arg1 = msg.data[temp1 + 0x20:temp1 + 0x20 + 0x20] & temp0; var temp2 = (0x01 << 0xa0) - 0x01; memory[0x00:0x20] = temp2 & arg0; memory[0x20:0x40] = 0x0e; var temp3 = keccak256(memory[0x00:0x40]); memory[0x00:0x20] = temp2 & arg1; memory[0x20:0x40] = temp3; return storage[keccak256(memory[0x00:0x40])]; } function _setInterestRateModel(var arg0, var arg1) returns (var r0) { arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01; arg1 = 0x00; var var0 = arg1; var var1 = 0x2241; var1 = accrueInterest(); label_2241: var0 = var1; if (!var0) { var1 = 0x1681; var var2 = arg0; return func_3E60(var2); } else { var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = 0x20; memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = 0x02; memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = 0x4535 * (0x01 << 0xf0); var temp1 = memory[0x40:0x60]; revert(memory[temp1:temp1 + temp0 - temp1 + 0x64]); } } function _setReserveFactor(var arg0, var arg1) returns (var r0) { arg0 = msg.data[arg0:arg0 + 0x20]; arg1 = 0x00; if (storage[arg1] / 0x010000 & 0xff) { var var0 = 0x00; storage[var0] = storage[var0] & ~0xff0000; var var1 = 0x2385; var1 = accrueInterest(); label_2385: var0 = var1; if (!var0) { var1 = 0x23ce; var var2 = arg0; var1 = func_3FD8(var2); storage[0x00] = (storage[0x00] & ~0xff0000) | 0x010000; return var1; } else { var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = 0x20; memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = 0x02; memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = 0x4535 * (0x01 << 0xf0); var temp1 = memory[0x40:0x60]; revert(memory[temp1:temp1 + temp0 - temp1 + 0x64]); } } else { var temp2 = memory[0x40:0x60]; memory[temp2:temp2 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp2 + 0x04:temp2 + 0x04 + 0x20] = 0x20; memory[temp2 + 0x24:temp2 + 0x24 + 0x20] = 0x03; memory[temp2 + 0x44:temp2 + 0x44 + 0x20] = 0x453637 * (0x01 << 0xe8); var temp3 = memory[0x40:0x60]; revert(memory[temp3:temp3 + temp2 - temp3 + 0x64]); } } function name() returns (var r0) { var temp0 = storage[0x03]; var temp1 = memory[0x40:0x60]; var temp2 = (temp0 & !(temp0 & 0x01) * 0x0100 + ~0x00) / 0x02; var var2 = temp2; memory[0x40:0x60] = temp1 + (var2 + 0x1f) / 0x20 * 0x20 + 0x20; memory[temp1:temp1 + 0x20] = var2; r0 = temp1; var var1 = 0x03; var var3 = r0 + 0x20; var var4 = var1; var var5 = var2; if (!var5) { label_1124: return r0; } else if (0x1f < var5) { var temp3 = var3; var temp4 = temp3 + var5; var3 = temp4; memory[0x00:0x20] = var4; var temp5 = keccak256(memory[0x00:0x20]); memory[temp3:temp3 + 0x20] = storage[temp5]; var4 = temp5 + 0x01; var5 = temp3 + 0x20; if (var3 <= var5) { goto label_111B; } label_1107: var temp6 = var4; var temp7 = var5; memory[temp7:temp7 + 0x20] = storage[temp6]; var4 = temp6 + 0x01; var5 = temp7 + 0x20; if (var3 > var5) { goto label_1107; } label_111B: var temp8 = var3; var temp9 = temp8 + (var5 - temp8 & 0x1f); var5 = temp8; var3 = temp9; goto label_1124; } else { var temp10 = var3; memory[temp10:temp10 + 0x20] = storage[var4] / 0x0100 * 0x0100; var3 = temp10 + 0x20; var5 = var5; goto label_1124; } } function reserveFactorMantissa() returns (var r0) { return storage[0x0b]; } function totalSupply() returns (var r0) { return storage[0x07]; } function exchangeRateStored() returns (var r0) { var var0 = 0x00; var var1 = var0; var var2 = 0x00; var var3 = 0x127e; var var4; var3, var4 = func_23F6(); var temp0 = var3; var1 = temp0; var2 = var4; var3 = 0x00; var4 = var1; if (var4 > 0x03) { assert(); } if (var4 == var3) { return var2; } var temp1 = memory[0x40:0x60]; memory[temp1:temp1 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp1 + 0x04:temp1 + 0x04 + 0x20] = 0x20; memory[temp1 + 0x24:temp1 + 0x24 + 0x20] = 0x03; memory[temp1 + 0x44:temp1 + 0x44 + 0x20] = 0x08a6c7 * (0x01 << 0xeb); var temp2 = memory[0x40:0x60]; revert(memory[temp2:temp2 + temp1 - temp2 + 0x64]); } function decimals() returns (var r0) { return storage[0x05] & 0xff; } function isDToken() returns (var r0) { return 0x01; } function totalBorrows() returns (var r0) { return storage[0x06]; } function accrualBlockNumber() returns (var r0) { return storage[0x08]; } function totalBorrowsCurrent() returns (var r0) { var var0 = 0x00; if (storage[var0] / 0x010000 & 0xff) { var var1 = 0x00; storage[var1] = storage[var1] & ~0xff0000; var var2 = 0x17ba; var2 = accrueInterest(); label_17BA: if (var2 == var1) { var temp0 = storage[0x06]; storage[0x00] = (storage[0x00] & ~0xff0000) | 0x010000; return temp0; } else { var temp1 = memory[0x40:0x60]; memory[temp1:temp1 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp1 + 0x04:temp1 + 0x04 + 0x20] = 0x20; memory[temp1 + 0x24:temp1 + 0x24 + 0x20] = 0x02; memory[temp1 + 0x44:temp1 + 0x44 + 0x20] = 0x4535 * (0x01 << 0xf0); var temp2 = memory[0x40:0x60]; revert(memory[temp2:temp2 + temp1 - temp2 + 0x64]); } } else { var temp3 = memory[0x40:0x60]; memory[temp3:temp3 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp3 + 0x04:temp3 + 0x04 + 0x20] = 0x20; memory[temp3 + 0x24:temp3 + 0x24 + 0x20] = 0x03; memory[temp3 + 0x44:temp3 + 0x44 + 0x20] = 0x453637 * (0x01 << 0xe8); var temp4 = memory[0x40:0x60]; revert(memory[temp4:temp4 + temp3 - temp4 + 0x64]); } } function totalReserves() returns (var r0) { return storage[0x0a]; } function symbol() returns (var r0) { var temp0 = storage[0x04]; var temp1 = memory[0x40:0x60]; var temp2 = (temp0 & !(temp0 & 0x01) * 0x0100 + ~0x00) / 0x02; var var2 = temp2; memory[0x40:0x60] = temp1 + (var2 + 0x1f) / 0x20 * 0x20 + 0x20; memory[temp1:temp1 + 0x20] = var2; r0 = temp1; var var1 = 0x04; var var3 = r0 + 0x20; var var4 = var1; var var5 = var2; if (!var5) { label_1124: return r0; } else if (0x1f < var5) { var temp3 = var3; var temp4 = temp3 + var5; var3 = temp4; memory[0x00:0x20] = var4; var temp5 = keccak256(memory[0x00:0x20]); memory[temp3:temp3 + 0x20] = storage[temp5]; var4 = temp5 + 0x01; var5 = temp3 + 0x20; if (var3 <= var5) { goto label_111B; } label_1107: var temp6 = var4; var temp7 = var5; memory[temp7:temp7 + 0x20] = storage[temp6]; var4 = temp6 + 0x01; var5 = temp7 + 0x20; if (var3 > var5) { goto label_1107; } label_111B: var temp8 = var3; var temp9 = temp8 + (var5 - temp8 & 0x1f); var5 = temp8; var3 = temp9; goto label_1124; } else { var temp10 = var3; memory[temp10:temp10 + 0x20] = storage[var4] / 0x0100 * 0x0100; var3 = temp10 + 0x20; var5 = var5; goto label_1124; } } function func_19D9(var arg0) returns (var r0) { var var0 = 0x00; var var1 = var0; var var2 = 0x00; var var3 = 0x19e7; var var4 = arg0; var3, var4 = func_330C(var4); var temp0 = var3; var1 = temp0; var2 = var4; var3 = 0x00; var4 = var1; if (var4 > 0x03) { assert(); } if (var4 == var3) { return var2; } var temp1 = memory[0x40:0x60]; memory[temp1:temp1 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp1 + 0x04:temp1 + 0x04 + 0x20] = 0x20; memory[temp1 + 0x24:temp1 + 0x24 + 0x20] = 0x03; memory[temp1 + 0x44:temp1 + 0x44 + 0x20] = 0x114dcd * (0x01 << 0xea); var temp2 = memory[0x40:0x60]; revert(memory[temp2:temp2 + temp1 - temp2 + 0x64]); } function accrueInterest() returns (var r0) { var var0 = 0x00; var var1 = var0; var var2 = 0x1a43; var2 = func_23F2(); var temp0 = var2; var2 = storage[0x08]; var1 = temp0; if (var1 == var2) { return 0x00; } var var3 = 0x00; var var4 = 0x1a66; var4 = getCash(); var temp1 = memory[0x40:0x60]; memory[temp1:temp1 + 0x20] = 0x15f24053 * (0x01 << 0xe0); memory[temp1 + 0x04:temp1 + 0x04 + 0x20] = var4; memory[temp1 + 0x24:temp1 + 0x24 + 0x20] = storage[0x06]; memory[temp1 + 0x44:temp1 + 0x44 + 0x20] = storage[0x0a]; var3 = var4; var4 = storage[0x06]; var var5 = storage[0x0a]; var var6 = storage[0x09]; var var7 = 0x00; var var8 = storage[0x01] & (0x01 << 0xa0) - 0x01; var var9 = 0x15f24053; var var10 = temp1 + 0x64; var var11 = 0x20; var var12 = memory[0x40:0x60]; var var13 = temp1 - var12 + 0x64; var var14 = var12; var var15 = var8; var var16 = !address(var15).code.length; if (var16) { revert(memory[0x00:0x00]); } var temp2; temp2, memory[var12:var12 + var11] = address(var15).staticcall.gas(msg.gas)(memory[var14:var14 + var13]); var11 = !temp2; if (!var11) { var8 = memory[0x40:0x60]; var9 = returndata.length; if (var9 < 0x20) { revert(memory[0x00:0x00]); } var7 = memory[var8:var8 + 0x20]; if (var7 <= 0x048c27395000) { var8 = 0x00; var9 = var8; var10 = 0x1b59; var11 = var1; var12 = var2; var10, var11 = func_33C0(var11, var12); var temp3 = var10; var8 = temp3; var9 = var11; var10 = 0x00; var11 = var8; if (var11 > 0x03) { assert(); } if (var11 == var10) { var10 = 0x1bb2; var10 = func_5357(); var11 = 0x00; var12 = var11; var13 = 0x00; var14 = var13; var15 = 0x1bd0; var temp4 = memory[0x40:0x60]; var16 = temp4; memory[0x40:0x60] = var16 + 0x20; memory[var16:var16 + 0x20] = var7; var var17 = var9; var15, var16 = func_33E3(var16, var17); var temp5 = var15; var8 = temp5; var10 = var16; var15 = 0x00; var16 = var8; if (var16 > 0x03) { assert(); } if (var16 == var15) { var15 = 0x1c2b; var16 = var10; var17 = var4; var15, var16 = func_3057(var16, var17); var temp6 = var15; var8 = temp6; var11 = var16; var15 = 0x00; var16 = var8; if (var16 > 0x03) { assert(); } if (var16 == var15) { var15 = 0x1c86; var16 = var11; var17 = var4; var15, var16 = func_2586(var16, var17); var temp7 = var15; var8 = temp7; var12 = var16; var15 = 0x00; var16 = var8; if (var16 > 0x03) { assert(); } if (var16 == var15) { var15 = 0x1cf2; var temp8 = memory[0x40:0x60]; var16 = temp8; memory[0x40:0x60] = var16 + 0x20; memory[var16:var16 + 0x20] = storage[0x0b]; var17 = var11; var var18 = var5; var15, var16 = func_344B(var16, var17, var18); var temp9 = var15; var8 = temp9; var13 = var16; var15 = 0x00; var16 = var8; if (var16 > 0x03) { assert(); } if (var16 == var15) { var15 = 0x1d4e; var16 = var10; var17 = var6; var18 = var17; var15, var16 = func_344B(var16, var17, var18); var temp10 = var15; var8 = temp10; var14 = var16; var15 = 0x00; var16 = var8; if (var16 > 0x03) { assert(); } if (var16 == var15) { storage[0x08] = var1; storage[0x09] = var14; storage[0x06] = var12; storage[0x0a] = var13; return 0x00; } else { var temp11 = memory[0x40:0x60]; memory[temp11:temp11 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp11 + 0x04:temp11 + 0x04 + 0x20] = 0x20; memory[temp11 + 0x24:temp11 + 0x24 + 0x20] = 0x03; memory[temp11 + 0x44:temp11 + 0x44 + 0x20] = 0x229b1b * (0x01 << 0xe9); var temp12 = memory[0x40:0x60]; revert(memory[temp12:temp12 + temp11 - temp12 + 0x64]); } } else { var temp13 = memory[0x40:0x60]; memory[temp13:temp13 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp13 + 0x04:temp13 + 0x04 + 0x20] = 0x20; memory[temp13 + 0x24:temp13 + 0x24 + 0x20] = 0x03; memory[temp13 + 0x44:temp13 + 0x44 + 0x20] = 0x453635 * (0x01 << 0xe8); var temp14 = memory[0x40:0x60]; revert(memory[temp14:temp14 + temp13 - temp14 + 0x64]); } } else { var temp15 = memory[0x40:0x60]; memory[temp15:temp15 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp15 + 0x04:temp15 + 0x04 + 0x20] = 0x20; memory[temp15 + 0x24:temp15 + 0x24 + 0x20] = 0x03; memory[temp15 + 0x44:temp15 + 0x44 + 0x20] = 0x114d8d * (0x01 << 0xea); var temp16 = memory[0x40:0x60]; revert(memory[temp16:temp16 + temp15 - temp16 + 0x64]); } } else { var temp17 = memory[0x40:0x60]; memory[temp17:temp17 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp17 + 0x04:temp17 + 0x04 + 0x20] = 0x20; memory[temp17 + 0x24:temp17 + 0x24 + 0x20] = 0x03; memory[temp17 + 0x44:temp17 + 0x44 + 0x20] = 0x453633 * (0x01 << 0xe8); var temp18 = memory[0x40:0x60]; revert(memory[temp18:temp18 + temp17 - temp18 + 0x64]); } } else { var temp19 = memory[0x40:0x60]; memory[temp19:temp19 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp19 + 0x04:temp19 + 0x04 + 0x20] = 0x20; memory[temp19 + 0x24:temp19 + 0x24 + 0x20] = 0x03; memory[temp19 + 0x44:temp19 + 0x44 + 0x20] = 0x229b19 * (0x01 << 0xe9); var temp20 = memory[0x40:0x60]; revert(memory[temp20:temp20 + temp19 - temp20 + 0x64]); } } else { var temp21 = memory[0x40:0x60]; memory[temp21:temp21 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp21 + 0x04:temp21 + 0x04 + 0x20] = 0x20; memory[temp21 + 0x24:temp21 + 0x24 + 0x20] = 0x03; memory[temp21 + 0x44:temp21 + 0x44 + 0x20] = 0x453631 * (0x01 << 0xe8); var temp22 = memory[0x40:0x60]; revert(memory[temp22:temp22 + temp21 - temp22 + 0x64]); } } else { var temp23 = memory[0x40:0x60]; memory[temp23:temp23 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp23 + 0x04:temp23 + 0x04 + 0x20] = 0x20; memory[temp23 + 0x24:temp23 + 0x24 + 0x20] = 0x03; memory[temp23 + 0x44:temp23 + 0x44 + 0x20] = 0x045363 * (0x01 << 0xec); var temp24 = memory[0x40:0x60]; revert(memory[temp24:temp24 + temp23 - temp24 + 0x64]); } } else { var temp25 = returndata.length; memory[0x00:0x00 + temp25] = returndata[0x00:0x00 + temp25]; revert(memory[0x00:0x00 + returndata.length]); } } function borrowIndex() returns (var r0) { return storage[0x09]; } function supplyRatePerBlock() returns (var r0) { var var0 = 0x00; var var1 = storage[0x01] & (0x01 << 0xa0) - 0x01; var var2 = 0xb8168816; var var3 = 0x1ea0; var3 = getCash(); var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = (var2 & 0xffffffff) << 0xe0; var temp1 = temp0 + 0x04; memory[temp1:temp1 + 0x20] = var3; var temp2 = temp1 + 0x20; memory[temp2:temp2 + 0x20] = storage[0x06]; var temp3 = temp2 + 0x20; memory[temp3:temp3 + 0x20] = storage[0x0a]; var temp4 = temp3 + 0x20; memory[temp4:temp4 + 0x20] = storage[0x0b]; var3 = temp4 + 0x20; var var4 = 0x20; var var5 = memory[0x40:0x60]; var var6 = var3 - var5; var var7 = var5; var var8 = var1; var var9 = !address(var8).code.length; if (var9) { revert(memory[0x00:0x00]); } var temp5; temp5, memory[var5:var5 + var4] = address(var8).staticcall.gas(msg.gas)(memory[var7:var7 + var6]); var4 = !temp5; if (!var4) { var1 = memory[0x40:0x60]; var2 = returndata.length; if (var2 >= 0x20) { return memory[var1:var1 + 0x20]; } else { revert(memory[0x00:0x00]); } } else { var temp6 = returndata.length; memory[0x00:0x00 + temp6] = returndata[0x00:0x00 + temp6]; revert(memory[0x00:0x00 + returndata.length]); } } function exchangeRateCurrent() returns (var r0) { var var0 = 0x00; if (storage[var0] / 0x010000 & 0xff) { var var1 = 0x00; storage[var1] = storage[var1] & ~0xff0000; var var2 = 0x1ffd; var2 = accrueInterest(); label_1FFD: if (var2 == var1) { var1 = 0x2042; var1 = exchangeRateStored(); storage[0x00] = (storage[0x00] & ~0xff0000) | 0x010000; return var1; } else { var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = 0x20; memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = 0x02; memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = 0x4535 * (0x01 << 0xf0); var temp1 = memory[0x40:0x60]; revert(memory[temp1:temp1 + temp0 - temp1 + 0x64]); } } else { var temp2 = memory[0x40:0x60]; memory[temp2:temp2 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp2 + 0x04:temp2 + 0x04 + 0x20] = 0x20; memory[temp2 + 0x24:temp2 + 0x24 + 0x20] = 0x03; memory[temp2 + 0x44:temp2 + 0x44 + 0x20] = 0x453637 * (0x01 << 0xe8); var temp3 = memory[0x40:0x60]; revert(memory[temp3:temp3 + temp2 - temp3 + 0x64]); } } function underlyingSymbol() returns (var r0) { return storage[0x02]; } function interestRateModel() returns (var r0) { return storage[0x01] & (0x01 << 0xa0) - 0x01; } function controller() returns (var r0) { return storage[0x00] / 0x01000000 & (0x01 << 0xa0) - 0x01; } function admin() returns (var r0) { return storage[0x05] / 0x0100 & (0x01 << 0xa0) - 0x01; } function borrowRatePerBlock() returns (var r0) { var var0 = 0x00; var var1 = storage[0x01] & (0x01 << 0xa0) - 0x01; var var2 = 0x15f24053; var var3 = 0x22df; var3 = getCash(); var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = (var2 & 0xffffffff) << 0xe0; var temp1 = temp0 + 0x04; memory[temp1:temp1 + 0x20] = var3; var temp2 = temp1 + 0x20; memory[temp2:temp2 + 0x20] = storage[0x06]; var temp3 = temp2 + 0x20; memory[temp3:temp3 + 0x20] = storage[0x0a]; var3 = temp3 + 0x20; var var4 = 0x20; var var5 = memory[0x40:0x60]; var var6 = var3 - var5; var var7 = var5; var var8 = var1; var var9 = !address(var8).code.length; if (var9) { revert(memory[0x00:0x00]); } var temp4; temp4, memory[var5:var5 + var4] = address(var8).staticcall.gas(msg.gas)(memory[var7:var7 + var6]); var4 = !temp4; if (!var4) { var1 = memory[0x40:0x60]; var2 = returndata.length; if (var2 >= 0x20) { return memory[var1:var1 + 0x20]; } else { revert(memory[0x00:0x00]); } } else { var temp5 = returndata.length; memory[0x00:0x00 + temp5] = returndata[0x00:0x00 + temp5]; revert(memory[0x00:0x00 + returndata.length]); } } function func_23F2() returns (var r0) { return block.number; } function func_23F6() returns (var r0, var r1) { r1 = 0x00; var var1 = r1; var var2 = storage[0x07]; if (var2) { var var3 = 0x00; var var4 = 0x241b; var4 = getCash(); var3 = var4; var4 = 0x00; var var5 = 0x2427; var5 = func_5357(); var var6 = 0x00; var var7 = 0x2438; var var8 = var3; var var9 = storage[0x06]; var var10 = storage[0x0a]; var7, var8 = func_41C6(var8, var9, var10); var4 = var8; var temp0 = var7; var6 = temp0; var7 = 0x00; var8 = var6; if (var8 > 0x03) { assert(); } if (var8 == var7) { var7 = 0x2469; var8 = var4; var9 = var2; var7, var8 = func_4204(var8, var9); label_2469: var5 = var8; var temp1 = var7; var6 = temp1; var7 = 0x00; var8 = var6; if (var8 > 0x03) { assert(); } if (var8 == var7) { r1 = 0x00; var1 = memory[var5:var5 + 0x20]; label_1629: var temp2 = r1; r1 = var1; r0 = temp2; return r0, r1; } else { r1 = var6; var1 = 0x00; goto label_1629; } } else { r1 = var6; var1 = 0x00; goto label_1629; } } else { var1 = storage[0x0c]; r1 = 0x00; goto label_1629; } } function func_24A1(var arg0, var arg1) returns (var r0) { var var0 = 0x00; if (arg0 & (0x01 << 0xa0) - 0x01 != msg.sender) { var temp2 = memory[0x40:0x60]; memory[temp2:temp2 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp2 + 0x04:temp2 + 0x04 + 0x20] = 0x20; memory[temp2 + 0x24:temp2 + 0x24 + 0x20] = 0x03; memory[temp2 + 0x44:temp2 + 0x44 + 0x20] = 0x453737 * (0x01 << 0xe8); var temp3 = memory[0x40:0x60]; revert(memory[temp3:temp3 + temp2 - temp3 + 0x64]); } else if (msg.value == arg1) { return arg1; } else { var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = 0x20; memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = 0x03; memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = 0x08a6e7 * (0x01 << 0xeb); var temp1 = memory[0x40:0x60]; revert(memory[temp1:temp1 + temp0 - temp1 + 0x64]); } } function func_2586(var arg0, var arg1) returns (var r0, var arg0) { var var0 = 0x00; var var1 = var0; var temp0 = arg0; var var2 = arg1 + temp0; if (var2 < temp0) { var0 = 0x02; var1 = 0x00; label_257F: arg0 = var1; r0 = var0; return r0, arg0; } else { var0 = 0x00; var1 = var2; goto label_257F; } } function func_25AC(var arg0, var arg1, var arg2, var arg3) returns (var r0) { var var0 = 0x00; var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = 0x17b9b84b * (0x01 << 0xe3); memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = address(this); var temp1 = (0x01 << 0xa0) - 0x01; memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = temp1 & arg1; memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = temp1 & arg2; memory[temp0 + 0x64:temp0 + 0x64 + 0x20] = arg3; var var1 = var0; var var2 = temp1 & storage[var1] / 0x01000000; var var3 = 0xbdcdc258; var var4 = temp0 + 0x84; var var5 = 0x20; var var6 = memory[0x40:0x60]; var var7 = temp0 - var6 + 0x84; var var8 = var6; var var9 = var1; var var10 = var2; var var11 = !address(var10).code.length; if (var11) { revert(memory[0x00:0x00]); } var temp2; temp2, memory[var6:var6 + var5] = address(var10).call.gas(msg.gas).value(var9)(memory[var8:var8 + var7]); var5 = !temp2; if (!var5) { var2 = memory[0x40:0x60]; var3 = returndata.length; if (var3 < 0x20) { revert(memory[0x00:0x00]); } var1 = memory[var2:var2 + 0x20]; if (var1) { var2 = 0x265d; var3 = 0x03; var4 = 0x4a; var5 = var1; var2 = func_4322(var3, var4, var5); goto label_265D; } else if (arg1 & (0x01 << 0xa0) - 0x01 != arg2 & (0x01 << 0xa0) - 0x01) { var2 = 0x00; var temp3 = (0x01 << 0xa0) - 0x01; if (arg1 & temp3 != temp3 & arg0) { var temp4 = (0x01 << 0xa0) - 0x01; memory[0x00:0x20] = arg1 & temp4; memory[0x20:0x40] = 0x0e; var temp5 = keccak256(memory[0x00:0x40]); memory[0x00:0x20] = arg0 & temp4; memory[0x20:0x40] = temp5; var2 = storage[keccak256(memory[0x00:0x40])]; var3 = 0x00; var4 = var3; var5 = 0x00; var6 = var5; var7 = 0x26e2; var8 = var2; var9 = arg3; var7, var8 = func_33C0(var8, var9); label_26E2: var temp6 = var7; var3 = temp6; var4 = var8; var7 = 0x00; var8 = var3; if (var8 > 0x03) { assert(); } if (var8 == var7) { memory[0x00:0x20] = arg1 & (0x01 << 0xa0) - 0x01; memory[0x20:0x40] = 0x0d; var8 = storage[keccak256(memory[0x00:0x40])]; var7 = 0x2756; var9 = arg3; var7, var8 = func_33C0(var8, var9); var temp7 = var7; var3 = temp7; var5 = var8; var7 = 0x00; var8 = var3; if (var8 > 0x03) { assert(); } if (var8 == var7) { memory[0x00:0x20] = arg2 & (0x01 << 0xa0) - 0x01; memory[0x20:0x40] = 0x0d; var8 = storage[keccak256(memory[0x00:0x40])]; var7 = 0x27ca; var9 = arg3; var7, var8 = func_2586(var8, var9); var temp8 = var7; var3 = temp8; var6 = var8; var7 = 0x00; var8 = var3; if (var8 > 0x03) { assert(); } if (var8 == var7) { var temp9 = (0x01 << 0xa0) - 0x01; memory[0x00:0x20] = arg1 & temp9; memory[0x20:0x40] = 0x0d; storage[keccak256(memory[0x00:0x40])] = var5; memory[0x00:0x20] = arg2 & temp9; storage[keccak256(memory[0x00:0x40])] = var6; if (var2 == ~0x00) { var temp10 = memory[0x00:0x20]; memory[0x00:0x20] = code[0x54d1:0x54f1]; var temp11 = memory[0x00:0x20]; memory[0x00:0x20] = temp10; var temp12 = memory[0x40:0x60]; memory[temp12:temp12 + 0x20] = arg3; var temp13 = memory[0x40:0x60]; log(memory[temp13:temp13 + (temp12 + 0x20) - temp13], [memory[0x00:0x20], stack[-10] & (0x01 << 0xa0) - 0x01, stack[-9] & (0x01 << 0xa0) - 0x01]); return 0x00; } else { var temp14 = (0x01 << 0xa0) - 0x01; var temp15 = arg1; memory[0x00:0x20] = temp15 & temp14; memory[0x20:0x40] = 0x0e; var temp16 = keccak256(memory[0x00:0x40]); memory[0x00:0x20] = arg0 & temp14; memory[0x20:0x40] = temp16; storage[keccak256(memory[0x00:0x40])] = var4; var temp17 = memory[0x00:0x20]; memory[0x00:0x20] = code[0x54d1:0x54f1]; var temp18 = memory[0x00:0x20]; memory[0x00:0x20] = temp17; var temp19 = memory[0x40:0x60]; memory[temp19:temp19 + 0x20] = arg3; var temp20 = memory[0x40:0x60]; log(memory[temp20:temp20 + (temp19 + 0x20) - temp20], [memory[0x00:0x20], stack[-10] & (0x01 << 0xa0) - 0x01, stack[-9] & (0x01 << 0xa0) - 0x01]); return 0x00; } } else { var temp21 = memory[0x40:0x60]; memory[temp21:temp21 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp21 + 0x04:temp21 + 0x04 + 0x20] = 0x20; memory[temp21 + 0x24:temp21 + 0x24 + 0x20] = 0x03; memory[temp21 + 0x44:temp21 + 0x44 + 0x20] = 0x229b99 * (0x01 << 0xe9); var temp22 = memory[0x40:0x60]; revert(memory[temp22:temp22 + temp21 - temp22 + 0x64]); } } else { var temp23 = memory[0x40:0x60]; memory[temp23:temp23 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp23 + 0x04:temp23 + 0x04 + 0x20] = 0x20; memory[temp23 + 0x24:temp23 + 0x24 + 0x20] = 0x03; memory[temp23 + 0x44:temp23 + 0x44 + 0x20] = 0x453731 * (0x01 << 0xe8); var temp24 = memory[0x40:0x60]; revert(memory[temp24:temp24 + temp23 - temp24 + 0x64]); } } else { var temp25 = memory[0x40:0x60]; memory[temp25:temp25 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp25 + 0x04:temp25 + 0x04 + 0x20] = 0x20; memory[temp25 + 0x24:temp25 + 0x24 + 0x20] = 0x03; memory[temp25 + 0x44:temp25 + 0x44 + 0x20] = 0x045373 * (0x01 << 0xec); var temp26 = memory[0x40:0x60]; revert(memory[temp26:temp26 + temp25 - temp26 + 0x64]); } } else { var2 = ~0x00; var3 = 0x00; var4 = var3; var5 = 0x00; var6 = var5; var7 = 0x26e2; var8 = var2; var9 = arg3; var7, var8 = func_33C0(var8, var9); goto label_26E2; } } else { var2 = 0x265d; var3 = 0x02; var4 = 0x4b; var2 = func_4388(var3, var4); label_265D: return var2; } } else { var temp27 = returndata.length; memory[0x00:0x00 + temp27] = returndata[0x00:0x00 + temp27]; revert(memory[0x00:0x00 + returndata.length]); } } function func_28BD(var arg0, var arg1) returns (var r0) { var var0 = 0x00; if (storage[var0] / 0x010000 & 0xff) { storage[0x00] = storage[0x00] & ~0xff0000; if (arg1) { var var1 = 0x2959; var1 = func_536A(); var var2 = 0x2961; var var3; var2, var3 = func_23F6(); var temp0 = var1; memory[temp0 + 0x40:temp0 + 0x40 + 0x20] = var3; var var4 = temp0 + 0x20; var var5 = var2; if (var5 > 0x03) { assert(); } if (var5 > 0x03) { assert(); } memory[var4:var4 + 0x20] = var5; var2 = 0x00; var3 = memory[var1 + 0x20:var1 + 0x20 + 0x20]; if (var3 > 0x03) { assert(); } if (var3 == var2) { var temp1 = memory[0x40:0x60]; memory[0x40:0x60] = temp1 + 0x20; memory[temp1:temp1 + 0x20] = memory[var1 + 0x40:var1 + 0x40 + 0x20]; memory[0x00:0x20] = arg0 & (0x01 << 0xa0) - 0x01; memory[0x20:0x40] = 0x0d; var2 = 0x00; var3 = var2; var5 = temp1; var4 = 0x2a0c; var var6 = storage[keccak256(memory[var3:var3 + 0x40])]; var4, var5 = func_3057(var5, var6); var temp2 = var4; var2 = temp2; var3 = var5; var4 = 0x00; var5 = var2; if (var5 > 0x03) { assert(); } if (var5 != var4) { var temp47 = memory[0x40:0x60]; memory[temp47:temp47 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp47 + 0x04:temp47 + 0x04 + 0x20] = 0x20; memory[temp47 + 0x24:temp47 + 0x24 + 0x20] = 0x03; memory[temp47 + 0x44:temp47 + 0x44 + 0x20] = 0x22999b * (0x01 << 0xe9); var temp48 = memory[0x40:0x60]; revert(memory[temp48:temp48 + temp47 - temp48 + 0x64]); } else if (arg1 != ~0x00) { var temp3 = var1; memory[temp3 + 0xa0:temp3 + 0xa0 + 0x20] = arg1; var temp4 = memory[0x40:0x60]; memory[0x40:0x60] = temp4 + 0x20; memory[temp4:temp4 + 0x20] = memory[temp3 + 0x40:temp3 + 0x40 + 0x20]; var4 = 0x2ab3; var6 = temp4; var5 = arg1; var var7 = 0x00; var var8 = var7; var var9 = 0x00; var var10 = 0x253f; var10 = func_5357(); var var11 = 0x2549; var var12 = var5; var var13 = var6; var11, var12 = func_42B4(var12, var13); var temp5 = var11; var9 = temp5; var10 = var12; var11 = 0x00; var12 = var9; if (var12 > 0x03) { assert(); } if (var12 == var11) { var11 = 0x00; var12 = 0x2578; var13 = var10; var12 = func_4313(var13); var8 = var12; var7 = var11; label_257F: var5 = var8; var4 = var7; // Error: Could not resolve jump destination! } else { var7 = var9; var8 = 0x00; goto label_257F; } } else { var temp6 = var1; memory[temp6 + 0xa0:temp6 + 0xa0 + 0x20] = var3; memory[0x00:0x20] = arg0 & (0x01 << 0xa0) - 0x01; memory[0x20:0x40] = 0x0d; memory[temp6 + 0x80:temp6 + 0x80 + 0x20] = storage[keccak256(memory[0x00:0x40])]; memory[0x00:0x20] = arg0 & (0x01 << 0xa0) - 0x01; memory[0x20:0x40] = 0x0f; if (var3 <= storage[keccak256(memory[0x00:0x40])]) { var temp7 = var1; memory[temp7 + 0x0120:temp7 + 0x0120 + 0x20] = 0x00; if (memory[temp7 + 0xa0:temp7 + 0xa0 + 0x20] < memory[temp7 + 0x0120:temp7 + 0x0120 + 0x20]) { label_2CFF: var temp8 = memory[var1 + 0x80:var1 + 0x80 + 0x20]; var temp9 = memory[0x40:0x60]; memory[temp9:temp9 + 0x20] = 0xeabe7d91 * (0x01 << 0xe0); memory[temp9 + 0x04:temp9 + 0x04 + 0x20] = address(this); var temp10 = (0x01 << 0xa0) - 0x01; memory[temp9 + 0x24:temp9 + 0x24 + 0x20] = temp10 & arg0; memory[temp9 + 0x44:temp9 + 0x44 + 0x20] = temp8; var4 = temp10 & storage[0x00] / 0x01000000; var8 = memory[0x40:0x60]; var5 = 0xeabe7d91; var6 = temp9 + 0x64; var7 = 0x20; var9 = temp9 - var8 + 0x64; var10 = var8; var11 = 0x00; var12 = var4; var13 = !address(var12).code.length; if (var13) { revert(memory[0x00:0x00]); } var temp11; temp11, memory[var8:var8 + var7] = address(var12).call.gas(msg.gas).value(var11)(memory[var10:var10 + var9]); var7 = !temp11; if (!var7) { var4 = memory[0x40:0x60]; var5 = returndata.length; if (var5 < 0x20) { revert(memory[0x00:0x00]); } var temp12 = memory[var4:var4 + 0x20]; memory[var1 + 0x60:var1 + 0x60 + 0x20] = temp12; if (!temp12) { var4 = 0x2dee; var5 = storage[0x07]; var6 = memory[var1 + 0x80:var1 + 0x80 + 0x20]; var4, var5 = func_33C0(var5, var6); var temp13 = var1; memory[temp13 + 0xc0:temp13 + 0xc0 + 0x20] = var5; var6 = temp13 + 0x20; var7 = var4; if (var7 > 0x03) { assert(); } if (var7 > 0x03) { assert(); } memory[var6:var6 + 0x20] = var7; var4 = 0x00; var5 = memory[var1 + 0x20:var1 + 0x20 + 0x20]; if (var5 > 0x03) { assert(); } if (var5 == var4) { memory[0x00:0x20] = arg0 & (0x01 << 0xa0) - 0x01; memory[0x20:0x40] = 0x0d; var4 = 0x2e8d; var6 = memory[var1 + 0x80:var1 + 0x80 + 0x20]; var5 = storage[keccak256(memory[0x00:0x40])]; var4, var5 = func_33C0(var5, var6); var temp14 = var1; memory[temp14 + 0xe0:temp14 + 0xe0 + 0x20] = var5; var6 = temp14 + 0x20; var7 = var4; if (var7 > 0x03) { assert(); } if (var7 > 0x03) { assert(); } memory[var6:var6 + 0x20] = var7; var4 = 0x00; var5 = memory[var1 + 0x20:var1 + 0x20 + 0x20]; if (var5 > 0x03) { assert(); } if (var5 == var4) { var4 = memory[var1 + 0xa0:var1 + 0xa0 + 0x20]; var5 = 0x2f11; var5 = getCash(); if (var5 >= var4) { var4 = 0x2f5e; var5 = arg0; var6 = memory[var1 + 0xa0:var1 + 0xa0 + 0x20]; var4 = func_43EE(var5, var6); var temp15 = var1; memory[temp15 + 0x0180:temp15 + 0x0180 + 0x20] = var4; var temp16 = memory[0x40:0x60]; memory[temp16:temp16 + 0x20] = memory[temp15 + 0x80:temp15 + 0x80 + 0x20]; var temp17 = memory[0x40:0x60]; var temp18 = arg0; var temp19 = memory[0x00:0x20]; memory[0x00:0x20] = code[0x54d1:0x54f1]; var temp20 = memory[0x00:0x20]; memory[0x00:0x20] = temp19; log(memory[temp17:temp17 + temp16 - temp17 + 0x20], [memory[0x00:0x20], stack[-7] & (0x01 << 0xa0) - 0x01, address(this)]); storage[0x07] = memory[temp15 + 0xc0:temp15 + 0xc0 + 0x20]; var temp21 = memory[temp15 + 0xe0:temp15 + 0xe0 + 0x20]; var temp22 = (0x01 << 0xa0) - 0x01; memory[0x00:0x20] = temp18 & temp22; memory[0x20:0x40] = 0x0d; storage[keccak256(memory[0x00:0x40])] = temp21; var temp23 = memory[temp15 + 0x0180:temp15 + 0x0180 + 0x20]; var temp24 = memory[temp15 + 0x80:temp15 + 0x80 + 0x20]; var temp25 = memory[0x40:0x60]; memory[temp25:temp25 + 0x20] = 0x6640728d * (0x01 << 0xe1); memory[temp25 + 0x04:temp25 + 0x04 + 0x20] = temp23; memory[temp25 + 0x24:temp25 + 0x24 + 0x20] = temp24; var4 = temp22 & storage[0x00] / 0x01000000; var8 = memory[0x40:0x60]; var5 = 0xcc80e51a; var6 = temp25 + 0x44; var7 = 0x00; var9 = temp25 - var8 + 0x44; var10 = var8; var11 = var7; var12 = var4; var13 = !address(var12).code.length; if (var13) { revert(memory[0x00:0x00]); } var temp26; temp26, memory[var8:var8 + var7] = address(var12).call.gas(msg.gas).value(var11)(memory[var10:var10 + var9]); var7 = !temp26; if (!var7) { var4 = 0x00; storage[0x00] = (storage[0x00] & ~0xff0000) | 0x010000; return var4; } else { var temp27 = returndata.length; memory[0x00:0x00 + temp27] = returndata[0x00:0x00 + temp27]; revert(memory[0x00:0x00 + returndata.length]); } } else { var temp28 = memory[0x40:0x60]; memory[temp28:temp28 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp28 + 0x04:temp28 + 0x04 + 0x20] = 0x20; memory[temp28 + 0x24:temp28 + 0x24 + 0x20] = 0x03; memory[temp28 + 0x44:temp28 + 0x44 + 0x20] = 0x453433 * (0x01 << 0xe8); var temp29 = memory[0x40:0x60]; revert(memory[temp29:temp29 + temp28 - temp29 + 0x64]); } } else { var temp30 = memory[0x40:0x60]; memory[temp30:temp30 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp30 + 0x04:temp30 + 0x04 + 0x20] = 0x20; memory[temp30 + 0x24:temp30 + 0x24 + 0x20] = 0x03; memory[temp30 + 0x44:temp30 + 0x44 + 0x20] = 0x229a19 * (0x01 << 0xe9); var temp31 = memory[0x40:0x60]; revert(memory[temp31:temp31 + temp30 - temp31 + 0x64]); } } else { var temp32 = memory[0x40:0x60]; memory[temp32:temp32 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp32 + 0x04:temp32 + 0x04 + 0x20] = 0x20; memory[temp32 + 0x24:temp32 + 0x24 + 0x20] = 0x03; memory[temp32 + 0x44:temp32 + 0x44 + 0x20] = 0x453431 * (0x01 << 0xe8); var temp33 = memory[0x40:0x60]; revert(memory[temp33:temp33 + temp32 - temp33 + 0x64]); } } else { var temp34 = memory[0x40:0x60]; memory[temp34:temp34 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp34 + 0x04:temp34 + 0x04 + 0x20] = 0x20; memory[temp34 + 0x24:temp34 + 0x24 + 0x20] = 0x03; memory[temp34 + 0x44:temp34 + 0x44 + 0x20] = 0x045343 * (0x01 << 0xec); var temp35 = memory[0x40:0x60]; revert(memory[temp35:temp35 + temp34 - temp35 + 0x64]); } } else { var temp36 = returndata.length; memory[0x00:0x00 + temp36] = returndata[0x00:0x00 + temp36]; revert(memory[0x00:0x00 + returndata.length]); } } else { label_2C05: var4 = 0x2c17; var temp37 = var1; var5 = memory[temp37 + 0xa0:temp37 + 0xa0 + 0x20]; var6 = memory[temp37 + 0x0120:temp37 + 0x0120 + 0x20]; var4, var5 = func_33C0(var5, var6); var temp38 = var1; memory[temp38 + 0x0140:temp38 + 0x0140 + 0x20] = var5; var6 = temp38 + 0x20; var7 = var4; if (var7 > 0x03) { assert(); } if (var7 > 0x03) { assert(); } memory[var6:var6 + 0x20] = var7; memory[0x00:0x20] = arg0 & (0x01 << 0xa0) - 0x01; memory[0x20:0x40] = 0x0f; var4 = 0x2c67; var5 = storage[keccak256(memory[0x00:0x40])]; var6 = memory[var1 + 0x0140:var1 + 0x0140 + 0x20]; var4, var5 = func_33C0(var5, var6); var temp39 = var1; memory[temp39 + 0x0100:temp39 + 0x0100 + 0x20] = var5; var6 = temp39 + 0x20; var7 = var4; if (var7 > 0x03) { assert(); } if (var7 > 0x03) { assert(); } memory[var6:var6 + 0x20] = var7; var4 = 0x00; var5 = memory[var1 + 0x20:var1 + 0x20 + 0x20]; if (var5 > 0x03) { assert(); } if (var5 == var4) { var temp40 = memory[var1 + 0x0100:var1 + 0x0100 + 0x20]; memory[0x00:0x20] = arg0 & (0x01 << 0xa0) - 0x01; memory[0x20:0x40] = 0x0f; storage[keccak256(memory[0x00:0x40])] = temp40; goto label_2CFF; } else { var temp41 = memory[0x40:0x60]; memory[temp41:temp41 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp41 + 0x04:temp41 + 0x04 + 0x20] = 0x20; memory[temp41 + 0x24:temp41 + 0x24 + 0x20] = 0x03; memory[temp41 + 0x44:temp41 + 0x44 + 0x20] = 0x453339 * (0x01 << 0xe8); var temp42 = memory[0x40:0x60]; revert(memory[temp42:temp42 + temp41 - temp42 + 0x64]); } } } else { memory[0x00:0x20] = arg0 & (0x01 << 0xa0) - 0x01; memory[0x20:0x40] = 0x0f; var4 = 0x2b6e; var5 = var3; var6 = storage[keccak256(memory[0x00:0x40])]; var4, var5 = func_33C0(var5, var6); var temp43 = var1; memory[temp43 + 0x0120:temp43 + 0x0120 + 0x20] = var5; var6 = temp43 + 0x20; var7 = var4; if (var7 > 0x03) { assert(); } if (var7 > 0x03) { assert(); } memory[var6:var6 + 0x20] = var7; var4 = 0x00; var5 = memory[var1 + 0x20:var1 + 0x20 + 0x20]; if (var5 > 0x03) { assert(); } if (var5 == var4) { var temp44 = var1; if (memory[temp44 + 0xa0:temp44 + 0xa0 + 0x20] < memory[temp44 + 0x0120:temp44 + 0x0120 + 0x20]) { goto label_2CFF; } else { goto label_2C05; } } else { var temp45 = memory[0x40:0x60]; memory[temp45:temp45 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp45 + 0x04:temp45 + 0x04 + 0x20] = 0x20; memory[temp45 + 0x24:temp45 + 0x24 + 0x20] = 0x03; memory[temp45 + 0x44:temp45 + 0x44 + 0x20] = 0x08a667 * (0x01 << 0xeb); var temp46 = memory[0x40:0x60]; revert(memory[temp46:temp46 + temp45 - temp46 + 0x64]); } } } } else { var temp49 = memory[0x40:0x60]; memory[temp49:temp49 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp49 + 0x04:temp49 + 0x04 + 0x20] = 0x20; memory[temp49 + 0x24:temp49 + 0x24 + 0x20] = 0x03; memory[temp49 + 0x44:temp49 + 0x44 + 0x20] = 0x453335 * (0x01 << 0xe8); var temp50 = memory[0x40:0x60]; revert(memory[temp50:temp50 + temp49 - temp50 + 0x64]); } } else { var temp51 = memory[0x40:0x60]; memory[temp51:temp51 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp51 + 0x04:temp51 + 0x04 + 0x20] = 0x20; memory[temp51 + 0x24:temp51 + 0x24 + 0x20] = 0x03; memory[temp51 + 0x44:temp51 + 0x44 + 0x20] = 0x114ccd * (0x01 << 0xea); var temp52 = memory[0x40:0x60]; revert(memory[temp52:temp52 + temp51 - temp52 + 0x64]); } } else { var temp53 = memory[0x40:0x60]; memory[temp53:temp53 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp53 + 0x04:temp53 + 0x04 + 0x20] = 0x20; memory[temp53 + 0x24:temp53 + 0x24 + 0x20] = 0x03; memory[temp53 + 0x44:temp53 + 0x44 + 0x20] = 0x453637 * (0x01 << 0xe8); var temp54 = memory[0x40:0x60]; revert(memory[temp54:temp54 + temp53 - temp54 + 0x64]); } } function func_3057(var arg0, var arg1) returns (var r0, var arg0) { var var0 = 0x00; var var1 = var0; var var2 = 0x00; var var3 = 0x3064; var3 = func_5357(); var var4 = 0x2549; var var5 = arg0; var var6 = arg1; var4, var5 = func_33E3(var5, var6); var temp0 = var4; var2 = temp0; var3 = var5; var4 = 0x00; var5 = var2; if (var5 > 0x03) { assert(); } if (var5 == var4) { var4 = 0x00; var5 = 0x2578; var6 = var3; var5 = func_4313(var6); var1 = var5; var0 = var4; label_257F: arg0 = var1; r0 = var0; return r0, arg0; } else { var0 = var2; var1 = 0x00; goto label_257F; } } function getCash() returns (var r0) { var var0 = 0x00; var var1 = var0; var var2 = var1; var var3 = 0x307d; var var4 = address(this).balance; var var5 = msg.value; var3, var4 = func_33C0(var4, var5); var temp0 = var3; var1 = temp0; var2 = var4; var3 = 0x00; var4 = var1; if (var4 > 0x03) { assert(); } if (var4 == var3) { return var2; } else { revert(memory[0x00:0x00]); } } function func_309A(var arg0) returns (var r0, var arg0) { var var0 = 0x00; var var1 = var0; if (storage[var1] / 0x010000 & 0xff) { storage[0x00] = storage[0x00] & ~0xff0000; var var2 = 0x30fd; var var3 = msg.sender; var var4 = var3; var var5 = arg0; var2, var3 = func_442E(var3, var4, var5); storage[0x00] = (storage[0x00] & ~0xff0000) | 0x010000; r0 = var2; arg0 = var3; return r0, arg0; } else { var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = 0x20; memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = 0x03; memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = 0x453637 * (0x01 << 0xe8); var temp1 = memory[0x40:0x60]; revert(memory[temp1:temp1 + temp0 - temp1 + 0x64]); } } function func_3119(var arg0) returns (var r0) { var var0 = 0x00; var var1 = var0; if (msg.sender == storage[0x05] / 0x0100 & (0x01 << 0xa0) - 0x01) { var var2 = 0x3175; var2 = func_23F2(); if (storage[0x08] == var2) { var2 = arg0; var var3 = 0x31be; var3 = getCash(); if (var3 < var2) { var temp7 = memory[0x40:0x60]; memory[temp7:temp7 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp7 + 0x04:temp7 + 0x04 + 0x20] = 0x20; memory[temp7 + 0x24:temp7 + 0x24 + 0x20] = 0x03; memory[temp7 + 0x44:temp7 + 0x44 + 0x20] = 0x453231 * (0x01 << 0xe8); var temp8 = memory[0x40:0x60]; revert(memory[temp8:temp8 + temp7 - temp8 + 0x64]); } else if (arg0 <= storage[0x0a]) { var temp0 = storage[0x0a]; var1 = temp0 - arg0; if (var1 <= temp0) { storage[0x0a] = var1; var2 = 0x00; var3 = 0x32ab; var var4 = storage[0x05] / 0x0100 & (0x01 << 0xa0) - 0x01; var var5 = arg0; var3 = func_43EE(var4, var5); var temp1 = memory[0x40:0x60]; memory[temp1:temp1 + 0x20] = storage[0x05] / 0x0100 & (0x01 << 0xa0) - 0x01; memory[temp1 + 0x20:temp1 + 0x20 + 0x20] = var3; memory[temp1 + 0x40:temp1 + 0x40 + 0x20] = var1; var temp2 = memory[0x40:0x60]; log(memory[temp2:temp2 + temp1 - temp2 + 0x60], [0x3bad0c59cf2f06e7314077049f48a93578cd16f5ef92329f1dab1420a99c177e]); return 0x00; } else { var temp3 = memory[0x40:0x60]; memory[temp3:temp3 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp3 + 0x04:temp3 + 0x04 + 0x20] = 0x20; memory[temp3 + 0x24:temp3 + 0x24 + 0x20] = 0x03; memory[temp3 + 0x44:temp3 + 0x44 + 0x20] = 0x08a687 * (0x01 << 0xeb); var temp4 = memory[0x40:0x60]; revert(memory[temp4:temp4 + temp3 - temp4 + 0x64]); } } else { var temp5 = memory[0x40:0x60]; memory[temp5:temp5 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp5 + 0x04:temp5 + 0x04 + 0x20] = 0x20; memory[temp5 + 0x24:temp5 + 0x24 + 0x20] = 0x03; memory[temp5 + 0x44:temp5 + 0x44 + 0x20] = 0x453437 * (0x01 << 0xe8); var temp6 = memory[0x40:0x60]; revert(memory[temp6:temp6 + temp5 - temp6 + 0x64]); } } else { var temp9 = memory[0x40:0x60]; memory[temp9:temp9 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp9 + 0x04:temp9 + 0x04 + 0x20] = 0x20; memory[temp9 + 0x24:temp9 + 0x24 + 0x20] = 0x02; memory[temp9 + 0x44:temp9 + 0x44 + 0x20] = 0x4537 * (0x01 << 0xf0); var temp10 = memory[0x40:0x60]; revert(memory[temp10:temp10 + temp9 - temp10 + 0x64]); } } else { var temp11 = memory[0x40:0x60]; memory[temp11:temp11 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp11 + 0x04:temp11 + 0x04 + 0x20] = 0x20; memory[temp11 + 0x24:temp11 + 0x24 + 0x20] = 0x02; memory[temp11 + 0x44:temp11 + 0x44 + 0x20] = 0x4531 * (0x01 << 0xf0); var temp12 = memory[0x40:0x60]; revert(memory[temp12:temp12 + temp11 - temp12 + 0x64]); } } function func_330C(var arg0) returns (var r0, var arg0) { var var0 = 0x00; memory[var0:var0 + 0x20] = arg0 & (0x01 << 0xa0) - 0x01; memory[0x20:0x40] = 0x11; var var1 = var0; var var2 = var1; var var5 = keccak256(memory[var2:var2 + 0x40]); var var3 = var2; var var4 = var3; if (storage[var5]) { var var6 = 0x3353; var var7 = storage[var5]; var var8 = storage[0x09]; var6, var7 = func_47E4(var7, var8); var temp0 = var6; var2 = temp0; var3 = var7; var6 = 0x00; var7 = var2; if (var7 > 0x03) { assert(); } if (var7 == var6) { var6 = 0x3389; var7 = var3; var8 = storage[var5 + 0x01]; var6, var7 = func_4823(var7, var8); var temp1 = var6; var2 = temp1; var4 = var7; var6 = 0x00; var7 = var2; if (var7 > 0x03) { assert(); } if (var7 == var6) { var0 = 0x00; var1 = var4; label_33BB: arg0 = var1; r0 = var0; return r0, arg0; } else { var0 = var2; var1 = 0x00; goto label_33BB; } } else { var0 = var2; var1 = 0x00; goto label_33BB; } } else { var0 = 0x00; var1 = var0; goto label_33BB; } } function func_33C0(var arg0, var arg1) returns (var r0, var arg0) { var var0 = 0x00; var var1 = var0; if (arg1 > arg0) { var0 = 0x03; var1 = 0x00; label_257F: arg0 = var1; r0 = var0; return r0, arg0; } else { var0 = 0x00; var1 = arg0 - arg1; goto label_257F; } } function func_33E3(var arg0, var arg1) returns (var r0, var arg0) { var var0 = 0x00; var var1 = 0x33ed; var1 = func_5357(); var var2 = 0x00; var var3 = var2; var var4 = 0x33fe; var var5 = memory[arg0:arg0 + 0x20]; var var6 = arg1; var4, var5 = func_47E4(var5, var6); var temp0 = var4; var2 = temp0; var3 = var5; var4 = 0x00; var5 = var2; if (var5 > 0x03) { assert(); } if (var5 == var4) { var temp1 = memory[0x40:0x60]; memory[0x40:0x60] = temp1 + 0x20; memory[temp1:temp1 + 0x20] = var3; r0 = 0x00; arg0 = temp1; return r0, arg0; } else { var temp2 = memory[0x40:0x60]; memory[0x40:0x60] = temp2 + 0x20; memory[temp2:temp2 + 0x20] = 0x00; var0 = var2; var1 = temp2; arg0 = var1; r0 = var0; return r0, arg0; } } function func_344B(var arg0, var arg1, var arg2) returns (var r0, var arg0) { var var0 = 0x00; var var1 = var0; var var2 = 0x00; var var3 = 0x3458; var3 = func_5357(); var var4 = 0x3462; var var5 = arg0; var var6 = arg1; var4, var5 = func_33E3(var5, var6); var temp0 = var4; var2 = temp0; var3 = var5; var4 = 0x00; var5 = var2; if (var5 > 0x03) { assert(); } if (var5 == var4) { var4 = 0x3498; var5 = 0x3492; var6 = var3; var5 = func_4313(var6); var4, var5 = func_3492(arg2, var5); var1 = var5; var0 = var4; label_349F: arg0 = var1; r0 = var0; return r0, arg0; } else { var0 = var2; var1 = 0x00; goto label_349F; } } function func_3492(var arg0, var arg1) returns (var r0, var arg1) { var var0 = arg0; r0, arg1 = func_2586(arg1, var0); // Error: Could not resolve method call return address! } function func_34A7(var arg0, var arg1, var arg2) returns (var r0, var arg0) { var var0 = 0x00; var var1 = var0; if (storage[var1] / 0x010000 & 0xff) { var var2 = 0x00; storage[var2] = storage[var2] & ~0xff0000; var var3 = 0x3507; var3 = accrueInterest(); label_3507: var2 = var3; if (!var2) { var3 = arg2 & (0x01 << 0xa0) - 0x01; var var4 = 0xa6afed95; var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = (var4 & 0xffffffff) << 0xe0; var var5 = temp0 + 0x04; var var6 = 0x20; var var7 = memory[0x40:0x60]; var var8 = var5 - var7; var var9 = var7; var var10 = 0x00; var var11 = var3; var var12 = !address(var11).code.length; if (var12) { revert(memory[0x00:0x00]); } var temp1; temp1, memory[var7:var7 + var6] = address(var11).call.gas(msg.gas).value(var10)(memory[var9:var9 + var8]); var6 = !temp1; if (!var6) { var3 = memory[0x40:0x60]; var4 = returndata.length; if (var4 < 0x20) { revert(memory[0x00:0x00]); } var2 = memory[var3:var3 + 0x20]; if (!var2) { var3 = 0x35fa; var4 = msg.sender; var5 = arg0; var6 = arg1; var7 = arg2; var3, var4 = func_484E(var4, var5, var6, var7); storage[0x00] = (storage[0x00] & ~0xff0000) | 0x010000; r0 = var3; arg0 = var4; return r0, arg0; } else { var temp2 = memory[0x40:0x60]; memory[temp2:temp2 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp2 + 0x04:temp2 + 0x04 + 0x20] = 0x20; memory[temp2 + 0x24:temp2 + 0x24 + 0x20] = 0x02; memory[temp2 + 0x44:temp2 + 0x44 + 0x20] = 0x4535 * (0x01 << 0xf0); var temp3 = memory[0x40:0x60]; revert(memory[temp3:temp3 + temp2 - temp3 + 0x64]); } } else { var temp4 = returndata.length; memory[0x00:0x00 + temp4] = returndata[0x00:0x00 + temp4]; revert(memory[0x00:0x00 + returndata.length]); } } else { var temp5 = memory[0x40:0x60]; memory[temp5:temp5 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp5 + 0x04:temp5 + 0x04 + 0x20] = 0x20; memory[temp5 + 0x24:temp5 + 0x24 + 0x20] = 0x02; memory[temp5 + 0x44:temp5 + 0x44 + 0x20] = 0x4535 * (0x01 << 0xf0); var temp6 = memory[0x40:0x60]; revert(memory[temp6:temp6 + temp5 - temp6 + 0x64]); } } else { var temp7 = memory[0x40:0x60]; memory[temp7:temp7 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp7 + 0x04:temp7 + 0x04 + 0x20] = 0x20; memory[temp7 + 0x24:temp7 + 0x24 + 0x20] = 0x03; memory[temp7 + 0x44:temp7 + 0x44 + 0x20] = 0x453637 * (0x01 << 0xe8); var temp8 = memory[0x40:0x60]; revert(memory[temp8:temp8 + temp7 - temp8 + 0x64]); } } function func_361A(var arg0, var arg1) { if (!arg0) { return; } var var0 = 0x60; var temp0 = memory[arg1:arg1 + 0x20] + 0x05; var temp1 = memory[0x40:0x60]; var var2 = temp0; var var1 = temp1; memory[var1:var1 + 0x20] = var2; memory[0x40:0x60] = var1 + (var2 + 0x1f & ~0x1f) + 0x20; if (!var2) { var0 = var1; var1 = 0x00; if (var1 >= memory[arg1:arg1 + 0x20]) { label_36A6: var2 = 0x01 << 0xfd; var var3 = var0; var var4 = var1; if (var4 >= memory[var3:var3 + 0x20]) { assert(); } memory[var4 + 0x20 + var3:var4 + 0x20 + var3 + 0x01] = byte(var2 & ~((0x01 << 0xf8) - 0x01), 0x00); var2 = 0x28 << 0xf8; var3 = var0; var4 = var1 + 0x01; if (var4 >= memory[var3:var3 + 0x20]) { assert(); } memory[var4 + 0x20 + var3:var4 + 0x20 + var3 + 0x01] = byte(var2 & ~((0x01 << 0xf8) - 0x01), 0x00); var2 = arg0 / 0x0a + 0x30 << 0xf8; var3 = var0; var4 = var1 + 0x02; if (var4 >= memory[var3:var3 + 0x20]) { assert(); } memory[var4 + 0x20 + var3:var4 + 0x20 + var3 + 0x01] = byte(var2 & ~((0x01 << 0xf8) - 0x01), 0x00); var2 = arg0 % 0x0a + 0x30 << 0xf8; var3 = var0; var4 = var1 + 0x03; if (var4 >= memory[var3:var3 + 0x20]) { assert(); } memory[var4 + 0x20 + var3:var4 + 0x20 + var3 + 0x01] = byte(var2 & ~((0x01 << 0xf8) - 0x01), 0x00); var2 = 0x29 << 0xf8; var3 = var0; var4 = var1 + 0x04; if (var4 >= memory[var3:var3 + 0x20]) { assert(); } memory[var4 + 0x20 + var3:var4 + 0x20 + var3 + 0x01] = byte(var2 & ~((0x01 << 0xf8) - 0x01), 0x00); var2 = var0; if (!arg0) { return; } var temp2 = memory[0x40:0x60]; memory[temp2:temp2 + 0x20] = 0x461bcd * (0x01 << 0xe5); var temp3 = temp2 + 0x04; var3 = temp3; var4 = var3; var temp4 = var4 + 0x20; memory[var4:var4 + 0x20] = temp4 - var4; var temp5 = var2; memory[temp4:temp4 + 0x20] = memory[temp5:temp5 + 0x20]; var var5 = temp4 + 0x20; var var6 = temp5 + 0x20; var var7 = memory[temp5:temp5 + 0x20]; var var8 = var7; var var9 = var5; var var10 = var6; var var11 = 0x00; if (var11 >= var8) { label_37DA: var temp6 = var7; var5 = temp6 + var5; var6 = temp6 & 0x1f; if (!var6) { var temp7 = memory[0x40:0x60]; revert(memory[temp7:temp7 + var5 - temp7]); } else { var temp8 = var6; var temp9 = var5 - temp8; memory[temp9:temp9 + 0x20] = ~(0x0100 ** (0x20 - temp8) - 0x01) & memory[temp9:temp9 + 0x20]; var temp10 = memory[0x40:0x60]; revert(memory[temp10:temp10 + (temp9 + 0x20) - temp10]); } } else { label_37CB: var temp11 = var11; memory[temp11 + var9:temp11 + var9 + 0x20] = memory[temp11 + var10:temp11 + var10 + 0x20]; var11 = temp11 + 0x20; if (var11 >= var8) { goto label_37DA; } else { goto label_37CB; } } } else { label_3665: var2 = arg1; var3 = var1; if (var3 >= memory[var2:var2 + 0x20]) { assert(); } var2 = (memory[var3 + 0x20 + var2:var3 + 0x20 + var2 + 0x20] >> 0xf8) << 0xf8; var3 = var0; var4 = var1; if (var4 >= memory[var3:var3 + 0x20]) { assert(); } memory[var4 + 0x20 + var3:var4 + 0x20 + var3 + 0x01] = byte(var2 & ~((0x01 << 0xf8) - 0x01), 0x00); var1 = var1 + 0x01; if (var1 >= memory[arg1:arg1 + 0x20]) { goto label_36A6; } else { goto label_3665; } } } else { var temp12 = var2; memory[var1 + 0x20:var1 + 0x20 + temp12] = code[code.length:code.length + temp12]; var0 = var1; var1 = 0x00; if (var1 >= memory[arg1:arg1 + 0x20]) { goto label_36A6; } else { goto label_3665; } } } function func_381C(var arg0, var arg1, var arg2, var arg3) returns (var r0) { var var0 = 0x00; var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = 0xeafe967b * (0x01 << 0xe0); memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = address(this); var temp1 = (0x01 << 0xa0) - 0x01; memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = temp1 & arg0; memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = temp1 & arg1; memory[temp0 + 0x64:temp0 + 0x64 + 0x20] = temp1 & arg2; var var1 = var0; var var2 = temp1 & storage[var1] / 0x01000000; var var3 = 0xeafe967b; var var4 = temp0 + 0x84; var var5 = 0x20; var var6 = memory[0x40:0x60]; var var7 = temp0 - var6 + 0x84; var var8 = var6; var var9 = var1; var var10 = var2; var var11 = !address(var10).code.length; if (var11) { revert(memory[0x00:0x00]); } var temp2; temp2, memory[var6:var6 + var5] = address(var10).call.gas(msg.gas).value(var9)(memory[var8:var8 + var7]); var5 = !temp2; if (!var5) { var2 = memory[0x40:0x60]; var3 = returndata.length; if (var3 < 0x20) { revert(memory[0x00:0x00]); } var1 = memory[var2:var2 + 0x20]; if (var1) { var temp18 = memory[0x40:0x60]; memory[temp18:temp18 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp18 + 0x04:temp18 + 0x04 + 0x20] = 0x20; memory[temp18 + 0x24:temp18 + 0x24 + 0x20] = 0x03; memory[temp18 + 0x44:temp18 + 0x44 + 0x20] = 0x453537 * (0x01 << 0xe8); var temp19 = memory[0x40:0x60]; revert(memory[temp19:temp19 + temp18 - temp19 + 0x64]); } else if (arg2 & (0x01 << 0xa0) - 0x01 != arg1 & (0x01 << 0xa0) - 0x01) { var2 = 0x00; memory[var2:var2 + 0x20] = arg2 & (0x01 << 0xa0) - 0x01; memory[0x20:0x40] = 0x0d; var3 = var2; var4 = var3; var5 = 0x3974; var6 = storage[keccak256(memory[var4:var4 + 0x40])]; var7 = arg3; var5, var6 = func_33C0(var6, var7); var temp3 = var5; var2 = temp3; var3 = var6; var5 = 0x00; var6 = var2; if (var6 > 0x03) { assert(); } if (var6 == var5) { memory[0x00:0x20] = arg1 & (0x01 << 0xa0) - 0x01; memory[0x20:0x40] = 0x0d; var5 = 0x39e8; var6 = storage[keccak256(memory[0x00:0x40])]; var7 = arg3; var5, var6 = func_2586(var6, var7); var temp4 = var5; var2 = temp4; var4 = var6; var5 = 0x00; var6 = var2; if (var6 > 0x03) { assert(); } if (var6 == var5) { var temp5 = (0x01 << 0xa0) - 0x01; var temp6 = arg2 & temp5; memory[0x00:0x20] = temp6; memory[0x20:0x40] = 0x0d; storage[keccak256(memory[0x00:0x40])] = var3; var temp7 = arg1 & temp5; memory[0x00:0x20] = temp7; storage[keccak256(memory[0x00:0x40])] = var4; var temp8 = memory[0x40:0x60]; memory[temp8:temp8 + 0x20] = arg3; var temp9 = memory[0x40:0x60]; var temp10 = memory[0x00:0x20]; memory[0x00:0x20] = code[0x54d1:0x54f1]; var temp11 = memory[0x00:0x20]; memory[0x00:0x20] = temp10; log(memory[temp9:temp9 + temp8 - temp9 + 0x20], [memory[0x00:0x20], stack[-7] & (0x01 << 0xa0) - 0x01, stack[-8] & (0x01 << 0xa0) - 0x01]); return 0x00; } else { var temp12 = memory[0x40:0x60]; memory[temp12:temp12 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp12 + 0x04:temp12 + 0x04 + 0x20] = 0x20; memory[temp12 + 0x24:temp12 + 0x24 + 0x20] = 0x03; memory[temp12 + 0x44:temp12 + 0x44 + 0x20] = 0x453539 * (0x01 << 0xe8); var temp13 = memory[0x40:0x60]; revert(memory[temp13:temp13 + temp12 - temp13 + 0x64]); } } else { var temp14 = memory[0x40:0x60]; memory[temp14:temp14 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp14 + 0x04:temp14 + 0x04 + 0x20] = 0x20; memory[temp14 + 0x24:temp14 + 0x24 + 0x20] = 0x03; memory[temp14 + 0x44:temp14 + 0x44 + 0x20] = 0x08a6a7 * (0x01 << 0xeb); var temp15 = memory[0x40:0x60]; revert(memory[temp15:temp15 + temp14 - temp15 + 0x64]); } } else { var temp16 = memory[0x40:0x60]; memory[temp16:temp16 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp16 + 0x04:temp16 + 0x04 + 0x20] = 0x20; memory[temp16 + 0x24:temp16 + 0x24 + 0x20] = 0x03; memory[temp16 + 0x44:temp16 + 0x44 + 0x20] = 0x045353 * (0x01 << 0xec); var temp17 = memory[0x40:0x60]; revert(memory[temp17:temp17 + temp16 - temp17 + 0x64]); } } else { var temp20 = returndata.length; memory[0x00:0x00 + temp20] = returndata[0x00:0x00 + temp20]; revert(memory[0x00:0x00 + returndata.length]); } } function func_3B3B() returns (var r0) { var var0 = 0x00; var var1 = 0x3b46; var var2 = address(this); var1 = func_5216(var2); return !var1; } function func_3DAA(var arg0, var arg1) returns (var r0, var arg0) { var var0 = 0x00; var var1 = var0; if (storage[var1] / 0x010000 & 0xff) { var var2 = 0x00; storage[var2] = storage[var2] & ~0xff0000; var var3 = 0x3e0a; var3 = accrueInterest(); label_3E0A: var2 = var3; if (!var2) { var3 = 0x3e40; var var4 = msg.sender; var var5 = arg0; var var6 = arg1; var3, var4 = func_442E(var4, var5, var6); var1 = var4; var0 = var3; label_3E46: storage[0x00] = (storage[0x00] & ~0xff0000) | 0x010000; r0 = var0; arg0 = var1; return r0, arg0; } else { var3 = 0x3e28; var4 = var2; if (var4 > 0x10) { assert(); } var3 = func_3E21(var4); var0 = var3; var1 = 0x00; goto label_3E46; } } else { var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = 0x20; memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = 0x03; memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = 0x453637 * (0x01 << 0xe8); var temp1 = memory[0x40:0x60]; revert(memory[temp1:temp1 + temp0 - temp1 + 0x64]); } } function func_3E21(var arg0) returns (var r0) { var var0 = 0x35; r0 = func_4388(arg0, var0); // Error: Could not resolve method call return address! } function func_3E60(var arg0) returns (var r0) { var var0 = 0x00; var var1 = var0; if (msg.sender == storage[0x05] / 0x0100 & (0x01 << 0xa0) - 0x01) { var var2 = 0x3ebc; var2 = func_23F2(); if (storage[0x08] == var2) { var1 = storage[0x01] & (0x01 << 0xa0) - 0x01; var2 = arg0 & (0x01 << 0xa0) - 0x01; var var3 = 0x2191f92a; var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = (var3 & 0xffffffff) << 0xe0; var var4 = temp0 + 0x04; var var5 = 0x20; var var6 = memory[0x40:0x60]; var var7 = var4 - var6; var var8 = var6; var var9 = var2; var var10 = !address(var9).code.length; if (var10) { revert(memory[0x00:0x00]); } var temp1; temp1, memory[var6:var6 + var5] = address(var9).staticcall.gas(msg.gas)(memory[var8:var8 + var7]); var5 = !temp1; if (!var5) { var2 = memory[0x40:0x60]; var3 = returndata.length; if (var3 < 0x20) { revert(memory[0x00:0x00]); } if (memory[var2:var2 + 0x20]) { storage[0x01] = (arg0 & (0x01 << 0xa0) - 0x01) | (storage[0x01] & ~((0x01 << 0xa0) - 0x01)); return 0x00; } else { var temp2 = memory[0x40:0x60]; memory[temp2:temp2 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp2 + 0x04:temp2 + 0x04 + 0x20] = 0x20; memory[temp2 + 0x24:temp2 + 0x24 + 0x20] = 0x03; memory[temp2 + 0x44:temp2 + 0x44 + 0x20] = 0x453435 * (0x01 << 0xe8); var temp3 = memory[0x40:0x60]; revert(memory[temp3:temp3 + temp2 - temp3 + 0x64]); } } else { var temp4 = returndata.length; memory[0x00:0x00 + temp4] = returndata[0x00:0x00 + temp4]; revert(memory[0x00:0x00 + returndata.length]); } } else { var temp5 = memory[0x40:0x60]; memory[temp5:temp5 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp5 + 0x04:temp5 + 0x04 + 0x20] = 0x20; memory[temp5 + 0x24:temp5 + 0x24 + 0x20] = 0x02; memory[temp5 + 0x44:temp5 + 0x44 + 0x20] = 0x4537 * (0x01 << 0xf0); var temp6 = memory[0x40:0x60]; revert(memory[temp6:temp6 + temp5 - temp6 + 0x64]); } } else { var temp7 = memory[0x40:0x60]; memory[temp7:temp7 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp7 + 0x04:temp7 + 0x04 + 0x20] = 0x20; memory[temp7 + 0x24:temp7 + 0x24 + 0x20] = 0x02; memory[temp7 + 0x44:temp7 + 0x44 + 0x20] = 0x4531 * (0x01 << 0xf0); var temp8 = memory[0x40:0x60]; revert(memory[temp8:temp8 + temp7 - temp8 + 0x64]); } } function func_3FD8(var arg0) returns (var r0) { var var0 = 0x00; if (msg.sender == storage[0x05] / 0x0100 & (0x01 << 0xa0) - 0x01) { var var1 = 0x4032; var1 = func_23F2(); if (storage[0x08] != var1) { var temp6 = memory[0x40:0x60]; memory[temp6:temp6 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp6 + 0x04:temp6 + 0x04 + 0x20] = 0x20; memory[temp6 + 0x24:temp6 + 0x24 + 0x20] = 0x02; memory[temp6 + 0x44:temp6 + 0x44 + 0x20] = 0x4537 * (0x01 << 0xf0); var temp7 = memory[0x40:0x60]; revert(memory[temp7:temp7 + temp6 - temp7 + 0x64]); } else if (arg0 <= 0x0de0b6b3a7640000) { var temp0 = storage[0x0b]; var1 = temp0; var temp1 = arg0; storage[0x0b] = temp1; var temp2 = memory[0x40:0x60]; memory[temp2:temp2 + 0x20] = var1; memory[temp2 + 0x20:temp2 + 0x20 + 0x20] = temp1; var temp3 = memory[0x40:0x60]; log(memory[temp3:temp3 + temp2 - temp3 + 0x40], [0xaaa68312e2ea9d50e16af5068410ab56e1a1fd06037b1a35664812c30f821460]); var var2 = 0x00; return var2; } else { var temp4 = memory[0x40:0x60]; memory[temp4:temp4 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp4 + 0x04:temp4 + 0x04 + 0x20] = 0x20; memory[temp4 + 0x24:temp4 + 0x24 + 0x20] = 0x03; memory[temp4 + 0x44:temp4 + 0x44 + 0x20] = 0x114d0d * (0x01 << 0xea); var temp5 = memory[0x40:0x60]; revert(memory[temp5:temp5 + temp4 - temp5 + 0x64]); } } else { var temp8 = memory[0x40:0x60]; memory[temp8:temp8 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp8 + 0x04:temp8 + 0x04 + 0x20] = 0x20; memory[temp8 + 0x24:temp8 + 0x24 + 0x20] = 0x02; memory[temp8 + 0x44:temp8 + 0x44 + 0x20] = 0x4531 * (0x01 << 0xf0); var temp9 = memory[0x40:0x60]; revert(memory[temp9:temp9 + temp8 - temp9 + 0x64]); } } function _addReserves(var arg0) returns (var r0) { var var0 = 0x00; if (storage[var0] / 0x010000 & 0xff) { var var1 = 0x00; storage[var1] = storage[var1] & ~0xff0000; var var2 = 0x4163; var2 = accrueInterest(); label_4163: var1 = var2; if (!var1) { var2 = 0x41ac; var var3 = arg0; var2, var3 = func_521C(var3); storage[0x00] = (storage[0x00] & ~0xff0000) | 0x010000; return var2; } else { var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = 0x20; memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = 0x02; memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = 0x4535 * (0x01 << 0xf0); var temp1 = memory[0x40:0x60]; revert(memory[temp1:temp1 + temp0 - temp1 + 0x64]); } } else { var temp2 = memory[0x40:0x60]; memory[temp2:temp2 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp2 + 0x04:temp2 + 0x04 + 0x20] = 0x20; memory[temp2 + 0x24:temp2 + 0x24 + 0x20] = 0x03; memory[temp2 + 0x44:temp2 + 0x44 + 0x20] = 0x453637 * (0x01 << 0xe8); var temp3 = memory[0x40:0x60]; revert(memory[temp3:temp3 + temp2 - temp3 + 0x64]); } } function func_41C6(var arg0, var arg1, var arg2) returns (var r0, var arg0) { var var0 = 0x00; var var1 = var0; var var2 = 0x00; var var3 = var2; var var4 = 0x41d6; var var5 = arg0; var var6 = arg1; var4, var5 = func_2586(var5, var6); var temp0 = var4; var2 = temp0; var3 = var5; var4 = 0x00; var5 = var2; if (var5 > 0x03) { assert(); } if (var5 == var4) { var4 = 0x3498; var5 = var3; var6 = arg2; var4, var5 = func_33C0(var5, var6); var1 = var5; var0 = var4; label_349F: arg0 = var1; r0 = var0; return r0, arg0; } else { var0 = var2; var1 = 0x00; goto label_349F; } } function func_4204(var arg0, var arg1) returns (var r0, var arg0) { var var0 = 0x00; var var1 = 0x420e; var1 = func_5357(); var var2 = 0x00; var var3 = var2; var var4 = 0x4223; var var5 = arg0; var var6 = 0x0de0b6b3a7640000; var4, var5 = func_47E4(var5, var6); var temp0 = var4; var2 = temp0; var3 = var5; var4 = 0x00; var5 = var2; if (var5 > 0x03) { assert(); } if (var5 == var4) { var4 = 0x00; var5 = var4; var6 = 0x4262; var var7 = var3; var var8 = arg1; var6, var7 = func_4823(var7, var8); var temp1 = var6; var4 = temp1; var5 = var7; var6 = 0x00; var7 = var4; if (var7 > 0x03) { assert(); } if (var7 == var6) { var temp2 = memory[0x40:0x60]; memory[0x40:0x60] = temp2 + 0x20; memory[temp2:temp2 + 0x20] = var5; r0 = 0x00; arg0 = temp2; return r0, arg0; } else { var temp3 = memory[0x40:0x60]; memory[0x40:0x60] = temp3 + 0x20; memory[temp3:temp3 + 0x20] = 0x00; var0 = var4; var1 = temp3; label_257F: arg0 = var1; r0 = var0; return r0, arg0; } } else { var temp4 = memory[0x40:0x60]; memory[0x40:0x60] = temp4 + 0x20; memory[temp4:temp4 + 0x20] = 0x00; var0 = var2; var1 = temp4; goto label_257F; } } function func_42B4(var arg0, var arg1) returns (var r0, var arg0) { var var0 = 0x00; var var1 = 0x42be; var1 = func_5357(); var var2 = 0x00; var var3 = var2; var var4 = 0x42d3; var var5 = 0x0de0b6b3a7640000; var var6 = arg0; var4, var5 = func_47E4(var5, var6); var temp0 = var4; var2 = temp0; var3 = var5; var4 = 0x00; var5 = var2; if (var5 > 0x03) { assert(); } if (var5 == var4) { var4 = 0x2578; var5 = var3; var6 = memory[arg1:arg1 + 0x20]; var4, var5 = func_4204(var5, var6); var1 = var5; var0 = var4; label_257F: arg0 = var1; r0 = var0; return r0, arg0; } else { var temp1 = memory[0x40:0x60]; memory[0x40:0x60] = temp1 + 0x20; memory[temp1:temp1 + 0x20] = 0x00; var0 = var2; var1 = temp1; goto label_257F; } } function func_4313(var arg0) returns (var r0) { return memory[arg0:arg0 + 0x20] / 0x0de0b6b3a7640000; } function func_4322(var arg0, var arg1, var arg2) returns (var r0) { var var0 = 0x00; var var1 = 0x45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa0; var var2 = arg0; if (var2 > 0x10) { assert(); } var var3 = arg1; if (var3 > 0x50) { assert(); } var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = var2; memory[temp0 + 0x20:temp0 + 0x20 + 0x20] = var3; memory[temp0 + 0x40:temp0 + 0x40 + 0x20] = arg2; var temp1 = memory[0x40:0x60]; log(memory[temp1:temp1 + temp0 - temp1 + 0x60], [stack[-3]]); var1 = arg0; if (var1 <= 0x10) { return var1; } else { assert(); } } function func_4388(var arg0, var arg1) returns (var r0) { var var0 = 0x00; var var1 = 0x45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa0; var var2 = arg0; if (var2 > 0x10) { assert(); } var var3 = arg1; if (var3 > 0x50) { assert(); } var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = var2; memory[temp0 + 0x20:temp0 + 0x20 + 0x20] = var3; memory[temp0 + 0x40:temp0 + 0x40 + 0x20] = 0x00; var temp1 = memory[0x40:0x60]; log(memory[temp1:temp1 + temp0 - temp1 + 0x60], [stack[-3]]); var1 = arg0; if (var1 <= 0x10) { return var1; } else { assert(); } } function func_43EE(var arg0, var arg1) returns (var r0) { var temp0 = memory[0x40:0x60]; var var0 = 0x00; var temp1 = arg1; var temp2; temp2, memory[temp0:temp0 + var0] = address(arg0 & (0x01 << 0xa0) - 0x01).call.gas(!temp1 * 0x08fc).value(temp1)(memory[temp0:temp0 + var0]); var var1 = !temp2; if (!var1) { return arg1; } var temp3 = returndata.length; memory[0x00:0x00 + temp3] = returndata[0x00:0x00 + temp3]; revert(memory[0x00:0x00 + returndata.length]); } function func_442E(var arg0, var arg1, var arg2) returns (var r0, var arg0) { var var0 = 0x00; var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = 0x3205e017 * (0x01 << 0xe0); memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = address(this); var temp1 = (0x01 << 0xa0) - 0x01; memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = temp1 & arg1; var var1 = var0; var var2 = var1; var var3 = storage[var2] / 0x01000000 & temp1; var var4 = 0x3205e017; var var5 = temp0 + 0x44; var var6 = 0x20; var var7 = memory[0x40:0x60]; var var8 = temp0 - var7 + 0x44; var var9 = var7; var var10 = var2; var var11 = var3; var var12 = !address(var11).code.length; if (var12) { revert(memory[0x00:0x00]); } var temp2; temp2, memory[var7:var7 + var6] = address(var11).call.gas(msg.gas).value(var10)(memory[var9:var9 + var8]); var6 = !temp2; if (!var6) { var3 = memory[0x40:0x60]; var4 = returndata.length; if (var4 < 0x20) { revert(memory[0x00:0x00]); } var2 = memory[var3:var3 + 0x20]; var3 = 0x44c5; var3 = func_23F2(); if (storage[0x08] != var3) { var temp29 = memory[0x40:0x60]; memory[temp29:temp29 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp29 + 0x04:temp29 + 0x04 + 0x20] = 0x20; memory[temp29 + 0x24:temp29 + 0x24 + 0x20] = 0x03; memory[temp29 + 0x44:temp29 + 0x44 + 0x20] = 0x08a647 * (0x01 << 0xeb); var temp30 = memory[0x40:0x60]; revert(memory[temp30:temp30 + temp29 - temp30 + 0x64]); } else if (!var2) { var3 = 0x454d; var3 = func_5311(); memory[0x00:0x20] = arg1 & (0x01 << 0xa0) - 0x01; memory[0x20:0x40] = 0x11; memory[var3 + 0x60:var3 + 0x60 + 0x20] = storage[keccak256(memory[0x00:0x40]) + 0x01]; var4 = 0x4577; var5 = arg1; var4, var5 = func_330C(var5); var temp3 = var3; memory[temp3 + 0x80:temp3 + 0x80 + 0x20] = var5; var6 = temp3 + 0x20; var7 = var4; if (var7 > 0x03) { assert(); } if (var7 > 0x03) { assert(); } memory[var6:var6 + 0x20] = var7; var4 = 0x00; var5 = memory[var3 + 0x20:var3 + 0x20 + 0x20]; if (var5 > 0x03) { assert(); } if (var5 != var4) { var temp25 = memory[0x40:0x60]; memory[temp25:temp25 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp25 + 0x04:temp25 + 0x04 + 0x20] = 0x20; memory[temp25 + 0x24:temp25 + 0x24 + 0x20] = 0x03; memory[temp25 + 0x44:temp25 + 0x44 + 0x20] = 0x045333 * (0x01 << 0xec); var temp26 = memory[0x40:0x60]; revert(memory[temp26:temp26 + temp25 - temp26 + 0x64]); } else if (arg2 != ~0x00) { var temp4 = var3; memory[temp4 + 0x40:temp4 + 0x40 + 0x20] = arg2; var4 = 0x461d; var5 = arg0; var6 = memory[temp4 + 0x40:temp4 + 0x40 + 0x20]; var4 = func_24A1(var5, var6); label_461D: var temp5 = var3; memory[temp5 + 0xe0:temp5 + 0xe0 + 0x20] = var4; var5 = memory[temp5 + 0x80:temp5 + 0x80 + 0x20]; var6 = var4; var4 = 0x4632; var4, var5 = func_33C0(var5, var6); var temp6 = var3; memory[temp6 + 0xa0:temp6 + 0xa0 + 0x20] = var5; var6 = temp6 + 0x20; var7 = var4; if (var7 > 0x03) { assert(); } if (var7 > 0x03) { assert(); } memory[var6:var6 + 0x20] = var7; var4 = 0x00; var5 = memory[var3 + 0x20:var3 + 0x20 + 0x20]; if (var5 > 0x03) { assert(); } if (var5 == var4) { var4 = 0x46b9; var5 = storage[0x06]; var6 = memory[var3 + 0xe0:var3 + 0xe0 + 0x20]; var4, var5 = func_33C0(var5, var6); var temp7 = var3; memory[temp7 + 0xc0:temp7 + 0xc0 + 0x20] = var5; var6 = temp7 + 0x20; var7 = var4; if (var7 > 0x03) { assert(); } if (var7 > 0x03) { assert(); } memory[var6:var6 + 0x20] = var7; var4 = 0x00; var5 = memory[var3 + 0x20:var3 + 0x20 + 0x20]; if (var5 > 0x03) { assert(); } if (var5 == var4) { var temp8 = var3; var temp9 = temp8 + 0xa0; var temp10 = memory[temp9:temp9 + 0x20]; var temp11 = (0x01 << 0xa0) - 0x01; var temp12 = arg1 & temp11; memory[0x00:0x20] = temp12; memory[0x20:0x40] = 0x10; storage[keccak256(memory[0x00:0x40])] = temp10; var temp13 = memory[temp9:temp9 + 0x20]; memory[0x20:0x40] = 0x11; var temp14 = keccak256(memory[0x00:0x40]); storage[temp14] = temp13; storage[temp14 + 0x01] = storage[0x09]; var temp15 = memory[temp8 + 0xc0:temp8 + 0xc0 + 0x20]; storage[0x06] = temp15; var temp16 = memory[temp8 + 0xe0:temp8 + 0xe0 + 0x20]; var temp17 = memory[temp9:temp9 + 0x20]; var temp18 = memory[0x40:0x60]; memory[temp18:temp18 + 0x20] = arg0 & temp11; memory[temp18 + 0x20:temp18 + 0x20 + 0x20] = temp12; memory[temp18 + 0x40:temp18 + 0x40 + 0x20] = temp16; memory[temp18 + 0x60:temp18 + 0x60 + 0x20] = temp17; memory[temp18 + 0x80:temp18 + 0x80 + 0x20] = temp15; var temp19 = memory[0x40:0x60]; log(memory[temp19:temp19 + temp18 - temp19 + 0xa0], [0x1a2a22cb034d26d1854bdc6666a5b91fe25efbbb5dcad3b0355478d6f5c362a1]); r0 = 0x00; arg0 = memory[temp8 + 0xe0:temp8 + 0xe0 + 0x20]; return r0, arg0; } else { var temp20 = memory[0x40:0x60]; memory[temp20:temp20 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp20 + 0x04:temp20 + 0x04 + 0x20] = 0x20; memory[temp20 + 0x24:temp20 + 0x24 + 0x20] = 0x03; memory[temp20 + 0x44:temp20 + 0x44 + 0x20] = 0x229999 * (0x01 << 0xe9); var temp21 = memory[0x40:0x60]; revert(memory[temp21:temp21 + temp20 - temp21 + 0x64]); } } else { var temp22 = memory[0x40:0x60]; memory[temp22:temp22 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp22 + 0x04:temp22 + 0x04 + 0x20] = 0x20; memory[temp22 + 0x24:temp22 + 0x24 + 0x20] = 0x03; memory[temp22 + 0x44:temp22 + 0x44 + 0x20] = 0x453331 * (0x01 << 0xe8); var temp23 = memory[0x40:0x60]; revert(memory[temp23:temp23 + temp22 - temp23 + 0x64]); } } else { var temp24 = var3; memory[temp24 + 0x40:temp24 + 0x40 + 0x20] = memory[temp24 + 0x80:temp24 + 0x80 + 0x20]; var4 = 0x461d; var5 = arg0; var6 = memory[var3 + 0x40:var3 + 0x40 + 0x20]; var4 = func_24A1(var5, var6); goto label_461D; } } else { var temp27 = memory[0x40:0x60]; memory[temp27:temp27 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp27 + 0x04:temp27 + 0x04 + 0x20] = 0x20; memory[temp27 + 0x24:temp27 + 0x24 + 0x20] = 0x03; memory[temp27 + 0x44:temp27 + 0x44 + 0x20] = 0x453239 * (0x01 << 0xe8); var temp28 = memory[0x40:0x60]; revert(memory[temp28:temp28 + temp27 - temp28 + 0x64]); } } else { var temp31 = returndata.length; memory[0x00:0x00 + temp31] = returndata[0x00:0x00 + temp31]; revert(memory[0x00:0x00 + returndata.length]); } } function func_47E4(var arg0, var arg1) returns (var r0, var arg0) { var var0 = 0x00; var var1 = var0; if (arg0) { var var2 = arg1 * arg0; var var3 = arg1; var var4 = arg0; var var5 = var2; if (!var4) { assert(); } if (var5 / var4 == var3) { var0 = 0x00; var1 = var2; label_257F: arg0 = var1; r0 = var0; return r0, arg0; } else { var0 = 0x02; var1 = 0x00; goto label_257F; } } else { var0 = 0x00; var1 = var0; goto label_257F; } } function func_4823(var arg0, var arg1) returns (var r0, var arg0) { var var0 = 0x00; var var1 = var0; if (arg1) { var var2 = 0x00; var var3 = arg1; var var4 = arg0; if (!var3) { assert(); } arg0 = var4 / var3; r0 = var2; return r0, arg0; } else { var0 = 0x01; var1 = 0x00; arg0 = var1; r0 = var0; return r0, arg0; } } function func_484E(var arg0, var arg1, var arg2, var arg3) returns (var r0, var arg0) { var var0 = 0x00; var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = 0x6e2cf5af * (0x01 << 0xe0); memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = address(this); var temp1 = (0x01 << 0xa0) - 0x01; memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = temp1 & arg3; memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = temp1 & arg1; memory[temp0 + 0x64:temp0 + 0x64 + 0x20] = arg2; var var1 = var0; var var2 = var1; var var3 = storage[var2] / 0x01000000 & temp1; var var4 = 0x6e2cf5af; var var5 = temp0 + 0x84; var var6 = 0x20; var var7 = memory[0x40:0x60]; var var8 = temp0 - var7 + 0x84; var var9 = var7; var var10 = var2; var var11 = var3; var var12 = !address(var11).code.length; if (var12) { revert(memory[0x00:0x00]); } var temp2; temp2, memory[var7:var7 + var6] = address(var11).call.gas(msg.gas).value(var10)(memory[var9:var9 + var8]); var6 = !temp2; if (!var6) { var3 = memory[0x40:0x60]; var4 = returndata.length; if (var4 < 0x20) { revert(memory[0x00:0x00]); } var2 = memory[var3:var3 + 0x20]; if (!var2) { var3 = 0x4933; var3 = func_23F2(); if (storage[0x08] == var3) { var3 = 0x497b; var3 = func_23F2(); var4 = arg3 & (0x01 << 0xa0) - 0x01; var5 = 0x6c540baf; var temp3 = memory[0x40:0x60]; memory[temp3:temp3 + 0x20] = (var5 & 0xffffffff) << 0xe0; var6 = temp3 + 0x04; var7 = 0x20; var8 = memory[0x40:0x60]; var9 = var6 - var8; var10 = var8; var11 = var4; var12 = !address(var11).code.length; if (var12) { revert(memory[0x00:0x00]); } var temp4; temp4, memory[var8:var8 + var7] = address(var11).staticcall.gas(msg.gas)(memory[var10:var10 + var9]); var7 = !temp4; if (!var7) { var4 = memory[0x40:0x60]; var5 = returndata.length; if (var5 < 0x20) { revert(memory[0x00:0x00]); } if (memory[var4:var4 + 0x20] != var3) { var temp35 = memory[0x40:0x60]; memory[temp35:temp35 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp35 + 0x04:temp35 + 0x04 + 0x20] = 0x20; memory[temp35 + 0x24:temp35 + 0x24 + 0x20] = 0x02; memory[temp35 + 0x44:temp35 + 0x44 + 0x20] = 0x4537 * (0x01 << 0xf0); var temp36 = memory[0x40:0x60]; revert(memory[temp36:temp36 + temp35 - temp36 + 0x64]); } else if (arg1 & (0x01 << 0xa0) - 0x01 == arg0 & (0x01 << 0xa0) - 0x01) { var temp33 = memory[0x40:0x60]; memory[temp33:temp33 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp33 + 0x04:temp33 + 0x04 + 0x20] = 0x20; memory[temp33 + 0x24:temp33 + 0x24 + 0x20] = 0x03; memory[temp33 + 0x44:temp33 + 0x44 + 0x20] = 0x045353 * (0x01 << 0xec); var temp34 = memory[0x40:0x60]; revert(memory[temp34:temp34 + temp33 - temp34 + 0x64]); } else if (!arg2) { var temp31 = memory[0x40:0x60]; memory[temp31:temp31 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp31 + 0x04:temp31 + 0x04 + 0x20] = 0x20; memory[temp31 + 0x24:temp31 + 0x24 + 0x20] = 0x03; memory[temp31 + 0x44:temp31 + 0x44 + 0x20] = 0x453531 * (0x01 << 0xe8); var temp32 = memory[0x40:0x60]; revert(memory[temp32:temp32 + temp31 - temp32 + 0x64]); } else if (arg2 != ~0x00) { var3 = 0x00; var4 = var3; var5 = 0x4aff; var6 = arg0; var7 = arg1; var8 = arg2; var5, var6 = func_442E(var6, var7, var8); var3 = var5; var4 = var6; if (!var3) { var5 = 0x00; var temp5 = memory[0x40:0x60]; memory[temp5:temp5 + 0x20] = 0xc488847b * (0x01 << 0xe0); memory[temp5 + 0x04:temp5 + 0x04 + 0x20] = address(this); var temp6 = (0x01 << 0xa0) - 0x01; memory[temp5 + 0x24:temp5 + 0x24 + 0x20] = temp6 & arg3; memory[temp5 + 0x44:temp5 + 0x44 + 0x20] = var4; var6 = var5; var7 = temp6 & storage[var6] / 0x01000000; var10 = 0x40; var8 = 0xc488847b; var9 = temp5 + 0x64; var11 = memory[var10:var10 + 0x20]; var12 = temp5 - var11 + 0x64; var var13 = var11; var var14 = var7; var var15 = !address(var14).code.length; if (var15) { revert(memory[0x00:0x00]); } var temp7; temp7, memory[var11:var11 + var10] = address(var14).staticcall.gas(msg.gas)(memory[var13:var13 + var12]); var10 = !temp7; if (!var10) { var7 = memory[0x40:0x60]; var8 = returndata.length; if (var8 < 0x40) { revert(memory[0x00:0x00]); } var temp8 = var7; var5 = memory[temp8:temp8 + 0x20]; var6 = memory[temp8 + 0x20:temp8 + 0x20 + 0x20]; if (!var5) { var7 = var6; var8 = arg3 & (0x01 << 0xa0) - 0x01; var9 = 0x70a08231; var temp9 = memory[0x40:0x60]; memory[temp9:temp9 + 0x20] = (var9 & 0xffffffff) << 0xe0; var temp10 = temp9 + 0x04; memory[temp10:temp10 + 0x20] = arg1 & (0x01 << 0xa0) - 0x01 & (0x01 << 0xa0) - 0x01; var10 = temp10 + 0x20; var11 = 0x20; var12 = memory[0x40:0x60]; var13 = var10 - var12; var14 = var12; var15 = var8; var var16 = !address(var15).code.length; if (var16) { revert(memory[0x00:0x00]); } var temp11; temp11, memory[var12:var12 + var11] = address(var15).staticcall.gas(msg.gas)(memory[var14:var14 + var13]); var11 = !temp11; if (!var11) { var8 = memory[0x40:0x60]; var9 = returndata.length; if (var9 < 0x20) { revert(memory[0x00:0x00]); } if (memory[var8:var8 + 0x20] >= var7) { var7 = 0x00; if (address(this) != arg3 & (0x01 << 0xa0) - 0x01) { var temp12 = memory[0x40:0x60]; memory[temp12:temp12 + 0x20] = 0xb2a02ff1 * (0x01 << 0xe0); var temp13 = (0x01 << 0xa0) - 0x01; memory[temp12 + 0x04:temp12 + 0x04 + 0x20] = temp13 & arg0; memory[temp12 + 0x24:temp12 + 0x24 + 0x20] = temp13 & arg1; memory[temp12 + 0x44:temp12 + 0x44 + 0x20] = var6; var8 = arg3 & temp13; var9 = 0xb2a02ff1; var10 = temp12 + 0x64; var11 = 0x20; var12 = memory[0x40:0x60]; var13 = temp12 - var12 + 0x64; var14 = var12; var15 = 0x00; var16 = var8; var var17 = !address(var16).code.length; if (var17) { revert(memory[0x00:0x00]); } var temp14; temp14, memory[var12:var12 + var11] = address(var16).call.gas(msg.gas).value(var15)(memory[var14:var14 + var13]); var11 = !temp14; if (!var11) { var8 = memory[0x40:0x60]; var9 = returndata.length; if (var9 < 0x20) { revert(memory[0x00:0x00]); } var7 = memory[var8:var8 + 0x20]; if (!var7) { label_4DD0: var temp15 = memory[0x40:0x60]; var temp16 = (0x01 << 0xa0) - 0x01; memory[temp15:temp15 + 0x20] = arg0 & temp16; memory[temp15 + 0x20:temp15 + 0x20 + 0x20] = arg1 & temp16; memory[temp15 + 0x40:temp15 + 0x40 + 0x20] = var4; memory[temp15 + 0x60:temp15 + 0x60 + 0x20] = arg3 & temp16; memory[temp15 + 0x80:temp15 + 0x80 + 0x20] = var6; var temp17 = memory[0x40:0x60]; log(memory[temp17:temp17 + temp15 - temp17 + 0xa0], [0x298637f684da70674f26509b10f07ec2fbc77a335ab1e7d6215a4b2484d8bb52]); r0 = 0x00; arg0 = var4; return r0, arg0; } else { label_4D98: var temp18 = memory[0x40:0x60]; memory[temp18:temp18 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp18 + 0x04:temp18 + 0x04 + 0x20] = 0x20; memory[temp18 + 0x24:temp18 + 0x24 + 0x20] = 0x03; memory[temp18 + 0x44:temp18 + 0x44 + 0x20] = 0x229a9b * (0x01 << 0xe9); var temp19 = memory[0x40:0x60]; revert(memory[temp19:temp19 + temp18 - temp19 + 0x64]); } } else { var temp20 = returndata.length; memory[0x00:0x00 + temp20] = returndata[0x00:0x00 + temp20]; revert(memory[0x00:0x00 + returndata.length]); } } else { var8 = 0x4cfd; var9 = address(this); var10 = arg0; var11 = arg1; var12 = var6; var8 = func_381C(var9, var10, var11, var12); var7 = var8; if (!var7) { goto label_4DD0; } else { goto label_4D98; } } } else { var temp21 = memory[0x40:0x60]; memory[temp21:temp21 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp21 + 0x04:temp21 + 0x04 + 0x20] = 0x20; memory[temp21 + 0x24:temp21 + 0x24 + 0x20] = 0x03; memory[temp21 + 0x44:temp21 + 0x44 + 0x20] = 0x453535 * (0x01 << 0xe8); var temp22 = memory[0x40:0x60]; revert(memory[temp22:temp22 + temp21 - temp22 + 0x64]); } } else { var temp23 = returndata.length; memory[0x00:0x00 + temp23] = returndata[0x00:0x00 + temp23]; revert(memory[0x00:0x00 + returndata.length]); } } else { var temp24 = memory[0x40:0x60]; memory[temp24:temp24 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp24 + 0x04:temp24 + 0x04 + 0x20] = 0x20; memory[temp24 + 0x24:temp24 + 0x24 + 0x20] = 0x03; memory[temp24 + 0x44:temp24 + 0x44 + 0x20] = 0x114d4d * (0x01 << 0xea); var temp25 = memory[0x40:0x60]; revert(memory[temp25:temp25 + temp24 - temp25 + 0x64]); } } else { var temp26 = returndata.length; memory[0x00:0x00 + temp26] = returndata[0x00:0x00 + temp26]; revert(memory[0x00:0x00 + returndata.length]); } } else { var temp27 = memory[0x40:0x60]; memory[temp27:temp27 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp27 + 0x04:temp27 + 0x04 + 0x20] = 0x20; memory[temp27 + 0x24:temp27 + 0x24 + 0x20] = 0x03; memory[temp27 + 0x44:temp27 + 0x44 + 0x20] = 0x453533 * (0x01 << 0xe8); var temp28 = memory[0x40:0x60]; revert(memory[temp28:temp28 + temp27 - temp28 + 0x64]); } } else { var temp29 = memory[0x40:0x60]; memory[temp29:temp29 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp29 + 0x04:temp29 + 0x04 + 0x20] = 0x20; memory[temp29 + 0x24:temp29 + 0x24 + 0x20] = 0x03; memory[temp29 + 0x44:temp29 + 0x44 + 0x20] = 0x229a99 * (0x01 << 0xe9); var temp30 = memory[0x40:0x60]; revert(memory[temp30:temp30 + temp29 - temp30 + 0x64]); } } else { var temp37 = returndata.length; memory[0x00:0x00 + temp37] = returndata[0x00:0x00 + temp37]; revert(memory[0x00:0x00 + returndata.length]); } } else { var temp38 = memory[0x40:0x60]; memory[temp38:temp38 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp38 + 0x04:temp38 + 0x04 + 0x20] = 0x20; memory[temp38 + 0x24:temp38 + 0x24 + 0x20] = 0x02; memory[temp38 + 0x44:temp38 + 0x44 + 0x20] = 0x4537 * (0x01 << 0xf0); var temp39 = memory[0x40:0x60]; revert(memory[temp39:temp39 + temp38 - temp39 + 0x64]); } } else { var temp40 = memory[0x40:0x60]; memory[temp40:temp40 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp40 + 0x04:temp40 + 0x04 + 0x20] = 0x20; memory[temp40 + 0x24:temp40 + 0x24 + 0x20] = 0x03; memory[temp40 + 0x44:temp40 + 0x44 + 0x20] = 0x453439 * (0x01 << 0xe8); var temp41 = memory[0x40:0x60]; revert(memory[temp41:temp41 + temp40 - temp41 + 0x64]); } } else { var temp42 = returndata.length; memory[0x00:0x00 + temp42] = returndata[0x00:0x00 + temp42]; revert(memory[0x00:0x00 + returndata.length]); } } function func_4E3D(var arg0, var arg1) returns (var r0) { var var0 = 0x00; var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = 0x368f5153 * (0x01 << 0xe2); memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = address(this); var temp1 = (0x01 << 0xa0) - 0x01; memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = temp1 & arg0; memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = arg1; var var1 = var0; var var2 = temp1 & storage[var1] / 0x01000000; var var3 = 0xda3d454c; var var4 = temp0 + 0x64; var var5 = 0x20; var var6 = memory[0x40:0x60]; var var7 = temp0 - var6 + 0x64; var var8 = var6; var var9 = var1; var var10 = var2; var var11 = !address(var10).code.length; if (var11) { revert(memory[0x00:0x00]); } var temp2; temp2, memory[var6:var6 + var5] = address(var10).call.gas(msg.gas).value(var9)(memory[var8:var8 + var7]); var5 = !temp2; if (!var5) { var2 = memory[0x40:0x60]; var3 = returndata.length; if (var3 < 0x20) { revert(memory[0x00:0x00]); } var1 = memory[var2:var2 + 0x20]; if (!var1) { var2 = 0x4f1a; var2 = func_23F2(); if (storage[0x08] == var2) { var2 = arg1; var3 = 0x4f64; var3 = getCash(); if (var3 >= var2) { var2 = 0x4fab; var2 = func_5451(); var3 = 0x4fb4; var4 = arg0; var3, var4 = func_330C(var4); memory[var2 + 0x20:var2 + 0x20 + 0x20] = var4; var5 = var2; var6 = var3; if (var6 > 0x03) { assert(); } if (var6 > 0x03) { assert(); } memory[var5:var5 + 0x20] = var6; var3 = 0x00; var4 = memory[var2:var2 + 0x20]; if (var4 > 0x03) { assert(); } if (var4 == var3) { var3 = 0x5033; var4 = memory[var2 + 0x20:var2 + 0x20 + 0x20]; var5 = arg1; var3, var4 = func_2586(var4, var5); memory[var2 + 0x40:var2 + 0x40 + 0x20] = var4; var5 = var2; var6 = var3; if (var6 > 0x03) { assert(); } if (var6 > 0x03) { assert(); } memory[var5:var5 + 0x20] = var6; var3 = 0x00; var4 = memory[var2:var2 + 0x20]; if (var4 > 0x03) { assert(); } if (var4 == var3) { var3 = 0x50b0; var4 = storage[0x06]; var5 = arg1; var3, var4 = func_2586(var4, var5); memory[var2 + 0x60:var2 + 0x60 + 0x20] = var4; var5 = var2; var6 = var3; if (var6 > 0x03) { assert(); } if (var6 > 0x03) { assert(); } memory[var5:var5 + 0x20] = var6; var3 = 0x00; var4 = memory[var2:var2 + 0x20]; if (var4 > 0x03) { assert(); } if (var4 == var3) { var3 = 0x512b; var4 = arg0; var5 = arg1; var3 = func_43EE(var4, var5); var temp3 = var2; var temp4 = temp3 + 0x80; memory[temp4:temp4 + 0x20] = var3; var temp5 = memory[temp3 + 0x40:temp3 + 0x40 + 0x20]; memory[0x00:0x20] = arg0 & (0x01 << 0xa0) - 0x01; memory[0x20:0x40] = 0x11; var temp6 = keccak256(memory[0x00:0x40]); storage[temp6] = temp5; storage[temp6 + 0x01] = storage[0x09]; storage[0x06] = memory[temp3 + 0x60:temp3 + 0x60 + 0x20]; memory[0x20:0x40] = 0x10; var3 = 0x517b; var4 = storage[keccak256(memory[0x00:0x40])]; var5 = memory[temp4:temp4 + 0x20]; var3, var4 = func_2586(var4, var5); memory[var2 + 0xa0:var2 + 0xa0 + 0x20] = var4; var5 = var2; var6 = var3; if (var6 > 0x03) { assert(); } if (var6 > 0x03) { assert(); } memory[var5:var5 + 0x20] = var6; var3 = 0x00; var4 = memory[var2:var2 + 0x20]; if (var4 > 0x03) { assert(); } if (var4 == var3) { var temp7 = memory[var2 + 0xa0:var2 + 0xa0 + 0x20]; memory[0x00:0x20] = arg0 & (0x01 << 0xa0) - 0x01; memory[0x20:0x40] = 0x10; storage[keccak256(memory[0x00:0x40])] = temp7; return 0x00; } else { var temp8 = memory[0x40:0x60]; memory[temp8:temp8 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp8 + 0x04:temp8 + 0x04 + 0x20] = 0x20; memory[temp8 + 0x24:temp8 + 0x24 + 0x20] = 0x03; memory[temp8 + 0x44:temp8 + 0x44 + 0x20] = 0x453237 * (0x01 << 0xe8); var temp9 = memory[0x40:0x60]; revert(memory[temp9:temp9 + temp8 - temp9 + 0x64]); } } else { var temp10 = memory[0x40:0x60]; memory[temp10:temp10 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp10 + 0x04:temp10 + 0x04 + 0x20] = 0x20; memory[temp10 + 0x24:temp10 + 0x24 + 0x20] = 0x03; memory[temp10 + 0x44:temp10 + 0x44 + 0x20] = 0x22991b * (0x01 << 0xe9); var temp11 = memory[0x40:0x60]; revert(memory[temp11:temp11 + temp10 - temp11 + 0x64]); } } else { var temp12 = memory[0x40:0x60]; memory[temp12:temp12 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp12 + 0x04:temp12 + 0x04 + 0x20] = 0x20; memory[temp12 + 0x24:temp12 + 0x24 + 0x20] = 0x03; memory[temp12 + 0x44:temp12 + 0x44 + 0x20] = 0x453235 * (0x01 << 0xe8); var temp13 = memory[0x40:0x60]; revert(memory[temp13:temp13 + temp12 - temp13 + 0x64]); } } else { var temp14 = memory[0x40:0x60]; memory[temp14:temp14 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp14 + 0x04:temp14 + 0x04 + 0x20] = 0x20; memory[temp14 + 0x24:temp14 + 0x24 + 0x20] = 0x03; memory[temp14 + 0x44:temp14 + 0x44 + 0x20] = 0x114c8d * (0x01 << 0xea); var temp15 = memory[0x40:0x60]; revert(memory[temp15:temp15 + temp14 - temp15 + 0x64]); } } else { var temp16 = memory[0x40:0x60]; memory[temp16:temp16 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp16 + 0x04:temp16 + 0x04 + 0x20] = 0x20; memory[temp16 + 0x24:temp16 + 0x24 + 0x20] = 0x03; memory[temp16 + 0x44:temp16 + 0x44 + 0x20] = 0x453233 * (0x01 << 0xe8); var temp17 = memory[0x40:0x60]; revert(memory[temp17:temp17 + temp16 - temp17 + 0x64]); } } else { var temp18 = memory[0x40:0x60]; memory[temp18:temp18 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp18 + 0x04:temp18 + 0x04 + 0x20] = 0x20; memory[temp18 + 0x24:temp18 + 0x24 + 0x20] = 0x03; memory[temp18 + 0x44:temp18 + 0x44 + 0x20] = 0x229919 * (0x01 << 0xe9); var temp19 = memory[0x40:0x60]; revert(memory[temp19:temp19 + temp18 - temp19 + 0x64]); } } else { var temp20 = memory[0x40:0x60]; memory[temp20:temp20 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp20 + 0x04:temp20 + 0x04 + 0x20] = 0x20; memory[temp20 + 0x24:temp20 + 0x24 + 0x20] = 0x03; memory[temp20 + 0x44:temp20 + 0x44 + 0x20] = 0x453231 * (0x01 << 0xe8); var temp21 = memory[0x40:0x60]; revert(memory[temp21:temp21 + temp20 - temp21 + 0x64]); } } else { var temp22 = returndata.length; memory[0x00:0x00 + temp22] = returndata[0x00:0x00 + temp22]; revert(memory[0x00:0x00 + returndata.length]); } } function func_5216(var arg0) returns (var r0) { return !!address(arg0).code.length; } function func_521C(var arg0) returns (var r0, var arg0) { var var0 = 0x00; var var1 = var0; var var2 = 0x00; var var3 = var2; var var4 = 0x522a; var4 = func_23F2(); if (storage[0x08] == var4) { var4 = 0x5274; var var5 = msg.sender; var var6 = arg0; var4 = func_24A1(var5, var6); var3 = var4; var2 = storage[0x0a] + var3; if (var2 >= storage[0x0a]) { var temp0 = var2; storage[0x0a] = temp0; var temp1 = memory[0x40:0x60]; memory[temp1:temp1 + 0x20] = msg.sender; memory[temp1 + 0x20:temp1 + 0x20 + 0x20] = var3; memory[temp1 + 0x40:temp1 + 0x40 + 0x20] = temp0; var temp2 = memory[0x40:0x60]; log(memory[temp2:temp2 + temp1 - temp2 + 0x60], [0xa91e67c5ea634cd43a12c5a482724b03de01e85ca68702a53d0c2f45cb7c1dc5]); arg0 = var3; r0 = 0x00; return r0, arg0; } else { var temp3 = memory[0x40:0x60]; memory[temp3:temp3 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp3 + 0x04:temp3 + 0x04 + 0x20] = 0x20; memory[temp3 + 0x24:temp3 + 0x24 + 0x20] = 0x03; memory[temp3 + 0x44:temp3 + 0x44 + 0x20] = 0x229a1b * (0x01 << 0xe9); var temp4 = memory[0x40:0x60]; revert(memory[temp4:temp4 + temp3 - temp4 + 0x64]); } } else { var temp5 = memory[0x40:0x60]; memory[temp5:temp5 + 0x20] = 0x461bcd * (0x01 << 0xe5); memory[temp5 + 0x04:temp5 + 0x04 + 0x20] = 0x20; memory[temp5 + 0x24:temp5 + 0x24 + 0x20] = 0x02; memory[temp5 + 0x44:temp5 + 0x44 + 0x20] = 0x4537 * (0x01 << 0xf0); var temp6 = memory[0x40:0x60]; revert(memory[temp6:temp6 + temp5 - temp6 + 0x64]); } } function func_5311() returns (var r0) { var temp0 = memory[0x40:0x60]; memory[0x40:0x60] = temp0 + 0x0100; memory[temp0:temp0 + 0x20] = 0x00; var temp1 = temp0 + 0x20; memory[temp1:temp1 + 0x20] = 0x00; var temp2 = temp1 + 0x20; memory[temp2:temp2 + 0x20] = 0x00; var temp3 = temp2 + 0x20; memory[temp3:temp3 + 0x20] = 0x00; var temp4 = temp3 + 0x20; memory[temp4:temp4 + 0x20] = 0x00; var temp5 = temp4 + 0x20; memory[temp5:temp5 + 0x20] = 0x00; var temp6 = temp5 + 0x20; memory[temp6:temp6 + 0x20] = 0x00; memory[temp6 + 0x20:temp6 + 0x20 + 0x20] = 0x00; return temp0; } function func_5357() returns (var r0) { var temp0 = memory[0x40:0x60]; memory[0x40:0x60] = temp0 + 0x20; memory[temp0:temp0 + 0x20] = 0x00; return temp0; } function func_536A() returns (var r0) { var temp0 = memory[0x40:0x60]; memory[0x40:0x60] = temp0 + 0x01a0; memory[temp0:temp0 + 0x20] = 0x00; var temp1 = temp0 + 0x20; memory[temp1:temp1 + 0x20] = 0x00; var temp2 = temp1 + 0x20; memory[temp2:temp2 + 0x20] = 0x00; var temp3 = temp2 + 0x20; memory[temp3:temp3 + 0x20] = 0x00; var temp4 = temp3 + 0x20; memory[temp4:temp4 + 0x20] = 0x00; var temp5 = temp4 + 0x20; memory[temp5:temp5 + 0x20] = 0x00; var temp6 = temp5 + 0x20; memory[temp6:temp6 + 0x20] = 0x00; var temp7 = temp6 + 0x20; memory[temp7:temp7 + 0x20] = 0x00; var temp8 = temp7 + 0x20; memory[temp8:temp8 + 0x20] = 0x00; var temp9 = temp8 + 0x20; memory[temp9:temp9 + 0x20] = 0x00; var temp10 = temp9 + 0x20; memory[temp10:temp10 + 0x20] = 0x00; var temp11 = temp10 + 0x20; memory[temp11:temp11 + 0x20] = 0x00; memory[temp11 + 0x20:temp11 + 0x20 + 0x20] = 0x00; return temp0; } function func_544D(var arg0, var arg1) returns (var r0) { return arg0; } function func_5451() returns (var r0) { var temp0 = memory[0x40:0x60]; memory[0x40:0x60] = temp0 + 0xc0; memory[temp0:temp0 + 0x20] = 0x00; var temp1 = temp0 + 0x20; memory[temp1:temp1 + 0x20] = 0x00; var temp2 = temp1 + 0x20; memory[temp2:temp2 + 0x20] = 0x00; var temp3 = temp2 + 0x20; memory[temp3:temp3 + 0x20] = 0x00; var temp4 = temp3 + 0x20; memory[temp4:temp4 + 0x20] = 0x00; memory[temp4 + 0x20:temp4 + 0x20 + 0x20] = 0x00; return temp0; } }

Disassembly

label_0000: // Inputs[1] { @0007 msg.data.length } 0000 60 PUSH1 0x80 0002 60 PUSH1 0x40 0004 52 MSTORE 0005 60 PUSH1 0x04 0007 36 CALLDATASIZE 0008 10 LT 0009 61 PUSH2 0x0288 000C 57 *JUMPI // Stack delta = +0 // Outputs[1] { @0004 memory[0x40:0x60] = 0x80 } // Block ends with conditional jump to 0x0288, if msg.data.length < 0x04 label_000D: // Incoming jump from 0x000C, if not msg.data.length < 0x04 // Inputs[1] { @000F msg.data[0x00:0x20] } 000D 60 PUSH1 0x00 000F 35 CALLDATALOAD 0010 60 PUSH1 0xe0 0012 1C SHR 0013 80 DUP1 0014 63 PUSH4 0x92eefe9b 0019 11 GT 001A 61 PUSH2 0x015a 001D 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0012 stack[0] = msg.data[0x00:0x20] >> 0xe0 } // Block ends with conditional jump to 0x015a, if 0x92eefe9b > msg.data[0x00:0x20] >> 0xe0 label_001E: // Incoming jump from 0x001D, if not 0x92eefe9b > msg.data[0x00:0x20] >> 0xe0 // Inputs[1] { @001E stack[-1] } 001E 80 DUP1 001F 63 PUSH4 0xc5ebeaec 0024 11 GT 0025 61 PUSH2 0x00c1 0028 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x00c1, if 0xc5ebeaec > stack[-1] label_0029: // Incoming jump from 0x0028, if not 0xc5ebeaec > stack[-1] // Inputs[1] { @0029 stack[-1] } 0029 80 DUP1 002A 63 PUSH4 0xf3fdb15a 002F 11 GT 0030 61 PUSH2 0x007a 0033 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x007a, if 0xf3fdb15a > stack[-1] label_0034: // Incoming jump from 0x0033, if not 0xf3fdb15a > stack[-1] // Inputs[1] { @0034 stack[-1] } 0034 80 DUP1 0035 63 PUSH4 0xf3fdb15a 003A 14 EQ 003B 61 PUSH2 0x0a76 003E 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0a76, if 0xf3fdb15a == stack[-1] label_003F: // Incoming jump from 0x003E, if not 0xf3fdb15a == stack[-1] // Inputs[1] { @003F stack[-1] } 003F 80 DUP1 0040 63 PUSH4 0xf77c4791 0045 14 EQ 0046 61 PUSH2 0x0aa7 0049 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0aa7, if 0xf77c4791 == stack[-1] label_004A: // Incoming jump from 0x0049, if not 0xf77c4791 == stack[-1] // Inputs[1] { @004A stack[-1] } 004A 80 DUP1 004B 63 PUSH4 0xf851a440 0050 14 EQ 0051 61 PUSH2 0x0abc 0054 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0abc, if 0xf851a440 == stack[-1] label_0055: // Incoming jump from 0x0054, if not 0xf851a440 == stack[-1] // Inputs[1] { @0055 stack[-1] } 0055 80 DUP1 0056 63 PUSH4 0xf8f9da28 005B 14 EQ 005C 61 PUSH2 0x0ad1 005F 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0ad1, if 0xf8f9da28 == stack[-1] label_0060: // Incoming jump from 0x005F, if not 0xf8f9da28 == stack[-1] // Inputs[1] { @0060 stack[-1] } 0060 80 DUP1 0061 63 PUSH4 0xfca7820b 0066 14 EQ 0067 61 PUSH2 0x0ae6 006A 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0ae6, if 0xfca7820b == stack[-1] label_006B: // Incoming jump from 0x006A, if not 0xfca7820b == stack[-1] // Inputs[1] { @006B stack[-1] } 006B 80 DUP1 006C 63 PUSH4 0xfcb64147 0071 14 EQ 0072 61 PUSH2 0x0b10 0075 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0b10, if 0xfcb64147 == stack[-1] label_0076: // Incoming jump from 0x0075, if not 0xfcb64147 == stack[-1] 0076 61 PUSH2 0x0288 0079 56 *JUMP // Stack delta = +0 // Block ends with unconditional jump to 0x0288 label_007A: // Incoming jump from 0x0033, if 0xf3fdb15a > stack[-1] // Inputs[1] { @007B stack[-1] } 007A 5B JUMPDEST 007B 80 DUP1 007C 63 PUSH4 0xc5ebeaec 0081 14 EQ 0082 61 PUSH2 0x0841 0085 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0841, if 0xc5ebeaec == stack[-1] label_0086: // Incoming jump from 0x0085, if not 0xc5ebeaec == stack[-1] // Inputs[1] { @0086 stack[-1] } 0086 80 DUP1 0087 63 PUSH4 0xc7b7cc13 008C 14 EQ 008D 61 PUSH2 0x086b 0090 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x086b, if 0xc7b7cc13 == stack[-1] label_0091: // Incoming jump from 0x0090, if not 0xc7b7cc13 == stack[-1] // Inputs[1] { @0091 stack[-1] } 0091 80 DUP1 0092 63 PUSH4 0xd90a730e 0097 14 EQ 0098 61 PUSH2 0x09cd 009B 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x09cd, if 0xd90a730e == stack[-1] label_009C: // Incoming jump from 0x009B, if not 0xd90a730e == stack[-1] // Inputs[1] { @009C stack[-1] } 009C 80 DUP1 009D 63 PUSH4 0xdd62ed3e 00A2 14 EQ 00A3 61 PUSH2 0x09e2 00A6 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x09e2, if 0xdd62ed3e == stack[-1] label_00A7: // Incoming jump from 0x00A6, if not 0xdd62ed3e == stack[-1] // Inputs[1] { @00A7 stack[-1] } 00A7 80 DUP1 00A8 63 PUSH4 0xe5974619 00AD 14 EQ 00AE 61 PUSH2 0x0a1d 00B1 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0a1d, if 0xe5974619 == stack[-1] label_00B2: // Incoming jump from 0x00B1, if not 0xe5974619 == stack[-1] // Inputs[1] { @00B2 stack[-1] } 00B2 80 DUP1 00B3 63 PUSH4 0xf2b3abbd 00B8 14 EQ 00B9 61 PUSH2 0x0a43 00BC 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0a43, if 0xf2b3abbd == stack[-1] label_00BD: // Incoming jump from 0x00BC, if not 0xf2b3abbd == stack[-1] 00BD 61 PUSH2 0x0288 00C0 56 *JUMP // Stack delta = +0 // Block ends with unconditional jump to 0x0288 label_00C1: // Incoming jump from 0x0028, if 0xc5ebeaec > stack[-1] // Inputs[1] { @00C2 stack[-1] } 00C1 5B JUMPDEST 00C2 80 DUP1 00C3 63 PUSH4 0xaa5af0fd 00C8 11 GT 00C9 61 PUSH2 0x0113 00CC 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0113, if 0xaa5af0fd > stack[-1] label_00CD: // Incoming jump from 0x00CC, if not 0xaa5af0fd > stack[-1] // Inputs[1] { @00CD stack[-1] } 00CD 80 DUP1 00CE 63 PUSH4 0xaa5af0fd 00D3 14 EQ 00D4 61 PUSH2 0x0738 00D7 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0738, if 0xaa5af0fd == stack[-1] label_00D8: // Incoming jump from 0x00D7, if not 0xaa5af0fd == stack[-1] // Inputs[1] { @00D8 stack[-1] } 00D8 80 DUP1 00D9 63 PUSH4 0xaae40a2a 00DE 14 EQ 00DF 61 PUSH2 0x074d 00E2 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x074d, if 0xaae40a2a == stack[-1] label_00E3: // Incoming jump from 0x00E2, if not 0xaae40a2a == stack[-1] // Inputs[1] { @00E3 stack[-1] } 00E3 80 DUP1 00E4 63 PUSH4 0xae9d70b0 00E9 14 EQ 00EA 61 PUSH2 0x077b 00ED 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x077b, if 0xae9d70b0 == stack[-1] label_00EE: // Incoming jump from 0x00ED, if not 0xae9d70b0 == stack[-1] // Inputs[1] { @00EE stack[-1] } 00EE 80 DUP1 00EF 63 PUSH4 0xb2a02ff1 00F4 14 EQ 00F5 61 PUSH2 0x0790 00F8 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0790, if 0xb2a02ff1 == stack[-1] label_00F9: // Incoming jump from 0x00F8, if not 0xb2a02ff1 == stack[-1] // Inputs[1] { @00F9 stack[-1] } 00F9 80 DUP1 00FA 63 PUSH4 0xbd6d894d 00FF 14 EQ 0100 61 PUSH2 0x07d3 0103 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x07d3, if 0xbd6d894d == stack[-1] label_0104: // Incoming jump from 0x0103, if not 0xbd6d894d == stack[-1] // Inputs[1] { @0104 stack[-1] } 0104 80 DUP1 0105 63 PUSH4 0xc37f68e2 010A 14 EQ 010B 61 PUSH2 0x07e8 010E 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x07e8, if 0xc37f68e2 == stack[-1] label_010F: // Incoming jump from 0x010E, if not 0xc37f68e2 == stack[-1] 010F 61 PUSH2 0x0288 0112 56 *JUMP // Stack delta = +0 // Block ends with unconditional jump to 0x0288 label_0113: // Incoming jump from 0x00CC, if 0xaa5af0fd > stack[-1] // Inputs[1] { @0114 stack[-1] } 0113 5B JUMPDEST 0114 80 DUP1 0115 63 PUSH4 0x92eefe9b 011A 14 EQ 011B 61 PUSH2 0x063c 011E 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x063c, if 0x92eefe9b == stack[-1] label_011F: // Incoming jump from 0x011E, if not 0x92eefe9b == stack[-1] // Inputs[1] { @011F stack[-1] } 011F 80 DUP1 0120 63 PUSH4 0x954f92a3 0125 14 EQ 0126 61 PUSH2 0x066f 0129 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x066f, if 0x954f92a3 == stack[-1] label_012A: // Incoming jump from 0x0129, if not 0x954f92a3 == stack[-1] // Inputs[1] { @012A stack[-1] } 012A 80 DUP1 012B 63 PUSH4 0x95d89b41 0130 14 EQ 0131 61 PUSH2 0x06a2 0134 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x06a2, if 0x95d89b41 == stack[-1] label_0135: // Incoming jump from 0x0134, if not 0x95d89b41 == stack[-1] // Inputs[1] { @0135 stack[-1] } 0135 80 DUP1 0136 63 PUSH4 0x95dd9193 013B 14 EQ 013C 61 PUSH2 0x06b7 013F 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x06b7, if 0x95dd9193 == stack[-1] label_0140: // Incoming jump from 0x013F, if not 0x95dd9193 == stack[-1] // Inputs[1] { @0140 stack[-1] } 0140 80 DUP1 0141 63 PUSH4 0xa6afed95 0146 14 EQ 0147 61 PUSH2 0x06ea 014A 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x06ea, if 0xa6afed95 == stack[-1] label_014B: // Incoming jump from 0x014A, if not 0xa6afed95 == stack[-1] // Inputs[1] { @014B stack[-1] } 014B 80 DUP1 014C 63 PUSH4 0xa9059cbb 0151 14 EQ 0152 61 PUSH2 0x06ff 0155 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x06ff, if 0xa9059cbb == stack[-1] label_0156: // Incoming jump from 0x0155, if not 0xa9059cbb == stack[-1] 0156 61 PUSH2 0x0288 0159 56 *JUMP // Stack delta = +0 // Block ends with unconditional jump to 0x0288 label_015A: // Incoming jump from 0x001D, if 0x92eefe9b > msg.data[0x00:0x20] >> 0xe0 // Inputs[1] { @015B stack[-1] } 015A 5B JUMPDEST 015B 80 DUP1 015C 63 PUSH4 0x3af9e669 0161 11 GT 0162 61 PUSH2 0x01fe 0165 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x01fe, if 0x3af9e669 > stack[-1] label_0166: // Incoming jump from 0x0165, if not 0x3af9e669 > stack[-1] // Inputs[1] { @0166 stack[-1] } 0166 80 DUP1 0167 63 PUSH4 0x6c540baf 016C 11 GT 016D 61 PUSH2 0x01b7 0170 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x01b7, if 0x6c540baf > stack[-1] label_0171: // Incoming jump from 0x0170, if not 0x6c540baf > stack[-1] // Inputs[1] { @0171 stack[-1] } 0171 80 DUP1 0172 63 PUSH4 0x6c540baf 0177 14 EQ 0178 61 PUSH2 0x056b 017B 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x056b, if 0x6c540baf == stack[-1] label_017C: // Incoming jump from 0x017B, if not 0x6c540baf == stack[-1] // Inputs[1] { @017C stack[-1] } 017C 80 DUP1 017D 63 PUSH4 0x704b6c02 0182 14 EQ 0183 61 PUSH2 0x0580 0186 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0580, if 0x704b6c02 == stack[-1] label_0187: // Incoming jump from 0x0186, if not 0x704b6c02 == stack[-1] // Inputs[1] { @0187 stack[-1] } 0187 80 DUP1 0188 63 PUSH4 0x70a08231 018D 14 EQ 018E 61 PUSH2 0x05b5 0191 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x05b5, if 0x70a08231 == stack[-1] label_0192: // Incoming jump from 0x0191, if not 0x70a08231 == stack[-1] // Inputs[1] { @0192 stack[-1] } 0192 80 DUP1 0193 63 PUSH4 0x73acee98 0198 14 EQ 0199 61 PUSH2 0x05e8 019C 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x05e8, if 0x73acee98 == stack[-1] label_019D: // Incoming jump from 0x019C, if not 0x73acee98 == stack[-1] // Inputs[1] { @019D stack[-1] } 019D 80 DUP1 019E 63 PUSH4 0x852a12e3 01A3 14 EQ 01A4 61 PUSH2 0x05fd 01A7 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x05fd, if 0x852a12e3 == stack[-1] label_01A8: // Incoming jump from 0x01A7, if not 0x852a12e3 == stack[-1] // Inputs[1] { @01A8 stack[-1] } 01A8 80 DUP1 01A9 63 PUSH4 0x8f840ddd 01AE 14 EQ 01AF 61 PUSH2 0x0627 01B2 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0627, if 0x8f840ddd == stack[-1] label_01B3: // Incoming jump from 0x01B2, if not 0x8f840ddd == stack[-1] 01B3 61 PUSH2 0x0288 01B6 56 *JUMP // Stack delta = +0 // Block ends with unconditional jump to 0x0288 label_01B7: // Incoming jump from 0x0170, if 0x6c540baf > stack[-1] // Inputs[1] { @01B8 stack[-1] } 01B7 5B JUMPDEST 01B8 80 DUP1 01B9 63 PUSH4 0x3af9e669 01BE 14 EQ 01BF 61 PUSH2 0x0490 01C2 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0490, if 0x3af9e669 == stack[-1] label_01C3: // Incoming jump from 0x01C2, if not 0x3af9e669 == stack[-1] // Inputs[1] { @01C3 stack[-1] } 01C3 80 DUP1 01C4 63 PUSH4 0x3b1d21a2 01C9 14 EQ 01CA 61 PUSH2 0x04c3 01CD 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x04c3, if 0x3b1d21a2 == stack[-1] label_01CE: // Incoming jump from 0x01CD, if not 0x3b1d21a2 == stack[-1] // Inputs[1] { @01CE stack[-1] } 01CE 80 DUP1 01CF 63 PUSH4 0x47bd3718 01D4 14 EQ 01D5 61 PUSH2 0x04d8 01D8 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x04d8, if 0x47bd3718 == stack[-1] label_01D9: // Incoming jump from 0x01D8, if not 0x47bd3718 == stack[-1] // Inputs[1] { @01D9 stack[-1] } 01D9 80 DUP1 01DA 63 PUSH4 0x4dc3487d 01DF 14 EQ 01E0 61 PUSH2 0x04ed 01E3 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x04ed, if 0x4dc3487d == stack[-1] label_01E4: // Incoming jump from 0x01E3, if not 0x4dc3487d == stack[-1] // Inputs[1] { @01E4 stack[-1] } 01E4 80 DUP1 01E5 63 PUSH4 0x4e4d9fea 01EA 14 EQ 01EB 61 PUSH2 0x0520 01EE 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0520, if 0x4e4d9fea == stack[-1] label_01EF: // Incoming jump from 0x01EE, if not 0x4e4d9fea == stack[-1] // Inputs[1] { @01EF stack[-1] } 01EF 80 DUP1 01F0 63 PUSH4 0x601a0bf1 01F5 14 EQ 01F6 61 PUSH2 0x0541 01F9 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0541, if 0x601a0bf1 == stack[-1] label_01FA: // Incoming jump from 0x01F9, if not 0x601a0bf1 == stack[-1] 01FA 61 PUSH2 0x0288 01FD 56 *JUMP // Stack delta = +0 // Block ends with unconditional jump to 0x0288 label_01FE: // Incoming jump from 0x0165, if 0x3af9e669 > stack[-1] // Inputs[1] { @01FF stack[-1] } 01FE 5B JUMPDEST 01FF 80 DUP1 0200 63 PUSH4 0x18160ddd 0205 11 GT 0206 61 PUSH2 0x0250 0209 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0250, if 0x18160ddd > stack[-1] label_020A: // Incoming jump from 0x0209, if not 0x18160ddd > stack[-1] // Inputs[1] { @020A stack[-1] } 020A 80 DUP1 020B 63 PUSH4 0x18160ddd 0210 14 EQ 0211 61 PUSH2 0x03ce 0214 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x03ce, if 0x18160ddd == stack[-1] label_0215: // Incoming jump from 0x0214, if not 0x18160ddd == stack[-1] // Inputs[1] { @0215 stack[-1] } 0215 80 DUP1 0216 63 PUSH4 0x182df0f5 021B 14 EQ 021C 61 PUSH2 0x03e3 021F 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x03e3, if 0x182df0f5 == stack[-1] label_0220: // Incoming jump from 0x021F, if not 0x182df0f5 == stack[-1] // Inputs[1] { @0220 stack[-1] } 0220 80 DUP1 0221 63 PUSH4 0x23b872dd 0226 14 EQ 0227 61 PUSH2 0x03f8 022A 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x03f8, if 0x23b872dd == stack[-1] label_022B: // Incoming jump from 0x022A, if not 0x23b872dd == stack[-1] // Inputs[1] { @022B stack[-1] } 022B 80 DUP1 022C 63 PUSH4 0x2ebf040e 0231 14 EQ 0232 61 PUSH2 0x043b 0235 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x043b, if 0x2ebf040e == stack[-1] label_0236: // Incoming jump from 0x0235, if not 0x2ebf040e == stack[-1] // Inputs[1] { @0236 stack[-1] } 0236 80 DUP1 0237 63 PUSH4 0x313ce567 023C 14 EQ 023D 61 PUSH2 0x0450 0240 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0450, if 0x313ce567 == stack[-1] label_0241: // Incoming jump from 0x0240, if not 0x313ce567 == stack[-1] // Inputs[1] { @0241 stack[-1] } 0241 80 DUP1 0242 63 PUSH4 0x3ac4202f 0247 14 EQ 0248 61 PUSH2 0x047b 024B 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x047b, if 0x3ac4202f == stack[-1] label_024C: // Incoming jump from 0x024B, if not 0x3ac4202f == stack[-1] 024C 61 PUSH2 0x0288 024F 56 *JUMP // Stack delta = +0 // Block ends with unconditional jump to 0x0288 label_0250: // Incoming jump from 0x0209, if 0x18160ddd > stack[-1] // Inputs[1] { @0251 stack[-1] } 0250 5B JUMPDEST 0251 80 DUP1 0252 63 PUSH4 0x06fdde03 0257 14 EQ 0258 61 PUSH2 0x0295 025B 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0295, if 0x06fdde03 == stack[-1] label_025C: // Incoming jump from 0x025B, if not 0x06fdde03 == stack[-1] // Inputs[1] { @025C stack[-1] } 025C 80 DUP1 025D 63 PUSH4 0x095ea7b3 0262 14 EQ 0263 61 PUSH2 0x031f 0266 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x031f, if 0x095ea7b3 == stack[-1] label_0267: // Incoming jump from 0x0266, if not 0x095ea7b3 == stack[-1] // Inputs[1] { @0267 stack[-1] } 0267 80 DUP1 0268 63 PUSH4 0x1249c58b 026D 14 EQ 026E 61 PUSH2 0x036c 0271 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x036c, if 0x1249c58b == stack[-1] label_0272: // Incoming jump from 0x0271, if not 0x1249c58b == stack[-1] // Inputs[1] { @0272 stack[-1] } 0272 80 DUP1 0273 63 PUSH4 0x173b9904 0278 14 EQ 0279 61 PUSH2 0x0386 027C 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0386, if 0x173b9904 == stack[-1] label_027D: // Incoming jump from 0x027C, if not 0x173b9904 == stack[-1] // Inputs[1] { @027D stack[-1] } 027D 80 DUP1 027E 63 PUSH4 0x17bfdfbc 0283 14 EQ 0284 61 PUSH2 0x039b 0287 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x039b, if 0x17bfdfbc == stack[-1] label_0288: // Incoming jump from 0x000C, if msg.data.length < 0x04 // Incoming jump from 0x00C0 // Incoming jump from 0x0287, if not 0x17bfdfbc == stack[-1] // Incoming jump from 0x0159 // Incoming jump from 0x024F // Incoming jump from 0x0112 // Incoming jump from 0x0079 // Incoming jump from 0x01FD // Incoming jump from 0x01B6 // Inputs[2] // { // @028C msg.sender // @028D msg.value // } 0288 5B JUMPDEST 0289 61 PUSH2 0x0292 028C 33 CALLER 028D 34 CALLVALUE 028E 61 PUSH2 0x0b18 0291 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @0289 stack[0] = 0x0292 // @028C stack[1] = msg.sender // @028D stack[2] = msg.value // } // Block ends with unconditional jump to 0x0b18 0292 5B JUMPDEST 0293 50 POP 0294 00 *STOP label_0295: // Incoming jump from 0x025B, if 0x06fdde03 == stack[-1] // Inputs[1] { @0296 msg.value } 0295 5B JUMPDEST 0296 34 CALLVALUE 0297 80 DUP1 0298 15 ISZERO 0299 61 PUSH2 0x02a1 029C 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0296 stack[0] = msg.value } // Block ends with conditional jump to 0x02a1, if !msg.value label_029D: // Incoming jump from 0x029C, if not !msg.value // Inputs[1] { @02A0 memory[0x00:0x00] } 029D 60 PUSH1 0x00 029F 80 DUP1 02A0 FD *REVERT // Stack delta = +0 // Outputs[1] { @02A0 revert(memory[0x00:0x00]); } // Block terminates label_02A1: // Incoming jump from 0x029C, if !msg.value 02A1 5B JUMPDEST 02A2 50 POP 02A3 61 PUSH2 0x02aa 02A6 61 PUSH2 0x109e 02A9 56 *JUMP // Stack delta = +0 // Outputs[1] { @02A3 stack[-1] = 0x02aa } // Block ends with call to 0x109e, returns to 0x02AA label_02AA: // Incoming return from call to 0x197E at 0x06B6 // Incoming return from call to 0x109E at 0x02A9 // Inputs[4] // { // @02AE memory[0x40:0x60] // @02B4 stack[-1] // @02B5 memory[stack[-1]:stack[-1] + 0x20] // @02BB memory[stack[-1]:stack[-1] + 0x20] // } 02AA 5B JUMPDEST 02AB 60 PUSH1 0x40 02AD 80 DUP1 02AE 51 MLOAD 02AF 60 PUSH1 0x20 02B1 80 DUP1 02B2 82 DUP3 02B3 52 MSTORE 02B4 83 DUP4 02B5 51 MLOAD 02B6 81 DUP2 02B7 83 DUP4 02B8 01 ADD 02B9 52 MSTORE 02BA 83 DUP4 02BB 51 MLOAD 02BC 91 SWAP2 02BD 92 SWAP3 02BE 83 DUP4 02BF 92 SWAP3 02C0 90 SWAP1 02C1 83 DUP4 02C2 01 ADD 02C3 91 SWAP2 02C4 85 DUP6 02C5 01 ADD 02C6 90 SWAP1 02C7 80 DUP1 02C8 83 DUP4 02C9 83 DUP4 02CA 60 PUSH1 0x00 02CC 5B JUMPDEST 02CD 83 DUP4 02CE 81 DUP2 02CF 10 LT 02D0 15 ISZERO 02D1 61 PUSH2 0x02e4 02D4 57 *JUMPI // Stack delta = +9 // Outputs[11] // { // @02B3 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x20 // @02B9 memory[memory[0x40:0x60] + 0x20:memory[0x40:0x60] + 0x20 + 0x20] = memory[stack[-1]:stack[-1] + 0x20] // @02BD stack[0] = memory[0x40:0x60] // @02BF stack[1] = memory[0x40:0x60] // @02C3 stack[2] = memory[0x40:0x60] + 0x40 // @02C6 stack[3] = stack[-1] + 0x20 // @02C6 stack[4] = memory[stack[-1]:stack[-1] + 0x20] // @02C7 stack[5] = memory[stack[-1]:stack[-1] + 0x20] // @02C8 stack[6] = memory[0x40:0x60] + 0x40 // @02C9 stack[7] = stack[-1] + 0x20 // @02CA stack[8] = 0x00 // } // Block ends with conditional jump to 0x02e4, if !(0x00 < memory[stack[-1]:stack[-1] + 0x20]) label_02D5: // Incoming jump from 0x02D4, if not !(0x00 < memory[stack[-1]:stack[-1] + 0x20]) // Incoming jump from 0x02D4, if not !(stack[-1] < stack[-4]) // Inputs[4] // { // @02D5 stack[-2] // @02D6 stack[-1] // @02D8 memory[stack[-1] + stack[-2]:stack[-1] + stack[-2] + 0x20] // @02D9 stack[-3] // } 02D5 81 DUP2 02D6 81 DUP2 02D7 01 ADD 02D8 51 MLOAD 02D9 83 DUP4 02DA 82 DUP3 02DB 01 ADD 02DC 52 MSTORE 02DD 60 PUSH1 0x20 02DF 01 ADD 02E0 61 PUSH2 0x02cc 02E3 56 *JUMP // Stack delta = +0 // Outputs[2] // { // @02DC memory[stack[-1] + stack[-3]:stack[-1] + stack[-3] + 0x20] = memory[stack[-1] + stack[-2]:stack[-1] + stack[-2] + 0x20] // @02DF stack[-1] = 0x20 + stack[-1] // } // Block ends with unconditional jump to 0x02cc label_02E4: // Incoming jump from 0x02D4, if !(0x00 < memory[stack[-1]:stack[-1] + 0x20]) // Incoming jump from 0x02D4, if !(stack[-1] < stack[-4]) // Inputs[3] // { // @02E9 stack[-6] // @02E9 stack[-5] // @02EB stack[-7] // } 02E4 5B JUMPDEST 02E5 50 POP 02E6 50 POP 02E7 50 POP 02E8 50 POP 02E9 90 SWAP1 02EA 50 POP 02EB 90 SWAP1 02EC 81 DUP2 02ED 01 ADD 02EE 90 SWAP1 02EF 60 PUSH1 0x1f 02F1 16 AND 02F2 80 DUP1 02F3 15 ISZERO 02F4 61 PUSH2 0x0311 02F7 57 *JUMPI // Stack delta = -5 // Outputs[2] // { // @02EE stack[-7] = stack[-5] + stack[-7] // @02F1 stack[-6] = 0x1f & stack[-5] // } // Block ends with conditional jump to 0x0311, if !(0x1f & stack[-5]) label_02F8: // Incoming jump from 0x02F7, if not !(0x1f & stack[-5]) // Inputs[6] // { // @02F8 stack[-1] // @02F9 stack[-2] // @02FC memory[stack[-2] - stack[-1]:stack[-2] - stack[-1] + 0x20] // @0313 stack[-5] // @0319 memory[0x40:0x60] // @031E memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x20 + (stack[-2] - stack[-1])) - memory[0x40:0x60]] // } 02F8 80 DUP1 02F9 82 DUP3 02FA 03 SUB 02FB 80 DUP1 02FC 51 MLOAD 02FD 60 PUSH1 0x01 02FF 83 DUP4 0300 60 PUSH1 0x20 0302 03 SUB 0303 61 PUSH2 0x0100 0306 0A EXP 0307 03 SUB 0308 19 NOT 0309 16 AND 030A 81 DUP2 030B 52 MSTORE 030C 60 PUSH1 0x20 030E 01 ADD 030F 91 SWAP2 0310 50 POP 0311 5B JUMPDEST 0312 50 POP 0313 92 SWAP3 0314 50 POP 0315 50 POP 0316 50 POP 0317 60 PUSH1 0x40 0319 51 MLOAD 031A 80 DUP1 031B 91 SWAP2 031C 03 SUB 031D 90 SWAP1 031E F3 *RETURN // Stack delta = -5 // Outputs[2] // { // @030B memory[stack[-2] - stack[-1]:stack[-2] - stack[-1] + 0x20] = ~(0x0100 ** (0x20 - stack[-1]) - 0x01) & memory[stack[-2] - stack[-1]:stack[-2] - stack[-1] + 0x20] // @031E return memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x20 + (stack[-2] - stack[-1])) - memory[0x40:0x60]]; // } // Block terminates label_031F: // Incoming jump from 0x0266, if 0x095ea7b3 == stack[-1] // Inputs[1] { @0320 msg.value } 031F 5B JUMPDEST 0320 34 CALLVALUE 0321 80 DUP1 0322 15 ISZERO 0323 61 PUSH2 0x032b 0326 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0320 stack[0] = msg.value } // Block ends with conditional jump to 0x032b, if !msg.value label_0327: // Incoming jump from 0x0326, if not !msg.value // Inputs[1] { @032A memory[0x00:0x00] } 0327 60 PUSH1 0x00 0329 80 DUP1 032A FD *REVERT // Stack delta = +0 // Outputs[1] { @032A revert(memory[0x00:0x00]); } // Block terminates label_032B: // Incoming jump from 0x0326, if !msg.value // Inputs[1] { @0333 msg.data.length } 032B 5B JUMPDEST 032C 50 POP 032D 61 PUSH2 0x0358 0330 60 PUSH1 0x04 0332 80 DUP1 0333 36 CALLDATASIZE 0334 03 SUB 0335 60 PUSH1 0x40 0337 81 DUP2 0338 10 LT 0339 15 ISZERO 033A 61 PUSH2 0x0342 033D 57 *JUMPI // Stack delta = +2 // Outputs[3] // { // @032D stack[-1] = 0x0358 // @0330 stack[0] = 0x04 // @0334 stack[1] = msg.data.length - 0x04 // } // Block ends with conditional call to 0x0342, returns to 0x0358, if !(msg.data.length - 0x04 < 0x40) label_033E: // Incoming jump from 0x033D, if not !(msg.data.length - 0x04 < 0x40) // Inputs[1] { @0341 memory[0x00:0x00] } 033E 60 PUSH1 0x00 0340 80 DUP1 0341 FD *REVERT // Stack delta = +0 // Outputs[1] { @0341 revert(memory[0x00:0x00]); } // Block terminates label_0342: // Incoming call from 0x033D, returns to 0x0358, if !(msg.data.length - 0x04 < 0x40) // Inputs[3] // { // @034C stack[-2] // @034D msg.data[stack[-2]:stack[-2] + 0x20] // @0353 msg.data[0x20 + stack[-2]:0x20 + stack[-2] + 0x20] // } 0342 5B JUMPDEST 0343 50 POP 0344 60 PUSH1 0x01 0346 60 PUSH1 0x01 0348 60 PUSH1 0xa0 034A 1B SHL 034B 03 SUB 034C 81 DUP2 034D 35 CALLDATALOAD 034E 16 AND 034F 90 SWAP1 0350 60 PUSH1 0x20 0352 01 ADD 0353 35 CALLDATALOAD 0354 61 PUSH2 0x112c 0357 56 *JUMP // Stack delta = +0 // Outputs[2] // { // @034F stack[-2] = msg.data[stack[-2]:stack[-2] + 0x20] & (0x01 << 0xa0) - 0x01 // @0353 stack[-1] = msg.data[0x20 + stack[-2]:0x20 + stack[-2] + 0x20] // } // Block ends with unconditional jump to 0x112c label_0358: // Incoming return from call to 0x0342 at 0x033D // Incoming return from call to 0x0722 at 0x071D // Incoming return from call to 0x041B at 0x0416 // Incoming return from call to 0x14C1 at 0x048F // Inputs[4] // { // @035C memory[0x40:0x60] // @035D stack[-1] // @0362 memory[0x40:0x60] // @036B memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 0358 5B JUMPDEST 0359 60 PUSH1 0x40 035B 80 DUP1 035C 51 MLOAD 035D 91 SWAP2 035E 15 ISZERO 035F 15 ISZERO 0360 82 DUP3 0361 52 MSTORE 0362 51 MLOAD 0363 90 SWAP1 0364 81 DUP2 0365 90 SWAP1 0366 03 SUB 0367 60 PUSH1 0x20 0369 01 ADD 036A 90 SWAP1 036B F3 *RETURN // Stack delta = -1 // Outputs[2] // { // @0361 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = !!stack[-1] // @036B return memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20 + (memory[0x40:0x60] - memory[0x40:0x60])]; // } // Block terminates label_036C: // Incoming jump from 0x0271, if 0x1249c58b == stack[-1] 036C 5B JUMPDEST 036D 61 PUSH2 0x0374 0370 61 PUSH2 0x1197 0373 56 *JUMP // Stack delta = +1 // Outputs[1] { @036D stack[0] = 0x0374 } // Block ends with unconditional jump to 0x1197 label_0374: // Incoming return from call to 0x18B0 at 0x063B // Incoming return from call to 0x1572 at 0x04EC // Incoming return from call to 0x1688 at 0x057F // Incoming return from call to 0x065F at 0x065A // Incoming return from call to 0x1271 at 0x03F7 // Incoming return from call to 0x22C3 at 0x0AE5 // Incoming return from call to 0x1A38 at 0x06FE // Incoming return from call to 0x1A38 at 0x06FE // Incoming return from call to 0x06DA at 0x06D5 // Incoming return from call to 0x0692 at 0x068D // Incoming return from call to 0x05D8 at 0x05D3 // Incoming return from call to 0x0510 at 0x050B // Incoming return from call to 0x1E41 at 0x074C // Incoming return from call to 0x21CA at 0x09E1 // Incoming return from call to 0x04B3 at 0x04AE // Incoming return from call to 0x0B09 at 0x0B04 // Incoming return from call to 0x1F9F at 0x07E7 // Incoming return from call to 0x03BE at 0x03B9 // Incoming return from call to 0x11A9 at 0x039A // Incoming return from call to 0x07B3 at 0x07AE // Incoming return from call to 0x0A66 at 0x0A61 // Incoming return from call to 0x0A05 at 0x0A00 // Incoming return from call to 0x175C at 0x05FC // Incoming return from call to 0x1E84 at 0x078F // Incoming return from call to 0x126B at 0x03E2 // Inputs[4] // { // @0378 memory[0x40:0x60] // @0379 stack[-1] // @037C memory[0x40:0x60] // @0385 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 0374 5B JUMPDEST 0375 60 PUSH1 0x40 0377 80 DUP1 0378 51 MLOAD 0379 91 SWAP2 037A 82 DUP3 037B 52 MSTORE 037C 51 MLOAD 037D 90 SWAP1 037E 81 DUP2 037F 90 SWAP1 0380 03 SUB 0381 60 PUSH1 0x20 0383 01 ADD 0384 90 SWAP1 0385 F3 *RETURN // Stack delta = -1 // Outputs[2] // { // @037B memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = stack[-1] // @0385 return memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20 + (memory[0x40:0x60] - memory[0x40:0x60])]; // } // Block terminates label_0386: // Incoming jump from 0x027C, if 0x173b9904 == stack[-1] // Inputs[1] { @0387 msg.value } 0386 5B JUMPDEST 0387 34 CALLVALUE 0388 80 DUP1 0389 15 ISZERO 038A 61 PUSH2 0x0392 038D 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0387 stack[0] = msg.value } // Block ends with conditional jump to 0x0392, if !msg.value label_038E: // Incoming jump from 0x038D, if not !msg.value // Inputs[1] { @0391 memory[0x00:0x00] } 038E 60 PUSH1 0x00 0390 80 DUP1 0391 FD *REVERT // Stack delta = +0 // Outputs[1] { @0391 revert(memory[0x00:0x00]); } // Block terminates label_0392: // Incoming jump from 0x038D, if !msg.value 0392 5B JUMPDEST 0393 50 POP 0394 61 PUSH2 0x0374 0397 61 PUSH2 0x11a9 039A 56 *JUMP // Stack delta = +0 // Outputs[1] { @0394 stack[-1] = 0x0374 } // Block ends with call to 0x11a9, returns to 0x0374 label_039B: // Incoming jump from 0x0287, if 0x17bfdfbc == stack[-1] // Inputs[1] { @039C msg.value } 039B 5B JUMPDEST 039C 34 CALLVALUE 039D 80 DUP1 039E 15 ISZERO 039F 61 PUSH2 0x03a7 03A2 57 *JUMPI // Stack delta = +1 // Outputs[1] { @039C stack[0] = msg.value } // Block ends with conditional jump to 0x03a7, if !msg.value label_03A3: // Incoming jump from 0x03A2, if not !msg.value // Inputs[1] { @03A6 memory[0x00:0x00] } 03A3 60 PUSH1 0x00 03A5 80 DUP1 03A6 FD *REVERT // Stack delta = +0 // Outputs[1] { @03A6 revert(memory[0x00:0x00]); } // Block terminates label_03A7: // Incoming jump from 0x03A2, if !msg.value // Inputs[1] { @03AF msg.data.length } 03A7 5B JUMPDEST 03A8 50 POP 03A9 61 PUSH2 0x0374 03AC 60 PUSH1 0x04 03AE 80 DUP1 03AF 36 CALLDATASIZE 03B0 03 SUB 03B1 60 PUSH1 0x20 03B3 81 DUP2 03B4 10 LT 03B5 15 ISZERO 03B6 61 PUSH2 0x03be 03B9 57 *JUMPI // Stack delta = +2 // Outputs[3] // { // @03A9 stack[-1] = 0x0374 // @03AC stack[0] = 0x04 // @03B0 stack[1] = msg.data.length - 0x04 // } // Block ends with conditional call to 0x03be, returns to 0x0374, if !(msg.data.length - 0x04 < 0x20) label_03BA: // Incoming jump from 0x03B9, if not !(msg.data.length - 0x04 < 0x20) // Inputs[1] { @03BD memory[0x00:0x00] } 03BA 60 PUSH1 0x00 03BC 80 DUP1 03BD FD *REVERT // Stack delta = +0 // Outputs[1] { @03BD revert(memory[0x00:0x00]); } // Block terminates label_03BE: // Incoming call from 0x03B9, returns to 0x0374, if !(msg.data.length - 0x04 < 0x20) // Inputs[2] // { // @03C0 stack[-2] // @03C0 msg.data[stack[-2]:stack[-2] + 0x20] // } 03BE 5B JUMPDEST 03BF 50 POP 03C0 35 CALLDATALOAD 03C1 60 PUSH1 0x01 03C3 60 PUSH1 0x01 03C5 60 PUSH1 0xa0 03C7 1B SHL 03C8 03 SUB 03C9 16 AND 03CA 61 PUSH2 0x11af 03CD 56 *JUMP // Stack delta = -1 // Outputs[1] { @03C9 stack[-2] = (0x01 << 0xa0) - 0x01 & msg.data[stack[-2]:stack[-2] + 0x20] } // Block ends with unconditional jump to 0x11af label_03CE: // Incoming jump from 0x0214, if 0x18160ddd == stack[-1] // Inputs[1] { @03CF msg.value } 03CE 5B JUMPDEST 03CF 34 CALLVALUE 03D0 80 DUP1 03D1 15 ISZERO 03D2 61 PUSH2 0x03da 03D5 57 *JUMPI // Stack delta = +1 // Outputs[1] { @03CF stack[0] = msg.value } // Block ends with conditional jump to 0x03da, if !msg.value label_03D6: // Incoming jump from 0x03D5, if not !msg.value // Inputs[1] { @03D9 memory[0x00:0x00] } 03D6 60 PUSH1 0x00 03D8 80 DUP1 03D9 FD *REVERT // Stack delta = +0 // Outputs[1] { @03D9 revert(memory[0x00:0x00]); } // Block terminates label_03DA: // Incoming jump from 0x03D5, if !msg.value 03DA 5B JUMPDEST 03DB 50 POP 03DC 61 PUSH2 0x0374 03DF 61 PUSH2 0x126b 03E2 56 *JUMP // Stack delta = +0 // Outputs[1] { @03DC stack[-1] = 0x0374 } // Block ends with call to 0x126b, returns to 0x0374 label_03E3: // Incoming jump from 0x021F, if 0x182df0f5 == stack[-1] // Inputs[1] { @03E4 msg.value } 03E3 5B JUMPDEST 03E4 34 CALLVALUE 03E5 80 DUP1 03E6 15 ISZERO 03E7 61 PUSH2 0x03ef 03EA 57 *JUMPI // Stack delta = +1 // Outputs[1] { @03E4 stack[0] = msg.value } // Block ends with conditional jump to 0x03ef, if !msg.value label_03EB: // Incoming jump from 0x03EA, if not !msg.value // Inputs[1] { @03EE memory[0x00:0x00] } 03EB 60 PUSH1 0x00 03ED 80 DUP1 03EE FD *REVERT // Stack delta = +0 // Outputs[1] { @03EE revert(memory[0x00:0x00]); } // Block terminates label_03EF: // Incoming jump from 0x03EA, if !msg.value 03EF 5B JUMPDEST 03F0 50 POP 03F1 61 PUSH2 0x0374 03F4 61 PUSH2 0x1271 03F7 56 *JUMP // Stack delta = +0 // Outputs[1] { @03F1 stack[-1] = 0x0374 } // Block ends with call to 0x1271, returns to 0x0374 label_03F8: // Incoming jump from 0x022A, if 0x23b872dd == stack[-1] // Inputs[1] { @03F9 msg.value } 03F8 5B JUMPDEST 03F9 34 CALLVALUE 03FA 80 DUP1 03FB 15 ISZERO 03FC 61 PUSH2 0x0404 03FF 57 *JUMPI // Stack delta = +1 // Outputs[1] { @03F9 stack[0] = msg.value } // Block ends with conditional jump to 0x0404, if !msg.value label_0400: // Incoming jump from 0x03FF, if not !msg.value // Inputs[1] { @0403 memory[0x00:0x00] } 0400 60 PUSH1 0x00 0402 80 DUP1 0403 FD *REVERT // Stack delta = +0 // Outputs[1] { @0403 revert(memory[0x00:0x00]); } // Block terminates label_0404: // Incoming jump from 0x03FF, if !msg.value // Inputs[1] { @040C msg.data.length } 0404 5B JUMPDEST 0405 50 POP 0406 61 PUSH2 0x0358 0409 60 PUSH1 0x04 040B 80 DUP1 040C 36 CALLDATASIZE 040D 03 SUB 040E 60 PUSH1 0x60 0410 81 DUP2 0411 10 LT 0412 15 ISZERO 0413 61 PUSH2 0x041b 0416 57 *JUMPI // Stack delta = +2 // Outputs[3] // { // @0406 stack[-1] = 0x0358 // @0409 stack[0] = 0x04 // @040D stack[1] = msg.data.length - 0x04 // } // Block ends with conditional call to 0x041b, returns to 0x0358, if !(msg.data.length - 0x04 < 0x60) label_0417: // Incoming jump from 0x0416, if not !(msg.data.length - 0x04 < 0x60) // Inputs[1] { @041A memory[0x00:0x00] } 0417 60 PUSH1 0x00 0419 80 DUP1 041A FD *REVERT // Stack delta = +0 // Outputs[1] { @041A revert(memory[0x00:0x00]); } // Block terminates label_041B: // Incoming call from 0x0416, returns to 0x0358, if !(msg.data.length - 0x04 < 0x60) // Inputs[4] // { // @0425 stack[-2] // @0426 msg.data[stack[-2]:stack[-2] + 0x20] // @042E msg.data[stack[-2] + 0x20:stack[-2] + 0x20 + 0x20] // @0436 msg.data[0x40 + stack[-2]:0x40 + stack[-2] + 0x20] // } 041B 5B JUMPDEST 041C 50 POP 041D 60 PUSH1 0x01 041F 60 PUSH1 0x01 0421 60 PUSH1 0xa0 0423 1B SHL 0424 03 SUB 0425 81 DUP2 0426 35 CALLDATALOAD 0427 81 DUP2 0428 16 AND 0429 91 SWAP2 042A 60 PUSH1 0x20 042C 81 DUP2 042D 01 ADD 042E 35 CALLDATALOAD 042F 90 SWAP1 0430 91 SWAP2 0431 16 AND 0432 90 SWAP1 0433 60 PUSH1 0x40 0435 01 ADD 0436 35 CALLDATALOAD 0437 61 PUSH2 0x12d5 043A 56 *JUMP // Stack delta = +1 // Outputs[3] // { // @0429 stack[-2] = (0x01 << 0xa0) - 0x01 & msg.data[stack[-2]:stack[-2] + 0x20] // @0432 stack[-1] = (0x01 << 0xa0) - 0x01 & msg.data[stack[-2] + 0x20:stack[-2] + 0x20 + 0x20] // @0436 stack[0] = msg.data[0x40 + stack[-2]:0x40 + stack[-2] + 0x20] // } // Block ends with unconditional jump to 0x12d5 label_043B: // Incoming jump from 0x0235, if 0x2ebf040e == stack[-1] // Inputs[1] { @043C msg.value } 043B 5B JUMPDEST 043C 34 CALLVALUE 043D 80 DUP1 043E 15 ISZERO 043F 61 PUSH2 0x0447 0442 57 *JUMPI // Stack delta = +1 // Outputs[1] { @043C stack[0] = msg.value } // Block ends with conditional jump to 0x0447, if !msg.value label_0443: // Incoming jump from 0x0442, if not !msg.value // Inputs[1] { @0446 memory[0x00:0x00] } 0443 60 PUSH1 0x00 0445 80 DUP1 0446 FD *REVERT // Stack delta = +0 // Outputs[1] { @0446 revert(memory[0x00:0x00]); } // Block terminates label_0447: // Incoming jump from 0x0442, if !msg.value 0447 5B JUMPDEST 0448 50 POP 0449 61 PUSH2 0x0374 044C 61 PUSH2 0x1352 044F 56 *JUMP // Stack delta = +0 // Outputs[1] { @0449 stack[-1] = 0x0374 } // Block ends with unconditional jump to 0x1352 label_0450: // Incoming jump from 0x0240, if 0x313ce567 == stack[-1] // Inputs[1] { @0451 msg.value } 0450 5B JUMPDEST 0451 34 CALLVALUE 0452 80 DUP1 0453 15 ISZERO 0454 61 PUSH2 0x045c 0457 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0451 stack[0] = msg.value } // Block ends with conditional jump to 0x045c, if !msg.value label_0458: // Incoming jump from 0x0457, if not !msg.value // Inputs[1] { @045B memory[0x00:0x00] } 0458 60 PUSH1 0x00 045A 80 DUP1 045B FD *REVERT // Stack delta = +0 // Outputs[1] { @045B revert(memory[0x00:0x00]); } // Block terminates label_045C: // Incoming jump from 0x0457, if !msg.value 045C 5B JUMPDEST 045D 50 POP 045E 61 PUSH2 0x0465 0461 61 PUSH2 0x14b8 0464 56 *JUMP // Stack delta = +0 // Outputs[1] { @045E stack[-1] = 0x0465 } // Block ends with call to 0x14b8, returns to 0x0465 label_0465: // Incoming return from call to 0x14B8 at 0x0464 // Inputs[4] // { // @0469 memory[0x40:0x60] // @046D stack[-1] // @0471 memory[0x40:0x60] // @047A memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 0465 5B JUMPDEST 0466 60 PUSH1 0x40 0468 80 DUP1 0469 51 MLOAD 046A 60 PUSH1 0xff 046C 90 SWAP1 046D 92 SWAP3 046E 16 AND 046F 82 DUP3 0470 52 MSTORE 0471 51 MLOAD 0472 90 SWAP1 0473 81 DUP2 0474 90 SWAP1 0475 03 SUB 0476 60 PUSH1 0x20 0478 01 ADD 0479 90 SWAP1 047A F3 *RETURN // Stack delta = -1 // Outputs[2] // { // @0470 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = stack[-1] & 0xff // @047A return memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20 + (memory[0x40:0x60] - memory[0x40:0x60])]; // } // Block terminates label_047B: // Incoming jump from 0x024B, if 0x3ac4202f == stack[-1] // Inputs[1] { @047C msg.value } 047B 5B JUMPDEST 047C 34 CALLVALUE 047D 80 DUP1 047E 15 ISZERO 047F 61 PUSH2 0x0487 0482 57 *JUMPI // Stack delta = +1 // Outputs[1] { @047C stack[0] = msg.value } // Block ends with conditional jump to 0x0487, if !msg.value label_0483: // Incoming jump from 0x0482, if not !msg.value // Inputs[1] { @0486 memory[0x00:0x00] } 0483 60 PUSH1 0x00 0485 80 DUP1 0486 FD *REVERT // Stack delta = +0 // Outputs[1] { @0486 revert(memory[0x00:0x00]); } // Block terminates label_0487: // Incoming jump from 0x0482, if !msg.value 0487 5B JUMPDEST 0488 50 POP 0489 61 PUSH2 0x0358 048C 61 PUSH2 0x14c1 048F 56 *JUMP // Stack delta = +0 // Outputs[1] { @0489 stack[-1] = 0x0358 } // Block ends with call to 0x14c1, returns to 0x0358 label_0490: // Incoming jump from 0x01C2, if 0x3af9e669 == stack[-1] // Inputs[1] { @0491 msg.value } 0490 5B JUMPDEST 0491 34 CALLVALUE 0492 80 DUP1 0493 15 ISZERO 0494 61 PUSH2 0x049c 0497 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0491 stack[0] = msg.value } // Block ends with conditional jump to 0x049c, if !msg.value label_0498: // Incoming jump from 0x0497, if not !msg.value // Inputs[1] { @049B memory[0x00:0x00] } 0498 60 PUSH1 0x00 049A 80 DUP1 049B FD *REVERT // Stack delta = +0 // Outputs[1] { @049B revert(memory[0x00:0x00]); } // Block terminates label_049C: // Incoming jump from 0x0497, if !msg.value // Inputs[1] { @04A4 msg.data.length } 049C 5B JUMPDEST 049D 50 POP 049E 61 PUSH2 0x0374 04A1 60 PUSH1 0x04 04A3 80 DUP1 04A4 36 CALLDATASIZE 04A5 03 SUB 04A6 60 PUSH1 0x20 04A8 81 DUP2 04A9 10 LT 04AA 15 ISZERO 04AB 61 PUSH2 0x04b3 04AE 57 *JUMPI // Stack delta = +2 // Outputs[3] // { // @049E stack[-1] = 0x0374 // @04A1 stack[0] = 0x04 // @04A5 stack[1] = msg.data.length - 0x04 // } // Block ends with conditional call to 0x04b3, returns to 0x0374, if !(msg.data.length - 0x04 < 0x20) label_04AF: // Incoming jump from 0x04AE, if not !(msg.data.length - 0x04 < 0x20) // Inputs[1] { @04B2 memory[0x00:0x00] } 04AF 60 PUSH1 0x00 04B1 80 DUP1 04B2 FD *REVERT // Stack delta = +0 // Outputs[1] { @04B2 revert(memory[0x00:0x00]); } // Block terminates label_04B3: // Incoming call from 0x04AE, returns to 0x0374, if !(msg.data.length - 0x04 < 0x20) // Inputs[2] // { // @04B5 msg.data[stack[-2]:stack[-2] + 0x20] // @04B5 stack[-2] // } 04B3 5B JUMPDEST 04B4 50 POP 04B5 35 CALLDATALOAD 04B6 60 PUSH1 0x01 04B8 60 PUSH1 0x01 04BA 60 PUSH1 0xa0 04BC 1B SHL 04BD 03 SUB 04BE 16 AND 04BF 61 PUSH2 0x14c6 04C2 56 *JUMP // Stack delta = -1 // Outputs[1] { @04BE stack[-2] = (0x01 << 0xa0) - 0x01 & msg.data[stack[-2]:stack[-2] + 0x20] } // Block ends with unconditional jump to 0x14c6 label_04C3: // Incoming jump from 0x01CD, if 0x3b1d21a2 == stack[-1] // Inputs[1] { @04C4 msg.value } 04C3 5B JUMPDEST 04C4 34 CALLVALUE 04C5 80 DUP1 04C6 15 ISZERO 04C7 61 PUSH2 0x04cf 04CA 57 *JUMPI // Stack delta = +1 // Outputs[1] { @04C4 stack[0] = msg.value } // Block ends with conditional jump to 0x04cf, if !msg.value label_04CB: // Incoming jump from 0x04CA, if not !msg.value // Inputs[1] { @04CE memory[0x00:0x00] } 04CB 60 PUSH1 0x00 04CD 80 DUP1 04CE FD *REVERT // Stack delta = +0 // Outputs[1] { @04CE revert(memory[0x00:0x00]); } // Block terminates label_04CF: // Incoming jump from 0x04CA, if !msg.value 04CF 5B JUMPDEST 04D0 50 POP 04D1 61 PUSH2 0x0374 04D4 61 PUSH2 0x1568 04D7 56 *JUMP // Stack delta = +0 // Outputs[1] { @04D1 stack[-1] = 0x0374 } // Block ends with unconditional jump to 0x1568 label_04D8: // Incoming jump from 0x01D8, if 0x47bd3718 == stack[-1] // Inputs[1] { @04D9 msg.value } 04D8 5B JUMPDEST 04D9 34 CALLVALUE 04DA 80 DUP1 04DB 15 ISZERO 04DC 61 PUSH2 0x04e4 04DF 57 *JUMPI // Stack delta = +1 // Outputs[1] { @04D9 stack[0] = msg.value } // Block ends with conditional jump to 0x04e4, if !msg.value label_04E0: // Incoming jump from 0x04DF, if not !msg.value // Inputs[1] { @04E3 memory[0x00:0x00] } 04E0 60 PUSH1 0x00 04E2 80 DUP1 04E3 FD *REVERT // Stack delta = +0 // Outputs[1] { @04E3 revert(memory[0x00:0x00]); } // Block terminates label_04E4: // Incoming jump from 0x04DF, if !msg.value 04E4 5B JUMPDEST 04E5 50 POP 04E6 61 PUSH2 0x0374 04E9 61 PUSH2 0x1572 04EC 56 *JUMP // Stack delta = +0 // Outputs[1] { @04E6 stack[-1] = 0x0374 } // Block ends with call to 0x1572, returns to 0x0374 label_04ED: // Incoming jump from 0x01E3, if 0x4dc3487d == stack[-1] // Inputs[1] { @04EE msg.value } 04ED 5B JUMPDEST 04EE 34 CALLVALUE 04EF 80 DUP1 04F0 15 ISZERO 04F1 61 PUSH2 0x04f9 04F4 57 *JUMPI // Stack delta = +1 // Outputs[1] { @04EE stack[0] = msg.value } // Block ends with conditional jump to 0x04f9, if !msg.value label_04F5: // Incoming jump from 0x04F4, if not !msg.value // Inputs[1] { @04F8 memory[0x00:0x00] } 04F5 60 PUSH1 0x00 04F7 80 DUP1 04F8 FD *REVERT // Stack delta = +0 // Outputs[1] { @04F8 revert(memory[0x00:0x00]); } // Block terminates label_04F9: // Incoming jump from 0x04F4, if !msg.value // Inputs[1] { @0501 msg.data.length } 04F9 5B JUMPDEST 04FA 50 POP 04FB 61 PUSH2 0x0374 04FE 60 PUSH1 0x04 0500 80 DUP1 0501 36 CALLDATASIZE 0502 03 SUB 0503 60 PUSH1 0x20 0505 81 DUP2 0506 10 LT 0507 15 ISZERO 0508 61 PUSH2 0x0510 050B 57 *JUMPI // Stack delta = +2 // Outputs[3] // { // @04FB stack[-1] = 0x0374 // @04FE stack[0] = 0x04 // @0502 stack[1] = msg.data.length - 0x04 // } // Block ends with conditional call to 0x0510, returns to 0x0374, if !(msg.data.length - 0x04 < 0x20) label_050C: // Incoming jump from 0x050B, if not !(msg.data.length - 0x04 < 0x20) // Inputs[1] { @050F memory[0x00:0x00] } 050C 60 PUSH1 0x00 050E 80 DUP1 050F FD *REVERT // Stack delta = +0 // Outputs[1] { @050F revert(memory[0x00:0x00]); } // Block terminates label_0510: // Incoming call from 0x050B, returns to 0x0374, if !(msg.data.length - 0x04 < 0x20) // Inputs[2] // { // @0512 msg.data[stack[-2]:stack[-2] + 0x20] // @0512 stack[-2] // } 0510 5B JUMPDEST 0511 50 POP 0512 35 CALLDATALOAD 0513 60 PUSH1 0x01 0515 60 PUSH1 0x01 0517 60 PUSH1 0xa0 0519 1B SHL 051A 03 SUB 051B 16 AND 051C 61 PUSH2 0x1578 051F 56 *JUMP // Stack delta = -1 // Outputs[1] { @051B stack[-2] = (0x01 << 0xa0) - 0x01 & msg.data[stack[-2]:stack[-2] + 0x20] } // Block ends with unconditional jump to 0x1578 label_0520: // Incoming jump from 0x01EE, if 0x4e4d9fea == stack[-1] 0520 5B JUMPDEST 0521 61 PUSH2 0x0528 0524 61 PUSH2 0x158a 0527 56 *JUMP // Stack delta = +1 // Outputs[1] { @0521 stack[0] = 0x0528 } // Block ends with unconditional jump to 0x158a 0528 5B JUMPDEST 0529 60 PUSH1 0x40 052B 80 DUP1 052C 51 MLOAD 052D 92 SWAP3 052E 83 DUP4 052F 52 MSTORE 0530 60 PUSH1 0x20 0532 83 DUP4 0533 01 ADD 0534 91 SWAP2 0535 90 SWAP1 0536 91 SWAP2 0537 52 MSTORE 0538 80 DUP1 0539 51 MLOAD 053A 91 SWAP2 053B 82 DUP3 053C 90 SWAP1 053D 03 SUB 053E 01 ADD 053F 90 SWAP1 0540 F3 *RETURN label_0541: // Incoming jump from 0x01F9, if 0x601a0bf1 == stack[-1] // Inputs[1] { @0542 msg.value } 0541 5B JUMPDEST 0542 34 CALLVALUE 0543 80 DUP1 0544 15 ISZERO 0545 61 PUSH2 0x054d 0548 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0542 stack[0] = msg.value } // Block ends with conditional jump to 0x054d, if !msg.value label_0549: // Incoming jump from 0x0548, if not !msg.value // Inputs[1] { @054C memory[0x00:0x00] } 0549 60 PUSH1 0x00 054B 80 DUP1 054C FD *REVERT // Stack delta = +0 // Outputs[1] { @054C revert(memory[0x00:0x00]); } // Block terminates label_054D: // Incoming jump from 0x0548, if !msg.value // Inputs[1] { @0555 msg.data.length } 054D 5B JUMPDEST 054E 50 POP 054F 61 PUSH2 0x0374 0552 60 PUSH1 0x04 0554 80 DUP1 0555 36 CALLDATASIZE 0556 03 SUB 0557 60 PUSH1 0x20 0559 81 DUP2 055A 10 LT 055B 15 ISZERO 055C 61 PUSH2 0x0564 055F 57 *JUMPI // Stack delta = +2 // Outputs[3] // { // @054F stack[-1] = 0x0374 // @0552 stack[0] = 0x04 // @0556 stack[1] = msg.data.length - 0x04 // } // Block ends with conditional jump to 0x0564, if !(msg.data.length - 0x04 < 0x20) label_0560: // Incoming jump from 0x055F, if not !(msg.data.length - 0x04 < 0x20) // Inputs[1] { @0563 memory[0x00:0x00] } 0560 60 PUSH1 0x00 0562 80 DUP1 0563 FD *REVERT // Stack delta = +0 // Outputs[1] { @0563 revert(memory[0x00:0x00]); } // Block terminates label_0564: // Incoming jump from 0x055F, if !(msg.data.length - 0x04 < 0x20) // Inputs[2] // { // @0566 msg.data[stack[-2]:stack[-2] + 0x20] // @0566 stack[-2] // } 0564 5B JUMPDEST 0565 50 POP 0566 35 CALLDATALOAD 0567 61 PUSH2 0x162d 056A 56 *JUMP // Stack delta = -1 // Outputs[1] { @0566 stack[-2] = msg.data[stack[-2]:stack[-2] + 0x20] } // Block ends with unconditional jump to 0x162d label_056B: // Incoming jump from 0x017B, if 0x6c540baf == stack[-1] // Inputs[1] { @056C msg.value } 056B 5B JUMPDEST 056C 34 CALLVALUE 056D 80 DUP1 056E 15 ISZERO 056F 61 PUSH2 0x0577 0572 57 *JUMPI // Stack delta = +1 // Outputs[1] { @056C stack[0] = msg.value } // Block ends with conditional jump to 0x0577, if !msg.value label_0573: // Incoming jump from 0x0572, if not !msg.value // Inputs[1] { @0576 memory[0x00:0x00] } 0573 60 PUSH1 0x00 0575 80 DUP1 0576 FD *REVERT // Stack delta = +0 // Outputs[1] { @0576 revert(memory[0x00:0x00]); } // Block terminates label_0577: // Incoming jump from 0x0572, if !msg.value 0577 5B JUMPDEST 0578 50 POP 0579 61 PUSH2 0x0374 057C 61 PUSH2 0x1688 057F 56 *JUMP // Stack delta = +0 // Outputs[1] { @0579 stack[-1] = 0x0374 } // Block ends with call to 0x1688, returns to 0x0374 label_0580: // Incoming jump from 0x0186, if 0x704b6c02 == stack[-1] // Inputs[1] { @0581 msg.value } 0580 5B JUMPDEST 0581 34 CALLVALUE 0582 80 DUP1 0583 15 ISZERO 0584 61 PUSH2 0x058c 0587 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0581 stack[0] = msg.value } // Block ends with conditional jump to 0x058c, if !msg.value label_0588: // Incoming jump from 0x0587, if not !msg.value // Inputs[1] { @058B memory[0x00:0x00] } 0588 60 PUSH1 0x00 058A 80 DUP1 058B FD *REVERT // Stack delta = +0 // Outputs[1] { @058B revert(memory[0x00:0x00]); } // Block terminates label_058C: // Incoming jump from 0x0587, if !msg.value // Inputs[1] { @0594 msg.data.length } 058C 5B JUMPDEST 058D 50 POP 058E 61 PUSH2 0x05b3 0591 60 PUSH1 0x04 0593 80 DUP1 0594 36 CALLDATASIZE 0595 03 SUB 0596 60 PUSH1 0x20 0598 81 DUP2 0599 10 LT 059A 15 ISZERO 059B 61 PUSH2 0x05a3 059E 57 *JUMPI // Stack delta = +2 // Outputs[3] // { // @058E stack[-1] = 0x05b3 // @0591 stack[0] = 0x04 // @0595 stack[1] = msg.data.length - 0x04 // } // Block ends with conditional call to 0x05a3, returns to 0x05B3, if !(msg.data.length - 0x04 < 0x20) label_059F: // Incoming jump from 0x059E, if not !(msg.data.length - 0x04 < 0x20) // Inputs[1] { @05A2 memory[0x00:0x00] } 059F 60 PUSH1 0x00 05A1 80 DUP1 05A2 FD *REVERT // Stack delta = +0 // Outputs[1] { @05A2 revert(memory[0x00:0x00]); } // Block terminates label_05A3: // Incoming call from 0x059E, returns to 0x05B3, if !(msg.data.length - 0x04 < 0x20) // Inputs[2] // { // @05A5 msg.data[stack[-2]:stack[-2] + 0x20] // @05A5 stack[-2] // } 05A3 5B JUMPDEST 05A4 50 POP 05A5 35 CALLDATALOAD 05A6 60 PUSH1 0x01 05A8 60 PUSH1 0x01 05AA 60 PUSH1 0xa0 05AC 1B SHL 05AD 03 SUB 05AE 16 AND 05AF 61 PUSH2 0x168e 05B2 56 *JUMP // Stack delta = -1 // Outputs[1] { @05AE stack[-2] = (0x01 << 0xa0) - 0x01 & msg.data[stack[-2]:stack[-2] + 0x20] } // Block ends with unconditional jump to 0x168e label_05B3: // Incoming return from call to 0x05A3 at 0x059E // Incoming return from call to 0x0763 at 0x075E 05B3 5B JUMPDEST 05B4 00 *STOP // Stack delta = +0 // Outputs[1] { @05B4 stop(); } // Block terminates label_05B5: // Incoming jump from 0x0191, if 0x70a08231 == stack[-1] // Inputs[1] { @05B6 msg.value } 05B5 5B JUMPDEST 05B6 34 CALLVALUE 05B7 80 DUP1 05B8 15 ISZERO 05B9 61 PUSH2 0x05c1 05BC 57 *JUMPI // Stack delta = +1 // Outputs[1] { @05B6 stack[0] = msg.value } // Block ends with conditional jump to 0x05c1, if !msg.value label_05BD: // Incoming jump from 0x05BC, if not !msg.value // Inputs[1] { @05C0 memory[0x00:0x00] } 05BD 60 PUSH1 0x00 05BF 80 DUP1 05C0 FD *REVERT // Stack delta = +0 // Outputs[1] { @05C0 revert(memory[0x00:0x00]); } // Block terminates label_05C1: // Incoming jump from 0x05BC, if !msg.value // Inputs[1] { @05C9 msg.data.length } 05C1 5B JUMPDEST 05C2 50 POP 05C3 61 PUSH2 0x0374 05C6 60 PUSH1 0x04 05C8 80 DUP1 05C9 36 CALLDATASIZE 05CA 03 SUB 05CB 60 PUSH1 0x20 05CD 81 DUP2 05CE 10 LT 05CF 15 ISZERO 05D0 61 PUSH2 0x05d8 05D3 57 *JUMPI // Stack delta = +2 // Outputs[3] // { // @05C3 stack[-1] = 0x0374 // @05C6 stack[0] = 0x04 // @05CA stack[1] = msg.data.length - 0x04 // } // Block ends with conditional call to 0x05d8, returns to 0x0374, if !(msg.data.length - 0x04 < 0x20) label_05D4: // Incoming jump from 0x05D3, if not !(msg.data.length - 0x04 < 0x20) // Inputs[1] { @05D7 memory[0x00:0x00] } 05D4 60 PUSH1 0x00 05D6 80 DUP1 05D7 FD *REVERT // Stack delta = +0 // Outputs[1] { @05D7 revert(memory[0x00:0x00]); } // Block terminates label_05D8: // Incoming call from 0x05D3, returns to 0x0374, if !(msg.data.length - 0x04 < 0x20) // Inputs[2] // { // @05DA msg.data[stack[-2]:stack[-2] + 0x20] // @05DA stack[-2] // } 05D8 5B JUMPDEST 05D9 50 POP 05DA 35 CALLDATALOAD 05DB 60 PUSH1 0x01 05DD 60 PUSH1 0x01 05DF 60 PUSH1 0xa0 05E1 1B SHL 05E2 03 SUB 05E3 16 AND 05E4 61 PUSH2 0x1741 05E7 56 *JUMP // Stack delta = -1 // Outputs[1] { @05E3 stack[-2] = (0x01 << 0xa0) - 0x01 & msg.data[stack[-2]:stack[-2] + 0x20] } // Block ends with unconditional jump to 0x1741 label_05E8: // Incoming jump from 0x019C, if 0x73acee98 == stack[-1] // Inputs[1] { @05E9 msg.value } 05E8 5B JUMPDEST 05E9 34 CALLVALUE 05EA 80 DUP1 05EB 15 ISZERO 05EC 61 PUSH2 0x05f4 05EF 57 *JUMPI // Stack delta = +1 // Outputs[1] { @05E9 stack[0] = msg.value } // Block ends with conditional jump to 0x05f4, if !msg.value label_05F0: // Incoming jump from 0x05EF, if not !msg.value // Inputs[1] { @05F3 memory[0x00:0x00] } 05F0 60 PUSH1 0x00 05F2 80 DUP1 05F3 FD *REVERT // Stack delta = +0 // Outputs[1] { @05F3 revert(memory[0x00:0x00]); } // Block terminates label_05F4: // Incoming jump from 0x05EF, if !msg.value 05F4 5B JUMPDEST 05F5 50 POP 05F6 61 PUSH2 0x0374 05F9 61 PUSH2 0x175c 05FC 56 *JUMP // Stack delta = +0 // Outputs[1] { @05F6 stack[-1] = 0x0374 } // Block ends with call to 0x175c, returns to 0x0374 label_05FD: // Incoming jump from 0x01A7, if 0x852a12e3 == stack[-1] // Inputs[1] { @05FE msg.value } 05FD 5B JUMPDEST 05FE 34 CALLVALUE 05FF 80 DUP1 0600 15 ISZERO 0601 61 PUSH2 0x0609 0604 57 *JUMPI // Stack delta = +1 // Outputs[1] { @05FE stack[0] = msg.value } // Block ends with conditional jump to 0x0609, if !msg.value label_0605: // Incoming jump from 0x0604, if not !msg.value // Inputs[1] { @0608 memory[0x00:0x00] } 0605 60 PUSH1 0x00 0607 80 DUP1 0608 FD *REVERT // Stack delta = +0 // Outputs[1] { @0608 revert(memory[0x00:0x00]); } // Block terminates label_0609: // Incoming jump from 0x0604, if !msg.value // Inputs[1] { @0611 msg.data.length } 0609 5B JUMPDEST 060A 50 POP 060B 61 PUSH2 0x0374 060E 60 PUSH1 0x04 0610 80 DUP1 0611 36 CALLDATASIZE 0612 03 SUB 0613 60 PUSH1 0x20 0615 81 DUP2 0616 10 LT 0617 15 ISZERO 0618 61 PUSH2 0x0620 061B 57 *JUMPI // Stack delta = +2 // Outputs[3] // { // @060B stack[-1] = 0x0374 // @060E stack[0] = 0x04 // @0612 stack[1] = msg.data.length - 0x04 // } // Block ends with conditional jump to 0x0620, if !(msg.data.length - 0x04 < 0x20) label_061C: // Incoming jump from 0x061B, if not !(msg.data.length - 0x04 < 0x20) // Inputs[1] { @061F memory[0x00:0x00] } 061C 60 PUSH1 0x00 061E 80 DUP1 061F FD *REVERT // Stack delta = +0 // Outputs[1] { @061F revert(memory[0x00:0x00]); } // Block terminates label_0620: // Incoming jump from 0x061B, if !(msg.data.length - 0x04 < 0x20) // Inputs[2] // { // @0622 msg.data[stack[-2]:stack[-2] + 0x20] // @0622 stack[-2] // } 0620 5B JUMPDEST 0621 50 POP 0622 35 CALLDATALOAD 0623 61 PUSH2 0x180f 0626 56 *JUMP // Stack delta = -1 // Outputs[1] { @0622 stack[-2] = msg.data[stack[-2]:stack[-2] + 0x20] } // Block ends with unconditional jump to 0x180f label_0627: // Incoming jump from 0x01B2, if 0x8f840ddd == stack[-1] // Inputs[1] { @0628 msg.value } 0627 5B JUMPDEST 0628 34 CALLVALUE 0629 80 DUP1 062A 15 ISZERO 062B 61 PUSH2 0x0633 062E 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0628 stack[0] = msg.value } // Block ends with conditional jump to 0x0633, if !msg.value label_062F: // Incoming jump from 0x062E, if not !msg.value // Inputs[1] { @0632 memory[0x00:0x00] } 062F 60 PUSH1 0x00 0631 80 DUP1 0632 FD *REVERT // Stack delta = +0 // Outputs[1] { @0632 revert(memory[0x00:0x00]); } // Block terminates label_0633: // Incoming jump from 0x062E, if !msg.value 0633 5B JUMPDEST 0634 50 POP 0635 61 PUSH2 0x0374 0638 61 PUSH2 0x18b0 063B 56 *JUMP // Stack delta = +0 // Outputs[1] { @0635 stack[-1] = 0x0374 } // Block ends with call to 0x18b0, returns to 0x0374 label_063C: // Incoming jump from 0x011E, if 0x92eefe9b == stack[-1] // Inputs[1] { @063D msg.value } 063C 5B JUMPDEST 063D 34 CALLVALUE 063E 80 DUP1 063F 15 ISZERO 0640 61 PUSH2 0x0648 0643 57 *JUMPI // Stack delta = +1 // Outputs[1] { @063D stack[0] = msg.value } // Block ends with conditional jump to 0x0648, if !msg.value label_0644: // Incoming jump from 0x0643, if not !msg.value // Inputs[1] { @0647 memory[0x00:0x00] } 0644 60 PUSH1 0x00 0646 80 DUP1 0647 FD *REVERT // Stack delta = +0 // Outputs[1] { @0647 revert(memory[0x00:0x00]); } // Block terminates label_0648: // Incoming jump from 0x0643, if !msg.value // Inputs[1] { @0650 msg.data.length } 0648 5B JUMPDEST 0649 50 POP 064A 61 PUSH2 0x0374 064D 60 PUSH1 0x04 064F 80 DUP1 0650 36 CALLDATASIZE 0651 03 SUB 0652 60 PUSH1 0x20 0654 81 DUP2 0655 10 LT 0656 15 ISZERO 0657 61 PUSH2 0x065f 065A 57 *JUMPI // Stack delta = +2 // Outputs[3] // { // @064A stack[-1] = 0x0374 // @064D stack[0] = 0x04 // @0651 stack[1] = msg.data.length - 0x04 // } // Block ends with conditional call to 0x065f, returns to 0x0374, if !(msg.data.length - 0x04 < 0x20) label_065B: // Incoming jump from 0x065A, if not !(msg.data.length - 0x04 < 0x20) // Inputs[1] { @065E memory[0x00:0x00] } 065B 60 PUSH1 0x00 065D 80 DUP1 065E FD *REVERT // Stack delta = +0 // Outputs[1] { @065E revert(memory[0x00:0x00]); } // Block terminates label_065F: // Incoming call from 0x065A, returns to 0x0374, if !(msg.data.length - 0x04 < 0x20) // Inputs[2] // { // @0661 msg.data[stack[-2]:stack[-2] + 0x20] // @0661 stack[-2] // } 065F 5B JUMPDEST 0660 50 POP 0661 35 CALLDATALOAD 0662 60 PUSH1 0x01 0664 60 PUSH1 0x01 0666 60 PUSH1 0xa0 0668 1B SHL 0669 03 SUB 066A 16 AND 066B 61 PUSH2 0x18b6 066E 56 *JUMP // Stack delta = -1 // Outputs[1] { @066A stack[-2] = (0x01 << 0xa0) - 0x01 & msg.data[stack[-2]:stack[-2] + 0x20] } // Block ends with unconditional jump to 0x18b6 label_066F: // Incoming jump from 0x0129, if 0x954f92a3 == stack[-1] // Inputs[1] { @0670 msg.value } 066F 5B JUMPDEST 0670 34 CALLVALUE 0671 80 DUP1 0672 15 ISZERO 0673 61 PUSH2 0x067b 0676 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0670 stack[0] = msg.value } // Block ends with conditional jump to 0x067b, if !msg.value label_0677: // Incoming jump from 0x0676, if not !msg.value // Inputs[1] { @067A memory[0x00:0x00] } 0677 60 PUSH1 0x00 0679 80 DUP1 067A FD *REVERT // Stack delta = +0 // Outputs[1] { @067A revert(memory[0x00:0x00]); } // Block terminates label_067B: // Incoming jump from 0x0676, if !msg.value // Inputs[1] { @0683 msg.data.length } 067B 5B JUMPDEST 067C 50 POP 067D 61 PUSH2 0x0374 0680 60 PUSH1 0x04 0682 80 DUP1 0683 36 CALLDATASIZE 0684 03 SUB 0685 60 PUSH1 0x20 0687 81 DUP2 0688 10 LT 0689 15 ISZERO 068A 61 PUSH2 0x0692 068D 57 *JUMPI // Stack delta = +2 // Outputs[3] // { // @067D stack[-1] = 0x0374 // @0680 stack[0] = 0x04 // @0684 stack[1] = msg.data.length - 0x04 // } // Block ends with conditional call to 0x0692, returns to 0x0374, if !(msg.data.length - 0x04 < 0x20) label_068E: // Incoming jump from 0x068D, if not !(msg.data.length - 0x04 < 0x20) // Inputs[1] { @0691 memory[0x00:0x00] } 068E 60 PUSH1 0x00 0690 80 DUP1 0691 FD *REVERT // Stack delta = +0 // Outputs[1] { @0691 revert(memory[0x00:0x00]); } // Block terminates label_0692: // Incoming call from 0x068D, returns to 0x0374, if !(msg.data.length - 0x04 < 0x20) // Inputs[2] // { // @0694 stack[-2] // @0694 msg.data[stack[-2]:stack[-2] + 0x20] // } 0692 5B JUMPDEST 0693 50 POP 0694 35 CALLDATALOAD 0695 60 PUSH1 0x01 0697 60 PUSH1 0x01 0699 60 PUSH1 0xa0 069B 1B SHL 069C 03 SUB 069D 16 AND 069E 61 PUSH2 0x196c 06A1 56 *JUMP // Stack delta = -1 // Outputs[1] { @069D stack[-2] = (0x01 << 0xa0) - 0x01 & msg.data[stack[-2]:stack[-2] + 0x20] } // Block ends with unconditional jump to 0x196c label_06A2: // Incoming jump from 0x0134, if 0x95d89b41 == stack[-1] // Inputs[1] { @06A3 msg.value } 06A2 5B JUMPDEST 06A3 34 CALLVALUE 06A4 80 DUP1 06A5 15 ISZERO 06A6 61 PUSH2 0x06ae 06A9 57 *JUMPI // Stack delta = +1 // Outputs[1] { @06A3 stack[0] = msg.value } // Block ends with conditional jump to 0x06ae, if !msg.value label_06AA: // Incoming jump from 0x06A9, if not !msg.value // Inputs[1] { @06AD memory[0x00:0x00] } 06AA 60 PUSH1 0x00 06AC 80 DUP1 06AD FD *REVERT // Stack delta = +0 // Outputs[1] { @06AD revert(memory[0x00:0x00]); } // Block terminates label_06AE: // Incoming jump from 0x06A9, if !msg.value 06AE 5B JUMPDEST 06AF 50 POP 06B0 61 PUSH2 0x02aa 06B3 61 PUSH2 0x197e 06B6 56 *JUMP // Stack delta = +0 // Outputs[1] { @06B0 stack[-1] = 0x02aa } // Block ends with call to 0x197e, returns to 0x02AA label_06B7: // Incoming jump from 0x013F, if 0x95dd9193 == stack[-1] // Inputs[1] { @06B8 msg.value } 06B7 5B JUMPDEST 06B8 34 CALLVALUE 06B9 80 DUP1 06BA 15 ISZERO 06BB 61 PUSH2 0x06c3 06BE 57 *JUMPI // Stack delta = +1 // Outputs[1] { @06B8 stack[0] = msg.value } // Block ends with conditional jump to 0x06c3, if !msg.value label_06BF: // Incoming jump from 0x06BE, if not !msg.value // Inputs[1] { @06C2 memory[0x00:0x00] } 06BF 60 PUSH1 0x00 06C1 80 DUP1 06C2 FD *REVERT // Stack delta = +0 // Outputs[1] { @06C2 revert(memory[0x00:0x00]); } // Block terminates label_06C3: // Incoming jump from 0x06BE, if !msg.value // Inputs[1] { @06CB msg.data.length } 06C3 5B JUMPDEST 06C4 50 POP 06C5 61 PUSH2 0x0374 06C8 60 PUSH1 0x04 06CA 80 DUP1 06CB 36 CALLDATASIZE 06CC 03 SUB 06CD 60 PUSH1 0x20 06CF 81 DUP2 06D0 10 LT 06D1 15 ISZERO 06D2 61 PUSH2 0x06da 06D5 57 *JUMPI // Stack delta = +2 // Outputs[3] // { // @06C5 stack[-1] = 0x0374 // @06C8 stack[0] = 0x04 // @06CC stack[1] = msg.data.length - 0x04 // } // Block ends with conditional call to 0x06da, returns to 0x0374, if !(msg.data.length - 0x04 < 0x20) label_06D6: // Incoming jump from 0x06D5, if not !(msg.data.length - 0x04 < 0x20) // Inputs[1] { @06D9 memory[0x00:0x00] } 06D6 60 PUSH1 0x00 06D8 80 DUP1 06D9 FD *REVERT // Stack delta = +0 // Outputs[1] { @06D9 revert(memory[0x00:0x00]); } // Block terminates label_06DA: // Incoming call from 0x06D5, returns to 0x0374, if !(msg.data.length - 0x04 < 0x20) // Inputs[2] // { // @06DC msg.data[stack[-2]:stack[-2] + 0x20] // @06DC stack[-2] // } 06DA 5B JUMPDEST 06DB 50 POP 06DC 35 CALLDATALOAD 06DD 60 PUSH1 0x01 06DF 60 PUSH1 0x01 06E1 60 PUSH1 0xa0 06E3 1B SHL 06E4 03 SUB 06E5 16 AND 06E6 61 PUSH2 0x19d9 06E9 56 *JUMP // Stack delta = -1 // Outputs[1] { @06E5 stack[-2] = (0x01 << 0xa0) - 0x01 & msg.data[stack[-2]:stack[-2] + 0x20] } // Block ends with unconditional jump to 0x19d9 label_06EA: // Incoming jump from 0x014A, if 0xa6afed95 == stack[-1] // Inputs[1] { @06EB msg.value } 06EA 5B JUMPDEST 06EB 34 CALLVALUE 06EC 80 DUP1 06ED 15 ISZERO 06EE 61 PUSH2 0x06f6 06F1 57 *JUMPI // Stack delta = +1 // Outputs[1] { @06EB stack[0] = msg.value } // Block ends with conditional jump to 0x06f6, if !msg.value label_06F2: // Incoming jump from 0x06F1, if not !msg.value // Inputs[1] { @06F5 memory[0x00:0x00] } 06F2 60 PUSH1 0x00 06F4 80 DUP1 06F5 FD *REVERT // Stack delta = +0 // Outputs[1] { @06F5 revert(memory[0x00:0x00]); } // Block terminates label_06F6: // Incoming jump from 0x06F1, if !msg.value 06F6 5B JUMPDEST 06F7 50 POP 06F8 61 PUSH2 0x0374 06FB 61 PUSH2 0x1a38 06FE 56 *JUMP // Stack delta = +0 // Outputs[1] { @06F8 stack[-1] = 0x0374 } // Block ends with call to 0x1a38, returns to 0x0374 label_06FF: // Incoming jump from 0x0155, if 0xa9059cbb == stack[-1] // Inputs[1] { @0700 msg.value } 06FF 5B JUMPDEST 0700 34 CALLVALUE 0701 80 DUP1 0702 15 ISZERO 0703 61 PUSH2 0x070b 0706 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0700 stack[0] = msg.value } // Block ends with conditional jump to 0x070b, if !msg.value label_0707: // Incoming jump from 0x0706, if not !msg.value // Inputs[1] { @070A memory[0x00:0x00] } 0707 60 PUSH1 0x00 0709 80 DUP1 070A FD *REVERT // Stack delta = +0 // Outputs[1] { @070A revert(memory[0x00:0x00]); } // Block terminates label_070B: // Incoming jump from 0x0706, if !msg.value // Inputs[1] { @0713 msg.data.length } 070B 5B JUMPDEST 070C 50 POP 070D 61 PUSH2 0x0358 0710 60 PUSH1 0x04 0712 80 DUP1 0713 36 CALLDATASIZE 0714 03 SUB 0715 60 PUSH1 0x40 0717 81 DUP2 0718 10 LT 0719 15 ISZERO 071A 61 PUSH2 0x0722 071D 57 *JUMPI // Stack delta = +2 // Outputs[3] // { // @070D stack[-1] = 0x0358 // @0710 stack[0] = 0x04 // @0714 stack[1] = msg.data.length - 0x04 // } // Block ends with conditional call to 0x0722, returns to 0x0358, if !(msg.data.length - 0x04 < 0x40) label_071E: // Incoming jump from 0x071D, if not !(msg.data.length - 0x04 < 0x40) // Inputs[1] { @0721 memory[0x00:0x00] } 071E 60 PUSH1 0x00 0720 80 DUP1 0721 FD *REVERT // Stack delta = +0 // Outputs[1] { @0721 revert(memory[0x00:0x00]); } // Block terminates label_0722: // Incoming call from 0x071D, returns to 0x0358, if !(msg.data.length - 0x04 < 0x40) // Inputs[3] // { // @072C stack[-2] // @072D msg.data[stack[-2]:stack[-2] + 0x20] // @0733 msg.data[0x20 + stack[-2]:0x20 + stack[-2] + 0x20] // } 0722 5B JUMPDEST 0723 50 POP 0724 60 PUSH1 0x01 0726 60 PUSH1 0x01 0728 60 PUSH1 0xa0 072A 1B SHL 072B 03 SUB 072C 81 DUP2 072D 35 CALLDATALOAD 072E 16 AND 072F 90 SWAP1 0730 60 PUSH1 0x20 0732 01 ADD 0733 35 CALLDATALOAD 0734 61 PUSH2 0x1dc5 0737 56 *JUMP // Stack delta = +0 // Outputs[2] // { // @072F stack[-2] = msg.data[stack[-2]:stack[-2] + 0x20] & (0x01 << 0xa0) - 0x01 // @0733 stack[-1] = msg.data[0x20 + stack[-2]:0x20 + stack[-2] + 0x20] // } // Block ends with unconditional jump to 0x1dc5 label_0738: // Incoming jump from 0x00D7, if 0xaa5af0fd == stack[-1] // Inputs[1] { @0739 msg.value } 0738 5B JUMPDEST 0739 34 CALLVALUE 073A 80 DUP1 073B 15 ISZERO 073C 61 PUSH2 0x0744 073F 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0739 stack[0] = msg.value } // Block ends with conditional jump to 0x0744, if !msg.value label_0740: // Incoming jump from 0x073F, if not !msg.value // Inputs[1] { @0743 memory[0x00:0x00] } 0740 60 PUSH1 0x00 0742 80 DUP1 0743 FD *REVERT // Stack delta = +0 // Outputs[1] { @0743 revert(memory[0x00:0x00]); } // Block terminates label_0744: // Incoming jump from 0x073F, if !msg.value 0744 5B JUMPDEST 0745 50 POP 0746 61 PUSH2 0x0374 0749 61 PUSH2 0x1e41 074C 56 *JUMP // Stack delta = +0 // Outputs[1] { @0746 stack[-1] = 0x0374 } // Block ends with call to 0x1e41, returns to 0x0374 label_074D: // Incoming jump from 0x00E2, if 0xaae40a2a == stack[-1] // Inputs[1] { @0754 msg.data.length } 074D 5B JUMPDEST 074E 61 PUSH2 0x05b3 0751 60 PUSH1 0x04 0753 80 DUP1 0754 36 CALLDATASIZE 0755 03 SUB 0756 60 PUSH1 0x40 0758 81 DUP2 0759 10 LT 075A 15 ISZERO 075B 61 PUSH2 0x0763 075E 57 *JUMPI // Stack delta = +3 // Outputs[3] // { // @074E stack[0] = 0x05b3 // @0751 stack[1] = 0x04 // @0755 stack[2] = msg.data.length - 0x04 // } // Block ends with conditional call to 0x0763, returns to 0x05B3, if !(msg.data.length - 0x04 < 0x40) label_075F: // Incoming jump from 0x075E, if not !(msg.data.length - 0x04 < 0x40) // Inputs[1] { @0762 memory[0x00:0x00] } 075F 60 PUSH1 0x00 0761 80 DUP1 0762 FD *REVERT // Stack delta = +0 // Outputs[1] { @0762 revert(memory[0x00:0x00]); } // Block terminates label_0763: // Incoming call from 0x075E, returns to 0x05B3, if !(msg.data.length - 0x04 < 0x40) // Inputs[3] // { // @076D stack[-2] // @076E msg.data[stack[-2]:stack[-2] + 0x20] // @0775 msg.data[0x20 + stack[-2]:0x20 + stack[-2] + 0x20] // } 0763 5B JUMPDEST 0764 50 POP 0765 60 PUSH1 0x01 0767 60 PUSH1 0x01 0769 60 PUSH1 0xa0 076B 1B SHL 076C 03 SUB 076D 81 DUP2 076E 35 CALLDATALOAD 076F 81 DUP2 0770 16 AND 0771 91 SWAP2 0772 60 PUSH1 0x20 0774 01 ADD 0775 35 CALLDATALOAD 0776 16 AND 0777 61 PUSH2 0x1e47 077A 56 *JUMP // Stack delta = +0 // Outputs[2] // { // @0771 stack[-2] = (0x01 << 0xa0) - 0x01 & msg.data[stack[-2]:stack[-2] + 0x20] // @0776 stack[-1] = msg.data[0x20 + stack[-2]:0x20 + stack[-2] + 0x20] & (0x01 << 0xa0) - 0x01 // } // Block ends with unconditional jump to 0x1e47 label_077B: // Incoming jump from 0x00ED, if 0xae9d70b0 == stack[-1] // Inputs[1] { @077C msg.value } 077B 5B JUMPDEST 077C 34 CALLVALUE 077D 80 DUP1 077E 15 ISZERO 077F 61 PUSH2 0x0787 0782 57 *JUMPI // Stack delta = +1 // Outputs[1] { @077C stack[0] = msg.value } // Block ends with conditional jump to 0x0787, if !msg.value label_0783: // Incoming jump from 0x0782, if not !msg.value // Inputs[1] { @0786 memory[0x00:0x00] } 0783 60 PUSH1 0x00 0785 80 DUP1 0786 FD *REVERT // Stack delta = +0 // Outputs[1] { @0786 revert(memory[0x00:0x00]); } // Block terminates label_0787: // Incoming jump from 0x0782, if !msg.value 0787 5B JUMPDEST 0788 50 POP 0789 61 PUSH2 0x0374 078C 61 PUSH2 0x1e84 078F 56 *JUMP // Stack delta = +0 // Outputs[1] { @0789 stack[-1] = 0x0374 } // Block ends with call to 0x1e84, returns to 0x0374 label_0790: // Incoming jump from 0x00F8, if 0xb2a02ff1 == stack[-1] // Inputs[1] { @0791 msg.value } 0790 5B JUMPDEST 0791 34 CALLVALUE 0792 80 DUP1 0793 15 ISZERO 0794 61 PUSH2 0x079c 0797 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0791 stack[0] = msg.value } // Block ends with conditional jump to 0x079c, if !msg.value label_0798: // Incoming jump from 0x0797, if not !msg.value // Inputs[1] { @079B memory[0x00:0x00] } 0798 60 PUSH1 0x00 079A 80 DUP1 079B FD *REVERT // Stack delta = +0 // Outputs[1] { @079B revert(memory[0x00:0x00]); } // Block terminates label_079C: // Incoming jump from 0x0797, if !msg.value // Inputs[1] { @07A4 msg.data.length } 079C 5B JUMPDEST 079D 50 POP 079E 61 PUSH2 0x0374 07A1 60 PUSH1 0x04 07A3 80 DUP1 07A4 36 CALLDATASIZE 07A5 03 SUB 07A6 60 PUSH1 0x60 07A8 81 DUP2 07A9 10 LT 07AA 15 ISZERO 07AB 61 PUSH2 0x07b3 07AE 57 *JUMPI // Stack delta = +2 // Outputs[3] // { // @079E stack[-1] = 0x0374 // @07A1 stack[0] = 0x04 // @07A5 stack[1] = msg.data.length - 0x04 // } // Block ends with conditional call to 0x07b3, returns to 0x0374, if !(msg.data.length - 0x04 < 0x60) label_07AF: // Incoming jump from 0x07AE, if not !(msg.data.length - 0x04 < 0x60) // Inputs[1] { @07B2 memory[0x00:0x00] } 07AF 60 PUSH1 0x00 07B1 80 DUP1 07B2 FD *REVERT // Stack delta = +0 // Outputs[1] { @07B2 revert(memory[0x00:0x00]); } // Block terminates label_07B3: // Incoming call from 0x07AE, returns to 0x0374, if !(msg.data.length - 0x04 < 0x60) // Inputs[4] // { // @07BD stack[-2] // @07BE msg.data[stack[-2]:stack[-2] + 0x20] // @07C6 msg.data[stack[-2] + 0x20:stack[-2] + 0x20 + 0x20] // @07CE msg.data[0x40 + stack[-2]:0x40 + stack[-2] + 0x20] // } 07B3 5B JUMPDEST 07B4 50 POP 07B5 60 PUSH1 0x01 07B7 60 PUSH1 0x01 07B9 60 PUSH1 0xa0 07BB 1B SHL 07BC 03 SUB 07BD 81 DUP2 07BE 35 CALLDATALOAD 07BF 81 DUP2 07C0 16 AND 07C1 91 SWAP2 07C2 60 PUSH1 0x20 07C4 81 DUP2 07C5 01 ADD 07C6 35 CALLDATALOAD 07C7 90 SWAP1 07C8 91 SWAP2 07C9 16 AND 07CA 90 SWAP1 07CB 60 PUSH1 0x40 07CD 01 ADD 07CE 35 CALLDATALOAD 07CF 61 PUSH2 0x1f23 07D2 56 *JUMP // Stack delta = +1 // Outputs[3] // { // @07C1 stack[-2] = (0x01 << 0xa0) - 0x01 & msg.data[stack[-2]:stack[-2] + 0x20] // @07CA stack[-1] = (0x01 << 0xa0) - 0x01 & msg.data[stack[-2] + 0x20:stack[-2] + 0x20 + 0x20] // @07CE stack[0] = msg.data[0x40 + stack[-2]:0x40 + stack[-2] + 0x20] // } // Block ends with unconditional jump to 0x1f23 label_07D3: // Incoming jump from 0x0103, if 0xbd6d894d == stack[-1] // Inputs[1] { @07D4 msg.value } 07D3 5B JUMPDEST 07D4 34 CALLVALUE 07D5 80 DUP1 07D6 15 ISZERO 07D7 61 PUSH2 0x07df 07DA 57 *JUMPI // Stack delta = +1 // Outputs[1] { @07D4 stack[0] = msg.value } // Block ends with conditional jump to 0x07df, if !msg.value label_07DB: // Incoming jump from 0x07DA, if not !msg.value // Inputs[1] { @07DE memory[0x00:0x00] } 07DB 60 PUSH1 0x00 07DD 80 DUP1 07DE FD *REVERT // Stack delta = +0 // Outputs[1] { @07DE revert(memory[0x00:0x00]); } // Block terminates label_07DF: // Incoming jump from 0x07DA, if !msg.value 07DF 5B JUMPDEST 07E0 50 POP 07E1 61 PUSH2 0x0374 07E4 61 PUSH2 0x1f9f 07E7 56 *JUMP // Stack delta = +0 // Outputs[1] { @07E1 stack[-1] = 0x0374 } // Block ends with call to 0x1f9f, returns to 0x0374 label_07E8: // Incoming jump from 0x010E, if 0xc37f68e2 == stack[-1] // Inputs[1] { @07E9 msg.value } 07E8 5B JUMPDEST 07E9 34 CALLVALUE 07EA 80 DUP1 07EB 15 ISZERO 07EC 61 PUSH2 0x07f4 07EF 57 *JUMPI // Stack delta = +1 // Outputs[1] { @07E9 stack[0] = msg.value } // Block ends with conditional jump to 0x07f4, if !msg.value label_07F0: // Incoming jump from 0x07EF, if not !msg.value // Inputs[1] { @07F3 memory[0x00:0x00] } 07F0 60 PUSH1 0x00 07F2 80 DUP1 07F3 FD *REVERT // Stack delta = +0 // Outputs[1] { @07F3 revert(memory[0x00:0x00]); } // Block terminates label_07F4: // Incoming jump from 0x07EF, if !msg.value // Inputs[1] { @07FC msg.data.length } 07F4 5B JUMPDEST 07F5 50 POP 07F6 61 PUSH2 0x081b 07F9 60 PUSH1 0x04 07FB 80 DUP1 07FC 36 CALLDATASIZE 07FD 03 SUB 07FE 60 PUSH1 0x20 0800 81 DUP2 0801 10 LT 0802 15 ISZERO 0803 61 PUSH2 0x080b 0806 57 *JUMPI // Stack delta = +2 // Outputs[3] // { // @07F6 stack[-1] = 0x081b // @07F9 stack[0] = 0x04 // @07FD stack[1] = msg.data.length - 0x04 // } // Block ends with conditional call to 0x080b, returns to 0x081B, if !(msg.data.length - 0x04 < 0x20) label_0807: // Incoming jump from 0x0806, if not !(msg.data.length - 0x04 < 0x20) // Inputs[1] { @080A memory[0x00:0x00] } 0807 60 PUSH1 0x00 0809 80 DUP1 080A FD *REVERT // Stack delta = +0 // Outputs[1] { @080A revert(memory[0x00:0x00]); } // Block terminates label_080B: // Incoming call from 0x0806, returns to 0x081B, if !(msg.data.length - 0x04 < 0x20) // Inputs[2] // { // @080D stack[-2] // @080D msg.data[stack[-2]:stack[-2] + 0x20] // } 080B 5B JUMPDEST 080C 50 POP 080D 35 CALLDATALOAD 080E 60 PUSH1 0x01 0810 60 PUSH1 0x01 0812 60 PUSH1 0xa0 0814 1B SHL 0815 03 SUB 0816 16 AND 0817 61 PUSH2 0x2058 081A 56 *JUMP // Stack delta = -1 // Outputs[1] { @0816 stack[-2] = (0x01 << 0xa0) - 0x01 & msg.data[stack[-2]:stack[-2] + 0x20] } // Block ends with unconditional jump to 0x2058 label_081B: // Incoming return from call to 0x080B at 0x0806 // Inputs[7] // { // @081F memory[0x40:0x60] // @0820 stack[-4] // @0827 stack[-3] // @082E stack[-2] // @082F stack[-1] // @0837 memory[0x40:0x60] // @0840 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x80 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 081B 5B JUMPDEST 081C 60 PUSH1 0x40 081E 80 DUP1 081F 51 MLOAD 0820 94 SWAP5 0821 85 DUP6 0822 52 MSTORE 0823 60 PUSH1 0x20 0825 85 DUP6 0826 01 ADD 0827 93 SWAP4 0828 90 SWAP1 0829 93 SWAP4 082A 52 MSTORE 082B 83 DUP4 082C 83 DUP4 082D 01 ADD 082E 91 SWAP2 082F 90 SWAP1 0830 91 SWAP2 0831 52 MSTORE 0832 60 PUSH1 0x60 0834 83 DUP4 0835 01 ADD 0836 52 MSTORE 0837 51 MLOAD 0838 90 SWAP1 0839 81 DUP2 083A 90 SWAP1 083B 03 SUB 083C 60 PUSH1 0x80 083E 01 ADD 083F 90 SWAP1 0840 F3 *RETURN // Stack delta = -4 // Outputs[5] // { // @0822 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = stack[-4] // @082A memory[memory[0x40:0x60] + 0x20:memory[0x40:0x60] + 0x20 + 0x20] = stack[-3] // @0831 memory[0x40 + memory[0x40:0x60]:0x40 + memory[0x40:0x60] + 0x20] = stack[-2] // @0836 memory[memory[0x40:0x60] + 0x60:memory[0x40:0x60] + 0x60 + 0x20] = stack[-1] // @0840 return memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x80 + (memory[0x40:0x60] - memory[0x40:0x60])]; // } // Block terminates label_0841: // Incoming jump from 0x0085, if 0xc5ebeaec == stack[-1] // Inputs[1] { @0842 msg.value } 0841 5B JUMPDEST 0842 34 CALLVALUE 0843 80 DUP1 0844 15 ISZERO 0845 61 PUSH2 0x084d 0848 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0842 stack[0] = msg.value } // Block ends with conditional jump to 0x084d, if !msg.value label_0849: // Incoming jump from 0x0848, if not !msg.value // Inputs[1] { @084C memory[0x00:0x00] } 0849 60 PUSH1 0x00 084B 80 DUP1 084C FD *REVERT // Stack delta = +0 // Outputs[1] { @084C revert(memory[0x00:0x00]); } // Block terminates label_084D: // Incoming jump from 0x0848, if !msg.value // Inputs[1] { @0855 msg.data.length } 084D 5B JUMPDEST 084E 50 POP 084F 61 PUSH2 0x0374 0852 60 PUSH1 0x04 0854 80 DUP1 0855 36 CALLDATASIZE 0856 03 SUB 0857 60 PUSH1 0x20 0859 81 DUP2 085A 10 LT 085B 15 ISZERO 085C 61 PUSH2 0x0864 085F 57 *JUMPI // Stack delta = +2 // Outputs[3] // { // @084F stack[-1] = 0x0374 // @0852 stack[0] = 0x04 // @0856 stack[1] = msg.data.length - 0x04 // } // Block ends with conditional jump to 0x0864, if !(msg.data.length - 0x04 < 0x20) label_0860: // Incoming jump from 0x085F, if not !(msg.data.length - 0x04 < 0x20) // Inputs[1] { @0863 memory[0x00:0x00] } 0860 60 PUSH1 0x00 0862 80 DUP1 0863 FD *REVERT // Stack delta = +0 // Outputs[1] { @0863 revert(memory[0x00:0x00]); } // Block terminates label_0864: // Incoming jump from 0x085F, if !(msg.data.length - 0x04 < 0x20) // Inputs[2] // { // @0866 msg.data[stack[-2]:stack[-2] + 0x20] // @0866 stack[-2] // } 0864 5B JUMPDEST 0865 50 POP 0866 35 CALLDATALOAD 0867 61 PUSH2 0x20ed 086A 56 *JUMP // Stack delta = -1 // Outputs[1] { @0866 stack[-2] = msg.data[stack[-2]:stack[-2] + 0x20] } // Block ends with unconditional jump to 0x20ed label_086B: // Incoming jump from 0x0090, if 0xc7b7cc13 == stack[-1] // Inputs[1] { @086C msg.value } 086B 5B JUMPDEST 086C 34 CALLVALUE 086D 80 DUP1 086E 15 ISZERO 086F 61 PUSH2 0x0877 0872 57 *JUMPI // Stack delta = +1 // Outputs[1] { @086C stack[0] = msg.value } // Block ends with conditional jump to 0x0877, if !msg.value label_0873: // Incoming jump from 0x0872, if not !msg.value // Inputs[1] { @0876 memory[0x00:0x00] } 0873 60 PUSH1 0x00 0875 80 DUP1 0876 FD *REVERT // Stack delta = +0 // Outputs[1] { @0876 revert(memory[0x00:0x00]); } // Block terminates label_0877: // Incoming jump from 0x0872, if !msg.value // Inputs[1] { @087F msg.data.length } 0877 5B JUMPDEST 0878 50 POP 0879 61 PUSH2 0x05b3 087C 60 PUSH1 0x04 087E 80 DUP1 087F 36 CALLDATASIZE 0880 03 SUB 0881 60 PUSH1 0xe0 0883 81 DUP2 0884 10 LT 0885 15 ISZERO 0886 61 PUSH2 0x088e 0889 57 *JUMPI // Stack delta = +2 // Outputs[3] // { // @0879 stack[-1] = 0x05b3 // @087C stack[0] = 0x04 // @0880 stack[1] = msg.data.length - 0x04 // } // Block ends with conditional jump to 0x088e, if !(msg.data.length - 0x04 < 0xe0) label_088A: // Incoming jump from 0x0889, if not !(msg.data.length - 0x04 < 0xe0) // Inputs[1] { @088D memory[0x00:0x00] } 088A 60 PUSH1 0x00 088C 80 DUP1 088D FD *REVERT // Stack delta = +0 // Outputs[1] { @088D revert(memory[0x00:0x00]); } // Block terminates label_088E: // Incoming jump from 0x0889, if !(msg.data.length - 0x04 < 0xe0) // Inputs[6] // { // @0897 stack[-2] // @0898 msg.data[stack[-2]:stack[-2] + 0x20] // @08A0 msg.data[stack[-2] + 0x20:stack[-2] + 0x20 + 0x20] // @08A4 stack[-1] // @08A9 msg.data[stack[-2] + 0x40:stack[-2] + 0x40 + 0x20] // @08B7 msg.data[stack[-2] + 0x60:stack[-2] + 0x60 + 0x20] // } 088E 5B JUMPDEST 088F 60 PUSH1 0x01 0891 60 PUSH1 0x01 0893 60 PUSH1 0xa0 0895 1B SHL 0896 03 SUB 0897 82 DUP3 0898 35 CALLDATALOAD 0899 81 DUP2 089A 16 AND 089B 92 SWAP3 089C 60 PUSH1 0x20 089E 81 DUP2 089F 01 ADD 08A0 35 CALLDATALOAD 08A1 90 SWAP1 08A2 91 SWAP2 08A3 16 AND 08A4 91 SWAP2 08A5 60 PUSH1 0x40 08A7 82 DUP3 08A8 01 ADD 08A9 35 CALLDATALOAD 08AA 91 SWAP2 08AB 90 SWAP1 08AC 81 DUP2 08AD 01 ADD 08AE 90 SWAP1 08AF 60 PUSH1 0x80 08B1 81 DUP2 08B2 01 ADD 08B3 60 PUSH1 0x60 08B5 82 DUP3 08B6 01 ADD 08B7 35 CALLDATALOAD 08B8 64 PUSH5 0x0100000000 08BE 81 DUP2 08BF 11 GT 08C0 15 ISZERO 08C1 61 PUSH2 0x08c9 08C4 57 *JUMPI // Stack delta = +5 // Outputs[7] // { // @089B stack[-2] = (0x01 << 0xa0) - 0x01 & msg.data[stack[-2]:stack[-2] + 0x20] // @08A4 stack[-1] = (0x01 << 0xa0) - 0x01 & msg.data[stack[-2] + 0x20:stack[-2] + 0x20 + 0x20] // @08AA stack[0] = msg.data[stack[-2] + 0x40:stack[-2] + 0x40 + 0x20] // @08AE stack[1] = stack[-2] + stack[-1] // @08AE stack[2] = stack[-2] // @08B2 stack[3] = stack[-2] + 0x80 // @08B7 stack[4] = msg.data[stack[-2] + 0x60:stack[-2] + 0x60 + 0x20] // } // Block ends with conditional jump to 0x08c9, if !(msg.data[stack[-2] + 0x60:stack[-2] + 0x60 + 0x20] > 0x0100000000) label_08C5: // Incoming jump from 0x08C4, if not !(msg.data[stack[-2] + 0x60:stack[-2] + 0x60 + 0x20] > 0x0100000000) // Inputs[1] { @08C8 memory[0x00:0x00] } 08C5 60 PUSH1 0x00 08C7 80 DUP1 08C8 FD *REVERT // Stack delta = +0 // Outputs[1] { @08C8 revert(memory[0x00:0x00]); } // Block terminates label_08C9: // Incoming jump from 0x08C4, if !(msg.data[stack[-2] + 0x60:stack[-2] + 0x60 + 0x20] > 0x0100000000) // Inputs[3] // { // @08CA stack[-3] // @08CB stack[-1] // @08CC stack[-4] // } 08C9 5B JUMPDEST 08CA 82 DUP3 08CB 01 ADD 08CC 83 DUP4 08CD 60 PUSH1 0x20 08CF 82 DUP3 08D0 01 ADD 08D1 11 GT 08D2 15 ISZERO 08D3 61 PUSH2 0x08db 08D6 57 *JUMPI // Stack delta = +0 // Outputs[1] { @08CB stack[-1] = stack[-3] + stack[-1] } // Block ends with conditional jump to 0x08db, if !(stack[-3] + stack[-1] + 0x20 > stack[-4]) label_08D7: // Incoming jump from 0x08D6, if not !(stack[-3] + stack[-1] + 0x20 > stack[-4]) // Inputs[1] { @08DA memory[0x00:0x00] } 08D7 60 PUSH1 0x00 08D9 80 DUP1 08DA FD *REVERT // Stack delta = +0 // Outputs[1] { @08DA revert(memory[0x00:0x00]); } // Block terminates label_08DB: // Incoming jump from 0x08D6, if !(stack[-3] + stack[-1] + 0x20 > stack[-4]) // Inputs[4] // { // @08DC stack[-1] // @08DD msg.data[stack[-1]:stack[-1] + 0x20] // @08E2 stack[-2] // @08E3 stack[-4] // } 08DB 5B JUMPDEST 08DC 80 DUP1 08DD 35 CALLDATALOAD 08DE 90 SWAP1 08DF 60 PUSH1 0x20 08E1 01 ADD 08E2 91 SWAP2 08E3 84 DUP5 08E4 60 PUSH1 0x01 08E6 83 DUP4 08E7 02 MUL 08E8 84 DUP5 08E9 01 ADD 08EA 11 GT 08EB 64 PUSH5 0x0100000000 08F1 83 DUP4 08F2 11 GT 08F3 17 OR 08F4 15 ISZERO 08F5 61 PUSH2 0x08fd 08F8 57 *JUMPI // Stack delta = +1 // Outputs[3] // { // @08DE stack[-1] = msg.data[stack[-1]:stack[-1] + 0x20] // @08E2 stack[0] = stack[-2] // @08E2 stack[-2] = 0x20 + stack[-1] // } // Block ends with conditional jump to 0x08fd, if !((msg.data[stack[-1]:stack[-1] + 0x20] > 0x0100000000) | (0x20 + stack[-1] + msg.data[stack[-1]:stack[-1] + 0x20] * 0x01 > stack[-4])) label_08F9: // Incoming jump from 0x08F8, if not !((msg.data[stack[-1]:stack[-1] + 0x20] > 0x0100000000) | (0x20 + stack[-1] + msg.data[stack[-1]:stack[-1] + 0x20] * 0x01 > stack[-4])) // Inputs[1] { @08FC memory[0x00:0x00] } 08F9 60 PUSH1 0x00 08FB 80 DUP1 08FC FD *REVERT // Stack delta = +0 // Outputs[1] { @08FC revert(memory[0x00:0x00]); } // Block terminates label_08FD: // Incoming jump from 0x08F8, if !((msg.data[stack[-1]:stack[-1] + 0x20] > 0x0100000000) | (0x20 + stack[-1] + msg.data[stack[-1]:stack[-1] + 0x20] * 0x01 > stack[-4])) // Inputs[8] // { // @08FE stack[-3] // @08FE stack[-1] // @08FF stack[-2] // @0910 memory[0x40:0x60] // @0927 msg.data[stack[-3]:stack[-3] + stack[-2]] // @0932 stack[-5] // @0933 stack[-4] // @093B msg.data[stack[-1]:stack[-1] + 0x20] // } 08FD 5B JUMPDEST 08FE 91 SWAP2 08FF 90 SWAP1 0900 80 DUP1 0901 80 DUP1 0902 60 PUSH1 0x1f 0904 01 ADD 0905 60 PUSH1 0x20 0907 80 DUP1 0908 91 SWAP2 0909 04 DIV 090A 02 MUL 090B 60 PUSH1 0x20 090D 01 ADD 090E 60 PUSH1 0x40 0910 51 MLOAD 0911 90 SWAP1 0912 81 DUP2 0913 01 ADD 0914 60 PUSH1 0x40 0916 52 MSTORE 0917 80 DUP1 0918 93 SWAP4 0919 92 SWAP3 091A 91 SWAP2 091B 90 SWAP1 091C 81 DUP2 091D 81 DUP2 091E 52 MSTORE 091F 60 PUSH1 0x20 0921 01 ADD 0922 83 DUP4 0923 83 DUP4 0924 80 DUP1 0925 82 DUP3 0926 84 DUP5 0927 37 CALLDATACOPY 0928 60 PUSH1 0x00 092A 92 SWAP3 092B 01 ADD 092C 91 SWAP2 092D 90 SWAP1 092E 91 SWAP2 092F 52 MSTORE 0930 50 POP 0931 92 SWAP3 0932 95 SWAP6 0933 94 SWAP5 0934 93 SWAP4 0935 60 PUSH1 0x20 0937 81 DUP2 0938 01 ADD 0939 93 SWAP4 093A 50 POP 093B 35 CALLDATALOAD 093C 91 SWAP2 093D 50 POP 093E 50 POP 093F 64 PUSH5 0x0100000000 0945 81 DUP2 0946 11 GT 0947 15 ISZERO 0948 61 PUSH2 0x0950 094B 57 *JUMPI // Stack delta = +0 // Outputs[9] // { // @0916 memory[0x40:0x60] = memory[0x40:0x60] + 0x20 + (0x1f + stack[-2]) / 0x20 * 0x20 // @091E memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = stack[-2] // @0927 memory[0x20 + memory[0x40:0x60]:0x20 + memory[0x40:0x60] + stack[-2]] = msg.data[stack[-3]:stack[-3] + stack[-2]] // @092F memory[0x20 + memory[0x40:0x60] + stack[-2]:0x20 + memory[0x40:0x60] + stack[-2] + 0x20] = 0x00 // @0932 stack[-5] = memory[0x40:0x60] // @0933 stack[-4] = stack[-5] // @0934 stack[-3] = stack[-4] // @0939 stack[-2] = stack[-1] + 0x20 // @093C stack[-1] = msg.data[stack[-1]:stack[-1] + 0x20] // } // Block ends with conditional jump to 0x0950, if !(msg.data[stack[-1]:stack[-1] + 0x20] > 0x0100000000) label_094C: // Incoming jump from 0x094B, if not !(msg.data[stack[-1]:stack[-1] + 0x20] > 0x0100000000) // Inputs[1] { @094F memory[0x00:0x00] } 094C 60 PUSH1 0x00 094E 80 DUP1 094F FD *REVERT // Stack delta = +0 // Outputs[1] { @094F revert(memory[0x00:0x00]); } // Block terminates label_0950: // Incoming jump from 0x094B, if !(msg.data[stack[-1]:stack[-1] + 0x20] > 0x0100000000) // Inputs[3] // { // @0951 stack[-3] // @0952 stack[-1] // @0953 stack[-4] // } 0950 5B JUMPDEST 0951 82 DUP3 0952 01 ADD 0953 83 DUP4 0954 60 PUSH1 0x20 0956 82 DUP3 0957 01 ADD 0958 11 GT 0959 15 ISZERO 095A 61 PUSH2 0x0962 095D 57 *JUMPI // Stack delta = +0 // Outputs[1] { @0952 stack[-1] = stack[-3] + stack[-1] } // Block ends with conditional jump to 0x0962, if !(stack[-3] + stack[-1] + 0x20 > stack[-4]) label_095E: // Incoming jump from 0x095D, if not !(stack[-3] + stack[-1] + 0x20 > stack[-4]) // Inputs[1] { @0961 memory[0x00:0x00] } 095E 60 PUSH1 0x00 0960 80 DUP1 0961 FD *REVERT // Stack delta = +0 // Outputs[1] { @0961 revert(memory[0x00:0x00]); } // Block terminates label_0962: // Incoming jump from 0x095D, if !(stack[-3] + stack[-1] + 0x20 > stack[-4]) // Inputs[4] // { // @0963 stack[-1] // @0964 msg.data[stack[-1]:stack[-1] + 0x20] // @0969 stack[-2] // @096A stack[-4] // } 0962 5B JUMPDEST 0963 80 DUP1 0964 35 CALLDATALOAD 0965 90 SWAP1 0966 60 PUSH1 0x20 0968 01 ADD 0969 91 SWAP2 096A 84 DUP5 096B 60 PUSH1 0x01 096D 83 DUP4 096E 02 MUL 096F 84 DUP5 0970 01 ADD 0971 11 GT 0972 64 PUSH5 0x0100000000 0978 83 DUP4 0979 11 GT 097A 17 OR 097B 15 ISZERO 097C 61 PUSH2 0x0984 097F 57 *JUMPI // Stack delta = +1 // Outputs[3] // { // @0965 stack[-1] = msg.data[stack[-1]:stack[-1] + 0x20] // @0969 stack[0] = stack[-2] // @0969 stack[-2] = 0x20 + stack[-1] // } // Block ends with conditional jump to 0x0984, if !((msg.data[stack[-1]:stack[-1] + 0x20] > 0x0100000000) | (0x20 + stack[-1] + msg.data[stack[-1]:stack[-1] + 0x20] * 0x01 > stack[-4])) label_0980: // Incoming jump from 0x097F, if not !((msg.data[stack[-1]:stack[-1] + 0x20] > 0x0100000000) | (0x20 + stack[-1] + msg.data[stack[-1]:stack[-1] + 0x20] * 0x01 > stack[-4])) // Inputs[1] { @0983 memory[0x00:0x00] } 0980 60 PUSH1 0x00 0982 80 DUP1 0983 FD *REVERT // Stack delta = +0 // Outputs[1] { @0983 revert(memory[0x00:0x00]); } // Block terminates label_0984: // Incoming jump from 0x097F, if !((msg.data[stack[-1]:stack[-1] + 0x20] > 0x0100000000) | (0x20 + stack[-1] + msg.data[stack[-1]:stack[-1] + 0x20] * 0x01 > stack[-4])) // Inputs[9] // { // @0985 stack[-1] // @0985 stack[-3] // @0986 stack[-2] // @0997 memory[0x40:0x60] // @09AE msg.data[stack[-3]:stack[-3] + stack[-2]] // @09B9 stack[-5] // @09BD msg.data[stack[-1]:stack[-1] + 0x20] // @09BE stack[-4] // @09C5 msg.data[0x20 + stack[-1]:0x20 + stack[-1] + 0x20] // } 0984 5B JUMPDEST 0985 91 SWAP2 0986 90 SWAP1 0987 80 DUP1 0988 80 DUP1 0989 60 PUSH1 0x1f 098B 01 ADD 098C 60 PUSH1 0x20 098E 80 DUP1 098F 91 SWAP2 0990 04 DIV 0991 02 MUL 0992 60 PUSH1 0x20 0994 01 ADD 0995 60 PUSH1 0x40 0997 51 MLOAD 0998 90 SWAP1 0999 81 DUP2 099A 01 ADD 099B 60 PUSH1 0x40 099D 52 MSTORE 099E 80 DUP1 099F 93 SWAP4 09A0 92 SWAP3 09A1 91 SWAP2 09A2 90 SWAP1 09A3 81 DUP2 09A4 81 DUP2 09A5 52 MSTORE 09A6 60 PUSH1 0x20 09A8 01 ADD 09A9 83 DUP4 09AA 83 DUP4 09AB 80 DUP1 09AC 82 DUP3 09AD 84 DUP5 09AE 37 CALLDATACOPY 09AF 60 PUSH1 0x00 09B1 92 SWAP3 09B2 01 ADD 09B3 91 SWAP2 09B4 90 SWAP1 09B5 91 SWAP2 09B6 52 MSTORE 09B7 50 POP 09B8 92 SWAP3 09B9 95 SWAP6 09BA 50 POP 09BB 50 POP 09BC 82 DUP3 09BD 35 CALLDATALOAD 09BE 93 SWAP4 09BF 50 POP 09C0 50 POP 09C1 50 POP 09C2 60 PUSH1 0x20 09C4 01 ADD 09C5 35 CALLDATALOAD 09C6 60 PUSH1 0xff 09C8 16 AND 09C9 61 PUSH2 0x20f8 09CC 56 *JUMP // Stack delta = -2 // Outputs[7] // { // @099D memory[0x40:0x60] = memory[0x40:0x60] + 0x20 + (0x1f + stack[-2]) / 0x20 * 0x20 // @09A5 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = stack[-2] // @09AE memory[0x20 + memory[0x40:0x60]:0x20 + memory[0x40:0x60] + stack[-2]] = msg.data[stack[-3]:stack[-3] + stack[-2]] // @09B6 memory[0x20 + memory[0x40:0x60] + stack[-2]:0x20 + memory[0x40:0x60] + stack[-2] + 0x20] = 0x00 // @09B9 stack[-5] = memory[0x40:0x60] // @09BE stack[-4] = msg.data[stack[-1]:stack[-1] + 0x20] // @09C8 stack[-3] = 0xff & msg.data[0x20 + stack[-1]:0x20 + stack[-1] + 0x20] // } // Block ends with unconditional jump to 0x20f8 label_09CD: // Incoming jump from 0x009B, if 0xd90a730e == stack[-1] // Inputs[1] { @09CE msg.value } 09CD 5B JUMPDEST 09CE 34 CALLVALUE 09CF 80 DUP1 09D0 15 ISZERO 09D1 61 PUSH2 0x09d9 09D4 57 *JUMPI // Stack delta = +1 // Outputs[1] { @09CE stack[0] = msg.value } // Block ends with conditional jump to 0x09d9, if !msg.value label_09D5: // Incoming jump from 0x09D4, if not !msg.value // Inputs[1] { @09D8 memory[0x00:0x00] } 09D5 60 PUSH1 0x00 09D7 80 DUP1 09D8 FD *REVERT // Stack delta = +0 // Outputs[1] { @09D8 revert(memory[0x00:0x00]); } // Block terminates label_09D9: // Incoming jump from 0x09D4, if !msg.value 09D9 5B JUMPDEST 09DA 50 POP 09DB 61 PUSH2 0x0374 09DE 61 PUSH2 0x21ca 09E1 56 *JUMP // Stack delta = +0 // Outputs[1] { @09DB stack[-1] = 0x0374 } // Block ends with call to 0x21ca, returns to 0x0374 label_09E2: // Incoming jump from 0x00A6, if 0xdd62ed3e == stack[-1] // Inputs[1] { @09E3 msg.value } 09E2 5B JUMPDEST 09E3 34 CALLVALUE 09E4 80 DUP1 09E5 15 ISZERO 09E6 61 PUSH2 0x09ee 09E9 57 *JUMPI // Stack delta = +1 // Outputs[1] { @09E3 stack[0] = msg.value } // Block ends with conditional jump to 0x09ee, if !msg.value label_09EA: // Incoming jump from 0x09E9, if not !msg.value // Inputs[1] { @09ED memory[0x00:0x00] } 09EA 60 PUSH1 0x00 09EC 80 DUP1 09ED FD *REVERT // Stack delta = +0 // Outputs[1] { @09ED revert(memory[0x00:0x00]); } // Block terminates label_09EE: // Incoming jump from 0x09E9, if !msg.value // Inputs[1] { @09F6 msg.data.length } 09EE 5B JUMPDEST 09EF 50 POP 09F0 61 PUSH2 0x0374 09F3 60 PUSH1 0x04 09F5 80 DUP1 09F6 36 CALLDATASIZE 09F7 03 SUB 09F8 60 PUSH1 0x40 09FA 81 DUP2 09FB 10 LT 09FC 15 ISZERO 09FD 61 PUSH2 0x0a05 0A00 57 *JUMPI // Stack delta = +2 // Outputs[3] // { // @09F0 stack[-1] = 0x0374 // @09F3 stack[0] = 0x04 // @09F7 stack[1] = msg.data.length - 0x04 // } // Block ends with conditional call to 0x0a05, returns to 0x0374, if !(msg.data.length - 0x04 < 0x40) label_0A01: // Incoming jump from 0x0A00, if not !(msg.data.length - 0x04 < 0x40) // Inputs[1] { @0A04 memory[0x00:0x00] } 0A01 60 PUSH1 0x00 0A03 80 DUP1 0A04 FD *REVERT // Stack delta = +0 // Outputs[1] { @0A04 revert(memory[0x00:0x00]); } // Block terminates label_0A05: // Incoming call from 0x0A00, returns to 0x0374, if !(msg.data.length - 0x04 < 0x40) // Inputs[3] // { // @0A0F stack[-2] // @0A10 msg.data[stack[-2]:stack[-2] + 0x20] // @0A17 msg.data[0x20 + stack[-2]:0x20 + stack[-2] + 0x20] // } 0A05 5B JUMPDEST 0A06 50 POP 0A07 60 PUSH1 0x01 0A09 60 PUSH1 0x01 0A0B 60 PUSH1 0xa0 0A0D 1B SHL 0A0E 03 SUB 0A0F 81 DUP2 0A10 35 CALLDATALOAD 0A11 81 DUP2 0A12 16 AND 0A13 91 SWAP2 0A14 60 PUSH1 0x20 0A16 01 ADD 0A17 35 CALLDATALOAD 0A18 16 AND 0A19 61 PUSH2 0x21d0 0A1C 56 *JUMP // Stack delta = +0 // Outputs[2] // { // @0A13 stack[-2] = (0x01 << 0xa0) - 0x01 & msg.data[stack[-2]:stack[-2] + 0x20] // @0A18 stack[-1] = msg.data[0x20 + stack[-2]:0x20 + stack[-2] + 0x20] & (0x01 << 0xa0) - 0x01 // } // Block ends with unconditional jump to 0x21d0 label_0A1D: // Incoming jump from 0x00B1, if 0xe5974619 == stack[-1] // Inputs[1] { @0A24 msg.data.length } 0A1D 5B JUMPDEST 0A1E 61 PUSH2 0x05b3 0A21 60 PUSH1 0x04 0A23 80 DUP1 0A24 36 CALLDATASIZE 0A25 03 SUB 0A26 60 PUSH1 0x20 0A28 81 DUP2 0A29 10 LT 0A2A 15 ISZERO 0A2B 61 PUSH2 0x0a33 0A2E 57 *JUMPI // Stack delta = +3 // Outputs[3] // { // @0A1E stack[0] = 0x05b3 // @0A21 stack[1] = 0x04 // @0A25 stack[2] = msg.data.length - 0x04 // } // Block ends with conditional jump to 0x0a33, if !(msg.data.length - 0x04 < 0x20) label_0A2F: // Incoming jump from 0x0A2E, if not !(msg.data.length - 0x04 < 0x20) // Inputs[1] { @0A32 memory[0x00:0x00] } 0A2F 60 PUSH1 0x00 0A31 80 DUP1 0A32 FD *REVERT // Stack delta = +0 // Outputs[1] { @0A32 revert(memory[0x00:0x00]); } // Block terminates label_0A33: // Incoming jump from 0x0A2E, if !(msg.data.length - 0x04 < 0x20) // Inputs[2] // { // @0A35 stack[-2] // @0A35 msg.data[stack[-2]:stack[-2] + 0x20] // } 0A33 5B JUMPDEST 0A34 50 POP 0A35 35 CALLDATALOAD 0A36 60 PUSH1 0x01 0A38 60 PUSH1 0x01 0A3A 60 PUSH1 0xa0 0A3C 1B SHL 0A3D 03 SUB 0A3E 16 AND 0A3F 61 PUSH2 0x21fb 0A42 56 *JUMP // Stack delta = -1 // Outputs[1] { @0A3E stack[-2] = (0x01 << 0xa0) - 0x01 & msg.data[stack[-2]:stack[-2] + 0x20] } // Block ends with unconditional jump to 0x21fb label_0A43: // Incoming jump from 0x00BC, if 0xf2b3abbd == stack[-1] // Inputs[1] { @0A44 msg.value } 0A43 5B JUMPDEST 0A44 34 CALLVALUE 0A45 80 DUP1 0A46 15 ISZERO 0A47 61 PUSH2 0x0a4f 0A4A 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0A44 stack[0] = msg.value } // Block ends with conditional jump to 0x0a4f, if !msg.value label_0A4B: // Incoming jump from 0x0A4A, if not !msg.value // Inputs[1] { @0A4E memory[0x00:0x00] } 0A4B 60 PUSH1 0x00 0A4D 80 DUP1 0A4E FD *REVERT // Stack delta = +0 // Outputs[1] { @0A4E revert(memory[0x00:0x00]); } // Block terminates label_0A4F: // Incoming jump from 0x0A4A, if !msg.value // Inputs[1] { @0A57 msg.data.length } 0A4F 5B JUMPDEST 0A50 50 POP 0A51 61 PUSH2 0x0374 0A54 60 PUSH1 0x04 0A56 80 DUP1 0A57 36 CALLDATASIZE 0A58 03 SUB 0A59 60 PUSH1 0x20 0A5B 81 DUP2 0A5C 10 LT 0A5D 15 ISZERO 0A5E 61 PUSH2 0x0a66 0A61 57 *JUMPI // Stack delta = +2 // Outputs[3] // { // @0A51 stack[-1] = 0x0374 // @0A54 stack[0] = 0x04 // @0A58 stack[1] = msg.data.length - 0x04 // } // Block ends with conditional call to 0x0a66, returns to 0x0374, if !(msg.data.length - 0x04 < 0x20) label_0A62: // Incoming jump from 0x0A61, if not !(msg.data.length - 0x04 < 0x20) // Inputs[1] { @0A65 memory[0x00:0x00] } 0A62 60 PUSH1 0x00 0A64 80 DUP1 0A65 FD *REVERT // Stack delta = +0 // Outputs[1] { @0A65 revert(memory[0x00:0x00]); } // Block terminates label_0A66: // Incoming call from 0x0A61, returns to 0x0374, if !(msg.data.length - 0x04 < 0x20) // Inputs[2] // { // @0A68 stack[-2] // @0A68 msg.data[stack[-2]:stack[-2] + 0x20] // } 0A66 5B JUMPDEST 0A67 50 POP 0A68 35 CALLDATALOAD 0A69 60 PUSH1 0x01 0A6B 60 PUSH1 0x01 0A6D 60 PUSH1 0xa0 0A6F 1B SHL 0A70 03 SUB 0A71 16 AND 0A72 61 PUSH2 0x2236 0A75 56 *JUMP // Stack delta = -1 // Outputs[1] { @0A71 stack[-2] = (0x01 << 0xa0) - 0x01 & msg.data[stack[-2]:stack[-2] + 0x20] } // Block ends with unconditional jump to 0x2236 label_0A76: // Incoming jump from 0x003E, if 0xf3fdb15a == stack[-1] // Inputs[1] { @0A77 msg.value } 0A76 5B JUMPDEST 0A77 34 CALLVALUE 0A78 80 DUP1 0A79 15 ISZERO 0A7A 61 PUSH2 0x0a82 0A7D 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0A77 stack[0] = msg.value } // Block ends with conditional jump to 0x0a82, if !msg.value label_0A7E: // Incoming jump from 0x0A7D, if not !msg.value // Inputs[1] { @0A81 memory[0x00:0x00] } 0A7E 60 PUSH1 0x00 0A80 80 DUP1 0A81 FD *REVERT // Stack delta = +0 // Outputs[1] { @0A81 revert(memory[0x00:0x00]); } // Block terminates label_0A82: // Incoming jump from 0x0A7D, if !msg.value 0A82 5B JUMPDEST 0A83 50 POP 0A84 61 PUSH2 0x0a8b 0A87 61 PUSH2 0x228a 0A8A 56 *JUMP // Stack delta = +0 // Outputs[1] { @0A84 stack[-1] = 0x0a8b } // Block ends with call to 0x228a, returns to 0x0A8B label_0A8B: // Incoming return from call to 0x228A at 0x0A8A // Incoming return from call to 0x22AF at 0x0AD0 // Incoming return from call to 0x2299 at 0x0ABB // Inputs[4] // { // @0A8F memory[0x40:0x60] // @0A99 stack[-1] // @0A9D memory[0x40:0x60] // @0AA6 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 0A8B 5B JUMPDEST 0A8C 60 PUSH1 0x40 0A8E 80 DUP1 0A8F 51 MLOAD 0A90 60 PUSH1 0x01 0A92 60 PUSH1 0x01 0A94 60 PUSH1 0xa0 0A96 1B SHL 0A97 03 SUB 0A98 90 SWAP1 0A99 92 SWAP3 0A9A 16 AND 0A9B 82 DUP3 0A9C 52 MSTORE 0A9D 51 MLOAD 0A9E 90 SWAP1 0A9F 81 DUP2 0AA0 90 SWAP1 0AA1 03 SUB 0AA2 60 PUSH1 0x20 0AA4 01 ADD 0AA5 90 SWAP1 0AA6 F3 *RETURN // Stack delta = -1 // Outputs[2] // { // @0A9C memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = stack[-1] & (0x01 << 0xa0) - 0x01 // @0AA6 return memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20 + (memory[0x40:0x60] - memory[0x40:0x60])]; // } // Block terminates label_0AA7: // Incoming jump from 0x0049, if 0xf77c4791 == stack[-1] // Inputs[1] { @0AA8 msg.value } 0AA7 5B JUMPDEST 0AA8 34 CALLVALUE 0AA9 80 DUP1 0AAA 15 ISZERO 0AAB 61 PUSH2 0x0ab3 0AAE 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0AA8 stack[0] = msg.value } // Block ends with conditional jump to 0x0ab3, if !msg.value label_0AAF: // Incoming jump from 0x0AAE, if not !msg.value // Inputs[1] { @0AB2 memory[0x00:0x00] } 0AAF 60 PUSH1 0x00 0AB1 80 DUP1 0AB2 FD *REVERT // Stack delta = +0 // Outputs[1] { @0AB2 revert(memory[0x00:0x00]); } // Block terminates label_0AB3: // Incoming jump from 0x0AAE, if !msg.value 0AB3 5B JUMPDEST 0AB4 50 POP 0AB5 61 PUSH2 0x0a8b 0AB8 61 PUSH2 0x2299 0ABB 56 *JUMP // Stack delta = +0 // Outputs[1] { @0AB5 stack[-1] = 0x0a8b } // Block ends with call to 0x2299, returns to 0x0A8B label_0ABC: // Incoming jump from 0x0054, if 0xf851a440 == stack[-1] // Inputs[1] { @0ABD msg.value } 0ABC 5B JUMPDEST 0ABD 34 CALLVALUE 0ABE 80 DUP1 0ABF 15 ISZERO 0AC0 61 PUSH2 0x0ac8 0AC3 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0ABD stack[0] = msg.value } // Block ends with conditional jump to 0x0ac8, if !msg.value label_0AC4: // Incoming jump from 0x0AC3, if not !msg.value // Inputs[1] { @0AC7 memory[0x00:0x00] } 0AC4 60 PUSH1 0x00 0AC6 80 DUP1 0AC7 FD *REVERT // Stack delta = +0 // Outputs[1] { @0AC7 revert(memory[0x00:0x00]); } // Block terminates label_0AC8: // Incoming jump from 0x0AC3, if !msg.value 0AC8 5B JUMPDEST 0AC9 50 POP 0ACA 61 PUSH2 0x0a8b 0ACD 61 PUSH2 0x22af 0AD0 56 *JUMP // Stack delta = +0 // Outputs[1] { @0ACA stack[-1] = 0x0a8b } // Block ends with call to 0x22af, returns to 0x0A8B label_0AD1: // Incoming jump from 0x005F, if 0xf8f9da28 == stack[-1] // Inputs[1] { @0AD2 msg.value } 0AD1 5B JUMPDEST 0AD2 34 CALLVALUE 0AD3 80 DUP1 0AD4 15 ISZERO 0AD5 61 PUSH2 0x0add 0AD8 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0AD2 stack[0] = msg.value } // Block ends with conditional jump to 0x0add, if !msg.value label_0AD9: // Incoming jump from 0x0AD8, if not !msg.value // Inputs[1] { @0ADC memory[0x00:0x00] } 0AD9 60 PUSH1 0x00 0ADB 80 DUP1 0ADC FD *REVERT // Stack delta = +0 // Outputs[1] { @0ADC revert(memory[0x00:0x00]); } // Block terminates label_0ADD: // Incoming jump from 0x0AD8, if !msg.value 0ADD 5B JUMPDEST 0ADE 50 POP 0ADF 61 PUSH2 0x0374 0AE2 61 PUSH2 0x22c3 0AE5 56 *JUMP // Stack delta = +0 // Outputs[1] { @0ADF stack[-1] = 0x0374 } // Block ends with call to 0x22c3, returns to 0x0374 label_0AE6: // Incoming jump from 0x006A, if 0xfca7820b == stack[-1] // Inputs[1] { @0AE7 msg.value } 0AE6 5B JUMPDEST 0AE7 34 CALLVALUE 0AE8 80 DUP1 0AE9 15 ISZERO 0AEA 61 PUSH2 0x0af2 0AED 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0AE7 stack[0] = msg.value } // Block ends with conditional jump to 0x0af2, if !msg.value label_0AEE: // Incoming jump from 0x0AED, if not !msg.value // Inputs[1] { @0AF1 memory[0x00:0x00] } 0AEE 60 PUSH1 0x00 0AF0 80 DUP1 0AF1 FD *REVERT // Stack delta = +0 // Outputs[1] { @0AF1 revert(memory[0x00:0x00]); } // Block terminates label_0AF2: // Incoming jump from 0x0AED, if !msg.value // Inputs[1] { @0AFA msg.data.length } 0AF2 5B JUMPDEST 0AF3 50 POP 0AF4 61 PUSH2 0x0374 0AF7 60 PUSH1 0x04 0AF9 80 DUP1 0AFA 36 CALLDATASIZE 0AFB 03 SUB 0AFC 60 PUSH1 0x20 0AFE 81 DUP2 0AFF 10 LT 0B00 15 ISZERO 0B01 61 PUSH2 0x0b09 0B04 57 *JUMPI // Stack delta = +2 // Outputs[3] // { // @0AF4 stack[-1] = 0x0374 // @0AF7 stack[0] = 0x04 // @0AFB stack[1] = msg.data.length - 0x04 // } // Block ends with conditional call to 0x0b09, returns to 0x0374, if !(msg.data.length - 0x04 < 0x20) label_0B05: // Incoming jump from 0x0B04, if not !(msg.data.length - 0x04 < 0x20) // Inputs[1] { @0B08 memory[0x00:0x00] } 0B05 60 PUSH1 0x00 0B07 80 DUP1 0B08 FD *REVERT // Stack delta = +0 // Outputs[1] { @0B08 revert(memory[0x00:0x00]); } // Block terminates label_0B09: // Incoming call from 0x0B04, returns to 0x0374, if !(msg.data.length - 0x04 < 0x20) // Inputs[2] // { // @0B0B stack[-2] // @0B0B msg.data[stack[-2]:stack[-2] + 0x20] // } 0B09 5B JUMPDEST 0B0A 50 POP 0B0B 35 CALLDATALOAD 0B0C 61 PUSH2 0x2327 0B0F 56 *JUMP // Stack delta = -1 // Outputs[1] { @0B0B stack[-2] = msg.data[stack[-2]:stack[-2] + 0x20] } // Block ends with unconditional jump to 0x2327 label_0B10: // Incoming jump from 0x0075, if 0xfcb64147 == stack[-1] 0B10 5B JUMPDEST 0B11 61 PUSH2 0x0374 0B14 61 PUSH2 0x23e7 0B17 56 *JUMP // Stack delta = +1 // Outputs[1] { @0B11 stack[0] = 0x0374 } // Block ends with unconditional jump to 0x23e7 label_0B18: // Incoming jump from 0x11A2 // Incoming jump from 0x0291 // Inputs[1] { @0B1C storage[0x00] } 0B18 5B JUMPDEST 0B19 60 PUSH1 0x00 0B1B 80 DUP1 0B1C 54 SLOAD 0B1D 62 PUSH3 0x010000 0B21 90 SWAP1 0B22 04 DIV 0B23 60 PUSH1 0xff 0B25 16 AND 0B26 61 PUSH2 0x0b62 0B29 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0B19 stack[0] = 0x00 } // Block ends with conditional jump to 0x0b62, if 0xff & storage[0x00] / 0x010000 label_0B2A: // Incoming jump from 0x0B29, if not 0xff & storage[0x00] / 0x010000 // Inputs[3] // { // @0B2D memory[0x40:0x60] // @0B58 memory[0x40:0x60] // @0B61 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 0B2A 60 PUSH1 0x40 0B2C 80 DUP1 0B2D 51 MLOAD 0B2E 60 PUSH1 0x01 0B30 60 PUSH1 0xe5 0B32 1B SHL 0B33 62 PUSH3 0x461bcd 0B37 02 MUL 0B38 81 DUP2 0B39 52 MSTORE 0B3A 60 PUSH1 0x20 0B3C 60 PUSH1 0x04 0B3E 82 DUP3 0B3F 01 ADD 0B40 52 MSTORE 0B41 60 PUSH1 0x03 0B43 60 PUSH1 0x24 0B45 82 DUP3 0B46 01 ADD 0B47 52 MSTORE 0B48 60 PUSH1 0x01 0B4A 60 PUSH1 0xe8 0B4C 1B SHL 0B4D 62 PUSH3 0x453637 0B51 02 MUL 0B52 60 PUSH1 0x44 0B54 82 DUP3 0B55 01 ADD 0B56 52 MSTORE 0B57 90 SWAP1 0B58 51 MLOAD 0B59 90 SWAP1 0B5A 81 DUP2 0B5B 90 SWAP1 0B5C 03 SUB 0B5D 60 PUSH1 0x64 0B5F 01 ADD 0B60 90 SWAP1 0B61 FD *REVERT // Stack delta = +0 // Outputs[5] // { // @0B39 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @0B40 memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @0B47 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x03 // @0B56 memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x453637 * (0x01 << 0xe8) // @0B61 revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_0B62: // Incoming jump from 0x0B29, if 0xff & storage[0x00] / 0x010000 // Inputs[1] { @0B66 storage[0x00] } 0B62 5B JUMPDEST 0B63 60 PUSH1 0x00 0B65 80 DUP1 0B66 54 SLOAD 0B67 62 PUSH3 0xff0000 0B6B 19 NOT 0B6C 16 AND 0B6D 81 DUP2 0B6E 55 SSTORE 0B6F 61 PUSH2 0x0b76 0B72 61 PUSH2 0x1a38 0B75 56 *JUMP // Stack delta = +2 // Outputs[3] // { // @0B63 stack[0] = 0x00 // @0B6E storage[0x00] = ~0xff0000 & storage[0x00] // @0B6F stack[1] = 0x0b76 // } // Block ends with call to 0x1a38, returns to 0x0B76 label_0B76: // Incoming return from call to 0x1A38 at 0x0B75 // Incoming return from call to 0x1A38 at 0x0B75 // Inputs[2] // { // @0B77 stack[-2] // @0B77 stack[-1] // } 0B76 5B JUMPDEST 0B77 14 EQ 0B78 61 PUSH2 0x0bb3 0B7B 57 *JUMPI // Stack delta = -2 // Block ends with conditional jump to 0x0bb3, if stack[-1] == stack[-2] label_0B7C: // Incoming jump from 0x0B7B, if not stack[-1] == stack[-2] // Inputs[3] // { // @0B7F memory[0x40:0x60] // @0BA9 memory[0x40:0x60] // @0BB2 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 0B7C 60 PUSH1 0x40 0B7E 80 DUP1 0B7F 51 MLOAD 0B80 60 PUSH1 0x01 0B82 60 PUSH1 0xe5 0B84 1B SHL 0B85 62 PUSH3 0x461bcd 0B89 02 MUL 0B8A 81 DUP2 0B8B 52 MSTORE 0B8C 60 PUSH1 0x20 0B8E 60 PUSH1 0x04 0B90 82 DUP3 0B91 01 ADD 0B92 52 MSTORE 0B93 60 PUSH1 0x02 0B95 60 PUSH1 0x24 0B97 82 DUP3 0B98 01 ADD 0B99 52 MSTORE 0B9A 60 PUSH1 0x01 0B9C 60 PUSH1 0xf0 0B9E 1B SHL 0B9F 61 PUSH2 0x4535 0BA2 02 MUL 0BA3 60 PUSH1 0x44 0BA5 82 DUP3 0BA6 01 ADD 0BA7 52 MSTORE 0BA8 90 SWAP1 0BA9 51 MLOAD 0BAA 90 SWAP1 0BAB 81 DUP2 0BAC 90 SWAP1 0BAD 03 SUB 0BAE 60 PUSH1 0x64 0BB0 01 ADD 0BB1 90 SWAP1 0BB2 FD *REVERT // Stack delta = +0 // Outputs[5] // { // @0B8B memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @0B92 memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @0B99 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x02 // @0BA7 memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x4535 * (0x01 << 0xf0) // @0BB2 revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_0BB3: // Incoming jump from 0x0B7B, if stack[-1] == stack[-2] // Inputs[6] // { // @0BB7 storage[0x00] // @0BBB memory[0x40:0x60] // @0BC9 address(this) // @0BD7 stack[-3] // @0BE0 memory[0x40:0x60] // @0C07 address((0x01 << 0xa0) - 0x01 & storage[0x00] / 0x01000000).code.length // } 0BB3 5B JUMPDEST 0BB4 60 PUSH1 0x00 0BB6 80 DUP1 0BB7 54 SLOAD 0BB8 60 PUSH1 0x40 0BBA 80 DUP1 0BBB 51 MLOAD 0BBC 60 PUSH1 0x01 0BBE 60 PUSH1 0xe1 0BC0 1B SHL 0BC1 63 PUSH4 0x78cb4c05 0BC6 02 MUL 0BC7 81 DUP2 0BC8 52 MSTORE 0BC9 30 ADDRESS 0BCA 60 PUSH1 0x04 0BCC 82 DUP3 0BCD 01 ADD 0BCE 52 MSTORE 0BCF 60 PUSH1 0x01 0BD1 60 PUSH1 0x01 0BD3 60 PUSH1 0xa0 0BD5 1B SHL 0BD6 03 SUB 0BD7 87 DUP8 0BD8 81 DUP2 0BD9 16 AND 0BDA 60 PUSH1 0x24 0BDC 83 DUP4 0BDD 01 ADD 0BDE 52 MSTORE 0BDF 91 SWAP2 0BE0 51 MLOAD 0BE1 63 PUSH4 0x01000000 0BE6 90 SWAP1 0BE7 93 SWAP4 0BE8 04 DIV 0BE9 90 SWAP1 0BEA 91 SWAP2 0BEB 16 AND 0BEC 91 SWAP2 0BED 63 PUSH4 0xf196980a 0BF2 91 SWAP2 0BF3 60 PUSH1 0x44 0BF5 80 DUP1 0BF6 82 DUP3 0BF7 01 ADD 0BF8 92 SWAP3 0BF9 60 PUSH1 0x20 0BFB 92 SWAP3 0BFC 90 SWAP1 0BFD 91 SWAP2 0BFE 90 SWAP1 0BFF 82 DUP3 0C00 90 SWAP1 0C01 03 SUB 0C02 01 ADD 0C03 81 DUP2 0C04 87 DUP8 0C05 87 DUP8 0C06 80 DUP1 0C07 3B EXTCODESIZE 0C08 15 ISZERO 0C09 80 DUP1 0C0A 15 ISZERO 0C0B 61 PUSH2 0x0c13 0C0E 57 *JUMPI // Stack delta = +11 // Outputs[14] // { // @0BB4 stack[0] = 0x00 // @0BC8 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x78cb4c05 * (0x01 << 0xe1) // @0BCE memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = address(this) // @0BDE memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = (0x01 << 0xa0) - 0x01 & stack[-3] // @0BEC stack[1] = (0x01 << 0xa0) - 0x01 & storage[0x00] / 0x01000000 // @0BF2 stack[2] = 0xf196980a // @0BF8 stack[3] = memory[0x40:0x60] + 0x44 // @0BFB stack[4] = 0x20 // @0BFD stack[5] = memory[0x40:0x60] // @0C02 stack[6] = memory[0x40:0x60] - memory[0x40:0x60] + 0x44 // @0C03 stack[7] = memory[0x40:0x60] // @0C04 stack[8] = 0x00 // @0C05 stack[9] = (0x01 << 0xa0) - 0x01 & storage[0x00] / 0x01000000 // @0C08 stack[10] = !address((0x01 << 0xa0) - 0x01 & storage[0x00] / 0x01000000).code.length // } // Block ends with conditional jump to 0x0c13, if !!address((0x01 << 0xa0) - 0x01 & storage[0x00] / 0x01000000).code.length label_0C0F: // Incoming jump from 0x0C0E, if not !!address((0x01 << 0xa0) - 0x01 & storage[0x00] / 0x01000000).code.length // Inputs[1] { @0C12 memory[0x00:0x00] } 0C0F 60 PUSH1 0x00 0C11 80 DUP1 0C12 FD *REVERT // Stack delta = +0 // Outputs[1] { @0C12 revert(memory[0x00:0x00]); } // Block terminates label_0C13: // Incoming jump from 0x0C0E, if !!address((0x01 << 0xa0) - 0x01 & storage[0x00] / 0x01000000).code.length // Inputs[9] // { // @0C15 msg.gas // @0C16 memory[stack[-4]:stack[-4] + stack[-5]] // @0C16 stack[-3] // @0C16 stack[-6] // @0C16 stack[-5] // @0C16 stack[-4] // @0C16 stack[-2] // @0C16 stack[-7] // @0C16 address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // } 0C13 5B JUMPDEST 0C14 50 POP 0C15 5A GAS 0C16 F1 CALL 0C17 15 ISZERO 0C18 80 DUP1 0C19 15 ISZERO 0C1A 61 PUSH2 0x0c27 0C1D 57 *JUMPI // Stack delta = -6 // Outputs[2] // { // @0C16 memory[stack[-6]:stack[-6] + stack[-7]] = address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // @0C17 stack[-7] = !address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // } // Block ends with conditional jump to 0x0c27, if !!address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) label_0C1E: // Incoming jump from 0x0C1D, if not !!address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // Inputs[4] // { // @0C1E returndata.length // @0C22 returndata[0x00:0x00 + returndata.length] // @0C23 returndata.length // @0C26 memory[0x00:0x00 + returndata.length] // } 0C1E 3D RETURNDATASIZE 0C1F 60 PUSH1 0x00 0C21 80 DUP1 0C22 3E RETURNDATACOPY 0C23 3D RETURNDATASIZE 0C24 60 PUSH1 0x00 0C26 FD *REVERT // Stack delta = +0 // Outputs[2] // { // @0C22 memory[0x00:0x00 + returndata.length] = returndata[0x00:0x00 + returndata.length] // @0C26 revert(memory[0x00:0x00 + returndata.length]); // } // Block terminates label_0C27: // Incoming jump from 0x0C1D, if !!address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // Inputs[2] // { // @0C2E memory[0x40:0x60] // @0C2F returndata.length // } 0C27 5B JUMPDEST 0C28 50 POP 0C29 50 POP 0C2A 50 POP 0C2B 50 POP 0C2C 60 PUSH1 0x40 0C2E 51 MLOAD 0C2F 3D RETURNDATASIZE 0C30 60 PUSH1 0x20 0C32 81 DUP2 0C33 10 LT 0C34 15 ISZERO 0C35 61 PUSH2 0x0c3d 0C38 57 *JUMPI // Stack delta = -2 // Outputs[2] // { // @0C2E stack[-4] = memory[0x40:0x60] // @0C2F stack[-3] = returndata.length // } // Block ends with conditional jump to 0x0c3d, if !(returndata.length < 0x20) label_0C39: // Incoming jump from 0x0C38, if not !(returndata.length < 0x20) // Inputs[1] { @0C3C memory[0x00:0x00] } 0C39 60 PUSH1 0x00 0C3B 80 DUP1 0C3C FD *REVERT // Stack delta = +0 // Outputs[1] { @0C3C revert(memory[0x00:0x00]); } // Block terminates label_0C3D: // Incoming jump from 0x0C38, if !(returndata.length < 0x20) // Inputs[3] // { // @0C3F stack[-2] // @0C3F memory[stack[-2]:stack[-2] + 0x20] // @0C40 stack[-3] // } 0C3D 5B JUMPDEST 0C3E 50 POP 0C3F 51 MLOAD 0C40 90 SWAP1 0C41 50 POP 0C42 80 DUP1 0C43 15 ISZERO 0C44 61 PUSH2 0x0c80 0C47 57 *JUMPI // Stack delta = -2 // Outputs[1] { @0C40 stack[-3] = memory[stack[-2]:stack[-2] + 0x20] } // Block ends with conditional jump to 0x0c80, if !memory[stack[-2]:stack[-2] + 0x20] label_0C48: // Incoming jump from 0x0C47, if not !memory[stack[-2]:stack[-2] + 0x20] // Inputs[3] // { // @0C4B memory[0x40:0x60] // @0C76 memory[0x40:0x60] // @0C7F memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 0C48 60 PUSH1 0x40 0C4A 80 DUP1 0C4B 51 MLOAD 0C4C 60 PUSH1 0x01 0C4E 60 PUSH1 0xe5 0C50 1B SHL 0C51 62 PUSH3 0x461bcd 0C55 02 MUL 0C56 81 DUP2 0C57 52 MSTORE 0C58 60 PUSH1 0x20 0C5A 60 PUSH1 0x04 0C5C 82 DUP3 0C5D 01 ADD 0C5E 52 MSTORE 0C5F 60 PUSH1 0x03 0C61 60 PUSH1 0x24 0C63 82 DUP3 0C64 01 ADD 0C65 52 MSTORE 0C66 60 PUSH1 0x01 0C68 60 PUSH1 0xec 0C6A 1B SHL 0C6B 62 PUSH3 0x045313 0C6F 02 MUL 0C70 60 PUSH1 0x44 0C72 82 DUP3 0C73 01 ADD 0C74 52 MSTORE 0C75 90 SWAP1 0C76 51 MLOAD 0C77 90 SWAP1 0C78 81 DUP2 0C79 90 SWAP1 0C7A 03 SUB 0C7B 60 PUSH1 0x64 0C7D 01 ADD 0C7E 90 SWAP1 0C7F FD *REVERT // Stack delta = +0 // Outputs[5] // { // @0C57 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @0C5E memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @0C65 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x03 // @0C74 memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x045313 * (0x01 << 0xec) // @0C7F revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_0C80: // Incoming jump from 0x0C47, if !memory[stack[-2]:stack[-2] + 0x20] 0C80 5B JUMPDEST 0C81 61 PUSH2 0x0c88 0C84 61 PUSH2 0x23f2 0C87 56 *JUMP // Stack delta = +1 // Outputs[1] { @0C81 stack[0] = 0x0c88 } // Block ends with call to 0x23f2, returns to 0x0C88 label_0C88: // Incoming return from call to 0x23F2 at 0x0C87 // Inputs[2] // { // @0C8B storage[0x08] // @0C8C stack[-1] // } 0C88 5B JUMPDEST 0C89 60 PUSH1 0x08 0C8B 54 SLOAD 0C8C 14 EQ 0C8D 61 PUSH2 0x0cc9 0C90 57 *JUMPI // Stack delta = -1 // Block ends with conditional jump to 0x0cc9, if storage[0x08] == stack[-1] label_0C91: // Incoming jump from 0x0C90, if not storage[0x08] == stack[-1] // Inputs[3] // { // @0C94 memory[0x40:0x60] // @0CBF memory[0x40:0x60] // @0CC8 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 0C91 60 PUSH1 0x40 0C93 80 DUP1 0C94 51 MLOAD 0C95 60 PUSH1 0x01 0C97 60 PUSH1 0xe5 0C99 1B SHL 0C9A 62 PUSH3 0x461bcd 0C9E 02 MUL 0C9F 81 DUP2 0CA0 52 MSTORE 0CA1 60 PUSH1 0x20 0CA3 60 PUSH1 0x04 0CA5 82 DUP3 0CA6 01 ADD 0CA7 52 MSTORE 0CA8 60 PUSH1 0x03 0CAA 60 PUSH1 0x24 0CAC 82 DUP3 0CAD 01 ADD 0CAE 52 MSTORE 0CAF 60 PUSH1 0x01 0CB1 60 PUSH1 0xeb 0CB3 1B SHL 0CB4 62 PUSH3 0x08a627 0CB8 02 MUL 0CB9 60 PUSH1 0x44 0CBB 82 DUP3 0CBC 01 ADD 0CBD 52 MSTORE 0CBE 90 SWAP1 0CBF 51 MLOAD 0CC0 90 SWAP1 0CC1 81 DUP2 0CC2 90 SWAP1 0CC3 03 SUB 0CC4 60 PUSH1 0x64 0CC6 01 ADD 0CC7 90 SWAP1 0CC8 FD *REVERT // Stack delta = +0 // Outputs[5] // { // @0CA0 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @0CA7 memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @0CAE memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x03 // @0CBD memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x08a627 * (0x01 << 0xeb) // @0CC8 revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_0CC9: // Incoming jump from 0x0C90, if storage[0x08] == stack[-1] 0CC9 5B JUMPDEST 0CCA 61 PUSH2 0x0cd1 0CCD 61 PUSH2 0x5311 0CD0 56 *JUMP // Stack delta = +1 // Outputs[1] { @0CCA stack[0] = 0x0cd1 } // Block ends with call to 0x5311, returns to 0x0CD1 label_0CD1: // Incoming return from call to 0x5311 at 0x0CD0 0CD1 5B JUMPDEST 0CD2 61 PUSH2 0x0cd9 0CD5 61 PUSH2 0x23f6 0CD8 56 *JUMP // Stack delta = +1 // Outputs[1] { @0CD2 stack[0] = 0x0cd9 } // Block ends with call to 0x23f6, returns to 0x0CD9 label_0CD9: // Incoming return from call to 0x23F6 at 0x0CD8 // Inputs[3] // { // @0CDC stack[-3] // @0CDE stack[-1] // @0CE5 stack[-2] // } 0CD9 5B JUMPDEST 0CDA 60 PUSH1 0x40 0CDC 83 DUP4 0CDD 01 ADD 0CDE 81 DUP2 0CDF 90 SWAP1 0CE0 52 MSTORE 0CE1 60 PUSH1 0x20 0CE3 83 DUP4 0CE4 01 ADD 0CE5 82 DUP3 0CE6 60 PUSH1 0x03 0CE8 81 DUP2 0CE9 11 GT 0CEA 15 ISZERO 0CEB 61 PUSH2 0x0cf0 0CEE 57 *JUMPI // Stack delta = +2 // Outputs[3] // { // @0CE0 memory[stack[-3] + 0x40:stack[-3] + 0x40 + 0x20] = stack[-1] // @0CE4 stack[0] = stack[-3] + 0x20 // @0CE5 stack[1] = stack[-2] // } // Block ends with conditional jump to 0x0cf0, if !(stack[-2] > 0x03) label_0CEF: // Incoming jump from 0x0CEE, if not !(stack[-2] > 0x03) 0CEF FE *ASSERT // Stack delta = +0 // Outputs[1] { @0CEF assert(); } // Block terminates label_0CF0: // Incoming jump from 0x0CEE, if !(stack[-2] > 0x03) // Inputs[1] { @0CF3 stack[-1] } 0CF0 5B JUMPDEST 0CF1 60 PUSH1 0x03 0CF3 81 DUP2 0CF4 11 GT 0CF5 15 ISZERO 0CF6 61 PUSH2 0x0cfb 0CF9 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0cfb, if !(stack[-1] > 0x03) label_0CFA: // Incoming jump from 0x0CF9, if not !(stack[-1] > 0x03) 0CFA FE *ASSERT // Stack delta = +0 // Outputs[1] { @0CFA assert(); } // Block terminates label_0CFB: // Incoming jump from 0x0CF9, if !(stack[-1] > 0x03) // Inputs[5] // { // @0CFC stack[-1] // @0CFC stack[-2] // @0D01 stack[-4] // @0D03 stack[-5] // @0D07 memory[0x20 + stack[-5]:0x20 + stack[-5] + 0x20] // } 0CFB 5B JUMPDEST 0CFC 90 SWAP1 0CFD 52 MSTORE 0CFE 50 POP 0CFF 60 PUSH1 0x00 0D01 90 SWAP1 0D02 50 POP 0D03 81 DUP2 0D04 60 PUSH1 0x20 0D06 01 ADD 0D07 51 MLOAD 0D08 60 PUSH1 0x03 0D0A 81 DUP2 0D0B 11 GT 0D0C 15 ISZERO 0D0D 61 PUSH2 0x0d12 0D10 57 *JUMPI // Stack delta = -2 // Outputs[3] // { // @0CFD memory[stack[-2]:stack[-2] + 0x20] = stack[-1] // @0D01 stack[-4] = 0x00 // @0D07 stack[-3] = memory[0x20 + stack[-5]:0x20 + stack[-5] + 0x20] // } // Block ends with conditional jump to 0x0d12, if !(memory[0x20 + stack[-5]:0x20 + stack[-5] + 0x20] > 0x03) label_0D11: // Incoming jump from 0x0D10, if not !(memory[0x20 + stack[-5]:0x20 + stack[-5] + 0x20] > 0x03) 0D11 FE *ASSERT // Stack delta = +0 // Outputs[1] { @0D11 assert(); } // Block terminates label_0D12: // Incoming jump from 0x0D10, if !(memory[0x20 + stack[-5]:0x20 + stack[-5] + 0x20] > 0x03) // Inputs[2] // { // @0D13 stack[-2] // @0D13 stack[-1] // } 0D12 5B JUMPDEST 0D13 14 EQ 0D14 61 PUSH2 0x0d50 0D17 57 *JUMPI // Stack delta = -2 // Block ends with conditional jump to 0x0d50, if stack[-1] == stack[-2] label_0D18: // Incoming jump from 0x0D17, if not stack[-1] == stack[-2] // Inputs[3] // { // @0D1B memory[0x40:0x60] // @0D46 memory[0x40:0x60] // @0D4F memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 0D18 60 PUSH1 0x40 0D1A 80 DUP1 0D1B 51 MLOAD 0D1C 60 PUSH1 0x01 0D1E 60 PUSH1 0xe5 0D20 1B SHL 0D21 62 PUSH3 0x461bcd 0D25 02 MUL 0D26 81 DUP2 0D27 52 MSTORE 0D28 60 PUSH1 0x20 0D2A 60 PUSH1 0x04 0D2C 82 DUP3 0D2D 01 ADD 0D2E 52 MSTORE 0D2F 60 PUSH1 0x03 0D31 60 PUSH1 0x24 0D33 82 DUP3 0D34 01 ADD 0D35 52 MSTORE 0D36 60 PUSH1 0x01 0D38 60 PUSH1 0xe9 0D3A 1B SHL 0D3B 62 PUSH3 0x229899 0D3F 02 MUL 0D40 60 PUSH1 0x44 0D42 82 DUP3 0D43 01 ADD 0D44 52 MSTORE 0D45 90 SWAP1 0D46 51 MLOAD 0D47 90 SWAP1 0D48 81 DUP2 0D49 90 SWAP1 0D4A 03 SUB 0D4B 60 PUSH1 0x64 0D4D 01 ADD 0D4E 90 SWAP1 0D4F FD *REVERT // Stack delta = +0 // Outputs[5] // { // @0D27 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @0D2E memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @0D35 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x03 // @0D44 memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x229899 * (0x01 << 0xe9) // @0D4F revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_0D50: // Incoming jump from 0x0D17, if stack[-1] == stack[-2] // Inputs[2] // { // @0D54 stack[-5] // @0D55 stack[-4] // } 0D50 5B JUMPDEST 0D51 61 PUSH2 0x0d5a 0D54 85 DUP6 0D55 85 DUP6 0D56 61 PUSH2 0x24a1 0D59 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @0D51 stack[0] = 0x0d5a // @0D54 stack[1] = stack[-5] // @0D55 stack[2] = stack[-4] // } // Block ends with call to 0x24a1, returns to 0x0D5A label_0D5A: // Incoming return from call to 0x24A1 at 0x0D59 // Inputs[4] // { // @0D5D stack[-2] // @0D5F stack[-1] // @0D65 memory[0x40:0x60] // @0D6F memory[stack[-2] + 0x40:stack[-2] + 0x40 + 0x20] // } 0D5A 5B JUMPDEST 0D5B 60 PUSH1 0xc0 0D5D 82 DUP3 0D5E 01 ADD 0D5F 81 DUP2 0D60 90 SWAP1 0D61 52 MSTORE 0D62 60 PUSH1 0x40 0D64 80 DUP1 0D65 51 MLOAD 0D66 60 PUSH1 0x20 0D68 81 DUP2 0D69 01 ADD 0D6A 82 DUP3 0D6B 52 MSTORE 0D6C 90 SWAP1 0D6D 83 DUP4 0D6E 01 ADD 0D6F 51 MLOAD 0D70 81 DUP2 0D71 52 MSTORE 0D72 61 PUSH2 0x0d7b 0D75 91 SWAP2 0D76 90 SWAP1 0D77 61 PUSH2 0x2532 0D7A 56 *JUMP // Stack delta = +2 // Outputs[6] // { // @0D61 memory[stack[-2] + 0xc0:stack[-2] + 0xc0 + 0x20] = stack[-1] // @0D6B memory[0x40:0x60] = memory[0x40:0x60] + 0x20 // @0D71 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = memory[stack[-2] + 0x40:stack[-2] + 0x40 + 0x20] // @0D75 stack[-1] = 0x0d7b // @0D76 stack[1] = memory[0x40:0x60] // @0D76 stack[0] = stack[-1] // } // Block ends with unconditional jump to 0x2532 0D7B 5B JUMPDEST 0D7C 60 PUSH1 0x60 0D7E 83 DUP4 0D7F 01 ADD 0D80 81 DUP2 0D81 90 SWAP1 0D82 52 MSTORE 0D83 60 PUSH1 0x20 0D85 83 DUP4 0D86 01 ADD 0D87 82 DUP3 0D88 60 PUSH1 0x03 0D8A 81 DUP2 0D8B 11 GT 0D8C 15 ISZERO 0D8D 61 PUSH2 0x0d92 0D90 57 *JUMPI 0D91 FE *ASSERT 0D92 5B JUMPDEST 0D93 60 PUSH1 0x03 0D95 81 DUP2 0D96 11 GT 0D97 15 ISZERO 0D98 61 PUSH2 0x0d9d 0D9B 57 *JUMPI 0D9C FE *ASSERT 0D9D 5B JUMPDEST 0D9E 90 SWAP1 0D9F 52 MSTORE 0DA0 50 POP 0DA1 60 PUSH1 0x00 0DA3 90 SWAP1 0DA4 50 POP 0DA5 81 DUP2 0DA6 60 PUSH1 0x20 0DA8 01 ADD 0DA9 51 MLOAD 0DAA 60 PUSH1 0x03 0DAC 81 DUP2 0DAD 11 GT 0DAE 15 ISZERO 0DAF 61 PUSH2 0x0db4 0DB2 57 *JUMPI 0DB3 FE *ASSERT 0DB4 5B JUMPDEST 0DB5 14 EQ 0DB6 61 PUSH2 0x0df2 0DB9 57 *JUMPI 0DBA 60 PUSH1 0x40 0DBC 80 DUP1 0DBD 51 MLOAD 0DBE 60 PUSH1 0x01 0DC0 60 PUSH1 0xe5 0DC2 1B SHL 0DC3 62 PUSH3 0x461bcd 0DC7 02 MUL 0DC8 81 DUP2 0DC9 52 MSTORE 0DCA 60 PUSH1 0x20 0DCC 60 PUSH1 0x04 0DCE 82 DUP3 0DCF 01 ADD 0DD0 52 MSTORE 0DD1 60 PUSH1 0x03 0DD3 60 PUSH1 0x24 0DD5 82 DUP3 0DD6 01 ADD 0DD7 52 MSTORE 0DD8 60 PUSH1 0x01 0DDA 60 PUSH1 0xe8 0DDC 1B SHL 0DDD 62 PUSH3 0x453133 0DE1 02 MUL 0DE2 60 PUSH1 0x44 0DE4 82 DUP3 0DE5 01 ADD 0DE6 52 MSTORE 0DE7 90 SWAP1 0DE8 51 MLOAD 0DE9 90 SWAP1 0DEA 81 DUP2 0DEB 90 SWAP1 0DEC 03 SUB 0DED 60 PUSH1 0x64 0DEF 01 ADD 0DF0 90 SWAP1 0DF1 FD *REVERT 0DF2 5B JUMPDEST 0DF3 60 PUSH1 0x01 0DF5 60 PUSH1 0x01 0DF7 60 PUSH1 0xa0 0DF9 1B SHL 0DFA 03 SUB 0DFB 85 DUP6 0DFC 16 AND 0DFD 60 PUSH1 0x00 0DFF 90 SWAP1 0E00 81 DUP2 0E01 52 MSTORE 0E02 60 PUSH1 0x0f 0E04 60 PUSH1 0x20 0E06 52 MSTORE 0E07 60 PUSH1 0x40 0E09 90 SWAP1 0E0A 20 SHA3 0E0B 54 SLOAD 0E0C 60 PUSH1 0xc0 0E0E 82 DUP3 0E0F 01 ADD 0E10 51 MLOAD 0E11 61 PUSH2 0x0e1a 0E14 91 SWAP2 0E15 90 SWAP1 0E16 61 PUSH2 0x2586 0E19 56 *JUMP 0E1A 5B JUMPDEST 0E1B 60 PUSH1 0xe0 0E1D 83 DUP4 0E1E 01 ADD 0E1F 81 DUP2 0E20 90 SWAP1 0E21 52 MSTORE 0E22 60 PUSH1 0x20 0E24 83 DUP4 0E25 01 ADD 0E26 82 DUP3 0E27 60 PUSH1 0x03 0E29 81 DUP2 0E2A 11 GT 0E2B 15 ISZERO 0E2C 61 PUSH2 0x0e31 0E2F 57 *JUMPI 0E30 FE *ASSERT 0E31 5B JUMPDEST 0E32 60 PUSH1 0x03 0E34 81 DUP2 0E35 11 GT 0E36 15 ISZERO 0E37 61 PUSH2 0x0e3c 0E3A 57 *JUMPI 0E3B FE *ASSERT 0E3C 5B JUMPDEST 0E3D 90 SWAP1 0E3E 52 MSTORE 0E3F 50 POP 0E40 60 PUSH1 0x00 0E42 90 SWAP1 0E43 50 POP 0E44 81 DUP2 0E45 60 PUSH1 0x20 0E47 01 ADD 0E48 51 MLOAD 0E49 60 PUSH1 0x03 0E4B 81 DUP2 0E4C 11 GT 0E4D 15 ISZERO 0E4E 61 PUSH2 0x0e53 0E51 57 *JUMPI 0E52 FE *ASSERT 0E53 5B JUMPDEST 0E54 14 EQ 0E55 61 PUSH2 0x0e91 0E58 57 *JUMPI 0E59 60 PUSH1 0x40 0E5B 80 DUP1 0E5C 51 MLOAD 0E5D 60 PUSH1 0x01 0E5F 60 PUSH1 0xe5 0E61 1B SHL 0E62 62 PUSH3 0x461bcd 0E66 02 MUL 0E67 81 DUP2 0E68 52 MSTORE 0E69 60 PUSH1 0x20 0E6B 60 PUSH1 0x04 0E6D 82 DUP3 0E6E 01 ADD 0E6F 52 MSTORE 0E70 60 PUSH1 0x03 0E72 60 PUSH1 0x24 0E74 82 DUP3 0E75 01 ADD 0E76 52 MSTORE 0E77 60 PUSH1 0x01 0E79 60 PUSH1 0xe9 0E7B 1B SHL 0E7C 62 PUSH3 0x22989b 0E80 02 MUL 0E81 60 PUSH1 0x44 0E83 82 DUP3 0E84 01 ADD 0E85 52 MSTORE 0E86 90 SWAP1 0E87 51 MLOAD 0E88 90 SWAP1 0E89 81 DUP2 0E8A 90 SWAP1 0E8B 03 SUB 0E8C 60 PUSH1 0x64 0E8E 01 ADD 0E8F 90 SWAP1 0E90 FD *REVERT 0E91 5B JUMPDEST 0E92 60 PUSH1 0xe0 0E94 81 DUP2 0E95 01 ADD 0E96 51 MLOAD 0E97 60 PUSH1 0x01 0E99 60 PUSH1 0x01 0E9B 60 PUSH1 0xa0 0E9D 1B SHL 0E9E 03 SUB 0E9F 86 DUP7 0EA0 16 AND 0EA1 60 PUSH1 0x00 0EA3 90 SWAP1 0EA4 81 DUP2 0EA5 52 MSTORE 0EA6 60 PUSH1 0x0f 0EA8 60 PUSH1 0x20 0EAA 52 MSTORE 0EAB 60 PUSH1 0x40 0EAD 90 SWAP1 0EAE 20 SHA3 0EAF 55 SSTORE 0EB0 60 PUSH1 0x07 0EB2 54 SLOAD 0EB3 60 PUSH1 0x60 0EB5 82 DUP3 0EB6 01 ADD 0EB7 51 MLOAD 0EB8 61 PUSH2 0x0ec1 0EBB 91 SWAP2 0EBC 90 SWAP1 0EBD 61 PUSH2 0x2586 0EC0 56 *JUMP 0EC1 5B JUMPDEST 0EC2 60 PUSH1 0x80 0EC4 83 DUP4 0EC5 01 ADD 0EC6 81 DUP2 0EC7 90 SWAP1 0EC8 52 MSTORE 0EC9 60 PUSH1 0x20 0ECB 83 DUP4 0ECC 01 ADD 0ECD 82 DUP3 0ECE 60 PUSH1 0x03 0ED0 81 DUP2 0ED1 11 GT 0ED2 15 ISZERO 0ED3 61 PUSH2 0x0ed8 0ED6 57 *JUMPI 0ED7 FE *ASSERT 0ED8 5B JUMPDEST 0ED9 60 PUSH1 0x03 0EDB 81 DUP2 0EDC 11 GT 0EDD 15 ISZERO 0EDE 61 PUSH2 0x0ee3 0EE1 57 *JUMPI 0EE2 FE *ASSERT 0EE3 5B JUMPDEST 0EE4 90 SWAP1 0EE5 52 MSTORE 0EE6 50 POP 0EE7 60 PUSH1 0x00 0EE9 90 SWAP1 0EEA 50 POP 0EEB 81 DUP2 0EEC 60 PUSH1 0x20 0EEE 01 ADD 0EEF 51 MLOAD 0EF0 60 PUSH1 0x03 0EF2 81 DUP2 0EF3 11 GT 0EF4 15 ISZERO 0EF5 61 PUSH2 0x0efa 0EF8 57 *JUMPI 0EF9 FE *ASSERT 0EFA 5B JUMPDEST 0EFB 14 EQ 0EFC 61 PUSH2 0x0f38 0EFF 57 *JUMPI 0F00 60 PUSH1 0x40 0F02 80 DUP1 0F03 51 MLOAD 0F04 60 PUSH1 0x01 0F06 60 PUSH1 0xe5 0F08 1B SHL 0F09 62 PUSH3 0x461bcd 0F0D 02 MUL 0F0E 81 DUP2 0F0F 52 MSTORE 0F10 60 PUSH1 0x20 0F12 60 PUSH1 0x04 0F14 82 DUP3 0F15 01 ADD 0F16 52 MSTORE 0F17 60 PUSH1 0x03 0F19 60 PUSH1 0x24 0F1B 82 DUP3 0F1C 01 ADD 0F1D 52 MSTORE 0F1E 60 PUSH1 0x01 0F20 60 PUSH1 0xea 0F22 1B SHL 0F23 62 PUSH3 0x114c4d 0F27 02 MUL 0F28 60 PUSH1 0x44 0F2A 82 DUP3 0F2B 01 ADD 0F2C 52 MSTORE 0F2D 90 SWAP1 0F2E 51 MLOAD 0F2F 90 SWAP1 0F30 81 DUP2 0F31 90 SWAP1 0F32 03 SUB 0F33 60 PUSH1 0x64 0F35 01 ADD 0F36 90 SWAP1 0F37 FD *REVERT 0F38 5B JUMPDEST 0F39 60 PUSH1 0x01 0F3B 60 PUSH1 0x01 0F3D 60 PUSH1 0xa0 0F3F 1B SHL 0F40 03 SUB 0F41 85 DUP6 0F42 16 AND 0F43 60 PUSH1 0x00 0F45 90 SWAP1 0F46 81 DUP2 0F47 52 MSTORE 0F48 60 PUSH1 0x0d 0F4A 60 PUSH1 0x20 0F4C 52 MSTORE 0F4D 60 PUSH1 0x40 0F4F 90 SWAP1 0F50 20 SHA3 0F51 54 SLOAD 0F52 60 PUSH1 0x60 0F54 82 DUP3 0F55 01 ADD 0F56 51 MLOAD 0F57 61 PUSH2 0x0f60 0F5A 91 SWAP2 0F5B 90 SWAP1 0F5C 61 PUSH2 0x2586 0F5F 56 *JUMP 0F60 5B JUMPDEST 0F61 60 PUSH1 0xa0 0F63 83 DUP4 0F64 01 ADD 0F65 81 DUP2 0F66 90 SWAP1 0F67 52 MSTORE 0F68 60 PUSH1 0x20 0F6A 83 DUP4 0F6B 01 ADD 0F6C 82 DUP3 0F6D 60 PUSH1 0x03 0F6F 81 DUP2 0F70 11 GT 0F71 15 ISZERO 0F72 61 PUSH2 0x0f77 0F75 57 *JUMPI 0F76 FE *ASSERT 0F77 5B JUMPDEST 0F78 60 PUSH1 0x03 0F7A 81 DUP2 0F7B 11 GT 0F7C 15 ISZERO 0F7D 61 PUSH2 0x0f82 0F80 57 *JUMPI 0F81 FE *ASSERT 0F82 5B JUMPDEST 0F83 90 SWAP1 0F84 52 MSTORE 0F85 50 POP 0F86 60 PUSH1 0x00 0F88 90 SWAP1 0F89 50 POP 0F8A 81 DUP2 0F8B 60 PUSH1 0x20 0F8D 01 ADD 0F8E 51 MLOAD 0F8F 60 PUSH1 0x03 0F91 81 DUP2 0F92 11 GT 0F93 15 ISZERO 0F94 61 PUSH2 0x0f99 0F97 57 *JUMPI 0F98 FE *ASSERT 0F99 5B JUMPDEST 0F9A 14 EQ 0F9B 61 PUSH2 0x0fd7 0F9E 57 *JUMPI 0F9F 60 PUSH1 0x40 0FA1 80 DUP1 0FA2 51 MLOAD 0FA3 60 PUSH1 0x01 0FA5 60 PUSH1 0xe5 0FA7 1B SHL 0FA8 62 PUSH3 0x461bcd 0FAC 02 MUL 0FAD 81 DUP2 0FAE 52 MSTORE 0FAF 60 PUSH1 0x20 0FB1 60 PUSH1 0x04 0FB3 82 DUP3 0FB4 01 ADD 0FB5 52 MSTORE 0FB6 60 PUSH1 0x03 0FB8 60 PUSH1 0x24 0FBA 82 DUP3 0FBB 01 ADD 0FBC 52 MSTORE 0FBD 60 PUSH1 0x01 0FBF 60 PUSH1 0xe8 0FC1 1B SHL 0FC2 62 PUSH3 0x453135 0FC6 02 MUL 0FC7 60 PUSH1 0x44 0FC9 82 DUP3 0FCA 01 ADD 0FCB 52 MSTORE 0FCC 90 SWAP1 0FCD 51 MLOAD 0FCE 90 SWAP1 0FCF 81 DUP2 0FD0 90 SWAP1 0FD1 03 SUB 0FD2 60 PUSH1 0x64 0FD4 01 ADD 0FD5 90 SWAP1 0FD6 FD *REVERT 0FD7 5B JUMPDEST 0FD8 60 PUSH1 0x80 0FDA 81 DUP2 0FDB 01 ADD 0FDC 51 MLOAD 0FDD 60 PUSH1 0x07 0FDF 55 SSTORE 0FE0 60 PUSH1 0xa0 0FE2 81 DUP2 0FE3 01 ADD 0FE4 51 MLOAD 0FE5 60 PUSH1 0x01 0FE7 60 PUSH1 0x01 0FE9 60 PUSH1 0xa0 0FEB 1B SHL 0FEC 03 SUB 0FED 86 DUP7 0FEE 16 AND 0FEF 60 PUSH1 0x00 0FF1 81 DUP2 0FF2 81 DUP2 0FF3 52 MSTORE 0FF4 60 PUSH1 0x0d 0FF6 60 PUSH1 0x20 0FF8 90 SWAP1 0FF9 81 DUP2 0FFA 52 MSTORE 0FFB 60 PUSH1 0x40 0FFD 91 SWAP2 0FFE 82 DUP3 0FFF 90 SWAP1 1000 20 SHA3 1001 93 SWAP4 1002 90 SWAP1 1003 93 SWAP4 1004 55 SSTORE 1005 60 PUSH1 0xc0 1007 84 DUP5 1008 01 ADD 1009 51 MLOAD 100A 60 PUSH1 0x60 100C 80 DUP1 100D 86 DUP7 100E 01 ADD 100F 51 MLOAD 1010 83 DUP4 1011 51 MLOAD 1012 94 SWAP5 1013 85 DUP6 1014 52 MSTORE 1015 94 SWAP5 1016 84 DUP5 1017 01 ADD 1018 91 SWAP2 1019 90 SWAP1 101A 91 SWAP2 101B 52 MSTORE 101C 82 DUP3 101D 82 DUP3 101E 01 ADD 101F 93 SWAP4 1020 90 SWAP1 1021 93 SWAP4 1022 52 MSTORE 1023 51 MLOAD 1024 7F PUSH32 0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f 1045 92 SWAP3 1046 91 SWAP2 1047 81 DUP2 1048 90 SWAP1 1049 03 SUB 104A 90 SWAP1 104B 91 SWAP2 104C 01 ADD 104D 90 SWAP1 104E A1 LOG1 104F 60 PUSH1 0x60 1051 81 DUP2 1052 01 ADD 1053 51 MLOAD 1054 60 PUSH1 0x40 1056 80 DUP1 1057 51 MLOAD 1058 91 SWAP2 1059 82 DUP3 105A 52 MSTORE 105B 51 MLOAD 105C 60 PUSH1 0x01 105E 60 PUSH1 0x01 1060 60 PUSH1 0xa0 1062 1B SHL 1063 03 SUB 1064 87 DUP8 1065 16 AND 1066 91 SWAP2 1067 30 ADDRESS 1068 91 SWAP2 1069 60 PUSH1 0x00 106B 80 DUP1 106C 51 MLOAD 106D 60 PUSH1 0x20 106F 61 PUSH2 0x54d1 1072 83 DUP4 1073 39 CODECOPY 1074 81 DUP2 1075 51 MLOAD 1076 91 SWAP2 1077 52 MSTORE 1078 91 SWAP2 1079 81 DUP2 107A 90 SWAP1 107B 03 SUB 107C 60 PUSH1 0x20 107E 01 ADD 107F 90 SWAP1 1080 A3 LOG3 1081 60 PUSH1 0xc0 1083 01 ADD 1084 51 MLOAD 1085 91 SWAP2 1086 50 POP 1087 50 POP 1088 60 PUSH1 0x00 108A 80 DUP1 108B 54 SLOAD 108C 62 PUSH3 0xff0000 1090 19 NOT 1091 16 AND 1092 62 PUSH3 0x010000 1096 17 OR 1097 90 SWAP1 1098 55 SSTORE 1099 92 SWAP3 109A 91 SWAP2 109B 50 POP 109C 50 POP 109D 56 *JUMP label_109E: // Incoming call from 0x02A9, returns to 0x02AA // Inputs[2] // { // @10A2 storage[0x03] // @10A6 memory[0x40:0x60] // } 109E 5B JUMPDEST 109F 60 PUSH1 0x03 10A1 80 DUP1 10A2 54 SLOAD 10A3 60 PUSH1 0x40 10A5 80 DUP1 10A6 51 MLOAD 10A7 60 PUSH1 0x20 10A9 60 PUSH1 0x02 10AB 60 PUSH1 0x01 10AD 85 DUP6 10AE 16 AND 10AF 15 ISZERO 10B0 61 PUSH2 0x0100 10B3 02 MUL 10B4 60 PUSH1 0x00 10B6 19 NOT 10B7 01 ADD 10B8 90 SWAP1 10B9 94 SWAP5 10BA 16 AND 10BB 93 SWAP4 10BC 90 SWAP1 10BD 93 SWAP4 10BE 04 DIV 10BF 60 PUSH1 0x1f 10C1 81 DUP2 10C2 01 ADD 10C3 84 DUP5 10C4 90 SWAP1 10C5 04 DIV 10C6 84 DUP5 10C7 02 MUL 10C8 82 DUP3 10C9 01 ADD 10CA 84 DUP5 10CB 01 ADD 10CC 90 SWAP1 10CD 92 SWAP3 10CE 52 MSTORE 10CF 81 DUP2 10D0 81 DUP2 10D1 52 MSTORE 10D2 92 SWAP3 10D3 91 SWAP2 10D4 83 DUP4 10D5 01 ADD 10D6 82 DUP3 10D7 82 DUP3 10D8 80 DUP1 10D9 15 ISZERO 10DA 61 PUSH2 0x1124 10DD 57 *JUMPI // Stack delta = +6 // Outputs[8] // { // @10CD stack[2] = (storage[0x03] & ~0x00 + 0x0100 * !(storage[0x03] & 0x01)) / 0x02 // @10CE memory[0x40:0x60] = 0x20 + memory[0x40:0x60] + 0x20 * (((storage[0x03] & ~0x00 + 0x0100 * !(storage[0x03] & 0x01)) / 0x02 + 0x1f) / 0x20) // @10D1 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = (storage[0x03] & ~0x00 + 0x0100 * !(storage[0x03] & 0x01)) / 0x02 // @10D2 stack[0] = memory[0x40:0x60] // @10D3 stack[1] = 0x03 // @10D5 stack[3] = memory[0x40:0x60] + 0x20 // @10D6 stack[4] = 0x03 // @10D7 stack[5] = (storage[0x03] & ~0x00 + 0x0100 * !(storage[0x03] & 0x01)) / 0x02 // } // Block ends with conditional jump to 0x1124, if !((storage[0x03] & ~0x00 + 0x0100 * !(storage[0x03] & 0x01)) / 0x02) label_10DE: // Incoming jump from 0x10DD, if not !((storage[0x03] & ~0x00 + 0x0100 * !(storage[0x03] & 0x01)) / 0x02) // Inputs[1] { @10DE stack[-1] } 10DE 80 DUP1 10DF 60 PUSH1 0x1f 10E1 10 LT 10E2 61 PUSH2 0x10f9 10E5 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x10f9, if 0x1f < stack[-1] label_10E6: // Incoming jump from 0x10E5, if not 0x1f < stack[-1] // Inputs[4] // { // @10EA stack[-2] // @10EB storage[stack[-2]] // @10EE stack[-3] // @10F0 stack[-1] // } 10E6 61 PUSH2 0x0100 10E9 80 DUP1 10EA 83 DUP4 10EB 54 SLOAD 10EC 04 DIV 10ED 02 MUL 10EE 83 DUP4 10EF 52 MSTORE 10F0 91 SWAP2 10F1 60 PUSH1 0x20 10F3 01 ADD 10F4 91 SWAP2 10F5 61 PUSH2 0x1124 10F8 56 *JUMP // Stack delta = +0 // Outputs[3] // { // @10EF memory[stack[-3]:stack[-3] + 0x20] = storage[stack[-2]] / 0x0100 * 0x0100 // @10F4 stack[-1] = stack[-1] // @10F4 stack[-3] = 0x20 + stack[-3] // } // Block ends with unconditional jump to 0x1124 label_10F9: // Incoming jump from 0x19C5, if 0x1f < stack[-1] // Incoming jump from 0x10E5, if 0x1f < stack[-1] // Inputs[5] // { // @10FA stack[-3] // @10FB stack[-1] // @10FD stack[-2] // @1105 memory[0x00:0x20] // @1109 storage[keccak256(memory[0x00:0x20])] // } 10F9 5B JUMPDEST 10FA 82 DUP3 10FB 01 ADD 10FC 91 SWAP2 10FD 90 SWAP1 10FE 60 PUSH1 0x00 1100 52 MSTORE 1101 60 PUSH1 0x20 1103 60 PUSH1 0x00 1105 20 SHA3 1106 90 SWAP1 1107 5B JUMPDEST 1108 81 DUP2 1109 54 SLOAD 110A 81 DUP2 110B 52 MSTORE 110C 90 SWAP1 110D 60 PUSH1 0x01 110F 01 ADD 1110 90 SWAP1 1111 60 PUSH1 0x20 1113 01 ADD 1114 80 DUP1 1115 83 DUP4 1116 11 GT 1117 61 PUSH2 0x1107 111A 57 *JUMPI // Stack delta = +0 // Outputs[5] // { // @10FC stack[-3] = stack[-3] + stack[-1] // @1100 memory[0x00:0x20] = stack[-2] // @110B memory[stack[-3]:stack[-3] + 0x20] = storage[keccak256(memory[0x00:0x20])] // @1110 stack[-2] = 0x01 + keccak256(memory[0x00:0x20]) // @1113 stack[-1] = 0x20 + stack[-3] // } // Block ends with conditional jump to 0x1107, if stack[-3] + stack[-1] > 0x20 + stack[-3] label_111B: // Incoming jump from 0x111A, if not stack[-3] > 0x20 + stack[-1] // Incoming jump from 0x111A, if not stack[-3] + stack[-1] > 0x20 + stack[-3] // Inputs[2] // { // @111B stack[-3] // @111C stack[-1] // } 111B 82 DUP3 111C 90 SWAP1 111D 03 SUB 111E 60 PUSH1 0x1f 1120 16 AND 1121 82 DUP3 1122 01 ADD 1123 91 SWAP2 // Stack delta = +0 // Outputs[2] // { // @1123 stack[-3] = stack[-3] + (0x1f & stack[-1] - stack[-3]) // @1123 stack[-1] = stack[-3] // } // Block continues label_1124: // Incoming jump from 0x10DD, if !((storage[0x03] & ~0x00 + 0x0100 * !(storage[0x03] & 0x01)) / 0x02) // Incoming jump from 0x19D8 // Incoming jump from 0x10F8 // Incoming jump from 0x1123 // Incoming jump from 0x19BD, if !((storage[0x04] & ~0x00 + 0x0100 * !(storage[0x04] & 0x01)) / 0x02) // Inputs[1] { @112A stack[-7] } 1124 5B JUMPDEST 1125 50 POP 1126 50 POP 1127 50 POP 1128 50 POP 1129 50 POP 112A 81 DUP2 112B 56 *JUMP // Stack delta = -5 // Block ends with unconditional jump to stack[-7] label_112C: // Incoming jump from 0x0357 // Inputs[9] // { // @112D msg.sender // @113E memory[0x00:0x40] // @1147 stack[-2] // @1151 memory[0x00:0x40] // @1152 stack[-1] // @1156 memory[0x40:0x60] // @115B memory[0x40:0x60] // @118D memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20 + (memory[0x40:0x60] - memory[0x40:0x60])] // @1191 stack[-3] // } 112C 5B JUMPDEST 112D 33 CALLER 112E 60 PUSH1 0x00 1130 81 DUP2 1131 81 DUP2 1132 52 MSTORE 1133 60 PUSH1 0x0e 1135 60 PUSH1 0x20 1137 90 SWAP1 1138 81 DUP2 1139 52 MSTORE 113A 60 PUSH1 0x40 113C 80 DUP1 113D 83 DUP4 113E 20 SHA3 113F 60 PUSH1 0x01 1141 60 PUSH1 0x01 1143 60 PUSH1 0xa0 1145 1B SHL 1146 03 SUB 1147 87 DUP8 1148 16 AND 1149 80 DUP1 114A 85 DUP6 114B 52 MSTORE 114C 90 SWAP1 114D 83 DUP4 114E 52 MSTORE 114F 81 DUP2 1150 84 DUP5 1151 20 SHA3 1152 86 DUP7 1153 90 SWAP1 1154 55 SSTORE 1155 81 DUP2 1156 51 MLOAD 1157 86 DUP7 1158 81 DUP2 1159 52 MSTORE 115A 91 SWAP2 115B 51 MLOAD 115C 93 SWAP4 115D 94 SWAP5 115E 93 SWAP4 115F 90 SWAP1 1160 92 SWAP3 1161 84 DUP5 1162 92 SWAP3 1163 7F PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 1184 92 SWAP3 1185 90 SWAP1 1186 81 DUP2 1187 90 SWAP1 1188 03 SUB 1189 90 SWAP1 118A 91 SWAP2 118B 01 ADD 118C 90 SWAP1 118D A3 LOG3 118E 50 POP 118F 60 PUSH1 0x01 1191 93 SWAP4 1192 92 SWAP3 1193 50 POP 1194 50 POP 1195 50 POP 1196 56 *JUMP // Stack delta = -2 // Outputs[8] // { // @1132 memory[0x00:0x20] = msg.sender // @1139 memory[0x20:0x40] = 0x0e // @114B memory[0x00:0x20] = stack[-2] & (0x01 << 0xa0) - 0x01 // @114E memory[0x20:0x40] = keccak256(memory[0x00:0x40]) // @1154 storage[keccak256(memory[0x00:0x40])] = stack[-1] // @1159 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = stack[-1] // @118D log(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20 + (memory[0x40:0x60] - memory[0x40:0x60])], [0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925, msg.sender, stack[-2] & (0x01 << 0xa0) - 0x01]); // @1191 stack[-3] = 0x01 // } // Block ends with unconditional jump to stack[-3] label_1197: // Incoming jump from 0x0373 // Inputs[2] // { // @119D msg.sender // @119E msg.value // } 1197 5B JUMPDEST 1198 60 PUSH1 0x00 119A 61 PUSH2 0x11a3 119D 33 CALLER 119E 34 CALLVALUE 119F 61 PUSH2 0x0b18 11A2 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @1198 stack[0] = 0x00 // @119A stack[1] = 0x11a3 // @119D stack[2] = msg.sender // @119E stack[3] = msg.value // } // Block ends with unconditional jump to 0x0b18 label_11A3: // Incoming return from call to 0x4105 at 0x23F1 // Incoming return from call to 0x306E at 0x1571 // Inputs[2] // { // @11A4 stack[-1] // @11A4 stack[-2] // } 11A3 5B JUMPDEST 11A4 90 SWAP1 11A5 50 POP // Stack delta = -1 // Outputs[1] { @11A4 stack[-2] = stack[-1] } // Block continues label_11A6: // Incoming jump from 0x1A5B // Incoming jump from 0x11A5 // Incoming return from call to 0x544D at 0x5496 // Inputs[2] // { // @11A7 stack[-1] // @11A7 stack[-2] // } 11A6 5B JUMPDEST 11A7 90 SWAP1 11A8 56 *JUMP // Stack delta = -1 // Outputs[1] { @11A7 stack[-2] = stack[-1] } // Block ends with unconditional jump to stack[-2] label_11A9: // Incoming call from 0x039A, returns to 0x0374 // Inputs[2] // { // @11AC storage[0x0b] // @11AD stack[-1] // } 11A9 5B JUMPDEST 11AA 60 PUSH1 0x0b 11AC 54 SLOAD 11AD 81 DUP2 11AE 56 *JUMP // Stack delta = +1 // Outputs[1] { @11AC stack[0] = storage[0x0b] } // Block ends with unconditional jump to stack[-1] label_11AF: // Incoming jump from 0x03CD // Inputs[1] { @11B3 storage[0x00] } 11AF 5B JUMPDEST 11B0 60 PUSH1 0x00 11B2 80 DUP1 11B3 54 SLOAD 11B4 62 PUSH3 0x010000 11B8 90 SWAP1 11B9 04 DIV 11BA 60 PUSH1 0xff 11BC 16 AND 11BD 61 PUSH2 0x11f9 11C0 57 *JUMPI // Stack delta = +1 // Outputs[1] { @11B0 stack[0] = 0x00 } // Block ends with conditional jump to 0x11f9, if 0xff & storage[0x00] / 0x010000 label_11C1: // Incoming jump from 0x11C0, if not 0xff & storage[0x00] / 0x010000 // Inputs[3] // { // @11C4 memory[0x40:0x60] // @11EF memory[0x40:0x60] // @11F8 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 11C1 60 PUSH1 0x40 11C3 80 DUP1 11C4 51 MLOAD 11C5 60 PUSH1 0x01 11C7 60 PUSH1 0xe5 11C9 1B SHL 11CA 62 PUSH3 0x461bcd 11CE 02 MUL 11CF 81 DUP2 11D0 52 MSTORE 11D1 60 PUSH1 0x20 11D3 60 PUSH1 0x04 11D5 82 DUP3 11D6 01 ADD 11D7 52 MSTORE 11D8 60 PUSH1 0x03 11DA 60 PUSH1 0x24 11DC 82 DUP3 11DD 01 ADD 11DE 52 MSTORE 11DF 60 PUSH1 0x01 11E1 60 PUSH1 0xe8 11E3 1B SHL 11E4 62 PUSH3 0x453637 11E8 02 MUL 11E9 60 PUSH1 0x44 11EB 82 DUP3 11EC 01 ADD 11ED 52 MSTORE 11EE 90 SWAP1 11EF 51 MLOAD 11F0 90 SWAP1 11F1 81 DUP2 11F2 90 SWAP1 11F3 03 SUB 11F4 60 PUSH1 0x64 11F6 01 ADD 11F7 90 SWAP1 11F8 FD *REVERT // Stack delta = +0 // Outputs[5] // { // @11D0 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @11D7 memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @11DE memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x03 // @11ED memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x453637 * (0x01 << 0xe8) // @11F8 revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_11F9: // Incoming jump from 0x11C0, if 0xff & storage[0x00] / 0x010000 // Inputs[1] { @11FD storage[0x00] } 11F9 5B JUMPDEST 11FA 60 PUSH1 0x00 11FC 80 DUP1 11FD 54 SLOAD 11FE 62 PUSH3 0xff0000 1202 19 NOT 1203 16 AND 1204 81 DUP2 1205 55 SSTORE 1206 61 PUSH2 0x120d 1209 61 PUSH2 0x1a38 120C 56 *JUMP // Stack delta = +2 // Outputs[3] // { // @11FA stack[0] = 0x00 // @1205 storage[0x00] = ~0xff0000 & storage[0x00] // @1206 stack[1] = 0x120d // } // Block ends with call to 0x1a38, returns to 0x120D label_120D: // Incoming return from call to 0x1A38 at 0x120C // Incoming return from call to 0x1A38 at 0x120C // Inputs[2] // { // @120E stack[-1] // @120E stack[-2] // } 120D 5B JUMPDEST 120E 14 EQ 120F 61 PUSH2 0x124a 1212 57 *JUMPI // Stack delta = -2 // Block ends with conditional jump to 0x124a, if stack[-1] == stack[-2] label_1213: // Incoming jump from 0x1212, if not stack[-1] == stack[-2] // Inputs[3] // { // @1216 memory[0x40:0x60] // @1240 memory[0x40:0x60] // @1249 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 1213 60 PUSH1 0x40 1215 80 DUP1 1216 51 MLOAD 1217 60 PUSH1 0x01 1219 60 PUSH1 0xe5 121B 1B SHL 121C 62 PUSH3 0x461bcd 1220 02 MUL 1221 81 DUP2 1222 52 MSTORE 1223 60 PUSH1 0x20 1225 60 PUSH1 0x04 1227 82 DUP3 1228 01 ADD 1229 52 MSTORE 122A 60 PUSH1 0x02 122C 60 PUSH1 0x24 122E 82 DUP3 122F 01 ADD 1230 52 MSTORE 1231 60 PUSH1 0x01 1233 60 PUSH1 0xf0 1235 1B SHL 1236 61 PUSH2 0x4535 1239 02 MUL 123A 60 PUSH1 0x44 123C 82 DUP3 123D 01 ADD 123E 52 MSTORE 123F 90 SWAP1 1240 51 MLOAD 1241 90 SWAP1 1242 81 DUP2 1243 90 SWAP1 1244 03 SUB 1245 60 PUSH1 0x64 1247 01 ADD 1248 90 SWAP1 1249 FD *REVERT // Stack delta = +0 // Outputs[5] // { // @1222 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @1229 memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @1230 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x02 // @123E memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x4535 * (0x01 << 0xf0) // @1249 revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_124A: // Incoming jump from 0x1212, if stack[-1] == stack[-2] // Inputs[1] { @124E stack[-2] } 124A 5B JUMPDEST 124B 61 PUSH2 0x1253 124E 82 DUP3 124F 61 PUSH2 0x19d9 1252 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @124B stack[0] = 0x1253 // @124E stack[1] = stack[-2] // } // Block ends with call to 0x19d9, returns to 0x1253 label_1253: // Incoming return from call to 0x4E3D at 0x3B3A // Incoming return from call to 0x19D9 at 0x1252 // Inputs[5] // { // @1254 stack[-1] // @1254 stack[-2] // @1259 storage[0x00] // @1267 stack[-4] // @1268 stack[-3] // } 1253 5B JUMPDEST 1254 90 SWAP1 1255 50 POP 1256 60 PUSH1 0x00 1258 80 DUP1 1259 54 SLOAD 125A 62 PUSH3 0xff0000 125E 19 NOT 125F 16 AND 1260 62 PUSH3 0x010000 1264 17 OR 1265 90 SWAP1 1266 55 SSTORE 1267 91 SWAP2 1268 90 SWAP1 1269 50 POP 126A 56 *JUMP // Stack delta = -3 // Outputs[2] // { // @1266 storage[0x00] = 0x010000 | (~0xff0000 & storage[0x00]) // @1267 stack[-4] = stack[-1] // } // Block ends with unconditional jump to stack[-4] label_126B: // Incoming call from 0x03E2, returns to 0x0374 // Inputs[2] // { // @126E storage[0x07] // @126F stack[-1] // } 126B 5B JUMPDEST 126C 60 PUSH1 0x07 126E 54 SLOAD 126F 81 DUP2 1270 56 *JUMP // Stack delta = +1 // Outputs[1] { @126E stack[0] = storage[0x07] } // Block ends with unconditional jump to stack[-1] label_1271: // Incoming call from 0x03F7, returns to 0x0374 // Incoming call from 0x2041, returns to 0x2042 1271 5B JUMPDEST 1272 60 PUSH1 0x00 1274 80 DUP1 1275 60 PUSH1 0x00 1277 61 PUSH2 0x127e 127A 61 PUSH2 0x23f6 127D 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @1272 stack[0] = 0x00 // @1274 stack[1] = 0x00 // @1275 stack[2] = 0x00 // @1277 stack[3] = 0x127e // } // Block ends with call to 0x23f6, returns to 0x127E label_127E: // Incoming return from call to 0x23F6 at 0x127D // Inputs[4] // { // @127F stack[-2] // @127F stack[-1] // @1280 stack[-4] // @1282 stack[-3] // } 127E 5B JUMPDEST 127F 90 SWAP1 1280 92 SWAP3 1281 50 POP 1282 90 SWAP1 1283 50 POP 1284 60 PUSH1 0x00 1286 82 DUP3 1287 60 PUSH1 0x03 1289 81 DUP2 128A 11 GT 128B 15 ISZERO 128C 61 PUSH2 0x1291 128F 57 *JUMPI // Stack delta = +0 // Outputs[4] // { // @1280 stack[-4] = stack[-2] // @1282 stack[-3] = stack[-1] // @1284 stack[-2] = 0x00 // @1286 stack[-1] = stack[-2] // } // Block ends with conditional jump to 0x1291, if !(stack[-2] > 0x03) label_1290: // Incoming jump from 0x128F, if not !(stack[-2] > 0x03) 1290 FE *ASSERT // Stack delta = +0 // Outputs[1] { @1290 assert(); } // Block terminates label_1291: // Incoming jump from 0x128F, if !(stack[-2] > 0x03) // Inputs[2] // { // @1292 stack[-2] // @1292 stack[-1] // } 1291 5B JUMPDEST 1292 14 EQ 1293 61 PUSH2 0x12cf 1296 57 *JUMPI // Stack delta = -2 // Block ends with conditional jump to 0x12cf, if stack[-1] == stack[-2] label_1297: // Incoming jump from 0x1296, if not stack[-1] == stack[-2] // Inputs[3] // { // @129A memory[0x40:0x60] // @12C5 memory[0x40:0x60] // @12CE memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 1297 60 PUSH1 0x40 1299 80 DUP1 129A 51 MLOAD 129B 60 PUSH1 0x01 129D 60 PUSH1 0xe5 129F 1B SHL 12A0 62 PUSH3 0x461bcd 12A4 02 MUL 12A5 81 DUP2 12A6 52 MSTORE 12A7 60 PUSH1 0x20 12A9 60 PUSH1 0x04 12AB 82 DUP3 12AC 01 ADD 12AD 52 MSTORE 12AE 60 PUSH1 0x03 12B0 60 PUSH1 0x24 12B2 82 DUP3 12B3 01 ADD 12B4 52 MSTORE 12B5 60 PUSH1 0x01 12B7 60 PUSH1 0xeb 12B9 1B SHL 12BA 62 PUSH3 0x08a6c7 12BE 02 MUL 12BF 60 PUSH1 0x44 12C1 82 DUP3 12C2 01 ADD 12C3 52 MSTORE 12C4 90 SWAP1 12C5 51 MLOAD 12C6 90 SWAP1 12C7 81 DUP2 12C8 90 SWAP1 12C9 03 SUB 12CA 60 PUSH1 0x64 12CC 01 ADD 12CD 90 SWAP1 12CE FD *REVERT // Stack delta = +0 // Outputs[5] // { // @12A6 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @12AD memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @12B4 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x03 // @12C3 memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x08a6c7 * (0x01 << 0xeb) // @12CE revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_12CF: // Incoming return from call to 0x28BD at 0x14B7 // Incoming jump from 0x3095, if stack[-1] == stack[-2] // Incoming jump from 0x1296, if stack[-1] == stack[-2] // Inputs[3] // { // @12D0 stack[-1] // @12D0 stack[-3] // @12D3 stack[-4] // } 12CF 5B JUMPDEST 12D0 91 SWAP2 12D1 50 POP 12D2 50 POP 12D3 90 SWAP1 12D4 56 *JUMP // Stack delta = -3 // Outputs[1] { @12D3 stack[-4] = stack[-1] } // Block ends with unconditional jump to stack[-4] label_12D5: // Incoming jump from 0x043A // Inputs[1] { @12D9 storage[0x00] } 12D5 5B JUMPDEST 12D6 60 PUSH1 0x00 12D8 80 DUP1 12D9 54 SLOAD 12DA 62 PUSH3 0x010000 12DE 90 SWAP1 12DF 04 DIV 12E0 60 PUSH1 0xff 12E2 16 AND 12E3 61 PUSH2 0x131f 12E6 57 *JUMPI // Stack delta = +1 // Outputs[1] { @12D6 stack[0] = 0x00 } // Block ends with conditional jump to 0x131f, if 0xff & storage[0x00] / 0x010000 label_12E7: // Incoming jump from 0x12E6, if not 0xff & storage[0x00] / 0x010000 // Inputs[3] // { // @12EA memory[0x40:0x60] // @1315 memory[0x40:0x60] // @131E memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 12E7 60 PUSH1 0x40 12E9 80 DUP1 12EA 51 MLOAD 12EB 60 PUSH1 0x01 12ED 60 PUSH1 0xe5 12EF 1B SHL 12F0 62 PUSH3 0x461bcd 12F4 02 MUL 12F5 81 DUP2 12F6 52 MSTORE 12F7 60 PUSH1 0x20 12F9 60 PUSH1 0x04 12FB 82 DUP3 12FC 01 ADD 12FD 52 MSTORE 12FE 60 PUSH1 0x03 1300 60 PUSH1 0x24 1302 82 DUP3 1303 01 ADD 1304 52 MSTORE 1305 60 PUSH1 0x01 1307 60 PUSH1 0xe8 1309 1B SHL 130A 62 PUSH3 0x453637 130E 02 MUL 130F 60 PUSH1 0x44 1311 82 DUP3 1312 01 ADD 1313 52 MSTORE 1314 90 SWAP1 1315 51 MLOAD 1316 90 SWAP1 1317 81 DUP2 1318 90 SWAP1 1319 03 SUB 131A 60 PUSH1 0x64 131C 01 ADD 131D 90 SWAP1 131E FD *REVERT // Stack delta = +0 // Outputs[5] // { // @12F6 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @12FD memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @1304 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x03 // @1313 memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x453637 * (0x01 << 0xe8) // @131E revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_131F: // Incoming jump from 0x12E6, if 0xff & storage[0x00] / 0x010000 // Inputs[5] // { // @1323 storage[0x00] // @132F msg.sender // @1330 stack[-4] // @1331 stack[-3] // @1332 stack[-2] // } 131F 5B JUMPDEST 1320 60 PUSH1 0x00 1322 80 DUP1 1323 54 SLOAD 1324 62 PUSH3 0xff0000 1328 19 NOT 1329 16 AND 132A 81 DUP2 132B 55 SSTORE 132C 61 PUSH2 0x1337 132F 33 CALLER 1330 86 DUP7 1331 86 DUP7 1332 86 DUP7 1333 61 PUSH2 0x25ac 1336 56 *JUMP // Stack delta = +6 // Outputs[7] // { // @1320 stack[0] = 0x00 // @132B storage[0x00] = ~0xff0000 & storage[0x00] // @132C stack[1] = 0x1337 // @132F stack[2] = msg.sender // @1330 stack[3] = stack[-4] // @1331 stack[4] = stack[-3] // @1332 stack[5] = stack[-2] // } // Block ends with call to 0x25ac, returns to 0x1337 label_1337: // Incoming return from call to 0x25AC at 0x1336 // Incoming return from call to 0x25AC at 0x1336 // Inputs[6] // { // @1338 stack[-2] // @1338 stack[-1] // @1339 stack[-3] // @133E storage[0x00] // @134C stack[-7] // @134D stack[-6] // } 1337 5B JUMPDEST 1338 14 EQ 1339 90 SWAP1 133A 50 POP 133B 60 PUSH1 0x00 133D 80 DUP1 133E 54 SLOAD 133F 62 PUSH3 0xff0000 1343 19 NOT 1344 16 AND 1345 62 PUSH3 0x010000 1349 17 OR 134A 90 SWAP1 134B 55 SSTORE 134C 93 SWAP4 134D 92 SWAP3 134E 50 POP 134F 50 POP 1350 50 POP 1351 56 *JUMP // Stack delta = -6 // Outputs[2] // { // @134B storage[0x00] = 0x010000 | (~0xff0000 & storage[0x00]) // @134C stack[-7] = stack[-1] == stack[-2] // } // Block ends with unconditional jump to stack[-7] label_1352: // Incoming jump from 0x044F 1352 5B JUMPDEST 1353 60 PUSH1 0x00 1355 80 DUP1 1356 61 PUSH2 0x135d 1359 61 PUSH2 0x1a38 135C 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @1353 stack[0] = 0x00 // @1355 stack[1] = 0x00 // @1356 stack[2] = 0x135d // } // Block ends with call to 0x1a38, returns to 0x135D label_135D: // Incoming return from call to 0x1A38 at 0x135C // Incoming return from call to 0x1A38 at 0x135C // Inputs[2] // { // @135E stack[-2] // @135E stack[-1] // } 135D 5B JUMPDEST 135E 14 EQ 135F 61 PUSH2 0x139a 1362 57 *JUMPI // Stack delta = -2 // Block ends with conditional jump to 0x139a, if stack[-1] == stack[-2] label_1363: // Incoming jump from 0x1362, if not stack[-1] == stack[-2] // Inputs[3] // { // @1366 memory[0x40:0x60] // @1390 memory[0x40:0x60] // @1399 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 1363 60 PUSH1 0x40 1365 80 DUP1 1366 51 MLOAD 1367 60 PUSH1 0x01 1369 60 PUSH1 0xe5 136B 1B SHL 136C 62 PUSH3 0x461bcd 1370 02 MUL 1371 81 DUP2 1372 52 MSTORE 1373 60 PUSH1 0x20 1375 60 PUSH1 0x04 1377 82 DUP3 1378 01 ADD 1379 52 MSTORE 137A 60 PUSH1 0x02 137C 60 PUSH1 0x24 137E 82 DUP3 137F 01 ADD 1380 52 MSTORE 1381 60 PUSH1 0x01 1383 60 PUSH1 0xf0 1385 1B SHL 1386 61 PUSH2 0x4535 1389 02 MUL 138A 60 PUSH1 0x44 138C 82 DUP3 138D 01 ADD 138E 52 MSTORE 138F 90 SWAP1 1390 51 MLOAD 1391 90 SWAP1 1392 81 DUP2 1393 90 SWAP1 1394 03 SUB 1395 60 PUSH1 0x64 1397 01 ADD 1398 90 SWAP1 1399 FD *REVERT // Stack delta = +0 // Outputs[5] // { // @1372 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @1379 memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @1380 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x02 // @138E memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x4535 * (0x01 << 0xf0) // @1399 revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_139A: // Incoming jump from 0x1362, if stack[-1] == stack[-2] 139A 5B JUMPDEST 139B 61 PUSH2 0x13a2 139E 61 PUSH2 0x23f2 13A1 56 *JUMP // Stack delta = +1 // Outputs[1] { @139B stack[0] = 0x13a2 } // Block ends with call to 0x23f2, returns to 0x13A2 label_13A2: // Incoming return from call to 0x23F2 at 0x13A1 // Inputs[2] // { // @13A5 storage[0x08] // @13A6 stack[-1] // } 13A2 5B JUMPDEST 13A3 60 PUSH1 0x08 13A5 54 SLOAD 13A6 14 EQ 13A7 61 PUSH2 0x13e3 13AA 57 *JUMPI // Stack delta = -1 // Block ends with conditional jump to 0x13e3, if storage[0x08] == stack[-1] label_13AB: // Incoming jump from 0x13AA, if not storage[0x08] == stack[-1] // Inputs[3] // { // @13AE memory[0x40:0x60] // @13D9 memory[0x40:0x60] // @13E2 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 13AB 60 PUSH1 0x40 13AD 80 DUP1 13AE 51 MLOAD 13AF 60 PUSH1 0x01 13B1 60 PUSH1 0xe5 13B3 1B SHL 13B4 62 PUSH3 0x461bcd 13B8 02 MUL 13B9 81 DUP2 13BA 52 MSTORE 13BB 60 PUSH1 0x20 13BD 60 PUSH1 0x04 13BF 82 DUP3 13C0 01 ADD 13C1 52 MSTORE 13C2 60 PUSH1 0x03 13C4 60 PUSH1 0x24 13C6 82 DUP3 13C7 01 ADD 13C8 52 MSTORE 13C9 60 PUSH1 0x01 13CB 60 PUSH1 0xe8 13CD 1B SHL 13CE 62 PUSH3 0x453333 13D2 02 MUL 13D3 60 PUSH1 0x44 13D5 82 DUP3 13D6 01 ADD 13D7 52 MSTORE 13D8 90 SWAP1 13D9 51 MLOAD 13DA 90 SWAP1 13DB 81 DUP2 13DC 90 SWAP1 13DD 03 SUB 13DE 60 PUSH1 0x64 13E0 01 ADD 13E1 90 SWAP1 13E2 FD *REVERT // Stack delta = +0 // Outputs[5] // { // @13BA memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @13C1 memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @13C8 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x03 // @13D7 memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x453333 * (0x01 << 0xe8) // @13E2 revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_13E3: // Incoming jump from 0x13AA, if storage[0x08] == stack[-1] // Inputs[6] // { // @13E7 storage[0x00] // @13EB memory[0x40:0x60] // @13F9 address(this) // @13FF msg.sender // @1406 memory[0x40:0x60] // @1433 address((0x01 << 0xa0) - 0x01 & storage[0x00] / 0x01000000).code.length // } 13E3 5B JUMPDEST 13E4 60 PUSH1 0x00 13E6 80 DUP1 13E7 54 SLOAD 13E8 60 PUSH1 0x40 13EA 80 DUP1 13EB 51 MLOAD 13EC 60 PUSH1 0x01 13EE 60 PUSH1 0xe0 13F0 1B SHL 13F1 63 PUSH4 0xf53cc4b3 13F6 02 MUL 13F7 81 DUP2 13F8 52 MSTORE 13F9 30 ADDRESS 13FA 60 PUSH1 0x04 13FC 82 DUP3 13FD 01 ADD 13FE 52 MSTORE 13FF 33 CALLER 1400 60 PUSH1 0x24 1402 82 DUP3 1403 01 ADD 1404 52 MSTORE 1405 90 SWAP1 1406 51 MLOAD 1407 63 PUSH4 0x01000000 140C 90 SWAP1 140D 92 SWAP3 140E 04 DIV 140F 60 PUSH1 0x01 1411 60 PUSH1 0x01 1413 60 PUSH1 0xa0 1415 1B SHL 1416 03 SUB 1417 16 AND 1418 91 SWAP2 1419 63 PUSH4 0xf53cc4b3 141E 91 SWAP2 141F 60 PUSH1 0x44 1421 80 DUP1 1422 82 DUP3 1423 01 ADD 1424 92 SWAP3 1425 60 PUSH1 0x20 1427 92 SWAP3 1428 90 SWAP1 1429 91 SWAP2 142A 90 SWAP1 142B 82 DUP3 142C 90 SWAP1 142D 03 SUB 142E 01 ADD 142F 81 DUP2 1430 87 DUP8 1431 87 DUP8 1432 80 DUP1 1433 3B EXTCODESIZE 1434 15 ISZERO 1435 80 DUP1 1436 15 ISZERO 1437 61 PUSH2 0x143f 143A 57 *JUMPI // Stack delta = +11 // Outputs[14] // { // @13E4 stack[0] = 0x00 // @13F8 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0xf53cc4b3 * (0x01 << 0xe0) // @13FE memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = address(this) // @1404 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = msg.sender // @1418 stack[1] = (0x01 << 0xa0) - 0x01 & storage[0x00] / 0x01000000 // @141E stack[2] = 0xf53cc4b3 // @1424 stack[3] = memory[0x40:0x60] + 0x44 // @1427 stack[4] = 0x20 // @1429 stack[5] = memory[0x40:0x60] // @142E stack[6] = memory[0x40:0x60] - memory[0x40:0x60] + 0x44 // @142F stack[7] = memory[0x40:0x60] // @1430 stack[8] = 0x00 // @1431 stack[9] = (0x01 << 0xa0) - 0x01 & storage[0x00] / 0x01000000 // @1434 stack[10] = !address((0x01 << 0xa0) - 0x01 & storage[0x00] / 0x01000000).code.length // } // Block ends with conditional jump to 0x143f, if !!address((0x01 << 0xa0) - 0x01 & storage[0x00] / 0x01000000).code.length label_143B: // Incoming jump from 0x143A, if not !!address((0x01 << 0xa0) - 0x01 & storage[0x00] / 0x01000000).code.length // Inputs[1] { @143E memory[0x00:0x00] } 143B 60 PUSH1 0x00 143D 80 DUP1 143E FD *REVERT // Stack delta = +0 // Outputs[1] { @143E revert(memory[0x00:0x00]); } // Block terminates label_143F: // Incoming jump from 0x143A, if !!address((0x01 << 0xa0) - 0x01 & storage[0x00] / 0x01000000).code.length // Inputs[9] // { // @1441 msg.gas // @1442 memory[stack[-4]:stack[-4] + stack[-5]] // @1442 address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // @1442 stack[-5] // @1442 stack[-4] // @1442 stack[-7] // @1442 stack[-3] // @1442 stack[-6] // @1442 stack[-2] // } 143F 5B JUMPDEST 1440 50 POP 1441 5A GAS 1442 F1 CALL 1443 15 ISZERO 1444 80 DUP1 1445 15 ISZERO 1446 61 PUSH2 0x1453 1449 57 *JUMPI // Stack delta = -6 // Outputs[2] // { // @1442 memory[stack[-6]:stack[-6] + stack[-7]] = address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // @1443 stack[-7] = !address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // } // Block ends with conditional jump to 0x1453, if !!address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) label_144A: // Incoming jump from 0x1449, if not !!address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // Inputs[4] // { // @144A returndata.length // @144E returndata[0x00:0x00 + returndata.length] // @144F returndata.length // @1452 memory[0x00:0x00 + returndata.length] // } 144A 3D RETURNDATASIZE 144B 60 PUSH1 0x00 144D 80 DUP1 144E 3E RETURNDATACOPY 144F 3D RETURNDATASIZE 1450 60 PUSH1 0x00 1452 FD *REVERT // Stack delta = +0 // Outputs[2] // { // @144E memory[0x00:0x00 + returndata.length] = returndata[0x00:0x00 + returndata.length] // @1452 revert(memory[0x00:0x00 + returndata.length]); // } // Block terminates label_1453: // Incoming jump from 0x1449, if !!address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // Inputs[2] // { // @145A memory[0x40:0x60] // @145B returndata.length // } 1453 5B JUMPDEST 1454 50 POP 1455 50 POP 1456 50 POP 1457 50 POP 1458 60 PUSH1 0x40 145A 51 MLOAD 145B 3D RETURNDATASIZE 145C 60 PUSH1 0x20 145E 81 DUP2 145F 10 LT 1460 15 ISZERO 1461 61 PUSH2 0x1469 1464 57 *JUMPI // Stack delta = -2 // Outputs[2] // { // @145A stack[-4] = memory[0x40:0x60] // @145B stack[-3] = returndata.length // } // Block ends with conditional jump to 0x1469, if !(returndata.length < 0x20) label_1465: // Incoming jump from 0x1464, if not !(returndata.length < 0x20) // Inputs[1] { @1468 memory[0x00:0x00] } 1465 60 PUSH1 0x00 1467 80 DUP1 1468 FD *REVERT // Stack delta = +0 // Outputs[1] { @1468 revert(memory[0x00:0x00]); } // Block terminates label_1469: // Incoming jump from 0x1464, if !(returndata.length < 0x20) // Inputs[3] // { // @146B stack[-2] // @146B memory[stack[-2]:stack[-2] + 0x20] // @146C stack[-3] // } 1469 5B JUMPDEST 146A 50 POP 146B 51 MLOAD 146C 90 SWAP1 146D 50 POP 146E 80 DUP1 146F 15 ISZERO 1470 61 PUSH2 0x14ac 1473 57 *JUMPI // Stack delta = -2 // Outputs[1] { @146C stack[-3] = memory[stack[-2]:stack[-2] + 0x20] } // Block ends with conditional jump to 0x14ac, if !memory[stack[-2]:stack[-2] + 0x20] label_1474: // Incoming jump from 0x1473, if not !memory[stack[-2]:stack[-2] + 0x20] // Inputs[3] // { // @1477 memory[0x40:0x60] // @14A2 memory[0x40:0x60] // @14AB memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 1474 60 PUSH1 0x40 1476 80 DUP1 1477 51 MLOAD 1478 60 PUSH1 0x01 147A 60 PUSH1 0xe5 147C 1B SHL 147D 62 PUSH3 0x461bcd 1481 02 MUL 1482 81 DUP2 1483 52 MSTORE 1484 60 PUSH1 0x20 1486 60 PUSH1 0x04 1488 82 DUP3 1489 01 ADD 148A 52 MSTORE 148B 60 PUSH1 0x03 148D 60 PUSH1 0x24 148F 82 DUP3 1490 01 ADD 1491 52 MSTORE 1492 60 PUSH1 0x01 1494 60 PUSH1 0xe8 1496 1B SHL 1497 62 PUSH3 0x453733 149B 02 MUL 149C 60 PUSH1 0x44 149E 82 DUP3 149F 01 ADD 14A0 52 MSTORE 14A1 90 SWAP1 14A2 51 MLOAD 14A3 90 SWAP1 14A4 81 DUP2 14A5 90 SWAP1 14A6 03 SUB 14A7 60 PUSH1 0x64 14A9 01 ADD 14AA 90 SWAP1 14AB FD *REVERT // Stack delta = +0 // Outputs[5] // { // @1483 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @148A memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @1491 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x03 // @14A0 memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x453733 * (0x01 << 0xe8) // @14AB revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_14AC: // Incoming jump from 0x1473, if !memory[stack[-2]:stack[-2] + 0x20] // Inputs[1] { @14B0 msg.sender } 14AC 5B JUMPDEST 14AD 61 PUSH2 0x12cf 14B0 33 CALLER 14B1 60 PUSH1 0x00 14B3 19 NOT 14B4 61 PUSH2 0x28bd 14B7 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @14AD stack[0] = 0x12cf // @14B0 stack[1] = msg.sender // @14B3 stack[2] = ~0x00 // } // Block ends with call to 0x28bd, returns to 0x12CF label_14B8: // Incoming call from 0x0464, returns to 0x0465 // Inputs[2] // { // @14BB storage[0x05] // @14BF stack[-1] // } 14B8 5B JUMPDEST 14B9 60 PUSH1 0x05 14BB 54 SLOAD 14BC 60 PUSH1 0xff 14BE 16 AND 14BF 81 DUP2 14C0 56 *JUMP // Stack delta = +1 // Outputs[1] { @14BE stack[0] = 0xff & storage[0x05] } // Block ends with unconditional jump to stack[-1] label_14C1: // Incoming call from 0x048F, returns to 0x0358 // Inputs[1] { @14C4 stack[-1] } 14C1 5B JUMPDEST 14C2 60 PUSH1 0x01 14C4 81 DUP2 14C5 56 *JUMP // Stack delta = +1 // Outputs[1] { @14C2 stack[0] = 0x01 } // Block ends with unconditional jump to stack[-1] label_14C6: // Incoming jump from 0x04C2 14C6 5B JUMPDEST 14C7 60 PUSH1 0x00 14C9 61 PUSH2 0x14d0 14CC 61 PUSH2 0x5357 14CF 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @14C7 stack[0] = 0x00 // @14C9 stack[1] = 0x14d0 // } // Block ends with call to 0x5357, returns to 0x14D0 label_14D0: // Incoming return from call to 0x5357 at 0x14CF // Inputs[1] { @14D3 memory[0x40:0x60] } 14D0 5B JUMPDEST 14D1 60 PUSH1 0x40 14D3 51 MLOAD 14D4 80 DUP1 14D5 60 PUSH1 0x20 14D7 01 ADD 14D8 60 PUSH1 0x40 14DA 52 MSTORE 14DB 80 DUP1 14DC 61 PUSH2 0x14e3 14DF 61 PUSH2 0x1f9f 14E2 56 *JUMP // Stack delta = +3 // Outputs[4] // { // @14D3 stack[0] = memory[0x40:0x60] // @14DA memory[0x40:0x60] = 0x20 + memory[0x40:0x60] // @14DB stack[1] = memory[0x40:0x60] // @14DC stack[2] = 0x14e3 // } // Block ends with call to 0x1f9f, returns to 0x14E3 label_14E3: // Incoming return from call to 0x1F9F at 0x14E2 // Inputs[7] // { // @14E4 stack[-2] // @14E4 stack[-1] // @14EE stack[-6] // @14FD memory[0x00:0x40] // @14FE storage[keccak256(memory[0x00:0x40])] // @14FF stack[-3] // @1500 stack[-4] // } 14E3 5B JUMPDEST 14E4 90 SWAP1 14E5 52 MSTORE 14E6 60 PUSH1 0x01 14E8 60 PUSH1 0x01 14EA 60 PUSH1 0xa0 14EC 1B SHL 14ED 03 SUB 14EE 84 DUP5 14EF 16 AND 14F0 60 PUSH1 0x00 14F2 90 SWAP1 14F3 81 DUP2 14F4 52 MSTORE 14F5 60 PUSH1 0x0d 14F7 60 PUSH1 0x20 14F9 52 MSTORE 14FA 60 PUSH1 0x40 14FC 81 DUP2 14FD 20 SHA3 14FE 54 SLOAD 14FF 91 SWAP2 1500 92 SWAP3 1501 50 POP 1502 90 SWAP1 1503 81 DUP2 1504 90 SWAP1 1505 61 PUSH2 0x150f 1508 90 SWAP1 1509 84 DUP5 150A 90 SWAP1 150B 61 PUSH2 0x3057 150E 56 *JUMP // Stack delta = +2 // Outputs[9] // { // @14E5 memory[stack[-2]:stack[-2] + 0x20] = stack[-1] // @14F4 memory[0x00:0x20] = stack[-6] & (0x01 << 0xa0) - 0x01 // @14F9 memory[0x20:0x40] = 0x0d // @1500 stack[-4] = stack[-3] // @1502 stack[-3] = 0x00 // @1504 stack[-2] = 0x00 // @1508 stack[-1] = 0x150f // @150A stack[0] = stack[-3] // @150A stack[1] = storage[keccak256(memory[0x00:0x40])] // } // Block ends with call to 0x3057, returns to 0x150F label_150F: // Incoming return from call to 0x3057 at 0x150E // Inputs[4] // { // @1510 stack[-1] // @1510 stack[-2] // @1511 stack[-4] // @1513 stack[-3] // } 150F 5B JUMPDEST 1510 90 SWAP1 1511 92 SWAP3 1512 50 POP 1513 90 SWAP1 1514 50 POP 1515 60 PUSH1 0x00 1517 82 DUP3 1518 60 PUSH1 0x03 151A 81 DUP2 151B 11 GT 151C 15 ISZERO 151D 61 PUSH2 0x1522 1520 57 *JUMPI // Stack delta = +0 // Outputs[4] // { // @1511 stack[-4] = stack[-2] // @1513 stack[-3] = stack[-1] // @1515 stack[-2] = 0x00 // @1517 stack[-1] = stack[-2] // } // Block ends with conditional jump to 0x1522, if !(stack[-2] > 0x03) label_1521: // Incoming jump from 0x1520, if not !(stack[-2] > 0x03) 1521 FE *ASSERT // Stack delta = +0 // Outputs[1] { @1521 assert(); } // Block terminates label_1522: // Incoming jump from 0x1520, if !(stack[-2] > 0x03) // Inputs[2] // { // @1523 stack[-1] // @1523 stack[-2] // } 1522 5B JUMPDEST 1523 14 EQ 1524 61 PUSH2 0x1560 1527 57 *JUMPI // Stack delta = -2 // Block ends with conditional jump to 0x1560, if stack[-1] == stack[-2] label_1528: // Incoming jump from 0x1527, if not stack[-1] == stack[-2] // Inputs[3] // { // @152B memory[0x40:0x60] // @1556 memory[0x40:0x60] // @155F memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 1528 60 PUSH1 0x40 152A 80 DUP1 152B 51 MLOAD 152C 60 PUSH1 0x01 152E 60 PUSH1 0xe5 1530 1B SHL 1531 62 PUSH3 0x461bcd 1535 02 MUL 1536 81 DUP2 1537 52 MSTORE 1538 60 PUSH1 0x20 153A 60 PUSH1 0x04 153C 82 DUP3 153D 01 ADD 153E 52 MSTORE 153F 60 PUSH1 0x03 1541 60 PUSH1 0x24 1543 82 DUP3 1544 01 ADD 1545 52 MSTORE 1546 60 PUSH1 0x01 1548 60 PUSH1 0xe8 154A 1B SHL 154B 62 PUSH3 0x453639 154F 02 MUL 1550 60 PUSH1 0x44 1552 82 DUP3 1553 01 ADD 1554 52 MSTORE 1555 90 SWAP1 1556 51 MLOAD 1557 90 SWAP1 1558 81 DUP2 1559 90 SWAP1 155A 03 SUB 155B 60 PUSH1 0x64 155D 01 ADD 155E 90 SWAP1 155F FD *REVERT // Stack delta = +0 // Outputs[5] // { // @1537 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @153E memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @1545 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x03 // @1554 memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x453639 * (0x01 << 0xe8) // @155F revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_1560: // Incoming jump from 0x4386, if !(stack[-7] > 0x10) // Incoming jump from 0x2664 // Incoming jump from 0x1527, if stack[-1] == stack[-2] // Inputs[3] // { // @1561 stack[-1] // @1561 stack[-6] // @1562 stack[-5] // } 1560 5B JUMPDEST 1561 94 SWAP5 1562 93 SWAP4 1563 50 POP 1564 50 POP 1565 50 POP 1566 50 POP 1567 56 *JUMP // Stack delta = -5 // Outputs[1] { @1561 stack[-6] = stack[-1] } // Block ends with unconditional jump to stack[-6] label_1568: // Incoming jump from 0x04D7 1568 5B JUMPDEST 1569 60 PUSH1 0x00 156B 61 PUSH2 0x11a3 156E 61 PUSH2 0x306e 1571 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @1569 stack[0] = 0x00 // @156B stack[1] = 0x11a3 // } // Block ends with call to 0x306e, returns to 0x11A3 label_1572: // Incoming call from 0x04EC, returns to 0x0374 // Inputs[2] // { // @1575 storage[0x06] // @1576 stack[-1] // } 1572 5B JUMPDEST 1573 60 PUSH1 0x06 1575 54 SLOAD 1576 81 DUP2 1577 56 *JUMP // Stack delta = +1 // Outputs[1] { @1575 stack[0] = storage[0x06] } // Block ends with unconditional jump to stack[-1] label_1578: // Incoming jump from 0x051F // Inputs[4] // { // @1580 stack[-1] // @1586 memory[0x00:0x40] // @1587 storage[keccak256(memory[0x00:0x40])] // @1588 stack[-2] // } 1578 5B JUMPDEST 1579 60 PUSH1 0x0f 157B 60 PUSH1 0x20 157D 52 MSTORE 157E 60 PUSH1 0x00 1580 90 SWAP1 1581 81 DUP2 1582 52 MSTORE 1583 60 PUSH1 0x40 1585 90 SWAP1 1586 20 SHA3 1587 54 SLOAD 1588 81 DUP2 1589 56 *JUMP // Stack delta = +0 // Outputs[3] // { // @157D memory[0x20:0x40] = 0x0f // @1582 memory[0x00:0x20] = stack[-1] // @1587 stack[-1] = storage[keccak256(memory[0x00:0x40])] // } // Block ends with unconditional jump to stack[-2] label_158A: // Incoming jump from 0x0527 158A 5B JUMPDEST 158B 60 PUSH1 0x00 158D 80 DUP1 158E 80 DUP1 158F 61 PUSH2 0x1596 1592 61 PUSH2 0x1a38 1595 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @158B stack[0] = 0x00 // @158D stack[1] = 0x00 // @158E stack[2] = 0x00 // @158F stack[3] = 0x1596 // } // Block ends with call to 0x1a38, returns to 0x1596 label_1596: // Incoming return from call to 0x1A38 at 0x1595 // Incoming return from call to 0x1A38 at 0x1595 // Inputs[2] // { // @1597 stack[-1] // @1597 stack[-2] // } 1596 5B JUMPDEST 1597 14 EQ 1598 61 PUSH2 0x15d3 159B 57 *JUMPI // Stack delta = -2 // Block ends with conditional jump to 0x15d3, if stack[-1] == stack[-2] label_159C: // Incoming jump from 0x159B, if not stack[-1] == stack[-2] // Inputs[3] // { // @159F memory[0x40:0x60] // @15C9 memory[0x40:0x60] // @15D2 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 159C 60 PUSH1 0x40 159E 80 DUP1 159F 51 MLOAD 15A0 60 PUSH1 0x01 15A2 60 PUSH1 0xe5 15A4 1B SHL 15A5 62 PUSH3 0x461bcd 15A9 02 MUL 15AA 81 DUP2 15AB 52 MSTORE 15AC 60 PUSH1 0x20 15AE 60 PUSH1 0x04 15B0 82 DUP3 15B1 01 ADD 15B2 52 MSTORE 15B3 60 PUSH1 0x02 15B5 60 PUSH1 0x24 15B7 82 DUP3 15B8 01 ADD 15B9 52 MSTORE 15BA 60 PUSH1 0x01 15BC 60 PUSH1 0xf0 15BE 1B SHL 15BF 61 PUSH2 0x4535 15C2 02 MUL 15C3 60 PUSH1 0x44 15C5 82 DUP3 15C6 01 ADD 15C7 52 MSTORE 15C8 90 SWAP1 15C9 51 MLOAD 15CA 90 SWAP1 15CB 81 DUP2 15CC 90 SWAP1 15CD 03 SUB 15CE 60 PUSH1 0x64 15D0 01 ADD 15D1 90 SWAP1 15D2 FD *REVERT // Stack delta = +0 // Outputs[5] // { // @15AB memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @15B2 memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @15B9 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x02 // @15C7 memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x4535 * (0x01 << 0xf0) // @15D2 revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_15D3: // Incoming jump from 0x159B, if stack[-1] == stack[-2] 15D3 5B JUMPDEST 15D4 61 PUSH2 0x15db 15D7 61 PUSH2 0x23f2 15DA 56 *JUMP // Stack delta = +1 // Outputs[1] { @15D4 stack[0] = 0x15db } // Block ends with call to 0x23f2, returns to 0x15DB label_15DB: // Incoming return from call to 0x23F2 at 0x15DA // Inputs[2] // { // @15DE storage[0x08] // @15DF stack[-1] // } 15DB 5B JUMPDEST 15DC 60 PUSH1 0x08 15DE 54 SLOAD 15DF 14 EQ 15E0 61 PUSH2 0x161b 15E3 57 *JUMPI // Stack delta = -1 // Block ends with conditional jump to 0x161b, if storage[0x08] == stack[-1] label_15E4: // Incoming jump from 0x15E3, if not storage[0x08] == stack[-1] // Inputs[3] // { // @15E7 memory[0x40:0x60] // @1611 memory[0x40:0x60] // @161A memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 15E4 60 PUSH1 0x40 15E6 80 DUP1 15E7 51 MLOAD 15E8 60 PUSH1 0x01 15EA 60 PUSH1 0xe5 15EC 1B SHL 15ED 62 PUSH3 0x461bcd 15F1 02 MUL 15F2 81 DUP2 15F3 52 MSTORE 15F4 60 PUSH1 0x20 15F6 60 PUSH1 0x04 15F8 82 DUP3 15F9 01 ADD 15FA 52 MSTORE 15FB 60 PUSH1 0x02 15FD 60 PUSH1 0x24 15FF 82 DUP3 1600 01 ADD 1601 52 MSTORE 1602 60 PUSH1 0x01 1604 60 PUSH1 0xf0 1606 1B SHL 1607 61 PUSH2 0x4537 160A 02 MUL 160B 60 PUSH1 0x44 160D 82 DUP3 160E 01 ADD 160F 52 MSTORE 1610 90 SWAP1 1611 51 MLOAD 1612 90 SWAP1 1613 81 DUP2 1614 90 SWAP1 1615 03 SUB 1616 60 PUSH1 0x64 1618 01 ADD 1619 90 SWAP1 161A FD *REVERT // Stack delta = +0 // Outputs[5] // { // @15F3 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @15FA memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @1601 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x02 // @160F memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x4537 * (0x01 << 0xf0) // @161A revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_161B: // Incoming jump from 0x15E3, if storage[0x08] == stack[-1] // Inputs[1] { @161F msg.value } 161B 5B JUMPDEST 161C 61 PUSH2 0x1624 161F 34 CALLVALUE 1620 61 PUSH2 0x309a 1623 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @161C stack[0] = 0x1624 // @161F stack[1] = msg.value // } // Block ends with call to 0x309a, returns to 0x1624 label_1624: // Incoming return from call to 0x309A at 0x1623 // Inputs[4] // { // @1625 stack[-1] // @1625 stack[-3] // @1627 stack[-4] // @1627 stack[-2] // } 1624 5B JUMPDEST 1625 91 SWAP2 1626 50 POP 1627 91 SWAP2 1628 50 POP // Stack delta = -2 // Outputs[2] // { // @1625 stack[-3] = stack[-1] // @1627 stack[-4] = stack[-2] // } // Block continues label_1629: // Incoming jump from 0x1628 // Incoming jump from 0x248F // Incoming jump from 0x24A0 // Incoming jump from 0x2410 // Incoming jump from 0x245E // Inputs[3] // { // @162A stack[-1] // @162A stack[-2] // @162B stack[-3] // } 1629 5B JUMPDEST 162A 90 SWAP1 162B 91 SWAP2 162C 56 *JUMP // Stack delta = -1 // Outputs[2] // { // @162A stack[-2] = stack[-1] // @162B stack[-3] = stack[-2] // } // Block ends with unconditional jump to stack[-3] label_162D: // Incoming jump from 0x056A 162D 5B JUMPDEST 162E 60 PUSH1 0x00 1630 80 DUP1 1631 61 PUSH2 0x1638 1634 61 PUSH2 0x1a38 1637 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @162E stack[0] = 0x00 // @1630 stack[1] = 0x00 // @1631 stack[2] = 0x1638 // } // Block ends with call to 0x1a38, returns to 0x1638 label_1638: // Incoming return from call to 0x1A38 at 0x1637 // Incoming return from call to 0x1A38 at 0x1637 // Inputs[2] // { // @1639 stack[-1] // @1639 stack[-2] // } 1638 5B JUMPDEST 1639 90 SWAP1 163A 50 POP 163B 80 DUP1 163C 15 ISZERO 163D 61 PUSH2 0x1678 1640 57 *JUMPI // Stack delta = -1 // Outputs[1] { @1639 stack[-2] = stack[-1] } // Block ends with conditional jump to 0x1678, if !stack[-1] label_1641: // Incoming jump from 0x1640, if not !stack[-1] // Inputs[3] // { // @1644 memory[0x40:0x60] // @166E memory[0x40:0x60] // @1677 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 1641 60 PUSH1 0x40 1643 80 DUP1 1644 51 MLOAD 1645 60 PUSH1 0x01 1647 60 PUSH1 0xe5 1649 1B SHL 164A 62 PUSH3 0x461bcd 164E 02 MUL 164F 81 DUP2 1650 52 MSTORE 1651 60 PUSH1 0x20 1653 60 PUSH1 0x04 1655 82 DUP3 1656 01 ADD 1657 52 MSTORE 1658 60 PUSH1 0x02 165A 60 PUSH1 0x24 165C 82 DUP3 165D 01 ADD 165E 52 MSTORE 165F 60 PUSH1 0x01 1661 60 PUSH1 0xf0 1663 1B SHL 1664 61 PUSH2 0x4535 1667 02 MUL 1668 60 PUSH1 0x44 166A 82 DUP3 166B 01 ADD 166C 52 MSTORE 166D 90 SWAP1 166E 51 MLOAD 166F 90 SWAP1 1670 81 DUP2 1671 90 SWAP1 1672 03 SUB 1673 60 PUSH1 0x64 1675 01 ADD 1676 90 SWAP1 1677 FD *REVERT // Stack delta = +0 // Outputs[5] // { // @1650 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @1657 memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @165E memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x02 // @166C memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x4535 * (0x01 << 0xf0) // @1677 revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_1678: // Incoming jump from 0x1640, if !stack[-1] // Inputs[1] { @167C stack[-3] } 1678 5B JUMPDEST 1679 61 PUSH2 0x1681 167C 83 DUP4 167D 61 PUSH2 0x3119 1680 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @1679 stack[0] = 0x1681 // @167C stack[1] = stack[-3] // } // Block ends with call to 0x3119, returns to 0x1681 label_1681: // Incoming jump from 0x4104 // Incoming return from call to 0x3E60 at 0x2289 // Incoming jump from 0x3FD7 // Incoming jump from 0x43EC, if !(stack[-6] > 0x10) // Incoming jump from 0x19FF, if stack[-1] == stack[-2] // Incoming return from call to 0x3119 at 0x1680 // Inputs[3] // { // @1682 stack[-5] // @1682 stack[-1] // @1683 stack[-4] // } 1681 5B JUMPDEST 1682 93 SWAP4 1683 92 SWAP3 1684 50 POP 1685 50 POP 1686 50 POP 1687 56 *JUMP // Stack delta = -4 // Outputs[1] { @1682 stack[-5] = stack[-1] } // Block ends with unconditional jump to stack[-5] label_1688: // Incoming call from 0x057F, returns to 0x0374 // Inputs[2] // { // @168B storage[0x08] // @168C stack[-1] // } 1688 5B JUMPDEST 1689 60 PUSH1 0x08 168B 54 SLOAD 168C 81 DUP2 168D 56 *JUMP // Stack delta = +1 // Outputs[1] { @168B stack[0] = storage[0x08] } // Block ends with unconditional jump to stack[-1] label_168E: // Incoming jump from 0x05B2 // Inputs[2] // { // @1691 storage[0x05] // @16A0 msg.sender // } 168E 5B JUMPDEST 168F 60 PUSH1 0x05 1691 54 SLOAD 1692 61 PUSH2 0x0100 1695 90 SWAP1 1696 04 DIV 1697 60 PUSH1 0x01 1699 60 PUSH1 0x01 169B 60 PUSH1 0xa0 169D 1B SHL 169E 03 SUB 169F 16 AND 16A0 33 CALLER 16A1 14 EQ 16A2 61 PUSH2 0x16dd 16A5 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x16dd, if msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x05] / 0x0100 label_16A6: // Incoming jump from 0x16A5, if not msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x05] / 0x0100 // Inputs[3] // { // @16A9 memory[0x40:0x60] // @16D3 memory[0x40:0x60] // @16DC memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 16A6 60 PUSH1 0x40 16A8 80 DUP1 16A9 51 MLOAD 16AA 60 PUSH1 0x01 16AC 60 PUSH1 0xe5 16AE 1B SHL 16AF 62 PUSH3 0x461bcd 16B3 02 MUL 16B4 81 DUP2 16B5 52 MSTORE 16B6 60 PUSH1 0x20 16B8 60 PUSH1 0x04 16BA 82 DUP3 16BB 01 ADD 16BC 52 MSTORE 16BD 60 PUSH1 0x02 16BF 60 PUSH1 0x24 16C1 82 DUP3 16C2 01 ADD 16C3 52 MSTORE 16C4 60 PUSH1 0x01 16C6 60 PUSH1 0xf0 16C8 1B SHL 16C9 61 PUSH2 0x4531 16CC 02 MUL 16CD 60 PUSH1 0x44 16CF 82 DUP3 16D0 01 ADD 16D1 52 MSTORE 16D2 90 SWAP1 16D3 51 MLOAD 16D4 90 SWAP1 16D5 81 DUP2 16D6 90 SWAP1 16D7 03 SUB 16D8 60 PUSH1 0x64 16DA 01 ADD 16DB 90 SWAP1 16DC FD *REVERT // Stack delta = +0 // Outputs[5] // { // @16B5 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @16BC memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @16C3 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x02 // @16D1 memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x4531 * (0x01 << 0xf0) // @16DC revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_16DD: // Incoming jump from 0x16A5, if msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x05] / 0x0100 // Inputs[6] // { // @16E1 storage[0x05] // @16EB stack[-1] // @170B memory[0x40:0x60] // @1714 memory[0x40:0x60] // @173E memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20 + (memory[0x40:0x60] - memory[0x40:0x60])] // @1740 stack[-2] // } 16DD 5B JUMPDEST 16DE 60 PUSH1 0x05 16E0 80 DUP1 16E1 54 SLOAD 16E2 60 PUSH1 0x01 16E4 60 PUSH1 0x01 16E6 60 PUSH1 0xa0 16E8 1B SHL 16E9 03 SUB 16EA 80 DUP1 16EB 84 DUP5 16EC 16 AND 16ED 61 PUSH2 0x0100 16F0 90 SWAP1 16F1 81 DUP2 16F2 02 MUL 16F3 61 PUSH2 0x0100 16F6 60 PUSH1 0x01 16F8 60 PUSH1 0xa8 16FA 1B SHL 16FB 03 SUB 16FC 19 NOT 16FD 90 SWAP1 16FE 93 SWAP4 16FF 16 AND 1700 92 SWAP3 1701 90 SWAP1 1702 92 SWAP3 1703 17 OR 1704 92 SWAP3 1705 83 DUP4 1706 90 SWAP1 1707 55 SSTORE 1708 60 PUSH1 0x40 170A 80 DUP1 170B 51 MLOAD 170C 92 SWAP3 170D 90 SWAP1 170E 93 SWAP4 170F 04 DIV 1710 16 AND 1711 81 DUP2 1712 52 MSTORE 1713 90 SWAP1 1714 51 MLOAD 1715 7F PUSH32 0x71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c 1736 91 SWAP2 1737 81 DUP2 1738 90 SWAP1 1739 03 SUB 173A 60 PUSH1 0x20 173C 01 ADD 173D 90 SWAP1 173E A1 LOG1 173F 50 POP 1740 56 *JUMP // Stack delta = -2 // Outputs[3] // { // @1707 storage[0x05] = (storage[0x05] & ~((0x01 << 0xa8) - 0x0100)) | 0x0100 * (stack[-1] & (0x01 << 0xa0) - 0x01) // @1712 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = ((storage[0x05] & ~((0x01 << 0xa8) - 0x0100)) | 0x0100 * (stack[-1] & (0x01 << 0xa0) - 0x01)) / 0x0100 & (0x01 << 0xa0) - 0x01 // @173E log(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20 + (memory[0x40:0x60] - memory[0x40:0x60])], [0x71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c]); // } // Block ends with unconditional jump to stack[-2] label_1741: // Incoming jump from 0x05E7 // Inputs[4] // { // @174A stack[-1] // @1758 memory[0x00:0x40] // @1759 storage[keccak256(memory[0x00:0x40])] // @175A stack[-2] // } 1741 5B JUMPDEST 1742 60 PUSH1 0x01 1744 60 PUSH1 0x01 1746 60 PUSH1 0xa0 1748 1B SHL 1749 03 SUB 174A 16 AND 174B 60 PUSH1 0x00 174D 90 SWAP1 174E 81 DUP2 174F 52 MSTORE 1750 60 PUSH1 0x0d 1752 60 PUSH1 0x20 1754 52 MSTORE 1755 60 PUSH1 0x40 1757 90 SWAP1 1758 20 SHA3 1759 54 SLOAD 175A 90 SWAP1 175B 56 *JUMP // Stack delta = -1 // Outputs[3] // { // @174F memory[0x00:0x20] = (0x01 << 0xa0) - 0x01 & stack[-1] // @1754 memory[0x20:0x40] = 0x0d // @175A stack[-2] = storage[keccak256(memory[0x00:0x40])] // } // Block ends with unconditional jump to stack[-2] label_175C: // Incoming call from 0x05FC, returns to 0x0374 // Inputs[1] { @1760 storage[0x00] } 175C 5B JUMPDEST 175D 60 PUSH1 0x00 175F 80 DUP1 1760 54 SLOAD 1761 62 PUSH3 0x010000 1765 90 SWAP1 1766 04 DIV 1767 60 PUSH1 0xff 1769 16 AND 176A 61 PUSH2 0x17a6 176D 57 *JUMPI // Stack delta = +1 // Outputs[1] { @175D stack[0] = 0x00 } // Block ends with conditional jump to 0x17a6, if 0xff & storage[0x00] / 0x010000 label_176E: // Incoming jump from 0x176D, if not 0xff & storage[0x00] / 0x010000 // Inputs[3] // { // @1771 memory[0x40:0x60] // @179C memory[0x40:0x60] // @17A5 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 176E 60 PUSH1 0x40 1770 80 DUP1 1771 51 MLOAD 1772 60 PUSH1 0x01 1774 60 PUSH1 0xe5 1776 1B SHL 1777 62 PUSH3 0x461bcd 177B 02 MUL 177C 81 DUP2 177D 52 MSTORE 177E 60 PUSH1 0x20 1780 60 PUSH1 0x04 1782 82 DUP3 1783 01 ADD 1784 52 MSTORE 1785 60 PUSH1 0x03 1787 60 PUSH1 0x24 1789 82 DUP3 178A 01 ADD 178B 52 MSTORE 178C 60 PUSH1 0x01 178E 60 PUSH1 0xe8 1790 1B SHL 1791 62 PUSH3 0x453637 1795 02 MUL 1796 60 PUSH1 0x44 1798 82 DUP3 1799 01 ADD 179A 52 MSTORE 179B 90 SWAP1 179C 51 MLOAD 179D 90 SWAP1 179E 81 DUP2 179F 90 SWAP1 17A0 03 SUB 17A1 60 PUSH1 0x64 17A3 01 ADD 17A4 90 SWAP1 17A5 FD *REVERT // Stack delta = +0 // Outputs[5] // { // @177D memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @1784 memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @178B memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x03 // @179A memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x453637 * (0x01 << 0xe8) // @17A5 revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_17A6: // Incoming jump from 0x176D, if 0xff & storage[0x00] / 0x010000 // Inputs[1] { @17AA storage[0x00] } 17A6 5B JUMPDEST 17A7 60 PUSH1 0x00 17A9 80 DUP1 17AA 54 SLOAD 17AB 62 PUSH3 0xff0000 17AF 19 NOT 17B0 16 AND 17B1 81 DUP2 17B2 55 SSTORE 17B3 61 PUSH2 0x17ba 17B6 61 PUSH2 0x1a38 17B9 56 *JUMP // Stack delta = +2 // Outputs[3] // { // @17A7 stack[0] = 0x00 // @17B2 storage[0x00] = ~0xff0000 & storage[0x00] // @17B3 stack[1] = 0x17ba // } // Block ends with call to 0x1a38, returns to 0x17BA label_17BA: // Incoming return from call to 0x1A38 at 0x17B9 // Incoming return from call to 0x1A38 at 0x17B9 // Inputs[2] // { // @17BB stack[-2] // @17BB stack[-1] // } 17BA 5B JUMPDEST 17BB 14 EQ 17BC 61 PUSH2 0x17f7 17BF 57 *JUMPI // Stack delta = -2 // Block ends with conditional jump to 0x17f7, if stack[-1] == stack[-2] label_17C0: // Incoming jump from 0x17BF, if not stack[-1] == stack[-2] // Inputs[3] // { // @17C3 memory[0x40:0x60] // @17ED memory[0x40:0x60] // @17F6 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 17C0 60 PUSH1 0x40 17C2 80 DUP1 17C3 51 MLOAD 17C4 60 PUSH1 0x01 17C6 60 PUSH1 0xe5 17C8 1B SHL 17C9 62 PUSH3 0x461bcd 17CD 02 MUL 17CE 81 DUP2 17CF 52 MSTORE 17D0 60 PUSH1 0x20 17D2 60 PUSH1 0x04 17D4 82 DUP3 17D5 01 ADD 17D6 52 MSTORE 17D7 60 PUSH1 0x02 17D9 60 PUSH1 0x24 17DB 82 DUP3 17DC 01 ADD 17DD 52 MSTORE 17DE 60 PUSH1 0x01 17E0 60 PUSH1 0xf0 17E2 1B SHL 17E3 61 PUSH2 0x4535 17E6 02 MUL 17E7 60 PUSH1 0x44 17E9 82 DUP3 17EA 01 ADD 17EB 52 MSTORE 17EC 90 SWAP1 17ED 51 MLOAD 17EE 90 SWAP1 17EF 81 DUP2 17F0 90 SWAP1 17F1 03 SUB 17F2 60 PUSH1 0x64 17F4 01 ADD 17F5 90 SWAP1 17F6 FD *REVERT // Stack delta = +0 // Outputs[5] // { // @17CF memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @17D6 memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @17DD memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x02 // @17EB memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x4535 * (0x01 << 0xf0) // @17F6 revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_17F7: // Incoming jump from 0x17BF, if stack[-1] == stack[-2] // Inputs[3] // { // @17FB storage[0x06] // @17FF storage[0x00] // @180D stack[-2] // } 17F7 5B JUMPDEST 17F8 50 POP 17F9 60 PUSH1 0x06 17FB 54 SLOAD 17FC 60 PUSH1 0x00 17FE 80 DUP1 17FF 54 SLOAD 1800 62 PUSH3 0xff0000 1804 19 NOT 1805 16 AND 1806 62 PUSH3 0x010000 180A 17 OR 180B 90 SWAP1 180C 55 SSTORE 180D 90 SWAP1 180E 56 *JUMP // Stack delta = -1 // Outputs[2] // { // @180C storage[0x00] = 0x010000 | (~0xff0000 & storage[0x00]) // @180D stack[-2] = storage[0x06] // } // Block ends with unconditional jump to stack[-2] label_180F: // Incoming jump from 0x0626 180F 5B JUMPDEST 1810 60 PUSH1 0x00 1812 80 DUP1 1813 61 PUSH2 0x181a 1816 61 PUSH2 0x1a38 1819 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @1810 stack[0] = 0x00 // @1812 stack[1] = 0x00 // @1813 stack[2] = 0x181a // } // Block ends with call to 0x1a38, returns to 0x181A label_181A: // Incoming return from call to 0x1A38 at 0x1819 // Incoming return from call to 0x1A38 at 0x1819 // Inputs[2] // { // @181B stack[-1] // @181B stack[-2] // } 181A 5B JUMPDEST 181B 14 EQ 181C 61 PUSH2 0x1857 181F 57 *JUMPI // Stack delta = -2 // Block ends with conditional jump to 0x1857, if stack[-1] == stack[-2] label_1820: // Incoming jump from 0x181F, if not stack[-1] == stack[-2] // Inputs[3] // { // @1823 memory[0x40:0x60] // @184D memory[0x40:0x60] // @1856 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 1820 60 PUSH1 0x40 1822 80 DUP1 1823 51 MLOAD 1824 60 PUSH1 0x01 1826 60 PUSH1 0xe5 1828 1B SHL 1829 62 PUSH3 0x461bcd 182D 02 MUL 182E 81 DUP2 182F 52 MSTORE 1830 60 PUSH1 0x20 1832 60 PUSH1 0x04 1834 82 DUP3 1835 01 ADD 1836 52 MSTORE 1837 60 PUSH1 0x02 1839 60 PUSH1 0x24 183B 82 DUP3 183C 01 ADD 183D 52 MSTORE 183E 60 PUSH1 0x01 1840 60 PUSH1 0xf0 1842 1B SHL 1843 61 PUSH2 0x4535 1846 02 MUL 1847 60 PUSH1 0x44 1849 82 DUP3 184A 01 ADD 184B 52 MSTORE 184C 90 SWAP1 184D 51 MLOAD 184E 90 SWAP1 184F 81 DUP2 1850 90 SWAP1 1851 03 SUB 1852 60 PUSH1 0x64 1854 01 ADD 1855 90 SWAP1 1856 FD *REVERT // Stack delta = +0 // Outputs[5] // { // @182F memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @1836 memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @183D memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x02 // @184B memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x4535 * (0x01 << 0xf0) // @1856 revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_1857: // Incoming jump from 0x181F, if stack[-1] == stack[-2] 1857 5B JUMPDEST 1858 61 PUSH2 0x185f 185B 61 PUSH2 0x23f2 185E 56 *JUMP // Stack delta = +1 // Outputs[1] { @1858 stack[0] = 0x185f } // Block ends with call to 0x23f2, returns to 0x185F label_185F: // Incoming return from call to 0x23F2 at 0x185E // Inputs[2] // { // @1862 storage[0x08] // @1863 stack[-1] // } 185F 5B JUMPDEST 1860 60 PUSH1 0x08 1862 54 SLOAD 1863 14 EQ 1864 61 PUSH2 0x18a0 1867 57 *JUMPI // Stack delta = -1 // Block ends with conditional jump to 0x18a0, if storage[0x08] == stack[-1] label_1868: // Incoming jump from 0x1867, if not storage[0x08] == stack[-1] // Inputs[3] // { // @186B memory[0x40:0x60] // @1896 memory[0x40:0x60] // @189F memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 1868 60 PUSH1 0x40 186A 80 DUP1 186B 51 MLOAD 186C 60 PUSH1 0x01 186E 60 PUSH1 0xe5 1870 1B SHL 1871 62 PUSH3 0x461bcd 1875 02 MUL 1876 81 DUP2 1877 52 MSTORE 1878 60 PUSH1 0x20 187A 60 PUSH1 0x04 187C 82 DUP3 187D 01 ADD 187E 52 MSTORE 187F 60 PUSH1 0x03 1881 60 PUSH1 0x24 1883 82 DUP3 1884 01 ADD 1885 52 MSTORE 1886 60 PUSH1 0x01 1888 60 PUSH1 0xe8 188A 1B SHL 188B 62 PUSH3 0x453333 188F 02 MUL 1890 60 PUSH1 0x44 1892 82 DUP3 1893 01 ADD 1894 52 MSTORE 1895 90 SWAP1 1896 51 MLOAD 1897 90 SWAP1 1898 81 DUP2 1899 90 SWAP1 189A 03 SUB 189B 60 PUSH1 0x64 189D 01 ADD 189E 90 SWAP1 189F FD *REVERT // Stack delta = +0 // Outputs[5] // { // @1877 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @187E memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @1885 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x03 // @1894 memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x453333 * (0x01 << 0xe8) // @189F revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_18A0: // Incoming jump from 0x1867, if storage[0x08] == stack[-1] // Inputs[2] // { // @18A4 msg.sender // @18A5 stack[-2] // } 18A0 5B JUMPDEST 18A1 61 PUSH2 0x18aa 18A4 33 CALLER 18A5 83 DUP4 18A6 61 PUSH2 0x28bd 18A9 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @18A1 stack[0] = 0x18aa // @18A4 stack[1] = msg.sender // @18A5 stack[2] = stack[-2] // } // Block ends with call to 0x28bd, returns to 0x18AA label_18AA: // Incoming return from call to 0x28BD at 0x18A9 // Incoming jump from 0x196B // Inputs[3] // { // @18AB stack[-1] // @18AB stack[-4] // @18AC stack[-3] // } 18AA 5B JUMPDEST 18AB 92 SWAP3 18AC 91 SWAP2 18AD 50 POP 18AE 50 POP 18AF 56 *JUMP // Stack delta = -3 // Outputs[1] { @18AB stack[-4] = stack[-1] } // Block ends with unconditional jump to stack[-4] label_18B0: // Incoming call from 0x063B, returns to 0x0374 // Inputs[2] // { // @18B3 storage[0x0a] // @18B4 stack[-1] // } 18B0 5B JUMPDEST 18B1 60 PUSH1 0x0a 18B3 54 SLOAD 18B4 81 DUP2 18B5 56 *JUMP // Stack delta = +1 // Outputs[1] { @18B3 stack[0] = storage[0x0a] } // Block ends with unconditional jump to stack[-1] label_18B6: // Incoming jump from 0x066E // Inputs[2] // { // @18B9 storage[0x05] // @18CB msg.sender // } 18B6 5B JUMPDEST 18B7 60 PUSH1 0x05 18B9 54 SLOAD 18BA 60 PUSH1 0x00 18BC 90 SWAP1 18BD 61 PUSH2 0x0100 18C0 90 SWAP1 18C1 04 DIV 18C2 60 PUSH1 0x01 18C4 60 PUSH1 0x01 18C6 60 PUSH1 0xa0 18C8 1B SHL 18C9 03 SUB 18CA 16 AND 18CB 33 CALLER 18CC 14 EQ 18CD 61 PUSH2 0x1908 18D0 57 *JUMPI // Stack delta = +1 // Outputs[1] { @18BC stack[0] = 0x00 } // Block ends with conditional jump to 0x1908, if msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x05] / 0x0100 label_18D1: // Incoming jump from 0x18D0, if not msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x05] / 0x0100 // Inputs[3] // { // @18D4 memory[0x40:0x60] // @18FE memory[0x40:0x60] // @1907 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 18D1 60 PUSH1 0x40 18D3 80 DUP1 18D4 51 MLOAD 18D5 60 PUSH1 0x01 18D7 60 PUSH1 0xe5 18D9 1B SHL 18DA 62 PUSH3 0x461bcd 18DE 02 MUL 18DF 81 DUP2 18E0 52 MSTORE 18E1 60 PUSH1 0x20 18E3 60 PUSH1 0x04 18E5 82 DUP3 18E6 01 ADD 18E7 52 MSTORE 18E8 60 PUSH1 0x02 18EA 60 PUSH1 0x24 18EC 82 DUP3 18ED 01 ADD 18EE 52 MSTORE 18EF 60 PUSH1 0x01 18F1 60 PUSH1 0xf0 18F3 1B SHL 18F4 61 PUSH2 0x4531 18F7 02 MUL 18F8 60 PUSH1 0x44 18FA 82 DUP3 18FB 01 ADD 18FC 52 MSTORE 18FD 90 SWAP1 18FE 51 MLOAD 18FF 90 SWAP1 1900 81 DUP2 1901 90 SWAP1 1902 03 SUB 1903 60 PUSH1 0x64 1905 01 ADD 1906 90 SWAP1 1907 FD *REVERT // Stack delta = +0 // Outputs[5] // { // @18E0 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @18E7 memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @18EE memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x02 // @18FC memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x4531 * (0x01 << 0xf0) // @1907 revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_1908: // Incoming jump from 0x18D0, if msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x05] / 0x0100 // Inputs[5] // { // @190C storage[0x00] // @1915 stack[-2] // @1937 memory[0x40:0x60] // @193B memory[0x40:0x60] // @1965 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 1908 5B JUMPDEST 1909 60 PUSH1 0x00 190B 80 DUP1 190C 54 SLOAD 190D 60 PUSH1 0x01 190F 60 PUSH1 0x01 1911 60 PUSH1 0xa0 1913 1B SHL 1914 03 SUB 1915 84 DUP5 1916 16 AND 1917 63 PUSH4 0x01000000 191C 81 DUP2 191D 02 MUL 191E 63 PUSH4 0x01000000 1923 60 PUSH1 0x01 1925 60 PUSH1 0xb8 1927 1B SHL 1928 03 SUB 1929 19 NOT 192A 90 SWAP1 192B 92 SWAP3 192C 16 AND 192D 91 SWAP2 192E 90 SWAP1 192F 91 SWAP2 1930 17 OR 1931 90 SWAP1 1932 91 SWAP2 1933 55 SSTORE 1934 60 PUSH1 0x40 1936 80 DUP1 1937 51 MLOAD 1938 91 SWAP2 1939 82 DUP3 193A 52 MSTORE 193B 51 MLOAD 193C 7F PUSH32 0xe253457d9ad994ca9682fc3bbc38c890dca73a2d5ecee3809e548bac8b00d7c6 195D 91 SWAP2 195E 81 DUP2 195F 90 SWAP1 1960 03 SUB 1961 60 PUSH1 0x20 1963 01 ADD 1964 90 SWAP1 1965 A1 LOG1 1966 60 PUSH1 0x00 1968 61 PUSH2 0x18aa 196B 56 *JUMP // Stack delta = +1 // Outputs[4] // { // @1933 storage[0x00] = (storage[0x00] & ~((0x01 << 0xb8) - 0x01000000)) | (stack[-2] & (0x01 << 0xa0) - 0x01) * 0x01000000 // @193A memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = stack[-2] & (0x01 << 0xa0) - 0x01 // @1965 log(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20 + (memory[0x40:0x60] - memory[0x40:0x60])], [0xe253457d9ad994ca9682fc3bbc38c890dca73a2d5ecee3809e548bac8b00d7c6]); // @1966 stack[0] = 0x00 // } // Block ends with unconditional jump to 0x18aa label_196C: // Incoming jump from 0x06A1 // Inputs[4] // { // @1974 stack[-1] // @197A memory[0x00:0x40] // @197B storage[keccak256(memory[0x00:0x40])] // @197C stack[-2] // } 196C 5B JUMPDEST 196D 60 PUSH1 0x10 196F 60 PUSH1 0x20 1971 52 MSTORE 1972 60 PUSH1 0x00 1974 90 SWAP1 1975 81 DUP2 1976 52 MSTORE 1977 60 PUSH1 0x40 1979 90 SWAP1 197A 20 SHA3 197B 54 SLOAD 197C 81 DUP2 197D 56 *JUMP // Stack delta = +0 // Outputs[3] // { // @1971 memory[0x20:0x40] = 0x10 // @1976 memory[0x00:0x20] = stack[-1] // @197B stack[-1] = storage[keccak256(memory[0x00:0x40])] // } // Block ends with unconditional jump to stack[-2] label_197E: // Incoming call from 0x06B6, returns to 0x02AA // Inputs[2] // { // @1982 storage[0x04] // @1986 memory[0x40:0x60] // } 197E 5B JUMPDEST 197F 60 PUSH1 0x04 1981 80 DUP1 1982 54 SLOAD 1983 60 PUSH1 0x40 1985 80 DUP1 1986 51 MLOAD 1987 60 PUSH1 0x20 1989 60 PUSH1 0x02 198B 60 PUSH1 0x01 198D 85 DUP6 198E 16 AND 198F 15 ISZERO 1990 61 PUSH2 0x0100 1993 02 MUL 1994 60 PUSH1 0x00 1996 19 NOT 1997 01 ADD 1998 90 SWAP1 1999 94 SWAP5 199A 16 AND 199B 93 SWAP4 199C 90 SWAP1 199D 93 SWAP4 199E 04 DIV 199F 60 PUSH1 0x1f 19A1 81 DUP2 19A2 01 ADD 19A3 84 DUP5 19A4 90 SWAP1 19A5 04 DIV 19A6 84 DUP5 19A7 02 MUL 19A8 82 DUP3 19A9 01 ADD 19AA 84 DUP5 19AB 01 ADD 19AC 90 SWAP1 19AD 92 SWAP3 19AE 52 MSTORE 19AF 81 DUP2 19B0 81 DUP2 19B1 52 MSTORE 19B2 92 SWAP3 19B3 91 SWAP2 19B4 83 DUP4 19B5 01 ADD 19B6 82 DUP3 19B7 82 DUP3 19B8 80 DUP1 19B9 15 ISZERO 19BA 61 PUSH2 0x1124 19BD 57 *JUMPI // Stack delta = +6 // Outputs[8] // { // @19AD stack[2] = (storage[0x04] & ~0x00 + 0x0100 * !(storage[0x04] & 0x01)) / 0x02 // @19AE memory[0x40:0x60] = 0x20 + memory[0x40:0x60] + 0x20 * (((storage[0x04] & ~0x00 + 0x0100 * !(storage[0x04] & 0x01)) / 0x02 + 0x1f) / 0x20) // @19B1 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = (storage[0x04] & ~0x00 + 0x0100 * !(storage[0x04] & 0x01)) / 0x02 // @19B2 stack[0] = memory[0x40:0x60] // @19B3 stack[1] = 0x04 // @19B5 stack[3] = memory[0x40:0x60] + 0x20 // @19B6 stack[4] = 0x04 // @19B7 stack[5] = (storage[0x04] & ~0x00 + 0x0100 * !(storage[0x04] & 0x01)) / 0x02 // } // Block ends with conditional jump to 0x1124, if !((storage[0x04] & ~0x00 + 0x0100 * !(storage[0x04] & 0x01)) / 0x02) label_19BE: // Incoming jump from 0x19BD, if not !((storage[0x04] & ~0x00 + 0x0100 * !(storage[0x04] & 0x01)) / 0x02) // Inputs[1] { @19BE stack[-1] } 19BE 80 DUP1 19BF 60 PUSH1 0x1f 19C1 10 LT 19C2 61 PUSH2 0x10f9 19C5 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x10f9, if 0x1f < stack[-1] label_19C6: // Incoming jump from 0x19C5, if not 0x1f < stack[-1] // Inputs[4] // { // @19CA stack[-2] // @19CB storage[stack[-2]] // @19CE stack[-3] // @19D0 stack[-1] // } 19C6 61 PUSH2 0x0100 19C9 80 DUP1 19CA 83 DUP4 19CB 54 SLOAD 19CC 04 DIV 19CD 02 MUL 19CE 83 DUP4 19CF 52 MSTORE 19D0 91 SWAP2 19D1 60 PUSH1 0x20 19D3 01 ADD 19D4 91 SWAP2 19D5 61 PUSH2 0x1124 19D8 56 *JUMP // Stack delta = +0 // Outputs[3] // { // @19CF memory[stack[-3]:stack[-3] + 0x20] = storage[stack[-2]] / 0x0100 * 0x0100 // @19D4 stack[-1] = stack[-1] // @19D4 stack[-3] = 0x20 + stack[-3] // } // Block ends with unconditional jump to 0x1124 label_19D9: // Incoming call from 0x1252, returns to 0x1253 // Incoming jump from 0x06E9 // Inputs[1] { @19E2 stack[-1] } 19D9 5B JUMPDEST 19DA 60 PUSH1 0x00 19DC 80 DUP1 19DD 60 PUSH1 0x00 19DF 61 PUSH2 0x19e7 19E2 84 DUP5 19E3 61 PUSH2 0x330c 19E6 56 *JUMP // Stack delta = +5 // Outputs[5] // { // @19DA stack[0] = 0x00 // @19DC stack[1] = 0x00 // @19DD stack[2] = 0x00 // @19DF stack[3] = 0x19e7 // @19E2 stack[4] = stack[-1] // } // Block ends with call to 0x330c, returns to 0x19E7 label_19E7: // Incoming return from call to 0x330C at 0x19E6 // Inputs[4] // { // @19E8 stack[-1] // @19E8 stack[-2] // @19E9 stack[-4] // @19EB stack[-3] // } 19E7 5B JUMPDEST 19E8 90 SWAP1 19E9 92 SWAP3 19EA 50 POP 19EB 90 SWAP1 19EC 50 POP 19ED 60 PUSH1 0x00 19EF 82 DUP3 19F0 60 PUSH1 0x03 19F2 81 DUP2 19F3 11 GT 19F4 15 ISZERO 19F5 61 PUSH2 0x19fa 19F8 57 *JUMPI // Stack delta = +0 // Outputs[4] // { // @19E9 stack[-4] = stack[-2] // @19EB stack[-3] = stack[-1] // @19ED stack[-2] = 0x00 // @19EF stack[-1] = stack[-2] // } // Block ends with conditional jump to 0x19fa, if !(stack[-2] > 0x03) label_19F9: // Incoming jump from 0x19F8, if not !(stack[-2] > 0x03) 19F9 FE *ASSERT // Stack delta = +0 // Outputs[1] { @19F9 assert(); } // Block terminates label_19FA: // Incoming jump from 0x19F8, if !(stack[-2] > 0x03) // Inputs[2] // { // @19FB stack[-1] // @19FB stack[-2] // } 19FA 5B JUMPDEST 19FB 14 EQ 19FC 61 PUSH2 0x1681 19FF 57 *JUMPI // Stack delta = -2 // Block ends with conditional jump to 0x1681, if stack[-1] == stack[-2] label_1A00: // Incoming jump from 0x19FF, if not stack[-1] == stack[-2] // Inputs[3] // { // @1A03 memory[0x40:0x60] // @1A2E memory[0x40:0x60] // @1A37 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 1A00 60 PUSH1 0x40 1A02 80 DUP1 1A03 51 MLOAD 1A04 60 PUSH1 0x01 1A06 60 PUSH1 0xe5 1A08 1B SHL 1A09 62 PUSH3 0x461bcd 1A0D 02 MUL 1A0E 81 DUP2 1A0F 52 MSTORE 1A10 60 PUSH1 0x20 1A12 60 PUSH1 0x04 1A14 82 DUP3 1A15 01 ADD 1A16 52 MSTORE 1A17 60 PUSH1 0x03 1A19 60 PUSH1 0x24 1A1B 82 DUP3 1A1C 01 ADD 1A1D 52 MSTORE 1A1E 60 PUSH1 0x01 1A20 60 PUSH1 0xea 1A22 1B SHL 1A23 62 PUSH3 0x114dcd 1A27 02 MUL 1A28 60 PUSH1 0x44 1A2A 82 DUP3 1A2B 01 ADD 1A2C 52 MSTORE 1A2D 90 SWAP1 1A2E 51 MLOAD 1A2F 90 SWAP1 1A30 81 DUP2 1A31 90 SWAP1 1A32 03 SUB 1A33 60 PUSH1 0x64 1A35 01 ADD 1A36 90 SWAP1 1A37 FD *REVERT // Stack delta = +0 // Outputs[5] // { // @1A0F memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @1A16 memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @1A1D memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x03 // @1A2C memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x114dcd * (0x01 << 0xea) // @1A37 revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_1A38: // Incoming call from 0x120C, returns to 0x120D // Incoming call from 0x1637, returns to 0x1638 // Incoming call from 0x0B75, returns to 0x0B76 // Incoming call from 0x135C, returns to 0x135D // Incoming call from 0x3506, returns to 0x3507 // Incoming call from 0x4162, returns to 0x4163 // Incoming call from 0x2384, returns to 0x2385 // Incoming call from 0x3E09, returns to 0x3E0A // Incoming call from 0x2240, returns to 0x2241 // Incoming call from 0x06FE, returns to 0x0374 // Incoming call from 0x1FFC, returns to 0x1FFD // Incoming call from 0x1819, returns to 0x181A // Incoming call from 0x17B9, returns to 0x17BA // Incoming call from 0x1595, returns to 0x1596 // Incoming call from 0x3AF3, returns to 0x3AF4 1A38 5B JUMPDEST 1A39 60 PUSH1 0x00 1A3B 80 DUP1 1A3C 61 PUSH2 0x1a43 1A3F 61 PUSH2 0x23f2 1A42 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @1A39 stack[0] = 0x00 // @1A3B stack[1] = 0x00 // @1A3C stack[2] = 0x1a43 // } // Block ends with call to 0x23f2, returns to 0x1A43 label_1A43: // Incoming return from call to 0x23F2 at 0x1A42 // Inputs[3] // { // @1A46 storage[0x08] // @1A47 stack[-1] // @1A48 stack[-2] // } 1A43 5B JUMPDEST 1A44 60 PUSH1 0x08 1A46 54 SLOAD 1A47 90 SWAP1 1A48 91 SWAP2 1A49 50 POP 1A4A 80 DUP1 1A4B 82 DUP3 1A4C 14 EQ 1A4D 15 ISZERO 1A4E 61 PUSH2 0x1a5c 1A51 57 *JUMPI // Stack delta = +0 // Outputs[2] // { // @1A47 stack[-1] = storage[0x08] // @1A48 stack[-2] = stack[-1] // } // Block ends with conditional jump to 0x1a5c, if !(stack[-1] == storage[0x08]) label_1A52: // Incoming jump from 0x1A51, if not !(stack[-1] == storage[0x08]) // Inputs[1] { @1A54 stack[-3] } 1A52 60 PUSH1 0x00 1A54 92 SWAP3 1A55 50 POP 1A56 50 POP 1A57 50 POP 1A58 61 PUSH2 0x11a6 1A5B 56 *JUMP // Stack delta = -2 // Outputs[1] { @1A54 stack[-3] = 0x00 } // Block ends with unconditional jump to 0x11a6 label_1A5C: // Incoming jump from 0x1A51, if !(stack[-1] == storage[0x08]) 1A5C 5B JUMPDEST 1A5D 60 PUSH1 0x00 1A5F 61 PUSH2 0x1a66 1A62 61 PUSH2 0x306e 1A65 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @1A5D stack[0] = 0x00 // @1A5F stack[1] = 0x1a66 // } // Block ends with call to 0x306e, returns to 0x1A66 label_1A66: // Incoming return from call to 0x306E at 0x1A65 // Inputs[9] // { // @1A69 storage[0x06] // @1A6C storage[0x0a] // @1A6F storage[0x09] // @1A72 storage[0x01] // @1A76 memory[0x40:0x60] // @1A88 stack[-1] // @1A9A memory[0x40:0x60] // @1A9C stack[-2] // @1ACB address(storage[0x01] & (0x01 << 0xa0) - 0x01).code.length // } 1A66 5B JUMPDEST 1A67 60 PUSH1 0x06 1A69 54 SLOAD 1A6A 60 PUSH1 0x0a 1A6C 54 SLOAD 1A6D 60 PUSH1 0x09 1A6F 54 SLOAD 1A70 60 PUSH1 0x01 1A72 54 SLOAD 1A73 60 PUSH1 0x40 1A75 80 DUP1 1A76 51 MLOAD 1A77 60 PUSH1 0x01 1A79 60 PUSH1 0xe0 1A7B 1B SHL 1A7C 63 PUSH4 0x15f24053 1A81 02 MUL 1A82 81 DUP2 1A83 52 MSTORE 1A84 60 PUSH1 0x04 1A86 81 DUP2 1A87 01 ADD 1A88 87 DUP8 1A89 90 SWAP1 1A8A 52 MSTORE 1A8B 60 PUSH1 0x24 1A8D 81 DUP2 1A8E 01 ADD 1A8F 86 DUP7 1A90 90 SWAP1 1A91 52 MSTORE 1A92 60 PUSH1 0x44 1A94 81 DUP2 1A95 01 ADD 1A96 85 DUP6 1A97 90 SWAP1 1A98 52 MSTORE 1A99 90 SWAP1 1A9A 51 MLOAD 1A9B 95 SWAP6 1A9C 96 SWAP7 1A9D 50 POP 1A9E 93 SWAP4 1A9F 94 SWAP5 1AA0 92 SWAP3 1AA1 93 SWAP4 1AA2 91 SWAP2 1AA3 92 SWAP3 1AA4 60 PUSH1 0x00 1AA6 92 SWAP3 1AA7 60 PUSH1 0x01 1AA9 60 PUSH1 0x01 1AAB 60 PUSH1 0xa0 1AAD 1B SHL 1AAE 03 SUB 1AAF 90 SWAP1 1AB0 92 SWAP3 1AB1 16 AND 1AB2 91 SWAP2 1AB3 63 PUSH4 0x15f24053 1AB8 91 SWAP2 1AB9 60 PUSH1 0x64 1ABB 80 DUP1 1ABC 83 DUP4 1ABD 01 ADD 1ABE 92 SWAP3 1ABF 60 PUSH1 0x20 1AC1 92 SWAP3 1AC2 91 SWAP2 1AC3 90 SWAP1 1AC4 82 DUP3 1AC5 90 SWAP1 1AC6 03 SUB 1AC7 01 ADD 1AC8 81 DUP2 1AC9 86 DUP7 1ACA 80 DUP1 1ACB 3B EXTCODESIZE 1ACC 15 ISZERO 1ACD 80 DUP1 1ACE 15 ISZERO 1ACF 61 PUSH2 0x1ad7 1AD2 57 *JUMPI // Stack delta = +12 // Outputs[18] // { // @1A83 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x15f24053 * (0x01 << 0xe0) // @1A8A memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = stack[-1] // @1A91 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = storage[0x06] // @1A98 memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = storage[0x0a] // @1A9C stack[-2] = stack[-1] // @1A9F stack[-1] = storage[0x06] // @1AA1 stack[0] = storage[0x0a] // @1AA3 stack[1] = storage[0x09] // @1AA6 stack[2] = 0x00 // @1AB2 stack[3] = storage[0x01] & (0x01 << 0xa0) - 0x01 // @1AB8 stack[4] = 0x15f24053 // @1ABE stack[5] = memory[0x40:0x60] + 0x64 // @1AC1 stack[6] = 0x20 // @1AC2 stack[7] = memory[0x40:0x60] // @1AC7 stack[8] = memory[0x40:0x60] - memory[0x40:0x60] + 0x64 // @1AC8 stack[9] = memory[0x40:0x60] // @1AC9 stack[10] = storage[0x01] & (0x01 << 0xa0) - 0x01 // @1ACC stack[11] = !address(storage[0x01] & (0x01 << 0xa0) - 0x01).code.length // } // Block ends with conditional jump to 0x1ad7, if !!address(storage[0x01] & (0x01 << 0xa0) - 0x01).code.length label_1AD3: // Incoming jump from 0x1AD2, if not !!address(storage[0x01] & (0x01 << 0xa0) - 0x01).code.length // Inputs[1] { @1AD6 memory[0x00:0x00] } 1AD3 60 PUSH1 0x00 1AD5 80 DUP1 1AD6 FD *REVERT // Stack delta = +0 // Outputs[1] { @1AD6 revert(memory[0x00:0x00]); } // Block terminates label_1AD7: // Incoming jump from 0x1AD2, if !!address(storage[0x01] & (0x01 << 0xa0) - 0x01).code.length // Inputs[8] // { // @1AD9 msg.gas // @1ADA address(stack[-2]).staticcall.gas(msg.gas)(memory[stack[-3]:stack[-3] + stack[-4]]) // @1ADA stack[-5] // @1ADA memory[stack[-3]:stack[-3] + stack[-4]] // @1ADA stack[-3] // @1ADA stack[-6] // @1ADA stack[-4] // @1ADA stack[-2] // } 1AD7 5B JUMPDEST 1AD8 50 POP 1AD9 5A GAS 1ADA FA STATICCALL 1ADB 15 ISZERO 1ADC 80 DUP1 1ADD 15 ISZERO 1ADE 61 PUSH2 0x1aeb 1AE1 57 *JUMPI // Stack delta = -5 // Outputs[2] // { // @1ADA memory[stack[-5]:stack[-5] + stack[-6]] = address(stack[-2]).staticcall.gas(msg.gas)(memory[stack[-3]:stack[-3] + stack[-4]]) // @1ADB stack[-6] = !address(stack[-2]).staticcall.gas(msg.gas)(memory[stack[-3]:stack[-3] + stack[-4]]) // } // Block ends with conditional jump to 0x1aeb, if !!address(stack[-2]).staticcall.gas(msg.gas)(memory[stack[-3]:stack[-3] + stack[-4]]) label_1AE2: // Incoming jump from 0x1AE1, if not !!address(stack[-2]).staticcall.gas(msg.gas)(memory[stack[-3]:stack[-3] + stack[-4]]) // Inputs[4] // { // @1AE2 returndata.length // @1AE6 returndata[0x00:0x00 + returndata.length] // @1AE7 returndata.length // @1AEA memory[0x00:0x00 + returndata.length] // } 1AE2 3D RETURNDATASIZE 1AE3 60 PUSH1 0x00 1AE5 80 DUP1 1AE6 3E RETURNDATACOPY 1AE7 3D RETURNDATASIZE 1AE8 60 PUSH1 0x00 1AEA FD *REVERT // Stack delta = +0 // Outputs[2] // { // @1AE6 memory[0x00:0x00 + returndata.length] = returndata[0x00:0x00 + returndata.length] // @1AEA revert(memory[0x00:0x00 + returndata.length]); // } // Block terminates label_1AEB: // Incoming jump from 0x1AE1, if !!address(stack[-2]).staticcall.gas(msg.gas)(memory[stack[-3]:stack[-3] + stack[-4]]) // Inputs[2] // { // @1AF2 memory[0x40:0x60] // @1AF3 returndata.length // } 1AEB 5B JUMPDEST 1AEC 50 POP 1AED 50 POP 1AEE 50 POP 1AEF 50 POP 1AF0 60 PUSH1 0x40 1AF2 51 MLOAD 1AF3 3D RETURNDATASIZE 1AF4 60 PUSH1 0x20 1AF6 81 DUP2 1AF7 10 LT 1AF8 15 ISZERO 1AF9 61 PUSH2 0x1b01 1AFC 57 *JUMPI // Stack delta = -2 // Outputs[2] // { // @1AF2 stack[-4] = memory[0x40:0x60] // @1AF3 stack[-3] = returndata.length // } // Block ends with conditional jump to 0x1b01, if !(returndata.length < 0x20) label_1AFD: // Incoming jump from 0x1AFC, if not !(returndata.length < 0x20) // Inputs[1] { @1B00 memory[0x00:0x00] } 1AFD 60 PUSH1 0x00 1AFF 80 DUP1 1B00 FD *REVERT // Stack delta = +0 // Outputs[1] { @1B00 revert(memory[0x00:0x00]); } // Block terminates label_1B01: // Incoming jump from 0x1AFC, if !(returndata.length < 0x20) // Inputs[3] // { // @1B03 stack[-2] // @1B03 memory[stack[-2]:stack[-2] + 0x20] // @1B04 stack[-3] // } 1B01 5B JUMPDEST 1B02 50 POP 1B03 51 MLOAD 1B04 90 SWAP1 1B05 50 POP 1B06 65 PUSH6 0x048c27395000 1B0D 81 DUP2 1B0E 11 GT 1B0F 15 ISZERO 1B10 61 PUSH2 0x1b4c 1B13 57 *JUMPI // Stack delta = -2 // Outputs[1] { @1B04 stack[-3] = memory[stack[-2]:stack[-2] + 0x20] } // Block ends with conditional jump to 0x1b4c, if !(memory[stack[-2]:stack[-2] + 0x20] > 0x048c27395000) label_1B14: // Incoming jump from 0x1B13, if not !(memory[stack[-2]:stack[-2] + 0x20] > 0x048c27395000) // Inputs[3] // { // @1B17 memory[0x40:0x60] // @1B42 memory[0x40:0x60] // @1B4B memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 1B14 60 PUSH1 0x40 1B16 80 DUP1 1B17 51 MLOAD 1B18 60 PUSH1 0x01 1B1A 60 PUSH1 0xe5 1B1C 1B SHL 1B1D 62 PUSH3 0x461bcd 1B21 02 MUL 1B22 81 DUP2 1B23 52 MSTORE 1B24 60 PUSH1 0x20 1B26 60 PUSH1 0x04 1B28 82 DUP3 1B29 01 ADD 1B2A 52 MSTORE 1B2B 60 PUSH1 0x03 1B2D 60 PUSH1 0x24 1B2F 82 DUP3 1B30 01 ADD 1B31 52 MSTORE 1B32 60 PUSH1 0x01 1B34 60 PUSH1 0xec 1B36 1B SHL 1B37 62 PUSH3 0x045363 1B3B 02 MUL 1B3C 60 PUSH1 0x44 1B3E 82 DUP3 1B3F 01 ADD 1B40 52 MSTORE 1B41 90 SWAP1 1B42 51 MLOAD 1B43 90 SWAP1 1B44 81 DUP2 1B45 90 SWAP1 1B46 03 SUB 1B47 60 PUSH1 0x64 1B49 01 ADD 1B4A 90 SWAP1 1B4B FD *REVERT // Stack delta = +0 // Outputs[5] // { // @1B23 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @1B2A memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @1B31 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x03 // @1B40 memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x045363 * (0x01 << 0xec) // @1B4B revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_1B4C: // Incoming jump from 0x1B13, if !(memory[stack[-2]:stack[-2] + 0x20] > 0x048c27395000) // Inputs[2] // { // @1B53 stack[-7] // @1B54 stack[-6] // } 1B4C 5B JUMPDEST 1B4D 60 PUSH1 0x00 1B4F 80 DUP1 1B50 61 PUSH2 0x1b59 1B53 89 DUP10 1B54 89 DUP10 1B55 61 PUSH2 0x33c0 1B58 56 *JUMP // Stack delta = +5 // Outputs[5] // { // @1B4D stack[0] = 0x00 // @1B4F stack[1] = 0x00 // @1B50 stack[2] = 0x1b59 // @1B53 stack[3] = stack[-7] // @1B54 stack[4] = stack[-6] // } // Block ends with call to 0x33c0, returns to 0x1B59 label_1B59: // Incoming return from call to 0x33C0 at 0x1B58 // Inputs[4] // { // @1B5A stack[-2] // @1B5A stack[-1] // @1B5B stack[-4] // @1B5D stack[-3] // } 1B59 5B JUMPDEST 1B5A 90 SWAP1 1B5B 92 SWAP3 1B5C 50 POP 1B5D 90 SWAP1 1B5E 50 POP 1B5F 60 PUSH1 0x00 1B61 82 DUP3 1B62 60 PUSH1 0x03 1B64 81 DUP2 1B65 11 GT 1B66 15 ISZERO 1B67 61 PUSH2 0x1b6c 1B6A 57 *JUMPI // Stack delta = +0 // Outputs[4] // { // @1B5B stack[-4] = stack[-2] // @1B5D stack[-3] = stack[-1] // @1B5F stack[-2] = 0x00 // @1B61 stack[-1] = stack[-2] // } // Block ends with conditional jump to 0x1b6c, if !(stack[-2] > 0x03) label_1B6B: // Incoming jump from 0x1B6A, if not !(stack[-2] > 0x03) 1B6B FE *ASSERT // Stack delta = +0 // Outputs[1] { @1B6B assert(); } // Block terminates label_1B6C: // Incoming jump from 0x1B6A, if !(stack[-2] > 0x03) // Inputs[2] // { // @1B6D stack[-1] // @1B6D stack[-2] // } 1B6C 5B JUMPDEST 1B6D 14 EQ 1B6E 61 PUSH2 0x1baa 1B71 57 *JUMPI // Stack delta = -2 // Block ends with conditional jump to 0x1baa, if stack[-1] == stack[-2] label_1B72: // Incoming jump from 0x1B71, if not stack[-1] == stack[-2] // Inputs[3] // { // @1B75 memory[0x40:0x60] // @1BA0 memory[0x40:0x60] // @1BA9 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 1B72 60 PUSH1 0x40 1B74 80 DUP1 1B75 51 MLOAD 1B76 60 PUSH1 0x01 1B78 60 PUSH1 0xe5 1B7A 1B SHL 1B7B 62 PUSH3 0x461bcd 1B7F 02 MUL 1B80 81 DUP2 1B81 52 MSTORE 1B82 60 PUSH1 0x20 1B84 60 PUSH1 0x04 1B86 82 DUP3 1B87 01 ADD 1B88 52 MSTORE 1B89 60 PUSH1 0x03 1B8B 60 PUSH1 0x24 1B8D 82 DUP3 1B8E 01 ADD 1B8F 52 MSTORE 1B90 60 PUSH1 0x01 1B92 60 PUSH1 0xe8 1B94 1B SHL 1B95 62 PUSH3 0x453631 1B99 02 MUL 1B9A 60 PUSH1 0x44 1B9C 82 DUP3 1B9D 01 ADD 1B9E 52 MSTORE 1B9F 90 SWAP1 1BA0 51 MLOAD 1BA1 90 SWAP1 1BA2 81 DUP2 1BA3 90 SWAP1 1BA4 03 SUB 1BA5 60 PUSH1 0x64 1BA7 01 ADD 1BA8 90 SWAP1 1BA9 FD *REVERT // Stack delta = +0 // Outputs[5] // { // @1B81 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @1B88 memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @1B8F memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x03 // @1B9E memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x453631 * (0x01 << 0xe8) // @1BA9 revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_1BAA: // Incoming jump from 0x1B71, if stack[-1] == stack[-2] 1BAA 5B JUMPDEST 1BAB 61 PUSH2 0x1bb2 1BAE 61 PUSH2 0x5357 1BB1 56 *JUMP // Stack delta = +1 // Outputs[1] { @1BAB stack[0] = 0x1bb2 } // Block ends with call to 0x5357, returns to 0x1BB2 label_1BB2: // Incoming return from call to 0x5357 at 0x1BB1 // Inputs[3] // { // @1BBE memory[0x40:0x60] // @1BC7 stack[-4] // @1BCB stack[-2] // } 1BB2 5B JUMPDEST 1BB3 60 PUSH1 0x00 1BB5 80 DUP1 1BB6 60 PUSH1 0x00 1BB8 80 DUP1 1BB9 61 PUSH2 0x1bd0 1BBC 60 PUSH1 0x40 1BBE 51 MLOAD 1BBF 80 DUP1 1BC0 60 PUSH1 0x20 1BC2 01 ADD 1BC3 60 PUSH1 0x40 1BC5 52 MSTORE 1BC6 80 DUP1 1BC7 8A DUP11 1BC8 81 DUP2 1BC9 52 MSTORE 1BCA 50 POP 1BCB 87 DUP8 1BCC 61 PUSH2 0x33e3 1BCF 56 *JUMP // Stack delta = +7 // Outputs[9] // { // @1BB3 stack[0] = 0x00 // @1BB5 stack[1] = 0x00 // @1BB6 stack[2] = 0x00 // @1BB8 stack[3] = 0x00 // @1BB9 stack[4] = 0x1bd0 // @1BBE stack[5] = memory[0x40:0x60] // @1BC5 memory[0x40:0x60] = 0x20 + memory[0x40:0x60] // @1BC9 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = stack[-4] // @1BCB stack[6] = stack[-2] // } // Block ends with call to 0x33e3, returns to 0x1BD0 label_1BD0: // Incoming return from call to 0x33E3 at 0x1BCF // Inputs[4] // { // @1BD1 stack[-1] // @1BD1 stack[-2] // @1BD2 stack[-9] // @1BD4 stack[-7] // } 1BD0 5B JUMPDEST 1BD1 90 SWAP1 1BD2 97 SWAP8 1BD3 50 POP 1BD4 94 SWAP5 1BD5 50 POP 1BD6 60 PUSH1 0x00 1BD8 87 DUP8 1BD9 60 PUSH1 0x03 1BDB 81 DUP2 1BDC 11 GT 1BDD 15 ISZERO 1BDE 61 PUSH2 0x1be3 1BE1 57 *JUMPI // Stack delta = +0 // Outputs[4] // { // @1BD2 stack[-9] = stack[-2] // @1BD4 stack[-7] = stack[-1] // @1BD6 stack[-2] = 0x00 // @1BD8 stack[-1] = stack[-2] // } // Block ends with conditional jump to 0x1be3, if !(stack[-2] > 0x03) label_1BE2: // Incoming jump from 0x1BE1, if not !(stack[-2] > 0x03) 1BE2 FE *ASSERT // Stack delta = +0 // Outputs[1] { @1BE2 assert(); } // Block terminates label_1BE3: // Incoming jump from 0x1BE1, if !(stack[-2] > 0x03) // Inputs[2] // { // @1BE4 stack[-1] // @1BE4 stack[-2] // } 1BE3 5B JUMPDEST 1BE4 14 EQ 1BE5 61 PUSH2 0x1c21 1BE8 57 *JUMPI // Stack delta = -2 // Block ends with conditional jump to 0x1c21, if stack[-1] == stack[-2] label_1BE9: // Incoming jump from 0x1BE8, if not stack[-1] == stack[-2] // Inputs[3] // { // @1BEC memory[0x40:0x60] // @1C17 memory[0x40:0x60] // @1C20 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 1BE9 60 PUSH1 0x40 1BEB 80 DUP1 1BEC 51 MLOAD 1BED 60 PUSH1 0x01 1BEF 60 PUSH1 0xe5 1BF1 1B SHL 1BF2 62 PUSH3 0x461bcd 1BF6 02 MUL 1BF7 81 DUP2 1BF8 52 MSTORE 1BF9 60 PUSH1 0x20 1BFB 60 PUSH1 0x04 1BFD 82 DUP3 1BFE 01 ADD 1BFF 52 MSTORE 1C00 60 PUSH1 0x03 1C02 60 PUSH1 0x24 1C04 82 DUP3 1C05 01 ADD 1C06 52 MSTORE 1C07 60 PUSH1 0x01 1C09 60 PUSH1 0xe9 1C0B 1B SHL 1C0C 62 PUSH3 0x229b19 1C10 02 MUL 1C11 60 PUSH1 0x44 1C13 82 DUP3 1C14 01 ADD 1C15 52 MSTORE 1C16 90 SWAP1 1C17 51 MLOAD 1C18 90 SWAP1 1C19 81 DUP2 1C1A 90 SWAP1 1C1B 03 SUB 1C1C 60 PUSH1 0x64 1C1E 01 ADD 1C1F 90 SWAP1 1C20 FD *REVERT // Stack delta = +0 // Outputs[5] // { // @1BF8 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @1BFF memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @1C06 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x03 // @1C15 memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x229b19 * (0x01 << 0xe9) // @1C20 revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_1C21: // Incoming jump from 0x1BE8, if stack[-1] == stack[-2] // Inputs[2] // { // @1C25 stack[-5] // @1C26 stack[-11] // } 1C21 5B JUMPDEST 1C22 61 PUSH2 0x1c2b 1C25 85 DUP6 1C26 8C DUP13 1C27 61 PUSH2 0x3057 1C2A 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @1C22 stack[0] = 0x1c2b // @1C25 stack[1] = stack[-5] // @1C26 stack[2] = stack[-11] // } // Block ends with call to 0x3057, returns to 0x1C2B label_1C2B: // Incoming return from call to 0x3057 at 0x1C2A // Inputs[4] // { // @1C2C stack[-1] // @1C2C stack[-2] // @1C2D stack[-9] // @1C2F stack[-6] // } 1C2B 5B JUMPDEST 1C2C 90 SWAP1 1C2D 97 SWAP8 1C2E 50 POP 1C2F 93 SWAP4 1C30 50 POP 1C31 60 PUSH1 0x00 1C33 87 DUP8 1C34 60 PUSH1 0x03 1C36 81 DUP2 1C37 11 GT 1C38 15 ISZERO 1C39 61 PUSH2 0x1c3e 1C3C 57 *JUMPI // Stack delta = +0 // Outputs[4] // { // @1C2D stack[-9] = stack[-2] // @1C2F stack[-6] = stack[-1] // @1C31 stack[-2] = 0x00 // @1C33 stack[-1] = stack[-2] // } // Block ends with conditional jump to 0x1c3e, if !(stack[-2] > 0x03) label_1C3D: // Incoming jump from 0x1C3C, if not !(stack[-2] > 0x03) 1C3D FE *ASSERT // Stack delta = +0 // Outputs[1] { @1C3D assert(); } // Block terminates label_1C3E: // Incoming jump from 0x1C3C, if !(stack[-2] > 0x03) // Inputs[2] // { // @1C3F stack[-1] // @1C3F stack[-2] // } 1C3E 5B JUMPDEST 1C3F 14 EQ 1C40 61 PUSH2 0x1c7c 1C43 57 *JUMPI // Stack delta = -2 // Block ends with conditional jump to 0x1c7c, if stack[-1] == stack[-2] label_1C44: // Incoming jump from 0x1C43, if not stack[-1] == stack[-2] // Inputs[3] // { // @1C47 memory[0x40:0x60] // @1C72 memory[0x40:0x60] // @1C7B memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 1C44 60 PUSH1 0x40 1C46 80 DUP1 1C47 51 MLOAD 1C48 60 PUSH1 0x01 1C4A 60 PUSH1 0xe5 1C4C 1B SHL 1C4D 62 PUSH3 0x461bcd 1C51 02 MUL 1C52 81 DUP2 1C53 52 MSTORE 1C54 60 PUSH1 0x20 1C56 60 PUSH1 0x04 1C58 82 DUP3 1C59 01 ADD 1C5A 52 MSTORE 1C5B 60 PUSH1 0x03 1C5D 60 PUSH1 0x24 1C5F 82 DUP3 1C60 01 ADD 1C61 52 MSTORE 1C62 60 PUSH1 0x01 1C64 60 PUSH1 0xe8 1C66 1B SHL 1C67 62 PUSH3 0x453633 1C6B 02 MUL 1C6C 60 PUSH1 0x44 1C6E 82 DUP3 1C6F 01 ADD 1C70 52 MSTORE 1C71 90 SWAP1 1C72 51 MLOAD 1C73 90 SWAP1 1C74 81 DUP2 1C75 90 SWAP1 1C76 03 SUB 1C77 60 PUSH1 0x64 1C79 01 ADD 1C7A 90 SWAP1 1C7B FD *REVERT // Stack delta = +0 // Outputs[5] // { // @1C53 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd * (0x01 << 0xe5) // @1C5A memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @1C61 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x03 // @1C70 memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x453633 * (0x01 << 0xe8) // @1C7B revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])]); // } // Block terminates label_1C7C: // Incoming jump from 0x1C43, if stack[-1] == stack[-2] // Inputs[2] // { // @1C80 stack[-4] // @1C81 stack[-11] // } 1C7C 5B JUMPDEST 1C7D 61 PUSH2 0x1c86 1C80 84 DUP5 1C81 8C DUP13 1C82 61 PUSH2 0x2586 1C85 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @1C7D stack[0] = 0x1c86 // @1C80 stack[1] = stack[-4] // @1C81 stack[2] = stack[-11] // } // Block ends with call to 0x2586, returns to 0x1C86 label_1C86: // Incoming return from call to 0x2586 at 0x1C85 // Inputs[4] // { // @1C87 stack[-2] // @1C87 stack[-1] // @1C88 stack[-9] // @1C8A stack[-5] // } 1C86 5B JUMPDEST 1C87 90 SWAP1 1C88 97 SWAP8 1C89 50 POP 1C8A 92 SWAP3 1C8B 50 POP 1C8C 60 PUSH1 0x00 1C8E 87 DUP8 1C8F 60 PUSH1 0x03 1C91 81 DUP2 1C92 11 GT 1C93 15 ISZERO 1C94 61 PUSH2 0x1c99 1C97 57 *JUMPI // Stack delta = +0 // Outputs[4] // { // @1C88 stack[-9] = stack[-2] // @1C8A stack[-5] = stack[-1] // @1C8C stack[-2] = 0x00 // @1C8E stack[-1] = stack[-2] // } // Block ends with conditional jump to 0x1c99, if !(stack[-2] > 0x03) label_1C98: // Incoming jump from 0x1C97, if not !(stack[-2] > 0x03) 1C98 FE *ASSERT // Stack delta = +0 // Outputs[1] { @1C98 assert(); } // Block terminates label_1C99: // Incoming jump from 0x1C97, if !(stack[-2] > 0x03) // Inputs[2] // { // @1C9A stack[-2] // @1C9A stack[-1] // } 1C99 5B JUMPDEST 1C9A 14 EQ 1C9B 61 PUSH2 0x1cd7 1C9E 57 *JUMPI // Stack delta = -2 // Block ends with conditional jump to 0x1cd7, if stack[-1] == stack[-2] label_1C9F: // Incoming jump from 0x1C9E, if not stack[-1] == stack[-2] // Inputs[3] // { // @1CA2 memory[0x40:0x60] // @1CCD memory[0x40:0x60] // @1CD6 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x64 + (memory[0x40:0x60] - memory[0x40:0x60])] // } 1C9F 60 PUSH1 0x40 1CA1 80 DUP1 1CA2 51 MLOAD 1CA3 60 PUSH1 0x01 1CA5 60 PUSH1 0xe5 1CA7 1B SHL 1CA8 62 PUSH3 0x461bcd 1CAC 02 MUL 1CAD 81 DUP2 1CAE 52 MSTORE 1CAF 60 PUSH1 0x20 1CB1 60 PUSH1 0x04 1CB3 82 DUP3 1CB4 01 ADD 1CB5 52 MSTORE 1CB6 60 PUSH1 0x03 1CB8 60 PUSH1 0x24 1CBA 82 DUP3 1CBB 01 ADD 1CBC 52 MSTORE 1CBD 60 PUSH1 0x01 1CBF 60 PUSH1 0xea 1CC1 1B SHL 1CC2 62 PUSH3 0x114d8d 1CC6 02 MUL 1CC7 60 PUSH1 0x44 1CC9 82 DUP3 1CCA 01 ADD 1CCB 52 MSTORE 1CCC 90 SWAP1 1CCD 51 MLOAD 1CCE 90 SWAP1 1CCF 81 DUP2 1CD0 90 SWAP1 1CD1 03 SUB 1CD2 60 PUSH1 0x64 1CD4 01 ADD 1CD5 90 SWAP1 1CD6 FD *REVERT // Stack delta = +0 // Outputs[5] // {