Created
January 19, 2021 11:57
-
-
Save hrkrshnn/71c49684c5ae60974f5bed90f40fb73a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
let _2296 := 128 | |
let _2297 := 64 | |
mstore(_2297, _2296) | |
let _4 := calldatasize() | |
let _2298 := 4 | |
let _2299 := lt(_4, _2298) | |
let _2300 := iszero(_2299) | |
if _2300 | |
{ | |
let _2301 := 0 | |
let _2302 := calldataload(_2301) | |
let _2303 := 224 | |
let _2304 := shr(_2303, _2302) | |
let _2305 := 0xf8eddcc6 | |
let _2306 := eq(_2305, _2304) | |
if _2306 | |
{ | |
let _2307 := callvalue() | |
if _2307 { revert(_2301, _2301) } | |
let _2310 := 32 | |
let _2311 := 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc | |
let _2312 := add(_4, _2311) | |
let _2313 := slt(_2312, _2310) | |
if _2313 { revert(_2301, _2301) } | |
let offset_11_959 := calldataload(_2298) | |
let _2317 := 0xffffffffffffffff | |
let _2318 := gt(offset_11_959, _2317) | |
if _2318 { revert(_2301, _2301) } | |
let _338_964 := add(_2298, offset_11_959) | |
let _2322 := 35 | |
let _2323 := add(offset_11_959, _2322) | |
let _2324 := slt(_2323, _4) | |
let _2325 := iszero(_2324) | |
if _2325 { revert(_2301, _2301) } | |
let _319_869_974 := calldataload(_338_964) | |
let _2328 := 36 | |
let _321_871_976 := add(offset_11_959, _2328) | |
let _2330 := gt(_319_869_974, _2317) | |
if _2330 { panic_error_0x41() } | |
let _366_663_724_882_987 := mul(_319_869_974, _2310) | |
let _2333 := add(_366_663_724_882_987, _2310) | |
let dst_732_890_995_2479 := allocateMemory(_2333) | |
let dst_732_890_995_2578 := dst_732_890_995_2479 | |
let dst_732_890_995 := dst_732_890_995_2479 | |
mstore(dst_732_890_995_2479, _319_869_974) | |
let dst_732_890_995_2480 := add(dst_732_890_995_2479, _2310) | |
let dst_732_890_995_2579 := dst_732_890_995_2480 | |
dst_732_890_995 := dst_732_890_995_2480 | |
let src_738_896_1001_2580 := _321_871_976 | |
let src_738_896_1001 := _321_871_976 | |
let _2336 := add(offset_11_959, _366_663_724_882_987) | |
let _2337 := add(_2336, _2328) | |
let _2338 := gt(_2337, _4) | |
if _2338 { revert(_2301, _2301) } | |
let i_747_905_1010_2581 := _2301 | |
let i_747_905_1010 := _2301 | |
for { } | |
true | |
{ | |
let i_747_905_1010_2603 := i_747_905_1010 | |
let _2341 := 1 | |
let i_747_905_1010_2483 := add(i_747_905_1010, _2341) | |
let i_747_905_1010_2582 := i_747_905_1010_2483 | |
i_747_905_1010 := i_747_905_1010_2483 | |
} | |
{ | |
let dst_732_890_995_2599 := dst_732_890_995 | |
let i_747_905_1010_2600 := i_747_905_1010 | |
let src_738_896_1001_2601 := src_738_896_1001 | |
let _2342 := lt(i_747_905_1010, _319_869_974) | |
let _2343 := iszero(_2342) | |
if _2343 { break } | |
let _2345 := sub(_4, src_738_896_1001) | |
let _2346 := slt(_2345, _2310) | |
if _2346 { revert(_2301, _2301) } | |
let value_459_675_772_930_1035 := allocateMemory_1233() | |
let _2349 := calldataload(src_738_896_1001) | |
mstore(value_459_675_772_930_1035, _2349) | |
mstore(dst_732_890_995, value_459_675_772_930_1035) | |
let dst_732_890_995_2484 := add(dst_732_890_995, _2310) | |
let dst_732_890_995_2583 := dst_732_890_995_2484 | |
dst_732_890_995 := dst_732_890_995_2484 | |
let src_738_896_1001_2485 := add(src_738_896_1001, _2310) | |
let src_738_896_1001_2584 := src_738_896_1001_2485 | |
src_738_896_1001 := src_738_896_1001_2485 | |
} | |
let ret_0, ret_1 := fun_sumArray_58(dst_732_890_995_2479) | |
let memPos := allocateMemory_1234() | |
let _2352 := abi_encode_uint256_t_string(memPos, ret_0, ret_1) | |
let _2353 := sub(_2352, memPos) | |
return(memPos, _2353) | |
} | |
} | |
let _2354 := 0 | |
revert(_2354, _2354) | |
function abi_encode_uint256_t_string(headStart_17, value0_18, value1) -> tail | |
{ | |
let _2356 := 64 | |
let tail_216 := add(headStart_17, _2356) | |
mstore(headStart_17, value0_18) | |
let _2358 := 32 | |
let _2359 := add(headStart_17, _2358) | |
mstore(_2359, _2356) | |
let length_14_607 := mload(value1) | |
mstore(tail_216, length_14_607) | |
let i_50_563_622_2486 := tail | |
let i_50_563_622_2585 := tail | |
let i_50_563_622 := tail | |
for { } | |
true | |
{ | |
let i_50_563_622_2609 := i_50_563_622 | |
let i_50_563_622_2487 := add(i_50_563_622, _2358) | |
let i_50_563_622_2586 := i_50_563_622_2487 | |
i_50_563_622 := i_50_563_622_2487 | |
} | |
{ | |
let i_50_563_622_2608 := i_50_563_622 | |
let _2361 := lt(i_50_563_622, length_14_607) | |
let _2362 := iszero(_2361) | |
if _2362 { break } | |
let _2364 := add(value1, i_50_563_622) | |
let _2365 := add(_2364, _2358) | |
let _2366 := mload(_2365) | |
let _2367 := 96 | |
let _2368 := add(headStart_17, i_50_563_622) | |
let _2369 := add(_2368, _2367) | |
mstore(_2369, _2366) | |
} | |
let i_50_563_622_2610 := i_50_563_622 | |
let _2370 := gt(i_50_563_622, length_14_607) | |
if _2370 | |
{ | |
let _2372 := 96 | |
let _2373 := add(headStart_17, length_14_607) | |
let _2374 := add(_2373, _2372) | |
mstore(_2374, tail) | |
} | |
let _2375 := 96 | |
let _2376 := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 | |
let _2377 := 31 | |
let _2378 := add(length_14_607, _2377) | |
let _2379 := and(_2378, _2376) | |
let _2380 := add(headStart_17, _2379) | |
let tail_2488 := add(_2380, _2375) | |
let tail_2587 := tail_2488 | |
tail := tail_2488 | |
} | |
function allocateMemory_1233() -> memPtr_1255 | |
{ | |
let _2381 := 64 | |
let memPtr_1255_2489 := mload(_2381) | |
let memPtr_1255_2588 := memPtr_1255_2489 | |
memPtr_1255 := memPtr_1255_2489 | |
let _2382 := 32 | |
let newFreePtr_1258 := add(memPtr_1255_2489, _2382) | |
let _2383 := lt(newFreePtr_1258, memPtr_1255_2489) | |
let _2384 := 0xffffffffffffffff | |
let _2385 := gt(newFreePtr_1258, _2384) | |
let _2386 := or(_2385, _2383) | |
if _2386 { panic_error_0x41() } | |
mstore(_2381, newFreePtr_1258) | |
} | |
function allocateMemory_1234() -> memPtr_1271 | |
{ | |
let _2388 := 64 | |
let memPtr_1271_2490 := mload(_2388) | |
let memPtr_1271_2589 := memPtr_1271_2490 | |
memPtr_1271 := memPtr_1271_2490 | |
let _2389 := 0xffffffffffffffff | |
let _2390 := gt(memPtr_1271_2490, _2389) | |
if _2390 { panic_error_0x41() } | |
mstore(_2388, memPtr_1271_2490) | |
} | |
function allocateMemory(size) -> memPtr | |
{ | |
let _2392 := 64 | |
let memPtr_2491 := mload(_2392) | |
let memPtr_2590 := memPtr_2491 | |
memPtr := memPtr_2491 | |
let _2393 := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 | |
let _2394 := 31 | |
let _2395 := add(size, _2394) | |
let _2396 := and(_2395, _2393) | |
let newFreePtr := add(memPtr_2491, _2396) | |
let _2397 := lt(newFreePtr, memPtr_2491) | |
let _2398 := 0xffffffffffffffff | |
let _2399 := gt(newFreePtr, _2398) | |
let _2400 := or(_2399, _2397) | |
if _2400 { panic_error_0x41() } | |
mstore(_2392, newFreePtr) | |
} | |
function copy_literal_to_memory_64902fd228f7ef267f3b474dd6ef84bae434cf5546eee948e7ca26df3eda1927() -> memPtr_46 | |
{ | |
let _2402 := 64 | |
let memPtr_1351_1759_1819 := mload(_2402) | |
let _2403 := 160 | |
let newFreePtr_1354_1822 := add(memPtr_1351_1759_1819, _2403) | |
let _2404 := lt(newFreePtr_1354_1822, memPtr_1351_1759_1819) | |
let _2405 := 0xffffffffffffffff | |
let _2406 := gt(newFreePtr_1354_1822, _2405) | |
let _2407 := or(_2406, _2404) | |
if _2407 { panic_error_0x41() } | |
mstore(_2402, newFreePtr_1354_1822) | |
let _2409 := 100 | |
mstore(memPtr_1351_1759_1819, _2409) | |
let memPtr_46_2591 := memPtr_1351_1759_1819 | |
memPtr_46 := memPtr_1351_1759_1819 | |
let _2410 := "longstringlongstringlongstringlo" | |
let _2411 := 0x20 | |
let _2412 := add(memPtr_1351_1759_1819, _2411) | |
mstore(_2412, _2410) | |
let _2413 := "ngstringlongstringlongstringlong" | |
let _2415 := add(memPtr_1351_1759_1819, _2402) | |
mstore(_2415, _2413) | |
let _2416 := "stringlongstringlongstringlongst" | |
let _2417 := 96 | |
let _2418 := add(memPtr_1351_1759_1819, _2417) | |
mstore(_2418, _2416) | |
let _2419 := "ring" | |
let _2420 := 128 | |
let _2421 := add(memPtr_1351_1759_1819, _2420) | |
mstore(_2421, _2419) | |
} | |
function extract_from_storage_value_dynamict_uint256(slot_value, offset_51) -> value_52 | |
{ | |
let _2422 := 8 | |
let _2423 := mul(offset_51, _2422) | |
let value_52_2493 := shr(_2423, slot_value) | |
let value_52_2592 := value_52_2493 | |
value_52 := value_52_2493 | |
} | |
function fun_sumArray_58(vloc__s_22_mpos) -> vloc__25, vloc__27_mpos | |
{ | |
let _2424 := mload(vloc__s_22_mpos) | |
let _2425 := vloc__25 | |
let _2426 := lt(vloc__25, _2424) | |
let _2427 := iszero(_2426) | |
if _2427 { panic_error_0x32() } | |
let _2428 := 32 | |
let _2431 := mul(vloc__25, _2428) | |
let _2432 := add(vloc__s_22_mpos, _2431) | |
let _2433 := add(_2432, _2428) | |
let _2434 := mload(_2433) | |
let _421_793 := mload(_2434) | |
let _8, _9 := storage_array_index_access$_t_struct$_S_storage_1241() | |
sstore(_8, _421_793) | |
let _2435 := mload(vloc__s_22_mpos) | |
let _2436 := 0x01 | |
let _2437 := lt(_2436, _2435) | |
let _2438 := iszero(_2437) | |
if _2438 { panic_error_0x32() } | |
let _2439 := 64 | |
let _2440 := add(vloc__s_22_mpos, _2439) | |
let _2441 := mload(_2440) | |
let _421_823 := mload(_2441) | |
let _2442 := 0x02 | |
let _2444 := lt(vloc__25, _2442) | |
let _2445 := iszero(_2444) | |
if _2445 { panic_error_0x32() } | |
let slot_70_478_837 := add(_2442, vloc__25) | |
let _444_844 := sload(slot_70_478_837) | |
let _2448 := 8 | |
let shiftBits_586_850 := mul(vloc__25, _2448) | |
let _2450 := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff | |
let mask_84_588_852 := shl(shiftBits_586_850, _2450) | |
let toInsert_82_255_589_853 := shl(shiftBits_586_850, _421_823) | |
let _2451 := not(mask_84_588_852) | |
let value_81_256_591_855 := and(_444_844, _2451) | |
let _2452 := and(toInsert_82_255_589_853, mask_84_588_852) | |
let _2453 := or(value_81_256_591_855, _2452) | |
sstore(slot_70_478_837, _2453) | |
let _24, _25 := storage_array_index_access$_t_struct$_S_storage_1242() | |
let _2454 := sload(_24) | |
let vloc__25_2494 := extract_from_storage_value_dynamict_uint256(_2454, _25) | |
let vloc__25_2593 := vloc__25_2494 | |
vloc__25 := vloc__25_2494 | |
let vloc__27_mpos_2495 := copy_literal_to_memory_64902fd228f7ef267f3b474dd6ef84bae434cf5546eee948e7ca26df3eda1927() | |
let vloc__27_mpos_2594 := vloc__27_mpos_2495 | |
vloc__27_mpos := vloc__27_mpos_2495 | |
} | |
function panic_error_0x32() | |
{ | |
let _2455 := 35408467139433450592217433187231851964531694900788300625387963629091585785856 | |
let _2456 := 0 | |
mstore(_2456, _2455) | |
let _2457 := 0x32 | |
let _2458 := 4 | |
mstore(_2458, _2457) | |
let _2459 := 0x24 | |
revert(_2456, _2459) | |
} | |
function panic_error_0x41() | |
{ | |
let _2461 := 35408467139433450592217433187231851964531694900788300625387963629091585785856 | |
let _2462 := 0 | |
mstore(_2462, _2461) | |
let _2463 := 0x41 | |
let _2464 := 4 | |
mstore(_2464, _2463) | |
let _2465 := 0x24 | |
revert(_2462, _2465) | |
} | |
function storage_array_index_access$_t_struct$_S_storage_1241() -> slot_70_1368, offset_71_1380 | |
{ | |
let _2467 := 0x02 | |
let _2468 := offset_71_1380 | |
let _2469 := lt(offset_71_1380, _2467) | |
let _2470 := iszero(_2469) | |
if _2470 { panic_error_0x32() } | |
let slot_70_1368_2496 := add(offset_71_1380, offset_71_1380) | |
let slot_70_1368_2595 := slot_70_1368_2496 | |
slot_70_1368 := slot_70_1368_2496 | |
let offset_71_1380_2596 := offset_71_1380 | |
offset_71_1380 := offset_71_1380 | |
} | |
function storage_array_index_access$_t_struct$_S_storage_1242() -> slot_70_1381, offset_71_1393 | |
{ | |
let _2473 := 0x02 | |
let _2474 := offset_71_1393 | |
let _2475 := lt(offset_71_1393, _2473) | |
let _2476 := iszero(_2475) | |
if _2476 { panic_error_0x32() } | |
let slot_70_1381_2498 := add(_2473, offset_71_1393) | |
let slot_70_1381_2597 := slot_70_1381_2498 | |
slot_70_1381 := slot_70_1381_2498 | |
let offset_71_1393_2598 := offset_71_1393 | |
offset_71_1393 := offset_71_1393 | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Running on the "[]" part of fullsuite.
ExpressionSplitter, SSATransform, RedundantAssignEliminator, RedundantAssignEliminator, ExpressionSimplifier, CommonSubexpressionEliminator, LoadResolver, LoopInvariantCodeMotion, CommonSubexpressionEliminator, ConditionalSimplifier, LiteralRematerialiser, ConditionalUnsimplifier, StructuralSimplifier, LiteralRematerialiser, ForLoopConditionOutOfBody, ControlFlowSimplifier, StructuralSimplifier, ControlFlowSimplifier, BlockFlattener, DeadCodeEliminator, ForLoopConditionIntoBody, UnusedPruner, CircularReferencesPruner, LoadResolver, CommonSubexpressionEliminator, UnusedPruner, CircularReferencesPruner, SSAReverser, CommonSubexpressionEliminator, UnusedPruner, CircularReferencesPruner, ExpressionJoiner, ExpressionJoiner, LiteralRematerialiser, UnusedFunctionParameterPruner, ExpressionInliner, UnusedPruner, CircularReferencesPruner, ExpressionSplitter, SSATransform, RedundantAssignEliminator, UnusedPruner, CircularReferencesPruner, RedundantAssignEliminator, UnusedPruner, CircularReferencesPruner, ExpressionSplitter, SSATransform, RedundantAssignEliminator, RedundantAssignEliminator, CommonSubexpressionEliminator, LoadResolver, FunctionGrouper, EquivalentFunctionCombiner, FullInliner, BlockFlattener, ConditionalSimplifier, LiteralRematerialiser, ConditionalUnsimplifier, CommonSubexpressionEliminator, SSATransform, RedundantAssignEliminator, RedundantAssignEliminator, LoadResolver, ExpressionSimplifier, LiteralRematerialiser, FunctionSpecializer, ForLoopConditionOutOfBody, StructuralSimplifier, BlockFlattener, DeadCodeEliminator, ControlFlowSimplifier, CommonSubexpressionEliminator, SSATransform, RedundantAssignEliminator, RedundantAssignEliminator, ForLoopConditionIntoBody, UnusedPruner, CircularReferencesPruner, CommonSubexpressionEliminator