-
Notifications
You must be signed in to change notification settings - Fork 0
/
asm_class.txt
9200 lines (8745 loc) · 530 KB
/
asm_class.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
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Dump of assembler code for function ->:
/home/lune/git/kagi/dispatch/lib/crinja/src/lib/filter/collections.cr:
190 Crinja.filter(:selectattr) do
0x00000000001c8930 <+0>: push r15
0x00000000001c8932 <+2>: push r14
0x00000000001c8934 <+4>: push rbx
0x00000000001c8935 <+5>: sub rsp,0x4aa0
0x00000000001c893c <+12>: mov rax,rdi
0x00000000001c893f <+15>: mov QWORD PTR [rsp+0x580],rax
0x00000000001c8947 <+23>: mov rax,QWORD PTR [rsp+0x4ad8]
0x00000000001c894f <+31>: mov QWORD PTR [rsp+0x588],rax
0x00000000001c8957 <+39>: mov rax,QWORD PTR [rsp+0x4ad0]
0x00000000001c895f <+47>: mov QWORD PTR [rsp+0x590],rax
0x00000000001c8967 <+55>: mov rax,QWORD PTR [rsp+0x4ac8]
0x00000000001c896f <+63>: mov QWORD PTR [rsp+0x598],rax
0x00000000001c8977 <+71>: mov rax,QWORD PTR [rsp+0x4ac0]
0x00000000001c897f <+79>: mov QWORD PTR [rsp+0x5a0],rax
0x00000000001c8987 <+87>: mov QWORD PTR [rsp+0x5a8],r9
0x00000000001c898f <+95>: mov QWORD PTR [rsp+0x5b0],r8
0x00000000001c8997 <+103>: mov QWORD PTR [rsp+0x5b8],rcx
0x00000000001c899f <+111>: mov DWORD PTR [rsp+0x5c4],edx
0x00000000001c89a6 <+118>: mov QWORD PTR [rsp+0x5c8],rsi
0x00000000001c89ae <+126>: mov QWORD PTR [rsp+0x5d0],rdi
0x00000000001c89b6 <+134>: mov rax,QWORD PTR [rsp+0x588]
0x00000000001c89be <+142>: mov rcx,QWORD PTR [rsp+0x590]
0x00000000001c89c6 <+150>: mov rdx,QWORD PTR [rsp+0x598]
0x00000000001c89ce <+158>: mov rsi,QWORD PTR [rsp+0x5a0]
0x00000000001c89d6 <+166>: mov rdi,QWORD PTR [rsp+0x5a8]
0x00000000001c89de <+174>: mov r8,QWORD PTR [rsp+0x5b0]
0x00000000001c89e6 <+182>: mov r9,QWORD PTR [rsp+0x5b8]
0x00000000001c89ee <+190>: mov r10d,DWORD PTR [rsp+0x5c4]
0x00000000001c89f6 <+198>: mov r11,QWORD PTR [rsp+0x5c8]
0x00000000001c89fe <+206>: mov QWORD PTR [rsp+0x4a00],r11
0x00000000001c8a06 <+214>: mov DWORD PTR [rsp+0x4a08],r10d
0x00000000001c8a0e <+222>: mov QWORD PTR [rsp+0x4a10],r9
0x00000000001c8a16 <+230>: mov QWORD PTR [rsp+0x4a18],r8
0x00000000001c8a1e <+238>: mov QWORD PTR [rsp+0x4a20],rdi
0x00000000001c8a26 <+246>: mov QWORD PTR [rsp+0x4a28],rsi
0x00000000001c8a2e <+254>: mov QWORD PTR [rsp+0x4a30],rdx
0x00000000001c8a36 <+262>: mov QWORD PTR [rsp+0x4a38],rcx
0x00000000001c8a3e <+270>: mov QWORD PTR [rsp+0x4a40],rax
0x00000000001c8a46 <+278>: mov rax,QWORD PTR [rsp+0x4a40]
0x00000000001c8a4e <+286>: mov QWORD PTR [rsp+0x4a98],rax
0x00000000001c8a56 <+294>: lea rdi,[rsp+0x2148]
0x00000000001c8a5e <+302>: lea rsi,[rsp+0x4a00]
0x00000000001c8a66 <+310>: call 0x4bd150 <target!>
0x00000000001c8a6b <+315>: mov eax,DWORD PTR [rsp+0x2148]
0x00000000001c8a72 <+322>: mov rcx,QWORD PTR [rsp+0x2150]
0x00000000001c8a7a <+330>: mov rdx,QWORD PTR [rsp+0x2158]
0x00000000001c8a82 <+338>: mov rsi,QWORD PTR [rsp+0x2160]
0x00000000001c8a8a <+346>: mov QWORD PTR [rsp+0x49f8],rsi
0x00000000001c8a92 <+354>: mov QWORD PTR [rsp+0x49f0],rdx
0x00000000001c8a9a <+362>: mov QWORD PTR [rsp+0x49e8],rcx
0x00000000001c8aa2 <+370>: mov DWORD PTR [rsp+0x49e0],eax
0x00000000001c8aa9 <+377>: mov eax,DWORD PTR [rsp+0x49e0]
0x00000000001c8ab0 <+384>: mov rcx,QWORD PTR [rsp+0x49e8]
0x00000000001c8ab8 <+392>: mov rdx,QWORD PTR [rsp+0x49f0]
0x00000000001c8ac0 <+400>: mov rsi,QWORD PTR [rsp+0x49f8]
0x00000000001c8ac8 <+408>: mov QWORD PTR [rsp+0x4a90],rsi
0x00000000001c8ad0 <+416>: mov QWORD PTR [rsp+0x4a88],rdx
0x00000000001c8ad8 <+424>: mov QWORD PTR [rsp+0x4a80],rcx
0x00000000001c8ae0 <+432>: mov DWORD PTR [rsp+0x4a78],eax
0x00000000001c8ae7 <+439>: mov rax,QWORD PTR [rsp+0x4a00]
10 when .responds_to?(:to_a)
0x00000000001c8aef <+447>: mov QWORD PTR [rsp+0x4a70],rax
0x00000000001c8af7 <+455>: mov rsi,QWORD PTR [rsp+0x4a70]
0x00000000001c8aff <+463>: lea rdi,[rsp+0x2128]
0x00000000001c8b07 <+471>: call 0x3269a0 <shift>
0x00000000001c8b0c <+476>: mov eax,DWORD PTR [rsp+0x2128]
0x00000000001c8b13 <+483>: mov rcx,QWORD PTR [rsp+0x2130]
0x00000000001c8b1b <+491>: mov rdx,QWORD PTR [rsp+0x2138]
0x00000000001c8b23 <+499>: mov rsi,QWORD PTR [rsp+0x2140]
0x00000000001c8b2b <+507>: mov QWORD PTR [rsp+0x49d8],rsi
0x00000000001c8b33 <+515>: mov QWORD PTR [rsp+0x49d0],rdx
0x00000000001c8b3b <+523>: mov QWORD PTR [rsp+0x49c8],rcx
0x00000000001c8b43 <+531>: mov DWORD PTR [rsp+0x49c0],eax
0x00000000001c8b4a <+538>: mov eax,DWORD PTR [rsp+0x49c0]
0x00000000001c8b51 <+545>: mov rcx,QWORD PTR [rsp+0x49c8]
0x00000000001c8b59 <+553>: mov rdx,QWORD PTR [rsp+0x49d0]
0x00000000001c8b61 <+561>: mov rsi,QWORD PTR [rsp+0x49d8]
0x00000000001c8b69 <+569>: mov QWORD PTR [rsp+0x4a68],rsi
0x00000000001c8b71 <+577>: mov QWORD PTR [rsp+0x4a60],rdx
0x00000000001c8b79 <+585>: mov QWORD PTR [rsp+0x4a58],rcx
0x00000000001c8b81 <+593>: mov DWORD PTR [rsp+0x4a50],eax
0x00000000001c8b88 <+600>: mov rax,QWORD PTR [rsp+0x4a70]
0x00000000001c8b90 <+608>: cmp DWORD PTR [rax+0x4],0x0
0x00000000001c8b94 <+612>: jne 0x1c8bfd <->+717>
0x00000000001c8b96 <+614>: mov edi,0x565
/usr/lib/crystal/enumerable.cr:
1620 ary = [] of T
0x00000000001c8b9b <+619>: call 0x325ff0 <new>
0x00000000001c8ba0 <+624>: mov QWORD PTR [rsp+0x4998],rax
/home/lune/git/kagi/dispatch/lib/crinja/src/runtime/value.cr:
240 case object = @raw
0x00000000001c8ba8 <+632>: mov eax,DWORD PTR [rsp+0x4a78]
0x00000000001c8baf <+639>: mov rcx,QWORD PTR [rsp+0x4a80]
0x00000000001c8bb7 <+647>: mov rdx,QWORD PTR [rsp+0x4a88]
0x00000000001c8bbf <+655>: mov rsi,QWORD PTR [rsp+0x4a90]
0x00000000001c8bc7 <+663>: mov QWORD PTR [rsp+0x4948],rsi
0x00000000001c8bcf <+671>: mov QWORD PTR [rsp+0x4940],rdx
0x00000000001c8bd7 <+679>: mov QWORD PTR [rsp+0x4938],rcx
0x00000000001c8bdf <+687>: mov DWORD PTR [rsp+0x4930],eax
241 when Hash
0x00000000001c8be6 <+694>: mov eax,0x47
0x00000000001c8beb <+699>: cmp eax,DWORD PTR [rsp+0x4930]
0x00000000001c8bf2 <+706>: je 0x1c8cf0 <->+960>
0x00000000001c8bf8 <+712>: jmp 0x1c8d08 <->+984>
252 else
253 raise TypeError.new(self, "#{object.class} is not iterable")
0x00000000001c8bfd <+717>: mov rax,QWORD PTR [rsp+0x4a98]
0x00000000001c8c05 <+725>: mov rax,QWORD PTR [rax+0x68]
0x00000000001c8c09 <+729>: mov QWORD PTR [rsp+0x578],rax
0x00000000001c8c11 <+737>: mov rsi,QWORD PTR [rsp+0x4a70]
0x00000000001c8c19 <+745>: lea rdi,[rsp+0x2108]
/home/lune/git/kagi/dispatch/lib/crinja/src/lib/filter/collections.cr:
10 when .responds_to?(:to_a)
0x00000000001c8c21 <+753>: call 0x3269a0 <shift>
0x00000000001c8c26 <+758>: mov eax,DWORD PTR [rsp+0x2108]
0x00000000001c8c2d <+765>: mov rcx,QWORD PTR [rsp+0x2110]
0x00000000001c8c35 <+773>: mov rdx,QWORD PTR [rsp+0x2118]
0x00000000001c8c3d <+781>: mov rsi,QWORD PTR [rsp+0x2120]
0x00000000001c8c45 <+789>: mov QWORD PTR [rsp+0x3910],rsi
0x00000000001c8c4d <+797>: mov QWORD PTR [rsp+0x3908],rdx
0x00000000001c8c55 <+805>: mov QWORD PTR [rsp+0x3900],rcx
0x00000000001c8c5d <+813>: mov DWORD PTR [rsp+0x38f8],eax
0x00000000001c8c64 <+820>: lea rdi,[rsp+0x38f8]
0x00000000001c8c6c <+828>: call 0x34b290 <as_s>
0x00000000001c8c71 <+833>: mov rdi,QWORD PTR [rsp+0x578]
0x00000000001c8c79 <+841>: mov rsi,rax
0x00000000001c8c7c <+844>: call 0x509080 <[]>
0x00000000001c8c81 <+849>: mov QWORD PTR [rsp+0x4a48],rax
0x00000000001c8c89 <+857>: mov edi,0x565
/usr/lib/crystal/enumerable.cr:
1620 ary = [] of T
0x00000000001c8c8e <+862>: call 0x325ff0 <new>
0x00000000001c8c93 <+867>: mov QWORD PTR [rsp+0x3888],rax
/home/lune/git/kagi/dispatch/lib/crinja/src/runtime/value.cr:
240 case object = @raw
0x00000000001c8c9b <+875>: mov eax,DWORD PTR [rsp+0x4a78]
0x00000000001c8ca2 <+882>: mov rcx,QWORD PTR [rsp+0x4a80]
0x00000000001c8caa <+890>: mov rdx,QWORD PTR [rsp+0x4a88]
0x00000000001c8cb2 <+898>: mov rsi,QWORD PTR [rsp+0x4a90]
0x00000000001c8cba <+906>: mov QWORD PTR [rsp+0x3838],rsi
0x00000000001c8cc2 <+914>: mov QWORD PTR [rsp+0x3830],rdx
0x00000000001c8cca <+922>: mov QWORD PTR [rsp+0x3828],rcx
0x00000000001c8cd2 <+930>: mov DWORD PTR [rsp+0x3820],eax
241 when Hash
0x00000000001c8cd9 <+937>: mov eax,0x47
0x00000000001c8cde <+942>: cmp eax,DWORD PTR [rsp+0x3820]
0x00000000001c8ce5 <+949>: je 0x1cdf25 <->+22005>
0x00000000001c8ceb <+955>: jmp 0x1cdf3d <->+22029>
0x00000000001c8cf0 <+960>: mov rax,QWORD PTR [rsp+0x4938]
0x00000000001c8cf8 <+968>: mov QWORD PTR [rsp+0x570],rax
/usr/lib/crystal/hash.cr:
916 return if @size == 0
0x00000000001c8d00 <+976>: cmp DWORD PTR [rax+0x18],0x0
0x00000000001c8d04 <+980>: je 0x1c8d21 <->+1009>
0x00000000001c8d06 <+982>: jmp 0x1c8d23 <->+1011>
/home/lune/git/kagi/dispatch/lib/crinja/src/runtime/value.cr:
243 when Iterable(Value), ::Iterator(Value)
0x00000000001c8d08 <+984>: mov edi,DWORD PTR [rsp+0x4930]
0x00000000001c8d0f <+991>: call 0x182a10 <~match<(Array(Crinja::Value) | Crinja::Tuple)>>
0x00000000001c8d14 <+996>: test al,0x1
0x00000000001c8d16 <+998>: jne 0x1c9532 <->+3074>
0x00000000001c8d1c <+1004>: jmp 0x1c953d <->+3085>
/usr/lib/crystal/hash.cr:
916 return if @size == 0
0x00000000001c8d21 <+1009>: jmp 0x1c8d4c <->+1052>
0x00000000001c8d23 <+1011>: mov rdi,QWORD PTR [rsp+0x570]
0x00000000001c8d2b <+1019>: mov eax,DWORD PTR [rdi+0x4]
0x00000000001c8d2e <+1022>: mov DWORD PTR [rsp+0x568],eax
917
918 @first.upto(entries_size - 1) do |i|
0x00000000001c8d35 <+1029>: call 0x327930 <entries_size>
0x00000000001c8d3a <+1034>: dec eax
0x00000000001c8d3c <+1036>: mov DWORD PTR [rsp+0x56c],eax
0x00000000001c8d43 <+1043>: seto al
0x00000000001c8d46 <+1046>: test al,0x1
0x00000000001c8d48 <+1048>: jne 0x1c8d51 <->+1057>
0x00000000001c8d4a <+1050>: jmp 0x1c8d56 <->+1062>
/usr/lib/crystal/int.cr:
582 x += 1
0x00000000001c8d4c <+1052>: jmp 0x1c94ed <->+3005>
/usr/lib/crystal/hash.cr:
918 @first.upto(entries_size - 1) do |i|
0x00000000001c8d51 <+1057>: call 0x103f60 <__crystal_raise_overflow>
0x00000000001c8d56 <+1062>: mov eax,DWORD PTR [rsp+0x568]
0x00000000001c8d5d <+1069>: mov ecx,DWORD PTR [rsp+0x56c]
0x00000000001c8d64 <+1076>: mov DWORD PTR [rsp+0x4854],ecx
/usr/lib/crystal/int.cr:
577 return unless self <= to
0x00000000001c8d6b <+1083>: cmp eax,DWORD PTR [rsp+0x4854]
0x00000000001c8d72 <+1090>: jg 0x1c8d76 <->+1094>
0x00000000001c8d74 <+1092>: jmp 0x1c8d78 <->+1096>
0x00000000001c8d76 <+1094>: jmp 0x1c8d88 <->+1112>
0x00000000001c8d78 <+1096>: mov eax,DWORD PTR [rsp+0x568]
578 x = self
0x00000000001c8d7f <+1103>: mov DWORD PTR [rsp+0x4850],eax
0x00000000001c8d86 <+1110>: jmp 0x1c8d8a <->+1114>
582 x += 1
0x00000000001c8d88 <+1112>: jmp 0x1c8d4c <->+1052>
0x00000000001c8d8a <+1114>: mov rsi,QWORD PTR [rsp+0x570]
578 x = self
0x00000000001c8d92 <+1122>: mov eax,DWORD PTR [rsp+0x4850]
0x00000000001c8d99 <+1129>: mov DWORD PTR [rsp+0x48a0],eax
0x00000000001c8da0 <+1136>: mov edx,DWORD PTR [rsp+0x48a0]
0x00000000001c8da7 <+1143>: lea rdi,[rsp+0x678]
/usr/lib/crystal/hash.cr:
919 entry = get_entry(i)
0x00000000001c8daf <+1151>: call 0x327950 <get_entry>
0x00000000001c8db4 <+1156>: mov eax,DWORD PTR [rsp+0x678]
0x00000000001c8dbb <+1163>: mov ecx,DWORD PTR [rsp+0x680]
0x00000000001c8dc2 <+1170>: mov rdx,QWORD PTR [rsp+0x688]
0x00000000001c8dca <+1178>: mov rsi,QWORD PTR [rsp+0x690]
0x00000000001c8dd2 <+1186>: mov rdi,QWORD PTR [rsp+0x698]
0x00000000001c8dda <+1194>: mov r8d,DWORD PTR [rsp+0x6a0]
0x00000000001c8de2 <+1202>: mov r9,QWORD PTR [rsp+0x6a8]
0x00000000001c8dea <+1210>: mov r10,QWORD PTR [rsp+0x6b0]
0x00000000001c8df2 <+1218>: mov r11,QWORD PTR [rsp+0x6b8]
0x00000000001c8dfa <+1226>: mov QWORD PTR [rsp+0x4848],r11
0x00000000001c8e02 <+1234>: mov QWORD PTR [rsp+0x4840],r10
0x00000000001c8e0a <+1242>: mov QWORD PTR [rsp+0x4838],r9
0x00000000001c8e12 <+1250>: mov DWORD PTR [rsp+0x4830],r8d
0x00000000001c8e1a <+1258>: mov QWORD PTR [rsp+0x4828],rdi
0x00000000001c8e22 <+1266>: mov QWORD PTR [rsp+0x4820],rsi
0x00000000001c8e2a <+1274>: mov QWORD PTR [rsp+0x4818],rdx
0x00000000001c8e32 <+1282>: mov DWORD PTR [rsp+0x4810],ecx
0x00000000001c8e39 <+1289>: mov DWORD PTR [rsp+0x4808],eax
0x00000000001c8e40 <+1296>: mov eax,DWORD PTR [rsp+0x4808]
0x00000000001c8e47 <+1303>: mov ecx,DWORD PTR [rsp+0x4810]
0x00000000001c8e4e <+1310>: mov rdx,QWORD PTR [rsp+0x4818]
0x00000000001c8e56 <+1318>: mov rsi,QWORD PTR [rsp+0x4820]
0x00000000001c8e5e <+1326>: mov rdi,QWORD PTR [rsp+0x4828]
0x00000000001c8e66 <+1334>: mov r8d,DWORD PTR [rsp+0x4830]
0x00000000001c8e6e <+1342>: mov r9,QWORD PTR [rsp+0x4838]
0x00000000001c8e76 <+1350>: mov r10,QWORD PTR [rsp+0x4840]
0x00000000001c8e7e <+1358>: mov r11,QWORD PTR [rsp+0x4848]
0x00000000001c8e86 <+1366>: mov QWORD PTR [rsp+0x4898],r11
0x00000000001c8e8e <+1374>: mov QWORD PTR [rsp+0x4890],r10
0x00000000001c8e96 <+1382>: mov QWORD PTR [rsp+0x4888],r9
0x00000000001c8e9e <+1390>: mov DWORD PTR [rsp+0x4880],r8d
0x00000000001c8ea6 <+1398>: mov QWORD PTR [rsp+0x4878],rdi
0x00000000001c8eae <+1406>: mov QWORD PTR [rsp+0x4870],rsi
0x00000000001c8eb6 <+1414>: mov QWORD PTR [rsp+0x4868],rdx
0x00000000001c8ebe <+1422>: mov DWORD PTR [rsp+0x4860],ecx
0x00000000001c8ec5 <+1429>: mov DWORD PTR [rsp+0x4858],eax
920 yield entry, i unless entry.deleted?
0x00000000001c8ecc <+1436>: lea rdi,[rsp+0x4858]
0x00000000001c8ed4 <+1444>: call 0x333c70 <deleted?>
0x00000000001c8ed9 <+1449>: test al,0x1
0x00000000001c8edb <+1451>: jne 0x1c8edf <->+1455>
0x00000000001c8edd <+1453>: jmp 0x1c8ee4 <->+1460>
0x00000000001c8edf <+1455>: jmp 0x1c9176 <->+2118>
0x00000000001c8ee4 <+1460>: mov eax,DWORD PTR [rsp+0x48a0]
0x00000000001c8eeb <+1467>: mov ecx,DWORD PTR [rsp+0x4858]
0x00000000001c8ef2 <+1474>: mov edx,DWORD PTR [rsp+0x4860]
0x00000000001c8ef9 <+1481>: mov rsi,QWORD PTR [rsp+0x4868]
0x00000000001c8f01 <+1489>: mov rdi,QWORD PTR [rsp+0x4870]
0x00000000001c8f09 <+1497>: mov r8,QWORD PTR [rsp+0x4878]
0x00000000001c8f11 <+1505>: mov r9d,DWORD PTR [rsp+0x4880]
0x00000000001c8f19 <+1513>: mov r10,QWORD PTR [rsp+0x4888]
0x00000000001c8f21 <+1521>: mov r11,QWORD PTR [rsp+0x4890]
0x00000000001c8f29 <+1529>: mov rbx,QWORD PTR [rsp+0x4898]
0x00000000001c8f31 <+1537>: mov QWORD PTR [rsp+0x48e8],rbx
0x00000000001c8f39 <+1545>: mov QWORD PTR [rsp+0x48e0],r11
0x00000000001c8f41 <+1553>: mov QWORD PTR [rsp+0x48d8],r10
0x00000000001c8f49 <+1561>: mov DWORD PTR [rsp+0x48d0],r9d
0x00000000001c8f51 <+1569>: mov QWORD PTR [rsp+0x48c8],r8
0x00000000001c8f59 <+1577>: mov QWORD PTR [rsp+0x48c0],rdi
0x00000000001c8f61 <+1585>: mov QWORD PTR [rsp+0x48b8],rsi
0x00000000001c8f69 <+1593>: mov DWORD PTR [rsp+0x48b0],edx
0x00000000001c8f70 <+1600>: mov DWORD PTR [rsp+0x48a8],ecx
0x00000000001c8f77 <+1607>: mov DWORD PTR [rsp+0x48a4],eax
0x00000000001c8f7e <+1614>: mov eax,DWORD PTR [rsp+0x48b0]
0x00000000001c8f85 <+1621>: mov rcx,QWORD PTR [rsp+0x48b8]
0x00000000001c8f8d <+1629>: mov rdx,QWORD PTR [rsp+0x48c0]
0x00000000001c8f95 <+1637>: mov rsi,QWORD PTR [rsp+0x48c8]
0x00000000001c8f9d <+1645>: mov QWORD PTR [rsp+0x47e0],rsi
0x00000000001c8fa5 <+1653>: mov QWORD PTR [rsp+0x47d8],rdx
0x00000000001c8fad <+1661>: mov QWORD PTR [rsp+0x47d0],rcx
0x00000000001c8fb5 <+1669>: mov DWORD PTR [rsp+0x47c8],eax
0x00000000001c8fbc <+1676>: mov eax,DWORD PTR [rsp+0x48d0]
0x00000000001c8fc3 <+1683>: mov rcx,QWORD PTR [rsp+0x48d8]
0x00000000001c8fcb <+1691>: mov rdx,QWORD PTR [rsp+0x48e0]
0x00000000001c8fd3 <+1699>: mov rsi,QWORD PTR [rsp+0x48e8]
0x00000000001c8fdb <+1707>: mov QWORD PTR [rsp+0x4800],rsi
0x00000000001c8fe3 <+1715>: mov QWORD PTR [rsp+0x47f8],rdx
0x00000000001c8feb <+1723>: mov QWORD PTR [rsp+0x47f0],rcx
0x00000000001c8ff3 <+1731>: mov DWORD PTR [rsp+0x47e8],eax
0x00000000001c8ffa <+1738>: mov eax,DWORD PTR [rsp+0x47c8]
0x00000000001c9001 <+1745>: mov rcx,QWORD PTR [rsp+0x47d0]
0x00000000001c9009 <+1753>: mov rdx,QWORD PTR [rsp+0x47d8]
0x00000000001c9011 <+1761>: mov rsi,QWORD PTR [rsp+0x47e0]
0x00000000001c9019 <+1769>: mov QWORD PTR [rsp+0x4928],rsi
0x00000000001c9021 <+1777>: mov QWORD PTR [rsp+0x4920],rdx
0x00000000001c9029 <+1785>: mov QWORD PTR [rsp+0x4918],rcx
0x00000000001c9031 <+1793>: mov DWORD PTR [rsp+0x4910],eax
0x00000000001c9038 <+1800>: mov eax,DWORD PTR [rsp+0x47e8]
0x00000000001c903f <+1807>: mov rcx,QWORD PTR [rsp+0x47f0]
0x00000000001c9047 <+1815>: mov rdx,QWORD PTR [rsp+0x47f8]
0x00000000001c904f <+1823>: mov rsi,QWORD PTR [rsp+0x4800]
0x00000000001c9057 <+1831>: mov QWORD PTR [rsp+0x4908],rsi
0x00000000001c905f <+1839>: mov QWORD PTR [rsp+0x4900],rdx
0x00000000001c9067 <+1847>: mov QWORD PTR [rsp+0x48f8],rcx
0x00000000001c906f <+1855>: mov DWORD PTR [rsp+0x48f0],eax
0x00000000001c9076 <+1862>: mov eax,DWORD PTR [rsp+0x4910]
0x00000000001c907d <+1869>: mov rcx,QWORD PTR [rsp+0x4918]
0x00000000001c9085 <+1877>: mov rdx,QWORD PTR [rsp+0x4920]
0x00000000001c908d <+1885>: mov rsi,QWORD PTR [rsp+0x4928]
0x00000000001c9095 <+1893>: mov QWORD PTR [rsp+0x47a0],rsi
0x00000000001c909d <+1901>: mov QWORD PTR [rsp+0x4798],rdx
0x00000000001c90a5 <+1909>: mov QWORD PTR [rsp+0x4790],rcx
0x00000000001c90ad <+1917>: mov DWORD PTR [rsp+0x4788],eax
0x00000000001c90b4 <+1924>: mov eax,DWORD PTR [rsp+0x48f0]
0x00000000001c90bb <+1931>: mov rcx,QWORD PTR [rsp+0x48f8]
0x00000000001c90c3 <+1939>: mov rdx,QWORD PTR [rsp+0x4900]
0x00000000001c90cb <+1947>: mov rsi,QWORD PTR [rsp+0x4908]
0x00000000001c90d3 <+1955>: mov QWORD PTR [rsp+0x47c0],rsi
0x00000000001c90db <+1963>: mov QWORD PTR [rsp+0x47b8],rdx
0x00000000001c90e3 <+1971>: mov QWORD PTR [rsp+0x47b0],rcx
0x00000000001c90eb <+1979>: mov DWORD PTR [rsp+0x47a8],eax
0x00000000001c90f2 <+1986>: mov r10,QWORD PTR [rsp+0x47c0]
0x00000000001c90fa <+1994>: mov r11,QWORD PTR [rsp+0x47b8]
0x00000000001c9102 <+2002>: mov r9,QWORD PTR [rsp+0x47b0]
0x00000000001c910a <+2010>: mov r8d,DWORD PTR [rsp+0x47a8]
0x00000000001c9112 <+2018>: mov rcx,QWORD PTR [rsp+0x47a0]
0x00000000001c911a <+2026>: mov rdx,QWORD PTR [rsp+0x4798]
0x00000000001c9122 <+2034>: mov rsi,QWORD PTR [rsp+0x4790]
0x00000000001c912a <+2042>: mov edi,DWORD PTR [rsp+0x4788]
/home/lune/git/kagi/dispatch/lib/crinja/src/runtime/value.cr:
242 object.each { |key, value| yield Crinja::Tuple.from({key, value}) }
0x00000000001c9131 <+2049>: mov rax,rsp
0x00000000001c9134 <+2052>: mov QWORD PTR [rax],r11
0x00000000001c9137 <+2055>: mov QWORD PTR [rax+0x8],r10
0x00000000001c913b <+2059>: call 0x3348b0 <from>
0x00000000001c9140 <+2064>: mov DWORD PTR [rsp+0x4950],0x12a
0x00000000001c914b <+2075>: mov QWORD PTR [rsp+0x4958],rax
0x00000000001c9153 <+2083>: mov ecx,DWORD PTR [rsp+0x4950]
0x00000000001c915a <+2090>: mov DWORD PTR [rsp+0x564],ecx
0x00000000001c9161 <+2097>: mov eax,0x4ed
0x00000000001c9166 <+2102>: cmp eax,ecx
0x00000000001c9168 <+2104>: sete al
0x00000000001c916b <+2107>: and al,0x1
0x00000000001c916d <+2109>: test al,0x1
0x00000000001c916f <+2111>: jne 0x1c918f <->+2143>
0x00000000001c9171 <+2113>: jmp 0x1c920b <->+2267>
/usr/lib/crystal/int.cr:
581 return if x == to
0x00000000001c9176 <+2118>: mov eax,DWORD PTR [rsp+0x4850]
0x00000000001c917d <+2125>: cmp eax,DWORD PTR [rsp+0x4854]
0x00000000001c9184 <+2132>: je 0x1c94b7 <->+2951>
0x00000000001c918a <+2138>: jmp 0x1c94bc <->+2956>
/home/lune/git/kagi/dispatch/lib/crinja/src/runtime/value.cr:
242 object.each { |key, value| yield Crinja::Tuple.from({key, value}) }
0x00000000001c918f <+2143>: mov r8,QWORD PTR [rsp+0x4970]
0x00000000001c9197 <+2151>: mov rcx,QWORD PTR [rsp+0x4968]
0x00000000001c919f <+2159>: mov rdx,QWORD PTR [rsp+0x4960]
0x00000000001c91a7 <+2167>: mov esi,DWORD PTR [rsp+0x4958]
0x00000000001c91ae <+2174>: lea rdi,[rsp+0x618]
254 end
255 end
256
257 # Assumes the underlying value is an `Iterable` and yields each
258 # of the elements or key/values, always as `Value`.
259 def each
260 raw_each do |raw|
261 yield Value.new raw
0x00000000001c91b6 <+2182>: call 0x339d20 <new>
0x00000000001c91bb <+2187>: mov eax,DWORD PTR [rsp+0x618]
0x00000000001c91c2 <+2194>: mov rcx,QWORD PTR [rsp+0x620]
0x00000000001c91ca <+2202>: mov rdx,QWORD PTR [rsp+0x628]
0x00000000001c91d2 <+2210>: mov rsi,QWORD PTR [rsp+0x630]
0x00000000001c91da <+2218>: mov QWORD PTR [rsp+0x4780],rsi
0x00000000001c91e2 <+2226>: mov QWORD PTR [rsp+0x4778],rdx
0x00000000001c91ea <+2234>: mov QWORD PTR [rsp+0x4770],rcx
0x00000000001c91f2 <+2242>: mov DWORD PTR [rsp+0x4768],eax
0x00000000001c91f9 <+2249>: lea rax,[rsp+0x4768]
0x00000000001c9201 <+2257>: mov QWORD PTR [rsp+0x558],rax
0x00000000001c9209 <+2265>: jmp 0x1c9226 <->+2294>
0x00000000001c920b <+2267>: mov edi,DWORD PTR [rsp+0x564]
0x00000000001c9212 <+2274>: call 0x17e6b0 <~match<(Array(Crinja::Value) | Bool | Crinja::Callable | Crinja::Object | Crinja::SafeString | Crinja::Undefined | Float64 | Hash(Crinja::Value, Crinja::Value) | Int32 | Int64 | Iterator(Crinja::Value) | Proc(Crinja::Arguments, Crinja::Value) | String | Time | Nil)>>
0x00000000001c9217 <+2279>: and al,0x1
0x00000000001c9219 <+2281>: test al,0x1
0x00000000001c921b <+2283>: jne 0x1c934b <->+2587>
0x00000000001c9221 <+2289>: jmp 0x1c93ca <->+2714>
0x00000000001c9226 <+2294>: mov rsi,QWORD PTR [rsp+0x558]
0x00000000001c922e <+2302>: mov eax,DWORD PTR [rsi]
0x00000000001c9230 <+2304>: mov rcx,QWORD PTR [rsi+0x8]
0x00000000001c9234 <+2308>: mov rdx,QWORD PTR [rsi+0x10]
0x00000000001c9238 <+2312>: mov rsi,QWORD PTR [rsi+0x18]
0x00000000001c923c <+2316>: mov QWORD PTR [rsp+0x4990],rsi
0x00000000001c9244 <+2324>: mov QWORD PTR [rsp+0x4988],rdx
0x00000000001c924c <+2332>: mov QWORD PTR [rsp+0x4980],rcx
0x00000000001c9254 <+2340>: mov DWORD PTR [rsp+0x4978],eax
/usr/lib/crystal/enumerable.cr:
1621 each { |e| ary << e if yield e }
0x00000000001c925b <+2347>: mov eax,DWORD PTR [rsp+0x4978]
0x00000000001c9262 <+2354>: mov rcx,QWORD PTR [rsp+0x4980]
0x00000000001c926a <+2362>: mov rdx,QWORD PTR [rsp+0x4988]
0x00000000001c9272 <+2370>: mov rsi,QWORD PTR [rsp+0x4990]
0x00000000001c927a <+2378>: mov QWORD PTR [rsp+0x49b8],rsi
0x00000000001c9282 <+2386>: mov QWORD PTR [rsp+0x49b0],rdx
0x00000000001c928a <+2394>: mov QWORD PTR [rsp+0x49a8],rcx
0x00000000001c9292 <+2402>: mov DWORD PTR [rsp+0x49a0],eax
0x00000000001c9299 <+2409>: mov r8,QWORD PTR [rsp+0x4a68]
0x00000000001c92a1 <+2417>: mov rcx,QWORD PTR [rsp+0x4a60]
0x00000000001c92a9 <+2425>: mov rdx,QWORD PTR [rsp+0x4a58]
0x00000000001c92b1 <+2433>: mov esi,DWORD PTR [rsp+0x4a50]
0x00000000001c92b8 <+2440>: mov r9d,DWORD PTR [rsp+0x49a0]
0x00000000001c92c0 <+2448>: mov rdi,QWORD PTR [rsp+0x49a8]
0x00000000001c92c8 <+2456>: mov r10,QWORD PTR [rsp+0x49b0]
0x00000000001c92d0 <+2464>: mov r11,QWORD PTR [rsp+0x49b8]
/home/lune/git/kagi/dispatch/lib/crinja/src/lib/filter/collections.cr:
10 when .responds_to?(:to_a)
0x00000000001c92d8 <+2472>: mov rax,rsp
0x00000000001c92db <+2475>: mov QWORD PTR [rax+0x10],r11
0x00000000001c92df <+2479>: mov QWORD PTR [rax+0x8],r10
0x00000000001c92e3 <+2483>: mov QWORD PTR [rax],rdi
0x00000000001c92e6 <+2486>: lea rdi,[rsp+0x5f8]
0x00000000001c92ee <+2494>: call 0x511190 <resolve_getattr>
0x00000000001c92f3 <+2499>: mov eax,DWORD PTR [rsp+0x5f8]
0x00000000001c92fa <+2506>: mov rcx,QWORD PTR [rsp+0x600]
0x00000000001c9302 <+2514>: mov rdx,QWORD PTR [rsp+0x608]
0x00000000001c930a <+2522>: mov rsi,QWORD PTR [rsp+0x610]
0x00000000001c9312 <+2530>: mov QWORD PTR [rsp+0x4720],rsi
0x00000000001c931a <+2538>: mov QWORD PTR [rsp+0x4718],rdx
0x00000000001c9322 <+2546>: mov QWORD PTR [rsp+0x4710],rcx
0x00000000001c932a <+2554>: mov DWORD PTR [rsp+0x4708],eax
0x00000000001c9331 <+2561>: lea rdi,[rsp+0x4708]
0x00000000001c9339 <+2569>: call 0x343280 <truthy?>
0x00000000001c933e <+2574>: test al,0x1
0x00000000001c9340 <+2576>: jne 0x1c9468 <->+2872>
0x00000000001c9346 <+2582>: jmp 0x1c949e <->+2926>
/home/lune/git/kagi/dispatch/lib/crinja/src/runtime/value.cr:
261 yield Value.new raw
0x00000000001c934b <+2587>: mov r8,QWORD PTR [rsp+0x4968]
0x00000000001c9353 <+2595>: mov rcx,QWORD PTR [rsp+0x4960]
0x00000000001c935b <+2603>: mov rdx,QWORD PTR [rsp+0x4958]
0x00000000001c9363 <+2611>: mov esi,DWORD PTR [rsp+0x4950]
0x00000000001c936a <+2618>: lea rdi,[rsp+0x638]
0x00000000001c9372 <+2626>: call 0x340b10 <new>
0x00000000001c9377 <+2631>: mov eax,DWORD PTR [rsp+0x638]
0x00000000001c937e <+2638>: mov rcx,QWORD PTR [rsp+0x640]
0x00000000001c9386 <+2646>: mov rdx,QWORD PTR [rsp+0x648]
0x00000000001c938e <+2654>: mov rsi,QWORD PTR [rsp+0x650]
0x00000000001c9396 <+2662>: mov QWORD PTR [rsp+0x4760],rsi
0x00000000001c939e <+2670>: mov QWORD PTR [rsp+0x4758],rdx
0x00000000001c93a6 <+2678>: mov QWORD PTR [rsp+0x4750],rcx
0x00000000001c93ae <+2686>: mov DWORD PTR [rsp+0x4748],eax
0x00000000001c93b5 <+2693>: lea rax,[rsp+0x4748]
0x00000000001c93bd <+2701>: mov QWORD PTR [rsp+0x558],rax
0x00000000001c93c5 <+2709>: jmp 0x1c9226 <->+2294>
0x00000000001c93ca <+2714>: mov edi,DWORD PTR [rsp+0x564]
0x00000000001c93d1 <+2721>: call 0x1827e0 <~match<(Array(Crinja::Value) | Bool | Crinja::Callable | Crinja::Object | Crinja::SafeString | Crinja::Undefined | Crinja::Value | Float64 | Hash(Crinja::Value, Crinja::Value) | Int32 | Int64 | Iterator(Crinja::Value) | Proc(Crinja::Arguments, Crinja::Value) | String | Time | Nil)>>
0x00000000001c93d6 <+2726>: and al,0x1
0x00000000001c93d8 <+2728>: test al,0x1
0x00000000001c93da <+2730>: jne 0x1c93e1 <->+2737>
0x00000000001c93dc <+2732>: jmp 0x1c9468 <->+2872>
0x00000000001c93e1 <+2737>: mov r9,QWORD PTR [rsp+0x4970]
0x00000000001c93e9 <+2745>: mov r8,QWORD PTR [rsp+0x4968]
0x00000000001c93f1 <+2753>: mov rcx,QWORD PTR [rsp+0x4960]
0x00000000001c93f9 <+2761>: mov rdx,QWORD PTR [rsp+0x4958]
0x00000000001c9401 <+2769>: mov esi,DWORD PTR [rsp+0x4950]
0x00000000001c9408 <+2776>: lea rdi,[rsp+0x658]
0x00000000001c9410 <+2784>: call 0x340cb0 <new>
0x00000000001c9415 <+2789>: mov eax,DWORD PTR [rsp+0x658]
0x00000000001c941c <+2796>: mov rcx,QWORD PTR [rsp+0x660]
0x00000000001c9424 <+2804>: mov rdx,QWORD PTR [rsp+0x668]
0x00000000001c942c <+2812>: mov rsi,QWORD PTR [rsp+0x670]
0x00000000001c9434 <+2820>: mov QWORD PTR [rsp+0x4740],rsi
0x00000000001c943c <+2828>: mov QWORD PTR [rsp+0x4738],rdx
0x00000000001c9444 <+2836>: mov QWORD PTR [rsp+0x4730],rcx
0x00000000001c944c <+2844>: mov DWORD PTR [rsp+0x4728],eax
0x00000000001c9453 <+2851>: lea rax,[rsp+0x4728]
0x00000000001c945b <+2859>: mov QWORD PTR [rsp+0x558],rax
0x00000000001c9463 <+2867>: jmp 0x1c9226 <->+2294>
/home/lune/git/kagi/dispatch/lib/crinja/src/lib/filter/collections.cr:
10 when .responds_to?(:to_a)
0x00000000001c9468 <+2872>: mov rdi,QWORD PTR [rsp+0x4998]
0x00000000001c9470 <+2880>: mov r8,QWORD PTR [rsp+0x4990]
0x00000000001c9478 <+2888>: mov rcx,QWORD PTR [rsp+0x4988]
0x00000000001c9480 <+2896>: mov rdx,QWORD PTR [rsp+0x4980]
0x00000000001c9488 <+2904>: mov esi,DWORD PTR [rsp+0x4978]
/usr/lib/crystal/enumerable.cr:
1621 each { |e| ary << e if yield e }
0x00000000001c948f <+2911>: call 0x326080 <<<>
0x00000000001c9494 <+2916>: mov QWORD PTR [rsp+0x550],rax
0x00000000001c949c <+2924>: jmp 0x1c94aa <->+2938>
0x00000000001c949e <+2926>: xor eax,eax
0x00000000001c94a0 <+2928>: mov QWORD PTR [rsp+0x550],rax
0x00000000001c94a8 <+2936>: jmp 0x1c94aa <->+2938>
0x00000000001c94aa <+2938>: mov rax,QWORD PTR [rsp+0x550]
0x00000000001c94b2 <+2946>: jmp 0x1c9176 <->+2118>
/usr/lib/crystal/int.cr:
581 return if x == to
0x00000000001c94b7 <+2951>: jmp 0x1c8d88 <->+1112>
0x00000000001c94bc <+2956>: mov eax,DWORD PTR [rsp+0x4850]
0x00000000001c94c3 <+2963>: inc eax
0x00000000001c94c5 <+2965>: mov DWORD PTR [rsp+0x54c],eax
0x00000000001c94cc <+2972>: seto al
0x00000000001c94cf <+2975>: test al,0x1
0x00000000001c94d1 <+2977>: jne 0x1c94d5 <->+2981>
0x00000000001c94d3 <+2979>: jmp 0x1c94da <->+2986>
582 x += 1
0x00000000001c94d5 <+2981>: call 0x103f60 <__crystal_raise_overflow>
0x00000000001c94da <+2986>: mov eax,DWORD PTR [rsp+0x54c]
0x00000000001c94e1 <+2993>: mov DWORD PTR [rsp+0x4850],eax
0x00000000001c94e8 <+3000>: jmp 0x1c8d8a <->+1114>
/home/lune/git/kagi/dispatch/lib/crinja/src/runtime/value.cr:
253 raise TypeError.new(self, "#{object.class} is not iterable")
0x00000000001c94ed <+3005>: mov rax,QWORD PTR [rsp+0x4998]
0x00000000001c94f5 <+3013>: mov QWORD PTR [rsp+0x540],rax
0x00000000001c94fd <+3021>: jmp 0x1cde88 <->+21848>
243 when Iterable(Value), ::Iterator(Value)
0x00000000001c9502 <+3026>: mov ecx,DWORD PTR [rsp+0x4930]
0x00000000001c9509 <+3033>: mov DWORD PTR [rsp+0x53c],ecx
0x00000000001c9510 <+3040>: mov eax,0x3
0x00000000001c9515 <+3045>: cmp eax,ecx
0x00000000001c9517 <+3047>: je 0x1c955d <->+3117>
0x00000000001c9519 <+3049>: jmp 0x1c957a <->+3146>
245 when Iterable, ::Iterator
0x00000000001c951b <+3051>: mov eax,0x12a
0x00000000001c9520 <+3056>: cmp eax,DWORD PTR [rsp+0x4930]
0x00000000001c9527 <+3063>: je 0x1cc7f8 <->+16072>
0x00000000001c952d <+3069>: jmp 0x1cc803 <->+16083>
243 when Iterable(Value), ::Iterator(Value)
0x00000000001c9532 <+3074>: mov al,0x1
0x00000000001c9534 <+3076>: mov BYTE PTR [rsp+0x53b],al
0x00000000001c953b <+3083>: jmp 0x1c9550 <->+3104>
0x00000000001c953d <+3085>: mov edi,DWORD PTR [rsp+0x4930]
0x00000000001c9544 <+3092>: call 0x182990 <~match<(Crinja::Function::Cycler | Iterator(Crinja::Value))>>
0x00000000001c9549 <+3097>: mov BYTE PTR [rsp+0x53b],al
0x00000000001c9550 <+3104>: mov al,BYTE PTR [rsp+0x53b]
0x00000000001c9557 <+3111>: test al,0x1
0x00000000001c9559 <+3113>: jne 0x1c9502 <->+3026>
0x00000000001c955b <+3115>: jmp 0x1c951b <->+3051>
0x00000000001c955d <+3117>: mov rax,QWORD PTR [rsp+0x4938]
0x00000000001c9565 <+3125>: mov QWORD PTR [rsp+0x530],rax
/usr/lib/crystal/indexable.cr:
573 i = 0
0x00000000001c956d <+3133>: mov DWORD PTR [rsp+0x46e0],0x0
0x00000000001c9578 <+3144>: jmp 0x1c9593 <->+3171>
0x00000000001c957a <+3146>: mov ecx,DWORD PTR [rsp+0x53c]
575 yield i
576 i += 1
0x00000000001c9581 <+3153>: mov eax,0x193
0x00000000001c9586 <+3158>: cmp eax,ecx
0x00000000001c9588 <+3160>: je 0x1c99f6 <->+4294>
0x00000000001c958e <+3166>: jmp 0x1c9a08 <->+4312>
0x00000000001c9593 <+3171>: mov rcx,QWORD PTR [rsp+0x530]
574 while i < size
0x00000000001c959b <+3179>: mov eax,DWORD PTR [rsp+0x46e0]
0x00000000001c95a2 <+3186>: cmp eax,DWORD PTR [rcx+0x4]
0x00000000001c95a5 <+3189>: jge 0x1c96b2 <->+3458>
0x00000000001c95ab <+3195>: mov rsi,QWORD PTR [rsp+0x530]
0x00000000001c95b3 <+3203>: mov eax,DWORD PTR [rsp+0x46e0]
0x00000000001c95ba <+3210>: mov DWORD PTR [rsp+0x46e4],eax
0x00000000001c95c1 <+3217>: mov edx,DWORD PTR [rsp+0x46e4]
0x00000000001c95c8 <+3224>: lea rdi,[rsp+0x740]
495 yield unsafe_fetch(i)
0x00000000001c95d0 <+3232>: call 0x324f10 <unsafe_fetch>
0x00000000001c95d5 <+3237>: mov eax,DWORD PTR [rsp+0x740]
0x00000000001c95dc <+3244>: mov rcx,QWORD PTR [rsp+0x748]
0x00000000001c95e4 <+3252>: mov rdx,QWORD PTR [rsp+0x750]
0x00000000001c95ec <+3260>: mov rsi,QWORD PTR [rsp+0x758]
0x00000000001c95f4 <+3268>: mov QWORD PTR [rsp+0x46d8],rsi
0x00000000001c95fc <+3276>: mov QWORD PTR [rsp+0x46d0],rdx
0x00000000001c9604 <+3284>: mov QWORD PTR [rsp+0x46c8],rcx
0x00000000001c960c <+3292>: mov DWORD PTR [rsp+0x46c0],eax
0x00000000001c9613 <+3299>: mov eax,DWORD PTR [rsp+0x46c0]
0x00000000001c961a <+3306>: mov rcx,QWORD PTR [rsp+0x46c8]
0x00000000001c9622 <+3314>: mov rdx,QWORD PTR [rsp+0x46d0]
0x00000000001c962a <+3322>: mov rsi,QWORD PTR [rsp+0x46d8]
0x00000000001c9632 <+3330>: mov QWORD PTR [rsp+0x4700],rsi
0x00000000001c963a <+3338>: mov QWORD PTR [rsp+0x46f8],rdx
0x00000000001c9642 <+3346>: mov QWORD PTR [rsp+0x46f0],rcx
0x00000000001c964a <+3354>: mov DWORD PTR [rsp+0x46e8],eax
0x00000000001c9651 <+3361>: mov eax,DWORD PTR [rsp+0x46e8]
0x00000000001c9658 <+3368>: mov rcx,QWORD PTR [rsp+0x46f0]
0x00000000001c9660 <+3376>: mov rdx,QWORD PTR [rsp+0x46f8]
0x00000000001c9668 <+3384>: mov rsi,QWORD PTR [rsp+0x4700]
0x00000000001c9670 <+3392>: mov QWORD PTR [rsp+0x4968],rsi
0x00000000001c9678 <+3400>: mov QWORD PTR [rsp+0x4960],rdx
0x00000000001c9680 <+3408>: mov QWORD PTR [rsp+0x4958],rcx
0x00000000001c9688 <+3416>: mov DWORD PTR [rsp+0x4950],eax
0x00000000001c968f <+3423>: mov ecx,DWORD PTR [rsp+0x4950]
0x00000000001c9696 <+3430>: mov DWORD PTR [rsp+0x52c],ecx
0x00000000001c969d <+3437>: mov eax,0x4ed
0x00000000001c96a2 <+3442>: cmp eax,ecx
0x00000000001c96a4 <+3444>: sete al
0x00000000001c96a7 <+3447>: and al,0x1
0x00000000001c96a9 <+3449>: test al,0x1
0x00000000001c96ab <+3451>: jne 0x1c96b7 <->+3463>
0x00000000001c96ad <+3453>: jmp 0x1c9733 <->+3587>
575 yield i
576 i += 1
0x00000000001c96b2 <+3458>: jmp 0x1c99f1 <->+4289>
495 yield unsafe_fetch(i)
0x00000000001c96b7 <+3463>: mov r8,QWORD PTR [rsp+0x4970]
0x00000000001c96bf <+3471>: mov rcx,QWORD PTR [rsp+0x4968]
0x00000000001c96c7 <+3479>: mov rdx,QWORD PTR [rsp+0x4960]
0x00000000001c96cf <+3487>: mov esi,DWORD PTR [rsp+0x4958]
0x00000000001c96d6 <+3494>: lea rdi,[rsp+0x6e0]
/home/lune/git/kagi/dispatch/lib/crinja/src/runtime/value.cr:
261 yield Value.new raw
0x00000000001c96de <+3502>: call 0x339d20 <new>
0x00000000001c96e3 <+3507>: mov eax,DWORD PTR [rsp+0x6e0]
0x00000000001c96ea <+3514>: mov rcx,QWORD PTR [rsp+0x6e8]
0x00000000001c96f2 <+3522>: mov rdx,QWORD PTR [rsp+0x6f0]
0x00000000001c96fa <+3530>: mov rsi,QWORD PTR [rsp+0x6f8]
0x00000000001c9702 <+3538>: mov QWORD PTR [rsp+0x46b8],rsi
0x00000000001c970a <+3546>: mov QWORD PTR [rsp+0x46b0],rdx
0x00000000001c9712 <+3554>: mov QWORD PTR [rsp+0x46a8],rcx
0x00000000001c971a <+3562>: mov DWORD PTR [rsp+0x46a0],eax
0x00000000001c9721 <+3569>: lea rax,[rsp+0x46a0]
0x00000000001c9729 <+3577>: mov QWORD PTR [rsp+0x520],rax
0x00000000001c9731 <+3585>: jmp 0x1c974e <->+3614>
0x00000000001c9733 <+3587>: mov edi,DWORD PTR [rsp+0x52c]
0x00000000001c973a <+3594>: call 0x17e6b0 <~match<(Array(Crinja::Value) | Bool | Crinja::Callable | Crinja::Object | Crinja::SafeString | Crinja::Undefined | Float64 | Hash(Crinja::Value, Crinja::Value) | Int32 | Int64 | Iterator(Crinja::Value) | Proc(Crinja::Arguments, Crinja::Value) | String | Time | Nil)>>
0x00000000001c973f <+3599>: and al,0x1
0x00000000001c9741 <+3601>: test al,0x1
0x00000000001c9743 <+3603>: jne 0x1c9873 <->+3907>
0x00000000001c9749 <+3609>: jmp 0x1c98f2 <->+4034>
0x00000000001c974e <+3614>: mov rsi,QWORD PTR [rsp+0x520]
0x00000000001c9756 <+3622>: mov eax,DWORD PTR [rsi]
0x00000000001c9758 <+3624>: mov rcx,QWORD PTR [rsi+0x8]
0x00000000001c975c <+3628>: mov rdx,QWORD PTR [rsi+0x10]
0x00000000001c9760 <+3632>: mov rsi,QWORD PTR [rsi+0x18]
0x00000000001c9764 <+3636>: mov QWORD PTR [rsp+0x4990],rsi
0x00000000001c976c <+3644>: mov QWORD PTR [rsp+0x4988],rdx
0x00000000001c9774 <+3652>: mov QWORD PTR [rsp+0x4980],rcx
0x00000000001c977c <+3660>: mov DWORD PTR [rsp+0x4978],eax
/usr/lib/crystal/enumerable.cr:
1621 each { |e| ary << e if yield e }
0x00000000001c9783 <+3667>: mov eax,DWORD PTR [rsp+0x4978]
0x00000000001c978a <+3674>: mov rcx,QWORD PTR [rsp+0x4980]
0x00000000001c9792 <+3682>: mov rdx,QWORD PTR [rsp+0x4988]
0x00000000001c979a <+3690>: mov rsi,QWORD PTR [rsp+0x4990]
0x00000000001c97a2 <+3698>: mov QWORD PTR [rsp+0x49b8],rsi
0x00000000001c97aa <+3706>: mov QWORD PTR [rsp+0x49b0],rdx
0x00000000001c97b2 <+3714>: mov QWORD PTR [rsp+0x49a8],rcx
0x00000000001c97ba <+3722>: mov DWORD PTR [rsp+0x49a0],eax
0x00000000001c97c1 <+3729>: mov r8,QWORD PTR [rsp+0x4a68]
0x00000000001c97c9 <+3737>: mov rcx,QWORD PTR [rsp+0x4a60]
0x00000000001c97d1 <+3745>: mov rdx,QWORD PTR [rsp+0x4a58]
0x00000000001c97d9 <+3753>: mov esi,DWORD PTR [rsp+0x4a50]
0x00000000001c97e0 <+3760>: mov r9d,DWORD PTR [rsp+0x49a0]
0x00000000001c97e8 <+3768>: mov rdi,QWORD PTR [rsp+0x49a8]
0x00000000001c97f0 <+3776>: mov r10,QWORD PTR [rsp+0x49b0]
0x00000000001c97f8 <+3784>: mov r11,QWORD PTR [rsp+0x49b8]
/home/lune/git/kagi/dispatch/lib/crinja/src/lib/filter/collections.cr:
10 when .responds_to?(:to_a)
0x00000000001c9800 <+3792>: mov rax,rsp
0x00000000001c9803 <+3795>: mov QWORD PTR [rax+0x10],r11
0x00000000001c9807 <+3799>: mov QWORD PTR [rax+0x8],r10
0x00000000001c980b <+3803>: mov QWORD PTR [rax],rdi
0x00000000001c980e <+3806>: lea rdi,[rsp+0x6c0]
0x00000000001c9816 <+3814>: call 0x511190 <resolve_getattr>
0x00000000001c981b <+3819>: mov eax,DWORD PTR [rsp+0x6c0]
0x00000000001c9822 <+3826>: mov rcx,QWORD PTR [rsp+0x6c8]
0x00000000001c982a <+3834>: mov rdx,QWORD PTR [rsp+0x6d0]
0x00000000001c9832 <+3842>: mov rsi,QWORD PTR [rsp+0x6d8]
0x00000000001c983a <+3850>: mov QWORD PTR [rsp+0x4658],rsi
0x00000000001c9842 <+3858>: mov QWORD PTR [rsp+0x4650],rdx
0x00000000001c984a <+3866>: mov QWORD PTR [rsp+0x4648],rcx
0x00000000001c9852 <+3874>: mov DWORD PTR [rsp+0x4640],eax
0x00000000001c9859 <+3881>: lea rdi,[rsp+0x4640]
0x00000000001c9861 <+3889>: call 0x343280 <truthy?>
0x00000000001c9866 <+3894>: test al,0x1
0x00000000001c9868 <+3896>: jne 0x1c9990 <->+4192>
0x00000000001c986e <+3902>: jmp 0x1c99be <->+4238>
/home/lune/git/kagi/dispatch/lib/crinja/src/runtime/value.cr:
261 yield Value.new raw
0x00000000001c9873 <+3907>: mov r8,QWORD PTR [rsp+0x4968]
0x00000000001c987b <+3915>: mov rcx,QWORD PTR [rsp+0x4960]
0x00000000001c9883 <+3923>: mov rdx,QWORD PTR [rsp+0x4958]
0x00000000001c988b <+3931>: mov esi,DWORD PTR [rsp+0x4950]
0x00000000001c9892 <+3938>: lea rdi,[rsp+0x700]
0x00000000001c989a <+3946>: call 0x340b10 <new>
0x00000000001c989f <+3951>: mov eax,DWORD PTR [rsp+0x700]
0x00000000001c98a6 <+3958>: mov rcx,QWORD PTR [rsp+0x708]
0x00000000001c98ae <+3966>: mov rdx,QWORD PTR [rsp+0x710]
0x00000000001c98b6 <+3974>: mov rsi,QWORD PTR [rsp+0x718]
0x00000000001c98be <+3982>: mov QWORD PTR [rsp+0x4698],rsi
0x00000000001c98c6 <+3990>: mov QWORD PTR [rsp+0x4690],rdx
0x00000000001c98ce <+3998>: mov QWORD PTR [rsp+0x4688],rcx
0x00000000001c98d6 <+4006>: mov DWORD PTR [rsp+0x4680],eax
0x00000000001c98dd <+4013>: lea rax,[rsp+0x4680]
0x00000000001c98e5 <+4021>: mov QWORD PTR [rsp+0x520],rax
0x00000000001c98ed <+4029>: jmp 0x1c974e <->+3614>
0x00000000001c98f2 <+4034>: mov edi,DWORD PTR [rsp+0x52c]
0x00000000001c98f9 <+4041>: call 0x1827e0 <~match<(Array(Crinja::Value) | Bool | Crinja::Callable | Crinja::Object | Crinja::SafeString | Crinja::Undefined | Crinja::Value | Float64 | Hash(Crinja::Value, Crinja::Value) | Int32 | Int64 | Iterator(Crinja::Value) | Proc(Crinja::Arguments, Crinja::Value) | String | Time | Nil)>>
0x00000000001c98fe <+4046>: and al,0x1
0x00000000001c9900 <+4048>: test al,0x1
0x00000000001c9902 <+4050>: jne 0x1c9909 <->+4057>
0x00000000001c9904 <+4052>: jmp 0x1c9990 <->+4192>
0x00000000001c9909 <+4057>: mov r9,QWORD PTR [rsp+0x4970]
0x00000000001c9911 <+4065>: mov r8,QWORD PTR [rsp+0x4968]
0x00000000001c9919 <+4073>: mov rcx,QWORD PTR [rsp+0x4960]
0x00000000001c9921 <+4081>: mov rdx,QWORD PTR [rsp+0x4958]
0x00000000001c9929 <+4089>: mov esi,DWORD PTR [rsp+0x4950]
0x00000000001c9930 <+4096>: lea rdi,[rsp+0x720]
0x00000000001c9938 <+4104>: call 0x340cb0 <new>
0x00000000001c993d <+4109>: mov eax,DWORD PTR [rsp+0x720]
0x00000000001c9944 <+4116>: mov rcx,QWORD PTR [rsp+0x728]
0x00000000001c994c <+4124>: mov rdx,QWORD PTR [rsp+0x730]
0x00000000001c9954 <+4132>: mov rsi,QWORD PTR [rsp+0x738]
0x00000000001c995c <+4140>: mov QWORD PTR [rsp+0x4678],rsi
0x00000000001c9964 <+4148>: mov QWORD PTR [rsp+0x4670],rdx
0x00000000001c996c <+4156>: mov QWORD PTR [rsp+0x4668],rcx
0x00000000001c9974 <+4164>: mov DWORD PTR [rsp+0x4660],eax
0x00000000001c997b <+4171>: lea rax,[rsp+0x4660]
0x00000000001c9983 <+4179>: mov QWORD PTR [rsp+0x520],rax
0x00000000001c998b <+4187>: jmp 0x1c974e <->+3614>
/home/lune/git/kagi/dispatch/lib/crinja/src/lib/filter/collections.cr:
10 when .responds_to?(:to_a)
0x00000000001c9990 <+4192>: mov rdi,QWORD PTR [rsp+0x4998]
0x00000000001c9998 <+4200>: mov r8,QWORD PTR [rsp+0x4990]
0x00000000001c99a0 <+4208>: mov rcx,QWORD PTR [rsp+0x4988]
0x00000000001c99a8 <+4216>: mov rdx,QWORD PTR [rsp+0x4980]
0x00000000001c99b0 <+4224>: mov esi,DWORD PTR [rsp+0x4978]
/usr/lib/crystal/enumerable.cr:
1621 each { |e| ary << e if yield e }
0x00000000001c99b7 <+4231>: call 0x326080 <<<>
0x00000000001c99bc <+4236>: jmp 0x1c99c0 <->+4240>
0x00000000001c99be <+4238>: jmp 0x1c99c0 <->+4240>
0x00000000001c99c0 <+4240>: mov eax,DWORD PTR [rsp+0x46e0]
0x00000000001c99c7 <+4247>: inc eax
0x00000000001c99c9 <+4249>: mov DWORD PTR [rsp+0x51c],eax
0x00000000001c99d0 <+4256>: seto al
0x00000000001c99d3 <+4259>: test al,0x1
0x00000000001c99d5 <+4261>: jne 0x1c99d9 <->+4265>
0x00000000001c99d7 <+4263>: jmp 0x1c99de <->+4270>
/usr/lib/crystal/indexable.cr:
576 i += 1
0x00000000001c99d9 <+4265>: call 0x103f60 <__crystal_raise_overflow>
0x00000000001c99de <+4270>: mov eax,DWORD PTR [rsp+0x51c]
0x00000000001c99e5 <+4277>: mov DWORD PTR [rsp+0x46e0],eax
0x00000000001c99ec <+4284>: jmp 0x1c9593 <->+3171>
/usr/lib/crystal/enumerable.cr:
1621 each { |e| ary << e if yield e }
0x00000000001c99f1 <+4289>: jmp 0x1cc7b8 <->+16008>
/usr/lib/crystal/indexable.cr:
576 i += 1
0x00000000001c99f6 <+4294>: mov rax,QWORD PTR [rsp+0x4938]
0x00000000001c99fe <+4302>: mov QWORD PTR [rsp+0x510],rax
/home/lune/git/kagi/dispatch/lib/crinja/src/runtime/value.cr:
244 object.each { |value| yield value.as(Value).raw }
0x00000000001c9a06 <+4310>: jmp 0x1c9a21 <->+4337>
0x00000000001c9a08 <+4312>: mov ecx,DWORD PTR [rsp+0x53c]
/usr/lib/crystal/enumerable.cr:
1621 each { |e| ary << e if yield e }
0x00000000001c9a0f <+4319>: mov eax,0x12a
0x00000000001c9a14 <+4324>: cmp eax,ecx
0x00000000001c9a16 <+4326>: je 0x1c9e5c <->+5420>
0x00000000001c9a1c <+4332>: jmp 0x1c9e79 <->+5449>
0x00000000001c9a21 <+4337>: mov rsi,QWORD PTR [rsp+0x510]
0x00000000001c9a29 <+4345>: lea rdi,[rsp+0x7e0]
/usr/lib/crystal/iterator.cr:
636 value = self.next
0x00000000001c9a31 <+4353>: call 0x356ed0 <next>
0x00000000001c9a36 <+4358>: mov eax,DWORD PTR [rsp+0x7e0]
0x00000000001c9a3d <+4365>: mov rcx,QWORD PTR [rsp+0x7e8]
0x00000000001c9a45 <+4373>: mov rdx,QWORD PTR [rsp+0x7f0]
0x00000000001c9a4d <+4381>: mov rsi,QWORD PTR [rsp+0x7f8]
0x00000000001c9a55 <+4389>: mov QWORD PTR [rsp+0x45f8],rsi
0x00000000001c9a5d <+4397>: mov QWORD PTR [rsp+0x45f0],rdx
0x00000000001c9a65 <+4405>: mov QWORD PTR [rsp+0x45e8],rcx
0x00000000001c9a6d <+4413>: mov DWORD PTR [rsp+0x45e0],eax
0x00000000001c9a74 <+4420>: mov eax,DWORD PTR [rsp+0x45e0]
0x00000000001c9a7b <+4427>: mov rcx,QWORD PTR [rsp+0x45e8]
0x00000000001c9a83 <+4435>: mov rdx,QWORD PTR [rsp+0x45f0]
0x00000000001c9a8b <+4443>: mov rsi,QWORD PTR [rsp+0x45f8]
0x00000000001c9a93 <+4451>: mov QWORD PTR [rsp+0x4618],rsi
0x00000000001c9a9b <+4459>: mov QWORD PTR [rsp+0x4610],rdx
0x00000000001c9aa3 <+4467>: mov QWORD PTR [rsp+0x4608],rcx
0x00000000001c9aab <+4475>: mov DWORD PTR [rsp+0x4600],eax
0x00000000001c9ab2 <+4482>: mov eax,DWORD PTR [rsp+0x4600]
0x00000000001c9ab9 <+4489>: mov rcx,QWORD PTR [rsp+0x4608]
0x00000000001c9ac1 <+4497>: mov rdx,QWORD PTR [rsp+0x4610]
0x00000000001c9ac9 <+4505>: mov rsi,QWORD PTR [rsp+0x4618]
0x00000000001c9ad1 <+4513>: mov QWORD PTR [rsp+0x4638],rsi
0x00000000001c9ad9 <+4521>: mov QWORD PTR [rsp+0x4630],rdx
0x00000000001c9ae1 <+4529>: mov QWORD PTR [rsp+0x4628],rcx
0x00000000001c9ae9 <+4537>: mov DWORD PTR [rsp+0x4620],eax
0x00000000001c9af0 <+4544>: mov eax,DWORD PTR [rsp+0x4620]
0x00000000001c9af7 <+4551>: mov rcx,QWORD PTR [rsp+0x4628]
0x00000000001c9aff <+4559>: mov rdx,QWORD PTR [rsp+0x4630]
0x00000000001c9b07 <+4567>: mov rsi,QWORD PTR [rsp+0x4638]
0x00000000001c9b0f <+4575>: mov QWORD PTR [rsp+0x4968],rsi
0x00000000001c9b17 <+4583>: mov QWORD PTR [rsp+0x4960],rdx
0x00000000001c9b1f <+4591>: mov QWORD PTR [rsp+0x4958],rcx
0x00000000001c9b27 <+4599>: mov DWORD PTR [rsp+0x4950],eax
0x00000000001c9b2e <+4606>: mov ecx,DWORD PTR [rsp+0x4950]
0x00000000001c9b35 <+4613>: mov DWORD PTR [rsp+0x50c],ecx
0x00000000001c9b3c <+4620>: mov eax,0x4ed
0x00000000001c9b41 <+4625>: cmp eax,ecx
0x00000000001c9b43 <+4627>: sete al
0x00000000001c9b46 <+4630>: and al,0x1
0x00000000001c9b48 <+4632>: test al,0x1
0x00000000001c9b4a <+4634>: jne 0x1c9b4e <->+4638>
0x00000000001c9b4c <+4636>: jmp 0x1c9bca <->+4762>
0x00000000001c9b4e <+4638>: mov r8,QWORD PTR [rsp+0x4970]
0x00000000001c9b56 <+4646>: mov rcx,QWORD PTR [rsp+0x4968]
0x00000000001c9b5e <+4654>: mov rdx,QWORD PTR [rsp+0x4960]
0x00000000001c9b66 <+4662>: mov esi,DWORD PTR [rsp+0x4958]
0x00000000001c9b6d <+4669>: lea rdi,[rsp+0x780]
/home/lune/git/kagi/dispatch/lib/crinja/src/runtime/value.cr:
261 yield Value.new raw
0x00000000001c9b75 <+4677>: call 0x339d20 <new>
0x00000000001c9b7a <+4682>: mov eax,DWORD PTR [rsp+0x780]
0x00000000001c9b81 <+4689>: mov rcx,QWORD PTR [rsp+0x788]
0x00000000001c9b89 <+4697>: mov rdx,QWORD PTR [rsp+0x790]
0x00000000001c9b91 <+4705>: mov rsi,QWORD PTR [rsp+0x798]
0x00000000001c9b99 <+4713>: mov QWORD PTR [rsp+0x45d8],rsi
0x00000000001c9ba1 <+4721>: mov QWORD PTR [rsp+0x45d0],rdx
0x00000000001c9ba9 <+4729>: mov QWORD PTR [rsp+0x45c8],rcx
0x00000000001c9bb1 <+4737>: mov DWORD PTR [rsp+0x45c0],eax
0x00000000001c9bb8 <+4744>: lea rax,[rsp+0x45c0]
0x00000000001c9bc0 <+4752>: mov QWORD PTR [rsp+0x500],rax
0x00000000001c9bc8 <+4760>: jmp 0x1c9be5 <->+4789>
0x00000000001c9bca <+4762>: mov edi,DWORD PTR [rsp+0x50c]
0x00000000001c9bd1 <+4769>: call 0x17e6b0 <~match<(Array(Crinja::Value) | Bool | Crinja::Callable | Crinja::Object | Crinja::SafeString | Crinja::Undefined | Float64 | Hash(Crinja::Value, Crinja::Value) | Int32 | Int64 | Iterator(Crinja::Value) | Proc(Crinja::Arguments, Crinja::Value) | String | Time | Nil)>>
0x00000000001c9bd6 <+4774>: and al,0x1
0x00000000001c9bd8 <+4776>: test al,0x1
0x00000000001c9bda <+4778>: jne 0x1c9d0a <->+5082>
0x00000000001c9be0 <+4784>: jmp 0x1c9d89 <->+5209>
0x00000000001c9be5 <+4789>: mov rsi,QWORD PTR [rsp+0x500]
0x00000000001c9bed <+4797>: mov eax,DWORD PTR [rsi]
0x00000000001c9bef <+4799>: mov rcx,QWORD PTR [rsi+0x8]
0x00000000001c9bf3 <+4803>: mov rdx,QWORD PTR [rsi+0x10]
0x00000000001c9bf7 <+4807>: mov rsi,QWORD PTR [rsi+0x18]
0x00000000001c9bfb <+4811>: mov QWORD PTR [rsp+0x4990],rsi
0x00000000001c9c03 <+4819>: mov QWORD PTR [rsp+0x4988],rdx
0x00000000001c9c0b <+4827>: mov QWORD PTR [rsp+0x4980],rcx
0x00000000001c9c13 <+4835>: mov DWORD PTR [rsp+0x4978],eax
/usr/lib/crystal/enumerable.cr:
1621 each { |e| ary << e if yield e }
0x00000000001c9c1a <+4842>: mov eax,DWORD PTR [rsp+0x4978]
0x00000000001c9c21 <+4849>: mov rcx,QWORD PTR [rsp+0x4980]
0x00000000001c9c29 <+4857>: mov rdx,QWORD PTR [rsp+0x4988]
0x00000000001c9c31 <+4865>: mov rsi,QWORD PTR [rsp+0x4990]
0x00000000001c9c39 <+4873>: mov QWORD PTR [rsp+0x49b8],rsi
0x00000000001c9c41 <+4881>: mov QWORD PTR [rsp+0x49b0],rdx
0x00000000001c9c49 <+4889>: mov QWORD PTR [rsp+0x49a8],rcx
0x00000000001c9c51 <+4897>: mov DWORD PTR [rsp+0x49a0],eax
0x00000000001c9c58 <+4904>: mov r8,QWORD PTR [rsp+0x4a68]
0x00000000001c9c60 <+4912>: mov rcx,QWORD PTR [rsp+0x4a60]
0x00000000001c9c68 <+4920>: mov rdx,QWORD PTR [rsp+0x4a58]
0x00000000001c9c70 <+4928>: mov esi,DWORD PTR [rsp+0x4a50]
0x00000000001c9c77 <+4935>: mov r9d,DWORD PTR [rsp+0x49a0]
0x00000000001c9c7f <+4943>: mov rdi,QWORD PTR [rsp+0x49a8]
0x00000000001c9c87 <+4951>: mov r10,QWORD PTR [rsp+0x49b0]
0x00000000001c9c8f <+4959>: mov r11,QWORD PTR [rsp+0x49b8]
/home/lune/git/kagi/dispatch/lib/crinja/src/lib/filter/collections.cr:
10 when .responds_to?(:to_a)
0x00000000001c9c97 <+4967>: mov rax,rsp
0x00000000001c9c9a <+4970>: mov QWORD PTR [rax+0x10],r11
0x00000000001c9c9e <+4974>: mov QWORD PTR [rax+0x8],r10
0x00000000001c9ca2 <+4978>: mov QWORD PTR [rax],rdi
0x00000000001c9ca5 <+4981>: lea rdi,[rsp+0x760]
0x00000000001c9cad <+4989>: call 0x511190 <resolve_getattr>
0x00000000001c9cb2 <+4994>: mov eax,DWORD PTR [rsp+0x760]
0x00000000001c9cb9 <+5001>: mov rcx,QWORD PTR [rsp+0x768]
0x00000000001c9cc1 <+5009>: mov rdx,QWORD PTR [rsp+0x770]
0x00000000001c9cc9 <+5017>: mov rsi,QWORD PTR [rsp+0x778]
0x00000000001c9cd1 <+5025>: mov QWORD PTR [rsp+0x4578],rsi
0x00000000001c9cd9 <+5033>: mov QWORD PTR [rsp+0x4570],rdx
0x00000000001c9ce1 <+5041>: mov QWORD PTR [rsp+0x4568],rcx
0x00000000001c9ce9 <+5049>: mov DWORD PTR [rsp+0x4560],eax
0x00000000001c9cf0 <+5056>: lea rdi,[rsp+0x4560]
0x00000000001c9cf8 <+5064>: call 0x343280 <truthy?>
0x00000000001c9cfd <+5069>: test al,0x1
0x00000000001c9cff <+5071>: jne 0x1c9e27 <->+5367>
0x00000000001c9d05 <+5077>: jmp 0x1c9e55 <->+5413>
/home/lune/git/kagi/dispatch/lib/crinja/src/runtime/value.cr:
261 yield Value.new raw
0x00000000001c9d0a <+5082>: mov r8,QWORD PTR [rsp+0x4968]
0x00000000001c9d12 <+5090>: mov rcx,QWORD PTR [rsp+0x4960]
0x00000000001c9d1a <+5098>: mov rdx,QWORD PTR [rsp+0x4958]
0x00000000001c9d22 <+5106>: mov esi,DWORD PTR [rsp+0x4950]
0x00000000001c9d29 <+5113>: lea rdi,[rsp+0x7a0]
0x00000000001c9d31 <+5121>: call 0x340b10 <new>
0x00000000001c9d36 <+5126>: mov eax,DWORD PTR [rsp+0x7a0]
0x00000000001c9d3d <+5133>: mov rcx,QWORD PTR [rsp+0x7a8]
0x00000000001c9d45 <+5141>: mov rdx,QWORD PTR [rsp+0x7b0]
0x00000000001c9d4d <+5149>: mov rsi,QWORD PTR [rsp+0x7b8]
0x00000000001c9d55 <+5157>: mov QWORD PTR [rsp+0x45b8],rsi
0x00000000001c9d5d <+5165>: mov QWORD PTR [rsp+0x45b0],rdx
0x00000000001c9d65 <+5173>: mov QWORD PTR [rsp+0x45a8],rcx
0x00000000001c9d6d <+5181>: mov DWORD PTR [rsp+0x45a0],eax
0x00000000001c9d74 <+5188>: lea rax,[rsp+0x45a0]
0x00000000001c9d7c <+5196>: mov QWORD PTR [rsp+0x500],rax
0x00000000001c9d84 <+5204>: jmp 0x1c9be5 <->+4789>
0x00000000001c9d89 <+5209>: mov edi,DWORD PTR [rsp+0x50c]
0x00000000001c9d90 <+5216>: call 0x1827e0 <~match<(Array(Crinja::Value) | Bool | Crinja::Callable | Crinja::Object | Crinja::SafeString | Crinja::Undefined | Crinja::Value | Float64 | Hash(Crinja::Value, Crinja::Value) | Int32 | Int64 | Iterator(Crinja::Value) | Proc(Crinja::Arguments, Crinja::Value) | String | Time | Nil)>>
0x00000000001c9d95 <+5221>: and al,0x1
0x00000000001c9d97 <+5223>: test al,0x1
0x00000000001c9d99 <+5225>: jne 0x1c9da0 <->+5232>
0x00000000001c9d9b <+5227>: jmp 0x1c9e27 <->+5367>
0x00000000001c9da0 <+5232>: mov r9,QWORD PTR [rsp+0x4970]
0x00000000001c9da8 <+5240>: mov r8,QWORD PTR [rsp+0x4968]
0x00000000001c9db0 <+5248>: mov rcx,QWORD PTR [rsp+0x4960]
0x00000000001c9db8 <+5256>: mov rdx,QWORD PTR [rsp+0x4958]
0x00000000001c9dc0 <+5264>: mov esi,DWORD PTR [rsp+0x4950]
0x00000000001c9dc7 <+5271>: lea rdi,[rsp+0x7c0]
0x00000000001c9dcf <+5279>: call 0x340cb0 <new>
0x00000000001c9dd4 <+5284>: mov eax,DWORD PTR [rsp+0x7c0]
0x00000000001c9ddb <+5291>: mov rcx,QWORD PTR [rsp+0x7c8]
0x00000000001c9de3 <+5299>: mov rdx,QWORD PTR [rsp+0x7d0]
0x00000000001c9deb <+5307>: mov rsi,QWORD PTR [rsp+0x7d8]
0x00000000001c9df3 <+5315>: mov QWORD PTR [rsp+0x4598],rsi
0x00000000001c9dfb <+5323>: mov QWORD PTR [rsp+0x4590],rdx
0x00000000001c9e03 <+5331>: mov QWORD PTR [rsp+0x4588],rcx
0x00000000001c9e0b <+5339>: mov DWORD PTR [rsp+0x4580],eax
0x00000000001c9e12 <+5346>: lea rax,[rsp+0x4580]
0x00000000001c9e1a <+5354>: mov QWORD PTR [rsp+0x500],rax
0x00000000001c9e22 <+5362>: jmp 0x1c9be5 <->+4789>
/home/lune/git/kagi/dispatch/lib/crinja/src/lib/filter/collections.cr:
10 when .responds_to?(:to_a)
0x00000000001c9e27 <+5367>: mov rdi,QWORD PTR [rsp+0x4998]
0x00000000001c9e2f <+5375>: mov r8,QWORD PTR [rsp+0x4990]
0x00000000001c9e37 <+5383>: mov rcx,QWORD PTR [rsp+0x4988]
0x00000000001c9e3f <+5391>: mov rdx,QWORD PTR [rsp+0x4980]
0x00000000001c9e47 <+5399>: mov esi,DWORD PTR [rsp+0x4978]
/usr/lib/crystal/enumerable.cr:
1621 each { |e| ary << e if yield e }
0x00000000001c9e4e <+5406>: call 0x326080 <<<>
0x00000000001c9e53 <+5411>: jmp 0x1c9e57 <->+5415>
0x00000000001c9e55 <+5413>: jmp 0x1c9e57 <->+5415>
0x00000000001c9e57 <+5415>: jmp 0x1c9a21 <->+4337>
0x00000000001c9e5c <+5420>: mov rax,QWORD PTR [rsp+0x4938]
0x00000000001c9e64 <+5428>: mov QWORD PTR [rsp+0x4f8],rax
/usr/lib/crystal/indexable.cr:
573 i = 0
0x00000000001c9e6c <+5436>: mov DWORD PTR [rsp+0x4538],0x0
0x00000000001c9e77 <+5447>: jmp 0x1c9e92 <->+5474>
0x00000000001c9e79 <+5449>: mov ecx,DWORD PTR [rsp+0x53c]