-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathout.txt
817 lines (810 loc) · 20.6 KB
/
out.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
======= out.yul (EVM) =======
Pretty printed source:
object "contract" {
code {
{
let _1 := datasize("runtime")
datacopy(0, dataoffset("runtime"), _1)
return(0, _1)
}
}
object "runtime" {
code {
{
switch shr(224, calldataload(0x0))
case 0x0ac298dc {
let offset := msize()
mstore8(offset, 68)
mstore(add(1, offset), sload(0xf2ee15ea639b73fa3db9b34a245bdfa015c260c598b211bf05a1ecc4b3e3b4f2))
let processed_return_value := msize()
switch byte(0x0, mload(offset))
case 68 { }
default { revert(0x0, 0x0) }
mstore(processed_return_value, shr(96, mload(add(offset, 1))))
return(processed_return_value, 32)
}
case 0x4980500b {
let offset_1 := msize()
let offset_2 := offset_1
let _1 := 67
mstore8(offset_1, _1)
let _2 := 1
let offset_3 := add(offset_1, _2)
mstore(offset_3, _2)
let _3 := 33
let offset_4 := add(offset_1, 33)
switch byte(0x0, mload(offset_1))
case 67 { }
default { revert(0x0, 0x0) }
let _4 := mload(offset_3)
mstore8(offset_4, 103)
let _5 := add(offset_1, 34)
mstore(_5, 3)
let _6 := add(offset_1, 66)
mstore8(_6, _1)
mstore(add(offset_1, _1), _2)
mstore8(add(offset_1, 99), _1)
mstore(add(offset_1, 100), 2)
mstore8(add(offset_1, 132), _1)
mstore(add(offset_1, 133), 3)
let _7 := 165
offset_1 := add(offset_1, 165)
let offset_5 := offset_1
let indexed_b_pointer := offset_4
switch byte(0x0, mload(offset_4))
case 103 { }
default { revert(0x0, 0x0) }
let size_of_indexed_b_pointer := mload(_5)
indexed_b_pointer := _6
let i_indexed_b_pointer$0 := 0x0
for { }
lt(i_indexed_b_pointer$0, size_of_indexed_b_pointer)
{
i_indexed_b_pointer$0 := add(i_indexed_b_pointer$0, _2)
}
{
switch byte(0x0, mload(indexed_b_pointer))
case 67 { }
default { revert(0x0, 0x0) }
mstore(offset_1, add(indexed_b_pointer, _2))
indexed_b_pointer := add(indexed_b_pointer, _3)
let _8 := 5
offset_1 := add(add(offset_2, shl(_8, add(_2, shr(_8, add(sub(offset_1, offset_2), not(133)))))), _7)
}
let indexed_b_keccak_var := keccak256(offset_5, add(sub(offset_1, offset_2), not(164)))
let return_value := 0x0
let processed_return_value_1 := msize()
mstore8(offset_1, _1)
let offset_6 := add(offset_1, _2)
mstore(offset_6, 2)
let offset_7 := add(offset_1, 33)
mstore8(offset_7, 103)
let _9 := add(offset_1, 34)
mstore(_9, 3)
let _10 := add(offset_1, 66)
mstore8(_10, _1)
mstore(add(offset_1, _1), _2)
mstore8(add(offset_1, 99), _1)
mstore(add(offset_1, 100), 2)
mstore8(add(offset_1, 132), _1)
mstore(add(offset_1, 133), 3)
switch byte(0x0, mload(offset_1))
case 67 { }
default { revert(0x0, 0x0) }
mstore(processed_return_value_1, mload(offset_6))
let _11 := 32
switch byte(0x0, mload(offset_7))
case 103 { }
default { revert(0x0, 0x0) }
let size := mload(_9)
return_value := _10
mstore(add(processed_return_value_1, 32), 32)
mstore(add(processed_return_value_1, 64), size)
let d_where_to_store_head$i := add(processed_return_value_1, 96)
let i := 0x0
for { } lt(i, size) { i := add(i, _2) }
{
switch byte(0x0, mload(return_value))
case 67 { }
default { revert(0x0, 0x0) }
mstore(d_where_to_store_head$i, mload(add(return_value, _2)))
return_value := add(return_value, _3)
d_where_to_store_head$i := add(d_where_to_store_head$i, _11)
}
log3(processed_return_value_1, add(sub(processed_return_value_1, add(processed_return_value_1, shl(5, size))), not(95)), 0x440e3ef808cab35cf3ac3f28adaf173b52d585f1f2d9e6fb1b705b96b3542b71, _4, indexed_b_keccak_var)
return(0x0, 0x0)
}
case 0x957592d6 {
test_address_storage()
return(0x0, 0x0)
}
default { revert(0x0, 0x0) }
}
function test_address_storage()
{
let offset := msize()
mstore8(offset, 68)
let offset_1 := add(offset, 1)
mstore(offset_1, shl(96, origin()))
sstore(0xf2ee15ea639b73fa3db9b34a245bdfa015c260c598b211bf05a1ecc4b3e3b4f2, mload(offset_1))
}
}
}
}
Binary representation:
6102548061000c5f395ff3fe5f3560e01c80630ac298dc146101dc5780634980500b146100325763957592d614610028575f80fd5b610030610213565b005b598060439182815360019283820193808552602194602184019084515f1a60431461005b575f80fd5b51946067825360228501946003865260428101908582538486820152856063820153600260648201528560848201536003608582015260a5809101968794515f1a6067146100a7575f80fd5b9190915190915f925b8284106101a15750505050840360a41901902094599383815382810190600282526021810191606783536022820191600383526042810196808853868183015280606383015360026064830152608482015360036085820152515f1a604314610117575f80fd5b518652602091515f1a60671461012b575f80fd5b519360208087015284604087015260608601925f915b86831061017c5789897f440e3ef808cab35cf3ac3f28adaf173b52d585f1f2d9e6fb1b705b96b3542b7160058a901b8b018b03605f19018ba3005b80515f1a60431461018b575f80fd5b8382879283810151885201950192019193610141565b809891929398515f1a6043146101b5575f80fd5b80870182529084900360851901600590811c8701901b840182019786019291908a016100b0565b59604481535f805160206102348339815191525481600101525981515f1a604414610205575f80fd5b6001602092015160601c8152f35b60015960448153013260601b8152515f805160206102348339815191525556fef2ee15ea639b73fa3db9b34a245bdfa015c260c598b211bf05a1ecc4b3e3b4f2
Text representation:
/* "out.yul":68:87 */
dataSize(sub_0)
/* "out.yul":45:66 */
dup1
dataOffset(sub_0)
/* "out.yul":42:43 */
0x00
/* "out.yul":33:88 */
codecopy
/* "out.yul":42:43 */
0x00
/* "out.yul":89:119 */
return
stop
sub_0: assembly {
/* "out.yul":202:205 */
0x00
/* "out.yul":189:206 */
calldataload
/* "out.yul":184:187 */
0xe0
/* "out.yul":180:207 */
shr
/* "out.yul":225:1054 */
dup1
/* "out.yul":230:240 */
0x0ac298dc
/* "out.yul":225:1054 */
eq
tag_2
jumpi
/* "out.yul":1055:1221 */
dup1
/* "out.yul":1060:1070 */
0x4980500b
/* "out.yul":1055:1221 */
eq
tag_4
jumpi
/* "out.yul":1227:1237 */
0x957592d6
/* "out.yul":1222:1403 */
eq
tag_6
jumpi
/* "out.yul":202:205 */
0x00
/* "out.yul":1414:1426 */
dup1
revert
/* "out.yul":1238:1403 */
tag_6:
/* "out.yul":6743:7074 */
tag_8
tag_1
jump // in
tag_8:
/* "out.yul":1388:1400 */
stop
/* "out.yul":1071:1221 */
tag_4:
/* "out.yul":1813:1820 */
msize
/* "out.yul":1798:1820 */
dup1
/* "out.yul":1864:1866 */
0x43
/* "out.yul":1847:1867 */
swap2
dup3
dup2
mstore8
/* "out.yul":1892:1893 */
0x01
/* "out.yul":1879:1894 */
swap3
dup4
dup3
add
/* "out.yul":1895:1921 */
swap4
dup1
dup6
mstore
/* "out.yul":1933:1949 */
0x21
swap5
0x21
dup5
add
/* "out.yul":1997:2022 */
swap1
dup5
mload
/* "out.yul":202:205 */
0x00
/* "out.yul":1989:2023 */
byte
/* "out.yul":2031:2033 */
0x43
/* "out.yul":2026:2036 */
eq
tag_9
jumpi
/* "out.yul":202:205 */
0x00
/* "out.yul":2053:2065 */
dup1
revert
/* "out.yul":2034:2036 */
tag_9:
/* "out.yul":2156:2181 */
mload
/* "out.yul":2206:2227 */
swap5
/* "out.yul":2223:2226 */
0x67
/* "out.yul":2206:2227 */
dup3
mstore8
/* "out.yul":2239:2254 */
0x22
dup6
add
/* "out.yul":2255:2273 */
swap5
/* "out.yul":2271:2272 */
0x03
/* "out.yul":2255:2273 */
dup7
mstore
/* "out.yul":2285:2301 */
0x42
dup2
add
/* "out.yul":2302:2322 */
swap1
dup6
dup3
mstore8
/* "out.yul":2334:2349 */
dup5
dup7
dup3
add
/* "out.yul":2350:2368 */
mstore
/* "out.yul":2380:2396 */
dup6
0x63
dup3
add
/* "out.yul":2397:2417 */
mstore8
/* "out.yul":2461:2462 */
0x02
/* "out.yul":2429:2444 */
0x64
dup3
add
/* "out.yul":2445:2463 */
mstore
/* "out.yul":2475:2491 */
dup6
0x84
dup3
add
/* "out.yul":2492:2512 */
mstore8
/* "out.yul":2271:2272 */
0x03
/* "out.yul":2524:2539 */
0x85
dup3
add
/* "out.yul":2540:2558 */
mstore
/* "out.yul":2570:2586 */
0xa5
dup1
swap2
add
/* "out.yul":2559:2586 */
swap7
dup8
/* "out.yul":2626:2658 */
swap5
/* "out.yul":2676:2701 */
mload
/* "out.yul":202:205 */
0x00
/* "out.yul":2668:2702 */
byte
/* "out.yul":2712:2715 */
0x67
/* "out.yul":2707:2718 */
eq
tag_11
jumpi
/* "out.yul":202:205 */
0x00
/* "out.yul":2732:2744 */
dup1
revert
/* "out.yul":2716:2718 */
tag_11:
swap2
swap1
swap2
/* "out.yul":2837:2862 */
mload
/* "out.yul":2865:2914 */
swap1
/* "out.yul":2923:2954 */
swap2
/* "out.yul":202:205 */
0x00
/* "out.yul":2922:2955 */
swap3
/* "out.yul":2956:3013 */
tag_13:
dup3
dup5
lt
tag_14
jumpi
pop
pop
pop
pop
/* "out.yul":3541:3577 */
dup5
sub
not(0xa4)
add
swap1
/* "out.yul":3507:3578 */
keccak256
/* "out.yul":3700:3722 */
swap5
/* "out.yul":3754:3761 */
msize
/* "out.yul":3903:3923 */
swap4
dup4
dup2
mstore8
/* "out.yul":3935:3950 */
dup3
dup2
add
/* "out.yul":3951:3977 */
swap1
/* "out.yul":2461:2462 */
0x02
/* "out.yul":3951:3977 */
dup3
mstore
/* "out.yul":1933:1949 */
0x21
/* "out.yul":3989:4005 */
dup2
add
/* "out.yul":4028:4049 */
swap2
/* "out.yul":2223:2226 */
0x67
/* "out.yul":4028:4049 */
dup4
mstore8
/* "out.yul":2239:2254 */
0x22
/* "out.yul":4061:4076 */
dup3
add
/* "out.yul":4077:4095 */
swap2
/* "out.yul":2271:2272 */
0x03
/* "out.yul":4077:4095 */
dup4
mstore
/* "out.yul":2285:2301 */
0x42
/* "out.yul":4107:4123 */
dup2
add
/* "out.yul":4124:4144 */
swap7
dup1
dup9
mstore8
/* "out.yul":4156:4171 */
dup7
dup2
dup4
add
/* "out.yul":4172:4190 */
mstore
/* "out.yul":4202:4218 */
dup1
/* "out.yul":2380:2396 */
0x63
/* "out.yul":4202:4218 */
dup4
add
/* "out.yul":4219:4239 */
mstore8
/* "out.yul":2461:2462 */
0x02
/* "out.yul":2429:2444 */
0x64
/* "out.yul":4251:4266 */
dup4
add
/* "out.yul":4267:4285 */
mstore
/* "out.yul":2475:2491 */
0x84
/* "out.yul":4297:4313 */
dup3
add
/* "out.yul":4314:4334 */
mstore8
/* "out.yul":2271:2272 */
0x03
/* "out.yul":2524:2539 */
0x85
/* "out.yul":4346:4361 */
dup3
add
/* "out.yul":4362:4380 */
mstore
/* "out.yul":4627:4647 */
mload
/* "out.yul":202:205 */
0x00
/* "out.yul":4619:4648 */
byte
/* "out.yul":4656:4658 */
0x43
/* "out.yul":4651:4661 */
eq
tag_16
jumpi
/* "out.yul":202:205 */
0x00
/* "out.yul":4710:4722 */
dup1
revert
/* "out.yul":4659:4661 */
tag_16:
/* "out.yul":4805:4825 */
mload
/* "out.yul":4767:4827 */
dup7
mstore
/* "out.yul":1946:1948 */
0x20
/* "out.yul":5309:5329 */
swap2
mload
/* "out.yul":202:205 */
0x00
/* "out.yul":5301:5330 */
byte
/* "out.yul":5338:5341 */
0x67
/* "out.yul":5333:5344 */
eq
tag_18
jumpi
/* "out.yul":202:205 */
0x00
/* "out.yul":5393:5405 */
dup1
revert
/* "out.yul":5342:5344 */
tag_18:
/* "out.yul":5463:5483 */
mload
/* "out.yul":5484:5523 */
swap4
/* "out.yul":1946:1948 */
0x20
/* "out.yul":4894:4925 */
dup1
dup8
add
/* "out.yul":5527:5616 */
mstore
/* "out.yul":3849:3881 */
dup5
/* "out.yul":3878:3880 */
0x40
/* "out.yul":3849:3881 */
dup8
add
/* "out.yul":5676:5714 */
mstore
/* "out.yul":5742:5774 */
0x60
dup7
add
/* "out.yul":5981:5992 */
swap3
/* "out.yul":202:205 */
0x00
/* "out.yul":5979:5994 */
swap2
/* "out.yul":5995:6008 */
tag_20:
dup7
dup4
lt
tag_21
jumpi
/* "out.yul":6566:6624 */
dup10
dup10
/* "out.yul":6626:6692 */
0x440e3ef808cab35cf3ac3f28adaf173b52d585f1f2d9e6fb1b705b96b3542b71
/* "out.yul":3416:3469 */
0x05
/* "out.yul":5958:5972 */
dup11
swap1
shl
/* "out.yul":5929:5973 */
dup12
add
/* "out.yul":6566:6624 */
dup12
sub
not(0x5f)
add
dup12
/* "out.yul":6531:6739 */
log3
/* "out.yul":1206:1218 */
stop
/* "out.yul":6030:6362 */
tag_21:
/* "out.yul":6049:6069 */
dup1
mload
/* "out.yul":202:205 */
0x00
/* "out.yul":6041:6070 */
byte
/* "out.yul":6078:6080 */
0x43
/* "out.yul":6073:6083 */
eq
tag_23
jumpi
/* "out.yul":202:205 */
0x00
/* "out.yul":6132:6144 */
dup1
revert
/* "out.yul":6081:6083 */
tag_23:
dup4
dup3
dup8
swap3
/* "out.yul":6167:6188 */
dup4
dup2
add
/* "out.yul":6231:6251 */
mload
/* "out.yul":6189:6253 */
dup9
mstore
/* "out.yul":6271:6293 */
add
/* "out.yul":6324:6359 */
swap6
add
/* "out.yul":6030:6362 */
swap3
/* "out.yul":6017:6027 */
add
/* "out.yul":6009:6029 */
swap2
swap4
jump(tag_20)
/* "out.yul":3085:3476 */
tag_14:
/* "out.yul":3108:3133 */
dup1
swap9
swap2
swap3
swap4
swap9
mload
/* "out.yul":202:205 */
0x00
/* "out.yul":3100:3134 */
byte
/* "out.yul":3144:3146 */
0x43
/* "out.yul":3139:3149 */
eq
tag_25
jumpi
/* "out.yul":202:205 */
0x00
/* "out.yul":3163:3175 */
dup1
revert
/* "out.yul":3147:3149 */
tag_25:
/* "out.yul":3202:3228 */
dup1
dup8
add
/* "out.yul":3231:3274 */
dup3
mstore
/* "out.yul":3424:3460 */
swap1
dup5
swap1
sub
not(0x85)
/* "out.yul":3420:3464 */
add
/* "out.yul":3416:3469 */
0x05
swap1
dup2
shr
/* "out.yul":3409:3470 */
dup8
add
/* "out.yul":3401:3471 */
swap1
shl
/* "out.yul":3373:3472 */
dup5
add
dup3
add
swap8
/* "out.yul":3048:3078 */
dup7
add
swap3
/* "out.yul":3016:3082 */
swap2
/* "out.yul":3147:3149 */
swap1
/* "out.yul":3329:3356 */
dup11
add
/* "out.yul":3016:3082 */
jump(tag_13)
/* "out.yul":241:1054 */
tag_2:
/* "out.yul":1495:1502 */
msize
/* "out.yul":1558:1560 */
0x44
/* "out.yul":1541:1561 */
dup2
mstore8
0x00
dup1
mload
0x20
data_8811aabf7829558eff4f8a1f53650e8f23cad0b42f3fd2fd4db4fe83fc8c63a9
dup4
codecopy
dup2
mload
swap2
mstore
/* "out.yul":1586:1659 */
sload
/* "out.yul":1569:1584 */
dup2
/* "out.yul":1573:1574 */
0x01
/* "out.yul":1569:1584 */
add
/* "out.yul":1562:1660 */
mstore
/* "out.yul":411:418 */
msize
/* "out.yul":600:620 */
dup2
mload
/* "out.yul":202:205 */
0x00
/* "out.yul":592:621 */
byte
/* "out.yul":629:631 */
0x44
/* "out.yul":624:634 */
eq
tag_27
jumpi
/* "out.yul":202:205 */
0x00
/* "out.yul":683:695 */
dup1
revert
/* "out.yul":632:634 */
tag_27:
/* "out.yul":1573:1574 */
0x01
/* "out.yul":890:892 */
0x20
/* "out.yul":632:634 */
swap3
/* "out.yul":718:739 */
add
/* "out.yul":777:797 */
mload
/* "out.yul":773:775 */
0x60
/* "out.yul":769:798 */
shr
/* "out.yul":740:799 */
dup2
mstore
/* "out.yul":955:1051 */
return
/* "out.yul":6743:7074 */
tag_1:
/* "out.yul":6898:6899 */
0x01
/* "out.yul":6813:6820 */
msize
/* "out.yul":6870:6872 */
0x44
/* "out.yul":6853:6873 */
dup2
mstore8
/* "out.yul":6885:6900 */
add
/* "out.yul":6925:6933 */
origin
/* "out.yul":6921:6923 */
0x60
/* "out.yul":6917:6934 */
shl
/* "out.yul":6901:6935 */
dup2
mstore
/* "out.yul":7045:7071 */
mload
0x00
dup1
mload
0x20
data_8811aabf7829558eff4f8a1f53650e8f23cad0b42f3fd2fd4db4fe83fc8c63a9
dup4
codecopy
dup2
mload
swap2
mstore
/* "out.yul":6970:7072 */
sstore
/* "out.yul":6743:7074 */
jump // out
stop
data_8811aabf7829558eff4f8a1f53650e8f23cad0b42f3fd2fd4db4fe83fc8c63a9 f2ee15ea639b73fa3db9b34a245bdfa015c260c598b211bf05a1ecc4b3e3b4f2
}