Skip to content

Instantly share code, notes, and snippets.

@hrkrshnn
Created January 19, 2021 11:57
Show Gist options
  • Save hrkrshnn/71c49684c5ae60974f5bed90f40fb73a to your computer and use it in GitHub Desktop.
Save hrkrshnn/71c49684c5ae60974f5bed90f40fb73a to your computer and use it in GitHub Desktop.
{
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
}
}
@hrkrshnn
Copy link
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment