2020-07-02 10:48:20 +00:00
|
|
|
{
|
|
|
|
{
|
|
|
|
mstore(0x40, memoryguard(128))
|
|
|
|
sstore(23, f())
|
|
|
|
}
|
|
|
|
function f() -> v{
|
|
|
|
let a1 := calldataload(mul(1,4))
|
|
|
|
let a2 := calldataload(mul(2,4))
|
|
|
|
let a3 := calldataload(mul(3,4))
|
|
|
|
let a4 := calldataload(g())
|
|
|
|
let a5 := calldataload(mul(5,4))
|
|
|
|
let a6 := calldataload(mul(6,4))
|
|
|
|
let a7 := calldataload(mul(7,4))
|
|
|
|
let a8 := calldataload(mul(8,4))
|
|
|
|
let a9 := calldataload(mul(9,4))
|
|
|
|
a1 := calldataload(mul(0,4))
|
|
|
|
let a10 := calldataload(mul(10,4))
|
|
|
|
let a11 := calldataload(mul(11,4))
|
|
|
|
let a12 := calldataload(mul(12,4))
|
|
|
|
let a13 := calldataload(mul(13,4))
|
|
|
|
let a14 := calldataload(mul(14,4))
|
|
|
|
let a15 := calldataload(mul(15,4))
|
|
|
|
let a16 := calldataload(mul(16,4))
|
|
|
|
let a17 := calldataload(mul(17,4))
|
|
|
|
sstore(0, a1)
|
|
|
|
sstore(mul(17,4), a17)
|
|
|
|
sstore(mul(16,4), a16)
|
|
|
|
sstore(mul(15,4), a15)
|
|
|
|
sstore(mul(14,4), a14)
|
|
|
|
sstore(mul(13,4), a13)
|
|
|
|
sstore(mul(12,4), a12)
|
|
|
|
sstore(mul(11,4), a11)
|
|
|
|
sstore(mul(10,4), a10)
|
|
|
|
sstore(mul(9,4), a9)
|
|
|
|
sstore(mul(8,h()), a8)
|
|
|
|
sstore(mul(7,4), a7)
|
|
|
|
sstore(mul(6,4), a6)
|
|
|
|
sstore(mul(5,4), a5)
|
|
|
|
sstore(mul(4,4), a4)
|
|
|
|
sstore(mul(3,4), a3)
|
|
|
|
sstore(mul(2,4), a2)
|
|
|
|
sstore(mul(1,4), a1)
|
|
|
|
}
|
|
|
|
function g() -> v {
|
|
|
|
let a1 := calldataload(mul(1,4))
|
|
|
|
let a2 := calldataload(mul(2,4))
|
|
|
|
let a3 := calldataload(mul(3,4))
|
|
|
|
let a4 := calldataload(mul(4,4))
|
|
|
|
let a5 := calldataload(mul(5,4))
|
|
|
|
let a6 := calldataload(mul(6,4))
|
|
|
|
let a7 := calldataload(mul(7,4))
|
|
|
|
let a8 := calldataload(mul(8,4))
|
|
|
|
let a9 := calldataload(mul(9,4))
|
|
|
|
a1 := calldataload(mul(0,4))
|
|
|
|
let a10 := calldataload(mul(10,4))
|
|
|
|
let a11 := calldataload(mul(11,4))
|
|
|
|
let a12 := calldataload(mul(12,4))
|
|
|
|
let a13 := calldataload(mul(13,4))
|
|
|
|
let a14 := calldataload(mul(14,4))
|
|
|
|
let a15 := calldataload(mul(15,4))
|
|
|
|
let a16 := calldataload(mul(16,4))
|
|
|
|
let a17 := calldataload(mul(17,4))
|
|
|
|
sstore(0, a1)
|
|
|
|
sstore(mul(17,4), a17)
|
|
|
|
sstore(mul(16,4), a16)
|
|
|
|
sstore(mul(15,4), a15)
|
|
|
|
sstore(mul(14,4), a14)
|
|
|
|
sstore(mul(13,4), a13)
|
|
|
|
sstore(mul(12,4), a12)
|
|
|
|
sstore(mul(11,4), a11)
|
|
|
|
sstore(mul(10,4), a10)
|
|
|
|
sstore(mul(9,4), a9)
|
|
|
|
sstore(mul(8,4), a8)
|
|
|
|
sstore(mul(7,4), a7)
|
|
|
|
sstore(mul(6,4), a6)
|
|
|
|
sstore(mul(5,4), a5)
|
|
|
|
sstore(mul(4,4), a4)
|
|
|
|
sstore(mul(3,4), a3)
|
|
|
|
sstore(mul(2,4), a2)
|
|
|
|
sstore(mul(1,4), a1)
|
|
|
|
v := i()
|
|
|
|
}
|
|
|
|
function h() -> v {
|
|
|
|
let a1 := calldataload(mul(1,4))
|
|
|
|
let a2 := calldataload(mul(2,4))
|
|
|
|
let a3 := calldataload(mul(3,4))
|
|
|
|
let a4 := calldataload(mul(4,4))
|
|
|
|
let a5 := calldataload(mul(5,4))
|
|
|
|
let a6 := calldataload(mul(6,4))
|
|
|
|
let a7 := calldataload(mul(7,4))
|
|
|
|
let a8 := calldataload(mul(8,4))
|
|
|
|
let a9 := calldataload(mul(9,4))
|
|
|
|
let a10 := calldataload(mul(10,4))
|
|
|
|
let a11 := calldataload(mul(10,4))
|
|
|
|
a1 := calldataload(mul(0,4))
|
|
|
|
a2 := calldataload(mul(1,4))
|
|
|
|
let a12 := calldataload(mul(12,4))
|
|
|
|
let a13 := calldataload(mul(13,4))
|
|
|
|
let a14 := calldataload(mul(14,4))
|
|
|
|
let a15 := calldataload(mul(15,4))
|
|
|
|
let a16 := calldataload(mul(16,4))
|
|
|
|
let a17 := calldataload(mul(17,4))
|
|
|
|
let a18 := calldataload(mul(18,4))
|
|
|
|
let a19 := calldataload(mul(19,4))
|
|
|
|
sstore(0, add(a1, a2))
|
|
|
|
sstore(mul(17,4), a19)
|
|
|
|
sstore(mul(17,4), a18)
|
|
|
|
sstore(mul(17,4), a17)
|
|
|
|
sstore(mul(16,4), a16)
|
|
|
|
sstore(mul(15,4), a15)
|
|
|
|
sstore(mul(14,4), a14)
|
|
|
|
sstore(mul(13,4), a13)
|
|
|
|
sstore(mul(12,4), a12)
|
|
|
|
sstore(mul(11,4), a11)
|
|
|
|
sstore(mul(10,4), a10)
|
|
|
|
sstore(mul(9,4), a9)
|
|
|
|
sstore(mul(8,4), a8)
|
|
|
|
sstore(mul(7,4), a7)
|
|
|
|
sstore(mul(6,4), a6)
|
|
|
|
sstore(mul(5,4), a5)
|
|
|
|
sstore(mul(4,4), a4)
|
|
|
|
sstore(mul(3,4), a3)
|
|
|
|
sstore(mul(2,4), a2)
|
|
|
|
sstore(mul(1,4), a1)
|
|
|
|
v := i()
|
|
|
|
}
|
|
|
|
function i() -> v {
|
|
|
|
let a1 := calldataload(mul(1,4))
|
|
|
|
let a2 := calldataload(mul(2,4))
|
|
|
|
let a3 := calldataload(mul(3,4))
|
|
|
|
let a4 := calldataload(mul(4,4))
|
|
|
|
let a5 := calldataload(mul(5,4))
|
|
|
|
let a6 := calldataload(mul(6,4))
|
|
|
|
let a7 := calldataload(mul(7,4))
|
|
|
|
let a8 := calldataload(mul(8,4))
|
|
|
|
let a9 := calldataload(mul(9,4))
|
|
|
|
a1 := calldataload(mul(0,4))
|
|
|
|
let a10 := calldataload(mul(10,4))
|
|
|
|
let a11 := calldataload(mul(11,4))
|
|
|
|
let a12 := calldataload(mul(12,4))
|
|
|
|
let a13 := calldataload(mul(13,4))
|
|
|
|
let a14 := calldataload(mul(14,4))
|
|
|
|
let a15 := calldataload(mul(15,4))
|
|
|
|
let a16 := calldataload(mul(16,4))
|
|
|
|
let a17 := calldataload(mul(17,4))
|
|
|
|
sstore(0, a1)
|
|
|
|
sstore(mul(17,4), a17)
|
|
|
|
sstore(mul(16,4), a16)
|
|
|
|
sstore(mul(15,4), a15)
|
|
|
|
sstore(mul(14,4), a14)
|
|
|
|
sstore(mul(13,4), a13)
|
|
|
|
sstore(mul(12,4), a12)
|
|
|
|
sstore(mul(11,4), a11)
|
|
|
|
sstore(mul(10,4), a10)
|
|
|
|
sstore(mul(9,4), a9)
|
|
|
|
sstore(mul(8,4), a8)
|
|
|
|
sstore(mul(7,4), a7)
|
|
|
|
sstore(mul(6,4), a6)
|
|
|
|
sstore(mul(5,4), a5)
|
|
|
|
sstore(mul(4,4), a4)
|
|
|
|
sstore(mul(3,4), a3)
|
|
|
|
sstore(mul(2,4), a2)
|
|
|
|
sstore(mul(1,4), a1)
|
|
|
|
v := sload(mul(42,8))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// ----
|
|
|
|
// step: stackLimitEvader
|
|
|
|
//
|
|
|
|
// {
|
|
|
|
// {
|
|
|
|
// mstore(0x40, memoryguard(0x0100))
|
|
|
|
// sstore(23, f())
|
|
|
|
// }
|
|
|
|
// function f() -> v
|
|
|
|
// {
|
2020-09-17 15:36:18 +00:00
|
|
|
// mstore(0x80, calldataload(mul(1, 4)))
|
2020-07-02 10:48:20 +00:00
|
|
|
// let a2 := calldataload(mul(2, 4))
|
|
|
|
// let a3 := calldataload(mul(3, 4))
|
|
|
|
// let a4 := calldataload(g())
|
|
|
|
// let a5 := calldataload(mul(5, 4))
|
|
|
|
// let a6 := calldataload(mul(6, 4))
|
|
|
|
// let a7 := calldataload(mul(7, 4))
|
|
|
|
// let a8 := calldataload(mul(8, 4))
|
|
|
|
// let a9 := calldataload(mul(9, 4))
|
2020-09-17 15:36:18 +00:00
|
|
|
// mstore(0x80, calldataload(mul(0, 4)))
|
2020-07-02 10:48:20 +00:00
|
|
|
// let a10 := calldataload(mul(10, 4))
|
|
|
|
// let a11 := calldataload(mul(11, 4))
|
|
|
|
// let a12 := calldataload(mul(12, 4))
|
|
|
|
// let a13 := calldataload(mul(13, 4))
|
|
|
|
// let a14 := calldataload(mul(14, 4))
|
|
|
|
// let a15 := calldataload(mul(15, 4))
|
|
|
|
// let a16 := calldataload(mul(16, 4))
|
|
|
|
// let a17 := calldataload(mul(17, 4))
|
2020-09-17 15:36:18 +00:00
|
|
|
// sstore(0, mload(0x80))
|
2020-07-02 10:48:20 +00:00
|
|
|
// sstore(mul(17, 4), a17)
|
|
|
|
// sstore(mul(16, 4), a16)
|
|
|
|
// sstore(mul(15, 4), a15)
|
|
|
|
// sstore(mul(14, 4), a14)
|
|
|
|
// sstore(mul(13, 4), a13)
|
|
|
|
// sstore(mul(12, 4), a12)
|
|
|
|
// sstore(mul(11, 4), a11)
|
|
|
|
// sstore(mul(10, 4), a10)
|
|
|
|
// sstore(mul(9, 4), a9)
|
|
|
|
// sstore(mul(8, h()), a8)
|
|
|
|
// sstore(mul(7, 4), a7)
|
|
|
|
// sstore(mul(6, 4), a6)
|
|
|
|
// sstore(mul(5, 4), a5)
|
|
|
|
// sstore(mul(4, 4), a4)
|
|
|
|
// sstore(mul(3, 4), a3)
|
|
|
|
// sstore(mul(2, 4), a2)
|
2020-09-17 15:36:18 +00:00
|
|
|
// sstore(mul(1, 4), mload(0x80))
|
2020-07-02 10:48:20 +00:00
|
|
|
// }
|
|
|
|
// function g() -> v_1
|
|
|
|
// {
|
2020-09-17 15:36:18 +00:00
|
|
|
// mstore(0xc0, calldataload(mul(1, 4)))
|
2020-07-02 10:48:20 +00:00
|
|
|
// let a2_3 := calldataload(mul(2, 4))
|
|
|
|
// let a3_4 := calldataload(mul(3, 4))
|
|
|
|
// let a4_5 := calldataload(mul(4, 4))
|
|
|
|
// let a5_6 := calldataload(mul(5, 4))
|
|
|
|
// let a6_7 := calldataload(mul(6, 4))
|
|
|
|
// let a7_8 := calldataload(mul(7, 4))
|
|
|
|
// let a8_9 := calldataload(mul(8, 4))
|
|
|
|
// let a9_10 := calldataload(mul(9, 4))
|
2020-09-17 15:36:18 +00:00
|
|
|
// mstore(0xc0, calldataload(mul(0, 4)))
|
2020-07-02 10:48:20 +00:00
|
|
|
// let a10_11 := calldataload(mul(10, 4))
|
|
|
|
// let a11_12 := calldataload(mul(11, 4))
|
|
|
|
// let a12_13 := calldataload(mul(12, 4))
|
|
|
|
// let a13_14 := calldataload(mul(13, 4))
|
|
|
|
// let a14_15 := calldataload(mul(14, 4))
|
|
|
|
// let a15_16 := calldataload(mul(15, 4))
|
|
|
|
// let a16_17 := calldataload(mul(16, 4))
|
|
|
|
// let a17_18 := calldataload(mul(17, 4))
|
2020-09-17 15:36:18 +00:00
|
|
|
// sstore(0, mload(0xc0))
|
2020-07-02 10:48:20 +00:00
|
|
|
// sstore(mul(17, 4), a17_18)
|
|
|
|
// sstore(mul(16, 4), a16_17)
|
|
|
|
// sstore(mul(15, 4), a15_16)
|
|
|
|
// sstore(mul(14, 4), a14_15)
|
|
|
|
// sstore(mul(13, 4), a13_14)
|
|
|
|
// sstore(mul(12, 4), a12_13)
|
|
|
|
// sstore(mul(11, 4), a11_12)
|
|
|
|
// sstore(mul(10, 4), a10_11)
|
|
|
|
// sstore(mul(9, 4), a9_10)
|
|
|
|
// sstore(mul(8, 4), a8_9)
|
|
|
|
// sstore(mul(7, 4), a7_8)
|
|
|
|
// sstore(mul(6, 4), a6_7)
|
|
|
|
// sstore(mul(5, 4), a5_6)
|
|
|
|
// sstore(mul(4, 4), a4_5)
|
|
|
|
// sstore(mul(3, 4), a3_4)
|
|
|
|
// sstore(mul(2, 4), a2_3)
|
2020-09-17 15:36:18 +00:00
|
|
|
// sstore(mul(1, 4), mload(0xc0))
|
2020-07-02 10:48:20 +00:00
|
|
|
// v_1 := i()
|
|
|
|
// }
|
|
|
|
// function h() -> v_19
|
|
|
|
// {
|
2020-09-17 15:36:18 +00:00
|
|
|
// mstore(0xa0, calldataload(mul(1, 4)))
|
|
|
|
// mstore(0xc0, calldataload(mul(2, 4)))
|
2020-07-02 10:48:20 +00:00
|
|
|
// let a3_22 := calldataload(mul(3, 4))
|
|
|
|
// let a4_23 := calldataload(mul(4, 4))
|
|
|
|
// let a5_24 := calldataload(mul(5, 4))
|
|
|
|
// let a6_25 := calldataload(mul(6, 4))
|
|
|
|
// let a7_26 := calldataload(mul(7, 4))
|
|
|
|
// let a8_27 := calldataload(mul(8, 4))
|
|
|
|
// let a9_28 := calldataload(mul(9, 4))
|
|
|
|
// let a10_29 := calldataload(mul(10, 4))
|
|
|
|
// let a11_30 := calldataload(mul(10, 4))
|
2020-09-17 15:36:18 +00:00
|
|
|
// mstore(0xa0, calldataload(mul(0, 4)))
|
|
|
|
// mstore(0xc0, calldataload(mul(1, 4)))
|
2020-07-02 10:48:20 +00:00
|
|
|
// let a12_31 := calldataload(mul(12, 4))
|
|
|
|
// let a13_32 := calldataload(mul(13, 4))
|
|
|
|
// let a14_33 := calldataload(mul(14, 4))
|
|
|
|
// let a15_34 := calldataload(mul(15, 4))
|
|
|
|
// let a16_35 := calldataload(mul(16, 4))
|
|
|
|
// let a17_36 := calldataload(mul(17, 4))
|
|
|
|
// let a18 := calldataload(mul(18, 4))
|
|
|
|
// let a19 := calldataload(mul(19, 4))
|
2020-09-17 15:36:18 +00:00
|
|
|
// sstore(0, add(mload(0xa0), mload(0xc0)))
|
2020-07-02 10:48:20 +00:00
|
|
|
// sstore(mul(17, 4), a19)
|
|
|
|
// sstore(mul(17, 4), a18)
|
|
|
|
// sstore(mul(17, 4), a17_36)
|
|
|
|
// sstore(mul(16, 4), a16_35)
|
|
|
|
// sstore(mul(15, 4), a15_34)
|
|
|
|
// sstore(mul(14, 4), a14_33)
|
|
|
|
// sstore(mul(13, 4), a13_32)
|
|
|
|
// sstore(mul(12, 4), a12_31)
|
|
|
|
// sstore(mul(11, 4), a11_30)
|
|
|
|
// sstore(mul(10, 4), a10_29)
|
|
|
|
// sstore(mul(9, 4), a9_28)
|
|
|
|
// sstore(mul(8, 4), a8_27)
|
|
|
|
// sstore(mul(7, 4), a7_26)
|
|
|
|
// sstore(mul(6, 4), a6_25)
|
|
|
|
// sstore(mul(5, 4), a5_24)
|
|
|
|
// sstore(mul(4, 4), a4_23)
|
|
|
|
// sstore(mul(3, 4), a3_22)
|
2020-09-17 15:36:18 +00:00
|
|
|
// sstore(mul(2, 4), mload(0xc0))
|
|
|
|
// sstore(mul(1, 4), mload(0xa0))
|
2020-07-02 10:48:20 +00:00
|
|
|
// v_19 := i()
|
|
|
|
// }
|
|
|
|
// function i() -> v_37
|
|
|
|
// {
|
2020-09-17 15:36:18 +00:00
|
|
|
// mstore(0xe0, calldataload(mul(1, 4)))
|
2020-07-02 10:48:20 +00:00
|
|
|
// let a2_39 := calldataload(mul(2, 4))
|
|
|
|
// let a3_40 := calldataload(mul(3, 4))
|
|
|
|
// let a4_41 := calldataload(mul(4, 4))
|
|
|
|
// let a5_42 := calldataload(mul(5, 4))
|
|
|
|
// let a6_43 := calldataload(mul(6, 4))
|
|
|
|
// let a7_44 := calldataload(mul(7, 4))
|
|
|
|
// let a8_45 := calldataload(mul(8, 4))
|
|
|
|
// let a9_46 := calldataload(mul(9, 4))
|
2020-09-17 15:36:18 +00:00
|
|
|
// mstore(0xe0, calldataload(mul(0, 4)))
|
2020-07-02 10:48:20 +00:00
|
|
|
// let a10_47 := calldataload(mul(10, 4))
|
|
|
|
// let a11_48 := calldataload(mul(11, 4))
|
|
|
|
// let a12_49 := calldataload(mul(12, 4))
|
|
|
|
// let a13_50 := calldataload(mul(13, 4))
|
|
|
|
// let a14_51 := calldataload(mul(14, 4))
|
|
|
|
// let a15_52 := calldataload(mul(15, 4))
|
|
|
|
// let a16_53 := calldataload(mul(16, 4))
|
|
|
|
// let a17_54 := calldataload(mul(17, 4))
|
2020-09-17 15:36:18 +00:00
|
|
|
// sstore(0, mload(0xe0))
|
2020-07-02 10:48:20 +00:00
|
|
|
// sstore(mul(17, 4), a17_54)
|
|
|
|
// sstore(mul(16, 4), a16_53)
|
|
|
|
// sstore(mul(15, 4), a15_52)
|
|
|
|
// sstore(mul(14, 4), a14_51)
|
|
|
|
// sstore(mul(13, 4), a13_50)
|
|
|
|
// sstore(mul(12, 4), a12_49)
|
|
|
|
// sstore(mul(11, 4), a11_48)
|
|
|
|
// sstore(mul(10, 4), a10_47)
|
|
|
|
// sstore(mul(9, 4), a9_46)
|
|
|
|
// sstore(mul(8, 4), a8_45)
|
|
|
|
// sstore(mul(7, 4), a7_44)
|
|
|
|
// sstore(mul(6, 4), a6_43)
|
|
|
|
// sstore(mul(5, 4), a5_42)
|
|
|
|
// sstore(mul(4, 4), a4_41)
|
|
|
|
// sstore(mul(3, 4), a3_40)
|
|
|
|
// sstore(mul(2, 4), a2_39)
|
2020-09-17 15:36:18 +00:00
|
|
|
// sstore(mul(1, 4), mload(0xe0))
|
2020-07-02 10:48:20 +00:00
|
|
|
// v_37 := sload(mul(42, 8))
|
|
|
|
// }
|
|
|
|
// }
|