@@ -17,112 +17,112 @@ object "C_59" {
17
17
code {
18
18
{
19
19
/// @src 0:346:625 "contract C {..."
20
- mstore(64, memoryguard(0x80))
21
- if iszero(lt(calldatasize(), 4))
20
+ let _1 := memoryguard(0x80)
21
+ let _2 := 4
22
+ if iszero(lt(calldatasize(), _2))
22
23
{
23
- let _1 := 0
24
- if eq(0xf8eddcc6, shr(224, calldataload(_1 )))
24
+ let _3 := 0
25
+ if eq(0xf8eddcc6, shr(224, calldataload(_3 )))
25
26
{
26
- if callvalue() { revert(_1, _1) }
27
- let _2 := 32
28
- if slt(add(calldatasize(), not(3)), _2) { revert(_1, _1) }
29
- let offset := calldataload(4)
30
- let _3 := 0xffffffffffffffff
31
- if gt(offset, _3) { revert(_1, _1) }
32
- if iszero(slt(add(offset, 35), calldatasize())) { revert(_1, _1) }
33
- let _4 := calldataload(add(4, offset))
34
- if gt(_4, _3) { panic_error_0x41() }
35
- let _5 := shl(5, _4)
36
- let dst := allocate_memory(add(_5, _2))
27
+ if callvalue() { revert(_3, _3) }
28
+ let _4 := 32
29
+ if slt(add(calldatasize(), not(3)), _4) { revert(_3, _3) }
30
+ let offset := calldataload(_2)
31
+ let _5 := 0xffffffffffffffff
32
+ if gt(offset, _5) { revert(_3, _3) }
33
+ if iszero(slt(add(offset, 35), calldatasize())) { revert(_3, _3) }
34
+ let _6 := calldataload(add(_2, offset))
35
+ let _7 := 36
36
+ if gt(_6, _5)
37
+ {
38
+ mstore(_3, shl(224, 0x4e487b71))
39
+ mstore(_2, 0x41)
40
+ revert(_3, _7)
41
+ }
42
+ let _8 := shl(5, _6)
43
+ let _9 := not(31)
44
+ let newFreePtr := add(_1, and(add(_8, 63), _9))
45
+ if or(gt(newFreePtr, _5), lt(newFreePtr, _1))
46
+ {
47
+ mstore(_3, shl(224, 0x4e487b71))
48
+ mstore(_2, 0x41)
49
+ revert(_3, _7)
50
+ }
51
+ let _10 := 64
52
+ mstore(_10, newFreePtr)
53
+ let dst := _1
54
+ mstore(_1, _6)
55
+ dst := add(_1, _4)
37
56
let dst_1 := dst
38
- mstore(dst, _4)
39
- dst := add(dst, _2)
40
- let srcEnd := add(add(offset, _5), 36)
41
- if gt(srcEnd, calldatasize()) { revert(_1, _1) }
42
- let src := add(offset, 36)
43
- for { } lt(src, srcEnd) { src := add(src, _2) }
57
+ let srcEnd := add(add(offset, _8), _7)
58
+ if gt(srcEnd, calldatasize()) { revert(_3, _3) }
59
+ let src := add(offset, _7)
60
+ for { } lt(src, srcEnd) { src := add(src, _4) }
61
+ {
62
+ if slt(sub(calldatasize(), src), _4) { revert(_3, _3) }
63
+ let memPtr := mload(_10)
64
+ let newFreePtr_1 := add(memPtr, _4)
65
+ if or(gt(newFreePtr_1, _5), lt(newFreePtr_1, memPtr))
66
+ {
67
+ mstore(_3, shl(224, 0x4e487b71))
68
+ mstore(_2, 0x41)
69
+ revert(_3, _7)
70
+ }
71
+ mstore(_10, newFreePtr_1)
72
+ mstore(memPtr, calldataload(src))
73
+ mstore(dst, memPtr)
74
+ dst := add(dst, _4)
75
+ }
76
+ if iszero(mload(_1))
77
+ {
78
+ mstore(_3, shl(224, 0x4e487b71))
79
+ mstore(_2, 0x32)
80
+ revert(_3, _7)
81
+ }
82
+ sstore(_3, mload(/** @src 0:469:474 "_s[0]" */ mload(dst_1)))
83
+ /// @src 0:346:625 "contract C {..."
84
+ if iszero(lt(/** @src 0:492:493 "1" */ 0x01, /** @src 0:346:625 "contract C {..." */ mload(_1)))
44
85
{
45
- if slt(sub(calldatasize(), src), _2) { revert(_1, _1) }
46
- let value := allocate_memory_1307()
47
- mstore(value, calldataload(src))
48
- mstore(dst, value)
49
- dst := add(dst, _2)
86
+ mstore(_3, shl(224, 0x4e487b71))
87
+ mstore(_2, 0x32)
88
+ revert(_3, _7)
50
89
}
51
- let ret, ret_1 := fun_sumArray(dst_1)
52
- let memPos := mload(64)
53
- return(memPos, sub(abi_encode_uint256_string(memPos, ret, ret_1), memPos))
90
+ let _11 := mload(/** @src 0:489:494 "_s[1]" */ mload(/** @src 0:346:625 "contract C {..." */ add(_1, _10)))
91
+ sstore(0x02, _11)
92
+ let memPtr_1 := mload(_10)
93
+ let newFreePtr_2 := add(memPtr_1, 160)
94
+ if or(gt(newFreePtr_2, _5), lt(newFreePtr_2, memPtr_1))
95
+ {
96
+ mstore(_3, shl(224, 0x4e487b71))
97
+ mstore(_2, 0x41)
98
+ revert(_3, _7)
99
+ }
100
+ mstore(_10, newFreePtr_2)
101
+ mstore(memPtr_1, 100)
102
+ mstore(add(memPtr_1, _4), "longstringlongstringlongstringlo")
103
+ mstore(add(memPtr_1, _10), "ngstringlongstringlongstringlong")
104
+ let _12 := 96
105
+ mstore(add(memPtr_1, _12), "stringlongstringlongstringlongst")
106
+ mstore(add(memPtr_1, 128), "ring")
107
+ let memPos := mload(_10)
108
+ mstore(memPos, _11)
109
+ mstore(add(memPos, _4), _10)
110
+ let length := mload(memPtr_1)
111
+ mstore(add(memPos, _10), length)
112
+ let i := _3
113
+ for { } lt(i, length) { i := add(i, _4) }
114
+ {
115
+ mstore(add(add(memPos, i), _12), mload(add(add(memPtr_1, i), _4)))
116
+ }
117
+ if gt(i, length)
118
+ {
119
+ mstore(add(add(memPos, length), _12), _3)
120
+ }
121
+ return(memPos, add(sub(add(memPos, and(add(length, 31), _9)), memPos), _12))
54
122
}
55
123
}
56
124
revert(0, 0)
57
125
}
58
- function panic_error_0x41()
59
- {
60
- mstore(0, shl(224, 0x4e487b71))
61
- mstore(4, 0x41)
62
- revert(0, 0x24)
63
- }
64
- function allocate_memory_1307() -> memPtr
65
- {
66
- memPtr := mload(64)
67
- let newFreePtr := add(memPtr, 32)
68
- if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }
69
- mstore(64, newFreePtr)
70
- }
71
- function allocate_memory(size) -> memPtr
72
- {
73
- memPtr := mload(64)
74
- let newFreePtr := add(memPtr, and(add(size, 31), not(31)))
75
- if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }
76
- mstore(64, newFreePtr)
77
- }
78
- function abi_encode_uint256_string(headStart, value0, value1) -> tail
79
- {
80
- mstore(headStart, value0)
81
- let _1 := 32
82
- mstore(add(headStart, _1), 64)
83
- let length := mload(value1)
84
- mstore(add(headStart, 64), length)
85
- let i := 0
86
- for { } lt(i, length) { i := add(i, _1) }
87
- {
88
- mstore(add(add(headStart, i), 96), mload(add(add(value1, i), _1)))
89
- }
90
- if gt(i, length)
91
- {
92
- mstore(add(add(headStart, length), 96), 0)
93
- }
94
- tail := add(add(headStart, and(add(length, 31), not(31))), 96)
95
- }
96
- function panic_error_0x32()
97
- {
98
- mstore(0, shl(224, 0x4e487b71))
99
- mstore(4, 0x32)
100
- revert(0, 0x24)
101
- }
102
- /// @ast-id 58 @src 0:381:623 "function sumArray(S[] memory _s) public returns (uint, string memory) {..."
103
- function fun_sumArray(var_s_mpos) -> var, var_mpos
104
- {
105
- /// @src 0:346:625 "contract C {..."
106
- if iszero(mload(var_s_mpos)) { panic_error_0x32() }
107
- sstore(/** @src 0:472:473 "0" */ 0x00, /** @src 0:346:625 "contract C {..." */ mload(/** @src 0:469:474 "_s[0]" */ mload(/** @src 0:346:625 "contract C {..." */ add(var_s_mpos, 32))))
108
- if iszero(lt(1, mload(var_s_mpos))) { panic_error_0x32() }
109
- let _1 := mload(/** @src 0:489:494 "_s[1]" */ mload(/** @src 0:346:625 "contract C {..." */ add(var_s_mpos, 64)))
110
- sstore(0x02, _1)
111
- /// @src 0:500:619 "return (t.y[0], \"longstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstring\")"
112
- var := _1
113
- /// @src 0:346:625 "contract C {..."
114
- let memPtr := mload(64)
115
- let newFreePtr := add(memPtr, 160)
116
- if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }
117
- mstore(64, newFreePtr)
118
- mstore(memPtr, 100)
119
- mstore(add(memPtr, 32), "longstringlongstringlongstringlo")
120
- mstore(add(memPtr, 64), "ngstringlongstringlongstringlong")
121
- mstore(add(memPtr, 96), "stringlongstringlongstringlongst")
122
- mstore(add(memPtr, 128), "ring")
123
- /// @src 0:500:619 "return (t.y[0], \"longstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstring\")"
124
- var_mpos := memPtr
125
- }
126
126
}
127
127
data ".metadata" hex"<BYTECODE REMOVED>"
128
128
}
0 commit comments