hidva / as2cfg Goto Github PK
View Code? Open in Web Editor NEWConstruct the CFG(Control Flow Graph) from intel assembly code
License: GNU General Public License v3.0
Construct the CFG(Control Flow Graph) from intel assembly code
License: GNU General Public License v3.0
[rip+0xcf3666]
at <+57>
will trigger an error, and replace rip
with rbp
will be good, but there are another error:
WARNING: newnodes = map[uint64]*main.CFGNode{0x16a7381:(*main.CFGNode)(0xc0002811d0), 0x16a7384:(*main.CFGNode)(0xc0002817c0), 0x16a7387:(*main.CFGNode)(0xc000281db0), 0x16a738a:(*main.CFGNode)(0xc0002d8140)}
panic: runtime error: index out of range [0] with length 0
goroutine 1 [running]:
main.(*CFGNode).getDOTTooltip(...)
/Users/zhanyi/project/org/hidva/as2cfg/as2cfg/as2cfg.go:29
main.CFGGraph2Dot(0xc00000c040, 0xc000088010, 0x11ac848)
/Users/zhanyi/project/org/hidva/as2cfg/as2cfg/as2cfg.go:451 +0xd04
main.main()
/Users/zhanyi/project/org/hidva/as2cfg/as2cfg/as2cfg.go:497 +0x115
0x00000000016a6582 <+0>: push rbp
0x00000000016a6583 <+1>: mov rbp,rsp
0x00000000016a6586 <+4>: push r15
0x00000000016a6588 <+6>: push r14
0x00000000016a658a <+8>: push r13
0x00000000016a658c <+10>: push r12
0x00000000016a658e <+12>: push rbx
0x00000000016a658f <+13>: sub rsp,0x118
0x00000000016a6596 <+20>: mov QWORD PTR [rbp-0x128],rdi
0x00000000016a659d <+27>: mov DWORD PTR [rbp-0x12c],esi
0x00000000016a65a3 <+33>: mov QWORD PTR [rbp-0x138],rdx
0x00000000016a65aa <+40>: mov QWORD PTR [rbp-0x140],rcx
0x00000000016a65b1 <+47>: lea r13,[rbp-0xd0]
0x00000000016a65b8 <+54>: mov r15,r13
0x00000000016a65bb <+57>: cmp DWORD PTR [rip+0xcf3666],0x0
0x00000000016a65c2 <+64>: je 0x16a65d6 <timesub+84>
0x00000000016a65c4 <+66>: mov edi,0xa0
0x00000000016a65c9 <+71>: call 0x4ebb10 <__asan_stack_malloc_2@plt>
0x00000000016a65ce <+76>: test rax,rax
0x00000000016a65d1 <+79>: je 0x16a65d6 <timesub+84>
0x00000000016a65d3 <+81>: mov r13,rax
0x00000000016a65d6 <+84>: lea rax,[r13+0xa0]
0x00000000016a65dd <+91>: mov rbx,rax
0x00000000016a65e0 <+94>: mov QWORD PTR [r13+0x0],0x41b58ab3
0x00000000016a65e8 <+102>: mov QWORD PTR [r13+0x8],0x1d7cf38
0x00000000016a65f0 <+110>: mov QWORD PTR [r13+0x10],0x16a6582
0x00000000016a65f8 <+118>: mov r12,r13
0x00000000016a65fb <+121>: shr r12,0x3
0x00000000016a65ff <+125>: mov DWORD PTR [r12+0x7fff8000],0xf1f1f1f1
0x00000000016a660b <+137>: mov DWORD PTR [r12+0x7fff8004],0xf4f4f404
0x00000000016a6617 <+149>: mov DWORD PTR [r12+0x7fff8008],0xf2f2f2f2
0x00000000016a6623 <+161>: mov DWORD PTR [r12+0x7fff800c],0xf4f4f404
0x00000000016a662f <+173>: mov DWORD PTR [r12+0x7fff8010],0xf3f3f3f3
0x00000000016a663b <+185>: mov QWORD PTR [rbp-0xf0],0x0
0x00000000016a6646 <+196>: mov BYTE PTR [rbp-0x111],0x0
0x00000000016a664d <+203>: cmp QWORD PTR [rbp-0x138],0x0
0x00000000016a6655 <+211>: je 0x16a6694 <timesub+274>
0x00000000016a6657 <+213>: mov rax,QWORD PTR [rbp-0x138]
0x00000000016a665e <+220>: mov rdx,rax
0x00000000016a6661 <+223>: mov rax,rdx
0x00000000016a6664 <+226>: shr rax,0x3
0x00000000016a6668 <+230>: add rax,0x7fff8000
0x00000000016a666e <+236>: movzx eax,BYTE PTR [rax]
0x00000000016a6671 <+239>: test al,al
0x00000000016a6673 <+241>: setne cl
0x00000000016a6676 <+244>: cmp al,0x3
0x00000000016a6678 <+246>: setle al
0x00000000016a667b <+249>: and eax,ecx
0x00000000016a667d <+251>: test al,al
0x00000000016a667f <+253>: je 0x16a6689 <timesub+263>
0x00000000016a6681 <+255>: mov rdi,rdx
0x00000000016a6684 <+258>: call 0x4e9b10 <__asan_report_load4@plt>
0x00000000016a6689 <+263>: mov rax,QWORD PTR [rbp-0x138]
0x00000000016a6690 <+270>: mov eax,DWORD PTR [rax]
0x00000000016a6692 <+272>: jmp 0x16a6699 <timesub+279>
0x00000000016a6694 <+274>: mov eax,0x0
0x00000000016a6699 <+279>: mov DWORD PTR [rbp-0x10c],eax
0x00000000016a669f <+285>: jmp 0x16a67e3 <timesub+609>
0x00000000016a66a4 <+290>: mov eax,DWORD PTR [rbp-0x10c]
0x00000000016a66aa <+296>: cdqe
0x00000000016a66ac <+298>: add rax,0x586
0x00000000016a66b2 <+304>: shl rax,0x4
0x00000000016a66b6 <+308>: mov rdx,rax
0x00000000016a66b9 <+311>: mov rax,QWORD PTR [rbp-0x138]
0x00000000016a66c0 <+318>: add rax,rdx
0x00000000016a66c3 <+321>: add rax,0x8
0x00000000016a66c7 <+325>: mov QWORD PTR [rbp-0xe8],rax
0x00000000016a66ce <+332>: mov rax,QWORD PTR [rbp-0x128]
0x00000000016a66d5 <+339>: mov rdx,rax
0x00000000016a66d8 <+342>: shr rdx,0x3
0x00000000016a66dc <+346>: add rdx,0x7fff8000
0x00000000016a66e3 <+353>: movzx edx,BYTE PTR [rdx]
0x00000000016a66e6 <+356>: test dl,dl
0x00000000016a66e8 <+358>: je 0x16a66f2 <timesub+368>
0x00000000016a66ea <+360>: mov rdi,rax
0x00000000016a66ed <+363>: call 0x4eaf60 <__asan_report_load8@plt>
0x00000000016a66f2 <+368>: mov rax,QWORD PTR [rbp-0x128]
0x00000000016a66f9 <+375>: mov rcx,QWORD PTR [rax]
0x00000000016a66fc <+378>: mov rax,QWORD PTR [rbp-0xe8]
0x00000000016a6703 <+385>: mov rdx,rax
0x00000000016a6706 <+388>: shr rdx,0x3
0x00000000016a670a <+392>: add rdx,0x7fff8000
0x00000000016a6711 <+399>: movzx edx,BYTE PTR [rdx]
0x00000000016a6714 <+402>: test dl,dl
0x00000000016a6716 <+404>: je 0x16a6720 <timesub+414>
0x00000000016a6718 <+406>: mov rdi,rax
0x00000000016a671b <+409>: call 0x4eaf60 <__asan_report_load8@plt>
0x00000000016a6720 <+414>: mov rax,QWORD PTR [rbp-0xe8]
0x00000000016a6727 <+421>: mov rax,QWORD PTR [rax]
0x00000000016a672a <+424>: cmp rcx,rax
0x00000000016a672d <+427>: jl 0x16a67e3 <timesub+609>
0x00000000016a6733 <+433>: mov rax,QWORD PTR [rbp-0xe8]
0x00000000016a673a <+440>: add rax,0x8
0x00000000016a673e <+444>: mov rdx,rax
0x00000000016a6741 <+447>: shr rdx,0x3
0x00000000016a6745 <+451>: add rdx,0x7fff8000
0x00000000016a674c <+458>: movzx edx,BYTE PTR [rdx]
0x00000000016a674f <+461>: test dl,dl
0x00000000016a6751 <+463>: je 0x16a675b <timesub+473>
0x00000000016a6753 <+465>: mov rdi,rax
0x00000000016a6756 <+468>: call 0x4eaf60 <__asan_report_load8@plt>
0x00000000016a675b <+473>: mov rax,QWORD PTR [rbp-0xe8]
0x00000000016a6762 <+480>: mov rax,QWORD PTR [rax+0x8]
0x00000000016a6766 <+484>: mov QWORD PTR [rbp-0xf0],rax
0x00000000016a676d <+491>: mov rax,QWORD PTR [rbp-0x128]
0x00000000016a6774 <+498>: mov rdx,QWORD PTR [rax]
0x00000000016a6777 <+501>: mov rax,QWORD PTR [rbp-0xe8]
0x00000000016a677e <+508>: mov rax,QWORD PTR [rax]
0x00000000016a6781 <+511>: cmp rdx,rax
0x00000000016a6784 <+514>: jne 0x16a67d6 <timesub+596>
0x00000000016a6786 <+516>: cmp DWORD PTR [rbp-0x10c],0x0
0x00000000016a678d <+523>: je 0x16a67c1 <timesub+575>
0x00000000016a678f <+525>: mov rax,QWORD PTR [rbp-0xe8]
0x00000000016a6796 <+532>: sub rax,0x10
0x00000000016a679a <+536>: lea rdx,[rax+0x8]
0x00000000016a679e <+540>: mov rcx,rdx
0x00000000016a67a1 <+543>: shr rcx,0x3
0x00000000016a67a5 <+547>: add rcx,0x7fff8000
0x00000000016a67ac <+554>: movzx ecx,BYTE PTR [rcx]
0x00000000016a67af <+557>: test cl,cl
0x00000000016a67b1 <+559>: je 0x16a67bb <timesub+569>
0x00000000016a67b3 <+561>: mov rdi,rdx
0x00000000016a67b6 <+564>: call 0x4eaf60 <__asan_report_load8@plt>
0x00000000016a67bb <+569>: mov rax,QWORD PTR [rax+0x8]
0x00000000016a67bf <+573>: jmp 0x16a67c6 <timesub+580>
0x00000000016a67c1 <+575>: mov eax,0x0
0x00000000016a67c6 <+580>: cmp rax,QWORD PTR [rbp-0xf0]
0x00000000016a67cd <+587>: jge 0x16a67d6 <timesub+596>
0x00000000016a67cf <+589>: mov eax,0x1
0x00000000016a67d4 <+594>: jmp 0x16a67db <timesub+601>
0x00000000016a67d6 <+596>: mov eax,0x0
0x00000000016a67db <+601>: mov BYTE PTR [rbp-0x111],al
0x00000000016a67e1 <+607>: jmp 0x16a67f7 <timesub+629>
0x00000000016a67e3 <+609>: sub DWORD PTR [rbp-0x10c],0x1
0x00000000016a67ea <+616>: cmp DWORD PTR [rbp-0x10c],0x0
0x00000000016a67f1 <+623>: jns 0x16a66a4 <timesub+290>
0x00000000016a67f7 <+629>: mov DWORD PTR [rbx-0x80],0x7b2
0x00000000016a67fe <+636>: mov rax,QWORD PTR [rbp-0x128]
0x00000000016a6805 <+643>: mov rdx,rax
0x00000000016a6808 <+646>: shr rdx,0x3
0x00000000016a680c <+650>: add rdx,0x7fff8000
0x00000000016a6813 <+657>: movzx edx,BYTE PTR [rdx]
0x00000000016a6816 <+660>: test dl,dl
0x00000000016a6818 <+662>: je 0x16a6822 <timesub+672>
0x00000000016a681a <+664>: mov rdi,rax
0x00000000016a681d <+667>: call 0x4eaf60 <__asan_report_load8@plt>
0x00000000016a6822 <+672>: mov rax,QWORD PTR [rbp-0x128]
0x00000000016a6829 <+679>: mov rcx,QWORD PTR [rax]
0x00000000016a682c <+682>: movabs rdx,0x1845c8a0ce512957
0x00000000016a6836 <+692>: mov rax,rcx
0x00000000016a6839 <+695>: imul rdx
0x00000000016a683c <+698>: sar rdx,0xd
0x00000000016a6840 <+702>: mov rax,rcx
0x00000000016a6843 <+705>: sar rax,0x3f
0x00000000016a6847 <+709>: sub rdx,rax
0x00000000016a684a <+712>: mov rax,rdx
0x00000000016a684d <+715>: mov QWORD PTR [rbp-0x100],rax
0x00000000016a6854 <+722>: mov rax,QWORD PTR [rbp-0x128]
0x00000000016a685b <+729>: mov rcx,QWORD PTR [rax]
0x00000000016a685e <+732>: movabs rdx,0x1845c8a0ce512957
0x00000000016a6868 <+742>: mov rax,rcx
0x00000000016a686b <+745>: imul rdx
0x00000000016a686e <+748>: sar rdx,0xd
0x00000000016a6872 <+752>: mov rax,rcx
0x00000000016a6875 <+755>: sar rax,0x3f
0x00000000016a6879 <+759>: sub rdx,rax
0x00000000016a687c <+762>: mov rax,rdx
0x00000000016a687f <+765>: mov QWORD PTR [rbp-0xf8],rax
0x00000000016a6886 <+772>: mov rax,QWORD PTR [rbp-0xf8]
0x00000000016a688d <+779>: imul rax,rax,0x15180
0x00000000016a6894 <+786>: sub rcx,rax
0x00000000016a6897 <+789>: mov rax,rcx
0x00000000016a689a <+792>: mov QWORD PTR [rbp-0xf8],rax
0x00000000016a68a1 <+799>: jmp 0x16a69ba <timesub+1080>
0x00000000016a68a6 <+804>: mov rcx,QWORD PTR [rbp-0x100]
0x00000000016a68ad <+811>: movabs rdx,0x2cc3d8d4a245f203
0x00000000016a68b7 <+821>: mov rax,rcx
0x00000000016a68ba <+824>: imul rdx
0x00000000016a68bd <+827>: sar rdx,0x6
0x00000000016a68c1 <+831>: mov rax,rcx
0x00000000016a68c4 <+834>: sar rax,0x3f
0x00000000016a68c8 <+838>: sub rdx,rax
0x00000000016a68cb <+841>: mov rax,rdx
0x00000000016a68ce <+844>: mov QWORD PTR [rbp-0xe0],rax
0x00000000016a68d5 <+851>: cmp QWORD PTR [rbp-0xe0],0xffffffff80000000
0x00000000016a68e0 <+862>: jl 0x16a738b <timesub+3593>
0x00000000016a68e6 <+868>: cmp QWORD PTR [rbp-0xe0],0x7fffffff
0x00000000016a68f1 <+879>: jg 0x16a738b <timesub+3593>
0x00000000016a68f7 <+885>: mov rax,QWORD PTR [rbp-0xe0]
0x00000000016a68fe <+892>: mov DWORD PTR [rbp-0x108],eax
0x00000000016a6904 <+898>: cmp DWORD PTR [rbp-0x108],0x0
0x00000000016a690b <+905>: jne 0x16a6929 <timesub+935>
0x00000000016a690d <+907>: cmp QWORD PTR [rbp-0x100],0x0
0x00000000016a6915 <+915>: jns 0x16a691e <timesub+924>
0x00000000016a6917 <+917>: mov eax,0xffffffff
0x00000000016a691c <+922>: jmp 0x16a6923 <timesub+929>
0x00000000016a691e <+924>: mov eax,0x1
0x00000000016a6923 <+929>: mov DWORD PTR [rbp-0x108],eax
0x00000000016a6929 <+935>: mov eax,DWORD PTR [rbx-0x80]
0x00000000016a692c <+938>: mov DWORD PTR [rbx-0x40],eax
0x00000000016a692f <+941>: mov edx,DWORD PTR [rbp-0x108]
0x00000000016a6935 <+947>: lea rax,[rbx-0x40]
0x00000000016a6939 <+951>: mov esi,edx
0x00000000016a693b <+953>: mov rdi,rax
0x00000000016a693e <+956>: call 0x16a744a <increment_overflow>
0x00000000016a6943 <+961>: test al,al
0x00000000016a6945 <+963>: jne 0x16a7381 <timesub+3583>
0x00000000016a694b <+969>: mov eax,DWORD PTR [rbx-0x40]
0x00000000016a694e <+972>: sub eax,0x1
0x00000000016a6951 <+975>: mov edi,eax
0x00000000016a6953 <+977>: call 0x16a6555 <leaps_thru_end_of>
0x00000000016a6958 <+982>: mov r14d,eax
0x00000000016a695b <+985>: mov eax,DWORD PTR [rbx-0x80]
0x00000000016a695e <+988>: sub eax,0x1
0x00000000016a6961 <+991>: mov edi,eax
0x00000000016a6963 <+993>: call 0x16a6555 <leaps_thru_end_of>
0x00000000016a6968 <+998>: sub r14d,eax
0x00000000016a696b <+1001>: mov eax,r14d
0x00000000016a696e <+1004>: mov DWORD PTR [rbp-0x104],eax
0x00000000016a6974 <+1010>: mov eax,DWORD PTR [rbx-0x80]
0x00000000016a6977 <+1013>: movsxd rdx,eax
0x00000000016a697a <+1016>: mov eax,DWORD PTR [rbx-0x40]
0x00000000016a697d <+1019>: cdqe
0x00000000016a697f <+1021>: sub rdx,rax
0x00000000016a6982 <+1024>: mov rax,rdx
0x00000000016a6985 <+1027>: shl rax,0x3
0x00000000016a6989 <+1031>: add rax,rdx
0x00000000016a698c <+1034>: shl rax,0x3
0x00000000016a6990 <+1038>: add rax,rdx
0x00000000016a6993 <+1041>: lea rdx,[rax*4+0x0]
0x00000000016a699b <+1049>: add rax,rdx
0x00000000016a699e <+1052>: add QWORD PTR [rbp-0x100],rax
0x00000000016a69a5 <+1059>: mov eax,DWORD PTR [rbp-0x104]
0x00000000016a69ab <+1065>: cdqe
0x00000000016a69ad <+1067>: sub QWORD PTR [rbp-0x100],rax
0x00000000016a69b4 <+1074>: mov eax,DWORD PTR [rbx-0x40]
0x00000000016a69b7 <+1077>: mov DWORD PTR [rbx-0x80],eax
0x00000000016a69ba <+1080>: cmp QWORD PTR [rbp-0x100],0x0
0x00000000016a69c2 <+1088>: js 0x16a68a6 <timesub+804>
0x00000000016a69c8 <+1094>: mov eax,DWORD PTR [rbx-0x80]
0x00000000016a69cb <+1097>: and eax,0x3
0x00000000016a69ce <+1100>: test eax,eax
0x00000000016a69d0 <+1102>: jne 0x16a6a22 <timesub+1184>
0x00000000016a69d2 <+1104>: mov ecx,DWORD PTR [rbx-0x80]
0x00000000016a69d5 <+1107>: mov edx,0x51eb851f
0x00000000016a69da <+1112>: mov eax,ecx
0x00000000016a69dc <+1114>: imul edx
0x00000000016a69de <+1116>: sar edx,0x5
0x00000000016a69e1 <+1119>: mov eax,ecx
0x00000000016a69e3 <+1121>: sar eax,0x1f
0x00000000016a69e6 <+1124>: sub edx,eax
0x00000000016a69e8 <+1126>: mov eax,edx
0x00000000016a69ea <+1128>: imul eax,eax,0x64
0x00000000016a69ed <+1131>: sub ecx,eax
0x00000000016a69ef <+1133>: mov eax,ecx
0x00000000016a69f1 <+1135>: test eax,eax
0x00000000016a69f3 <+1137>: jne 0x16a6a1b <timesub+1177>
0x00000000016a69f5 <+1139>: mov ecx,DWORD PTR [rbx-0x80]
0x00000000016a69f8 <+1142>: mov edx,0x51eb851f
0x00000000016a69fd <+1147>: mov eax,ecx
0x00000000016a69ff <+1149>: imul edx
0x00000000016a6a01 <+1151>: sar edx,0x7
0x00000000016a6a04 <+1154>: mov eax,ecx
0x00000000016a6a06 <+1156>: sar eax,0x1f
0x00000000016a6a09 <+1159>: sub edx,eax
0x00000000016a6a0b <+1161>: mov eax,edx
0x00000000016a6a0d <+1163>: imul eax,eax,0x190
0x00000000016a6a13 <+1169>: sub ecx,eax
0x00000000016a6a15 <+1171>: mov eax,ecx
0x00000000016a6a17 <+1173>: test eax,eax
0x00000000016a6a19 <+1175>: jne 0x16a6a22 <timesub+1184>
0x00000000016a6a1b <+1177>: mov edx,0x1
0x00000000016a6a20 <+1182>: jmp 0x16a6a27 <timesub+1189>
0x00000000016a6a22 <+1184>: mov edx,0x0
0x00000000016a6a27 <+1189>: movsxd rax,edx
0x00000000016a6a2a <+1192>: shl rax,0x2
0x00000000016a6a2e <+1196>: add rax,0x1d7cde0
0x00000000016a6a34 <+1202>: mov rcx,rax
0x00000000016a6a37 <+1205>: shr rcx,0x3
0x00000000016a6a3b <+1209>: add rcx,0x7fff8000
0x00000000016a6a42 <+1216>: movzx ecx,BYTE PTR [rcx]
0x00000000016a6a45 <+1219>: test cl,cl
0x00000000016a6a47 <+1221>: setne sil
0x00000000016a6a4b <+1225>: mov rdi,rax
0x00000000016a6a4e <+1228>: and edi,0x7
0x00000000016a6a51 <+1231>: add edi,0x3
0x00000000016a6a54 <+1234>: cmp dil,cl
0x00000000016a6a57 <+1237>: setge cl
0x00000000016a6a5a <+1240>: and ecx,esi
0x00000000016a6a5c <+1242>: test cl,cl
0x00000000016a6a5e <+1244>: je 0x16a6a68 <timesub+1254>
0x00000000016a6a60 <+1246>: mov rdi,rax
0x00000000016a6a63 <+1249>: call 0x4e9b10 <__asan_report_load4@plt>
0x00000000016a6a68 <+1254>: movsxd rax,edx
0x00000000016a6a6b <+1257>: mov eax,DWORD PTR [rax*4+0x1d7cde0]
0x00000000016a6a72 <+1264>: cdqe
0x00000000016a6a74 <+1266>: cmp rax,QWORD PTR [rbp-0x100]
0x00000000016a6a7b <+1273>: jle 0x16a68a6 <timesub+804>
0x00000000016a6a81 <+1279>: mov rax,QWORD PTR [rbp-0x100]
0x00000000016a6a88 <+1286>: mov DWORD PTR [rbp-0x110],eax
0x00000000016a6a8e <+1292>: mov eax,DWORD PTR [rbp-0x12c]
0x00000000016a6a94 <+1298>: cdqe
0x00000000016a6a96 <+1300>: sub rax,QWORD PTR [rbp-0xf0]
0x00000000016a6a9d <+1307>: add QWORD PTR [rbp-0xf8],rax
0x00000000016a6aa4 <+1314>: jmp 0x16a6ab8 <timesub+1334>
0x00000000016a6aa6 <+1316>: add QWORD PTR [rbp-0xf8],0x15180
0x00000000016a6ab1 <+1327>: sub DWORD PTR [rbp-0x110],0x1
0x00000000016a6ab8 <+1334>: cmp QWORD PTR [rbp-0xf8],0x0
0x00000000016a6ac0 <+1342>: js 0x16a6aa6 <timesub+1316>
0x00000000016a6ac2 <+1344>: jmp 0x16a6ad6 <timesub+1364>
0x00000000016a6ac4 <+1346>: sub QWORD PTR [rbp-0xf8],0x15180
0x00000000016a6acf <+1357>: add DWORD PTR [rbp-0x110],0x1
0x00000000016a6ad6 <+1364>: cmp QWORD PTR [rbp-0xf8],0x1517f
0x00000000016a6ae1 <+1375>: jg 0x16a6ac4 <timesub+1346>
0x00000000016a6ae3 <+1377>: jmp 0x16a6bb1 <timesub+1583>
0x00000000016a6ae8 <+1382>: lea rax,[rbx-0x80]
0x00000000016a6aec <+1386>: mov esi,0xffffffff
0x00000000016a6af1 <+1391>: mov rdi,rax
0x00000000016a6af4 <+1394>: call 0x16a744a <increment_overflow>
0x00000000016a6af9 <+1399>: test al,al
0x00000000016a6afb <+1401>: jne 0x16a7384 <timesub+3586>
0x00000000016a6b01 <+1407>: mov eax,DWORD PTR [rbx-0x80]
0x00000000016a6b04 <+1410>: and eax,0x3
0x00000000016a6b07 <+1413>: test eax,eax
0x00000000016a6b09 <+1415>: jne 0x16a6b5b <timesub+1497>
0x00000000016a6b0b <+1417>: mov ecx,DWORD PTR [rbx-0x80]
0x00000000016a6b0e <+1420>: mov edx,0x51eb851f
0x00000000016a6b13 <+1425>: mov eax,ecx
0x00000000016a6b15 <+1427>: imul edx
0x00000000016a6b17 <+1429>: sar edx,0x5
0x00000000016a6b1a <+1432>: mov eax,ecx
0x00000000016a6b1c <+1434>: sar eax,0x1f
0x00000000016a6b1f <+1437>: sub edx,eax
0x00000000016a6b21 <+1439>: mov eax,edx
0x00000000016a6b23 <+1441>: imul eax,eax,0x64
0x00000000016a6b26 <+1444>: sub ecx,eax
0x00000000016a6b28 <+1446>: mov eax,ecx
0x00000000016a6b2a <+1448>: test eax,eax
0x00000000016a6b2c <+1450>: jne 0x16a6b54 <timesub+1490>
0x00000000016a6b2e <+1452>: mov ecx,DWORD PTR [rbx-0x80]
0x00000000016a6b31 <+1455>: mov edx,0x51eb851f
0x00000000016a6b36 <+1460>: mov eax,ecx
0x00000000016a6b38 <+1462>: imul edx
0x00000000016a6b3a <+1464>: sar edx,0x7
0x00000000016a6b3d <+1467>: mov eax,ecx
0x00000000016a6b3f <+1469>: sar eax,0x1f
0x00000000016a6b42 <+1472>: sub edx,eax
0x00000000016a6b44 <+1474>: mov eax,edx
0x00000000016a6b46 <+1476>: imul eax,eax,0x190
0x00000000016a6b4c <+1482>: sub ecx,eax
0x00000000016a6b4e <+1484>: mov eax,ecx
0x00000000016a6b50 <+1486>: test eax,eax
0x00000000016a6b52 <+1488>: jne 0x16a6b5b <timesub+1497>
0x00000000016a6b54 <+1490>: mov edx,0x1
0x00000000016a6b59 <+1495>: jmp 0x16a6b60 <timesub+1502>
0x00000000016a6b5b <+1497>: mov edx,0x0
0x00000000016a6b60 <+1502>: movsxd rax,edx
0x00000000016a6b63 <+1505>: shl rax,0x2
0x00000000016a6b67 <+1509>: add rax,0x1d7cde0
0x00000000016a6b6d <+1515>: mov rcx,rax
0x00000000016a6b70 <+1518>: shr rcx,0x3
0x00000000016a6b74 <+1522>: add rcx,0x7fff8000
0x00000000016a6b7b <+1529>: movzx ecx,BYTE PTR [rcx]
0x00000000016a6b7e <+1532>: test cl,cl
0x00000000016a6b80 <+1534>: setne sil
0x00000000016a6b84 <+1538>: mov rdi,rax
0x00000000016a6b87 <+1541>: and edi,0x7
0x00000000016a6b8a <+1544>: add edi,0x3
0x00000000016a6b8d <+1547>: cmp dil,cl
0x00000000016a6b90 <+1550>: setge cl
0x00000000016a6b93 <+1553>: and ecx,esi
0x00000000016a6b95 <+1555>: test cl,cl
0x00000000016a6b97 <+1557>: je 0x16a6ba1 <timesub+1567>
0x00000000016a6b99 <+1559>: mov rdi,rax
0x00000000016a6b9c <+1562>: call 0x4e9b10 <__asan_report_load4@plt>
0x00000000016a6ba1 <+1567>: movsxd rax,edx
0x00000000016a6ba4 <+1570>: mov eax,DWORD PTR [rax*4+0x1d7cde0]
0x00000000016a6bab <+1577>: add DWORD PTR [rbp-0x110],eax
0x00000000016a6bb1 <+1583>: cmp DWORD PTR [rbp-0x110],0x0
0x00000000016a6bb8 <+1590>: js 0x16a6ae8 <timesub+1382>
0x00000000016a6bbe <+1596>: jmp 0x16a6c8c <timesub+1802>
0x00000000016a6bc3 <+1601>: mov eax,DWORD PTR [rbx-0x80]
0x00000000016a6bc6 <+1604>: and eax,0x3
0x00000000016a6bc9 <+1607>: test eax,eax
0x00000000016a6bcb <+1609>: jne 0x16a6c1d <timesub+1691>
0x00000000016a6bcd <+1611>: mov ecx,DWORD PTR [rbx-0x80]
0x00000000016a6bd0 <+1614>: mov edx,0x51eb851f
0x00000000016a6bd5 <+1619>: mov eax,ecx
0x00000000016a6bd7 <+1621>: imul edx
0x00000000016a6bd9 <+1623>: sar edx,0x5
0x00000000016a6bdc <+1626>: mov eax,ecx
0x00000000016a6bde <+1628>: sar eax,0x1f
0x00000000016a6be1 <+1631>: sub edx,eax
0x00000000016a6be3 <+1633>: mov eax,edx
0x00000000016a6be5 <+1635>: imul eax,eax,0x64
0x00000000016a6be8 <+1638>: sub ecx,eax
0x00000000016a6bea <+1640>: mov eax,ecx
0x00000000016a6bec <+1642>: test eax,eax
0x00000000016a6bee <+1644>: jne 0x16a6c16 <timesub+1684>
0x00000000016a6bf0 <+1646>: mov ecx,DWORD PTR [rbx-0x80]
0x00000000016a6bf3 <+1649>: mov edx,0x51eb851f
0x00000000016a6bf8 <+1654>: mov eax,ecx
0x00000000016a6bfa <+1656>: imul edx
0x00000000016a6bfc <+1658>: sar edx,0x7
0x00000000016a6bff <+1661>: mov eax,ecx
0x00000000016a6c01 <+1663>: sar eax,0x1f
0x00000000016a6c04 <+1666>: sub edx,eax
0x00000000016a6c06 <+1668>: mov eax,edx
0x00000000016a6c08 <+1670>: imul eax,eax,0x190
0x00000000016a6c0e <+1676>: sub ecx,eax
0x00000000016a6c10 <+1678>: mov eax,ecx
0x00000000016a6c12 <+1680>: test eax,eax
0x00000000016a6c14 <+1682>: jne 0x16a6c1d <timesub+1691>
0x00000000016a6c16 <+1684>: mov edx,0x1
0x00000000016a6c1b <+1689>: jmp 0x16a6c22 <timesub+1696>
0x00000000016a6c1d <+1691>: mov edx,0x0
0x00000000016a6c22 <+1696>: movsxd rax,edx
0x00000000016a6c25 <+1699>: shl rax,0x2
0x00000000016a6c29 <+1703>: add rax,0x1d7cde0
0x00000000016a6c2f <+1709>: mov rcx,rax
0x00000000016a6c32 <+1712>: shr rcx,0x3
0x00000000016a6c36 <+1716>: add rcx,0x7fff8000
0x00000000016a6c3d <+1723>: movzx ecx,BYTE PTR [rcx]
0x00000000016a6c40 <+1726>: test cl,cl
0x00000000016a6c42 <+1728>: setne sil
0x00000000016a6c46 <+1732>: mov rdi,rax
0x00000000016a6c49 <+1735>: and edi,0x7
0x00000000016a6c4c <+1738>: add edi,0x3
0x00000000016a6c4f <+1741>: cmp dil,cl
0x00000000016a6c52 <+1744>: setge cl
0x00000000016a6c55 <+1747>: and ecx,esi
0x00000000016a6c57 <+1749>: test cl,cl
0x00000000016a6c59 <+1751>: je 0x16a6c63 <timesub+1761>
0x00000000016a6c5b <+1753>: mov rdi,rax
0x00000000016a6c5e <+1756>: call 0x4e9b10 <__asan_report_load4@plt>
0x00000000016a6c63 <+1761>: movsxd rax,edx
0x00000000016a6c66 <+1764>: mov eax,DWORD PTR [rax*4+0x1d7cde0]
0x00000000016a6c6d <+1771>: sub DWORD PTR [rbp-0x110],eax
0x00000000016a6c73 <+1777>: lea rax,[rbx-0x80]
0x00000000016a6c77 <+1781>: mov esi,0x1
0x00000000016a6c7c <+1786>: mov rdi,rax
0x00000000016a6c7f <+1789>: call 0x16a744a <increment_overflow>
0x00000000016a6c84 <+1794>: test al,al
0x00000000016a6c86 <+1796>: jne 0x16a7387 <timesub+3589>
0x00000000016a6c8c <+1802>: mov eax,DWORD PTR [rbx-0x80]
0x00000000016a6c8f <+1805>: and eax,0x3
0x00000000016a6c92 <+1808>: test eax,eax
0x00000000016a6c94 <+1810>: jne 0x16a6ce6 <timesub+1892>
0x00000000016a6c96 <+1812>: mov ecx,DWORD PTR [rbx-0x80]
0x00000000016a6c99 <+1815>: mov edx,0x51eb851f
0x00000000016a6c9e <+1820>: mov eax,ecx
0x00000000016a6ca0 <+1822>: imul edx
0x00000000016a6ca2 <+1824>: sar edx,0x5
0x00000000016a6ca5 <+1827>: mov eax,ecx
0x00000000016a6ca7 <+1829>: sar eax,0x1f
0x00000000016a6caa <+1832>: sub edx,eax
0x00000000016a6cac <+1834>: mov eax,edx
0x00000000016a6cae <+1836>: imul eax,eax,0x64
0x00000000016a6cb1 <+1839>: sub ecx,eax
0x00000000016a6cb3 <+1841>: mov eax,ecx
0x00000000016a6cb5 <+1843>: test eax,eax
0x00000000016a6cb7 <+1845>: jne 0x16a6cdf <timesub+1885>
0x00000000016a6cb9 <+1847>: mov ecx,DWORD PTR [rbx-0x80]
0x00000000016a6cbc <+1850>: mov edx,0x51eb851f
0x00000000016a6cc1 <+1855>: mov eax,ecx
0x00000000016a6cc3 <+1857>: imul edx
0x00000000016a6cc5 <+1859>: sar edx,0x7
0x00000000016a6cc8 <+1862>: mov eax,ecx
0x00000000016a6cca <+1864>: sar eax,0x1f
0x00000000016a6ccd <+1867>: sub edx,eax
0x00000000016a6ccf <+1869>: mov eax,edx
0x00000000016a6cd1 <+1871>: imul eax,eax,0x190
0x00000000016a6cd7 <+1877>: sub ecx,eax
0x00000000016a6cd9 <+1879>: mov eax,ecx
0x00000000016a6cdb <+1881>: test eax,eax
0x00000000016a6cdd <+1883>: jne 0x16a6ce6 <timesub+1892>
0x00000000016a6cdf <+1885>: mov edx,0x1
0x00000000016a6ce4 <+1890>: jmp 0x16a6ceb <timesub+1897>
0x00000000016a6ce6 <+1892>: mov edx,0x0
0x00000000016a6ceb <+1897>: movsxd rax,edx
0x00000000016a6cee <+1900>: shl rax,0x2
0x00000000016a6cf2 <+1904>: add rax,0x1d7cde0
0x00000000016a6cf8 <+1910>: mov rcx,rax
0x00000000016a6cfb <+1913>: shr rcx,0x3
0x00000000016a6cff <+1917>: add rcx,0x7fff8000
0x00000000016a6d06 <+1924>: movzx ecx,BYTE PTR [rcx]
0x00000000016a6d09 <+1927>: test cl,cl
0x00000000016a6d0b <+1929>: setne sil
0x00000000016a6d0f <+1933>: mov rdi,rax
0x00000000016a6d12 <+1936>: and edi,0x7
0x00000000016a6d15 <+1939>: add edi,0x3
0x00000000016a6d18 <+1942>: cmp dil,cl
0x00000000016a6d1b <+1945>: setge cl
0x00000000016a6d1e <+1948>: and ecx,esi
0x00000000016a6d20 <+1950>: test cl,cl
0x00000000016a6d22 <+1952>: je 0x16a6d2c <timesub+1962>
0x00000000016a6d24 <+1954>: mov rdi,rax
0x00000000016a6d27 <+1957>: call 0x4e9b10 <__asan_report_load4@plt>
0x00000000016a6d2c <+1962>: movsxd rax,edx
0x00000000016a6d2f <+1965>: mov eax,DWORD PTR [rax*4+0x1d7cde0]
0x00000000016a6d36 <+1972>: cmp eax,DWORD PTR [rbp-0x110]
0x00000000016a6d3c <+1978>: jle 0x16a6bc3 <timesub+1601>
0x00000000016a6d42 <+1984>: mov ecx,DWORD PTR [rbx-0x80]
0x00000000016a6d45 <+1987>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a6d4c <+1994>: add rax,0x14
0x00000000016a6d50 <+1998>: mov rdx,rax
0x00000000016a6d53 <+2001>: shr rdx,0x3
0x00000000016a6d57 <+2005>: add rdx,0x7fff8000
0x00000000016a6d5e <+2012>: movzx edx,BYTE PTR [rdx]
0x00000000016a6d61 <+2015>: test dl,dl
0x00000000016a6d63 <+2017>: setne sil
0x00000000016a6d67 <+2021>: mov rdi,rax
0x00000000016a6d6a <+2024>: and edi,0x7
0x00000000016a6d6d <+2027>: add edi,0x3
0x00000000016a6d70 <+2030>: cmp dil,dl
0x00000000016a6d73 <+2033>: setge dl
0x00000000016a6d76 <+2036>: and edx,esi
0x00000000016a6d78 <+2038>: test dl,dl
0x00000000016a6d7a <+2040>: je 0x16a6d84 <timesub+2050>
0x00000000016a6d7c <+2042>: mov rdi,rax
0x00000000016a6d7f <+2045>: call 0x4e9bc0 <__asan_report_store4@plt>
0x00000000016a6d84 <+2050>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a6d8b <+2057>: mov DWORD PTR [rax+0x14],ecx
0x00000000016a6d8e <+2060>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a6d95 <+2067>: add rax,0x14
0x00000000016a6d99 <+2071>: mov esi,0xfffff894
0x00000000016a6d9e <+2076>: mov rdi,rax
0x00000000016a6da1 <+2079>: call 0x16a744a <increment_overflow>
0x00000000016a6da6 <+2084>: test al,al
0x00000000016a6da8 <+2086>: jne 0x16a738a <timesub+3592>
0x00000000016a6dae <+2092>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a6db5 <+2099>: add rax,0x1c
0x00000000016a6db9 <+2103>: mov rdx,rax
0x00000000016a6dbc <+2106>: shr rdx,0x3
0x00000000016a6dc0 <+2110>: add rdx,0x7fff8000
0x00000000016a6dc7 <+2117>: movzx edx,BYTE PTR [rdx]
0x00000000016a6dca <+2120>: test dl,dl
0x00000000016a6dcc <+2122>: setne cl
0x00000000016a6dcf <+2125>: mov rsi,rax
0x00000000016a6dd2 <+2128>: and esi,0x7
0x00000000016a6dd5 <+2131>: add esi,0x3
0x00000000016a6dd8 <+2134>: cmp sil,dl
0x00000000016a6ddb <+2137>: setge dl
0x00000000016a6dde <+2140>: and edx,ecx
0x00000000016a6de0 <+2142>: test dl,dl
0x00000000016a6de2 <+2144>: je 0x16a6dec <timesub+2154>
0x00000000016a6de4 <+2146>: mov rdi,rax
0x00000000016a6de7 <+2149>: call 0x4e9bc0 <__asan_report_store4@plt>
0x00000000016a6dec <+2154>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a6df3 <+2161>: mov edx,DWORD PTR [rbp-0x110]
0x00000000016a6df9 <+2167>: mov DWORD PTR [rax+0x1c],edx
0x00000000016a6dfc <+2170>: mov eax,DWORD PTR [rbx-0x80]
0x00000000016a6dff <+2173>: lea ecx,[rax-0x7b2]
0x00000000016a6e05 <+2179>: mov edx,0x92492493
0x00000000016a6e0a <+2184>: mov eax,ecx
0x00000000016a6e0c <+2186>: imul edx
0x00000000016a6e0e <+2188>: lea eax,[rdx+rcx*1]
0x00000000016a6e11 <+2191>: sar eax,0x2
0x00000000016a6e14 <+2194>: mov edx,eax
0x00000000016a6e16 <+2196>: mov eax,ecx
0x00000000016a6e18 <+2198>: sar eax,0x1f
0x00000000016a6e1b <+2201>: sub edx,eax
0x00000000016a6e1d <+2203>: mov r14d,edx
0x00000000016a6e20 <+2206>: mov eax,r14d
0x00000000016a6e23 <+2209>: shl eax,0x3
0x00000000016a6e26 <+2212>: sub eax,r14d
0x00000000016a6e29 <+2215>: sub ecx,eax
0x00000000016a6e2b <+2217>: mov r14d,ecx
0x00000000016a6e2e <+2220>: mov eax,DWORD PTR [rbx-0x80]
0x00000000016a6e31 <+2223>: sub eax,0x1
0x00000000016a6e34 <+2226>: mov edi,eax
0x00000000016a6e36 <+2228>: call 0x16a6555 <leaps_thru_end_of>
0x00000000016a6e3b <+2233>: add r14d,eax
0x00000000016a6e3e <+2236>: mov edi,0x7b1
0x00000000016a6e43 <+2241>: call 0x16a6555 <leaps_thru_end_of>
0x00000000016a6e48 <+2246>: mov edx,r14d
0x00000000016a6e4b <+2249>: sub edx,eax
0x00000000016a6e4d <+2251>: mov eax,DWORD PTR [rbp-0x110]
0x00000000016a6e53 <+2257>: add eax,edx
0x00000000016a6e55 <+2259>: lea ecx,[rax+0x4]
0x00000000016a6e58 <+2262>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a6e5f <+2269>: add rax,0x18
0x00000000016a6e63 <+2273>: mov rdx,rax
0x00000000016a6e66 <+2276>: mov rax,rdx
0x00000000016a6e69 <+2279>: shr rax,0x3
0x00000000016a6e6d <+2283>: add rax,0x7fff8000
0x00000000016a6e73 <+2289>: movzx eax,BYTE PTR [rax]
0x00000000016a6e76 <+2292>: test al,al
0x00000000016a6e78 <+2294>: setne sil
0x00000000016a6e7c <+2298>: cmp al,0x3
0x00000000016a6e7e <+2300>: setle al
0x00000000016a6e81 <+2303>: and eax,esi
0x00000000016a6e83 <+2305>: test al,al
0x00000000016a6e85 <+2307>: je 0x16a6e8f <timesub+2317>
0x00000000016a6e87 <+2309>: mov rdi,rdx
0x00000000016a6e8a <+2312>: call 0x4e9bc0 <__asan_report_store4@plt>
0x00000000016a6e8f <+2317>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a6e96 <+2324>: mov DWORD PTR [rax+0x18],ecx
0x00000000016a6e99 <+2327>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a6ea0 <+2334>: mov ecx,DWORD PTR [rax+0x18]
0x00000000016a6ea3 <+2337>: mov edx,0x92492493
0x00000000016a6ea8 <+2342>: mov eax,ecx
0x00000000016a6eaa <+2344>: imul edx
0x00000000016a6eac <+2346>: lea eax,[rdx+rcx*1]
0x00000000016a6eaf <+2349>: sar eax,0x2
0x00000000016a6eb2 <+2352>: mov edx,eax
0x00000000016a6eb4 <+2354>: mov eax,ecx
0x00000000016a6eb6 <+2356>: sar eax,0x1f
0x00000000016a6eb9 <+2359>: sub edx,eax
0x00000000016a6ebb <+2361>: mov eax,edx
0x00000000016a6ebd <+2363>: mov edx,eax
0x00000000016a6ebf <+2365>: shl edx,0x3
0x00000000016a6ec2 <+2368>: sub edx,eax
0x00000000016a6ec4 <+2370>: mov eax,ecx
0x00000000016a6ec6 <+2372>: sub eax,edx
0x00000000016a6ec8 <+2374>: mov rdx,QWORD PTR [rbp-0x140]
0x00000000016a6ecf <+2381>: mov DWORD PTR [rdx+0x18],eax
0x00000000016a6ed2 <+2384>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a6ed9 <+2391>: mov eax,DWORD PTR [rax+0x18]
0x00000000016a6edc <+2394>: test eax,eax
0x00000000016a6ede <+2396>: jns 0x16a6ef7 <timesub+2421>
0x00000000016a6ee0 <+2398>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a6ee7 <+2405>: mov eax,DWORD PTR [rax+0x18]
0x00000000016a6eea <+2408>: lea edx,[rax+0x7]
0x00000000016a6eed <+2411>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a6ef4 <+2418>: mov DWORD PTR [rax+0x18],edx
0x00000000016a6ef7 <+2421>: mov rcx,QWORD PTR [rbp-0xf8]
0x00000000016a6efe <+2428>: movabs rdx,0x48d159e26af37c05
0x00000000016a6f08 <+2438>: mov rax,rcx
0x00000000016a6f0b <+2441>: imul rdx
0x00000000016a6f0e <+2444>: sar rdx,0xa
0x00000000016a6f12 <+2448>: mov rax,rcx
0x00000000016a6f15 <+2451>: sar rax,0x3f
0x00000000016a6f19 <+2455>: sub rdx,rax
0x00000000016a6f1c <+2458>: mov rax,rdx
0x00000000016a6f1f <+2461>: mov esi,eax
0x00000000016a6f21 <+2463>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a6f28 <+2470>: add rax,0x8
0x00000000016a6f2c <+2474>: mov rdx,rax
0x00000000016a6f2f <+2477>: mov rax,rdx
0x00000000016a6f32 <+2480>: shr rax,0x3
0x00000000016a6f36 <+2484>: add rax,0x7fff8000
0x00000000016a6f3c <+2490>: movzx eax,BYTE PTR [rax]
0x00000000016a6f3f <+2493>: test al,al
0x00000000016a6f41 <+2495>: setne cl
0x00000000016a6f44 <+2498>: cmp al,0x3
0x00000000016a6f46 <+2500>: setle al
0x00000000016a6f49 <+2503>: and eax,ecx
0x00000000016a6f4b <+2505>: test al,al
0x00000000016a6f4d <+2507>: je 0x16a6f57 <timesub+2517>
0x00000000016a6f4f <+2509>: mov rdi,rdx
0x00000000016a6f52 <+2512>: call 0x4e9bc0 <__asan_report_store4@plt>
0x00000000016a6f57 <+2517>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a6f5e <+2524>: mov DWORD PTR [rax+0x8],esi
0x00000000016a6f61 <+2527>: mov rcx,QWORD PTR [rbp-0xf8]
0x00000000016a6f68 <+2534>: movabs rdx,0x48d159e26af37c05
0x00000000016a6f72 <+2544>: mov rax,rcx
0x00000000016a6f75 <+2547>: imul rdx
0x00000000016a6f78 <+2550>: sar rdx,0xa
0x00000000016a6f7c <+2554>: mov rax,rcx
0x00000000016a6f7f <+2557>: sar rax,0x3f
0x00000000016a6f83 <+2561>: sub rdx,rax
0x00000000016a6f86 <+2564>: mov rax,rdx
0x00000000016a6f89 <+2567>: imul rax,rax,0xe10
0x00000000016a6f90 <+2574>: sub rcx,rax
0x00000000016a6f93 <+2577>: mov rax,rcx
0x00000000016a6f96 <+2580>: mov QWORD PTR [rbp-0xf8],rax
0x00000000016a6f9d <+2587>: mov rcx,QWORD PTR [rbp-0xf8]
0x00000000016a6fa4 <+2594>: movabs rdx,0x8888888888888889
0x00000000016a6fae <+2604>: mov rax,rcx
0x00000000016a6fb1 <+2607>: imul rdx
0x00000000016a6fb4 <+2610>: lea rax,[rdx+rcx*1]
0x00000000016a6fb8 <+2614>: sar rax,0x5
0x00000000016a6fbc <+2618>: mov rdx,rax
0x00000000016a6fbf <+2621>: mov rax,rcx
0x00000000016a6fc2 <+2624>: sar rax,0x3f
0x00000000016a6fc6 <+2628>: sub rdx,rax
0x00000000016a6fc9 <+2631>: mov rax,rdx
0x00000000016a6fcc <+2634>: mov edi,eax
0x00000000016a6fce <+2636>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a6fd5 <+2643>: add rax,0x4
0x00000000016a6fd9 <+2647>: mov rdx,rax
0x00000000016a6fdc <+2650>: shr rdx,0x3
0x00000000016a6fe0 <+2654>: add rdx,0x7fff8000
0x00000000016a6fe7 <+2661>: movzx edx,BYTE PTR [rdx]
0x00000000016a6fea <+2664>: test dl,dl
0x00000000016a6fec <+2666>: setne cl
0x00000000016a6fef <+2669>: mov rsi,rax
0x00000000016a6ff2 <+2672>: and esi,0x7
0x00000000016a6ff5 <+2675>: add esi,0x3
0x00000000016a6ff8 <+2678>: cmp sil,dl
0x00000000016a6ffb <+2681>: setge dl
0x00000000016a6ffe <+2684>: and edx,ecx
0x00000000016a7000 <+2686>: test dl,dl
0x00000000016a7002 <+2688>: je 0x16a700c <timesub+2698>
0x00000000016a7004 <+2690>: mov rdi,rax
0x00000000016a7007 <+2693>: call 0x4e9bc0 <__asan_report_store4@plt>
0x00000000016a700c <+2698>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a7013 <+2705>: mov DWORD PTR [rax+0x4],edi
0x00000000016a7016 <+2708>: mov rcx,QWORD PTR [rbp-0xf8]
0x00000000016a701d <+2715>: movabs rdx,0x8888888888888889
0x00000000016a7027 <+2725>: mov rax,rcx
0x00000000016a702a <+2728>: imul rdx
0x00000000016a702d <+2731>: lea rax,[rdx+rcx*1]
0x00000000016a7031 <+2735>: sar rax,0x5
0x00000000016a7035 <+2739>: mov rdx,rax
0x00000000016a7038 <+2742>: mov rax,rcx
0x00000000016a703b <+2745>: sar rax,0x3f
0x00000000016a703f <+2749>: sub rdx,rax
0x00000000016a7042 <+2752>: mov rax,rdx
0x00000000016a7045 <+2755>: shl rax,0x4
0x00000000016a7049 <+2759>: sub rax,rdx
0x00000000016a704c <+2762>: shl rax,0x2
0x00000000016a7050 <+2766>: sub rcx,rax
0x00000000016a7053 <+2769>: mov rdx,rcx
0x00000000016a7056 <+2772>: movsx eax,BYTE PTR [rbp-0x111]
0x00000000016a705d <+2779>: lea ecx,[rdx+rax*1]
0x00000000016a7060 <+2782>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a7067 <+2789>: mov rdx,rax
0x00000000016a706a <+2792>: mov rax,rdx
0x00000000016a706d <+2795>: shr rax,0x3
0x00000000016a7071 <+2799>: add rax,0x7fff8000
0x00000000016a7077 <+2805>: movzx eax,BYTE PTR [rax]
0x00000000016a707a <+2808>: test al,al
0x00000000016a707c <+2810>: setne sil
0x00000000016a7080 <+2814>: cmp al,0x3
0x00000000016a7082 <+2816>: setle al
0x00000000016a7085 <+2819>: and eax,esi
0x00000000016a7087 <+2821>: test al,al
0x00000000016a7089 <+2823>: je 0x16a7093 <timesub+2833>
0x00000000016a708b <+2825>: mov rdi,rdx
0x00000000016a708e <+2828>: call 0x4e9bc0 <__asan_report_store4@plt>
0x00000000016a7093 <+2833>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a709a <+2840>: mov DWORD PTR [rax],ecx
0x00000000016a709c <+2842>: mov eax,DWORD PTR [rbx-0x80]
0x00000000016a709f <+2845>: and eax,0x3
0x00000000016a70a2 <+2848>: test eax,eax
0x00000000016a70a4 <+2850>: jne 0x16a70f6 <timesub+2932>
0x00000000016a70a6 <+2852>: mov ecx,DWORD PTR [rbx-0x80]
0x00000000016a70a9 <+2855>: mov edx,0x51eb851f
0x00000000016a70ae <+2860>: mov eax,ecx
0x00000000016a70b0 <+2862>: imul edx
0x00000000016a70b2 <+2864>: sar edx,0x5
0x00000000016a70b5 <+2867>: mov eax,ecx
0x00000000016a70b7 <+2869>: sar eax,0x1f
0x00000000016a70ba <+2872>: sub edx,eax
0x00000000016a70bc <+2874>: mov eax,edx
0x00000000016a70be <+2876>: imul eax,eax,0x64
0x00000000016a70c1 <+2879>: sub ecx,eax
0x00000000016a70c3 <+2881>: mov eax,ecx
0x00000000016a70c5 <+2883>: test eax,eax
0x00000000016a70c7 <+2885>: jne 0x16a70ef <timesub+2925>
0x00000000016a70c9 <+2887>: mov ecx,DWORD PTR [rbx-0x80]
0x00000000016a70cc <+2890>: mov edx,0x51eb851f
0x00000000016a70d1 <+2895>: mov eax,ecx
0x00000000016a70d3 <+2897>: imul edx
0x00000000016a70d5 <+2899>: sar edx,0x7
0x00000000016a70d8 <+2902>: mov eax,ecx
0x00000000016a70da <+2904>: sar eax,0x1f
0x00000000016a70dd <+2907>: sub edx,eax
0x00000000016a70df <+2909>: mov eax,edx
0x00000000016a70e1 <+2911>: imul eax,eax,0x190
0x00000000016a70e7 <+2917>: sub ecx,eax
0x00000000016a70e9 <+2919>: mov eax,ecx
0x00000000016a70eb <+2921>: test eax,eax
0x00000000016a70ed <+2923>: jne 0x16a70f6 <timesub+2932>
0x00000000016a70ef <+2925>: mov eax,0x1
0x00000000016a70f4 <+2930>: jmp 0x16a70fb <timesub+2937>
0x00000000016a70f6 <+2932>: mov eax,0x0
0x00000000016a70fb <+2937>: movsxd rdx,eax
0x00000000016a70fe <+2940>: mov rax,rdx
0x00000000016a7101 <+2943>: add rax,rax
0x00000000016a7104 <+2946>: add rax,rdx
0x00000000016a7107 <+2949>: shl rax,0x4
0x00000000016a710b <+2953>: add rax,0x1d7cd60
0x00000000016a7111 <+2959>: mov QWORD PTR [rbp-0xd8],rax
0x00000000016a7118 <+2966>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a711f <+2973>: add rax,0x10
0x00000000016a7123 <+2977>: mov rdx,rax
0x00000000016a7126 <+2980>: mov rax,rdx
0x00000000016a7129 <+2983>: shr rax,0x3
0x00000000016a712d <+2987>: add rax,0x7fff8000
0x00000000016a7133 <+2993>: movzx eax,BYTE PTR [rax]
0x00000000016a7136 <+2996>: test al,al
0x00000000016a7138 <+2998>: setne cl
0x00000000016a713b <+3001>: cmp al,0x3
0x00000000016a713d <+3003>: setle al
0x00000000016a7140 <+3006>: and eax,ecx
0x00000000016a7142 <+3008>: test al,al
0x00000000016a7144 <+3010>: je 0x16a714e <timesub+3020>
0x00000000016a7146 <+3012>: mov rdi,rdx
0x00000000016a7149 <+3015>: call 0x4e9bc0 <__asan_report_store4@plt>
0x00000000016a714e <+3020>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a7155 <+3027>: mov DWORD PTR [rax+0x10],0x0
0x00000000016a715c <+3034>: jmp 0x16a720c <timesub+3210>
0x00000000016a7161 <+3039>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a7168 <+3046>: add rax,0x10
0x00000000016a716c <+3050>: mov rdx,rax
0x00000000016a716f <+3053>: mov rax,rdx
0x00000000016a7172 <+3056>: shr rax,0x3
0x00000000016a7176 <+3060>: add rax,0x7fff8000
0x00000000016a717c <+3066>: movzx eax,BYTE PTR [rax]
0x00000000016a717f <+3069>: test al,al
0x00000000016a7181 <+3071>: setne cl
0x00000000016a7184 <+3074>: cmp al,0x3
0x00000000016a7186 <+3076>: setle al
0x00000000016a7189 <+3079>: and eax,ecx
0x00000000016a718b <+3081>: test al,al
0x00000000016a718d <+3083>: je 0x16a7197 <timesub+3093>
0x00000000016a718f <+3085>: mov rdi,rdx
0x00000000016a7192 <+3088>: call 0x4e9b10 <__asan_report_load4@plt>
0x00000000016a7197 <+3093>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a719e <+3100>: mov eax,DWORD PTR [rax+0x10]
0x00000000016a71a1 <+3103>: cdqe
0x00000000016a71a3 <+3105>: lea rdx,[rax*4+0x0]
0x00000000016a71ab <+3113>: mov rax,QWORD PTR [rbp-0xd8]
0x00000000016a71b2 <+3120>: lea rcx,[rdx+rax*1]
0x00000000016a71b6 <+3124>: mov rax,rcx
0x00000000016a71b9 <+3127>: mov rdx,rax
0x00000000016a71bc <+3130>: shr rdx,0x3
0x00000000016a71c0 <+3134>: add rdx,0x7fff8000
0x00000000016a71c7 <+3141>: movzx edx,BYTE PTR [rdx]
0x00000000016a71ca <+3144>: test dl,dl
0x00000000016a71cc <+3146>: setne sil
0x00000000016a71d0 <+3150>: mov rdi,rax
0x00000000016a71d3 <+3153>: and edi,0x7
0x00000000016a71d6 <+3156>: add edi,0x3
0x00000000016a71d9 <+3159>: cmp dil,dl
0x00000000016a71dc <+3162>: setge dl
0x00000000016a71df <+3165>: and edx,esi
0x00000000016a71e1 <+3167>: test dl,dl
0x00000000016a71e3 <+3169>: je 0x16a71ed <timesub+3179>
0x00000000016a71e5 <+3171>: mov rdi,rax
0x00000000016a71e8 <+3174>: call 0x4e9b10 <__asan_report_load4@plt>
0x00000000016a71ed <+3179>: mov eax,DWORD PTR [rcx]
0x00000000016a71ef <+3181>: sub DWORD PTR [rbp-0x110],eax
0x00000000016a71f5 <+3187>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a71fc <+3194>: mov eax,DWORD PTR [rax+0x10]
0x00000000016a71ff <+3197>: lea edx,[rax+0x1]
0x00000000016a7202 <+3200>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a7209 <+3207>: mov DWORD PTR [rax+0x10],edx
0x00000000016a720c <+3210>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a7213 <+3217>: add rax,0x10
0x00000000016a7217 <+3221>: mov rdx,rax
0x00000000016a721a <+3224>: mov rax,rdx
0x00000000016a721d <+3227>: shr rax,0x3
0x00000000016a7221 <+3231>: add rax,0x7fff8000
0x00000000016a7227 <+3237>: movzx eax,BYTE PTR [rax]
0x00000000016a722a <+3240>: test al,al
0x00000000016a722c <+3242>: setne cl
0x00000000016a722f <+3245>: cmp al,0x3
0x00000000016a7231 <+3247>: setle al
0x00000000016a7234 <+3250>: and eax,ecx
0x00000000016a7236 <+3252>: test al,al
0x00000000016a7238 <+3254>: je 0x16a7242 <timesub+3264>
0x00000000016a723a <+3256>: mov rdi,rdx
0x00000000016a723d <+3259>: call 0x4e9b10 <__asan_report_load4@plt>
0x00000000016a7242 <+3264>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a7249 <+3271>: mov eax,DWORD PTR [rax+0x10]
0x00000000016a724c <+3274>: cdqe
0x00000000016a724e <+3276>: lea rdx,[rax*4+0x0]
0x00000000016a7256 <+3284>: mov rax,QWORD PTR [rbp-0xd8]
0x00000000016a725d <+3291>: lea rcx,[rdx+rax*1]
0x00000000016a7261 <+3295>: mov rax,rcx
0x00000000016a7264 <+3298>: mov rdx,rax
0x00000000016a7267 <+3301>: shr rdx,0x3
0x00000000016a726b <+3305>: add rdx,0x7fff8000
0x00000000016a7272 <+3312>: movzx edx,BYTE PTR [rdx]
0x00000000016a7275 <+3315>: test dl,dl
0x00000000016a7277 <+3317>: setne sil
0x00000000016a727b <+3321>: mov rdi,rax
0x00000000016a727e <+3324>: and edi,0x7
0x00000000016a7281 <+3327>: add edi,0x3
0x00000000016a7284 <+3330>: cmp dil,dl
0x00000000016a7287 <+3333>: setge dl
0x00000000016a728a <+3336>: and edx,esi
0x00000000016a728c <+3338>: test dl,dl
0x00000000016a728e <+3340>: je 0x16a7298 <timesub+3350>
0x00000000016a7290 <+3342>: mov rdi,rax
0x00000000016a7293 <+3345>: call 0x4e9b10 <__asan_report_load4@plt>
0x00000000016a7298 <+3350>: mov eax,DWORD PTR [rcx]
0x00000000016a729a <+3352>: cmp eax,DWORD PTR [rbp-0x110]
0x00000000016a72a0 <+3358>: jle 0x16a7161 <timesub+3039>
0x00000000016a72a6 <+3364>: mov eax,DWORD PTR [rbp-0x110]
0x00000000016a72ac <+3370>: lea ecx,[rax+0x1]
0x00000000016a72af <+3373>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a72b6 <+3380>: add rax,0xc
0x00000000016a72ba <+3384>: mov rdx,rax
0x00000000016a72bd <+3387>: shr rdx,0x3
0x00000000016a72c1 <+3391>: add rdx,0x7fff8000
0x00000000016a72c8 <+3398>: movzx edx,BYTE PTR [rdx]
0x00000000016a72cb <+3401>: test dl,dl
0x00000000016a72cd <+3403>: setne sil
0x00000000016a72d1 <+3407>: mov rdi,rax
0x00000000016a72d4 <+3410>: and edi,0x7
0x00000000016a72d7 <+3413>: add edi,0x3
0x00000000016a72da <+3416>: cmp dil,dl
0x00000000016a72dd <+3419>: setge dl
0x00000000016a72e0 <+3422>: and edx,esi
0x00000000016a72e2 <+3424>: test dl,dl
0x00000000016a72e4 <+3426>: je 0x16a72ee <timesub+3436>
0x00000000016a72e6 <+3428>: mov rdi,rax
0x00000000016a72e9 <+3431>: call 0x4e9bc0 <__asan_report_store4@plt>
0x00000000016a72ee <+3436>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a72f5 <+3443>: mov DWORD PTR [rax+0xc],ecx
0x00000000016a72f8 <+3446>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a72ff <+3453>: add rax,0x20
0x00000000016a7303 <+3457>: mov rdx,rax
0x00000000016a7306 <+3460>: mov rax,rdx
0x00000000016a7309 <+3463>: shr rax,0x3
0x00000000016a730d <+3467>: add rax,0x7fff8000
0x00000000016a7313 <+3473>: movzx eax,BYTE PTR [rax]
0x00000000016a7316 <+3476>: test al,al
0x00000000016a7318 <+3478>: setne cl
0x00000000016a731b <+3481>: cmp al,0x3
0x00000000016a731d <+3483>: setle al
0x00000000016a7320 <+3486>: and eax,ecx
0x00000000016a7322 <+3488>: test al,al
0x00000000016a7324 <+3490>: je 0x16a732e <timesub+3500>
0x00000000016a7326 <+3492>: mov rdi,rdx
0x00000000016a7329 <+3495>: call 0x4e9bc0 <__asan_report_store4@plt>
0x00000000016a732e <+3500>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a7335 <+3507>: mov DWORD PTR [rax+0x20],0x0
0x00000000016a733c <+3514>: mov eax,DWORD PTR [rbp-0x12c]
0x00000000016a7342 <+3520>: movsxd rdx,eax
0x00000000016a7345 <+3523>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a734c <+3530>: add rax,0x28
0x00000000016a7350 <+3534>: mov rcx,rax
0x00000000016a7353 <+3537>: shr rcx,0x3
0x00000000016a7357 <+3541>: add rcx,0x7fff8000
0x00000000016a735e <+3548>: movzx ecx,BYTE PTR [rcx]
0x00000000016a7361 <+3551>: test cl,cl
0x00000000016a7363 <+3553>: je 0x16a736d <timesub+3563>
0x00000000016a7365 <+3555>: mov rdi,rax
0x00000000016a7368 <+3558>: call 0x4ea310 <__asan_report_store8@plt>
0x00000000016a736d <+3563>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a7374 <+3570>: mov QWORD PTR [rax+0x28],rdx
0x00000000016a7378 <+3574>: mov rax,QWORD PTR [rbp-0x140]
0x00000000016a737f <+3581>: jmp 0x16a73d5 <timesub+3667>
0x00000000016a7381 <+3583>: nop
0x00000000016a7382 <+3584>: jmp 0x16a738b <timesub+3593>
0x00000000016a7384 <+3586>: nop
0x00000000016a7385 <+3587>: jmp 0x16a738b <timesub+3593>
0x00000000016a7387 <+3589>: nop
0x00000000016a7388 <+3590>: jmp 0x16a738b <timesub+3593>
0x00000000016a738a <+3592>: nop
0x00000000016a738b <+3593>: call 0x4ecda0 <__errno_location@plt>
0x00000000016a7390 <+3598>: mov rcx,rax
0x00000000016a7393 <+3601>: mov rax,rcx
0x00000000016a7396 <+3604>: mov rdx,rax
0x00000000016a7399 <+3607>: shr rdx,0x3
0x00000000016a739d <+3611>: add rdx,0x7fff8000
0x00000000016a73a4 <+3618>: movzx edx,BYTE PTR [rdx]
0x00000000016a73a7 <+3621>: test dl,dl
0x00000000016a73a9 <+3623>: setne sil
0x00000000016a73ad <+3627>: mov rdi,rax
0x00000000016a73b0 <+3630>: and edi,0x7
0x00000000016a73b3 <+3633>: add edi,0x3
0x00000000016a73b6 <+3636>: cmp dil,dl
0x00000000016a73b9 <+3639>: setge dl
0x00000000016a73bc <+3642>: and edx,esi
0x00000000016a73be <+3644>: test dl,dl
0x00000000016a73c0 <+3646>: je 0x16a73ca <timesub+3656>
0x00000000016a73c2 <+3648>: mov rdi,rax
0x00000000016a73c5 <+3651>: call 0x4e9bc0 <__asan_report_store4@plt>
0x00000000016a73ca <+3656>: mov DWORD PTR [rcx],0x4b
0x00000000016a73d0 <+3662>: mov eax,0x0
0x00000000016a73d5 <+3667>: cmp r15,r13
0x00000000016a73d8 <+3670>: je 0x16a7414 <timesub+3730>
0x00000000016a73da <+3672>: mov QWORD PTR [r13+0x0],0x45e0360e
0x00000000016a73e2 <+3680>: movabs rbx,0xf5f5f5f5f5f5f5f5
0x00000000016a73ec <+3690>: mov QWORD PTR [r12+0x7fff8000],rbx
0x00000000016a73f4 <+3698>: movabs rbx,0xf5f5f5f5f5f5f5f5
0x00000000016a73fe <+3708>: mov QWORD PTR [r12+0x7fff8008],rbx
0x00000000016a7406 <+3716>: mov DWORD PTR [r12+0x7fff8010],0xf5f5f5f5
0x00000000016a7412 <+3728>: jmp 0x16a7438 <timesub+3766>
0x00000000016a7414 <+3730>: mov QWORD PTR [r12+0x7fff8000],0x0
0x00000000016a7420 <+3742>: mov QWORD PTR [r12+0x7fff8008],0x0
0x00000000016a742c <+3754>: mov DWORD PTR [r12+0x7fff8010],0x0
0x00000000016a7438 <+3766>: add rsp,0x118
0x00000000016a743f <+3773>: pop rbx
0x00000000016a7440 <+3774>: pop r12
0x00000000016a7442 <+3776>: pop r13
0x00000000016a7444 <+3778>: pop r14
0x00000000016a7446 <+3780>: pop r15
0x00000000016a7448 <+3782>: pop rbp
0x00000000016a7449 <+3783>: ret
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.