commit 5b6db971338050053c76a019f77061eb75100db8 Author: CGH0S7 <776459475@qq.com> Date: Thu Mar 6 19:56:12 2025 +0800 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..e2014d2 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +NUDT CSAPP 2025 LABS diff --git a/bomblab/Decompilation.txt b/bomblab/Decompilation.txt new file mode 100644 index 0000000..bd845ab --- /dev/null +++ b/bomblab/Decompilation.txt @@ -0,0 +1,139 @@ + +bomb_linux: 文件格式 elf64-x86-64 + +SYMBOL TABLE: +0000000000000000 l df *ABS* 0000000000000000 crt1.o +0000000000400354 l O .note.ABI-tag 0000000000000020 __abi_tag +0000000000000000 l df *ABS* 0000000000000000 crtstuff.c +0000000000401230 l F .text 0000000000000000 deregister_tm_clones +0000000000401260 l F .text 0000000000000000 register_tm_clones +00000000004012a0 l F .text 0000000000000000 __do_global_dtors_aux +0000000000408808 l O .bss 0000000000000001 completed.0 +0000000000408578 l O .fini_array 0000000000000000 __do_global_dtors_aux_fini_array_entry +00000000004012d0 l F .text 0000000000000000 frame_dummy +0000000000408570 l O .init_array 0000000000000000 __frame_dummy_init_array_entry +0000000000000000 l df *ABS* 0000000000000000 main.c +0000000000000000 l df *ABS* 0000000000000000 phase_impossible.c +0000000000000000 l df *ABS* 0000000000000000 phase1.c +0000000000000000 l df *ABS* 0000000000000000 phase2.c +0000000000000000 l df *ABS* 0000000000000000 phase3.c +0000000000000000 l df *ABS* 0000000000000000 phase4.c +0000000000000000 l df *ABS* 0000000000000000 support.c +0000000000000000 l df *ABS* 0000000000000000 crtstuff.c +000000000040756c l O .eh_frame 0000000000000000 __FRAME_END__ +0000000000000000 l df *ABS* 0000000000000000 +0000000000408580 l O .dynamic 0000000000000000 _DYNAMIC +0000000000406954 l .eh_frame_hdr 0000000000000000 __GNU_EH_FRAME_HDR +0000000000408760 l O .got.plt 0000000000000000 _GLOBAL_OFFSET_TABLE_ +0000000000405a79 g F .text 000000000000005e skip +0000000000000000 F *UND* 0000000000000000 getenv@GLIBC_2.2.5 +0000000000401a35 g F .text 000000000000000c goto_buf_2 +0000000000000000 F *UND* 0000000000000000 __libc_start_main@GLIBC_2.34 +0000000000401a23 g F .text 0000000000000009 goto_buf_0 +00000000004087e8 w .data 0000000000000000 data_start +0000000000408840 g O .bss 0000000000005000 input_strings +00000000004023a5 g F .text 00000000000000ce phase_2_9 +000000000040383f g F .text 00000000000001b6 phase_3_10 +0000000000402214 g F .text 00000000000000ce phase_2_7 +0000000000401ef6 g F .text 00000000000000c5 phase_2_3 +000000000040207b g F .text 00000000000000cc phase_2_5 +0000000000403ddc g F .text 00000000000003ed phase_3_12 +0000000000000000 F *UND* 0000000000000000 puts@GLIBC_2.2.5 +0000000000401d82 g F .text 00000000000000a4 phase_2_1 +0000000000405216 g F .text 00000000000000d3 phase_4_21 +00000000004053bc g F .text 00000000000000d3 phase_4_23 +0000000000408800 g O .bss 0000000000000008 stdin@GLIBC_2.2.5 +0000000000000000 F *UND* 0000000000000000 clock_gettime@GLIBC_2.17 +00000000004087fc g .data 0000000000000000 _edata +0000000000405c28 g F .fini 0000000000000000 .hidden _fini +0000000000000000 F *UND* 0000000000000000 strlen@GLIBC_2.2.5 +0000000000404e9b g F .text 00000000000000d3 phase_4_12 +0000000000404cf5 g F .text 00000000000000d3 phase_4_10 +0000000000405041 g F .text 00000000000000d3 phase_4_14 +000000000040d840 g O .bss 0000000000000004 num_input_strings +0000000000000000 F *UND* 0000000000000000 printf@GLIBC_2.2.5 +0000000000405a1e g F .text 000000000000005b blank_line +0000000000408818 g O .bss 0000000000000008 rand1_l +0000000000408810 g O .bss 0000000000000008 rand1_h +0000000000402893 g F .text 0000000000000128 phase_3 +0000000000401b53 g F .text 000000000000003b phase_1 +0000000000000000 F *UND* 0000000000000000 memset@GLIBC_2.2.5 +000000000040478a g F .text 000000000000010b phase_4_00 +0000000000404bb6 g F .text 000000000000010b phase_4_04 +0000000000403325 g F .text 00000000000001b0 phase_3_7 +0000000000403001 g F .text 0000000000000183 phase_3_5 +00000000004049a0 g F .text 000000000000010b phase_4_02 +000000000040368b g F .text 00000000000001b4 phase_3_9 +0000000000401725 g F .text 0000000000000052 GetTickCount +0000000000402d75 g F .text 000000000000014e phase_3_3 +0000000000402683 g F .text 00000000000000ae phase_2_13 +00000000004027df g F .text 00000000000000b4 phase_2_15 +0000000000402521 g F .text 00000000000000ae phase_2_11 +0000000000000000 F *UND* 0000000000000000 fgets@GLIBC_2.2.5 +0000000000405bf6 g F .text 0000000000000030 explode_bomb +0000000000402aee g F .text 0000000000000139 phase_3_1 +00000000004087e8 g .data 0000000000000000 __data_start +0000000000000000 F *UND* 0000000000000000 strcmp@GLIBC_2.2.5 +0000000000405592 g F .text 00000000000000d3 phase_4_30 +00000000004058dc g F .text 00000000000000d3 phase_4_34 +0000000000405736 g F .text 00000000000000d3 phase_4_32 +0000000000000000 w *UND* 0000000000000000 __gmon_start__ +0000000000405114 g F .text 000000000000002f func4_2 +0000000000404749 g F .text 0000000000000041 func4_0 +00000000004087f0 g O .data 0000000000000000 .hidden __dso_handle +0000000000406000 g O .rodata 0000000000000004 _IO_stdin_used +0000000000401a2c g F .text 0000000000000009 goto_buf_1 +0000000000408820 g O .bss 0000000000000008 rand_div +00000000004087f8 g O .data 0000000000000004 result +0000000000000000 F *UND* 0000000000000000 __isoc99_sscanf@GLIBC_2.7 +00000000004022e2 g F .text 00000000000000c3 phase_2_8 +0000000000402147 g F .text 00000000000000cd phase_2_6 +00000000004039f5 g F .text 00000000000003e7 phase_3_11 +0000000000401fbb g F .text 00000000000000c0 phase_2_4 +00000000004041c9 g F .text 00000000000003f2 phase_3_13 +000000000040d848 g .bss 0000000000000000 _end +0000000000401220 g F .text 0000000000000005 .hidden _dl_relocate_static_pie +0000000000401e26 g F .text 00000000000000d0 phase_2_2 +00000000004011f0 g F .text 0000000000000026 _start +00000000004052e9 g F .text 00000000000000d3 phase_4_22 +0000000000401cd8 g F .text 00000000000000aa phase_2_0 +0000000000405143 g F .text 00000000000000d3 phase_4_20 +000000000040548f g F .text 00000000000000d3 phase_4_24 +0000000000408828 g O .bss 0000000000000008 infile +00000000004087fc g .bss 0000000000000000 __bss_start +0000000000401a41 g F .text 000000000000004a check_buf_valid +00000000004012d6 g F .text 00000000000003d7 main +0000000000401aad g F .text 00000000000000a6 GenerateRandomString +0000000000405ad7 g F .text 000000000000011f read_line +0000000000404f6e g F .text 00000000000000d3 phase_4_13 +0000000000404dc8 g F .text 00000000000000d3 phase_4_11 +00000000004045bb g F .text 000000000000018e phase_4 +0000000000000000 F *UND* 0000000000000000 fopen@GLIBC_2.2.5 +0000000000401b8e g F .text 000000000000014a phase_2 +0000000000000000 F *UND* 0000000000000000 atoi@GLIBC_2.2.5 +0000000000401777 g F .text 000000000000019c phase_impossible +0000000000000000 F *UND* 0000000000000000 sprintf@GLIBC_2.2.5 +0000000000000000 F *UND* 0000000000000000 exit@GLIBC_2.2.5 +00000000004034d5 g F .text 00000000000001b6 phase_3_8 +0000000000404aab g F .text 000000000000010b phase_4_03 +0000000000408800 g O .data 0000000000000000 .hidden __TMC_END__ +0000000000404895 g F .text 000000000000010b phase_4_01 +0000000000403184 g F .text 00000000000001a1 phase_3_6 +0000000000402c27 g F .text 000000000000014e phase_3_2 +0000000000402731 g F .text 00000000000000ae phase_2_14 +0000000000402ec3 g F .text 000000000000013e phase_3_4 +0000000000402473 g F .text 00000000000000ae phase_2_10 +00000000004025cf g F .text 00000000000000b4 phase_2_12 +00000000004029bb g F .text 0000000000000133 phase_3_0 +00000000004016ad g F .text 0000000000000078 GenerateRandomNumber +0000000000401000 g F .init 0000000000000000 .hidden _init +0000000000401a8b g F .text 0000000000000022 phase_secret +00000000004059af g F .text 000000000000006f read_six_numbers +0000000000405809 g F .text 00000000000000d3 phase_4_33 +0000000000405665 g F .text 00000000000000d1 phase_4_31 +0000000000404cc1 g F .text 0000000000000034 func4_1 +0000000000401913 g F .text 0000000000000110 tohex +0000000000405562 g F .text 0000000000000030 func4_3 +0000000000000000 F *UND* 0000000000000000 __ctype_b_loc@GLIBC_2.3 + + diff --git a/bomblab/IDA Pro 快速指南.docx b/bomblab/IDA Pro 快速指南.docx new file mode 100644 index 0000000..3090490 Binary files /dev/null and b/bomblab/IDA Pro 快速指南.docx differ diff --git a/bomblab/Readme.txt b/bomblab/Readme.txt new file mode 100644 index 0000000..23b53a3 --- /dev/null +++ b/bomblab/Readme.txt @@ -0,0 +1,27 @@ +请使用IDA Pro工具,反汇编bomb.exe +并调试该程序。 + +bomb.exe将要求你输入多个密码,只有输入正确的密码,才能继续执行程序,否则将“爆炸”。 + +利用IDA Pro的反汇编、调试功能,你应该可以破解该炸弹! + +bomb.exe需要一个参数,这个参数是你学号的后6位,例如092224 + +bomb.exe 092224 +超级二进制炸弹2024版,欢迎你! +你需要不断依据提示,输入信息,以便解除二进制炸弹,一旦出错,哇哈哈.... +以前尝试正确的密码,可以写入到bomb.key文件中,一个密码一行 +请输入第1级的密码:dfaadfddfdf +牛刀小试~你已经通过了第1级考验! +请输入第2级的密码:1 3 4 5 7 8 10 +不错不错~你已经通过了第2级考验! +请输入第3级的密码:1 3 4 5 7 8 10 +今夜没加班? 你已经通过了第3级考验! +请输入第4级的密码:1 3 4 5 7 8 10 +完美了~你已经通过了第4级考验! +二进制炸弹之不可能任务,你的选择是继续前行(Y),或者放弃(N) +友情提示:后面的代码,涉及到反调试、动态生成指令等,所以你要有思想准备...... +不可能任务,请输入突防指令: +12345 +你已经通过了第5级考验,完成了不可能完成任务(终极考验)! +不可能的...不可能的...指令和数据的世界已经混乱...SOS... diff --git a/bomblab/X86汇编指令速查.xlsx b/bomblab/X86汇编指令速查.xlsx new file mode 100644 index 0000000..ed099c6 Binary files /dev/null and b/bomblab/X86汇编指令速查.xlsx differ diff --git a/bomblab/bomb.asm b/bomblab/bomb.asm new file mode 100644 index 0000000..3841373 --- /dev/null +++ b/bomblab/bomb.asm @@ -0,0 +1,5240 @@ + +bomb_linux: 文件格式 elf64-x86-64 + + +Disassembly of section .init: + +0000000000401000 <_init>: + 401000: f3 0f 1e fa endbr64 + 401004: 48 83 ec 08 sub $0x8,%rsp + 401008: 48 8b 05 49 77 00 00 mov 0x7749(%rip),%rax # 408758 <__gmon_start__@Base> + 40100f: 48 85 c0 test %rax,%rax + 401012: 74 02 je 401016 <_init+0x16> + 401014: ff d0 call *%rax + 401016: 48 83 c4 08 add $0x8,%rsp + 40101a: c3 ret + +Disassembly of section .plt: + +0000000000401020 <.plt>: + 401020: ff 35 42 77 00 00 push 0x7742(%rip) # 408768 <_GLOBAL_OFFSET_TABLE_+0x8> + 401026: f2 ff 25 43 77 00 00 bnd jmp *0x7743(%rip) # 408770 <_GLOBAL_OFFSET_TABLE_+0x10> + 40102d: 0f 1f 00 nopl (%rax) + 401030: f3 0f 1e fa endbr64 + 401034: 68 00 00 00 00 push $0x0 + 401039: f2 e9 e1 ff ff ff bnd jmp 401020 <_init+0x20> + 40103f: 90 nop + 401040: f3 0f 1e fa endbr64 + 401044: 68 01 00 00 00 push $0x1 + 401049: f2 e9 d1 ff ff ff bnd jmp 401020 <_init+0x20> + 40104f: 90 nop + 401050: f3 0f 1e fa endbr64 + 401054: 68 02 00 00 00 push $0x2 + 401059: f2 e9 c1 ff ff ff bnd jmp 401020 <_init+0x20> + 40105f: 90 nop + 401060: f3 0f 1e fa endbr64 + 401064: 68 03 00 00 00 push $0x3 + 401069: f2 e9 b1 ff ff ff bnd jmp 401020 <_init+0x20> + 40106f: 90 nop + 401070: f3 0f 1e fa endbr64 + 401074: 68 04 00 00 00 push $0x4 + 401079: f2 e9 a1 ff ff ff bnd jmp 401020 <_init+0x20> + 40107f: 90 nop + 401080: f3 0f 1e fa endbr64 + 401084: 68 05 00 00 00 push $0x5 + 401089: f2 e9 91 ff ff ff bnd jmp 401020 <_init+0x20> + 40108f: 90 nop + 401090: f3 0f 1e fa endbr64 + 401094: 68 06 00 00 00 push $0x6 + 401099: f2 e9 81 ff ff ff bnd jmp 401020 <_init+0x20> + 40109f: 90 nop + 4010a0: f3 0f 1e fa endbr64 + 4010a4: 68 07 00 00 00 push $0x7 + 4010a9: f2 e9 71 ff ff ff bnd jmp 401020 <_init+0x20> + 4010af: 90 nop + 4010b0: f3 0f 1e fa endbr64 + 4010b4: 68 08 00 00 00 push $0x8 + 4010b9: f2 e9 61 ff ff ff bnd jmp 401020 <_init+0x20> + 4010bf: 90 nop + 4010c0: f3 0f 1e fa endbr64 + 4010c4: 68 09 00 00 00 push $0x9 + 4010c9: f2 e9 51 ff ff ff bnd jmp 401020 <_init+0x20> + 4010cf: 90 nop + 4010d0: f3 0f 1e fa endbr64 + 4010d4: 68 0a 00 00 00 push $0xa + 4010d9: f2 e9 41 ff ff ff bnd jmp 401020 <_init+0x20> + 4010df: 90 nop + 4010e0: f3 0f 1e fa endbr64 + 4010e4: 68 0b 00 00 00 push $0xb + 4010e9: f2 e9 31 ff ff ff bnd jmp 401020 <_init+0x20> + 4010ef: 90 nop + 4010f0: f3 0f 1e fa endbr64 + 4010f4: 68 0c 00 00 00 push $0xc + 4010f9: f2 e9 21 ff ff ff bnd jmp 401020 <_init+0x20> + 4010ff: 90 nop + 401100: f3 0f 1e fa endbr64 + 401104: 68 0d 00 00 00 push $0xd + 401109: f2 e9 11 ff ff ff bnd jmp 401020 <_init+0x20> + 40110f: 90 nop + +Disassembly of section .plt.sec: + +0000000000401110 : + 401110: f3 0f 1e fa endbr64 + 401114: f2 ff 25 5d 76 00 00 bnd jmp *0x765d(%rip) # 408778 + 40111b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +0000000000401120 : + 401120: f3 0f 1e fa endbr64 + 401124: f2 ff 25 55 76 00 00 bnd jmp *0x7655(%rip) # 408780 + 40112b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +0000000000401130 : + 401130: f3 0f 1e fa endbr64 + 401134: f2 ff 25 4d 76 00 00 bnd jmp *0x764d(%rip) # 408788 + 40113b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +0000000000401140 : + 401140: f3 0f 1e fa endbr64 + 401144: f2 ff 25 45 76 00 00 bnd jmp *0x7645(%rip) # 408790 + 40114b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +0000000000401150 : + 401150: f3 0f 1e fa endbr64 + 401154: f2 ff 25 3d 76 00 00 bnd jmp *0x763d(%rip) # 408798 + 40115b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +0000000000401160 : + 401160: f3 0f 1e fa endbr64 + 401164: f2 ff 25 35 76 00 00 bnd jmp *0x7635(%rip) # 4087a0 + 40116b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +0000000000401170 : + 401170: f3 0f 1e fa endbr64 + 401174: f2 ff 25 2d 76 00 00 bnd jmp *0x762d(%rip) # 4087a8 + 40117b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +0000000000401180 : + 401180: f3 0f 1e fa endbr64 + 401184: f2 ff 25 25 76 00 00 bnd jmp *0x7625(%rip) # 4087b0 + 40118b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +0000000000401190 <__isoc99_sscanf@plt>: + 401190: f3 0f 1e fa endbr64 + 401194: f2 ff 25 1d 76 00 00 bnd jmp *0x761d(%rip) # 4087b8 <__isoc99_sscanf@GLIBC_2.7> + 40119b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +00000000004011a0 : + 4011a0: f3 0f 1e fa endbr64 + 4011a4: f2 ff 25 15 76 00 00 bnd jmp *0x7615(%rip) # 4087c0 + 4011ab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +00000000004011b0 : + 4011b0: f3 0f 1e fa endbr64 + 4011b4: f2 ff 25 0d 76 00 00 bnd jmp *0x760d(%rip) # 4087c8 + 4011bb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +00000000004011c0 : + 4011c0: f3 0f 1e fa endbr64 + 4011c4: f2 ff 25 05 76 00 00 bnd jmp *0x7605(%rip) # 4087d0 + 4011cb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +00000000004011d0 : + 4011d0: f3 0f 1e fa endbr64 + 4011d4: f2 ff 25 fd 75 00 00 bnd jmp *0x75fd(%rip) # 4087d8 + 4011db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +00000000004011e0 <__ctype_b_loc@plt>: + 4011e0: f3 0f 1e fa endbr64 + 4011e4: f2 ff 25 f5 75 00 00 bnd jmp *0x75f5(%rip) # 4087e0 <__ctype_b_loc@GLIBC_2.3> + 4011eb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) + +Disassembly of section .text: + +00000000004011f0 <_start>: + 4011f0: f3 0f 1e fa endbr64 + 4011f4: 31 ed xor %ebp,%ebp + 4011f6: 49 89 d1 mov %rdx,%r9 + 4011f9: 5e pop %rsi + 4011fa: 48 89 e2 mov %rsp,%rdx + 4011fd: 48 83 e4 f0 and $0xfffffffffffffff0,%rsp + 401201: 50 push %rax + 401202: 54 push %rsp + 401203: 45 31 c0 xor %r8d,%r8d + 401206: 31 c9 xor %ecx,%ecx + 401208: 48 c7 c7 d6 12 40 00 mov $0x4012d6,%rdi + 40120f: ff 15 3b 75 00 00 call *0x753b(%rip) # 408750 <__libc_start_main@GLIBC_2.34> + 401215: f4 hlt + 401216: 66 2e 0f 1f 84 00 00 cs nopw 0x0(%rax,%rax,1) + 40121d: 00 00 00 + +0000000000401220 <_dl_relocate_static_pie>: + 401220: f3 0f 1e fa endbr64 + 401224: c3 ret + 401225: 66 2e 0f 1f 84 00 00 cs nopw 0x0(%rax,%rax,1) + 40122c: 00 00 00 + 40122f: 90 nop + +0000000000401230 : + 401230: b8 00 88 40 00 mov $0x408800,%eax + 401235: 48 3d 00 88 40 00 cmp $0x408800,%rax + 40123b: 74 13 je 401250 + 40123d: b8 00 00 00 00 mov $0x0,%eax + 401242: 48 85 c0 test %rax,%rax + 401245: 74 09 je 401250 + 401247: bf 00 88 40 00 mov $0x408800,%edi + 40124c: ff e0 jmp *%rax + 40124e: 66 90 xchg %ax,%ax + 401250: c3 ret + 401251: 66 66 2e 0f 1f 84 00 data16 cs nopw 0x0(%rax,%rax,1) + 401258: 00 00 00 00 + 40125c: 0f 1f 40 00 nopl 0x0(%rax) + +0000000000401260 : + 401260: be 00 88 40 00 mov $0x408800,%esi + 401265: 48 81 ee 00 88 40 00 sub $0x408800,%rsi + 40126c: 48 89 f0 mov %rsi,%rax + 40126f: 48 c1 ee 3f shr $0x3f,%rsi + 401273: 48 c1 f8 03 sar $0x3,%rax + 401277: 48 01 c6 add %rax,%rsi + 40127a: 48 d1 fe sar $1,%rsi + 40127d: 74 11 je 401290 + 40127f: b8 00 00 00 00 mov $0x0,%eax + 401284: 48 85 c0 test %rax,%rax + 401287: 74 07 je 401290 + 401289: bf 00 88 40 00 mov $0x408800,%edi + 40128e: ff e0 jmp *%rax + 401290: c3 ret + 401291: 66 66 2e 0f 1f 84 00 data16 cs nopw 0x0(%rax,%rax,1) + 401298: 00 00 00 00 + 40129c: 0f 1f 40 00 nopl 0x0(%rax) + +00000000004012a0 <__do_global_dtors_aux>: + 4012a0: f3 0f 1e fa endbr64 + 4012a4: 80 3d 5d 75 00 00 00 cmpb $0x0,0x755d(%rip) # 408808 + 4012ab: 75 13 jne 4012c0 <__do_global_dtors_aux+0x20> + 4012ad: 55 push %rbp + 4012ae: 48 89 e5 mov %rsp,%rbp + 4012b1: e8 7a ff ff ff call 401230 + 4012b6: c6 05 4b 75 00 00 01 movb $0x1,0x754b(%rip) # 408808 + 4012bd: 5d pop %rbp + 4012be: c3 ret + 4012bf: 90 nop + 4012c0: c3 ret + 4012c1: 66 66 2e 0f 1f 84 00 data16 cs nopw 0x0(%rax,%rax,1) + 4012c8: 00 00 00 00 + 4012cc: 0f 1f 40 00 nopl 0x0(%rax) + +00000000004012d0 : + 4012d0: f3 0f 1e fa endbr64 + 4012d4: eb 8a jmp 401260 + +00000000004012d6
: + 4012d6: f3 0f 1e fa endbr64 + 4012da: 55 push %rbp + 4012db: 48 89 e5 mov %rsp,%rbp + 4012de: 48 81 ec 30 01 00 00 sub $0x130,%rsp + 4012e5: 89 bd dc fe ff ff mov %edi,-0x124(%rbp) + 4012eb: 48 89 b5 d0 fe ff ff mov %rsi,-0x130(%rbp) + 4012f2: 48 8d 05 0f 4d 00 00 lea 0x4d0f(%rip),%rax # 406008 <_IO_stdin_used+0x8> + 4012f9: 48 89 c7 mov %rax,%rdi + 4012fc: e8 1f fe ff ff call 401120 + 401301: 48 8d 05 2d 4d 00 00 lea 0x4d2d(%rip),%rax # 406035 <_IO_stdin_used+0x35> + 401308: 48 89 c7 mov %rax,%rdi + 40130b: e8 10 fe ff ff call 401120 + 401310: 83 bd dc fe ff ff 01 cmpl $0x1,-0x124(%rbp) + 401317: 75 49 jne 401362 + 401319: 48 8b 85 d0 fe ff ff mov -0x130(%rbp),%rax + 401320: 48 8b 00 mov (%rax),%rax + 401323: 48 89 c6 mov %rax,%rsi + 401326: 48 8d 05 2b 4d 00 00 lea 0x4d2b(%rip),%rax # 406058 <_IO_stdin_used+0x58> + 40132d: 48 89 c7 mov %rax,%rdi + 401330: b8 00 00 00 00 mov $0x0,%eax + 401335: e8 16 fe ff ff call 401150 + 40133a: 48 8d 05 3f 4d 00 00 lea 0x4d3f(%rip),%rax # 406080 <_IO_stdin_used+0x80> + 401341: 48 89 c7 mov %rax,%rdi + 401344: e8 d7 fd ff ff call 401120 + 401349: 48 8d 05 98 4d 00 00 lea 0x4d98(%rip),%rax # 4060e8 <_IO_stdin_used+0xe8> + 401350: 48 89 c7 mov %rax,%rdi + 401353: e8 c8 fd ff ff call 401120 + 401358: b8 00 00 00 00 mov $0x0,%eax + 40135d: e9 49 03 00 00 jmp 4016ab + 401362: c7 45 fc 01 00 00 00 movl $0x1,-0x4(%rbp) + 401369: eb 45 jmp 4013b0 + 40136b: 8b 45 fc mov -0x4(%rbp),%eax + 40136e: 48 98 cltq + 401370: 48 8d 14 c5 00 00 00 lea 0x0(,%rax,8),%rdx + 401377: 00 + 401378: 48 8b 85 d0 fe ff ff mov -0x130(%rbp),%rax + 40137f: 48 01 d0 add %rdx,%rax + 401382: 48 8b 00 mov (%rax),%rax + 401385: 48 89 c7 mov %rax,%rdi + 401388: e8 b3 fd ff ff call 401140 + 40138d: 48 83 f8 06 cmp $0x6,%rax + 401391: 74 19 je 4013ac + 401393: 48 8d 05 ae 4d 00 00 lea 0x4dae(%rip),%rax # 406148 <_IO_stdin_used+0x148> + 40139a: 48 89 c7 mov %rax,%rdi + 40139d: e8 7e fd ff ff call 401120 + 4013a2: b8 00 00 00 00 mov $0x0,%eax + 4013a7: e9 ff 02 00 00 jmp 4016ab + 4013ac: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 4013b0: 8b 45 fc mov -0x4(%rbp),%eax + 4013b3: 3b 85 dc fe ff ff cmp -0x124(%rbp),%eax + 4013b9: 7c b0 jl 40136b + 4013bb: 48 8b 85 d0 fe ff ff mov -0x130(%rbp),%rax + 4013c2: 48 83 c0 08 add $0x8,%rax + 4013c6: 48 8b 00 mov (%rax),%rax + 4013c9: 48 89 c6 mov %rax,%rsi + 4013cc: 48 8d 05 a4 4d 00 00 lea 0x4da4(%rip),%rax # 406177 <_IO_stdin_used+0x177> + 4013d3: 48 89 c7 mov %rax,%rdi + 4013d6: b8 00 00 00 00 mov $0x0,%eax + 4013db: e8 70 fd ff ff call 401150 + 4013e0: 48 8d 05 4e 4c 00 00 lea 0x4c4e(%rip),%rax # 406035 <_IO_stdin_used+0x35> + 4013e7: 48 89 c7 mov %rax,%rdi + 4013ea: e8 31 fd ff ff call 401120 + 4013ef: 48 8b 85 d0 fe ff ff mov -0x130(%rbp),%rax + 4013f6: 48 83 c0 08 add $0x8,%rax + 4013fa: 48 8b 10 mov (%rax),%rdx + 4013fd: 48 8d 85 f0 fe ff ff lea -0x110(%rbp),%rax + 401404: 48 8d 0d 7d 4d 00 00 lea 0x4d7d(%rip),%rcx # 406188 <_IO_stdin_used+0x188> + 40140b: 48 89 ce mov %rcx,%rsi + 40140e: 48 89 c7 mov %rax,%rdi + 401411: b8 00 00 00 00 mov $0x0,%eax + 401416: e8 a5 fd ff ff call 4011c0 + 40141b: 48 8d 85 f0 fe ff ff lea -0x110(%rbp),%rax + 401422: 48 8d 15 6b 4d 00 00 lea 0x4d6b(%rip),%rdx # 406194 <_IO_stdin_used+0x194> + 401429: 48 89 d6 mov %rdx,%rsi + 40142c: 48 89 c7 mov %rax,%rdi + 40142f: e8 6c fd ff ff call 4011a0 + 401434: 48 89 05 ed 73 00 00 mov %rax,0x73ed(%rip) # 408828 + 40143b: 48 8b 05 e6 73 00 00 mov 0x73e6(%rip),%rax # 408828 + 401442: 48 85 c0 test %rax,%rax + 401445: 74 20 je 401467 + 401447: 48 8d 85 f0 fe ff ff lea -0x110(%rbp),%rax + 40144e: 48 89 c6 mov %rax,%rsi + 401451: 48 8d 05 40 4d 00 00 lea 0x4d40(%rip),%rax # 406198 <_IO_stdin_used+0x198> + 401458: 48 89 c7 mov %rax,%rdi + 40145b: b8 00 00 00 00 mov $0x0,%eax + 401460: e8 eb fc ff ff call 401150 + 401465: eb 0e jmp 401475 + 401467: 48 8b 05 92 73 00 00 mov 0x7392(%rip),%rax # 408800 + 40146e: 48 89 05 b3 73 00 00 mov %rax,0x73b3(%rip) # 408828 + 401475: 48 8b 85 d0 fe ff ff mov -0x130(%rbp),%rax + 40147c: 48 83 c0 08 add $0x8,%rax + 401480: 48 8b 00 mov (%rax),%rax + 401483: 48 89 c7 mov %rax,%rdi + 401486: e8 25 fd ff ff call 4011b0 + 40148b: 48 98 cltq + 40148d: 48 89 05 7c 73 00 00 mov %rax,0x737c(%rip) # 408810 + 401494: 48 c7 05 79 73 00 00 movq $0x29a,0x7379(%rip) # 408818 + 40149b: 9a 02 00 00 + 40149f: bf 00 00 00 00 mov $0x0,%edi + 4014a4: e8 04 02 00 00 call 4016ad + 4014a9: c7 45 fc 02 00 00 00 movl $0x2,-0x4(%rbp) + 4014b0: eb 39 jmp 4014eb + 4014b2: 8b 45 fc mov -0x4(%rbp),%eax + 4014b5: 48 98 cltq + 4014b7: 48 8d 14 c5 00 00 00 lea 0x0(,%rax,8),%rdx + 4014be: 00 + 4014bf: 48 8b 85 d0 fe ff ff mov -0x130(%rbp),%rax + 4014c6: 48 01 d0 add %rdx,%rax + 4014c9: 48 8b 00 mov (%rax),%rax + 4014cc: 48 89 c7 mov %rax,%rdi + 4014cf: e8 dc fc ff ff call 4011b0 + 4014d4: 48 98 cltq + 4014d6: 48 89 05 3b 73 00 00 mov %rax,0x733b(%rip) # 408818 + 4014dd: bf 00 00 00 00 mov $0x0,%edi + 4014e2: e8 c6 01 00 00 call 4016ad + 4014e7: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 4014eb: 8b 45 fc mov -0x4(%rbp),%eax + 4014ee: 3b 85 dc fe ff ff cmp -0x124(%rbp),%eax + 4014f4: 7c bc jl 4014b2 + 4014f6: 48 8d 05 38 4b 00 00 lea 0x4b38(%rip),%rax # 406035 <_IO_stdin_used+0x35> + 4014fd: 48 89 c7 mov %rax,%rdi + 401500: e8 1b fc ff ff call 401120 + 401505: 48 8d 05 ca 4c 00 00 lea 0x4cca(%rip),%rax # 4061d6 <_IO_stdin_used+0x1d6> + 40150c: 48 89 c7 mov %rax,%rdi + 40150f: b8 00 00 00 00 mov $0x0,%eax + 401514: e8 37 fc ff ff call 401150 + 401519: e8 b9 45 00 00 call 405ad7 + 40151e: 48 89 45 f0 mov %rax,-0x10(%rbp) + 401522: 48 8b 45 f0 mov -0x10(%rbp),%rax + 401526: 48 89 c7 mov %rax,%rdi + 401529: e8 25 06 00 00 call 401b53 + 40152e: 48 8d 05 c3 4c 00 00 lea 0x4cc3(%rip),%rax # 4061f8 <_IO_stdin_used+0x1f8> + 401535: 48 89 c7 mov %rax,%rdi + 401538: e8 e3 fb ff ff call 401120 + 40153d: 48 8d 05 e4 4c 00 00 lea 0x4ce4(%rip),%rax # 406228 <_IO_stdin_used+0x228> + 401544: 48 89 c7 mov %rax,%rdi + 401547: b8 00 00 00 00 mov $0x0,%eax + 40154c: e8 ff fb ff ff call 401150 + 401551: e8 81 45 00 00 call 405ad7 + 401556: 48 89 45 f0 mov %rax,-0x10(%rbp) + 40155a: 48 8b 45 f0 mov -0x10(%rbp),%rax + 40155e: 48 89 c7 mov %rax,%rdi + 401561: e8 28 06 00 00 call 401b8e + 401566: 48 8d 05 13 4d 00 00 lea 0x4d13(%rip),%rax # 406280 <_IO_stdin_used+0x280> + 40156d: 48 89 c7 mov %rax,%rdi + 401570: e8 ab fb ff ff call 401120 + 401575: 48 8d 05 34 4d 00 00 lea 0x4d34(%rip),%rax # 4062b0 <_IO_stdin_used+0x2b0> + 40157c: 48 89 c7 mov %rax,%rdi + 40157f: b8 00 00 00 00 mov $0x0,%eax + 401584: e8 c7 fb ff ff call 401150 + 401589: e8 49 45 00 00 call 405ad7 + 40158e: 48 89 45 f0 mov %rax,-0x10(%rbp) + 401592: 48 8b 45 f0 mov -0x10(%rbp),%rax + 401596: 48 89 c7 mov %rax,%rdi + 401599: e8 f5 12 00 00 call 402893 + 40159e: 48 8d 05 2b 4d 00 00 lea 0x4d2b(%rip),%rax # 4062d0 <_IO_stdin_used+0x2d0> + 4015a5: 48 89 c7 mov %rax,%rdi + 4015a8: e8 73 fb ff ff call 401120 + 4015ad: 48 8d 05 52 4d 00 00 lea 0x4d52(%rip),%rax # 406306 <_IO_stdin_used+0x306> + 4015b4: 48 89 c7 mov %rax,%rdi + 4015b7: b8 00 00 00 00 mov $0x0,%eax + 4015bc: e8 8f fb ff ff call 401150 + 4015c1: e8 11 45 00 00 call 405ad7 + 4015c6: 48 89 45 f0 mov %rax,-0x10(%rbp) + 4015ca: 48 8b 45 f0 mov -0x10(%rbp),%rax + 4015ce: 48 89 c7 mov %rax,%rdi + 4015d1: e8 e5 2f 00 00 call 4045bb + 4015d6: 48 8d 05 4b 4d 00 00 lea 0x4d4b(%rip),%rax # 406328 <_IO_stdin_used+0x328> + 4015dd: 48 89 c7 mov %rax,%rdi + 4015e0: e8 3b fb ff ff call 401120 + 4015e5: 48 8d 05 6c 4d 00 00 lea 0x4d6c(%rip),%rax # 406358 <_IO_stdin_used+0x358> + 4015ec: 48 89 c7 mov %rax,%rdi + 4015ef: b8 00 00 00 00 mov $0x0,%eax + 4015f4: e8 57 fb ff ff call 401150 + 4015f9: e8 d9 44 00 00 call 405ad7 + 4015fe: 48 89 45 f0 mov %rax,-0x10(%rbp) + 401602: 48 8d 95 ef fe ff ff lea -0x111(%rbp),%rdx + 401609: 48 8b 45 f0 mov -0x10(%rbp),%rax + 40160d: 48 8d 0d a4 4d 00 00 lea 0x4da4(%rip),%rcx # 4063b8 <_IO_stdin_used+0x3b8> + 401614: 48 89 ce mov %rcx,%rsi + 401617: 48 89 c7 mov %rax,%rdi + 40161a: b8 00 00 00 00 mov $0x0,%eax + 40161f: e8 6c fb ff ff call 401190 <__isoc99_sscanf@plt> + 401624: 0f b6 85 ef fe ff ff movzbl -0x111(%rbp),%eax + 40162b: 3c 4e cmp $0x4e,%al + 40162d: 74 0b je 40163a + 40162f: 0f b6 85 ef fe ff ff movzbl -0x111(%rbp),%eax + 401636: 3c 6e cmp $0x6e,%al + 401638: 75 16 jne 401650 + 40163a: 48 8d 05 7a 4d 00 00 lea 0x4d7a(%rip),%rax # 4063bb <_IO_stdin_used+0x3bb> + 401641: 48 89 c7 mov %rax,%rdi + 401644: e8 d7 fa ff ff call 401120 + 401649: b8 01 00 00 00 mov $0x1,%eax + 40164e: eb 5b jmp 4016ab + 401650: 48 8d 05 81 4d 00 00 lea 0x4d81(%rip),%rax # 4063d8 <_IO_stdin_used+0x3d8> + 401657: 48 89 c7 mov %rax,%rdi + 40165a: e8 c1 fa ff ff call 401120 + 40165f: 48 8d 05 fa 4d 00 00 lea 0x4dfa(%rip),%rax # 406460 <_IO_stdin_used+0x460> + 401666: 48 89 c7 mov %rax,%rdi + 401669: b8 00 00 00 00 mov $0x0,%eax + 40166e: e8 dd fa ff ff call 401150 + 401673: e8 5f 44 00 00 call 405ad7 + 401678: 48 89 45 f0 mov %rax,-0x10(%rbp) + 40167c: 48 8b 45 f0 mov -0x10(%rbp),%rax + 401680: 48 89 c7 mov %rax,%rdi + 401683: e8 ef 00 00 00 call 401777 + 401688: 48 8d 05 01 4e 00 00 lea 0x4e01(%rip),%rax # 406490 <_IO_stdin_used+0x490> + 40168f: 48 89 c7 mov %rax,%rdi + 401692: e8 89 fa ff ff call 401120 + 401697: 48 8d 05 4a 4e 00 00 lea 0x4e4a(%rip),%rax # 4064e8 <_IO_stdin_used+0x4e8> + 40169e: 48 89 c7 mov %rax,%rdi + 4016a1: e8 7a fa ff ff call 401120 + 4016a6: b8 00 00 00 00 mov $0x0,%eax + 4016ab: c9 leave + 4016ac: c3 ret + +00000000004016ad : + 4016ad: f3 0f 1e fa endbr64 + 4016b1: 55 push %rbp + 4016b2: 48 89 e5 mov %rsp,%rbp + 4016b5: 48 89 7d e8 mov %rdi,-0x18(%rbp) + 4016b9: 48 8b 05 50 71 00 00 mov 0x7150(%rip),%rax # 408810 + 4016c0: 48 89 45 f8 mov %rax,-0x8(%rbp) + 4016c4: 48 8b 45 f8 mov -0x8(%rbp),%rax + 4016c8: 48 69 c0 c5 90 c6 6a imul $0x6ac690c5,%rax,%rax + 4016cf: 48 89 45 f8 mov %rax,-0x8(%rbp) + 4016d3: 48 8b 55 f8 mov -0x8(%rbp),%rdx + 4016d7: 48 8b 05 3a 71 00 00 mov 0x713a(%rip),%rax # 408818 + 4016de: 48 01 d0 add %rdx,%rax + 4016e1: 48 89 45 f8 mov %rax,-0x8(%rbp) + 4016e5: 48 8b 45 f8 mov -0x8(%rbp),%rax + 4016e9: 48 89 05 20 71 00 00 mov %rax,0x7120(%rip) # 408810 + 4016f0: 48 8b 45 f8 mov -0x8(%rbp),%rax + 4016f4: 48 c1 f8 20 sar $0x20,%rax + 4016f8: 48 89 05 19 71 00 00 mov %rax,0x7119(%rip) # 408818 + 4016ff: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) + 401704: 74 1c je 401722 + 401706: 48 8b 05 03 71 00 00 mov 0x7103(%rip),%rax # 408810 + 40170d: ba 00 00 00 00 mov $0x0,%edx + 401712: 48 f7 75 e8 divq -0x18(%rbp) + 401716: 48 89 d0 mov %rdx,%rax + 401719: 48 89 05 00 71 00 00 mov %rax,0x7100(%rip) # 408820 + 401720: eb 01 jmp 401723 + 401722: 90 nop + 401723: 5d pop %rbp + 401724: c3 ret + +0000000000401725 : + 401725: f3 0f 1e fa endbr64 + 401729: 55 push %rbp + 40172a: 48 89 e5 mov %rsp,%rbp + 40172d: 48 83 ec 10 sub $0x10,%rsp + 401731: 48 8d 45 f0 lea -0x10(%rbp),%rax + 401735: 48 89 c6 mov %rax,%rsi + 401738: bf 01 00 00 00 mov $0x1,%edi + 40173d: e8 ee f9 ff ff call 401130 + 401742: 48 8b 45 f0 mov -0x10(%rbp),%rax + 401746: 48 69 f0 e8 03 00 00 imul $0x3e8,%rax,%rsi + 40174d: 48 8b 4d f8 mov -0x8(%rbp),%rcx + 401751: 48 ba db 34 b6 d7 82 movabs $0x431bde82d7b634db,%rdx + 401758: de 1b 43 + 40175b: 48 89 c8 mov %rcx,%rax + 40175e: 48 f7 ea imul %rdx + 401761: 48 89 d0 mov %rdx,%rax + 401764: 48 c1 f8 12 sar $0x12,%rax + 401768: 48 c1 f9 3f sar $0x3f,%rcx + 40176c: 48 89 ca mov %rcx,%rdx + 40176f: 48 29 d0 sub %rdx,%rax + 401772: 48 01 f0 add %rsi,%rax + 401775: c9 leave + 401776: c3 ret + +0000000000401777 : + 401777: f3 0f 1e fa endbr64 + 40177b: 55 push %rbp + 40177c: 48 89 e5 mov %rsp,%rbp + 40177f: 48 81 ec 20 01 00 00 sub $0x120,%rsp + 401786: 48 89 bd e8 fe ff ff mov %rdi,-0x118(%rbp) + 40178d: b8 00 00 00 00 mov $0x0,%eax + 401792: e8 8e ff ff ff call 401725 + 401797: 48 89 45 f8 mov %rax,-0x8(%rbp) + 40179b: 48 8b 85 e8 fe ff ff mov -0x118(%rbp),%rax + 4017a2: 48 89 c7 mov %rax,%rdi + 4017a5: e8 96 f9 ff ff call 401140 + 4017aa: 48 83 f8 09 cmp $0x9,%rax + 4017ae: 76 17 jbe 4017c7 + 4017b0: 48 8b 85 e8 fe ff ff mov -0x118(%rbp),%rax + 4017b7: 48 89 c7 mov %rax,%rdi + 4017ba: e8 81 f9 ff ff call 401140 + 4017bf: 48 3d 00 03 00 00 cmp $0x300,%rax + 4017c5: 76 05 jbe 4017cc + 4017c7: e8 2a 44 00 00 call 405bf6 + 4017cc: 48 8d 85 f0 fe ff ff lea -0x110(%rbp),%rax + 4017d3: ba 00 01 00 00 mov $0x100,%edx + 4017d8: be 00 00 00 00 mov $0x0,%esi + 4017dd: 48 89 c7 mov %rax,%rdi + 4017e0: e8 7b f9 ff ff call 401160 + 4017e5: 48 8b 95 e8 fe ff ff mov -0x118(%rbp),%rdx + 4017ec: 48 8d 85 f0 fe ff ff lea -0x110(%rbp),%rax + 4017f3: 48 89 d6 mov %rdx,%rsi + 4017f6: 48 89 c7 mov %rax,%rdi + 4017f9: e8 15 01 00 00 call 401913 + 4017fe: bf 00 04 00 00 mov $0x400,%edi + 401803: e8 a5 fe ff ff call 4016ad + 401808: 48 8b 05 11 70 00 00 mov 0x7011(%rip),%rax # 408820 + 40180f: 89 c2 mov %eax,%edx + 401811: 48 8d 85 f0 fe ff ff lea -0x110(%rbp),%rax + 401818: 89 d6 mov %edx,%esi + 40181a: 48 89 c7 mov %rax,%rdi + 40181d: e8 1f 02 00 00 call 401a41 + 401822: 85 c0 test %eax,%eax + 401824: 75 14 jne 40183a + 401826: 48 8d 05 eb 4c 00 00 lea 0x4ceb(%rip),%rax # 406518 <_IO_stdin_used+0x518> + 40182d: 48 89 c7 mov %rax,%rdi + 401830: e8 eb f8 ff ff call 401120 + 401835: e8 bc 43 00 00 call 405bf6 + 40183a: bf 03 00 00 00 mov $0x3,%edi + 40183f: e8 69 fe ff ff call 4016ad + 401844: 48 8b 05 d5 6f 00 00 mov 0x6fd5(%rip),%rax # 408820 + 40184b: 48 83 f8 02 cmp $0x2,%rax + 40184f: 74 31 je 401882 + 401851: 48 83 f8 02 cmp $0x2,%rax + 401855: 77 3a ja 401891 + 401857: 48 85 c0 test %rax,%rax + 40185a: 74 08 je 401864 + 40185c: 48 83 f8 01 cmp $0x1,%rax + 401860: 74 11 je 401873 + 401862: eb 2d jmp 401891 + 401864: 48 8d 85 f0 fe ff ff lea -0x110(%rbp),%rax + 40186b: 48 89 c7 mov %rax,%rdi + 40186e: e8 b0 01 00 00 call 401a23 + 401873: 48 8d 85 f0 fe ff ff lea -0x110(%rbp),%rax + 40187a: 48 89 c7 mov %rax,%rdi + 40187d: e8 aa 01 00 00 call 401a2c + 401882: 48 8d 85 f0 fe ff ff lea -0x110(%rbp),%rax + 401889: 48 89 c7 mov %rax,%rdi + 40188c: e8 a4 01 00 00 call 401a35 + 401891: e8 60 43 00 00 call 405bf6 + 401896: bf 00 04 00 00 mov $0x400,%edi + 40189b: e8 0d fe ff ff call 4016ad + 4018a0: 8b 05 52 6f 00 00 mov 0x6f52(%rip),%eax # 4087f8 + 4018a6: 48 63 d0 movslq %eax,%rdx + 4018a9: 48 8b 05 70 6f 00 00 mov 0x6f70(%rip),%rax # 408820 + 4018b0: 48 39 c2 cmp %rax,%rdx + 4018b3: 74 29 je 4018de + 4018b5: 8b 15 3d 6f 00 00 mov 0x6f3d(%rip),%edx # 4087f8 + 4018bb: 48 8b 05 5e 6f 00 00 mov 0x6f5e(%rip),%rax # 408820 + 4018c2: 48 89 c6 mov %rax,%rsi + 4018c5: 48 8d 05 94 4c 00 00 lea 0x4c94(%rip),%rax # 406560 <_IO_stdin_used+0x560> + 4018cc: 48 89 c7 mov %rax,%rdi + 4018cf: b8 00 00 00 00 mov $0x0,%eax + 4018d4: e8 77 f8 ff ff call 401150 + 4018d9: e8 18 43 00 00 call 405bf6 + 4018de: b8 00 00 00 00 mov $0x0,%eax + 4018e3: e8 3d fe ff ff call 401725 + 4018e8: 48 89 45 f0 mov %rax,-0x10(%rbp) + 4018ec: 48 8b 45 f0 mov -0x10(%rbp),%rax + 4018f0: 48 2b 45 f8 sub -0x8(%rbp),%rax + 4018f4: 48 3d e8 03 00 00 cmp $0x3e8,%rax + 4018fa: 76 14 jbe 401910 + 4018fc: 48 8d 05 a5 4c 00 00 lea 0x4ca5(%rip),%rax # 4065a8 <_IO_stdin_used+0x5a8> + 401903: 48 89 c7 mov %rax,%rdi + 401906: e8 15 f8 ff ff call 401120 + 40190b: e8 e6 42 00 00 call 405bf6 + 401910: 90 nop + 401911: c9 leave + 401912: c3 ret + +0000000000401913 : + 401913: f3 0f 1e fa endbr64 + 401917: 55 push %rbp + 401918: 48 89 e5 mov %rsp,%rbp + 40191b: 48 83 ec 30 sub $0x30,%rsp + 40191f: 48 89 7d d8 mov %rdi,-0x28(%rbp) + 401923: 48 89 75 d0 mov %rsi,-0x30(%rbp) + 401927: c7 45 fc 01 00 00 00 movl $0x1,-0x4(%rbp) + 40192e: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 401935: 48 8b 45 d8 mov -0x28(%rbp),%rax + 401939: 48 89 45 f0 mov %rax,-0x10(%rbp) + 40193d: c7 45 ec 00 00 00 00 movl $0x0,-0x14(%rbp) + 401944: e9 93 00 00 00 jmp 4019dc + 401949: e8 92 f8 ff ff call 4011e0 <__ctype_b_loc@plt> + 40194e: 48 8b 10 mov (%rax),%rdx + 401951: 8b 45 e4 mov -0x1c(%rbp),%eax + 401954: 48 98 cltq + 401956: 48 01 c0 add %rax,%rax + 401959: 48 01 d0 add %rdx,%rax + 40195c: 0f b7 00 movzwl (%rax),%eax + 40195f: 0f b7 c0 movzwl %ax,%eax + 401962: 25 00 10 00 00 and $0x1000,%eax + 401967: 85 c0 test %eax,%eax + 401969: 74 71 je 4019dc + 40196b: 83 7d e4 2f cmpl $0x2f,-0x1c(%rbp) + 40196f: 7e 11 jle 401982 + 401971: 83 7d e4 39 cmpl $0x39,-0x1c(%rbp) + 401975: 7f 0b jg 401982 + 401977: 8b 45 e4 mov -0x1c(%rbp),%eax + 40197a: 83 e8 30 sub $0x30,%eax + 40197d: 89 45 e8 mov %eax,-0x18(%rbp) + 401980: eb 20 jmp 4019a2 + 401982: 83 7d e4 40 cmpl $0x40,-0x1c(%rbp) + 401986: 7e 11 jle 401999 + 401988: 83 7d e4 46 cmpl $0x46,-0x1c(%rbp) + 40198c: 7f 0b jg 401999 + 40198e: 8b 45 e4 mov -0x1c(%rbp),%eax + 401991: 83 e8 37 sub $0x37,%eax + 401994: 89 45 e8 mov %eax,-0x18(%rbp) + 401997: eb 09 jmp 4019a2 + 401999: 8b 45 e4 mov -0x1c(%rbp),%eax + 40199c: 83 e8 57 sub $0x57,%eax + 40199f: 89 45 e8 mov %eax,-0x18(%rbp) + 4019a2: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) + 4019a6: 74 0f je 4019b7 + 4019a8: 8b 45 e8 mov -0x18(%rbp),%eax + 4019ab: 89 45 f8 mov %eax,-0x8(%rbp) + 4019ae: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 4019b5: eb 25 jmp 4019dc + 4019b7: 8b 45 f8 mov -0x8(%rbp),%eax + 4019ba: c1 e0 04 shl $0x4,%eax + 4019bd: 89 c2 mov %eax,%edx + 4019bf: 8b 45 e8 mov -0x18(%rbp),%eax + 4019c2: 8d 0c 02 lea (%rdx,%rax,1),%ecx + 4019c5: 48 8b 45 f0 mov -0x10(%rbp),%rax + 4019c9: 48 8d 50 01 lea 0x1(%rax),%rdx + 4019cd: 48 89 55 f0 mov %rdx,-0x10(%rbp) + 4019d1: 89 ca mov %ecx,%edx + 4019d3: 88 10 mov %dl,(%rax) + 4019d5: c7 45 fc 01 00 00 00 movl $0x1,-0x4(%rbp) + 4019dc: 8b 45 ec mov -0x14(%rbp),%eax + 4019df: 8d 50 01 lea 0x1(%rax),%edx + 4019e2: 89 55 ec mov %edx,-0x14(%rbp) + 4019e5: 48 63 d0 movslq %eax,%rdx + 4019e8: 48 8b 45 d0 mov -0x30(%rbp),%rax + 4019ec: 48 01 d0 add %rdx,%rax + 4019ef: 0f b6 00 movzbl (%rax),%eax + 4019f2: 0f be c0 movsbl %al,%eax + 4019f5: 89 45 e4 mov %eax,-0x1c(%rbp) + 4019f8: 83 7d e4 00 cmpl $0x0,-0x1c(%rbp) + 4019fc: 74 10 je 401a0e + 4019fe: 83 7d e4 0a cmpl $0xa,-0x1c(%rbp) + 401a02: 74 0a je 401a0e + 401a04: 83 7d e4 0d cmpl $0xd,-0x1c(%rbp) + 401a08: 0f 85 3b ff ff ff jne 401949 + 401a0e: 48 8b 45 f0 mov -0x10(%rbp),%rax + 401a12: 48 8d 50 01 lea 0x1(%rax),%rdx + 401a16: 48 89 55 f0 mov %rdx,-0x10(%rbp) + 401a1a: c6 00 00 movb $0x0,(%rax) + 401a1d: 48 8b 45 d8 mov -0x28(%rbp),%rax + 401a21: c9 leave + 401a22: c3 ret + +0000000000401a23 : + 401a23: f3 0f 1e fa endbr64 + 401a27: ff e0 jmp *%rax + 401a29: 90 nop + 401a2a: 0f 0b ud2 + +0000000000401a2c : + 401a2c: f3 0f 1e fa endbr64 + 401a30: 50 push %rax + 401a31: c3 ret + 401a32: 90 nop + 401a33: 0f 0b ud2 + +0000000000401a35 : + 401a35: f3 0f 1e fa endbr64 + 401a39: 48 89 04 24 mov %rax,(%rsp) + 401a3d: c3 ret + 401a3e: 90 nop + 401a3f: 0f 0b ud2 + +0000000000401a41 : + 401a41: f3 0f 1e fa endbr64 + 401a45: 55 push %rbp + 401a46: 48 89 e5 mov %rsp,%rbp + 401a49: 48 89 7d e8 mov %rdi,-0x18(%rbp) + 401a4d: 89 75 e4 mov %esi,-0x1c(%rbp) + 401a50: c6 45 fb 00 movb $0x0,-0x5(%rbp) + 401a54: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 401a5b: eb 17 jmp 401a74 + 401a5d: 8b 45 fc mov -0x4(%rbp),%eax + 401a60: 48 63 d0 movslq %eax,%rdx + 401a63: 48 8b 45 e8 mov -0x18(%rbp),%rax + 401a67: 48 01 d0 add %rdx,%rax + 401a6a: 0f b6 00 movzbl (%rax),%eax + 401a6d: 30 45 fb xor %al,-0x5(%rbp) + 401a70: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 401a74: 81 7d fc ff 00 00 00 cmpl $0xff,-0x4(%rbp) + 401a7b: 7e e0 jle 401a5d + 401a7d: 8b 45 e4 mov -0x1c(%rbp),%eax + 401a80: 38 45 fb cmp %al,-0x5(%rbp) + 401a83: 0f 94 c0 sete %al + 401a86: 0f b6 c0 movzbl %al,%eax + 401a89: 5d pop %rbp + 401a8a: c3 ret + +0000000000401a8b : + 401a8b: f3 0f 1e fa endbr64 + 401a8f: 55 push %rbp + 401a90: 48 89 e5 mov %rsp,%rbp + 401a93: 48 83 ec 10 sub $0x10,%rsp + 401a97: 48 89 7d f8 mov %rdi,-0x8(%rbp) + 401a9b: 48 8d 05 26 4b 00 00 lea 0x4b26(%rip),%rax # 4065c8 <_IO_stdin_used+0x5c8> + 401aa2: 48 89 c7 mov %rax,%rdi + 401aa5: e8 76 f6 ff ff call 401120 + 401aaa: 90 nop + 401aab: c9 leave + 401aac: c3 ret + +0000000000401aad : + 401aad: f3 0f 1e fa endbr64 + 401ab1: 55 push %rbp + 401ab2: 48 89 e5 mov %rsp,%rbp + 401ab5: 48 83 ec 20 sub $0x20,%rsp + 401ab9: 48 89 7d e8 mov %rdi,-0x18(%rbp) + 401abd: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 401ac4: eb 74 jmp 401b3a + 401ac6: bf 02 00 00 00 mov $0x2,%edi + 401acb: e8 dd fb ff ff call 4016ad + 401ad0: 48 8b 05 49 6d 00 00 mov 0x6d49(%rip),%rax # 408820 + 401ad7: 48 83 f8 01 cmp $0x1,%rax + 401adb: 75 12 jne 401aef + 401add: 8b 45 fc mov -0x4(%rbp),%eax + 401ae0: 48 63 d0 movslq %eax,%rdx + 401ae3: 48 8b 45 e8 mov -0x18(%rbp),%rax + 401ae7: 48 01 d0 add %rdx,%rax + 401aea: c6 00 41 movb $0x41,(%rax) + 401aed: eb 10 jmp 401aff + 401aef: 8b 45 fc mov -0x4(%rbp),%eax + 401af2: 48 63 d0 movslq %eax,%rdx + 401af5: 48 8b 45 e8 mov -0x18(%rbp),%rax + 401af9: 48 01 d0 add %rdx,%rax + 401afc: c6 00 61 movb $0x61,(%rax) + 401aff: bf 1a 00 00 00 mov $0x1a,%edi + 401b04: e8 a4 fb ff ff call 4016ad + 401b09: 8b 45 fc mov -0x4(%rbp),%eax + 401b0c: 48 63 d0 movslq %eax,%rdx + 401b0f: 48 8b 45 e8 mov -0x18(%rbp),%rax + 401b13: 48 01 d0 add %rdx,%rax + 401b16: 0f b6 00 movzbl (%rax),%eax + 401b19: 89 c2 mov %eax,%edx + 401b1b: 48 8b 05 fe 6c 00 00 mov 0x6cfe(%rip),%rax # 408820 + 401b22: 8d 0c 02 lea (%rdx,%rax,1),%ecx + 401b25: 8b 45 fc mov -0x4(%rbp),%eax + 401b28: 48 63 d0 movslq %eax,%rdx + 401b2b: 48 8b 45 e8 mov -0x18(%rbp),%rax + 401b2f: 48 01 d0 add %rdx,%rax + 401b32: 89 ca mov %ecx,%edx + 401b34: 88 10 mov %dl,(%rax) + 401b36: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 401b3a: 83 7d fc 09 cmpl $0x9,-0x4(%rbp) + 401b3e: 7e 86 jle 401ac6 + 401b40: 8b 45 fc mov -0x4(%rbp),%eax + 401b43: 48 63 d0 movslq %eax,%rdx + 401b46: 48 8b 45 e8 mov -0x18(%rbp),%rax + 401b4a: 48 01 d0 add %rdx,%rax + 401b4d: c6 00 00 movb $0x0,(%rax) + 401b50: 90 nop + 401b51: c9 leave + 401b52: c3 ret + +0000000000401b53 : + 401b53: f3 0f 1e fa endbr64 + 401b57: 55 push %rbp + 401b58: 48 89 e5 mov %rsp,%rbp + 401b5b: 48 83 ec 20 sub $0x20,%rsp + 401b5f: 48 89 7d e8 mov %rdi,-0x18(%rbp) + 401b63: 48 8d 45 f5 lea -0xb(%rbp),%rax + 401b67: 48 89 c7 mov %rax,%rdi + 401b6a: e8 3e ff ff ff call 401aad + 401b6f: 48 8d 55 f5 lea -0xb(%rbp),%rdx + 401b73: 48 8b 45 e8 mov -0x18(%rbp),%rax + 401b77: 48 89 d6 mov %rdx,%rsi + 401b7a: 48 89 c7 mov %rax,%rdi + 401b7d: e8 fe f5 ff ff call 401180 + 401b82: 85 c0 test %eax,%eax + 401b84: 74 05 je 401b8b + 401b86: e8 6b 40 00 00 call 405bf6 + 401b8b: 90 nop + 401b8c: c9 leave + 401b8d: c3 ret + +0000000000401b8e : + 401b8e: f3 0f 1e fa endbr64 + 401b92: 55 push %rbp + 401b93: 48 89 e5 mov %rsp,%rbp + 401b96: 48 83 ec 10 sub $0x10,%rsp + 401b9a: 48 89 7d f8 mov %rdi,-0x8(%rbp) + 401b9e: bf 10 00 00 00 mov $0x10,%edi + 401ba3: e8 05 fb ff ff call 4016ad + 401ba8: 48 8b 05 71 6c 00 00 mov 0x6c71(%rip),%rax # 408820 + 401baf: 48 83 f8 0f cmp $0xf,%rax + 401bb3: 0f 87 16 01 00 00 ja 401ccf + 401bb9: 48 8d 14 85 00 00 00 lea 0x0(,%rax,4),%rdx + 401bc0: 00 + 401bc1: 48 8d 05 4c 4a 00 00 lea 0x4a4c(%rip),%rax # 406614 <_IO_stdin_used+0x614> + 401bc8: 8b 04 02 mov (%rdx,%rax,1),%eax + 401bcb: 48 98 cltq + 401bcd: 48 8d 15 40 4a 00 00 lea 0x4a40(%rip),%rdx # 406614 <_IO_stdin_used+0x614> + 401bd4: 48 01 d0 add %rdx,%rax + 401bd7: 3e ff e0 notrack jmp *%rax + 401bda: 48 8b 45 f8 mov -0x8(%rbp),%rax + 401bde: 48 89 c7 mov %rax,%rdi + 401be1: e8 f2 00 00 00 call 401cd8 + 401be6: e9 ea 00 00 00 jmp 401cd5 + 401beb: 48 8b 45 f8 mov -0x8(%rbp),%rax + 401bef: 48 89 c7 mov %rax,%rdi + 401bf2: e8 8b 01 00 00 call 401d82 + 401bf7: e9 d9 00 00 00 jmp 401cd5 + 401bfc: 48 8b 45 f8 mov -0x8(%rbp),%rax + 401c00: 48 89 c7 mov %rax,%rdi + 401c03: e8 1e 02 00 00 call 401e26 + 401c08: e9 c8 00 00 00 jmp 401cd5 + 401c0d: 48 8b 45 f8 mov -0x8(%rbp),%rax + 401c11: 48 89 c7 mov %rax,%rdi + 401c14: e8 dd 02 00 00 call 401ef6 + 401c19: e9 b7 00 00 00 jmp 401cd5 + 401c1e: 48 8b 45 f8 mov -0x8(%rbp),%rax + 401c22: 48 89 c7 mov %rax,%rdi + 401c25: e8 91 03 00 00 call 401fbb + 401c2a: e9 a6 00 00 00 jmp 401cd5 + 401c2f: 48 8b 45 f8 mov -0x8(%rbp),%rax + 401c33: 48 89 c7 mov %rax,%rdi + 401c36: e8 40 04 00 00 call 40207b + 401c3b: e9 95 00 00 00 jmp 401cd5 + 401c40: 48 8b 45 f8 mov -0x8(%rbp),%rax + 401c44: 48 89 c7 mov %rax,%rdi + 401c47: e8 fb 04 00 00 call 402147 + 401c4c: e9 84 00 00 00 jmp 401cd5 + 401c51: 48 8b 45 f8 mov -0x8(%rbp),%rax + 401c55: 48 89 c7 mov %rax,%rdi + 401c58: e8 b7 05 00 00 call 402214 + 401c5d: eb 76 jmp 401cd5 + 401c5f: 48 8b 45 f8 mov -0x8(%rbp),%rax + 401c63: 48 89 c7 mov %rax,%rdi + 401c66: e8 77 06 00 00 call 4022e2 + 401c6b: eb 68 jmp 401cd5 + 401c6d: 48 8b 45 f8 mov -0x8(%rbp),%rax + 401c71: 48 89 c7 mov %rax,%rdi + 401c74: e8 2c 07 00 00 call 4023a5 + 401c79: eb 5a jmp 401cd5 + 401c7b: 48 8b 45 f8 mov -0x8(%rbp),%rax + 401c7f: 48 89 c7 mov %rax,%rdi + 401c82: e8 ec 07 00 00 call 402473 + 401c87: eb 4c jmp 401cd5 + 401c89: 48 8b 45 f8 mov -0x8(%rbp),%rax + 401c8d: 48 89 c7 mov %rax,%rdi + 401c90: e8 8c 08 00 00 call 402521 + 401c95: eb 3e jmp 401cd5 + 401c97: 48 8b 45 f8 mov -0x8(%rbp),%rax + 401c9b: 48 89 c7 mov %rax,%rdi + 401c9e: e8 2c 09 00 00 call 4025cf + 401ca3: eb 30 jmp 401cd5 + 401ca5: 48 8b 45 f8 mov -0x8(%rbp),%rax + 401ca9: 48 89 c7 mov %rax,%rdi + 401cac: e8 d2 09 00 00 call 402683 + 401cb1: eb 22 jmp 401cd5 + 401cb3: 48 8b 45 f8 mov -0x8(%rbp),%rax + 401cb7: 48 89 c7 mov %rax,%rdi + 401cba: e8 72 0a 00 00 call 402731 + 401cbf: eb 14 jmp 401cd5 + 401cc1: 48 8b 45 f8 mov -0x8(%rbp),%rax + 401cc5: 48 89 c7 mov %rax,%rdi + 401cc8: e8 12 0b 00 00 call 4027df + 401ccd: eb 06 jmp 401cd5 + 401ccf: e8 22 3f 00 00 call 405bf6 + 401cd4: 90 nop + 401cd5: 90 nop + 401cd6: c9 leave + 401cd7: c3 ret + +0000000000401cd8 : + 401cd8: f3 0f 1e fa endbr64 + 401cdc: 55 push %rbp + 401cdd: 48 89 e5 mov %rsp,%rbp + 401ce0: 48 83 ec 30 sub $0x30,%rsp + 401ce4: 48 89 7d d8 mov %rdi,-0x28(%rbp) + 401ce8: 48 8d 55 e0 lea -0x20(%rbp),%rdx + 401cec: 48 8b 45 d8 mov -0x28(%rbp),%rax + 401cf0: 48 89 d6 mov %rdx,%rsi + 401cf3: 48 89 c7 mov %rax,%rdi + 401cf6: e8 b4 3c 00 00 call 4059af + 401cfb: bf 0a 00 00 00 mov $0xa,%edi + 401d00: e8 a8 f9 ff ff call 4016ad + 401d05: 8b 45 e0 mov -0x20(%rbp),%eax + 401d08: 48 98 cltq + 401d0a: 48 8b 15 0f 6b 00 00 mov 0x6b0f(%rip),%rdx # 408820 + 401d11: 48 83 c2 01 add $0x1,%rdx + 401d15: 48 39 d0 cmp %rdx,%rax + 401d18: 74 05 je 401d1f + 401d1a: e8 d7 3e 00 00 call 405bf6 + 401d1f: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 401d26: eb 16 jmp 401d3e + 401d28: 8b 45 fc mov -0x4(%rbp),%eax + 401d2b: 48 98 cltq + 401d2d: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 401d31: 85 c0 test %eax,%eax + 401d33: 79 05 jns 401d3a + 401d35: e8 bc 3e 00 00 call 405bf6 + 401d3a: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 401d3e: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 401d42: 7e e4 jle 401d28 + 401d44: c7 45 fc 01 00 00 00 movl $0x1,-0x4(%rbp) + 401d4b: eb 2b jmp 401d78 + 401d4d: 8b 45 fc mov -0x4(%rbp),%eax + 401d50: 48 98 cltq + 401d52: 8b 54 85 e0 mov -0x20(%rbp,%rax,4),%edx + 401d56: 8b 45 fc mov -0x4(%rbp),%eax + 401d59: 83 e8 01 sub $0x1,%eax + 401d5c: 48 98 cltq + 401d5e: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 401d62: 8b 4d fc mov -0x4(%rbp),%ecx + 401d65: 83 c1 01 add $0x1,%ecx + 401d68: 0f af c1 imul %ecx,%eax + 401d6b: 39 c2 cmp %eax,%edx + 401d6d: 74 05 je 401d74 + 401d6f: e8 82 3e 00 00 call 405bf6 + 401d74: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 401d78: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 401d7c: 7e cf jle 401d4d + 401d7e: 90 nop + 401d7f: 90 nop + 401d80: c9 leave + 401d81: c3 ret + +0000000000401d82 : + 401d82: f3 0f 1e fa endbr64 + 401d86: 55 push %rbp + 401d87: 48 89 e5 mov %rsp,%rbp + 401d8a: 48 83 ec 30 sub $0x30,%rsp + 401d8e: 48 89 7d d8 mov %rdi,-0x28(%rbp) + 401d92: 48 8d 55 e0 lea -0x20(%rbp),%rdx + 401d96: 48 8b 45 d8 mov -0x28(%rbp),%rax + 401d9a: 48 89 d6 mov %rdx,%rsi + 401d9d: 48 89 c7 mov %rax,%rdi + 401da0: e8 0a 3c 00 00 call 4059af + 401da5: bf 0a 00 00 00 mov $0xa,%edi + 401daa: e8 fe f8 ff ff call 4016ad + 401daf: 8b 45 e0 mov -0x20(%rbp),%eax + 401db2: 48 98 cltq + 401db4: 48 8b 15 65 6a 00 00 mov 0x6a65(%rip),%rdx # 408820 + 401dbb: 48 83 c2 01 add $0x1,%rdx + 401dbf: 48 39 d0 cmp %rdx,%rax + 401dc2: 74 05 je 401dc9 + 401dc4: e8 2d 3e 00 00 call 405bf6 + 401dc9: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 401dd0: eb 16 jmp 401de8 + 401dd2: 8b 45 fc mov -0x4(%rbp),%eax + 401dd5: 48 98 cltq + 401dd7: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 401ddb: 85 c0 test %eax,%eax + 401ddd: 79 05 jns 401de4 + 401ddf: e8 12 3e 00 00 call 405bf6 + 401de4: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 401de8: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 401dec: 7e e4 jle 401dd2 + 401dee: c7 45 fc 01 00 00 00 movl $0x1,-0x4(%rbp) + 401df5: eb 25 jmp 401e1c + 401df7: 8b 45 fc mov -0x4(%rbp),%eax + 401dfa: 48 98 cltq + 401dfc: 8b 54 85 e0 mov -0x20(%rbp,%rax,4),%edx + 401e00: 8b 45 fc mov -0x4(%rbp),%eax + 401e03: 83 e8 01 sub $0x1,%eax + 401e06: 48 98 cltq + 401e08: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 401e0c: 83 c0 05 add $0x5,%eax + 401e0f: 39 c2 cmp %eax,%edx + 401e11: 74 05 je 401e18 + 401e13: e8 de 3d 00 00 call 405bf6 + 401e18: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 401e1c: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 401e20: 7e d5 jle 401df7 + 401e22: 90 nop + 401e23: 90 nop + 401e24: c9 leave + 401e25: c3 ret + +0000000000401e26 : + 401e26: f3 0f 1e fa endbr64 + 401e2a: 55 push %rbp + 401e2b: 48 89 e5 mov %rsp,%rbp + 401e2e: 48 83 ec 30 sub $0x30,%rsp + 401e32: 48 89 7d d8 mov %rdi,-0x28(%rbp) + 401e36: 48 8d 55 e0 lea -0x20(%rbp),%rdx + 401e3a: 48 8b 45 d8 mov -0x28(%rbp),%rax + 401e3e: 48 89 d6 mov %rdx,%rsi + 401e41: 48 89 c7 mov %rax,%rdi + 401e44: e8 66 3b 00 00 call 4059af + 401e49: bf 0a 00 00 00 mov $0xa,%edi + 401e4e: e8 5a f8 ff ff call 4016ad + 401e53: 8b 45 e0 mov -0x20(%rbp),%eax + 401e56: 48 98 cltq + 401e58: 48 8b 15 c1 69 00 00 mov 0x69c1(%rip),%rdx # 408820 + 401e5f: 48 83 c2 01 add $0x1,%rdx + 401e63: 48 39 d0 cmp %rdx,%rax + 401e66: 74 05 je 401e6d + 401e68: e8 89 3d 00 00 call 405bf6 + 401e6d: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 401e74: eb 16 jmp 401e8c + 401e76: 8b 45 fc mov -0x4(%rbp),%eax + 401e79: 48 98 cltq + 401e7b: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 401e7f: 85 c0 test %eax,%eax + 401e81: 79 05 jns 401e88 + 401e83: e8 6e 3d 00 00 call 405bf6 + 401e88: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 401e8c: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 401e90: 7e e4 jle 401e76 + 401e92: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 401e99: eb 2f jmp 401eca + 401e9b: 8b 45 fc mov -0x4(%rbp),%eax + 401e9e: 48 98 cltq + 401ea0: 8b 54 85 e0 mov -0x20(%rbp,%rax,4),%edx + 401ea4: 8b 45 fc mov -0x4(%rbp),%eax + 401ea7: 83 c0 03 add $0x3,%eax + 401eaa: 48 98 cltq + 401eac: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 401eb0: 39 c2 cmp %eax,%edx + 401eb2: 75 0d jne 401ec1 + 401eb4: 8b 45 fc mov -0x4(%rbp),%eax + 401eb7: 48 98 cltq + 401eb9: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 401ebd: 85 c0 test %eax,%eax + 401ebf: 79 05 jns 401ec6 + 401ec1: e8 30 3d 00 00 call 405bf6 + 401ec6: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 401eca: 83 7d fc 02 cmpl $0x2,-0x4(%rbp) + 401ece: 7e cb jle 401e9b + 401ed0: 8b 55 e0 mov -0x20(%rbp),%edx + 401ed3: 8b 45 e4 mov -0x1c(%rbp),%eax + 401ed6: 39 c2 cmp %eax,%edx + 401ed8: 74 14 je 401eee + 401eda: 8b 55 e4 mov -0x1c(%rbp),%edx + 401edd: 8b 45 e8 mov -0x18(%rbp),%eax + 401ee0: 39 c2 cmp %eax,%edx + 401ee2: 74 0a je 401eee + 401ee4: 8b 55 e0 mov -0x20(%rbp),%edx + 401ee7: 8b 45 e8 mov -0x18(%rbp),%eax + 401eea: 39 c2 cmp %eax,%edx + 401eec: 75 05 jne 401ef3 + 401eee: e8 03 3d 00 00 call 405bf6 + 401ef3: 90 nop + 401ef4: c9 leave + 401ef5: c3 ret + +0000000000401ef6 : + 401ef6: f3 0f 1e fa endbr64 + 401efa: 55 push %rbp + 401efb: 48 89 e5 mov %rsp,%rbp + 401efe: 48 83 ec 30 sub $0x30,%rsp + 401f02: 48 89 7d d8 mov %rdi,-0x28(%rbp) + 401f06: 48 8d 55 e0 lea -0x20(%rbp),%rdx + 401f0a: 48 8b 45 d8 mov -0x28(%rbp),%rax + 401f0e: 48 89 d6 mov %rdx,%rsi + 401f11: 48 89 c7 mov %rax,%rdi + 401f14: e8 96 3a 00 00 call 4059af + 401f19: bf 0a 00 00 00 mov $0xa,%edi + 401f1e: e8 8a f7 ff ff call 4016ad + 401f23: 8b 45 e0 mov -0x20(%rbp),%eax + 401f26: 48 98 cltq + 401f28: 48 8b 15 f1 68 00 00 mov 0x68f1(%rip),%rdx # 408820 + 401f2f: 48 83 c2 01 add $0x1,%rdx + 401f33: 48 39 d0 cmp %rdx,%rax + 401f36: 74 05 je 401f3d + 401f38: e8 b9 3c 00 00 call 405bf6 + 401f3d: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 401f44: eb 16 jmp 401f5c + 401f46: 8b 45 fc mov -0x4(%rbp),%eax + 401f49: 48 98 cltq + 401f4b: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 401f4f: 85 c0 test %eax,%eax + 401f51: 79 05 jns 401f58 + 401f53: e8 9e 3c 00 00 call 405bf6 + 401f58: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 401f5c: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 401f60: 7e e4 jle 401f46 + 401f62: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 401f69: eb 24 jmp 401f8f + 401f6b: 8b 45 fc mov -0x4(%rbp),%eax + 401f6e: 48 98 cltq + 401f70: 8b 54 85 e0 mov -0x20(%rbp,%rax,4),%edx + 401f74: b8 05 00 00 00 mov $0x5,%eax + 401f79: 2b 45 fc sub -0x4(%rbp),%eax + 401f7c: 48 98 cltq + 401f7e: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 401f82: 39 c2 cmp %eax,%edx + 401f84: 74 05 je 401f8b + 401f86: e8 6b 3c 00 00 call 405bf6 + 401f8b: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 401f8f: 83 7d fc 02 cmpl $0x2,-0x4(%rbp) + 401f93: 7e d6 jle 401f6b + 401f95: 8b 55 e0 mov -0x20(%rbp),%edx + 401f98: 8b 45 e4 mov -0x1c(%rbp),%eax + 401f9b: 39 c2 cmp %eax,%edx + 401f9d: 74 14 je 401fb3 + 401f9f: 8b 55 e4 mov -0x1c(%rbp),%edx + 401fa2: 8b 45 e8 mov -0x18(%rbp),%eax + 401fa5: 39 c2 cmp %eax,%edx + 401fa7: 74 0a je 401fb3 + 401fa9: 8b 55 e0 mov -0x20(%rbp),%edx + 401fac: 8b 45 e8 mov -0x18(%rbp),%eax + 401faf: 39 c2 cmp %eax,%edx + 401fb1: 75 05 jne 401fb8 + 401fb3: e8 3e 3c 00 00 call 405bf6 + 401fb8: 90 nop + 401fb9: c9 leave + 401fba: c3 ret + +0000000000401fbb : + 401fbb: f3 0f 1e fa endbr64 + 401fbf: 55 push %rbp + 401fc0: 48 89 e5 mov %rsp,%rbp + 401fc3: 48 83 ec 30 sub $0x30,%rsp + 401fc7: 48 89 7d d8 mov %rdi,-0x28(%rbp) + 401fcb: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 401fd2: 48 8d 55 e0 lea -0x20(%rbp),%rdx + 401fd6: 48 8b 45 d8 mov -0x28(%rbp),%rax + 401fda: 48 89 d6 mov %rdx,%rsi + 401fdd: 48 89 c7 mov %rax,%rdi + 401fe0: e8 ca 39 00 00 call 4059af + 401fe5: bf 04 00 00 00 mov $0x4,%edi + 401fea: e8 be f6 ff ff call 4016ad + 401fef: 8b 45 e0 mov -0x20(%rbp),%eax + 401ff2: 48 98 cltq + 401ff4: 48 8b 15 25 68 00 00 mov 0x6825(%rip),%rdx # 408820 + 401ffb: 48 83 c2 01 add $0x1,%rdx + 401fff: 48 39 d0 cmp %rdx,%rax + 402002: 74 05 je 402009 + 402004: e8 ed 3b 00 00 call 405bf6 + 402009: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 402010: eb 16 jmp 402028 + 402012: 8b 45 fc mov -0x4(%rbp),%eax + 402015: 48 98 cltq + 402017: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 40201b: 85 c0 test %eax,%eax + 40201d: 79 05 jns 402024 + 40201f: e8 d2 3b 00 00 call 405bf6 + 402024: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 402028: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 40202c: 7e e4 jle 402012 + 40202e: c7 45 fc 01 00 00 00 movl $0x1,-0x4(%rbp) + 402035: eb 30 jmp 402067 + 402037: 8b 45 fc mov -0x4(%rbp),%eax + 40203a: 48 98 cltq + 40203c: 8b 54 85 e0 mov -0x20(%rbp,%rax,4),%edx + 402040: 8b 45 fc mov -0x4(%rbp),%eax + 402043: 83 e8 01 sub $0x1,%eax + 402046: 48 98 cltq + 402048: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 40204c: 01 c0 add %eax,%eax + 40204e: 39 c2 cmp %eax,%edx + 402050: 74 05 je 402057 + 402052: e8 9f 3b 00 00 call 405bf6 + 402057: 8b 45 fc mov -0x4(%rbp),%eax + 40205a: 48 98 cltq + 40205c: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 402060: 01 45 f8 add %eax,-0x8(%rbp) + 402063: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 402067: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 40206b: 7e ca jle 402037 + 40206d: 83 7d f8 00 cmpl $0x0,-0x8(%rbp) + 402071: 75 05 jne 402078 + 402073: e8 7e 3b 00 00 call 405bf6 + 402078: 90 nop + 402079: c9 leave + 40207a: c3 ret + +000000000040207b : + 40207b: f3 0f 1e fa endbr64 + 40207f: 55 push %rbp + 402080: 48 89 e5 mov %rsp,%rbp + 402083: 48 83 ec 30 sub $0x30,%rsp + 402087: 48 89 7d d8 mov %rdi,-0x28(%rbp) + 40208b: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 402092: 48 8d 55 e0 lea -0x20(%rbp),%rdx + 402096: 48 8b 45 d8 mov -0x28(%rbp),%rax + 40209a: 48 89 d6 mov %rdx,%rsi + 40209d: 48 89 c7 mov %rax,%rdi + 4020a0: e8 0a 39 00 00 call 4059af + 4020a5: bf 0a 00 00 00 mov $0xa,%edi + 4020aa: e8 fe f5 ff ff call 4016ad + 4020af: 8b 45 e0 mov -0x20(%rbp),%eax + 4020b2: 48 98 cltq + 4020b4: 48 8b 15 65 67 00 00 mov 0x6765(%rip),%rdx # 408820 + 4020bb: 48 83 c2 01 add $0x1,%rdx + 4020bf: 48 39 d0 cmp %rdx,%rax + 4020c2: 74 05 je 4020c9 + 4020c4: e8 2d 3b 00 00 call 405bf6 + 4020c9: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 4020d0: eb 16 jmp 4020e8 + 4020d2: 8b 45 fc mov -0x4(%rbp),%eax + 4020d5: 48 98 cltq + 4020d7: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 4020db: 85 c0 test %eax,%eax + 4020dd: 79 05 jns 4020e4 + 4020df: e8 12 3b 00 00 call 405bf6 + 4020e4: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 4020e8: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 4020ec: 7e e4 jle 4020d2 + 4020ee: c7 45 fc 02 00 00 00 movl $0x2,-0x4(%rbp) + 4020f5: eb 3c jmp 402133 + 4020f7: 8b 45 fc mov -0x4(%rbp),%eax + 4020fa: 48 98 cltq + 4020fc: 8b 54 85 e0 mov -0x20(%rbp,%rax,4),%edx + 402100: 8b 45 fc mov -0x4(%rbp),%eax + 402103: 83 e8 01 sub $0x1,%eax + 402106: 48 98 cltq + 402108: 8b 4c 85 e0 mov -0x20(%rbp,%rax,4),%ecx + 40210c: 8b 45 fc mov -0x4(%rbp),%eax + 40210f: 83 e8 02 sub $0x2,%eax + 402112: 48 98 cltq + 402114: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 402118: 01 c8 add %ecx,%eax + 40211a: 39 c2 cmp %eax,%edx + 40211c: 74 05 je 402123 + 40211e: e8 d3 3a 00 00 call 405bf6 + 402123: 8b 45 fc mov -0x4(%rbp),%eax + 402126: 48 98 cltq + 402128: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 40212c: 01 45 f8 add %eax,-0x8(%rbp) + 40212f: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 402133: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 402137: 7e be jle 4020f7 + 402139: 83 7d f8 00 cmpl $0x0,-0x8(%rbp) + 40213d: 75 05 jne 402144 + 40213f: e8 b2 3a 00 00 call 405bf6 + 402144: 90 nop + 402145: c9 leave + 402146: c3 ret + +0000000000402147 : + 402147: f3 0f 1e fa endbr64 + 40214b: 55 push %rbp + 40214c: 48 89 e5 mov %rsp,%rbp + 40214f: 48 83 ec 30 sub $0x30,%rsp + 402153: 48 89 7d d8 mov %rdi,-0x28(%rbp) + 402157: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 40215e: 48 8d 55 e0 lea -0x20(%rbp),%rdx + 402162: 48 8b 45 d8 mov -0x28(%rbp),%rax + 402166: 48 89 d6 mov %rdx,%rsi + 402169: 48 89 c7 mov %rax,%rdi + 40216c: e8 3e 38 00 00 call 4059af + 402171: bf 0a 00 00 00 mov $0xa,%edi + 402176: e8 32 f5 ff ff call 4016ad + 40217b: 8b 45 e0 mov -0x20(%rbp),%eax + 40217e: 48 98 cltq + 402180: 48 8b 15 99 66 00 00 mov 0x6699(%rip),%rdx # 408820 + 402187: 48 83 c2 01 add $0x1,%rdx + 40218b: 48 39 d0 cmp %rdx,%rax + 40218e: 74 05 je 402195 + 402190: e8 61 3a 00 00 call 405bf6 + 402195: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 40219c: eb 16 jmp 4021b4 + 40219e: 8b 45 fc mov -0x4(%rbp),%eax + 4021a1: 48 98 cltq + 4021a3: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 4021a7: 85 c0 test %eax,%eax + 4021a9: 79 05 jns 4021b0 + 4021ab: e8 46 3a 00 00 call 405bf6 + 4021b0: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 4021b4: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 4021b8: 7e e4 jle 40219e + 4021ba: c7 45 fc 02 00 00 00 movl $0x2,-0x4(%rbp) + 4021c1: eb 3d jmp 402200 + 4021c3: 8b 45 fc mov -0x4(%rbp),%eax + 4021c6: 48 98 cltq + 4021c8: 8b 54 85 e0 mov -0x20(%rbp,%rax,4),%edx + 4021cc: 8b 45 fc mov -0x4(%rbp),%eax + 4021cf: 83 e8 01 sub $0x1,%eax + 4021d2: 48 98 cltq + 4021d4: 8b 4c 85 e0 mov -0x20(%rbp,%rax,4),%ecx + 4021d8: 8b 45 fc mov -0x4(%rbp),%eax + 4021db: 83 e8 02 sub $0x2,%eax + 4021de: 48 98 cltq + 4021e0: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 4021e4: 0f af c1 imul %ecx,%eax + 4021e7: 39 c2 cmp %eax,%edx + 4021e9: 74 05 je 4021f0 + 4021eb: e8 06 3a 00 00 call 405bf6 + 4021f0: 8b 45 fc mov -0x4(%rbp),%eax + 4021f3: 48 98 cltq + 4021f5: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 4021f9: 01 45 f8 add %eax,-0x8(%rbp) + 4021fc: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 402200: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 402204: 7e bd jle 4021c3 + 402206: 83 7d f8 04 cmpl $0x4,-0x8(%rbp) + 40220a: 7f 05 jg 402211 + 40220c: e8 e5 39 00 00 call 405bf6 + 402211: 90 nop + 402212: c9 leave + 402213: c3 ret + +0000000000402214 : + 402214: f3 0f 1e fa endbr64 + 402218: 55 push %rbp + 402219: 48 89 e5 mov %rsp,%rbp + 40221c: 48 83 ec 30 sub $0x30,%rsp + 402220: 48 89 7d d8 mov %rdi,-0x28(%rbp) + 402224: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 40222b: 48 8d 55 e0 lea -0x20(%rbp),%rdx + 40222f: 48 8b 45 d8 mov -0x28(%rbp),%rax + 402233: 48 89 d6 mov %rdx,%rsi + 402236: 48 89 c7 mov %rax,%rdi + 402239: e8 71 37 00 00 call 4059af + 40223e: bf 0a 00 00 00 mov $0xa,%edi + 402243: e8 65 f4 ff ff call 4016ad + 402248: 8b 45 e0 mov -0x20(%rbp),%eax + 40224b: 48 98 cltq + 40224d: 48 8b 15 cc 65 00 00 mov 0x65cc(%rip),%rdx # 408820 + 402254: 48 83 c2 01 add $0x1,%rdx + 402258: 48 39 d0 cmp %rdx,%rax + 40225b: 74 05 je 402262 + 40225d: e8 94 39 00 00 call 405bf6 + 402262: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 402269: eb 16 jmp 402281 + 40226b: 8b 45 fc mov -0x4(%rbp),%eax + 40226e: 48 98 cltq + 402270: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 402274: 85 c0 test %eax,%eax + 402276: 79 05 jns 40227d + 402278: e8 79 39 00 00 call 405bf6 + 40227d: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 402281: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 402285: 7e e4 jle 40226b + 402287: c7 45 fc 02 00 00 00 movl $0x2,-0x4(%rbp) + 40228e: eb 3e jmp 4022ce + 402290: 8b 45 fc mov -0x4(%rbp),%eax + 402293: 48 98 cltq + 402295: 8b 54 85 e0 mov -0x20(%rbp,%rax,4),%edx + 402299: 8b 45 fc mov -0x4(%rbp),%eax + 40229c: 83 e8 01 sub $0x1,%eax + 40229f: 48 98 cltq + 4022a1: 8b 4c 85 e0 mov -0x20(%rbp,%rax,4),%ecx + 4022a5: 8b 45 fc mov -0x4(%rbp),%eax + 4022a8: 83 e8 02 sub $0x2,%eax + 4022ab: 48 98 cltq + 4022ad: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 4022b1: 01 c8 add %ecx,%eax + 4022b3: 01 c0 add %eax,%eax + 4022b5: 39 c2 cmp %eax,%edx + 4022b7: 74 05 je 4022be + 4022b9: e8 38 39 00 00 call 405bf6 + 4022be: 8b 45 fc mov -0x4(%rbp),%eax + 4022c1: 48 98 cltq + 4022c3: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 4022c7: 01 45 f8 add %eax,-0x8(%rbp) + 4022ca: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 4022ce: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 4022d2: 7e bc jle 402290 + 4022d4: 83 7d f8 04 cmpl $0x4,-0x8(%rbp) + 4022d8: 7f 05 jg 4022df + 4022da: e8 17 39 00 00 call 405bf6 + 4022df: 90 nop + 4022e0: c9 leave + 4022e1: c3 ret + +00000000004022e2 : + 4022e2: f3 0f 1e fa endbr64 + 4022e6: 55 push %rbp + 4022e7: 48 89 e5 mov %rsp,%rbp + 4022ea: 48 83 ec 30 sub $0x30,%rsp + 4022ee: 48 89 7d d8 mov %rdi,-0x28(%rbp) + 4022f2: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 4022f9: 48 8d 55 e0 lea -0x20(%rbp),%rdx + 4022fd: 48 8b 45 d8 mov -0x28(%rbp),%rax + 402301: 48 89 d6 mov %rdx,%rsi + 402304: 48 89 c7 mov %rax,%rdi + 402307: e8 a3 36 00 00 call 4059af + 40230c: bf 0a 00 00 00 mov $0xa,%edi + 402311: e8 97 f3 ff ff call 4016ad + 402316: 8b 45 e0 mov -0x20(%rbp),%eax + 402319: 48 98 cltq + 40231b: 48 8b 15 fe 64 00 00 mov 0x64fe(%rip),%rdx # 408820 + 402322: 48 83 c2 01 add $0x1,%rdx + 402326: 48 39 d0 cmp %rdx,%rax + 402329: 74 05 je 402330 + 40232b: e8 c6 38 00 00 call 405bf6 + 402330: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 402337: eb 16 jmp 40234f + 402339: 8b 45 fc mov -0x4(%rbp),%eax + 40233c: 48 98 cltq + 40233e: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 402342: 85 c0 test %eax,%eax + 402344: 79 05 jns 40234b + 402346: e8 ab 38 00 00 call 405bf6 + 40234b: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 40234f: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 402353: 7e e4 jle 402339 + 402355: c7 45 fc 01 00 00 00 movl $0x1,-0x4(%rbp) + 40235c: eb 33 jmp 402391 + 40235e: 8b 45 fc mov -0x4(%rbp),%eax + 402361: 48 98 cltq + 402363: 8b 54 85 e0 mov -0x20(%rbp,%rax,4),%edx + 402367: 8b 45 fc mov -0x4(%rbp),%eax + 40236a: 83 e8 01 sub $0x1,%eax + 40236d: 48 98 cltq + 40236f: 8b 4c 85 e0 mov -0x20(%rbp,%rax,4),%ecx + 402373: 8b 45 fc mov -0x4(%rbp),%eax + 402376: 01 c8 add %ecx,%eax + 402378: 39 c2 cmp %eax,%edx + 40237a: 74 05 je 402381 + 40237c: e8 75 38 00 00 call 405bf6 + 402381: 8b 45 fc mov -0x4(%rbp),%eax + 402384: 48 98 cltq + 402386: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 40238a: 01 45 f8 add %eax,-0x8(%rbp) + 40238d: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 402391: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 402395: 7e c7 jle 40235e + 402397: 83 7d f8 04 cmpl $0x4,-0x8(%rbp) + 40239b: 7f 05 jg 4023a2 + 40239d: e8 54 38 00 00 call 405bf6 + 4023a2: 90 nop + 4023a3: c9 leave + 4023a4: c3 ret + +00000000004023a5 : + 4023a5: f3 0f 1e fa endbr64 + 4023a9: 55 push %rbp + 4023aa: 48 89 e5 mov %rsp,%rbp + 4023ad: 48 83 ec 30 sub $0x30,%rsp + 4023b1: 48 89 7d d8 mov %rdi,-0x28(%rbp) + 4023b5: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 4023bc: 48 8d 55 e0 lea -0x20(%rbp),%rdx + 4023c0: 48 8b 45 d8 mov -0x28(%rbp),%rax + 4023c4: 48 89 d6 mov %rdx,%rsi + 4023c7: 48 89 c7 mov %rax,%rdi + 4023ca: e8 e0 35 00 00 call 4059af + 4023cf: bf 32 00 00 00 mov $0x32,%edi + 4023d4: e8 d4 f2 ff ff call 4016ad + 4023d9: 8b 45 e0 mov -0x20(%rbp),%eax + 4023dc: 48 98 cltq + 4023de: 48 8b 15 3b 64 00 00 mov 0x643b(%rip),%rdx # 408820 + 4023e5: 48 83 c2 10 add $0x10,%rdx + 4023e9: 48 39 d0 cmp %rdx,%rax + 4023ec: 74 05 je 4023f3 + 4023ee: e8 03 38 00 00 call 405bf6 + 4023f3: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 4023fa: eb 16 jmp 402412 + 4023fc: 8b 45 fc mov -0x4(%rbp),%eax + 4023ff: 48 98 cltq + 402401: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 402405: 85 c0 test %eax,%eax + 402407: 79 05 jns 40240e + 402409: e8 e8 37 00 00 call 405bf6 + 40240e: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 402412: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 402416: 7e e4 jle 4023fc + 402418: c7 45 fc 01 00 00 00 movl $0x1,-0x4(%rbp) + 40241f: eb 3e jmp 40245f + 402421: 8b 45 fc mov -0x4(%rbp),%eax + 402424: 48 98 cltq + 402426: 8b 54 85 e0 mov -0x20(%rbp,%rax,4),%edx + 40242a: 8b 45 fc mov -0x4(%rbp),%eax + 40242d: 83 e8 01 sub $0x1,%eax + 402430: 48 98 cltq + 402432: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 402436: 2b 45 fc sub -0x4(%rbp),%eax + 402439: 39 c2 cmp %eax,%edx + 40243b: 75 0d jne 40244a + 40243d: 8b 45 fc mov -0x4(%rbp),%eax + 402440: 48 98 cltq + 402442: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 402446: 85 c0 test %eax,%eax + 402448: 7f 05 jg 40244f + 40244a: e8 a7 37 00 00 call 405bf6 + 40244f: 8b 45 fc mov -0x4(%rbp),%eax + 402452: 48 98 cltq + 402454: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 402458: 01 45 f8 add %eax,-0x8(%rbp) + 40245b: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 40245f: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 402463: 7e bc jle 402421 + 402465: 83 7d f8 04 cmpl $0x4,-0x8(%rbp) + 402469: 7f 05 jg 402470 + 40246b: e8 86 37 00 00 call 405bf6 + 402470: 90 nop + 402471: c9 leave + 402472: c3 ret + +0000000000402473 : + 402473: f3 0f 1e fa endbr64 + 402477: 55 push %rbp + 402478: 48 89 e5 mov %rsp,%rbp + 40247b: 48 83 ec 30 sub $0x30,%rsp + 40247f: 48 89 7d d8 mov %rdi,-0x28(%rbp) + 402483: 48 8d 55 e0 lea -0x20(%rbp),%rdx + 402487: 48 8b 45 d8 mov -0x28(%rbp),%rax + 40248b: 48 89 d6 mov %rdx,%rsi + 40248e: 48 89 c7 mov %rax,%rdi + 402491: e8 19 35 00 00 call 4059af + 402496: bf 32 00 00 00 mov $0x32,%edi + 40249b: e8 0d f2 ff ff call 4016ad + 4024a0: 8b 45 f4 mov -0xc(%rbp),%eax + 4024a3: 48 98 cltq + 4024a5: 48 8b 15 74 63 00 00 mov 0x6374(%rip),%rdx # 408820 + 4024ac: 48 83 c2 10 add $0x10,%rdx + 4024b0: 48 39 d0 cmp %rdx,%rax + 4024b3: 74 05 je 4024ba + 4024b5: e8 3c 37 00 00 call 405bf6 + 4024ba: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 4024c1: eb 16 jmp 4024d9 + 4024c3: 8b 45 fc mov -0x4(%rbp),%eax + 4024c6: 48 98 cltq + 4024c8: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 4024cc: 85 c0 test %eax,%eax + 4024ce: 79 05 jns 4024d5 + 4024d0: e8 21 37 00 00 call 405bf6 + 4024d5: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 4024d9: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 4024dd: 7e e4 jle 4024c3 + 4024df: c7 45 fc 01 00 00 00 movl $0x1,-0x4(%rbp) + 4024e6: eb 2f jmp 402517 + 4024e8: 8b 45 fc mov -0x4(%rbp),%eax + 4024eb: 48 98 cltq + 4024ed: 8b 54 85 e0 mov -0x20(%rbp,%rax,4),%edx + 4024f1: 8b 45 fc mov -0x4(%rbp),%eax + 4024f4: 83 e8 01 sub $0x1,%eax + 4024f7: 48 98 cltq + 4024f9: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 4024fd: 39 c2 cmp %eax,%edx + 4024ff: 7c 0d jl 40250e + 402501: 8b 45 fc mov -0x4(%rbp),%eax + 402504: 48 98 cltq + 402506: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 40250a: 85 c0 test %eax,%eax + 40250c: 7f 05 jg 402513 + 40250e: e8 e3 36 00 00 call 405bf6 + 402513: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 402517: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 40251b: 7e cb jle 4024e8 + 40251d: 90 nop + 40251e: 90 nop + 40251f: c9 leave + 402520: c3 ret + +0000000000402521 : + 402521: f3 0f 1e fa endbr64 + 402525: 55 push %rbp + 402526: 48 89 e5 mov %rsp,%rbp + 402529: 48 83 ec 30 sub $0x30,%rsp + 40252d: 48 89 7d d8 mov %rdi,-0x28(%rbp) + 402531: 48 8d 55 e0 lea -0x20(%rbp),%rdx + 402535: 48 8b 45 d8 mov -0x28(%rbp),%rax + 402539: 48 89 d6 mov %rdx,%rsi + 40253c: 48 89 c7 mov %rax,%rdi + 40253f: e8 6b 34 00 00 call 4059af + 402544: bf 32 00 00 00 mov $0x32,%edi + 402549: e8 5f f1 ff ff call 4016ad + 40254e: 8b 45 f4 mov -0xc(%rbp),%eax + 402551: 48 98 cltq + 402553: 48 8b 15 c6 62 00 00 mov 0x62c6(%rip),%rdx # 408820 + 40255a: 48 83 c2 10 add $0x10,%rdx + 40255e: 48 39 d0 cmp %rdx,%rax + 402561: 74 05 je 402568 + 402563: e8 8e 36 00 00 call 405bf6 + 402568: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 40256f: eb 16 jmp 402587 + 402571: 8b 45 fc mov -0x4(%rbp),%eax + 402574: 48 98 cltq + 402576: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 40257a: 85 c0 test %eax,%eax + 40257c: 79 05 jns 402583 + 40257e: e8 73 36 00 00 call 405bf6 + 402583: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 402587: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 40258b: 7e e4 jle 402571 + 40258d: c7 45 fc 01 00 00 00 movl $0x1,-0x4(%rbp) + 402594: eb 2f jmp 4025c5 + 402596: 8b 45 fc mov -0x4(%rbp),%eax + 402599: 48 98 cltq + 40259b: 8b 54 85 e0 mov -0x20(%rbp,%rax,4),%edx + 40259f: 8b 45 fc mov -0x4(%rbp),%eax + 4025a2: 83 e8 01 sub $0x1,%eax + 4025a5: 48 98 cltq + 4025a7: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 4025ab: 39 c2 cmp %eax,%edx + 4025ad: 7f 0d jg 4025bc + 4025af: 8b 45 fc mov -0x4(%rbp),%eax + 4025b2: 48 98 cltq + 4025b4: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 4025b8: 85 c0 test %eax,%eax + 4025ba: 7f 05 jg 4025c1 + 4025bc: e8 35 36 00 00 call 405bf6 + 4025c1: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 4025c5: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 4025c9: 7e cb jle 402596 + 4025cb: 90 nop + 4025cc: 90 nop + 4025cd: c9 leave + 4025ce: c3 ret + +00000000004025cf : + 4025cf: f3 0f 1e fa endbr64 + 4025d3: 55 push %rbp + 4025d4: 48 89 e5 mov %rsp,%rbp + 4025d7: 48 83 ec 30 sub $0x30,%rsp + 4025db: 48 89 7d d8 mov %rdi,-0x28(%rbp) + 4025df: 48 8d 55 e0 lea -0x20(%rbp),%rdx + 4025e3: 48 8b 45 d8 mov -0x28(%rbp),%rax + 4025e7: 48 89 d6 mov %rdx,%rsi + 4025ea: 48 89 c7 mov %rax,%rdi + 4025ed: e8 bd 33 00 00 call 4059af + 4025f2: bf 32 00 00 00 mov $0x32,%edi + 4025f7: e8 b1 f0 ff ff call 4016ad + 4025fc: 8b 45 f4 mov -0xc(%rbp),%eax + 4025ff: 48 98 cltq + 402601: 48 8b 15 18 62 00 00 mov 0x6218(%rip),%rdx # 408820 + 402608: 48 83 c2 10 add $0x10,%rdx + 40260c: 48 39 d0 cmp %rdx,%rax + 40260f: 74 05 je 402616 + 402611: e8 e0 35 00 00 call 405bf6 + 402616: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 40261d: eb 16 jmp 402635 + 40261f: 8b 45 fc mov -0x4(%rbp),%eax + 402622: 48 98 cltq + 402624: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 402628: 85 c0 test %eax,%eax + 40262a: 79 05 jns 402631 + 40262c: e8 c5 35 00 00 call 405bf6 + 402631: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 402635: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 402639: 7e e4 jle 40261f + 40263b: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 402642: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 402649: eb 22 jmp 40266d + 40264b: 8b 45 fc mov -0x4(%rbp),%eax + 40264e: 48 98 cltq + 402650: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 402654: 85 c0 test %eax,%eax + 402656: 7f 05 jg 40265d + 402658: e8 99 35 00 00 call 405bf6 + 40265d: 8b 45 fc mov -0x4(%rbp),%eax + 402660: 48 98 cltq + 402662: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 402666: 01 45 f8 add %eax,-0x8(%rbp) + 402669: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 40266d: 83 7d fc 04 cmpl $0x4,-0x4(%rbp) + 402671: 7e d8 jle 40264b + 402673: 8b 45 f4 mov -0xc(%rbp),%eax + 402676: 39 45 f8 cmp %eax,-0x8(%rbp) + 402679: 74 05 je 402680 + 40267b: e8 76 35 00 00 call 405bf6 + 402680: 90 nop + 402681: c9 leave + 402682: c3 ret + +0000000000402683 : + 402683: f3 0f 1e fa endbr64 + 402687: 55 push %rbp + 402688: 48 89 e5 mov %rsp,%rbp + 40268b: 48 83 ec 30 sub $0x30,%rsp + 40268f: 48 89 7d d8 mov %rdi,-0x28(%rbp) + 402693: 48 8d 55 e0 lea -0x20(%rbp),%rdx + 402697: 48 8b 45 d8 mov -0x28(%rbp),%rax + 40269b: 48 89 d6 mov %rdx,%rsi + 40269e: 48 89 c7 mov %rax,%rdi + 4026a1: e8 09 33 00 00 call 4059af + 4026a6: bf 32 00 00 00 mov $0x32,%edi + 4026ab: e8 fd ef ff ff call 4016ad + 4026b0: 8b 45 e0 mov -0x20(%rbp),%eax + 4026b3: 48 98 cltq + 4026b5: 48 8b 15 64 61 00 00 mov 0x6164(%rip),%rdx # 408820 + 4026bc: 48 83 c2 10 add $0x10,%rdx + 4026c0: 48 39 d0 cmp %rdx,%rax + 4026c3: 74 05 je 4026ca + 4026c5: e8 2c 35 00 00 call 405bf6 + 4026ca: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 4026d1: eb 16 jmp 4026e9 + 4026d3: 8b 45 fc mov -0x4(%rbp),%eax + 4026d6: 48 98 cltq + 4026d8: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 4026dc: 85 c0 test %eax,%eax + 4026de: 79 05 jns 4026e5 + 4026e0: e8 11 35 00 00 call 405bf6 + 4026e5: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 4026e9: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 4026ed: 7e e4 jle 4026d3 + 4026ef: c7 45 fc 01 00 00 00 movl $0x1,-0x4(%rbp) + 4026f6: eb 2f jmp 402727 + 4026f8: 8b 45 fc mov -0x4(%rbp),%eax + 4026fb: 48 98 cltq + 4026fd: 8b 54 85 e0 mov -0x20(%rbp,%rax,4),%edx + 402701: 8b 45 fc mov -0x4(%rbp),%eax + 402704: 83 e8 01 sub $0x1,%eax + 402707: 48 98 cltq + 402709: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 40270d: 39 c2 cmp %eax,%edx + 40270f: 7c 0d jl 40271e + 402711: 8b 45 fc mov -0x4(%rbp),%eax + 402714: 48 98 cltq + 402716: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 40271a: 85 c0 test %eax,%eax + 40271c: 7f 05 jg 402723 + 40271e: e8 d3 34 00 00 call 405bf6 + 402723: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 402727: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 40272b: 7e cb jle 4026f8 + 40272d: 90 nop + 40272e: 90 nop + 40272f: c9 leave + 402730: c3 ret + +0000000000402731 : + 402731: f3 0f 1e fa endbr64 + 402735: 55 push %rbp + 402736: 48 89 e5 mov %rsp,%rbp + 402739: 48 83 ec 30 sub $0x30,%rsp + 40273d: 48 89 7d d8 mov %rdi,-0x28(%rbp) + 402741: 48 8d 55 e0 lea -0x20(%rbp),%rdx + 402745: 48 8b 45 d8 mov -0x28(%rbp),%rax + 402749: 48 89 d6 mov %rdx,%rsi + 40274c: 48 89 c7 mov %rax,%rdi + 40274f: e8 5b 32 00 00 call 4059af + 402754: bf 32 00 00 00 mov $0x32,%edi + 402759: e8 4f ef ff ff call 4016ad + 40275e: 8b 45 e0 mov -0x20(%rbp),%eax + 402761: 48 98 cltq + 402763: 48 8b 15 b6 60 00 00 mov 0x60b6(%rip),%rdx # 408820 + 40276a: 48 83 c2 10 add $0x10,%rdx + 40276e: 48 39 d0 cmp %rdx,%rax + 402771: 74 05 je 402778 + 402773: e8 7e 34 00 00 call 405bf6 + 402778: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 40277f: eb 16 jmp 402797 + 402781: 8b 45 fc mov -0x4(%rbp),%eax + 402784: 48 98 cltq + 402786: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 40278a: 85 c0 test %eax,%eax + 40278c: 79 05 jns 402793 + 40278e: e8 63 34 00 00 call 405bf6 + 402793: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 402797: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 40279b: 7e e4 jle 402781 + 40279d: c7 45 fc 01 00 00 00 movl $0x1,-0x4(%rbp) + 4027a4: eb 2f jmp 4027d5 + 4027a6: 8b 45 fc mov -0x4(%rbp),%eax + 4027a9: 48 98 cltq + 4027ab: 8b 54 85 e0 mov -0x20(%rbp,%rax,4),%edx + 4027af: 8b 45 fc mov -0x4(%rbp),%eax + 4027b2: 83 e8 01 sub $0x1,%eax + 4027b5: 48 98 cltq + 4027b7: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 4027bb: 39 c2 cmp %eax,%edx + 4027bd: 7f 0d jg 4027cc + 4027bf: 8b 45 fc mov -0x4(%rbp),%eax + 4027c2: 48 98 cltq + 4027c4: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 4027c8: 85 c0 test %eax,%eax + 4027ca: 7f 05 jg 4027d1 + 4027cc: e8 25 34 00 00 call 405bf6 + 4027d1: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 4027d5: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 4027d9: 7e cb jle 4027a6 + 4027db: 90 nop + 4027dc: 90 nop + 4027dd: c9 leave + 4027de: c3 ret + +00000000004027df : + 4027df: f3 0f 1e fa endbr64 + 4027e3: 55 push %rbp + 4027e4: 48 89 e5 mov %rsp,%rbp + 4027e7: 48 83 ec 30 sub $0x30,%rsp + 4027eb: 48 89 7d d8 mov %rdi,-0x28(%rbp) + 4027ef: 48 8d 55 e0 lea -0x20(%rbp),%rdx + 4027f3: 48 8b 45 d8 mov -0x28(%rbp),%rax + 4027f7: 48 89 d6 mov %rdx,%rsi + 4027fa: 48 89 c7 mov %rax,%rdi + 4027fd: e8 ad 31 00 00 call 4059af + 402802: bf 32 00 00 00 mov $0x32,%edi + 402807: e8 a1 ee ff ff call 4016ad + 40280c: 8b 45 e0 mov -0x20(%rbp),%eax + 40280f: 48 98 cltq + 402811: 48 8b 15 08 60 00 00 mov 0x6008(%rip),%rdx # 408820 + 402818: 48 83 c2 10 add $0x10,%rdx + 40281c: 48 39 d0 cmp %rdx,%rax + 40281f: 74 05 je 402826 + 402821: e8 d0 33 00 00 call 405bf6 + 402826: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 40282d: eb 16 jmp 402845 + 40282f: 8b 45 fc mov -0x4(%rbp),%eax + 402832: 48 98 cltq + 402834: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 402838: 85 c0 test %eax,%eax + 40283a: 79 05 jns 402841 + 40283c: e8 b5 33 00 00 call 405bf6 + 402841: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 402845: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 402849: 7e e4 jle 40282f + 40284b: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 402852: c7 45 fc 01 00 00 00 movl $0x1,-0x4(%rbp) + 402859: eb 22 jmp 40287d + 40285b: 8b 45 fc mov -0x4(%rbp),%eax + 40285e: 48 98 cltq + 402860: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 402864: 85 c0 test %eax,%eax + 402866: 7f 05 jg 40286d + 402868: e8 89 33 00 00 call 405bf6 + 40286d: 8b 45 fc mov -0x4(%rbp),%eax + 402870: 48 98 cltq + 402872: 8b 44 85 e0 mov -0x20(%rbp,%rax,4),%eax + 402876: 01 45 f8 add %eax,-0x8(%rbp) + 402879: 83 45 fc 01 addl $0x1,-0x4(%rbp) + 40287d: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 402881: 7e d8 jle 40285b + 402883: 8b 45 e0 mov -0x20(%rbp),%eax + 402886: 39 45 f8 cmp %eax,-0x8(%rbp) + 402889: 74 05 je 402890 + 40288b: e8 66 33 00 00 call 405bf6 + 402890: 90 nop + 402891: c9 leave + 402892: c3 ret + +0000000000402893 : + 402893: f3 0f 1e fa endbr64 + 402897: 55 push %rbp + 402898: 48 89 e5 mov %rsp,%rbp + 40289b: 48 83 ec 10 sub $0x10,%rsp + 40289f: 48 89 7d f8 mov %rdi,-0x8(%rbp) + 4028a3: bf 0e 00 00 00 mov $0xe,%edi + 4028a8: e8 00 ee ff ff call 4016ad + 4028ad: 48 8b 05 6c 5f 00 00 mov 0x5f6c(%rip),%rax # 408820 + 4028b4: 48 83 f8 0d cmp $0xd,%rax + 4028b8: 0f 87 f4 00 00 00 ja 4029b2 + 4028be: 48 8d 14 85 00 00 00 lea 0x0(,%rax,4),%rdx + 4028c5: 00 + 4028c6: 48 8d 05 87 3d 00 00 lea 0x3d87(%rip),%rax # 406654 <_IO_stdin_used+0x654> + 4028cd: 8b 04 02 mov (%rdx,%rax,1),%eax + 4028d0: 48 98 cltq + 4028d2: 48 8d 15 7b 3d 00 00 lea 0x3d7b(%rip),%rdx # 406654 <_IO_stdin_used+0x654> + 4028d9: 48 01 d0 add %rdx,%rax + 4028dc: 3e ff e0 notrack jmp *%rax + 4028df: 48 8b 45 f8 mov -0x8(%rbp),%rax + 4028e3: 48 89 c7 mov %rax,%rdi + 4028e6: e8 d0 00 00 00 call 4029bb + 4028eb: e9 c8 00 00 00 jmp 4029b8 + 4028f0: 48 8b 45 f8 mov -0x8(%rbp),%rax + 4028f4: 48 89 c7 mov %rax,%rdi + 4028f7: e8 f2 01 00 00 call 402aee + 4028fc: e9 b7 00 00 00 jmp 4029b8 + 402901: 48 8b 45 f8 mov -0x8(%rbp),%rax + 402905: 48 89 c7 mov %rax,%rdi + 402908: e8 1a 03 00 00 call 402c27 + 40290d: e9 a6 00 00 00 jmp 4029b8 + 402912: 48 8b 45 f8 mov -0x8(%rbp),%rax + 402916: 48 89 c7 mov %rax,%rdi + 402919: e8 57 04 00 00 call 402d75 + 40291e: e9 95 00 00 00 jmp 4029b8 + 402923: 48 8b 45 f8 mov -0x8(%rbp),%rax + 402927: 48 89 c7 mov %rax,%rdi + 40292a: e8 94 05 00 00 call 402ec3 + 40292f: e9 84 00 00 00 jmp 4029b8 + 402934: 48 8b 45 f8 mov -0x8(%rbp),%rax + 402938: 48 89 c7 mov %rax,%rdi + 40293b: e8 c1 06 00 00 call 403001 + 402940: eb 76 jmp 4029b8 + 402942: 48 8b 45 f8 mov -0x8(%rbp),%rax + 402946: 48 89 c7 mov %rax,%rdi + 402949: e8 36 08 00 00 call 403184 + 40294e: eb 68 jmp 4029b8 + 402950: 48 8b 45 f8 mov -0x8(%rbp),%rax + 402954: 48 89 c7 mov %rax,%rdi + 402957: e8 c9 09 00 00 call 403325 + 40295c: eb 5a jmp 4029b8 + 40295e: 48 8b 45 f8 mov -0x8(%rbp),%rax + 402962: 48 89 c7 mov %rax,%rdi + 402965: e8 6b 0b 00 00 call 4034d5 + 40296a: eb 4c jmp 4029b8 + 40296c: 48 8b 45 f8 mov -0x8(%rbp),%rax + 402970: 48 89 c7 mov %rax,%rdi + 402973: e8 13 0d 00 00 call 40368b + 402978: eb 3e jmp 4029b8 + 40297a: 48 8b 45 f8 mov -0x8(%rbp),%rax + 40297e: 48 89 c7 mov %rax,%rdi + 402981: e8 b9 0e 00 00 call 40383f + 402986: eb 30 jmp 4029b8 + 402988: 48 8b 45 f8 mov -0x8(%rbp),%rax + 40298c: 48 89 c7 mov %rax,%rdi + 40298f: e8 61 10 00 00 call 4039f5 + 402994: eb 22 jmp 4029b8 + 402996: 48 8b 45 f8 mov -0x8(%rbp),%rax + 40299a: 48 89 c7 mov %rax,%rdi + 40299d: e8 3a 14 00 00 call 403ddc + 4029a2: eb 14 jmp 4029b8 + 4029a4: 48 8b 45 f8 mov -0x8(%rbp),%rax + 4029a8: 48 89 c7 mov %rax,%rdi + 4029ab: e8 19 18 00 00 call 4041c9 + 4029b0: eb 06 jmp 4029b8 + 4029b2: e8 3f 32 00 00 call 405bf6 + 4029b7: 90 nop + 4029b8: 90 nop + 4029b9: c9 leave + 4029ba: c3 ret + +00000000004029bb : + 4029bb: f3 0f 1e fa endbr64 + 4029bf: 55 push %rbp + 4029c0: 48 89 e5 mov %rsp,%rbp + 4029c3: 48 83 ec 20 sub $0x20,%rsp + 4029c7: 48 89 7d e8 mov %rdi,-0x18(%rbp) + 4029cb: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 4029d2: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 4029d9: 48 8d 4d f0 lea -0x10(%rbp),%rcx + 4029dd: 48 8d 55 f4 lea -0xc(%rbp),%rdx + 4029e1: 48 8b 45 e8 mov -0x18(%rbp),%rax + 4029e5: 48 8d 35 a0 3c 00 00 lea 0x3ca0(%rip),%rsi # 40668c <_IO_stdin_used+0x68c> + 4029ec: 48 89 c7 mov %rax,%rdi + 4029ef: b8 00 00 00 00 mov $0x0,%eax + 4029f4: e8 97 e7 ff ff call 401190 <__isoc99_sscanf@plt> + 4029f9: 89 45 f8 mov %eax,-0x8(%rbp) + 4029fc: 83 7d f8 01 cmpl $0x1,-0x8(%rbp) + 402a00: 7f 05 jg 402a07 + 402a02: e8 ef 31 00 00 call 405bf6 + 402a07: bf 08 00 00 00 mov $0x8,%edi + 402a0c: e8 9c ec ff ff call 4016ad + 402a11: 8b 45 f4 mov -0xc(%rbp),%eax + 402a14: 48 63 d0 movslq %eax,%rdx + 402a17: 48 8b 05 02 5e 00 00 mov 0x5e02(%rip),%rax # 408820 + 402a1e: 48 39 c2 cmp %rax,%rdx + 402a21: 74 05 je 402a28 + 402a23: e8 ce 31 00 00 call 405bf6 + 402a28: bf c8 00 00 00 mov $0xc8,%edi + 402a2d: e8 7b ec ff ff call 4016ad + 402a32: 8b 45 f4 mov -0xc(%rbp),%eax + 402a35: 83 f8 07 cmp $0x7,%eax + 402a38: 0f 87 9b 00 00 00 ja 402ad9 + 402a3e: 89 c0 mov %eax,%eax + 402a40: 48 8d 14 85 00 00 00 lea 0x0(,%rax,4),%rdx + 402a47: 00 + 402a48: 48 8d 05 45 3c 00 00 lea 0x3c45(%rip),%rax # 406694 <_IO_stdin_used+0x694> + 402a4f: 8b 04 02 mov (%rdx,%rax,1),%eax + 402a52: 48 98 cltq + 402a54: 48 8d 15 39 3c 00 00 lea 0x3c39(%rip),%rdx # 406694 <_IO_stdin_used+0x694> + 402a5b: 48 01 d0 add %rdx,%rax + 402a5e: 3e ff e0 notrack jmp *%rax + 402a61: 48 8b 05 b8 5d 00 00 mov 0x5db8(%rip),%rax # 408820 + 402a68: 83 c0 20 add $0x20,%eax + 402a6b: 89 45 fc mov %eax,-0x4(%rbp) + 402a6e: eb 6e jmp 402ade + 402a70: 48 8b 05 a9 5d 00 00 mov 0x5da9(%rip),%rax # 408820 + 402a77: 83 c0 33 add $0x33,%eax + 402a7a: 89 45 fc mov %eax,-0x4(%rbp) + 402a7d: eb 5f jmp 402ade + 402a7f: 48 8b 05 9a 5d 00 00 mov 0x5d9a(%rip),%rax # 408820 + 402a86: 83 c0 25 add $0x25,%eax + 402a89: 89 45 fc mov %eax,-0x4(%rbp) + 402a8c: eb 50 jmp 402ade + 402a8e: 48 8b 05 8b 5d 00 00 mov 0x5d8b(%rip),%rax # 408820 + 402a95: 83 c0 2e add $0x2e,%eax + 402a98: 89 45 fc mov %eax,-0x4(%rbp) + 402a9b: eb 41 jmp 402ade + 402a9d: 48 8b 05 7c 5d 00 00 mov 0x5d7c(%rip),%rax # 408820 + 402aa4: 83 c0 15 add $0x15,%eax + 402aa7: 89 45 fc mov %eax,-0x4(%rbp) + 402aaa: eb 32 jmp 402ade + 402aac: 48 8b 05 6d 5d 00 00 mov 0x5d6d(%rip),%rax # 408820 + 402ab3: 83 c0 37 add $0x37,%eax + 402ab6: 89 45 fc mov %eax,-0x4(%rbp) + 402ab9: eb 23 jmp 402ade + 402abb: 48 8b 05 5e 5d 00 00 mov 0x5d5e(%rip),%rax # 408820 + 402ac2: 83 c0 48 add $0x48,%eax + 402ac5: 89 45 fc mov %eax,-0x4(%rbp) + 402ac8: eb 14 jmp 402ade + 402aca: 48 8b 05 4f 5d 00 00 mov 0x5d4f(%rip),%rax # 408820 + 402ad1: 83 c0 61 add $0x61,%eax + 402ad4: 89 45 fc mov %eax,-0x4(%rbp) + 402ad7: eb 05 jmp 402ade + 402ad9: e8 18 31 00 00 call 405bf6 + 402ade: 8b 45 f0 mov -0x10(%rbp),%eax + 402ae1: 39 45 fc cmp %eax,-0x4(%rbp) + 402ae4: 74 05 je 402aeb + 402ae6: e8 0b 31 00 00 call 405bf6 + 402aeb: 90 nop + 402aec: c9 leave + 402aed: c3 ret + +0000000000402aee : + 402aee: f3 0f 1e fa endbr64 + 402af2: 55 push %rbp + 402af3: 48 89 e5 mov %rsp,%rbp + 402af6: 48 83 ec 20 sub $0x20,%rsp + 402afa: 48 89 7d e8 mov %rdi,-0x18(%rbp) + 402afe: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 402b05: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 402b0c: 48 8d 4d f0 lea -0x10(%rbp),%rcx + 402b10: 48 8d 55 f4 lea -0xc(%rbp),%rdx + 402b14: 48 8b 45 e8 mov -0x18(%rbp),%rax + 402b18: 48 8d 35 6d 3b 00 00 lea 0x3b6d(%rip),%rsi # 40668c <_IO_stdin_used+0x68c> + 402b1f: 48 89 c7 mov %rax,%rdi + 402b22: b8 00 00 00 00 mov $0x0,%eax + 402b27: e8 64 e6 ff ff call 401190 <__isoc99_sscanf@plt> + 402b2c: 89 45 f8 mov %eax,-0x8(%rbp) + 402b2f: 83 7d f8 01 cmpl $0x1,-0x8(%rbp) + 402b33: 7f 05 jg 402b3a + 402b35: e8 bc 30 00 00 call 405bf6 + 402b3a: bf 08 00 00 00 mov $0x8,%edi + 402b3f: e8 69 eb ff ff call 4016ad + 402b44: 8b 45 f4 mov -0xc(%rbp),%eax + 402b47: 48 98 cltq + 402b49: 48 8b 15 d0 5c 00 00 mov 0x5cd0(%rip),%rdx # 408820 + 402b50: 48 83 c2 1e add $0x1e,%rdx + 402b54: 48 39 d0 cmp %rdx,%rax + 402b57: 74 05 je 402b5e + 402b59: e8 98 30 00 00 call 405bf6 + 402b5e: bf c8 00 00 00 mov $0xc8,%edi + 402b63: e8 45 eb ff ff call 4016ad + 402b68: 8b 45 f4 mov -0xc(%rbp),%eax + 402b6b: 83 e8 1e sub $0x1e,%eax + 402b6e: 83 f8 07 cmp $0x7,%eax + 402b71: 0f 87 9b 00 00 00 ja 402c12 + 402b77: 89 c0 mov %eax,%eax + 402b79: 48 8d 14 85 00 00 00 lea 0x0(,%rax,4),%rdx + 402b80: 00 + 402b81: 48 8d 05 2c 3b 00 00 lea 0x3b2c(%rip),%rax # 4066b4 <_IO_stdin_used+0x6b4> + 402b88: 8b 04 02 mov (%rdx,%rax,1),%eax + 402b8b: 48 98 cltq + 402b8d: 48 8d 15 20 3b 00 00 lea 0x3b20(%rip),%rdx # 4066b4 <_IO_stdin_used+0x6b4> + 402b94: 48 01 d0 add %rdx,%rax + 402b97: 3e ff e0 notrack jmp *%rax + 402b9a: 48 8b 05 7f 5c 00 00 mov 0x5c7f(%rip),%rax # 408820 + 402ba1: 83 c0 34 add $0x34,%eax + 402ba4: 89 45 fc mov %eax,-0x4(%rbp) + 402ba7: eb 6e jmp 402c17 + 402ba9: 48 8b 05 70 5c 00 00 mov 0x5c70(%rip),%rax # 408820 + 402bb0: 83 c0 5b add $0x5b,%eax + 402bb3: 89 45 fc mov %eax,-0x4(%rbp) + 402bb6: eb 5f jmp 402c17 + 402bb8: 48 8b 05 61 5c 00 00 mov 0x5c61(%rip),%rax # 408820 + 402bbf: 83 c0 11 add $0x11,%eax + 402bc2: 89 45 fc mov %eax,-0x4(%rbp) + 402bc5: eb 50 jmp 402c17 + 402bc7: 48 8b 05 52 5c 00 00 mov 0x5c52(%rip),%rax # 408820 + 402bce: 83 c0 56 add $0x56,%eax + 402bd1: 89 45 fc mov %eax,-0x4(%rbp) + 402bd4: eb 41 jmp 402c17 + 402bd6: 48 8b 05 43 5c 00 00 mov 0x5c43(%rip),%rax # 408820 + 402bdd: 83 c0 3d add $0x3d,%eax + 402be0: 89 45 fc mov %eax,-0x4(%rbp) + 402be3: eb 32 jmp 402c17 + 402be5: 48 8b 05 34 5c 00 00 mov 0x5c34(%rip),%rax # 408820 + 402bec: 83 c0 23 add $0x23,%eax + 402bef: 89 45 fc mov %eax,-0x4(%rbp) + 402bf2: eb 23 jmp 402c17 + 402bf4: 48 8b 05 25 5c 00 00 mov 0x5c25(%rip),%rax # 408820 + 402bfb: 83 c0 16 add $0x16,%eax + 402bfe: 89 45 fc mov %eax,-0x4(%rbp) + 402c01: eb 14 jmp 402c17 + 402c03: 48 8b 05 16 5c 00 00 mov 0x5c16(%rip),%rax # 408820 + 402c0a: 83 c0 4d add $0x4d,%eax + 402c0d: 89 45 fc mov %eax,-0x4(%rbp) + 402c10: eb 05 jmp 402c17 + 402c12: e8 df 2f 00 00 call 405bf6 + 402c17: 8b 45 f0 mov -0x10(%rbp),%eax + 402c1a: 39 45 fc cmp %eax,-0x4(%rbp) + 402c1d: 74 05 je 402c24 + 402c1f: e8 d2 2f 00 00 call 405bf6 + 402c24: 90 nop + 402c25: c9 leave + 402c26: c3 ret + +0000000000402c27 : + 402c27: f3 0f 1e fa endbr64 + 402c2b: 55 push %rbp + 402c2c: 48 89 e5 mov %rsp,%rbp + 402c2f: 48 83 ec 20 sub $0x20,%rsp + 402c33: 48 89 7d e8 mov %rdi,-0x18(%rbp) + 402c37: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 402c3e: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 402c45: 48 8d 4d f0 lea -0x10(%rbp),%rcx + 402c49: 48 8d 55 f4 lea -0xc(%rbp),%rdx + 402c4d: 48 8b 45 e8 mov -0x18(%rbp),%rax + 402c51: 48 8d 35 34 3a 00 00 lea 0x3a34(%rip),%rsi # 40668c <_IO_stdin_used+0x68c> + 402c58: 48 89 c7 mov %rax,%rdi + 402c5b: b8 00 00 00 00 mov $0x0,%eax + 402c60: e8 2b e5 ff ff call 401190 <__isoc99_sscanf@plt> + 402c65: 89 45 f8 mov %eax,-0x8(%rbp) + 402c68: 83 7d f8 01 cmpl $0x1,-0x8(%rbp) + 402c6c: 7f 05 jg 402c73 + 402c6e: e8 83 2f 00 00 call 405bf6 + 402c73: bf 08 00 00 00 mov $0x8,%edi + 402c78: e8 30 ea ff ff call 4016ad + 402c7d: 8b 45 f4 mov -0xc(%rbp),%eax + 402c80: 48 98 cltq + 402c82: 48 8b 15 97 5b 00 00 mov 0x5b97(%rip),%rdx # 408820 + 402c89: 48 81 c2 82 00 00 00 add $0x82,%rdx + 402c90: 48 39 d0 cmp %rdx,%rax + 402c93: 74 05 je 402c9a + 402c95: e8 5c 2f 00 00 call 405bf6 + 402c9a: bf c8 00 00 00 mov $0xc8,%edi + 402c9f: e8 09 ea ff ff call 4016ad + 402ca4: 8b 45 f4 mov -0xc(%rbp),%eax + 402ca7: 2d 82 00 00 00 sub $0x82,%eax + 402cac: 83 f8 07 cmp $0x7,%eax + 402caf: 0f 87 ab 00 00 00 ja 402d60 + 402cb5: 89 c0 mov %eax,%eax + 402cb7: 48 8d 14 85 00 00 00 lea 0x0(,%rax,4),%rdx + 402cbe: 00 + 402cbf: 48 8d 05 0e 3a 00 00 lea 0x3a0e(%rip),%rax # 4066d4 <_IO_stdin_used+0x6d4> + 402cc6: 8b 04 02 mov (%rdx,%rax,1),%eax + 402cc9: 48 98 cltq + 402ccb: 48 8d 15 02 3a 00 00 lea 0x3a02(%rip),%rdx # 4066d4 <_IO_stdin_used+0x6d4> + 402cd2: 48 01 d0 add %rdx,%rax + 402cd5: 3e ff e0 notrack jmp *%rax + 402cd8: 48 8b 05 41 5b 00 00 mov 0x5b41(%rip),%rax # 408820 + 402cdf: 05 4c 01 00 00 add $0x14c,%eax + 402ce4: 89 45 fc mov %eax,-0x4(%rbp) + 402ce7: eb 7c jmp 402d65 + 402ce9: 48 8b 05 30 5b 00 00 mov 0x5b30(%rip),%rax # 408820 + 402cf0: 05 c3 01 00 00 add $0x1c3,%eax + 402cf5: 89 45 fc mov %eax,-0x4(%rbp) + 402cf8: eb 6b jmp 402d65 + 402cfa: 48 8b 05 1f 5b 00 00 mov 0x5b1f(%rip),%rax # 408820 + 402d01: 05 19 02 00 00 add $0x219,%eax + 402d06: 89 45 fc mov %eax,-0x4(%rbp) + 402d09: eb 5a jmp 402d65 + 402d0b: 48 8b 05 0e 5b 00 00 mov 0x5b0e(%rip),%rax # 408820 + 402d12: 05 92 00 00 00 add $0x92,%eax + 402d17: 89 45 fc mov %eax,-0x4(%rbp) + 402d1a: eb 49 jmp 402d65 + 402d1c: 48 8b 05 fd 5a 00 00 mov 0x5afd(%rip),%rax # 408820 + 402d23: 05 41 01 00 00 add $0x141,%eax + 402d28: 89 45 fc mov %eax,-0x4(%rbp) + 402d2b: eb 38 jmp 402d65 + 402d2d: 48 8b 05 ec 5a 00 00 mov 0x5aec(%rip),%rax # 408820 + 402d34: 05 f3 02 00 00 add $0x2f3,%eax + 402d39: 89 45 fc mov %eax,-0x4(%rbp) + 402d3c: eb 27 jmp 402d65 + 402d3e: 48 8b 05 db 5a 00 00 mov 0x5adb(%rip),%rax # 408820 + 402d45: 05 cc 03 00 00 add $0x3cc,%eax + 402d4a: 89 45 fc mov %eax,-0x4(%rbp) + 402d4d: eb 16 jmp 402d65 + 402d4f: 48 8b 05 ca 5a 00 00 mov 0x5aca(%rip),%rax # 408820 + 402d56: 05 b9 02 00 00 add $0x2b9,%eax + 402d5b: 89 45 fc mov %eax,-0x4(%rbp) + 402d5e: eb 05 jmp 402d65 + 402d60: e8 91 2e 00 00 call 405bf6 + 402d65: 8b 45 f0 mov -0x10(%rbp),%eax + 402d68: 39 45 fc cmp %eax,-0x4(%rbp) + 402d6b: 74 05 je 402d72 + 402d6d: e8 84 2e 00 00 call 405bf6 + 402d72: 90 nop + 402d73: c9 leave + 402d74: c3 ret + +0000000000402d75 : + 402d75: f3 0f 1e fa endbr64 + 402d79: 55 push %rbp + 402d7a: 48 89 e5 mov %rsp,%rbp + 402d7d: 48 83 ec 20 sub $0x20,%rsp + 402d81: 48 89 7d e8 mov %rdi,-0x18(%rbp) + 402d85: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 402d8c: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 402d93: 48 8d 4d f0 lea -0x10(%rbp),%rcx + 402d97: 48 8d 55 f4 lea -0xc(%rbp),%rdx + 402d9b: 48 8b 45 e8 mov -0x18(%rbp),%rax + 402d9f: 48 8d 35 e6 38 00 00 lea 0x38e6(%rip),%rsi # 40668c <_IO_stdin_used+0x68c> + 402da6: 48 89 c7 mov %rax,%rdi + 402da9: b8 00 00 00 00 mov $0x0,%eax + 402dae: e8 dd e3 ff ff call 401190 <__isoc99_sscanf@plt> + 402db3: 89 45 f8 mov %eax,-0x8(%rbp) + 402db6: 83 7d f8 01 cmpl $0x1,-0x8(%rbp) + 402dba: 7f 05 jg 402dc1 + 402dbc: e8 35 2e 00 00 call 405bf6 + 402dc1: bf 08 00 00 00 mov $0x8,%edi + 402dc6: e8 e2 e8 ff ff call 4016ad + 402dcb: 8b 45 f4 mov -0xc(%rbp),%eax + 402dce: 48 98 cltq + 402dd0: 48 8b 15 49 5a 00 00 mov 0x5a49(%rip),%rdx # 408820 + 402dd7: 48 81 c2 a2 03 00 00 add $0x3a2,%rdx + 402dde: 48 39 d0 cmp %rdx,%rax + 402de1: 74 05 je 402de8 + 402de3: e8 0e 2e 00 00 call 405bf6 + 402de8: bf c8 00 00 00 mov $0xc8,%edi + 402ded: e8 bb e8 ff ff call 4016ad + 402df2: 8b 45 f4 mov -0xc(%rbp),%eax + 402df5: 2d a2 03 00 00 sub $0x3a2,%eax + 402dfa: 83 f8 07 cmp $0x7,%eax + 402dfd: 0f 87 ab 00 00 00 ja 402eae + 402e03: 89 c0 mov %eax,%eax + 402e05: 48 8d 14 85 00 00 00 lea 0x0(,%rax,4),%rdx + 402e0c: 00 + 402e0d: 48 8d 05 e0 38 00 00 lea 0x38e0(%rip),%rax # 4066f4 <_IO_stdin_used+0x6f4> + 402e14: 8b 04 02 mov (%rdx,%rax,1),%eax + 402e17: 48 98 cltq + 402e19: 48 8d 15 d4 38 00 00 lea 0x38d4(%rip),%rdx # 4066f4 <_IO_stdin_used+0x6f4> + 402e20: 48 01 d0 add %rdx,%rax + 402e23: 3e ff e0 notrack jmp *%rax + 402e26: 48 8b 05 f3 59 00 00 mov 0x59f3(%rip),%rax # 408820 + 402e2d: 05 dc 02 00 00 add $0x2dc,%eax + 402e32: 89 45 fc mov %eax,-0x4(%rbp) + 402e35: eb 7c jmp 402eb3 + 402e37: 48 8b 05 e2 59 00 00 mov 0x59e2(%rip),%rax # 408820 + 402e3e: 05 09 02 00 00 add $0x209,%eax + 402e43: 89 45 fc mov %eax,-0x4(%rbp) + 402e46: eb 6b jmp 402eb3 + 402e48: 48 8b 05 d1 59 00 00 mov 0x59d1(%rip),%rax # 408820 + 402e4f: 05 a5 02 00 00 add $0x2a5,%eax + 402e54: 89 45 fc mov %eax,-0x4(%rbp) + 402e57: eb 5a jmp 402eb3 + 402e59: 48 8b 05 c0 59 00 00 mov 0x59c0(%rip),%rax # 408820 + 402e60: 05 d8 00 00 00 add $0xd8,%eax + 402e65: 89 45 fc mov %eax,-0x4(%rbp) + 402e68: eb 49 jmp 402eb3 + 402e6a: 48 8b 05 af 59 00 00 mov 0x59af(%rip),%rax # 408820 + 402e71: 05 63 02 00 00 add $0x263,%eax + 402e76: 89 45 fc mov %eax,-0x4(%rbp) + 402e79: eb 38 jmp 402eb3 + 402e7b: 48 8b 05 9e 59 00 00 mov 0x599e(%rip),%rax # 408820 + 402e82: 05 0d 02 00 00 add $0x20d,%eax + 402e87: 89 45 fc mov %eax,-0x4(%rbp) + 402e8a: eb 27 jmp 402eb3 + 402e8c: 48 8b 05 8d 59 00 00 mov 0x598d(%rip),%rax # 408820 + 402e93: 05 ae 03 00 00 add $0x3ae,%eax + 402e98: 89 45 fc mov %eax,-0x4(%rbp) + 402e9b: eb 16 jmp 402eb3 + 402e9d: 48 8b 05 7c 59 00 00 mov 0x597c(%rip),%rax # 408820 + 402ea4: 05 ab 01 00 00 add $0x1ab,%eax + 402ea9: 89 45 fc mov %eax,-0x4(%rbp) + 402eac: eb 05 jmp 402eb3 + 402eae: e8 43 2d 00 00 call 405bf6 + 402eb3: 8b 45 f0 mov -0x10(%rbp),%eax + 402eb6: 39 45 fc cmp %eax,-0x4(%rbp) + 402eb9: 74 05 je 402ec0 + 402ebb: e8 36 2d 00 00 call 405bf6 + 402ec0: 90 nop + 402ec1: c9 leave + 402ec2: c3 ret + +0000000000402ec3 : + 402ec3: f3 0f 1e fa endbr64 + 402ec7: 55 push %rbp + 402ec8: 48 89 e5 mov %rsp,%rbp + 402ecb: 48 83 ec 20 sub $0x20,%rsp + 402ecf: 48 89 7d e8 mov %rdi,-0x18(%rbp) + 402ed3: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 402eda: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 402ee1: 48 8d 4d f0 lea -0x10(%rbp),%rcx + 402ee5: 48 8d 55 f4 lea -0xc(%rbp),%rdx + 402ee9: 48 8b 45 e8 mov -0x18(%rbp),%rax + 402eed: 48 8d 35 98 37 00 00 lea 0x3798(%rip),%rsi # 40668c <_IO_stdin_used+0x68c> + 402ef4: 48 89 c7 mov %rax,%rdi + 402ef7: b8 00 00 00 00 mov $0x0,%eax + 402efc: e8 8f e2 ff ff call 401190 <__isoc99_sscanf@plt> + 402f01: 89 45 f8 mov %eax,-0x8(%rbp) + 402f04: 83 7d f8 01 cmpl $0x1,-0x8(%rbp) + 402f08: 7f 05 jg 402f0f + 402f0a: e8 e7 2c 00 00 call 405bf6 + 402f0f: bf 08 00 00 00 mov $0x8,%edi + 402f14: e8 94 e7 ff ff call 4016ad + 402f19: 8b 45 f4 mov -0xc(%rbp),%eax + 402f1c: 48 98 cltq + 402f1e: 48 8b 15 fb 58 00 00 mov 0x58fb(%rip),%rdx # 408820 + 402f25: 48 81 c2 dc 00 00 00 add $0xdc,%rdx + 402f2c: 48 39 d0 cmp %rdx,%rax + 402f2f: 74 05 je 402f36 + 402f31: e8 c0 2c 00 00 call 405bf6 + 402f36: bf c8 00 00 00 mov $0xc8,%edi + 402f3b: e8 6d e7 ff ff call 4016ad + 402f40: 8b 45 f4 mov -0xc(%rbp),%eax + 402f43: 2d dc 00 00 00 sub $0xdc,%eax + 402f48: 83 f8 07 cmp $0x7,%eax + 402f4b: 0f 87 9b 00 00 00 ja 402fec + 402f51: 89 c0 mov %eax,%eax + 402f53: 48 8d 14 85 00 00 00 lea 0x0(,%rax,4),%rdx + 402f5a: 00 + 402f5b: 48 8d 05 b2 37 00 00 lea 0x37b2(%rip),%rax # 406714 <_IO_stdin_used+0x714> + 402f62: 8b 04 02 mov (%rdx,%rax,1),%eax + 402f65: 48 98 cltq + 402f67: 48 8d 15 a6 37 00 00 lea 0x37a6(%rip),%rdx # 406714 <_IO_stdin_used+0x714> + 402f6e: 48 01 d0 add %rdx,%rax + 402f71: 3e ff e0 notrack jmp *%rax + 402f74: 48 8b 05 a5 58 00 00 mov 0x58a5(%rip),%rax # 408820 + 402f7b: 83 c0 02 add $0x2,%eax + 402f7e: 89 45 fc mov %eax,-0x4(%rbp) + 402f81: eb 6e jmp 402ff1 + 402f83: 48 8b 05 96 58 00 00 mov 0x5896(%rip),%rax # 408820 + 402f8a: 83 c0 01 add $0x1,%eax + 402f8d: 89 45 fc mov %eax,-0x4(%rbp) + 402f90: eb 5f jmp 402ff1 + 402f92: 48 8b 05 87 58 00 00 mov 0x5887(%rip),%rax # 408820 + 402f99: 83 c0 07 add $0x7,%eax + 402f9c: 89 45 fc mov %eax,-0x4(%rbp) + 402f9f: eb 50 jmp 402ff1 + 402fa1: 48 8b 05 78 58 00 00 mov 0x5878(%rip),%rax # 408820 + 402fa8: 83 c0 06 add $0x6,%eax + 402fab: 89 45 fc mov %eax,-0x4(%rbp) + 402fae: eb 41 jmp 402ff1 + 402fb0: 48 8b 05 69 58 00 00 mov 0x5869(%rip),%rax # 408820 + 402fb7: 83 c0 08 add $0x8,%eax + 402fba: 89 45 fc mov %eax,-0x4(%rbp) + 402fbd: eb 32 jmp 402ff1 + 402fbf: 48 8b 05 5a 58 00 00 mov 0x585a(%rip),%rax # 408820 + 402fc6: 83 c0 05 add $0x5,%eax + 402fc9: 89 45 fc mov %eax,-0x4(%rbp) + 402fcc: eb 23 jmp 402ff1 + 402fce: 48 8b 05 4b 58 00 00 mov 0x584b(%rip),%rax # 408820 + 402fd5: 83 c0 02 add $0x2,%eax + 402fd8: 89 45 fc mov %eax,-0x4(%rbp) + 402fdb: eb 14 jmp 402ff1 + 402fdd: 48 8b 05 3c 58 00 00 mov 0x583c(%rip),%rax # 408820 + 402fe4: 83 c0 07 add $0x7,%eax + 402fe7: 89 45 fc mov %eax,-0x4(%rbp) + 402fea: eb 05 jmp 402ff1 + 402fec: e8 05 2c 00 00 call 405bf6 + 402ff1: 8b 45 f0 mov -0x10(%rbp),%eax + 402ff4: 39 45 fc cmp %eax,-0x4(%rbp) + 402ff7: 74 05 je 402ffe + 402ff9: e8 f8 2b 00 00 call 405bf6 + 402ffe: 90 nop + 402fff: c9 leave + 403000: c3 ret + +0000000000403001 : + 403001: f3 0f 1e fa endbr64 + 403005: 55 push %rbp + 403006: 48 89 e5 mov %rsp,%rbp + 403009: 48 83 ec 20 sub $0x20,%rsp + 40300d: 48 89 7d e8 mov %rdi,-0x18(%rbp) + 403011: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 403018: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 40301f: 48 8d 4d f0 lea -0x10(%rbp),%rcx + 403023: 48 8d 55 f4 lea -0xc(%rbp),%rdx + 403027: 48 8b 45 e8 mov -0x18(%rbp),%rax + 40302b: 48 8d 35 5a 36 00 00 lea 0x365a(%rip),%rsi # 40668c <_IO_stdin_used+0x68c> + 403032: 48 89 c7 mov %rax,%rdi + 403035: b8 00 00 00 00 mov $0x0,%eax + 40303a: e8 51 e1 ff ff call 401190 <__isoc99_sscanf@plt> + 40303f: 89 45 f8 mov %eax,-0x8(%rbp) + 403042: 83 7d f8 01 cmpl $0x1,-0x8(%rbp) + 403046: 7f 05 jg 40304d + 403048: e8 a9 2b 00 00 call 405bf6 + 40304d: bf 08 00 00 00 mov $0x8,%edi + 403052: e8 56 e6 ff ff call 4016ad + 403057: 8b 45 f4 mov -0xc(%rbp),%eax + 40305a: 48 63 d0 movslq %eax,%rdx + 40305d: 48 8b 05 bc 57 00 00 mov 0x57bc(%rip),%rax # 408820 + 403064: 48 39 c2 cmp %rax,%rdx + 403067: 74 05 je 40306e + 403069: e8 88 2b 00 00 call 405bf6 + 40306e: bf c8 00 00 00 mov $0xc8,%edi + 403073: e8 35 e6 ff ff call 4016ad + 403078: 8b 45 f4 mov -0xc(%rbp),%eax + 40307b: 83 f8 07 cmp $0x7,%eax + 40307e: 0f 87 eb 00 00 00 ja 40316f + 403084: 89 c0 mov %eax,%eax + 403086: 48 8d 14 85 00 00 00 lea 0x0(,%rax,4),%rdx + 40308d: 00 + 40308e: 48 8d 05 9f 36 00 00 lea 0x369f(%rip),%rax # 406734 <_IO_stdin_used+0x734> + 403095: 8b 04 02 mov (%rdx,%rax,1),%eax + 403098: 48 98 cltq + 40309a: 48 8d 15 93 36 00 00 lea 0x3693(%rip),%rdx # 406734 <_IO_stdin_used+0x734> + 4030a1: 48 01 d0 add %rdx,%rax + 4030a4: 3e ff e0 notrack jmp *%rax + 4030a7: 48 8b 05 72 57 00 00 mov 0x5772(%rip),%rax # 408820 + 4030ae: 89 c2 mov %eax,%edx + 4030b0: 8b 45 fc mov -0x4(%rbp),%eax + 4030b3: 01 d0 add %edx,%eax + 4030b5: 89 45 fc mov %eax,-0x4(%rbp) + 4030b8: bf c8 00 00 00 mov $0xc8,%edi + 4030bd: e8 eb e5 ff ff call 4016ad + 4030c2: 8b 45 fc mov -0x4(%rbp),%eax + 4030c5: 48 8b 15 54 57 00 00 mov 0x5754(%rip),%rdx # 408820 + 4030cc: 29 d0 sub %edx,%eax + 4030ce: 89 45 fc mov %eax,-0x4(%rbp) + 4030d1: bf c8 00 00 00 mov $0xc8,%edi + 4030d6: e8 d2 e5 ff ff call 4016ad + 4030db: 48 8b 05 3e 57 00 00 mov 0x573e(%rip),%rax # 408820 + 4030e2: 89 c2 mov %eax,%edx + 4030e4: 8b 45 fc mov -0x4(%rbp),%eax + 4030e7: 01 d0 add %edx,%eax + 4030e9: 89 45 fc mov %eax,-0x4(%rbp) + 4030ec: bf c8 00 00 00 mov $0xc8,%edi + 4030f1: e8 b7 e5 ff ff call 4016ad + 4030f6: 8b 45 fc mov -0x4(%rbp),%eax + 4030f9: 48 8b 15 20 57 00 00 mov 0x5720(%rip),%rdx # 408820 + 403100: 29 d0 sub %edx,%eax + 403102: 89 45 fc mov %eax,-0x4(%rbp) + 403105: bf c8 00 00 00 mov $0xc8,%edi + 40310a: e8 9e e5 ff ff call 4016ad + 40310f: 48 8b 05 0a 57 00 00 mov 0x570a(%rip),%rax # 408820 + 403116: 89 c2 mov %eax,%edx + 403118: 8b 45 fc mov -0x4(%rbp),%eax + 40311b: 01 d0 add %edx,%eax + 40311d: 89 45 fc mov %eax,-0x4(%rbp) + 403120: bf c8 00 00 00 mov $0xc8,%edi + 403125: e8 83 e5 ff ff call 4016ad + 40312a: 8b 45 fc mov -0x4(%rbp),%eax + 40312d: 48 8b 15 ec 56 00 00 mov 0x56ec(%rip),%rdx # 408820 + 403134: 29 d0 sub %edx,%eax + 403136: 89 45 fc mov %eax,-0x4(%rbp) + 403139: bf c8 00 00 00 mov $0xc8,%edi + 40313e: e8 6a e5 ff ff call 4016ad + 403143: 48 8b 05 d6 56 00 00 mov 0x56d6(%rip),%rax # 408820 + 40314a: 89 c2 mov %eax,%edx + 40314c: 8b 45 fc mov -0x4(%rbp),%eax + 40314f: 01 d0 add %edx,%eax + 403151: 89 45 fc mov %eax,-0x4(%rbp) + 403154: bf c8 00 00 00 mov $0xc8,%edi + 403159: e8 4f e5 ff ff call 4016ad + 40315e: 8b 45 fc mov -0x4(%rbp),%eax + 403161: 48 8b 15 b8 56 00 00 mov 0x56b8(%rip),%rdx # 408820 + 403168: 29 d0 sub %edx,%eax + 40316a: 89 45 fc mov %eax,-0x4(%rbp) + 40316d: eb 05 jmp 403174 + 40316f: e8 82 2a 00 00 call 405bf6 + 403174: 8b 45 f0 mov -0x10(%rbp),%eax + 403177: 39 45 fc cmp %eax,-0x4(%rbp) + 40317a: 74 05 je 403181 + 40317c: e8 75 2a 00 00 call 405bf6 + 403181: 90 nop + 403182: c9 leave + 403183: c3 ret + +0000000000403184 : + 403184: f3 0f 1e fa endbr64 + 403188: 55 push %rbp + 403189: 48 89 e5 mov %rsp,%rbp + 40318c: 48 83 ec 20 sub $0x20,%rsp + 403190: 48 89 7d e8 mov %rdi,-0x18(%rbp) + 403194: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 40319b: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 4031a2: 48 8d 4d f0 lea -0x10(%rbp),%rcx + 4031a6: 48 8d 55 f4 lea -0xc(%rbp),%rdx + 4031aa: 48 8b 45 e8 mov -0x18(%rbp),%rax + 4031ae: 48 8d 35 d7 34 00 00 lea 0x34d7(%rip),%rsi # 40668c <_IO_stdin_used+0x68c> + 4031b5: 48 89 c7 mov %rax,%rdi + 4031b8: b8 00 00 00 00 mov $0x0,%eax + 4031bd: e8 ce df ff ff call 401190 <__isoc99_sscanf@plt> + 4031c2: 89 45 f8 mov %eax,-0x8(%rbp) + 4031c5: 83 7d f8 01 cmpl $0x1,-0x8(%rbp) + 4031c9: 7f 05 jg 4031d0 + 4031cb: e8 26 2a 00 00 call 405bf6 + 4031d0: bf 08 00 00 00 mov $0x8,%edi + 4031d5: e8 d3 e4 ff ff call 4016ad + 4031da: 8b 45 f4 mov -0xc(%rbp),%eax + 4031dd: 48 98 cltq + 4031df: 48 8b 15 3a 56 00 00 mov 0x563a(%rip),%rdx # 408820 + 4031e6: 48 83 c2 1e add $0x1e,%rdx + 4031ea: 48 39 d0 cmp %rdx,%rax + 4031ed: 74 05 je 4031f4 + 4031ef: e8 02 2a 00 00 call 405bf6 + 4031f4: bf c8 00 00 00 mov $0xc8,%edi + 4031f9: e8 af e4 ff ff call 4016ad + 4031fe: 8b 45 f4 mov -0xc(%rbp),%eax + 403201: 83 e8 1e sub $0x1e,%eax + 403204: 83 f8 07 cmp $0x7,%eax + 403207: 0f 87 03 01 00 00 ja 403310 + 40320d: 89 c0 mov %eax,%eax + 40320f: 48 8d 14 85 00 00 00 lea 0x0(,%rax,4),%rdx + 403216: 00 + 403217: 48 8d 05 36 35 00 00 lea 0x3536(%rip),%rax # 406754 <_IO_stdin_used+0x754> + 40321e: 8b 04 02 mov (%rdx,%rax,1),%eax + 403221: 48 98 cltq + 403223: 48 8d 15 2a 35 00 00 lea 0x352a(%rip),%rdx # 406754 <_IO_stdin_used+0x754> + 40322a: 48 01 d0 add %rdx,%rax + 40322d: 3e ff e0 notrack jmp *%rax + 403230: 48 8b 05 e9 55 00 00 mov 0x55e9(%rip),%rax # 408820 + 403237: 89 c2 mov %eax,%edx + 403239: 8b 45 fc mov -0x4(%rbp),%eax + 40323c: 01 d0 add %edx,%eax + 40323e: 83 c0 21 add $0x21,%eax + 403241: 89 45 fc mov %eax,-0x4(%rbp) + 403244: bf c8 00 00 00 mov $0xc8,%edi + 403249: e8 5f e4 ff ff call 4016ad + 40324e: 8b 45 fc mov -0x4(%rbp),%eax + 403251: 48 8b 15 c8 55 00 00 mov 0x55c8(%rip),%rdx # 408820 + 403258: 29 d0 sub %edx,%eax + 40325a: 83 c0 19 add $0x19,%eax + 40325d: 89 45 fc mov %eax,-0x4(%rbp) + 403260: bf c8 00 00 00 mov $0xc8,%edi + 403265: e8 43 e4 ff ff call 4016ad + 40326a: 48 8b 05 af 55 00 00 mov 0x55af(%rip),%rax # 408820 + 403271: 89 c2 mov %eax,%edx + 403273: 8b 45 fc mov -0x4(%rbp),%eax + 403276: 01 d0 add %edx,%eax + 403278: 83 c0 0c add $0xc,%eax + 40327b: 89 45 fc mov %eax,-0x4(%rbp) + 40327e: bf c8 00 00 00 mov $0xc8,%edi + 403283: e8 25 e4 ff ff call 4016ad + 403288: 8b 45 fc mov -0x4(%rbp),%eax + 40328b: 48 8b 15 8e 55 00 00 mov 0x558e(%rip),%rdx # 408820 + 403292: 29 d0 sub %edx,%eax + 403294: 83 c0 67 add $0x67,%eax + 403297: 89 45 fc mov %eax,-0x4(%rbp) + 40329a: bf c8 00 00 00 mov $0xc8,%edi + 40329f: e8 09 e4 ff ff call 4016ad + 4032a4: 48 8b 05 75 55 00 00 mov 0x5575(%rip),%rax # 408820 + 4032ab: 89 c2 mov %eax,%edx + 4032ad: 8b 45 fc mov -0x4(%rbp),%eax + 4032b0: 01 d0 add %edx,%eax + 4032b2: 83 c0 34 add $0x34,%eax + 4032b5: 89 45 fc mov %eax,-0x4(%rbp) + 4032b8: bf c8 00 00 00 mov $0xc8,%edi + 4032bd: e8 eb e3 ff ff call 4016ad + 4032c2: 8b 45 fc mov -0x4(%rbp),%eax + 4032c5: 48 8b 15 54 55 00 00 mov 0x5554(%rip),%rdx # 408820 + 4032cc: 29 d0 sub %edx,%eax + 4032ce: 83 c0 48 add $0x48,%eax + 4032d1: 89 45 fc mov %eax,-0x4(%rbp) + 4032d4: bf c8 00 00 00 mov $0xc8,%edi + 4032d9: e8 cf e3 ff ff call 4016ad + 4032de: 48 8b 05 3b 55 00 00 mov 0x553b(%rip),%rax # 408820 + 4032e5: 89 c2 mov %eax,%edx + 4032e7: 8b 45 fc mov -0x4(%rbp),%eax + 4032ea: 01 d0 add %edx,%eax + 4032ec: 83 c0 13 add $0x13,%eax + 4032ef: 89 45 fc mov %eax,-0x4(%rbp) + 4032f2: bf c8 00 00 00 mov $0xc8,%edi + 4032f7: e8 b1 e3 ff ff call 4016ad + 4032fc: 8b 45 fc mov -0x4(%rbp),%eax + 4032ff: 48 8b 15 1a 55 00 00 mov 0x551a(%rip),%rdx # 408820 + 403306: 29 d0 sub %edx,%eax + 403308: 83 c0 1f add $0x1f,%eax + 40330b: 89 45 fc mov %eax,-0x4(%rbp) + 40330e: eb 05 jmp 403315 + 403310: e8 e1 28 00 00 call 405bf6 + 403315: 8b 45 f0 mov -0x10(%rbp),%eax + 403318: 39 45 fc cmp %eax,-0x4(%rbp) + 40331b: 74 05 je 403322 + 40331d: e8 d4 28 00 00 call 405bf6 + 403322: 90 nop + 403323: c9 leave + 403324: c3 ret + +0000000000403325 : + 403325: f3 0f 1e fa endbr64 + 403329: 55 push %rbp + 40332a: 48 89 e5 mov %rsp,%rbp + 40332d: 48 83 ec 20 sub $0x20,%rsp + 403331: 48 89 7d e8 mov %rdi,-0x18(%rbp) + 403335: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 40333c: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 403343: 48 8d 4d f0 lea -0x10(%rbp),%rcx + 403347: 48 8d 55 f4 lea -0xc(%rbp),%rdx + 40334b: 48 8b 45 e8 mov -0x18(%rbp),%rax + 40334f: 48 8d 35 36 33 00 00 lea 0x3336(%rip),%rsi # 40668c <_IO_stdin_used+0x68c> + 403356: 48 89 c7 mov %rax,%rdi + 403359: b8 00 00 00 00 mov $0x0,%eax + 40335e: e8 2d de ff ff call 401190 <__isoc99_sscanf@plt> + 403363: 89 45 f8 mov %eax,-0x8(%rbp) + 403366: 83 7d f8 01 cmpl $0x1,-0x8(%rbp) + 40336a: 7f 05 jg 403371 + 40336c: e8 85 28 00 00 call 405bf6 + 403371: bf 08 00 00 00 mov $0x8,%edi + 403376: e8 32 e3 ff ff call 4016ad + 40337b: 8b 45 f4 mov -0xc(%rbp),%eax + 40337e: 48 98 cltq + 403380: 48 8b 15 99 54 00 00 mov 0x5499(%rip),%rdx # 408820 + 403387: 48 81 c2 82 00 00 00 add $0x82,%rdx + 40338e: 48 39 d0 cmp %rdx,%rax + 403391: 74 05 je 403398 + 403393: e8 5e 28 00 00 call 405bf6 + 403398: bf c8 00 00 00 mov $0xc8,%edi + 40339d: e8 0b e3 ff ff call 4016ad + 4033a2: 8b 45 f4 mov -0xc(%rbp),%eax + 4033a5: 2d 82 00 00 00 sub $0x82,%eax + 4033aa: 83 f8 07 cmp $0x7,%eax + 4033ad: 0f 87 0d 01 00 00 ja 4034c0 + 4033b3: 89 c0 mov %eax,%eax + 4033b5: 48 8d 14 85 00 00 00 lea 0x0(,%rax,4),%rdx + 4033bc: 00 + 4033bd: 48 8d 05 b0 33 00 00 lea 0x33b0(%rip),%rax # 406774 <_IO_stdin_used+0x774> + 4033c4: 8b 04 02 mov (%rdx,%rax,1),%eax + 4033c7: 48 98 cltq + 4033c9: 48 8d 15 a4 33 00 00 lea 0x33a4(%rip),%rdx # 406774 <_IO_stdin_used+0x774> + 4033d0: 48 01 d0 add %rdx,%rax + 4033d3: 3e ff e0 notrack jmp *%rax + 4033d6: 48 8b 05 43 54 00 00 mov 0x5443(%rip),%rax # 408820 + 4033dd: 89 c2 mov %eax,%edx + 4033df: 8b 45 fc mov -0x4(%rbp),%eax + 4033e2: 01 d0 add %edx,%eax + 4033e4: 05 85 00 00 00 add $0x85,%eax + 4033e9: 89 45 fc mov %eax,-0x4(%rbp) + 4033ec: bf c8 00 00 00 mov $0xc8,%edi + 4033f1: e8 b7 e2 ff ff call 4016ad + 4033f6: 8b 45 fc mov -0x4(%rbp),%eax + 4033f9: 48 8b 15 20 54 00 00 mov 0x5420(%rip),%rdx # 408820 + 403400: 29 d0 sub %edx,%eax + 403402: 83 c0 7d add $0x7d,%eax + 403405: 89 45 fc mov %eax,-0x4(%rbp) + 403408: bf c8 00 00 00 mov $0xc8,%edi + 40340d: e8 9b e2 ff ff call 4016ad + 403412: 48 8b 05 07 54 00 00 mov 0x5407(%rip),%rax # 408820 + 403419: 89 c2 mov %eax,%edx + 40341b: 8b 45 fc mov -0x4(%rbp),%eax + 40341e: 01 d0 add %edx,%eax + 403420: 83 c0 70 add $0x70,%eax + 403423: 89 45 fc mov %eax,-0x4(%rbp) + 403426: bf c8 00 00 00 mov $0xc8,%edi + 40342b: e8 7d e2 ff ff call 4016ad + 403430: 8b 45 fc mov -0x4(%rbp),%eax + 403433: 48 8b 15 e6 53 00 00 mov 0x53e6(%rip),%rdx # 408820 + 40343a: 29 d0 sub %edx,%eax + 40343c: 05 4f 04 00 00 add $0x44f,%eax + 403441: 89 45 fc mov %eax,-0x4(%rbp) + 403444: bf c8 00 00 00 mov $0xc8,%edi + 403449: e8 5f e2 ff ff call 4016ad + 40344e: 48 8b 05 cb 53 00 00 mov 0x53cb(%rip),%rax # 408820 + 403455: 89 c2 mov %eax,%edx + 403457: 8b 45 fc mov -0x4(%rbp),%eax + 40345a: 01 d0 add %edx,%eax + 40345c: 05 98 00 00 00 add $0x98,%eax + 403461: 89 45 fc mov %eax,-0x4(%rbp) + 403464: bf c8 00 00 00 mov $0xc8,%edi + 403469: e8 3f e2 ff ff call 4016ad + 40346e: 8b 45 fc mov -0x4(%rbp),%eax + 403471: 48 8b 15 a8 53 00 00 mov 0x53a8(%rip),%rdx # 408820 + 403478: 29 d0 sub %edx,%eax + 40347a: 05 ac 00 00 00 add $0xac,%eax + 40347f: 89 45 fc mov %eax,-0x4(%rbp) + 403482: bf c8 00 00 00 mov $0xc8,%edi + 403487: e8 21 e2 ff ff call 4016ad + 40348c: 48 8b 05 8d 53 00 00 mov 0x538d(%rip),%rax # 408820 + 403493: 89 c2 mov %eax,%edx + 403495: 8b 45 fc mov -0x4(%rbp),%eax + 403498: 01 d0 add %edx,%eax + 40349a: 83 c0 77 add $0x77,%eax + 40349d: 89 45 fc mov %eax,-0x4(%rbp) + 4034a0: bf c8 00 00 00 mov $0xc8,%edi + 4034a5: e8 03 e2 ff ff call 4016ad + 4034aa: 8b 45 fc mov -0x4(%rbp),%eax + 4034ad: 48 8b 15 6c 53 00 00 mov 0x536c(%rip),%rdx # 408820 + 4034b4: 29 d0 sub %edx,%eax + 4034b6: 05 83 00 00 00 add $0x83,%eax + 4034bb: 89 45 fc mov %eax,-0x4(%rbp) + 4034be: eb 05 jmp 4034c5 + 4034c0: e8 31 27 00 00 call 405bf6 + 4034c5: 8b 45 f0 mov -0x10(%rbp),%eax + 4034c8: 39 45 fc cmp %eax,-0x4(%rbp) + 4034cb: 74 05 je 4034d2 + 4034cd: e8 24 27 00 00 call 405bf6 + 4034d2: 90 nop + 4034d3: c9 leave + 4034d4: c3 ret + +00000000004034d5 : + 4034d5: f3 0f 1e fa endbr64 + 4034d9: 55 push %rbp + 4034da: 48 89 e5 mov %rsp,%rbp + 4034dd: 48 83 ec 20 sub $0x20,%rsp + 4034e1: 48 89 7d e8 mov %rdi,-0x18(%rbp) + 4034e5: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 4034ec: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 4034f3: 48 8d 4d f0 lea -0x10(%rbp),%rcx + 4034f7: 48 8d 55 f4 lea -0xc(%rbp),%rdx + 4034fb: 48 8b 45 e8 mov -0x18(%rbp),%rax + 4034ff: 48 8d 35 86 31 00 00 lea 0x3186(%rip),%rsi # 40668c <_IO_stdin_used+0x68c> + 403506: 48 89 c7 mov %rax,%rdi + 403509: b8 00 00 00 00 mov $0x0,%eax + 40350e: e8 7d dc ff ff call 401190 <__isoc99_sscanf@plt> + 403513: 89 45 f8 mov %eax,-0x8(%rbp) + 403516: 83 7d f8 01 cmpl $0x1,-0x8(%rbp) + 40351a: 7f 05 jg 403521 + 40351c: e8 d5 26 00 00 call 405bf6 + 403521: bf 08 00 00 00 mov $0x8,%edi + 403526: e8 82 e1 ff ff call 4016ad + 40352b: 8b 45 f4 mov -0xc(%rbp),%eax + 40352e: 48 98 cltq + 403530: 48 8b 15 e9 52 00 00 mov 0x52e9(%rip),%rdx # 408820 + 403537: 48 81 c2 fa 00 00 00 add $0xfa,%rdx + 40353e: 48 39 d0 cmp %rdx,%rax + 403541: 74 05 je 403548 + 403543: e8 ae 26 00 00 call 405bf6 + 403548: bf c8 00 00 00 mov $0xc8,%edi + 40354d: e8 5b e1 ff ff call 4016ad + 403552: 8b 45 f4 mov -0xc(%rbp),%eax + 403555: 2d fa 00 00 00 sub $0xfa,%eax + 40355a: 83 f8 07 cmp $0x7,%eax + 40355d: 0f 87 13 01 00 00 ja 403676 + 403563: 89 c0 mov %eax,%eax + 403565: 48 8d 14 85 00 00 00 lea 0x0(,%rax,4),%rdx + 40356c: 00 + 40356d: 48 8d 05 20 32 00 00 lea 0x3220(%rip),%rax # 406794 <_IO_stdin_used+0x794> + 403574: 8b 04 02 mov (%rdx,%rax,1),%eax + 403577: 48 98 cltq + 403579: 48 8d 15 14 32 00 00 lea 0x3214(%rip),%rdx # 406794 <_IO_stdin_used+0x794> + 403580: 48 01 d0 add %rdx,%rax + 403583: 3e ff e0 notrack jmp *%rax + 403586: 48 8b 05 93 52 00 00 mov 0x5293(%rip),%rax # 408820 + 40358d: 89 c2 mov %eax,%edx + 40358f: 8b 45 fc mov -0x4(%rbp),%eax + 403592: 01 d0 add %edx,%eax + 403594: 05 32 05 00 00 add $0x532,%eax + 403599: 89 45 fc mov %eax,-0x4(%rbp) + 40359c: bf c8 00 00 00 mov $0xc8,%edi + 4035a1: e8 07 e1 ff ff call 4016ad + 4035a6: 8b 45 fc mov -0x4(%rbp),%eax + 4035a9: 48 8b 15 70 52 00 00 mov 0x5270(%rip),%rdx # 408820 + 4035b0: 29 d0 sub %edx,%eax + 4035b2: 05 e2 04 00 00 add $0x4e2,%eax + 4035b7: 89 45 fc mov %eax,-0x4(%rbp) + 4035ba: bf c8 00 00 00 mov $0xc8,%edi + 4035bf: e8 e9 e0 ff ff call 4016ad + 4035c4: 48 8b 05 55 52 00 00 mov 0x5255(%rip),%rax # 408820 + 4035cb: 89 c2 mov %eax,%edx + 4035cd: 8b 45 fc mov -0x4(%rbp),%eax + 4035d0: 01 d0 add %edx,%eax + 4035d2: 05 60 04 00 00 add $0x460,%eax + 4035d7: 89 45 fc mov %eax,-0x4(%rbp) + 4035da: bf c8 00 00 00 mov $0xc8,%edi + 4035df: e8 c9 e0 ff ff call 4016ad + 4035e4: 8b 45 fc mov -0x4(%rbp),%eax + 4035e7: 48 8b 15 32 52 00 00 mov 0x5232(%rip),%rdx # 408820 + 4035ee: 29 d0 sub %edx,%eax + 4035f0: 05 16 2b 00 00 add $0x2b16,%eax + 4035f5: 89 45 fc mov %eax,-0x4(%rbp) + 4035f8: bf c8 00 00 00 mov $0xc8,%edi + 4035fd: e8 ab e0 ff ff call 4016ad + 403602: 48 8b 05 17 52 00 00 mov 0x5217(%rip),%rax # 408820 + 403609: 89 c2 mov %eax,%edx + 40360b: 8b 45 fc mov -0x4(%rbp),%eax + 40360e: 01 d0 add %edx,%eax + 403610: 05 f0 05 00 00 add $0x5f0,%eax + 403615: 89 45 fc mov %eax,-0x4(%rbp) + 403618: bf c8 00 00 00 mov $0xc8,%edi + 40361d: e8 8b e0 ff ff call 4016ad + 403622: 8b 45 fc mov -0x4(%rbp),%eax + 403625: 48 8b 15 f4 51 00 00 mov 0x51f4(%rip),%rdx # 408820 + 40362c: 29 d0 sub %edx,%eax + 40362e: 05 b8 06 00 00 add $0x6b8,%eax + 403633: 89 45 fc mov %eax,-0x4(%rbp) + 403636: bf c8 00 00 00 mov $0xc8,%edi + 40363b: e8 6d e0 ff ff call 4016ad + 403640: 48 8b 05 d9 51 00 00 mov 0x51d9(%rip),%rax # 408820 + 403647: 89 c2 mov %eax,%edx + 403649: 8b 45 fc mov -0x4(%rbp),%eax + 40364c: 01 d0 add %edx,%eax + 40364e: 05 a6 04 00 00 add $0x4a6,%eax + 403653: 89 45 fc mov %eax,-0x4(%rbp) + 403656: bf c8 00 00 00 mov $0xc8,%edi + 40365b: e8 4d e0 ff ff call 4016ad + 403660: 8b 45 fc mov -0x4(%rbp),%eax + 403663: 48 8b 15 b6 51 00 00 mov 0x51b6(%rip),%rdx # 408820 + 40366a: 29 d0 sub %edx,%eax + 40366c: 05 1e 05 00 00 add $0x51e,%eax + 403671: 89 45 fc mov %eax,-0x4(%rbp) + 403674: eb 05 jmp 40367b + 403676: e8 7b 25 00 00 call 405bf6 + 40367b: 8b 45 f0 mov -0x10(%rbp),%eax + 40367e: 39 45 fc cmp %eax,-0x4(%rbp) + 403681: 74 05 je 403688 + 403683: e8 6e 25 00 00 call 405bf6 + 403688: 90 nop + 403689: c9 leave + 40368a: c3 ret + +000000000040368b : + 40368b: f3 0f 1e fa endbr64 + 40368f: 55 push %rbp + 403690: 48 89 e5 mov %rsp,%rbp + 403693: 48 83 ec 20 sub $0x20,%rsp + 403697: 48 89 7d e8 mov %rdi,-0x18(%rbp) + 40369b: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 4036a2: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 4036a9: 48 8d 4d f0 lea -0x10(%rbp),%rcx + 4036ad: 48 8d 55 f4 lea -0xc(%rbp),%rdx + 4036b1: 48 8b 45 e8 mov -0x18(%rbp),%rax + 4036b5: 48 8d 35 d0 2f 00 00 lea 0x2fd0(%rip),%rsi # 40668c <_IO_stdin_used+0x68c> + 4036bc: 48 89 c7 mov %rax,%rdi + 4036bf: b8 00 00 00 00 mov $0x0,%eax + 4036c4: e8 c7 da ff ff call 401190 <__isoc99_sscanf@plt> + 4036c9: 89 45 f8 mov %eax,-0x8(%rbp) + 4036cc: 83 7d f8 01 cmpl $0x1,-0x8(%rbp) + 4036d0: 7f 05 jg 4036d7 + 4036d2: e8 1f 25 00 00 call 405bf6 + 4036d7: bf 08 00 00 00 mov $0x8,%edi + 4036dc: e8 cc df ff ff call 4016ad + 4036e1: 8b 45 f4 mov -0xc(%rbp),%eax + 4036e4: 48 98 cltq + 4036e6: 48 8b 15 33 51 00 00 mov 0x5133(%rip),%rdx # 408820 + 4036ed: 48 81 c2 62 02 00 00 add $0x262,%rdx + 4036f4: 48 39 d0 cmp %rdx,%rax + 4036f7: 74 05 je 4036fe + 4036f9: e8 f8 24 00 00 call 405bf6 + 4036fe: bf c8 00 00 00 mov $0xc8,%edi + 403703: e8 a5 df ff ff call 4016ad + 403708: 8b 45 f4 mov -0xc(%rbp),%eax + 40370b: 2d 62 02 00 00 sub $0x262,%eax + 403710: 83 f8 07 cmp $0x7,%eax + 403713: 0f 87 11 01 00 00 ja 40382a + 403719: 89 c0 mov %eax,%eax + 40371b: 48 8d 14 85 00 00 00 lea 0x0(,%rax,4),%rdx + 403722: 00 + 403723: 48 8d 05 8a 30 00 00 lea 0x308a(%rip),%rax # 4067b4 <_IO_stdin_used+0x7b4> + 40372a: 8b 04 02 mov (%rdx,%rax,1),%eax + 40372d: 48 98 cltq + 40372f: 48 8d 15 7e 30 00 00 lea 0x307e(%rip),%rdx # 4067b4 <_IO_stdin_used+0x7b4> + 403736: 48 01 d0 add %rdx,%rax + 403739: 3e ff e0 notrack jmp *%rax + 40373c: 48 8b 05 dd 50 00 00 mov 0x50dd(%rip),%rax # 408820 + 403743: 89 c2 mov %eax,%edx + 403745: 8b 45 fc mov -0x4(%rbp),%eax + 403748: 01 d0 add %edx,%eax + 40374a: 05 4a 01 00 00 add $0x14a,%eax + 40374f: 89 45 fc mov %eax,-0x4(%rbp) + 403752: bf c8 00 00 00 mov $0xc8,%edi + 403757: e8 51 df ff ff call 4016ad + 40375c: 8b 45 fc mov -0x4(%rbp),%eax + 40375f: 48 8b 15 ba 50 00 00 mov 0x50ba(%rip),%rdx # 408820 + 403766: 29 d0 sub %edx,%eax + 403768: 05 fa 00 00 00 add $0xfa,%eax + 40376d: 89 45 fc mov %eax,-0x4(%rbp) + 403770: bf c8 00 00 00 mov $0xc8,%edi + 403775: e8 33 df ff ff call 4016ad + 40377a: 48 8b 05 9f 50 00 00 mov 0x509f(%rip),%rax # 408820 + 403781: 89 c2 mov %eax,%edx + 403783: 8b 45 fc mov -0x4(%rbp),%eax + 403786: 01 d0 add %edx,%eax + 403788: 83 c0 78 add $0x78,%eax + 40378b: 89 45 fc mov %eax,-0x4(%rbp) + 40378e: bf c8 00 00 00 mov $0xc8,%edi + 403793: e8 15 df ff ff call 4016ad + 403798: 8b 45 fc mov -0x4(%rbp),%eax + 40379b: 48 8b 15 7e 50 00 00 mov 0x507e(%rip),%rdx # 408820 + 4037a2: 29 d0 sub %edx,%eax + 4037a4: 05 06 04 00 00 add $0x406,%eax + 4037a9: 89 45 fc mov %eax,-0x4(%rbp) + 4037ac: bf c8 00 00 00 mov $0xc8,%edi + 4037b1: e8 f7 de ff ff call 4016ad + 4037b6: 48 8b 05 63 50 00 00 mov 0x5063(%rip),%rax # 408820 + 4037bd: 89 c2 mov %eax,%edx + 4037bf: 8b 45 fc mov -0x4(%rbp),%eax + 4037c2: 01 d0 add %edx,%eax + 4037c4: 05 08 02 00 00 add $0x208,%eax + 4037c9: 89 45 fc mov %eax,-0x4(%rbp) + 4037cc: bf c8 00 00 00 mov $0xc8,%edi + 4037d1: e8 d7 de ff ff call 4016ad + 4037d6: 8b 45 fc mov -0x4(%rbp),%eax + 4037d9: 48 8b 15 40 50 00 00 mov 0x5040(%rip),%rdx # 408820 + 4037e0: 29 d0 sub %edx,%eax + 4037e2: 05 d0 02 00 00 add $0x2d0,%eax + 4037e7: 89 45 fc mov %eax,-0x4(%rbp) + 4037ea: bf c8 00 00 00 mov $0xc8,%edi + 4037ef: e8 b9 de ff ff call 4016ad + 4037f4: 48 8b 05 25 50 00 00 mov 0x5025(%rip),%rax # 408820 + 4037fb: 89 c2 mov %eax,%edx + 4037fd: 8b 45 fc mov -0x4(%rbp),%eax + 403800: 01 d0 add %edx,%eax + 403802: 05 be 00 00 00 add $0xbe,%eax + 403807: 89 45 fc mov %eax,-0x4(%rbp) + 40380a: bf c8 00 00 00 mov $0xc8,%edi + 40380f: e8 99 de ff ff call 4016ad + 403814: 8b 45 fc mov -0x4(%rbp),%eax + 403817: 48 8b 15 02 50 00 00 mov 0x5002(%rip),%rdx # 408820 + 40381e: 29 d0 sub %edx,%eax + 403820: 05 36 01 00 00 add $0x136,%eax + 403825: 89 45 fc mov %eax,-0x4(%rbp) + 403828: eb 05 jmp 40382f + 40382a: e8 c7 23 00 00 call 405bf6 + 40382f: 8b 45 f0 mov -0x10(%rbp),%eax + 403832: 39 45 fc cmp %eax,-0x4(%rbp) + 403835: 74 05 je 40383c + 403837: e8 ba 23 00 00 call 405bf6 + 40383c: 90 nop + 40383d: c9 leave + 40383e: c3 ret + +000000000040383f : + 40383f: f3 0f 1e fa endbr64 + 403843: 55 push %rbp + 403844: 48 89 e5 mov %rsp,%rbp + 403847: 48 83 ec 20 sub $0x20,%rsp + 40384b: 48 89 7d e8 mov %rdi,-0x18(%rbp) + 40384f: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%rbp) + 403856: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 40385d: 48 8d 4d f0 lea -0x10(%rbp),%rcx + 403861: 48 8d 55 f4 lea -0xc(%rbp),%rdx + 403865: 48 8b 45 e8 mov -0x18(%rbp),%rax + 403869: 48 8d 35 1c 2e 00 00 lea 0x2e1c(%rip),%rsi # 40668c <_IO_stdin_used+0x68c> + 403870: 48 89 c7 mov %rax,%rdi + 403873: b8 00 00 00 00 mov $0x0,%eax + 403878: e8 13 d9 ff ff call 401190 <__isoc99_sscanf@plt> + 40387d: 89 45 f8 mov %eax,-0x8(%rbp) + 403880: 83 7d f8 01 cmpl $0x1,-0x8(%rbp) + 403884: 7f 05 jg 40388b + 403886: e8 6b 23 00 00 call 405bf6 + 40388b: bf 08 00 00 00 mov $0x8,%edi + 403890: e8 18 de ff ff call 4016ad + 403895: 8b 45 f4 mov -0xc(%rbp),%eax + 403898: 48 98 cltq + 40389a: 48 8b 15 7f 4f 00 00 mov 0x4f7f(%rip),%rdx # 408820 + 4038a1: 48 81 c2 8e 03 00 00 add $0x38e,%rdx + 4038a8: 48 39 d0 cmp %rdx,%rax + 4038ab: 74 05 je 4038b2 + 4038ad: e8 44 23 00 00 call 405bf6 + 4038b2: bf c8 00 00 00 mov $0xc8,%edi + 4038b7: e8 f1 dd ff ff call 4016ad + 4038bc: 8b 45 f4 mov -0xc(%rbp),%eax + 4038bf: 2d 8e 03 00 00 sub $0x38e,%eax + 4038c4: 83 f8 07 cmp $0x7,%eax + 4038c7: 0f 87 13 01 00 00 ja 4039e0 + 4038cd: 89 c0 mov %eax,%eax + 4038cf: 48 8d 14 85 00 00 00 lea 0x0(,%rax,4),%rdx + 4038d6: 00 + 4038d7: 48 8d 05 f6 2e 00 00 lea 0x2ef6(%rip),%rax # 4067d4 <_IO_stdin_used+0x7d4> + 4038de: 8b 04 02 mov (%rdx,%rax,1),%eax + 4038e1: 48 98 cltq + 4038e3: 48 8d 15 ea 2e 00 00 lea 0x2eea(%rip),%rdx # 4067d4 <_IO_stdin_used+0x7d4> + 4038ea: 48 01 d0 add %rdx,%rax + 4038ed: 3e ff e0 notrack jmp *%rax + 4038f0: 48 8b 05 29 4f 00 00 mov 0x4f29(%rip),%rax # 408820 + 4038f7: 89 c2 mov %eax,%edx + 4038f9: 8b 45 fc mov -0x4(%rbp),%eax + 4038fc: 01 d0 add %edx,%eax + 4038fe: 05 ea 10 00 00 add $0x10ea,%eax + 403903: 89 45 fc mov %eax,-0x4(%rbp) + 403906: bf c8 00 00 00 mov $0xc8,%edi + 40390b: e8 9d dd ff ff call 4016ad + 403910: 8b 45 fc mov -0x4(%rbp),%eax + 403913: 48 8b 15 06 4f 00 00 mov 0x4f06(%rip),%rdx # 408820 + 40391a: 29 d0 sub %edx,%eax + 40391c: 05 9a 10 00 00 add $0x109a,%eax + 403921: 89 45 fc mov %eax,-0x4(%rbp) + 403924: bf c8 00 00 00 mov $0xc8,%edi + 403929: e8 7f dd ff ff call 4016ad + 40392e: 48 8b 05 eb 4e 00 00 mov 0x4eeb(%rip),%rax # 408820 + 403935: 89 c2 mov %eax,%edx + 403937: 8b 45 fc mov -0x4(%rbp),%eax + 40393a: 01 d0 add %edx,%eax + 40393c: 05 18 10 00 00 add $0x1018,%eax + 403941: 89 45 fc mov %eax,-0x4(%rbp) + 403944: bf c8 00 00 00 mov $0xc8,%edi + 403949: e8 5f dd ff ff call 4016ad + 40394e: 8b 45 fc mov -0x4(%rbp),%eax + 403951: 48 8b 15 c8 4e 00 00 mov 0x4ec8(%rip),%rdx # 408820 + 403958: 29 d0 sub %edx,%eax + 40395a: 05 46 a0 00 00 add $0xa046,%eax + 40395f: 89 45 fc mov %eax,-0x4(%rbp) + 403962: bf c8 00 00 00 mov $0xc8,%edi + 403967: e8 41 dd ff ff call 4016ad + 40396c: 48 8b 05 ad 4e 00 00 mov 0x4ead(%rip),%rax # 408820 + 403973: 89 c2 mov %eax,%edx + 403975: 8b 45 fc mov -0x4(%rbp),%eax + 403978: 01 d0 add %edx,%eax + 40397a: 05 a8 11 00 00 add $0x11a8,%eax + 40397f: 89 45 fc mov %eax,-0x4(%rbp) + 403982: bf c8 00 00 00 mov $0xc8,%edi + 403987: e8 21 dd ff ff call 4016ad + 40398c: 8b 45 fc mov -0x4(%rbp),%eax + 40398f: 48 8b 15 8a 4e 00 00 mov 0x4e8a(%rip),%rdx # 408820 + 403996: 29 d0 sub %edx,%eax + 403998: 05 70 12 00 00 add $0x1270,%eax + 40399d: 89 45 fc mov %eax,-0x4(%rbp) + 4039a0: bf c8 00 00 00 mov $0xc8,%edi + 4039a5: e8 03 dd ff ff call 4016ad + 4039aa: 48 8b 05 6f 4e 00 00 mov 0x4e6f(%rip),%rax # 408820 + 4039b1: 89 c2 mov %eax,%edx + 4039b3: 8b 45 fc mov -0x4(%rbp),%eax + 4039b6: 01 d0 add %edx,%eax + 4039b8: 05 5e 10 00 00 add $0x105e,%eax + 4039bd: 89 45 fc mov %eax,-0x4(%rbp) + 4039c0: bf c8 00 00 00 mov $0xc8,%edi + 4039c5: e8 e3 dc ff ff call 4016ad + 4039ca: 8b 45 fc mov -0x4(%rbp),%eax + 4039cd: 48 8b 15 4c 4e 00 00 mov 0x4e4c(%rip),%rdx # 408820 + 4039d4: 29 d0 sub %edx,%eax + 4039d6: 05 d6 10 00 00 add $0x10d6,%eax + 4039db: 89 45 fc mov %eax,-0x4(%rbp) + 4039de: eb 05 jmp 4039e5 + 4039e0: e8 11 22 00 00 call 405bf6 + 4039e5: 8b 45 f0 mov -0x10(%rbp),%eax + 4039e8: 39 45 fc cmp %eax,-0x4(%rbp) + 4039eb: 74 05 je 4039f2 + 4039ed: e8 04 22 00 00 call 405bf6 + 4039f2: 90 nop + 4039f3: c9 leave + 4039f4: c3 ret + +00000000004039f5 : + 4039f5: f3 0f 1e fa endbr64 + 4039f9: 55 push %rbp + 4039fa: 48 89 e5 mov %rsp,%rbp + 4039fd: 48 83 ec 30 sub $0x30,%rsp + 403a01: 48 89 7d d8 mov %rdi,-0x28(%rbp) + 403a05: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 403a0c: 48 8d 75 f0 lea -0x10(%rbp),%rsi + 403a10: 48 8d 4d ef lea -0x11(%rbp),%rcx + 403a14: 48 8d 55 f4 lea -0xc(%rbp),%rdx + 403a18: 48 8b 45 d8 mov -0x28(%rbp),%rax + 403a1c: 49 89 f0 mov %rsi,%r8 + 403a1f: 48 8d 35 ce 2d 00 00 lea 0x2dce(%rip),%rsi # 4067f4 <_IO_stdin_used+0x7f4> + 403a26: 48 89 c7 mov %rax,%rdi + 403a29: b8 00 00 00 00 mov $0x0,%eax + 403a2e: e8 5d d7 ff ff call 401190 <__isoc99_sscanf@plt> + 403a33: 89 45 f8 mov %eax,-0x8(%rbp) + 403a36: 83 7d f8 02 cmpl $0x2,-0x8(%rbp) + 403a3a: 7f 05 jg 403a41 + 403a3c: e8 b5 21 00 00 call 405bf6 + 403a41: bf 08 00 00 00 mov $0x8,%edi + 403a46: e8 62 dc ff ff call 4016ad + 403a4b: 8b 45 f4 mov -0xc(%rbp),%eax + 403a4e: 48 63 d0 movslq %eax,%rdx + 403a51: 48 8b 05 c8 4d 00 00 mov 0x4dc8(%rip),%rax # 408820 + 403a58: 48 39 c2 cmp %rax,%rdx + 403a5b: 74 05 je 403a62 + 403a5d: e8 94 21 00 00 call 405bf6 + 403a62: 8b 45 f4 mov -0xc(%rbp),%eax + 403a65: 83 f8 07 cmp $0x7,%eax + 403a68: 0f 87 3c 03 00 00 ja 403daa + 403a6e: 89 c0 mov %eax,%eax + 403a70: 48 8d 14 85 00 00 00 lea 0x0(,%rax,4),%rdx + 403a77: 00 + 403a78: 48 8d 05 81 2d 00 00 lea 0x2d81(%rip),%rax # 406800 <_IO_stdin_used+0x800> + 403a7f: 8b 04 02 mov (%rdx,%rax,1),%eax + 403a82: 48 98 cltq + 403a84: 48 8d 15 75 2d 00 00 lea 0x2d75(%rip),%rdx # 406800 <_IO_stdin_used+0x800> + 403a8b: 48 01 d0 add %rdx,%rax + 403a8e: 3e ff e0 notrack jmp *%rax + 403a91: bf 1a 00 00 00 mov $0x1a,%edi + 403a96: e8 12 dc ff ff call 4016ad + 403a9b: 48 8b 05 7e 4d 00 00 mov 0x4d7e(%rip),%rax # 408820 + 403aa2: 83 c0 41 add $0x41,%eax + 403aa5: 88 45 ff mov %al,-0x1(%rbp) + 403aa8: bf c8 00 00 00 mov $0xc8,%edi + 403aad: e8 fb db ff ff call 4016ad + 403ab2: 8b 45 f0 mov -0x10(%rbp),%eax + 403ab5: 48 63 d0 movslq %eax,%rdx + 403ab8: 48 8b 05 61 4d 00 00 mov 0x4d61(%rip),%rax # 408820 + 403abf: 48 39 c2 cmp %rax,%rdx + 403ac2: 0f 84 ed 02 00 00 je 403db5 + 403ac8: e8 29 21 00 00 call 405bf6 + 403acd: e9 e3 02 00 00 jmp 403db5 + 403ad2: bf 00 00 00 00 mov $0x0,%edi + 403ad7: e8 d1 db ff ff call 4016ad + 403adc: bf 1a 00 00 00 mov $0x1a,%edi + 403ae1: e8 c7 db ff ff call 4016ad + 403ae6: 48 8b 05 33 4d 00 00 mov 0x4d33(%rip),%rax # 408820 + 403aed: 83 c0 41 add $0x41,%eax + 403af0: 88 45 ff mov %al,-0x1(%rbp) + 403af3: bf c8 00 00 00 mov $0xc8,%edi + 403af8: e8 b0 db ff ff call 4016ad + 403afd: 8b 45 f0 mov -0x10(%rbp),%eax + 403b00: 48 63 d0 movslq %eax,%rdx + 403b03: 48 8b 05 16 4d 00 00 mov 0x4d16(%rip),%rax # 408820 + 403b0a: 48 39 c2 cmp %rax,%rdx + 403b0d: 0f 84 a5 02 00 00 je 403db8 + 403b13: e8 de 20 00 00 call 405bf6 + 403b18: e9 9b 02 00 00 jmp 403db8 + 403b1d: bf 00 00 00 00 mov $0x0,%edi + 403b22: e8 86 db ff ff call 4016ad + 403b27: bf 00 00 00 00 mov $0x0,%edi + 403b2c: e8 7c db ff ff call 4016ad + 403b31: bf 1a 00 00 00 mov $0x1a,%edi + 403b36: e8 72 db ff ff call 4016ad + 403b3b: 48 8b 05 de 4c 00 00 mov 0x4cde(%rip),%rax # 408820 + 403b42: 83 c0 41 add $0x41,%eax + 403b45: 88 45 ff mov %al,-0x1(%rbp) + 403b48: bf c8 00 00 00 mov $0xc8,%edi + 403b4d: e8 5b db ff ff call 4016ad + 403b52: 8b 45 f0 mov -0x10(%rbp),%eax + 403b55: 48 63 d0 movslq %eax,%rdx + 403b58: 48 8b 05 c1 4c 00 00 mov 0x4cc1(%rip),%rax # 408820 + 403b5f: 48 39 c2 cmp %rax,%rdx + 403b62: 0f 84 53 02 00 00 je 403dbb + 403b68: e8 89 20 00 00 call 405bf6 + 403b6d: e9 49 02 00 00 jmp 403dbb + 403b72: bf 00 00 00 00 mov $0x0,%edi + 403b77: e8 31 db ff ff call 4016ad + 403b7c: bf 00 00 00 00 mov $0x0,%edi + 403b81: e8 27 db ff ff call 4016ad + 403b86: bf 00 00 00 00 mov $0x0,%edi + 403b8b: e8 1d db ff ff call 4016ad + 403b90: bf 1a 00 00 00 mov $0x1a,%edi + 403b95: e8 13 db ff ff call 4016ad + 403b9a: 48 8b 05 7f 4c 00 00 mov 0x4c7f(%rip),%rax # 408820 + 403ba1: 83 c0 41 add $0x41,%eax + 403ba4: 88 45 ff mov %al,-0x1(%rbp) + 403ba7: bf c8 00 00 00 mov $0xc8,%edi + 403bac: e8 fc da ff ff call 4016ad + 403bb1: 8b 45 f0 mov -0x10(%rbp),%eax + 403bb4: 48 63 d0 movslq %eax,%rdx + 403bb7: 48 8b 05 62 4c 00 00 mov 0x4c62(%rip),%rax # 408820 + 403bbe: 48 39 c2 cmp %rax,%rdx + 403bc1: 0f 84 f7 01 00 00 je 403dbe + 403bc7: e8 2a 20 00 00 call 405bf6 + 403bcc: e9 ed 01 00 00 jmp 403dbe + 403bd1: bf 00 00 00 00 mov $0x0,%edi + 403bd6: e8 d2 da ff ff call 4016ad + 403bdb: bf 00 00 00 00 mov $0x0,%edi + 403be0: e8 c8 da ff ff call 4016ad + 403be5: bf 00 00 00 00 mov $0x0,%edi + 403bea: e8 be da ff ff call 4016ad + 403bef: bf 00 00 00 00 mov $0x0,%edi + 403bf4: e8 b4 da ff ff call 4016ad + 403bf9: bf 1a 00 00 00 mov $0x1a,%edi + 403bfe: e8 aa da ff ff call 4016ad + 403c03: 48 8b 05 16 4c 00 00 mov 0x4c16(%rip),%rax # 408820 + 403c0a: 83 c0 41 add $0x41,%eax + 403c0d: 88 45 ff mov %al,-0x1(%rbp) + 403c10: bf c8 00 00 00 mov $0xc8,%edi + 403c15: e8 93 da ff ff call 4016ad + 403c1a: 8b 45 f0 mov -0x10(%rbp),%eax + 403c1d: 48 63 d0 movslq %eax,%rdx + 403c20: 48 8b 05 f9 4b 00 00 mov 0x4bf9(%rip),%rax # 408820 + 403c27: 48 39 c2 cmp %rax,%rdx + 403c2a: 0f 84 91 01 00 00 je 403dc1 + 403c30: e8 c1 1f 00 00 call 405bf6 + 403c35: e9 87 01 00 00 jmp 403dc1 + 403c3a: bf 00 00 00 00 mov $0x0,%edi + 403c3f: e8 69 da ff ff call 4016ad + 403c44: bf 00 00 00 00 mov $0x0,%edi + 403c49: e8 5f da ff ff call 4016ad + 403c4e: bf 00 00 00 00 mov $0x0,%edi + 403c53: e8 55 da ff ff call 4016ad + 403c58: bf 00 00 00 00 mov $0x0,%edi + 403c5d: e8 4b da ff ff call 4016ad + 403c62: bf 00 00 00 00 mov $0x0,%edi + 403c67: e8 41 da ff ff call 4016ad + 403c6c: bf 1a 00 00 00 mov $0x1a,%edi + 403c71: e8 37 da ff ff call 4016ad + 403c76: 48 8b 05 a3 4b 00 00 mov 0x4ba3(%rip),%rax # 408820 + 403c7d: 83 c0 41 add $0x41,%eax + 403c80: 88 45 ff mov %al,-0x1(%rbp) + 403c83: bf c8 00 00 00 mov $0xc8,%edi + 403c88: e8 20 da ff ff call 4016ad + 403c8d: 8b 45 f0 mov -0x10(%rbp),%eax + 403c90: 48 63 d0 movslq %eax,%rdx + 403c93: 48 8b 05 86 4b 00 00 mov 0x4b86(%rip),%rax # 408820 + 403c9a: 48 39 c2 cmp %rax,%rdx + 403c9d: 0f 84 21 01 00 00 je 403dc4 + 403ca3: e8 4e 1f 00 00 call 405bf6 + 403ca8: e9 17 01 00 00 jmp 403dc4 + 403cad: bf 00 00 00 00 mov $0x0,%edi + 403cb2: e8 f6 d9 ff ff call 4016ad + 403cb7: bf 00 00 00 00 mov $0x0,%edi + 403cbc: e8 ec d9 ff ff call 4016ad + 403cc1: bf 00 00 00 00 mov $0x0,%edi + 403cc6: e8 e2 d9 ff ff call 4016ad + 403ccb: bf 00 00 00 00 mov $0x0,%edi + 403cd0: e8 d8 d9 ff ff call 4016ad + 403cd5: bf 00 00 00 00 mov $0x0,%edi + 403cda: e8 ce d9 ff ff call 4016ad + 403cdf: bf 00 00 00 00 mov $0x0,%edi + 403ce4: e8 c4 d9 ff ff call 4016ad + 403ce9: bf 1a 00 00 00 mov $0x1a,%edi + 403cee: e8 ba d9 ff ff call 4016ad + 403cf3: 48 8b 05 26 4b 00 00 mov 0x4b26(%rip),%rax # 408820 + 403cfa: 83 c0 41 add $0x41,%eax + 403cfd: 88 45 ff mov %al,-0x1(%rbp) + 403d00: bf c8 00 00 00 mov $0xc8,%edi + 403d05: e8 a3 d9 ff ff call 4016ad + 403d0a: 8b 45 f0 mov -0x10(%rbp),%eax + 403d0d: 48 63 d0 movslq %eax,%rdx + 403d10: 48 8b 05 09 4b 00 00 mov 0x4b09(%rip),%rax # 408820 + 403d17: 48 39 c2 cmp %rax,%rdx + 403d1a: 0f 84 a7 00 00 00 je 403dc7 + 403d20: e8 d1 1e 00 00 call 405bf6 + 403d25: e9 9d 00 00 00 jmp 403dc7 + 403d2a: bf 00 00 00 00 mov $0x0,%edi + 403d2f: e8 79 d9 ff ff call 4016ad + 403d34: bf 00 00 00 00 mov $0x0,%edi + 403d39: e8 6f d9 ff ff call 4016ad + 403d3e: bf 00 00 00 00 mov $0x0,%edi + 403d43: e8 65 d9 ff ff call 4016ad + 403d48: bf 00 00 00 00 mov $0x0,%edi + 403d4d: e8 5b d9 ff ff call 4016ad + 403d52: bf 00 00 00 00 mov $0x0,%edi + 403d57: e8 51 d9 ff ff call 4016ad + 403d5c: bf 00 00 00 00 mov $0x0,%edi + 403d61: e8 47 d9 ff ff call 4016ad + 403d66: bf 00 00 00 00 mov $0x0,%edi + 403d6b: e8 3d d9 ff ff call 4016ad + 403d70: bf 1a 00 00 00 mov $0x1a,%edi + 403d75: e8 33 d9 ff ff call 4016ad + 403d7a: 48 8b 05 9f 4a 00 00 mov 0x4a9f(%rip),%rax # 408820 + 403d81: 83 c0 41 add $0x41,%eax + 403d84: 88 45 ff mov %al,-0x1(%rbp) + 403d87: bf c8 00 00 00 mov $0xc8,%edi + 403d8c: e8 1c d9 ff ff call 4016ad + 403d91: 8b 45 f0 mov -0x10(%rbp),%eax + 403d94: 48 63 d0 movslq %eax,%rdx + 403d97: 48 8b 05 82 4a 00 00 mov 0x4a82(%rip),%rax # 408820 + 403d9e: 48 39 c2 cmp %rax,%rdx + 403da1: 74 27 je 403dca + 403da3: e8 4e 1e 00 00 call 405bf6 + 403da8: eb 20 jmp 403dca + 403daa: c6 45 ff 61 movb $0x61,-0x1(%rbp) + 403dae: e8 43 1e 00 00 call 405bf6 + 403db3: eb 16 jmp 403dcb + 403db5: 90 nop + 403db6: eb 13 jmp 403dcb + 403db8: 90 nop + 403db9: eb 10 jmp 403dcb + 403dbb: 90 nop + 403dbc: eb 0d jmp 403dcb + 403dbe: 90 nop + 403dbf: eb 0a jmp 403dcb + 403dc1: 90 nop + 403dc2: eb 07 jmp 403dcb + 403dc4: 90 nop + 403dc5: eb 04 jmp 403dcb + 403dc7: 90 nop + 403dc8: eb 01 jmp 403dcb + 403dca: 90 nop + 403dcb: 0f b6 45 ef movzbl -0x11(%rbp),%eax + 403dcf: 38 45 ff cmp %al,-0x1(%rbp) + 403dd2: 74 05 je 403dd9 + 403dd4: e8 1d 1e 00 00 call 405bf6 + 403dd9: 90 nop + 403dda: c9 leave + 403ddb: c3 ret + +0000000000403ddc : + 403ddc: f3 0f 1e fa endbr64 + 403de0: 55 push %rbp + 403de1: 48 89 e5 mov %rsp,%rbp + 403de4: 48 83 ec 30 sub $0x30,%rsp + 403de8: 48 89 7d d8 mov %rdi,-0x28(%rbp) + 403dec: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 403df3: 48 8d 75 f0 lea -0x10(%rbp),%rsi + 403df7: 48 8d 4d ef lea -0x11(%rbp),%rcx + 403dfb: 48 8d 55 f4 lea -0xc(%rbp),%rdx + 403dff: 48 8b 45 d8 mov -0x28(%rbp),%rax + 403e03: 49 89 f0 mov %rsi,%r8 + 403e06: 48 8d 35 e7 29 00 00 lea 0x29e7(%rip),%rsi # 4067f4 <_IO_stdin_used+0x7f4> + 403e0d: 48 89 c7 mov %rax,%rdi + 403e10: b8 00 00 00 00 mov $0x0,%eax + 403e15: e8 76 d3 ff ff call 401190 <__isoc99_sscanf@plt> + 403e1a: 89 45 f8 mov %eax,-0x8(%rbp) + 403e1d: 83 7d f8 02 cmpl $0x2,-0x8(%rbp) + 403e21: 7f 05 jg 403e28 + 403e23: e8 ce 1d 00 00 call 405bf6 + 403e28: bf 08 00 00 00 mov $0x8,%edi + 403e2d: e8 7b d8 ff ff call 4016ad + 403e32: 8b 45 f4 mov -0xc(%rbp),%eax + 403e35: 48 98 cltq + 403e37: 48 8b 15 e2 49 00 00 mov 0x49e2(%rip),%rdx # 408820 + 403e3e: 48 83 c2 1e add $0x1e,%rdx + 403e42: 48 39 d0 cmp %rdx,%rax + 403e45: 74 05 je 403e4c + 403e47: e8 aa 1d 00 00 call 405bf6 + 403e4c: 8b 45 f4 mov -0xc(%rbp),%eax + 403e4f: 83 e8 1e sub $0x1e,%eax + 403e52: 83 f8 07 cmp $0x7,%eax + 403e55: 0f 87 3c 03 00 00 ja 404197 + 403e5b: 89 c0 mov %eax,%eax + 403e5d: 48 8d 14 85 00 00 00 lea 0x0(,%rax,4),%rdx + 403e64: 00 + 403e65: 48 8d 05 b4 29 00 00 lea 0x29b4(%rip),%rax # 406820 <_IO_stdin_used+0x820> + 403e6c: 8b 04 02 mov (%rdx,%rax,1),%eax + 403e6f: 48 98 cltq + 403e71: 48 8d 15 a8 29 00 00 lea 0x29a8(%rip),%rdx # 406820 <_IO_stdin_used+0x820> + 403e78: 48 01 d0 add %rdx,%rax + 403e7b: 3e ff e0 notrack jmp *%rax + 403e7e: bf 1a 00 00 00 mov $0x1a,%edi + 403e83: e8 25 d8 ff ff call 4016ad + 403e88: 48 8b 05 91 49 00 00 mov 0x4991(%rip),%rax # 408820 + 403e8f: 83 c0 41 add $0x41,%eax + 403e92: 88 45 ff mov %al,-0x1(%rbp) + 403e95: bf 64 00 00 00 mov $0x64,%edi + 403e9a: e8 0e d8 ff ff call 4016ad + 403e9f: 8b 45 f0 mov -0x10(%rbp),%eax + 403ea2: 48 63 d0 movslq %eax,%rdx + 403ea5: 48 8b 05 74 49 00 00 mov 0x4974(%rip),%rax # 408820 + 403eac: 48 39 c2 cmp %rax,%rdx + 403eaf: 0f 84 ed 02 00 00 je 4041a2 + 403eb5: e8 3c 1d 00 00 call 405bf6 + 403eba: e9 e3 02 00 00 jmp 4041a2 + 403ebf: bf 00 00 00 00 mov $0x0,%edi + 403ec4: e8 e4 d7 ff ff call 4016ad + 403ec9: bf 1a 00 00 00 mov $0x1a,%edi + 403ece: e8 da d7 ff ff call 4016ad + 403ed3: 48 8b 05 46 49 00 00 mov 0x4946(%rip),%rax # 408820 + 403eda: 83 c0 41 add $0x41,%eax + 403edd: 88 45 ff mov %al,-0x1(%rbp) + 403ee0: bf 64 00 00 00 mov $0x64,%edi + 403ee5: e8 c3 d7 ff ff call 4016ad + 403eea: 8b 45 f0 mov -0x10(%rbp),%eax + 403eed: 48 63 d0 movslq %eax,%rdx + 403ef0: 48 8b 05 29 49 00 00 mov 0x4929(%rip),%rax # 408820 + 403ef7: 48 39 c2 cmp %rax,%rdx + 403efa: 0f 84 a5 02 00 00 je 4041a5 + 403f00: e8 f1 1c 00 00 call 405bf6 + 403f05: e9 9b 02 00 00 jmp 4041a5 + 403f0a: bf 00 00 00 00 mov $0x0,%edi + 403f0f: e8 99 d7 ff ff call 4016ad + 403f14: bf 00 00 00 00 mov $0x0,%edi + 403f19: e8 8f d7 ff ff call 4016ad + 403f1e: bf 1a 00 00 00 mov $0x1a,%edi + 403f23: e8 85 d7 ff ff call 4016ad + 403f28: 48 8b 05 f1 48 00 00 mov 0x48f1(%rip),%rax # 408820 + 403f2f: 83 c0 41 add $0x41,%eax + 403f32: 88 45 ff mov %al,-0x1(%rbp) + 403f35: bf 64 00 00 00 mov $0x64,%edi + 403f3a: e8 6e d7 ff ff call 4016ad + 403f3f: 8b 45 f0 mov -0x10(%rbp),%eax + 403f42: 48 63 d0 movslq %eax,%rdx + 403f45: 48 8b 05 d4 48 00 00 mov 0x48d4(%rip),%rax # 408820 + 403f4c: 48 39 c2 cmp %rax,%rdx + 403f4f: 0f 84 53 02 00 00 je 4041a8 + 403f55: e8 9c 1c 00 00 call 405bf6 + 403f5a: e9 49 02 00 00 jmp 4041a8 + 403f5f: bf 00 00 00 00 mov $0x0,%edi + 403f64: e8 44 d7 ff ff call 4016ad + 403f69: bf 00 00 00 00 mov $0x0,%edi + 403f6e: e8 3a d7 ff ff call 4016ad + 403f73: bf 00 00 00 00 mov $0x0,%edi + 403f78: e8 30 d7 ff ff call 4016ad + 403f7d: bf 1a 00 00 00 mov $0x1a,%edi + 403f82: e8 26 d7 ff ff call 4016ad + 403f87: 48 8b 05 92 48 00 00 mov 0x4892(%rip),%rax # 408820 + 403f8e: 83 c0 41 add $0x41,%eax + 403f91: 88 45 ff mov %al,-0x1(%rbp) + 403f94: bf 64 00 00 00 mov $0x64,%edi + 403f99: e8 0f d7 ff ff call 4016ad + 403f9e: 8b 45 f0 mov -0x10(%rbp),%eax + 403fa1: 48 63 d0 movslq %eax,%rdx + 403fa4: 48 8b 05 75 48 00 00 mov 0x4875(%rip),%rax # 408820 + 403fab: 48 39 c2 cmp %rax,%rdx + 403fae: 0f 84 f7 01 00 00 je 4041ab + 403fb4: e8 3d 1c 00 00 call 405bf6 + 403fb9: e9 ed 01 00 00 jmp 4041ab + 403fbe: bf 00 00 00 00 mov $0x0,%edi + 403fc3: e8 e5 d6 ff ff call 4016ad + 403fc8: bf 00 00 00 00 mov $0x0,%edi + 403fcd: e8 db d6 ff ff call 4016ad + 403fd2: bf 00 00 00 00 mov $0x0,%edi + 403fd7: e8 d1 d6 ff ff call 4016ad + 403fdc: bf 00 00 00 00 mov $0x0,%edi + 403fe1: e8 c7 d6 ff ff call 4016ad + 403fe6: bf 1a 00 00 00 mov $0x1a,%edi + 403feb: e8 bd d6 ff ff call 4016ad + 403ff0: 48 8b 05 29 48 00 00 mov 0x4829(%rip),%rax # 408820 + 403ff7: 83 c0 41 add $0x41,%eax + 403ffa: 88 45 ff mov %al,-0x1(%rbp) + 403ffd: bf 64 00 00 00 mov $0x64,%edi + 404002: e8 a6 d6 ff ff call 4016ad + 404007: 8b 45 f0 mov -0x10(%rbp),%eax + 40400a: 48 63 d0 movslq %eax,%rdx + 40400d: 48 8b 05 0c 48 00 00 mov 0x480c(%rip),%rax # 408820 + 404014: 48 39 c2 cmp %rax,%rdx + 404017: 0f 84 91 01 00 00 je 4041ae + 40401d: e8 d4 1b 00 00 call 405bf6 + 404022: e9 87 01 00 00 jmp 4041ae + 404027: bf 00 00 00 00 mov $0x0,%edi + 40402c: e8 7c d6 ff ff call 4016ad + 404031: bf 00 00 00 00 mov $0x0,%edi + 404036: e8 72 d6 ff ff call 4016ad + 40403b: bf 00 00 00 00 mov $0x0,%edi + 404040: e8 68 d6 ff ff call 4016ad + 404045: bf 00 00 00 00 mov $0x0,%edi + 40404a: e8 5e d6 ff ff call 4016ad + 40404f: bf 00 00 00 00 mov $0x0,%edi + 404054: e8 54 d6 ff ff call 4016ad + 404059: bf 1a 00 00 00 mov $0x1a,%edi + 40405e: e8 4a d6 ff ff call 4016ad + 404063: 48 8b 05 b6 47 00 00 mov 0x47b6(%rip),%rax # 408820 + 40406a: 83 c0 41 add $0x41,%eax + 40406d: 88 45 ff mov %al,-0x1(%rbp) + 404070: bf 64 00 00 00 mov $0x64,%edi + 404075: e8 33 d6 ff ff call 4016ad + 40407a: 8b 45 f0 mov -0x10(%rbp),%eax + 40407d: 48 63 d0 movslq %eax,%rdx + 404080: 48 8b 05 99 47 00 00 mov 0x4799(%rip),%rax # 408820 + 404087: 48 39 c2 cmp %rax,%rdx + 40408a: 0f 84 21 01 00 00 je 4041b1 + 404090: e8 61 1b 00 00 call 405bf6 + 404095: e9 17 01 00 00 jmp 4041b1 + 40409a: bf 00 00 00 00 mov $0x0,%edi + 40409f: e8 09 d6 ff ff call 4016ad + 4040a4: bf 00 00 00 00 mov $0x0,%edi + 4040a9: e8 ff d5 ff ff call 4016ad + 4040ae: bf 00 00 00 00 mov $0x0,%edi + 4040b3: e8 f5 d5 ff ff call 4016ad + 4040b8: bf 00 00 00 00 mov $0x0,%edi + 4040bd: e8 eb d5 ff ff call 4016ad + 4040c2: bf 00 00 00 00 mov $0x0,%edi + 4040c7: e8 e1 d5 ff ff call 4016ad + 4040cc: bf 00 00 00 00 mov $0x0,%edi + 4040d1: e8 d7 d5 ff ff call 4016ad + 4040d6: bf 1a 00 00 00 mov $0x1a,%edi + 4040db: e8 cd d5 ff ff call 4016ad + 4040e0: 48 8b 05 39 47 00 00 mov 0x4739(%rip),%rax # 408820 + 4040e7: 83 c0 41 add $0x41,%eax + 4040ea: 88 45 ff mov %al,-0x1(%rbp) + 4040ed: bf 64 00 00 00 mov $0x64,%edi + 4040f2: e8 b6 d5 ff ff call 4016ad + 4040f7: 8b 45 f0 mov -0x10(%rbp),%eax + 4040fa: 48 63 d0 movslq %eax,%rdx + 4040fd: 48 8b 05 1c 47 00 00 mov 0x471c(%rip),%rax # 408820 + 404104: 48 39 c2 cmp %rax,%rdx + 404107: 0f 84 a7 00 00 00 je 4041b4 + 40410d: e8 e4 1a 00 00 call 405bf6 + 404112: e9 9d 00 00 00 jmp 4041b4 + 404117: bf 00 00 00 00 mov $0x0,%edi + 40411c: e8 8c d5 ff ff call 4016ad + 404121: bf 00 00 00 00 mov $0x0,%edi + 404126: e8 82 d5 ff ff call 4016ad + 40412b: bf 00 00 00 00 mov $0x0,%edi + 404130: e8 78 d5 ff ff call 4016ad + 404135: bf 00 00 00 00 mov $0x0,%edi + 40413a: e8 6e d5 ff ff call 4016ad + 40413f: bf 00 00 00 00 mov $0x0,%edi + 404144: e8 64 d5 ff ff call 4016ad + 404149: bf 00 00 00 00 mov $0x0,%edi + 40414e: e8 5a d5 ff ff call 4016ad + 404153: bf 00 00 00 00 mov $0x0,%edi + 404158: e8 50 d5 ff ff call 4016ad + 40415d: bf 1a 00 00 00 mov $0x1a,%edi + 404162: e8 46 d5 ff ff call 4016ad + 404167: 48 8b 05 b2 46 00 00 mov 0x46b2(%rip),%rax # 408820 + 40416e: 83 c0 41 add $0x41,%eax + 404171: 88 45 ff mov %al,-0x1(%rbp) + 404174: bf 64 00 00 00 mov $0x64,%edi + 404179: e8 2f d5 ff ff call 4016ad + 40417e: 8b 45 f0 mov -0x10(%rbp),%eax + 404181: 48 63 d0 movslq %eax,%rdx + 404184: 48 8b 05 95 46 00 00 mov 0x4695(%rip),%rax # 408820 + 40418b: 48 39 c2 cmp %rax,%rdx + 40418e: 74 27 je 4041b7 + 404190: e8 61 1a 00 00 call 405bf6 + 404195: eb 20 jmp 4041b7 + 404197: c6 45 ff 61 movb $0x61,-0x1(%rbp) + 40419b: e8 56 1a 00 00 call 405bf6 + 4041a0: eb 16 jmp 4041b8 + 4041a2: 90 nop + 4041a3: eb 13 jmp 4041b8 + 4041a5: 90 nop + 4041a6: eb 10 jmp 4041b8 + 4041a8: 90 nop + 4041a9: eb 0d jmp 4041b8 + 4041ab: 90 nop + 4041ac: eb 0a jmp 4041b8 + 4041ae: 90 nop + 4041af: eb 07 jmp 4041b8 + 4041b1: 90 nop + 4041b2: eb 04 jmp 4041b8 + 4041b4: 90 nop + 4041b5: eb 01 jmp 4041b8 + 4041b7: 90 nop + 4041b8: 0f b6 45 ef movzbl -0x11(%rbp),%eax + 4041bc: 38 45 ff cmp %al,-0x1(%rbp) + 4041bf: 74 05 je 4041c6 + 4041c1: e8 30 1a 00 00 call 405bf6 + 4041c6: 90 nop + 4041c7: c9 leave + 4041c8: c3 ret + +00000000004041c9 : + 4041c9: f3 0f 1e fa endbr64 + 4041cd: 55 push %rbp + 4041ce: 48 89 e5 mov %rsp,%rbp + 4041d1: 48 83 ec 30 sub $0x30,%rsp + 4041d5: 48 89 7d d8 mov %rdi,-0x28(%rbp) + 4041d9: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%rbp) + 4041e0: 48 8d 75 f0 lea -0x10(%rbp),%rsi + 4041e4: 48 8d 4d ef lea -0x11(%rbp),%rcx + 4041e8: 48 8d 55 f4 lea -0xc(%rbp),%rdx + 4041ec: 48 8b 45 d8 mov -0x28(%rbp),%rax + 4041f0: 49 89 f0 mov %rsi,%r8 + 4041f3: 48 8d 35 fa 25 00 00 lea 0x25fa(%rip),%rsi # 4067f4 <_IO_stdin_used+0x7f4> + 4041fa: 48 89 c7 mov %rax,%rdi + 4041fd: b8 00 00 00 00 mov $0x0,%eax + 404202: e8 89 cf ff ff call 401190 <__isoc99_sscanf@plt> + 404207: 89 45 f8 mov %eax,-0x8(%rbp) + 40420a: 83 7d f8 02 cmpl $0x2,-0x8(%rbp) + 40420e: 7f 05 jg 404215 + 404210: e8 e1 19 00 00 call 405bf6 + 404215: bf 08 00 00 00 mov $0x8,%edi + 40421a: e8 8e d4 ff ff call 4016ad + 40421f: 8b 45 f4 mov -0xc(%rbp),%eax + 404222: 48 98 cltq + 404224: 48 8b 15 f5 45 00 00 mov 0x45f5(%rip),%rdx # 408820 + 40422b: 48 81 c2 82 00 00 00 add $0x82,%rdx + 404232: 48 39 d0 cmp %rdx,%rax + 404235: 74 05 je 40423c + 404237: e8 ba 19 00 00 call 405bf6 + 40423c: 8b 45 f4 mov -0xc(%rbp),%eax + 40423f: 2d 82 00 00 00 sub $0x82,%eax + 404244: 83 f8 07 cmp $0x7,%eax + 404247: 0f 87 3c 03 00 00 ja 404589 + 40424d: 89 c0 mov %eax,%eax + 40424f: 48 8d 14 85 00 00 00 lea 0x0(,%rax,4),%rdx + 404256: 00 + 404257: 48 8d 05 e2 25 00 00 lea 0x25e2(%rip),%rax # 406840 <_IO_stdin_used+0x840> + 40425e: 8b 04 02 mov (%rdx,%rax,1),%eax + 404261: 48 98 cltq + 404263: 48 8d 15 d6 25 00 00 lea 0x25d6(%rip),%rdx # 406840 <_IO_stdin_used+0x840> + 40426a: 48 01 d0 add %rdx,%rax + 40426d: 3e ff e0 notrack jmp *%rax + 404270: bf 1a 00 00 00 mov $0x1a,%edi + 404275: e8 33 d4 ff ff call 4016ad + 40427a: 48 8b 05 9f 45 00 00 mov 0x459f(%rip),%rax # 408820 + 404281: 83 c0 41 add $0x41,%eax + 404284: 88 45 ff mov %al,-0x1(%rbp) + 404287: bf 2c 01 00 00 mov $0x12c,%edi + 40428c: e8 1c d4 ff ff call 4016ad + 404291: 8b 45 f0 mov -0x10(%rbp),%eax + 404294: 48 63 d0 movslq %eax,%rdx + 404297: 48 8b 05 82 45 00 00 mov 0x4582(%rip),%rax # 408820 + 40429e: 48 39 c2 cmp %rax,%rdx + 4042a1: 0f 84 ed 02 00 00 je 404594 + 4042a7: e8 4a 19 00 00 call 405bf6 + 4042ac: e9 e3 02 00 00 jmp 404594 + 4042b1: bf 00 00 00 00 mov $0x0,%edi + 4042b6: e8 f2 d3 ff ff call 4016ad + 4042bb: bf 1a 00 00 00 mov $0x1a,%edi + 4042c0: e8 e8 d3 ff ff call 4016ad + 4042c5: 48 8b 05 54 45 00 00 mov 0x4554(%rip),%rax # 408820 + 4042cc: 83 c0 41 add $0x41,%eax + 4042cf: 88 45 ff mov %al,-0x1(%rbp) + 4042d2: bf 2c 01 00 00 mov $0x12c,%edi + 4042d7: e8 d1 d3 ff ff call 4016ad + 4042dc: 8b 45 f0 mov -0x10(%rbp),%eax + 4042df: 48 63 d0 movslq %eax,%rdx + 4042e2: 48 8b 05 37 45 00 00 mov 0x4537(%rip),%rax # 408820 + 4042e9: 48 39 c2 cmp %rax,%rdx + 4042ec: 0f 84 a5 02 00 00 je 404597 + 4042f2: e8 ff 18 00 00 call 405bf6 + 4042f7: e9 9b 02 00 00 jmp 404597 + 4042fc: bf 00 00 00 00 mov $0x0,%edi + 404301: e8 a7 d3 ff ff call 4016ad + 404306: bf 00 00 00 00 mov $0x0,%edi + 40430b: e8 9d d3 ff ff call 4016ad + 404310: bf 1a 00 00 00 mov $0x1a,%edi + 404315: e8 93 d3 ff ff call 4016ad + 40431a: 48 8b 05 ff 44 00 00 mov 0x44ff(%rip),%rax # 408820 + 404321: 83 c0 41 add $0x41,%eax + 404324: 88 45 ff mov %al,-0x1(%rbp) + 404327: bf 2c 01 00 00 mov $0x12c,%edi + 40432c: e8 7c d3 ff ff call 4016ad + 404331: 8b 45 f0 mov -0x10(%rbp),%eax + 404334: 48 63 d0 movslq %eax,%rdx + 404337: 48 8b 05 e2 44 00 00 mov 0x44e2(%rip),%rax # 408820 + 40433e: 48 39 c2 cmp %rax,%rdx + 404341: 0f 84 53 02 00 00 je 40459a + 404347: e8 aa 18 00 00 call 405bf6 + 40434c: e9 49 02 00 00 jmp 40459a + 404351: bf 00 00 00 00 mov $0x0,%edi + 404356: e8 52 d3 ff ff call 4016ad + 40435b: bf 00 00 00 00 mov $0x0,%edi + 404360: e8 48 d3 ff ff call 4016ad + 404365: bf 00 00 00 00 mov $0x0,%edi + 40436a: e8 3e d3 ff ff call 4016ad + 40436f: bf 1a 00 00 00 mov $0x1a,%edi + 404374: e8 34 d3 ff ff call 4016ad + 404379: 48 8b 05 a0 44 00 00 mov 0x44a0(%rip),%rax # 408820 + 404380: 83 c0 41 add $0x41,%eax + 404383: 88 45 ff mov %al,-0x1(%rbp) + 404386: bf 2c 01 00 00 mov $0x12c,%edi + 40438b: e8 1d d3 ff ff call 4016ad + 404390: 8b 45 f0 mov -0x10(%rbp),%eax + 404393: 48 63 d0 movslq %eax,%rdx + 404396: 48 8b 05 83 44 00 00 mov 0x4483(%rip),%rax # 408820 + 40439d: 48 39 c2 cmp %rax,%rdx + 4043a0: 0f 84 f7 01 00 00 je 40459d + 4043a6: e8 4b 18 00 00 call 405bf6 + 4043ab: e9 ed 01 00 00 jmp 40459d + 4043b0: bf 00 00 00 00 mov $0x0,%edi + 4043b5: e8 f3 d2 ff ff call 4016ad + 4043ba: bf 00 00 00 00 mov $0x0,%edi + 4043bf: e8 e9 d2 ff ff call 4016ad + 4043c4: bf 00 00 00 00 mov $0x0,%edi + 4043c9: e8 df d2 ff ff call 4016ad + 4043ce: bf 00 00 00 00 mov $0x0,%edi + 4043d3: e8 d5 d2 ff ff call 4016ad + 4043d8: bf 1a 00 00 00 mov $0x1a,%edi + 4043dd: e8 cb d2 ff ff call 4016ad + 4043e2: 48 8b 05 37 44 00 00 mov 0x4437(%rip),%rax # 408820 + 4043e9: 83 c0 41 add $0x41,%eax + 4043ec: 88 45 ff mov %al,-0x1(%rbp) + 4043ef: bf 2c 01 00 00 mov $0x12c,%edi + 4043f4: e8 b4 d2 ff ff call 4016ad + 4043f9: 8b 45 f0 mov -0x10(%rbp),%eax + 4043fc: 48 63 d0 movslq %eax,%rdx + 4043ff: 48 8b 05 1a 44 00 00 mov 0x441a(%rip),%rax # 408820 + 404406: 48 39 c2 cmp %rax,%rdx + 404409: 0f 84 91 01 00 00 je 4045a0 + 40440f: e8 e2 17 00 00 call 405bf6 + 404414: e9 87 01 00 00 jmp 4045a0 + 404419: bf 00 00 00 00 mov $0x0,%edi + 40441e: e8 8a d2 ff ff call 4016ad + 404423: bf 00 00 00 00 mov $0x0,%edi + 404428: e8 80 d2 ff ff call 4016ad + 40442d: bf 00 00 00 00 mov $0x0,%edi + 404432: e8 76 d2 ff ff call 4016ad + 404437: bf 00 00 00 00 mov $0x0,%edi + 40443c: e8 6c d2 ff ff call 4016ad + 404441: bf 00 00 00 00 mov $0x0,%edi + 404446: e8 62 d2 ff ff call 4016ad + 40444b: bf 1a 00 00 00 mov $0x1a,%edi + 404450: e8 58 d2 ff ff call 4016ad + 404455: 48 8b 05 c4 43 00 00 mov 0x43c4(%rip),%rax # 408820 + 40445c: 83 c0 41 add $0x41,%eax + 40445f: 88 45 ff mov %al,-0x1(%rbp) + 404462: bf 2c 01 00 00 mov $0x12c,%edi + 404467: e8 41 d2 ff ff call 4016ad + 40446c: 8b 45 f0 mov -0x10(%rbp),%eax + 40446f: 48 63 d0 movslq %eax,%rdx + 404472: 48 8b 05 a7 43 00 00 mov 0x43a7(%rip),%rax # 408820 + 404479: 48 39 c2 cmp %rax,%rdx + 40447c: 0f 84 21 01 00 00 je 4045a3 + 404482: e8 6f 17 00 00 call 405bf6 + 404487: e9 17 01 00 00 jmp 4045a3 + 40448c: bf 00 00 00 00 mov $0x0,%edi + 404491: e8 17 d2 ff ff call 4016ad + 404496: bf 00 00 00 00 mov $0x0,%edi + 40449b: e8 0d d2 ff ff call 4016ad + 4044a0: bf 00 00 00 00 mov $0x0,%edi + 4044a5: e8 03 d2 ff ff call 4016ad + 4044aa: bf 00 00 00 00 mov $0x0,%edi + 4044af: e8 f9 d1 ff ff call 4016ad + 4044b4: bf 00 00 00 00 mov $0x0,%edi + 4044b9: e8 ef d1 ff ff call 4016ad + 4044be: bf 00 00 00 00 mov $0x0,%edi + 4044c3: e8 e5 d1 ff ff call 4016ad + 4044c8: bf 1a 00 00 00 mov $0x1a,%edi + 4044cd: e8 db d1 ff ff call 4016ad + 4044d2: 48 8b 05 47 43 00 00 mov 0x4347(%rip),%rax # 408820 + 4044d9: 83 c0 41 add $0x41,%eax + 4044dc: 88 45 ff mov %al,-0x1(%rbp) + 4044df: bf 2c 01 00 00 mov $0x12c,%edi + 4044e4: e8 c4 d1 ff ff call 4016ad + 4044e9: 8b 45 f0 mov -0x10(%rbp),%eax + 4044ec: 48 63 d0 movslq %eax,%rdx + 4044ef: 48 8b 05 2a 43 00 00 mov 0x432a(%rip),%rax # 408820 + 4044f6: 48 39 c2 cmp %rax,%rdx + 4044f9: 0f 84 a7 00 00 00 je 4045a6 + 4044ff: e8 f2 16 00 00 call 405bf6 + 404504: e9 9d 00 00 00 jmp 4045a6 + 404509: bf 00 00 00 00 mov $0x0,%edi + 40450e: e8 9a d1 ff ff call 4016ad + 404513: bf 00 00 00 00 mov $0x0,%edi + 404518: e8 90 d1 ff ff call 4016ad + 40451d: bf 00 00 00 00 mov $0x0,%edi + 404522: e8 86 d1 ff ff call 4016ad + 404527: bf 00 00 00 00 mov $0x0,%edi + 40452c: e8 7c d1 ff ff call 4016ad + 404531: bf 00 00 00 00 mov $0x0,%edi + 404536: e8 72 d1 ff ff call 4016ad + 40453b: bf 00 00 00 00 mov $0x0,%edi + 404540: e8 68 d1 ff ff call 4016ad + 404545: bf 00 00 00 00 mov $0x0,%edi + 40454a: e8 5e d1 ff ff call 4016ad + 40454f: bf 1a 00 00 00 mov $0x1a,%edi + 404554: e8 54 d1 ff ff call 4016ad + 404559: 48 8b 05 c0 42 00 00 mov 0x42c0(%rip),%rax # 408820 + 404560: 83 c0 41 add $0x41,%eax + 404563: 88 45 ff mov %al,-0x1(%rbp) + 404566: bf 2c 01 00 00 mov $0x12c,%edi + 40456b: e8 3d d1 ff ff call 4016ad + 404570: 8b 45 f0 mov -0x10(%rbp),%eax + 404573: 48 63 d0 movslq %eax,%rdx + 404576: 48 8b 05 a3 42 00 00 mov 0x42a3(%rip),%rax # 408820 + 40457d: 48 39 c2 cmp %rax,%rdx + 404580: 74 27 je 4045a9 + 404582: e8 6f 16 00 00 call 405bf6 + 404587: eb 20 jmp 4045a9 + 404589: c6 45 ff 61 movb $0x61,-0x1(%rbp) + 40458d: e8 64 16 00 00 call 405bf6 + 404592: eb 16 jmp 4045aa + 404594: 90 nop + 404595: eb 13 jmp 4045aa + 404597: 90 nop + 404598: eb 10 jmp 4045aa + 40459a: 90 nop + 40459b: eb 0d jmp 4045aa + 40459d: 90 nop + 40459e: eb 0a jmp 4045aa + 4045a0: 90 nop + 4045a1: eb 07 jmp 4045aa + 4045a3: 90 nop + 4045a4: eb 04 jmp 4045aa + 4045a6: 90 nop + 4045a7: eb 01 jmp 4045aa + 4045a9: 90 nop + 4045aa: 0f b6 45 ef movzbl -0x11(%rbp),%eax + 4045ae: 38 45 ff cmp %al,-0x1(%rbp) + 4045b1: 74 05 je 4045b8 + 4045b3: e8 3e 16 00 00 call 405bf6 + 4045b8: 90 nop + 4045b9: c9 leave + 4045ba: c3 ret + +00000000004045bb : + 4045bb: f3 0f 1e fa endbr64 + 4045bf: 55 push %rbp + 4045c0: 48 89 e5 mov %rsp,%rbp + 4045c3: 48 83 ec 10 sub $0x10,%rsp + 4045c7: 48 89 7d f8 mov %rdi,-0x8(%rbp) + 4045cb: bf 14 00 00 00 mov $0x14,%edi + 4045d0: e8 d8 d0 ff ff call 4016ad + 4045d5: 48 8b 05 44 42 00 00 mov 0x4244(%rip),%rax # 408820 + 4045dc: 48 83 f8 13 cmp $0x13,%rax + 4045e0: 0f 87 5a 01 00 00 ja 404740 + 4045e6: 48 8d 14 85 00 00 00 lea 0x0(,%rax,4),%rdx + 4045ed: 00 + 4045ee: 48 8d 05 6b 22 00 00 lea 0x226b(%rip),%rax # 406860 <_IO_stdin_used+0x860> + 4045f5: 8b 04 02 mov (%rdx,%rax,1),%eax + 4045f8: 48 98 cltq + 4045fa: 48 8d 15 5f 22 00 00 lea 0x225f(%rip),%rdx # 406860 <_IO_stdin_used+0x860> + 404601: 48 01 d0 add %rdx,%rax + 404604: 3e ff e0 notrack jmp *%rax + 404607: 48 8b 45 f8 mov -0x8(%rbp),%rax + 40460b: 48 89 c7 mov %rax,%rdi + 40460e: e8 77 01 00 00 call 40478a + 404613: e9 2e 01 00 00 jmp 404746 + 404618: 48 8b 45 f8 mov -0x8(%rbp),%rax + 40461c: 48 89 c7 mov %rax,%rdi + 40461f: e8 71 02 00 00 call 404895 + 404624: e9 1d 01 00 00 jmp 404746 + 404629: 48 8b 45 f8 mov -0x8(%rbp),%rax + 40462d: 48 89 c7 mov %rax,%rdi + 404630: e8 6b 03 00 00 call 4049a0 + 404635: e9 0c 01 00 00 jmp 404746 + 40463a: 48 8b 45 f8 mov -0x8(%rbp),%rax + 40463e: 48 89 c7 mov %rax,%rdi + 404641: e8 65 04 00 00 call 404aab + 404646: e9 fb 00 00 00 jmp 404746 + 40464b: 48 8b 45 f8 mov -0x8(%rbp),%rax + 40464f: 48 89 c7 mov %rax,%rdi + 404652: e8 5f 05 00 00 call 404bb6 + 404657: e9 ea 00 00 00 jmp 404746 + 40465c: 48 8b 45 f8 mov -0x8(%rbp),%rax + 404660: 48 89 c7 mov %rax,%rdi + 404663: e8 8d 06 00 00 call 404cf5 + 404668: e9 d9 00 00 00 jmp 404746 + 40466d: 48 8b 45 f8 mov -0x8(%rbp),%rax + 404671: 48 89 c7 mov %rax,%rdi + 404674: e8 4f 07 00 00 call 404dc8 + 404679: e9 c8 00 00 00 jmp 404746 + 40467e: 48 8b 45 f8 mov -0x8(%rbp),%rax + 404682: 48 89 c7 mov %rax,%rdi + 404685: e8 11 08 00 00 call 404e9b + 40468a: e9 b7 00 00 00 jmp 404746 + 40468f: 48 8b 45 f8 mov -0x8(%rbp),%rax + 404693: 48 89 c7 mov %rax,%rdi + 404696: e8 d3 08 00 00 call 404f6e + 40469b: e9 a6 00 00 00 jmp 404746 + 4046a0: 48 8b 45 f8 mov -0x8(%rbp),%rax + 4046a4: 48 89 c7 mov %rax,%rdi + 4046a7: e8 95 09 00 00 call 405041 + 4046ac: e9 95 00 00 00 jmp 404746 + 4046b1: 48 8b 45 f8 mov -0x8(%rbp),%rax + 4046b5: 48 89 c7 mov %rax,%rdi + 4046b8: e8 86 0a 00 00 call 405143 + 4046bd: e9 84 00 00 00 jmp 404746 + 4046c2: 48 8b 45 f8 mov -0x8(%rbp),%rax + 4046c6: 48 89 c7 mov %rax,%rdi + 4046c9: e8 48 0b 00 00 call 405216 + 4046ce: eb 76 jmp 404746 + 4046d0: 48 8b 45 f8 mov -0x8(%rbp),%rax + 4046d4: 48 89 c7 mov %rax,%rdi + 4046d7: e8 0d 0c 00 00 call 4052e9 + 4046dc: eb 68 jmp 404746 + 4046de: 48 8b 45 f8 mov -0x8(%rbp),%rax + 4046e2: 48 89 c7 mov %rax,%rdi + 4046e5: e8 d2 0c 00 00 call 4053bc + 4046ea: eb 5a jmp 404746 + 4046ec: 48 8b 45 f8 mov -0x8(%rbp),%rax + 4046f0: 48 89 c7 mov %rax,%rdi + 4046f3: e8 97 0d 00 00 call 40548f + 4046f8: eb 4c jmp 404746 + 4046fa: 48 8b 45 f8 mov -0x8(%rbp),%rax + 4046fe: 48 89 c7 mov %rax,%rdi + 404701: e8 8c 0e 00 00 call 405592 + 404706: eb 3e jmp 404746 + 404708: 48 8b 45 f8 mov -0x8(%rbp),%rax + 40470c: 48 89 c7 mov %rax,%rdi + 40470f: e8 51 0f 00 00 call 405665 + 404714: eb 30 jmp 404746 + 404716: 48 8b 45 f8 mov -0x8(%rbp),%rax + 40471a: 48 89 c7 mov %rax,%rdi + 40471d: e8 14 10 00 00 call 405736 + 404722: eb 22 jmp 404746 + 404724: 48 8b 45 f8 mov -0x8(%rbp),%rax + 404728: 48 89 c7 mov %rax,%rdi + 40472b: e8 d9 10 00 00 call 405809 + 404730: eb 14 jmp 404746 + 404732: 48 8b 45 f8 mov -0x8(%rbp),%rax + 404736: 48 89 c7 mov %rax,%rdi + 404739: e8 9e 11 00 00 call 4058dc + 40473e: eb 06 jmp 404746 + 404740: e8 b1 14 00 00 call 405bf6 + 404745: 90 nop + 404746: 90 nop + 404747: c9 leave + 404748: c3 ret + +0000000000404749 : + 404749: f3 0f 1e fa endbr64 + 40474d: 55 push %rbp + 40474e: 48 89 e5 mov %rsp,%rbp + 404751: 53 push %rbx + 404752: 48 83 ec 18 sub $0x18,%rsp + 404756: 89 7d ec mov %edi,-0x14(%rbp) + 404759: 83 7d ec 01 cmpl $0x1,-0x14(%rbp) + 40475d: 7f 07 jg 404766 + 40475f: b8 01 00 00 00 mov $0x1,%eax + 404764: eb 1e jmp 404784 + 404766: 8b 45 ec mov -0x14(%rbp),%eax + 404769: 83 e8 01 sub $0x1,%eax + 40476c: 89 c7 mov %eax,%edi + 40476e: e8 d6 ff ff ff call 404749 + 404773: 89 c3 mov %eax,%ebx + 404775: 8b 45 ec mov -0x14(%rbp),%eax + 404778: 83 e8 02 sub $0x2,%eax + 40477b: 89 c7 mov %eax,%edi + 40477d: e8 c7 ff ff ff call 404749 + 404782: 01 d8 add %ebx,%eax + 404784: 48 8b 5d f8 mov -0x8(%rbp),%rbx + 404788: c9 leave + 404789: c3 ret + +000000000040478a : + 40478a: f3 0f 1e fa endbr64 + 40478e: 55 push %rbp + 40478f: 48 89 e5 mov %rsp,%rbp + 404792: 48 83 ec 70 sub $0x70,%rsp + 404796: 48 89 7d 98 mov %rdi,-0x68(%rbp) + 40479a: c7 45 b0 37 00 00 00 movl $0x37,-0x50(%rbp) + 4047a1: c7 45 b4 59 00 00 00 movl $0x59,-0x4c(%rbp) + 4047a8: c7 45 b8 90 00 00 00 movl $0x90,-0x48(%rbp) + 4047af: c7 45 bc e9 00 00 00 movl $0xe9,-0x44(%rbp) + 4047b6: c7 45 c0 79 01 00 00 movl $0x179,-0x40(%rbp) + 4047bd: c7 45 c4 62 02 00 00 movl $0x262,-0x3c(%rbp) + 4047c4: c7 45 c8 db 03 00 00 movl $0x3db,-0x38(%rbp) + 4047cb: c7 45 cc 3d 06 00 00 movl $0x63d,-0x34(%rbp) + 4047d2: c7 45 d0 18 0a 00 00 movl $0xa18,-0x30(%rbp) + 4047d9: c7 45 d4 55 10 00 00 movl $0x1055,-0x2c(%rbp) + 4047e0: c7 45 d8 6d 1a 00 00 movl $0x1a6d,-0x28(%rbp) + 4047e7: c7 45 dc c2 2a 00 00 movl $0x2ac2,-0x24(%rbp) + 4047ee: c7 45 e0 2f 45 00 00 movl $0x452f,-0x20(%rbp) + 4047f5: c7 45 e4 f1 6f 00 00 movl $0x6ff1,-0x1c(%rbp) + 4047fc: c7 45 e8 20 b5 00 00 movl $0xb520,-0x18(%rbp) + 404803: 48 8d 55 ac lea -0x54(%rbp),%rdx + 404807: 48 8b 45 98 mov -0x68(%rbp),%rax + 40480b: 48 8d 0d 9e 20 00 00 lea 0x209e(%rip),%rcx # 4068b0 <_IO_stdin_used+0x8b0> + 404812: 48 89 ce mov %rcx,%rsi + 404815: 48 89 c7 mov %rax,%rdi + 404818: b8 00 00 00 00 mov $0x0,%eax + 40481d: e8 6e c9 ff ff call 401190 <__isoc99_sscanf@plt> + 404822: 89 45 fc mov %eax,-0x4(%rbp) + 404825: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) + 404829: 75 07 jne 404832 + 40482b: 8b 45 ac mov -0x54(%rbp),%eax + 40482e: 85 c0 test %eax,%eax + 404830: 7f 05 jg 404837 + 404832: e8 bf 13 00 00 call 405bf6 + 404837: 8b 45 ac mov -0x54(%rbp),%eax + 40483a: 3d e7 03 00 00 cmp $0x3e7,%eax + 40483f: 7f 05 jg 404846 + 404841: e8 b0 13 00 00 call 405bf6 + 404846: 8b 45 ac mov -0x54(%rbp),%eax + 404849: 48 63 d0 movslq %eax,%rdx + 40484c: 48 69 d2 d3 4d 62 10 imul $0x10624dd3,%rdx,%rdx + 404853: 48 c1 ea 20 shr $0x20,%rdx + 404857: c1 fa 06 sar $0x6,%edx + 40485a: c1 f8 1f sar $0x1f,%eax + 40485d: 89 c1 mov %eax,%ecx + 40485f: 89 d0 mov %edx,%eax + 404861: 29 c8 sub %ecx,%eax + 404863: 89 45 ac mov %eax,-0x54(%rbp) + 404866: 8b 45 ac mov -0x54(%rbp),%eax + 404869: 89 c7 mov %eax,%edi + 40486b: e8 d9 fe ff ff call 404749 + 404870: 89 45 f8 mov %eax,-0x8(%rbp) + 404873: bf 0f 00 00 00 mov $0xf,%edi + 404878: e8 30 ce ff ff call 4016ad + 40487d: 48 8b 05 9c 3f 00 00 mov 0x3f9c(%rip),%rax # 408820 + 404884: 8b 44 85 b0 mov -0x50(%rbp,%rax,4),%eax + 404888: 39 45 f8 cmp %eax,-0x8(%rbp) + 40488b: 74 05 je 404892 + 40488d: e8 64 13 00 00 call 405bf6 + 404892: 90 nop + 404893: c9 leave + 404894: c3 ret + +0000000000404895 : + 404895: f3 0f 1e fa endbr64 + 404899: 55 push %rbp + 40489a: 48 89 e5 mov %rsp,%rbp + 40489d: 48 83 ec 70 sub $0x70,%rsp + 4048a1: 48 89 7d 98 mov %rdi,-0x68(%rbp) + 4048a5: c7 45 b0 37 00 00 00 movl $0x37,-0x50(%rbp) + 4048ac: c7 45 b4 59 00 00 00 movl $0x59,-0x4c(%rbp) + 4048b3: c7 45 b8 90 00 00 00 movl $0x90,-0x48(%rbp) + 4048ba: c7 45 bc e9 00 00 00 movl $0xe9,-0x44(%rbp) + 4048c1: c7 45 c0 79 01 00 00 movl $0x179,-0x40(%rbp) + 4048c8: c7 45 c4 62 02 00 00 movl $0x262,-0x3c(%rbp) + 4048cf: c7 45 c8 db 03 00 00 movl $0x3db,-0x38(%rbp) + 4048d6: c7 45 cc 3d 06 00 00 movl $0x63d,-0x34(%rbp) + 4048dd: c7 45 d0 18 0a 00 00 movl $0xa18,-0x30(%rbp) + 4048e4: c7 45 d4 55 10 00 00 movl $0x1055,-0x2c(%rbp) + 4048eb: c7 45 d8 6d 1a 00 00 movl $0x1a6d,-0x28(%rbp) + 4048f2: c7 45 dc c2 2a 00 00 movl $0x2ac2,-0x24(%rbp) + 4048f9: c7 45 e0 2f 45 00 00 movl $0x452f,-0x20(%rbp) + 404900: c7 45 e4 f1 6f 00 00 movl $0x6ff1,-0x1c(%rbp) + 404907: c7 45 e8 20 b5 00 00 movl $0xb520,-0x18(%rbp) + 40490e: 48 8d 55 ac lea -0x54(%rbp),%rdx + 404912: 48 8b 45 98 mov -0x68(%rbp),%rax + 404916: 48 8d 0d 93 1f 00 00 lea 0x1f93(%rip),%rcx # 4068b0 <_IO_stdin_used+0x8b0> + 40491d: 48 89 ce mov %rcx,%rsi + 404920: 48 89 c7 mov %rax,%rdi + 404923: b8 00 00 00 00 mov $0x0,%eax + 404928: e8 63 c8 ff ff call 401190 <__isoc99_sscanf@plt> + 40492d: 89 45 fc mov %eax,-0x4(%rbp) + 404930: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) + 404934: 75 07 jne 40493d + 404936: 8b 45 ac mov -0x54(%rbp),%eax + 404939: 85 c0 test %eax,%eax + 40493b: 7f 05 jg 404942 + 40493d: e8 b4 12 00 00 call 405bf6 + 404942: 8b 45 ac mov -0x54(%rbp),%eax + 404945: 3d cf 07 00 00 cmp $0x7cf,%eax + 40494a: 7f 05 jg 404951 + 40494c: e8 a5 12 00 00 call 405bf6 + 404951: 8b 45 ac mov -0x54(%rbp),%eax + 404954: 48 63 d0 movslq %eax,%rdx + 404957: 48 69 d2 d3 4d 62 10 imul $0x10624dd3,%rdx,%rdx + 40495e: 48 c1 ea 20 shr $0x20,%rdx + 404962: c1 fa 07 sar $0x7,%edx + 404965: c1 f8 1f sar $0x1f,%eax + 404968: 89 c1 mov %eax,%ecx + 40496a: 89 d0 mov %edx,%eax + 40496c: 29 c8 sub %ecx,%eax + 40496e: 89 45 ac mov %eax,-0x54(%rbp) + 404971: 8b 45 ac mov -0x54(%rbp),%eax + 404974: 89 c7 mov %eax,%edi + 404976: e8 ce fd ff ff call 404749 + 40497b: 89 45 f8 mov %eax,-0x8(%rbp) + 40497e: bf 0f 00 00 00 mov $0xf,%edi + 404983: e8 25 cd ff ff call 4016ad + 404988: 48 8b 05 91 3e 00 00 mov 0x3e91(%rip),%rax # 408820 + 40498f: 8b 44 85 b0 mov -0x50(%rbp,%rax,4),%eax + 404993: 39 45 f8 cmp %eax,-0x8(%rbp) + 404996: 74 05 je 40499d + 404998: e8 59 12 00 00 call 405bf6 + 40499d: 90 nop + 40499e: c9 leave + 40499f: c3 ret + +00000000004049a0 : + 4049a0: f3 0f 1e fa endbr64 + 4049a4: 55 push %rbp + 4049a5: 48 89 e5 mov %rsp,%rbp + 4049a8: 48 83 ec 70 sub $0x70,%rsp + 4049ac: 48 89 7d 98 mov %rdi,-0x68(%rbp) + 4049b0: c7 45 b0 37 00 00 00 movl $0x37,-0x50(%rbp) + 4049b7: c7 45 b4 59 00 00 00 movl $0x59,-0x4c(%rbp) + 4049be: c7 45 b8 90 00 00 00 movl $0x90,-0x48(%rbp) + 4049c5: c7 45 bc e9 00 00 00 movl $0xe9,-0x44(%rbp) + 4049cc: c7 45 c0 79 01 00 00 movl $0x179,-0x40(%rbp) + 4049d3: c7 45 c4 62 02 00 00 movl $0x262,-0x3c(%rbp) + 4049da: c7 45 c8 db 03 00 00 movl $0x3db,-0x38(%rbp) + 4049e1: c7 45 cc 3d 06 00 00 movl $0x63d,-0x34(%rbp) + 4049e8: c7 45 d0 18 0a 00 00 movl $0xa18,-0x30(%rbp) + 4049ef: c7 45 d4 55 10 00 00 movl $0x1055,-0x2c(%rbp) + 4049f6: c7 45 d8 6d 1a 00 00 movl $0x1a6d,-0x28(%rbp) + 4049fd: c7 45 dc c2 2a 00 00 movl $0x2ac2,-0x24(%rbp) + 404a04: c7 45 e0 2f 45 00 00 movl $0x452f,-0x20(%rbp) + 404a0b: c7 45 e4 f1 6f 00 00 movl $0x6ff1,-0x1c(%rbp) + 404a12: c7 45 e8 20 b5 00 00 movl $0xb520,-0x18(%rbp) + 404a19: 48 8d 55 ac lea -0x54(%rbp),%rdx + 404a1d: 48 8b 45 98 mov -0x68(%rbp),%rax + 404a21: 48 8d 0d 88 1e 00 00 lea 0x1e88(%rip),%rcx # 4068b0 <_IO_stdin_used+0x8b0> + 404a28: 48 89 ce mov %rcx,%rsi + 404a2b: 48 89 c7 mov %rax,%rdi + 404a2e: b8 00 00 00 00 mov $0x0,%eax + 404a33: e8 58 c7 ff ff call 401190 <__isoc99_sscanf@plt> + 404a38: 89 45 fc mov %eax,-0x4(%rbp) + 404a3b: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) + 404a3f: 75 07 jne 404a48 + 404a41: 8b 45 ac mov -0x54(%rbp),%eax + 404a44: 85 c0 test %eax,%eax + 404a46: 7f 05 jg 404a4d + 404a48: e8 a9 11 00 00 call 405bf6 + 404a4d: 8b 45 ac mov -0x54(%rbp),%eax + 404a50: 3d c7 00 00 00 cmp $0xc7,%eax + 404a55: 7f 05 jg 404a5c + 404a57: e8 9a 11 00 00 call 405bf6 + 404a5c: 8b 45 ac mov -0x54(%rbp),%eax + 404a5f: 48 63 d0 movslq %eax,%rdx + 404a62: 48 69 d2 1f 85 eb 51 imul $0x51eb851f,%rdx,%rdx + 404a69: 48 c1 ea 20 shr $0x20,%rdx + 404a6d: c1 fa 06 sar $0x6,%edx + 404a70: c1 f8 1f sar $0x1f,%eax + 404a73: 89 c1 mov %eax,%ecx + 404a75: 89 d0 mov %edx,%eax + 404a77: 29 c8 sub %ecx,%eax + 404a79: 89 45 ac mov %eax,-0x54(%rbp) + 404a7c: 8b 45 ac mov -0x54(%rbp),%eax + 404a7f: 89 c7 mov %eax,%edi + 404a81: e8 c3 fc ff ff call 404749 + 404a86: 89 45 f8 mov %eax,-0x8(%rbp) + 404a89: bf 0f 00 00 00 mov $0xf,%edi + 404a8e: e8 1a cc ff ff call 4016ad + 404a93: 48 8b 05 86 3d 00 00 mov 0x3d86(%rip),%rax # 408820 + 404a9a: 8b 44 85 b0 mov -0x50(%rbp,%rax,4),%eax + 404a9e: 39 45 f8 cmp %eax,-0x8(%rbp) + 404aa1: 74 05 je 404aa8 + 404aa3: e8 4e 11 00 00 call 405bf6 + 404aa8: 90 nop + 404aa9: c9 leave + 404aaa: c3 ret + +0000000000404aab : + 404aab: f3 0f 1e fa endbr64 + 404aaf: 55 push %rbp + 404ab0: 48 89 e5 mov %rsp,%rbp + 404ab3: 48 83 ec 70 sub $0x70,%rsp + 404ab7: 48 89 7d 98 mov %rdi,-0x68(%rbp) + 404abb: c7 45 b0 37 00 00 00 movl $0x37,-0x50(%rbp) + 404ac2: c7 45 b4 59 00 00 00 movl $0x59,-0x4c(%rbp) + 404ac9: c7 45 b8 90 00 00 00 movl $0x90,-0x48(%rbp) + 404ad0: c7 45 bc e9 00 00 00 movl $0xe9,-0x44(%rbp) + 404ad7: c7 45 c0 79 01 00 00 movl $0x179,-0x40(%rbp) + 404ade: c7 45 c4 62 02 00 00 movl $0x262,-0x3c(%rbp) + 404ae5: c7 45 c8 db 03 00 00 movl $0x3db,-0x38(%rbp) + 404aec: c7 45 cc 3d 06 00 00 movl $0x63d,-0x34(%rbp) + 404af3: c7 45 d0 18 0a 00 00 movl $0xa18,-0x30(%rbp) + 404afa: c7 45 d4 55 10 00 00 movl $0x1055,-0x2c(%rbp) + 404b01: c7 45 d8 6d 1a 00 00 movl $0x1a6d,-0x28(%rbp) + 404b08: c7 45 dc c2 2a 00 00 movl $0x2ac2,-0x24(%rbp) + 404b0f: c7 45 e0 2f 45 00 00 movl $0x452f,-0x20(%rbp) + 404b16: c7 45 e4 f1 6f 00 00 movl $0x6ff1,-0x1c(%rbp) + 404b1d: c7 45 e8 20 b5 00 00 movl $0xb520,-0x18(%rbp) + 404b24: 48 8d 55 ac lea -0x54(%rbp),%rdx + 404b28: 48 8b 45 98 mov -0x68(%rbp),%rax + 404b2c: 48 8d 0d 7d 1d 00 00 lea 0x1d7d(%rip),%rcx # 4068b0 <_IO_stdin_used+0x8b0> + 404b33: 48 89 ce mov %rcx,%rsi + 404b36: 48 89 c7 mov %rax,%rdi + 404b39: b8 00 00 00 00 mov $0x0,%eax + 404b3e: e8 4d c6 ff ff call 401190 <__isoc99_sscanf@plt> + 404b43: 89 45 fc mov %eax,-0x4(%rbp) + 404b46: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) + 404b4a: 75 07 jne 404b53 + 404b4c: 8b 45 ac mov -0x54(%rbp),%eax + 404b4f: 85 c0 test %eax,%eax + 404b51: 7f 05 jg 404b58 + 404b53: e8 9e 10 00 00 call 405bf6 + 404b58: 8b 45 ac mov -0x54(%rbp),%eax + 404b5b: 3d 2b 01 00 00 cmp $0x12b,%eax + 404b60: 7f 05 jg 404b67 + 404b62: e8 8f 10 00 00 call 405bf6 + 404b67: 8b 45 ac mov -0x54(%rbp),%eax + 404b6a: 48 63 d0 movslq %eax,%rdx + 404b6d: 48 69 d2 b5 81 4e 1b imul $0x1b4e81b5,%rdx,%rdx + 404b74: 48 c1 ea 20 shr $0x20,%rdx + 404b78: c1 fa 05 sar $0x5,%edx + 404b7b: c1 f8 1f sar $0x1f,%eax + 404b7e: 89 c1 mov %eax,%ecx + 404b80: 89 d0 mov %edx,%eax + 404b82: 29 c8 sub %ecx,%eax + 404b84: 89 45 ac mov %eax,-0x54(%rbp) + 404b87: 8b 45 ac mov -0x54(%rbp),%eax + 404b8a: 89 c7 mov %eax,%edi + 404b8c: e8 b8 fb ff ff call 404749 + 404b91: 89 45 f8 mov %eax,-0x8(%rbp) + 404b94: bf 0f 00 00 00 mov $0xf,%edi + 404b99: e8 0f cb ff ff call 4016ad + 404b9e: 48 8b 05 7b 3c 00 00 mov 0x3c7b(%rip),%rax # 408820 + 404ba5: 8b 44 85 b0 mov -0x50(%rbp,%rax,4),%eax + 404ba9: 39 45 f8 cmp %eax,-0x8(%rbp) + 404bac: 74 05 je 404bb3 + 404bae: e8 43 10 00 00 call 405bf6 + 404bb3: 90 nop + 404bb4: c9 leave + 404bb5: c3 ret + +0000000000404bb6 : + 404bb6: f3 0f 1e fa endbr64 + 404bba: 55 push %rbp + 404bbb: 48 89 e5 mov %rsp,%rbp + 404bbe: 48 83 ec 70 sub $0x70,%rsp + 404bc2: 48 89 7d 98 mov %rdi,-0x68(%rbp) + 404bc6: c7 45 b0 37 00 00 00 movl $0x37,-0x50(%rbp) + 404bcd: c7 45 b4 59 00 00 00 movl $0x59,-0x4c(%rbp) + 404bd4: c7 45 b8 90 00 00 00 movl $0x90,-0x48(%rbp) + 404bdb: c7 45 bc e9 00 00 00 movl $0xe9,-0x44(%rbp) + 404be2: c7 45 c0 79 01 00 00 movl $0x179,-0x40(%rbp) + 404be9: c7 45 c4 62 02 00 00 movl $0x262,-0x3c(%rbp) + 404bf0: c7 45 c8 db 03 00 00 movl $0x3db,-0x38(%rbp) + 404bf7: c7 45 cc 3d 06 00 00 movl $0x63d,-0x34(%rbp) + 404bfe: c7 45 d0 18 0a 00 00 movl $0xa18,-0x30(%rbp) + 404c05: c7 45 d4 55 10 00 00 movl $0x1055,-0x2c(%rbp) + 404c0c: c7 45 d8 6d 1a 00 00 movl $0x1a6d,-0x28(%rbp) + 404c13: c7 45 dc c2 2a 00 00 movl $0x2ac2,-0x24(%rbp) + 404c1a: c7 45 e0 2f 45 00 00 movl $0x452f,-0x20(%rbp) + 404c21: c7 45 e4 f1 6f 00 00 movl $0x6ff1,-0x1c(%rbp) + 404c28: c7 45 e8 20 b5 00 00 movl $0xb520,-0x18(%rbp) + 404c2f: 48 8d 55 ac lea -0x54(%rbp),%rdx + 404c33: 48 8b 45 98 mov -0x68(%rbp),%rax + 404c37: 48 8d 0d 72 1c 00 00 lea 0x1c72(%rip),%rcx # 4068b0 <_IO_stdin_used+0x8b0> + 404c3e: 48 89 ce mov %rcx,%rsi + 404c41: 48 89 c7 mov %rax,%rdi + 404c44: b8 00 00 00 00 mov $0x0,%eax + 404c49: e8 42 c5 ff ff call 401190 <__isoc99_sscanf@plt> + 404c4e: 89 45 fc mov %eax,-0x4(%rbp) + 404c51: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) + 404c55: 75 07 jne 404c5e + 404c57: 8b 45 ac mov -0x54(%rbp),%eax + 404c5a: 85 c0 test %eax,%eax + 404c5c: 7f 05 jg 404c63 + 404c5e: e8 93 0f 00 00 call 405bf6 + 404c63: 8b 45 ac mov -0x54(%rbp),%eax + 404c66: 3d 8f 01 00 00 cmp $0x18f,%eax + 404c6b: 7f 05 jg 404c72 + 404c6d: e8 84 0f 00 00 call 405bf6 + 404c72: 8b 45 ac mov -0x54(%rbp),%eax + 404c75: 48 63 d0 movslq %eax,%rdx + 404c78: 48 69 d2 1f 85 eb 51 imul $0x51eb851f,%rdx,%rdx + 404c7f: 48 c1 ea 20 shr $0x20,%rdx + 404c83: c1 fa 07 sar $0x7,%edx + 404c86: c1 f8 1f sar $0x1f,%eax + 404c89: 89 c1 mov %eax,%ecx + 404c8b: 89 d0 mov %edx,%eax + 404c8d: 29 c8 sub %ecx,%eax + 404c8f: 89 45 ac mov %eax,-0x54(%rbp) + 404c92: 8b 45 ac mov -0x54(%rbp),%eax + 404c95: 89 c7 mov %eax,%edi + 404c97: e8 ad fa ff ff call 404749 + 404c9c: 89 45 f8 mov %eax,-0x8(%rbp) + 404c9f: bf 0f 00 00 00 mov $0xf,%edi + 404ca4: e8 04 ca ff ff call 4016ad + 404ca9: 48 8b 05 70 3b 00 00 mov 0x3b70(%rip),%rax # 408820 + 404cb0: 8b 44 85 b0 mov -0x50(%rbp,%rax,4),%eax + 404cb4: 39 45 f8 cmp %eax,-0x8(%rbp) + 404cb7: 74 05 je 404cbe + 404cb9: e8 38 0f 00 00 call 405bf6 + 404cbe: 90 nop + 404cbf: c9 leave + 404cc0: c3 ret + +0000000000404cc1 : + 404cc1: f3 0f 1e fa endbr64 + 404cc5: 55 push %rbp + 404cc6: 48 89 e5 mov %rsp,%rbp + 404cc9: 48 83 ec 10 sub $0x10,%rsp + 404ccd: 89 7d fc mov %edi,-0x4(%rbp) + 404cd0: 83 7d fc 00 cmpl $0x0,-0x4(%rbp) + 404cd4: 7f 07 jg 404cdd + 404cd6: b8 01 00 00 00 mov $0x1,%eax + 404cdb: eb 16 jmp 404cf3 + 404cdd: 8b 45 fc mov -0x4(%rbp),%eax + 404ce0: 83 e8 01 sub $0x1,%eax + 404ce3: 89 c7 mov %eax,%edi + 404ce5: e8 d7 ff ff ff call 404cc1 + 404cea: 89 c2 mov %eax,%edx + 404cec: 89 d0 mov %edx,%eax + 404cee: c1 e0 03 shl $0x3,%eax + 404cf1: 29 d0 sub %edx,%eax + 404cf3: c9 leave + 404cf4: c3 ret + +0000000000404cf5 : + 404cf5: f3 0f 1e fa endbr64 + 404cf9: 55 push %rbp + 404cfa: 48 89 e5 mov %rsp,%rbp + 404cfd: 48 83 ec 50 sub $0x50,%rsp + 404d01: 48 89 7d b8 mov %rdi,-0x48(%rbp) + 404d05: c7 45 d0 31 00 00 00 movl $0x31,-0x30(%rbp) + 404d0c: c7 45 d4 57 01 00 00 movl $0x157,-0x2c(%rbp) + 404d13: c7 45 d8 61 09 00 00 movl $0x961,-0x28(%rbp) + 404d1a: c7 45 dc a7 41 00 00 movl $0x41a7,-0x24(%rbp) + 404d21: c7 45 e0 91 cb 01 00 movl $0x1cb91,-0x20(%rbp) + 404d28: c7 45 e4 f7 90 0c 00 movl $0xc90f7,-0x1c(%rbp) + 404d2f: c7 45 e8 c1 f6 57 00 movl $0x57f6c1,-0x18(%rbp) + 404d36: 48 8d 55 cc lea -0x34(%rbp),%rdx + 404d3a: 48 8b 45 b8 mov -0x48(%rbp),%rax + 404d3e: 48 8d 0d 6b 1b 00 00 lea 0x1b6b(%rip),%rcx # 4068b0 <_IO_stdin_used+0x8b0> + 404d45: 48 89 ce mov %rcx,%rsi + 404d48: 48 89 c7 mov %rax,%rdi + 404d4b: b8 00 00 00 00 mov $0x0,%eax + 404d50: e8 3b c4 ff ff call 401190 <__isoc99_sscanf@plt> + 404d55: 89 45 fc mov %eax,-0x4(%rbp) + 404d58: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) + 404d5c: 75 07 jne 404d65 + 404d5e: 8b 45 cc mov -0x34(%rbp),%eax + 404d61: 85 c0 test %eax,%eax + 404d63: 7f 05 jg 404d6a + 404d65: e8 8c 0e 00 00 call 405bf6 + 404d6a: 8b 45 cc mov -0x34(%rbp),%eax + 404d6d: 3d e7 03 00 00 cmp $0x3e7,%eax + 404d72: 7f 05 jg 404d79 + 404d74: e8 7d 0e 00 00 call 405bf6 + 404d79: 8b 45 cc mov -0x34(%rbp),%eax + 404d7c: 48 63 d0 movslq %eax,%rdx + 404d7f: 48 69 d2 d3 4d 62 10 imul $0x10624dd3,%rdx,%rdx + 404d86: 48 c1 ea 20 shr $0x20,%rdx + 404d8a: c1 fa 06 sar $0x6,%edx + 404d8d: c1 f8 1f sar $0x1f,%eax + 404d90: 89 c1 mov %eax,%ecx + 404d92: 89 d0 mov %edx,%eax + 404d94: 29 c8 sub %ecx,%eax + 404d96: 89 45 cc mov %eax,-0x34(%rbp) + 404d99: 8b 45 cc mov -0x34(%rbp),%eax + 404d9c: 89 c7 mov %eax,%edi + 404d9e: e8 1e ff ff ff call 404cc1 + 404da3: 89 45 f8 mov %eax,-0x8(%rbp) + 404da6: bf 07 00 00 00 mov $0x7,%edi + 404dab: e8 fd c8 ff ff call 4016ad + 404db0: 48 8b 05 69 3a 00 00 mov 0x3a69(%rip),%rax # 408820 + 404db7: 8b 44 85 d0 mov -0x30(%rbp,%rax,4),%eax + 404dbb: 39 45 f8 cmp %eax,-0x8(%rbp) + 404dbe: 74 05 je 404dc5 + 404dc0: e8 31 0e 00 00 call 405bf6 + 404dc5: 90 nop + 404dc6: c9 leave + 404dc7: c3 ret + +0000000000404dc8 : + 404dc8: f3 0f 1e fa endbr64 + 404dcc: 55 push %rbp + 404dcd: 48 89 e5 mov %rsp,%rbp + 404dd0: 48 83 ec 50 sub $0x50,%rsp + 404dd4: 48 89 7d b8 mov %rdi,-0x48(%rbp) + 404dd8: c7 45 d0 31 00 00 00 movl $0x31,-0x30(%rbp) + 404ddf: c7 45 d4 57 01 00 00 movl $0x157,-0x2c(%rbp) + 404de6: c7 45 d8 61 09 00 00 movl $0x961,-0x28(%rbp) + 404ded: c7 45 dc a7 41 00 00 movl $0x41a7,-0x24(%rbp) + 404df4: c7 45 e0 91 cb 01 00 movl $0x1cb91,-0x20(%rbp) + 404dfb: c7 45 e4 f7 90 0c 00 movl $0xc90f7,-0x1c(%rbp) + 404e02: c7 45 e8 c1 f6 57 00 movl $0x57f6c1,-0x18(%rbp) + 404e09: 48 8d 55 cc lea -0x34(%rbp),%rdx + 404e0d: 48 8b 45 b8 mov -0x48(%rbp),%rax + 404e11: 48 8d 0d 98 1a 00 00 lea 0x1a98(%rip),%rcx # 4068b0 <_IO_stdin_used+0x8b0> + 404e18: 48 89 ce mov %rcx,%rsi + 404e1b: 48 89 c7 mov %rax,%rdi + 404e1e: b8 00 00 00 00 mov $0x0,%eax + 404e23: e8 68 c3 ff ff call 401190 <__isoc99_sscanf@plt> + 404e28: 89 45 fc mov %eax,-0x4(%rbp) + 404e2b: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) + 404e2f: 75 07 jne 404e38 + 404e31: 8b 45 cc mov -0x34(%rbp),%eax + 404e34: 85 c0 test %eax,%eax + 404e36: 7f 05 jg 404e3d + 404e38: e8 b9 0d 00 00 call 405bf6 + 404e3d: 8b 45 cc mov -0x34(%rbp),%eax + 404e40: 3d c7 00 00 00 cmp $0xc7,%eax + 404e45: 7f 05 jg 404e4c + 404e47: e8 aa 0d 00 00 call 405bf6 + 404e4c: 8b 45 cc mov -0x34(%rbp),%eax + 404e4f: 48 63 d0 movslq %eax,%rdx + 404e52: 48 69 d2 1f 85 eb 51 imul $0x51eb851f,%rdx,%rdx + 404e59: 48 c1 ea 20 shr $0x20,%rdx + 404e5d: c1 fa 06 sar $0x6,%edx + 404e60: c1 f8 1f sar $0x1f,%eax + 404e63: 89 c1 mov %eax,%ecx + 404e65: 89 d0 mov %edx,%eax + 404e67: 29 c8 sub %ecx,%eax + 404e69: 89 45 cc mov %eax,-0x34(%rbp) + 404e6c: 8b 45 cc mov -0x34(%rbp),%eax + 404e6f: 89 c7 mov %eax,%edi + 404e71: e8 4b fe ff ff call 404cc1 + 404e76: 89 45 f8 mov %eax,-0x8(%rbp) + 404e79: bf 07 00 00 00 mov $0x7,%edi + 404e7e: e8 2a c8 ff ff call 4016ad + 404e83: 48 8b 05 96 39 00 00 mov 0x3996(%rip),%rax # 408820 + 404e8a: 8b 44 85 d0 mov -0x30(%rbp,%rax,4),%eax + 404e8e: 39 45 f8 cmp %eax,-0x8(%rbp) + 404e91: 74 05 je 404e98 + 404e93: e8 5e 0d 00 00 call 405bf6 + 404e98: 90 nop + 404e99: c9 leave + 404e9a: c3 ret + +0000000000404e9b : + 404e9b: f3 0f 1e fa endbr64 + 404e9f: 55 push %rbp + 404ea0: 48 89 e5 mov %rsp,%rbp + 404ea3: 48 83 ec 50 sub $0x50,%rsp + 404ea7: 48 89 7d b8 mov %rdi,-0x48(%rbp) + 404eab: c7 45 d0 31 00 00 00 movl $0x31,-0x30(%rbp) + 404eb2: c7 45 d4 57 01 00 00 movl $0x157,-0x2c(%rbp) + 404eb9: c7 45 d8 61 09 00 00 movl $0x961,-0x28(%rbp) + 404ec0: c7 45 dc a7 41 00 00 movl $0x41a7,-0x24(%rbp) + 404ec7: c7 45 e0 91 cb 01 00 movl $0x1cb91,-0x20(%rbp) + 404ece: c7 45 e4 f7 90 0c 00 movl $0xc90f7,-0x1c(%rbp) + 404ed5: c7 45 e8 c1 f6 57 00 movl $0x57f6c1,-0x18(%rbp) + 404edc: 48 8d 55 cc lea -0x34(%rbp),%rdx + 404ee0: 48 8b 45 b8 mov -0x48(%rbp),%rax + 404ee4: 48 8d 0d c5 19 00 00 lea 0x19c5(%rip),%rcx # 4068b0 <_IO_stdin_used+0x8b0> + 404eeb: 48 89 ce mov %rcx,%rsi + 404eee: 48 89 c7 mov %rax,%rdi + 404ef1: b8 00 00 00 00 mov $0x0,%eax + 404ef6: e8 95 c2 ff ff call 401190 <__isoc99_sscanf@plt> + 404efb: 89 45 fc mov %eax,-0x4(%rbp) + 404efe: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) + 404f02: 75 07 jne 404f0b + 404f04: 8b 45 cc mov -0x34(%rbp),%eax + 404f07: 85 c0 test %eax,%eax + 404f09: 7f 05 jg 404f10 + 404f0b: e8 e6 0c 00 00 call 405bf6 + 404f10: 8b 45 cc mov -0x34(%rbp),%eax + 404f13: 3d 2b 01 00 00 cmp $0x12b,%eax + 404f18: 7f 05 jg 404f1f + 404f1a: e8 d7 0c 00 00 call 405bf6 + 404f1f: 8b 45 cc mov -0x34(%rbp),%eax + 404f22: 48 63 d0 movslq %eax,%rdx + 404f25: 48 69 d2 b5 81 4e 1b imul $0x1b4e81b5,%rdx,%rdx + 404f2c: 48 c1 ea 20 shr $0x20,%rdx + 404f30: c1 fa 05 sar $0x5,%edx + 404f33: c1 f8 1f sar $0x1f,%eax + 404f36: 89 c1 mov %eax,%ecx + 404f38: 89 d0 mov %edx,%eax + 404f3a: 29 c8 sub %ecx,%eax + 404f3c: 89 45 cc mov %eax,-0x34(%rbp) + 404f3f: 8b 45 cc mov -0x34(%rbp),%eax + 404f42: 89 c7 mov %eax,%edi + 404f44: e8 78 fd ff ff call 404cc1 + 404f49: 89 45 f8 mov %eax,-0x8(%rbp) + 404f4c: bf 07 00 00 00 mov $0x7,%edi + 404f51: e8 57 c7 ff ff call 4016ad + 404f56: 48 8b 05 c3 38 00 00 mov 0x38c3(%rip),%rax # 408820 + 404f5d: 8b 44 85 d0 mov -0x30(%rbp,%rax,4),%eax + 404f61: 39 45 f8 cmp %eax,-0x8(%rbp) + 404f64: 74 05 je 404f6b + 404f66: e8 8b 0c 00 00 call 405bf6 + 404f6b: 90 nop + 404f6c: c9 leave + 404f6d: c3 ret + +0000000000404f6e : + 404f6e: f3 0f 1e fa endbr64 + 404f72: 55 push %rbp + 404f73: 48 89 e5 mov %rsp,%rbp + 404f76: 48 83 ec 50 sub $0x50,%rsp + 404f7a: 48 89 7d b8 mov %rdi,-0x48(%rbp) + 404f7e: c7 45 d0 31 00 00 00 movl $0x31,-0x30(%rbp) + 404f85: c7 45 d4 57 01 00 00 movl $0x157,-0x2c(%rbp) + 404f8c: c7 45 d8 61 09 00 00 movl $0x961,-0x28(%rbp) + 404f93: c7 45 dc a7 41 00 00 movl $0x41a7,-0x24(%rbp) + 404f9a: c7 45 e0 91 cb 01 00 movl $0x1cb91,-0x20(%rbp) + 404fa1: c7 45 e4 f7 90 0c 00 movl $0xc90f7,-0x1c(%rbp) + 404fa8: c7 45 e8 c1 f6 57 00 movl $0x57f6c1,-0x18(%rbp) + 404faf: 48 8d 55 cc lea -0x34(%rbp),%rdx + 404fb3: 48 8b 45 b8 mov -0x48(%rbp),%rax + 404fb7: 48 8d 0d f2 18 00 00 lea 0x18f2(%rip),%rcx # 4068b0 <_IO_stdin_used+0x8b0> + 404fbe: 48 89 ce mov %rcx,%rsi + 404fc1: 48 89 c7 mov %rax,%rdi + 404fc4: b8 00 00 00 00 mov $0x0,%eax + 404fc9: e8 c2 c1 ff ff call 401190 <__isoc99_sscanf@plt> + 404fce: 89 45 fc mov %eax,-0x4(%rbp) + 404fd1: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) + 404fd5: 75 07 jne 404fde + 404fd7: 8b 45 cc mov -0x34(%rbp),%eax + 404fda: 85 c0 test %eax,%eax + 404fdc: 7f 05 jg 404fe3 + 404fde: e8 13 0c 00 00 call 405bf6 + 404fe3: 8b 45 cc mov -0x34(%rbp),%eax + 404fe6: 3d 2b 01 00 00 cmp $0x12b,%eax + 404feb: 7f 05 jg 404ff2 + 404fed: e8 04 0c 00 00 call 405bf6 + 404ff2: 8b 45 cc mov -0x34(%rbp),%eax + 404ff5: 48 63 d0 movslq %eax,%rdx + 404ff8: 48 69 d2 b5 81 4e 1b imul $0x1b4e81b5,%rdx,%rdx + 404fff: 48 c1 ea 20 shr $0x20,%rdx + 405003: c1 fa 05 sar $0x5,%edx + 405006: c1 f8 1f sar $0x1f,%eax + 405009: 89 c1 mov %eax,%ecx + 40500b: 89 d0 mov %edx,%eax + 40500d: 29 c8 sub %ecx,%eax + 40500f: 89 45 cc mov %eax,-0x34(%rbp) + 405012: 8b 45 cc mov -0x34(%rbp),%eax + 405015: 89 c7 mov %eax,%edi + 405017: e8 a5 fc ff ff call 404cc1 + 40501c: 89 45 f8 mov %eax,-0x8(%rbp) + 40501f: bf 07 00 00 00 mov $0x7,%edi + 405024: e8 84 c6 ff ff call 4016ad + 405029: 48 8b 05 f0 37 00 00 mov 0x37f0(%rip),%rax # 408820 + 405030: 8b 44 85 d0 mov -0x30(%rbp,%rax,4),%eax + 405034: 39 45 f8 cmp %eax,-0x8(%rbp) + 405037: 74 05 je 40503e + 405039: e8 b8 0b 00 00 call 405bf6 + 40503e: 90 nop + 40503f: c9 leave + 405040: c3 ret + +0000000000405041 : + 405041: f3 0f 1e fa endbr64 + 405045: 55 push %rbp + 405046: 48 89 e5 mov %rsp,%rbp + 405049: 48 83 ec 50 sub $0x50,%rsp + 40504d: 48 89 7d b8 mov %rdi,-0x48(%rbp) + 405051: c7 45 d0 31 00 00 00 movl $0x31,-0x30(%rbp) + 405058: c7 45 d4 57 01 00 00 movl $0x157,-0x2c(%rbp) + 40505f: c7 45 d8 61 09 00 00 movl $0x961,-0x28(%rbp) + 405066: c7 45 dc a7 41 00 00 movl $0x41a7,-0x24(%rbp) + 40506d: c7 45 e0 91 cb 01 00 movl $0x1cb91,-0x20(%rbp) + 405074: c7 45 e4 f7 90 0c 00 movl $0xc90f7,-0x1c(%rbp) + 40507b: c7 45 e8 c1 f6 57 00 movl $0x57f6c1,-0x18(%rbp) + 405082: 48 8d 55 cc lea -0x34(%rbp),%rdx + 405086: 48 8b 45 b8 mov -0x48(%rbp),%rax + 40508a: 48 8d 0d 1f 18 00 00 lea 0x181f(%rip),%rcx # 4068b0 <_IO_stdin_used+0x8b0> + 405091: 48 89 ce mov %rcx,%rsi + 405094: 48 89 c7 mov %rax,%rdi + 405097: b8 00 00 00 00 mov $0x0,%eax + 40509c: e8 ef c0 ff ff call 401190 <__isoc99_sscanf@plt> + 4050a1: 89 45 fc mov %eax,-0x4(%rbp) + 4050a4: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) + 4050a8: 75 07 jne 4050b1 + 4050aa: 8b 45 cc mov -0x34(%rbp),%eax + 4050ad: 85 c0 test %eax,%eax + 4050af: 7f 05 jg 4050b6 + 4050b1: e8 40 0b 00 00 call 405bf6 + 4050b6: 8b 45 cc mov -0x34(%rbp),%eax + 4050b9: 3d 8f 01 00 00 cmp $0x18f,%eax + 4050be: 7f 05 jg 4050c5 + 4050c0: e8 31 0b 00 00 call 405bf6 + 4050c5: 8b 45 cc mov -0x34(%rbp),%eax + 4050c8: 48 63 d0 movslq %eax,%rdx + 4050cb: 48 69 d2 1f 85 eb 51 imul $0x51eb851f,%rdx,%rdx + 4050d2: 48 c1 ea 20 shr $0x20,%rdx + 4050d6: c1 fa 07 sar $0x7,%edx + 4050d9: c1 f8 1f sar $0x1f,%eax + 4050dc: 89 c1 mov %eax,%ecx + 4050de: 89 d0 mov %edx,%eax + 4050e0: 29 c8 sub %ecx,%eax + 4050e2: 89 45 cc mov %eax,-0x34(%rbp) + 4050e5: 8b 45 cc mov -0x34(%rbp),%eax + 4050e8: 89 c7 mov %eax,%edi + 4050ea: e8 d2 fb ff ff call 404cc1 + 4050ef: 89 45 f8 mov %eax,-0x8(%rbp) + 4050f2: bf 07 00 00 00 mov $0x7,%edi + 4050f7: e8 b1 c5 ff ff call 4016ad + 4050fc: 48 8b 05 1d 37 00 00 mov 0x371d(%rip),%rax # 408820 + 405103: 8b 44 85 d0 mov -0x30(%rbp,%rax,4),%eax + 405107: 39 45 f8 cmp %eax,-0x8(%rbp) + 40510a: 74 05 je 405111 + 40510c: e8 e5 0a 00 00 call 405bf6 + 405111: 90 nop + 405112: c9 leave + 405113: c3 ret + +0000000000405114 : + 405114: f3 0f 1e fa endbr64 + 405118: 55 push %rbp + 405119: 48 89 e5 mov %rsp,%rbp + 40511c: 48 83 ec 10 sub $0x10,%rsp + 405120: 89 7d fc mov %edi,-0x4(%rbp) + 405123: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) + 405127: 7f 07 jg 405130 + 405129: b8 01 00 00 00 mov $0x1,%eax + 40512e: eb 11 jmp 405141 + 405130: 8b 45 fc mov -0x4(%rbp),%eax + 405133: 83 e8 01 sub $0x1,%eax + 405136: 89 c7 mov %eax,%edi + 405138: e8 d7 ff ff ff call 405114 + 40513d: 0f af 45 fc imul -0x4(%rbp),%eax + 405141: c9 leave + 405142: c3 ret + +0000000000405143 : + 405143: f3 0f 1e fa endbr64 + 405147: 55 push %rbp + 405148: 48 89 e5 mov %rsp,%rbp + 40514b: 48 83 ec 50 sub $0x50,%rsp + 40514f: 48 89 7d b8 mov %rdi,-0x48(%rbp) + 405153: c7 45 d0 18 00 00 00 movl $0x18,-0x30(%rbp) + 40515a: c7 45 d4 78 00 00 00 movl $0x78,-0x2c(%rbp) + 405161: c7 45 d8 d0 02 00 00 movl $0x2d0,-0x28(%rbp) + 405168: c7 45 dc b0 13 00 00 movl $0x13b0,-0x24(%rbp) + 40516f: c7 45 e0 80 9d 00 00 movl $0x9d80,-0x20(%rbp) + 405176: c7 45 e4 80 89 05 00 movl $0x58980,-0x1c(%rbp) + 40517d: c7 45 e8 00 5f 37 00 movl $0x375f00,-0x18(%rbp) + 405184: 48 8d 55 cc lea -0x34(%rbp),%rdx + 405188: 48 8b 45 b8 mov -0x48(%rbp),%rax + 40518c: 48 8d 0d 1d 17 00 00 lea 0x171d(%rip),%rcx # 4068b0 <_IO_stdin_used+0x8b0> + 405193: 48 89 ce mov %rcx,%rsi + 405196: 48 89 c7 mov %rax,%rdi + 405199: b8 00 00 00 00 mov $0x0,%eax + 40519e: e8 ed bf ff ff call 401190 <__isoc99_sscanf@plt> + 4051a3: 89 45 fc mov %eax,-0x4(%rbp) + 4051a6: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) + 4051aa: 75 07 jne 4051b3 + 4051ac: 8b 45 cc mov -0x34(%rbp),%eax + 4051af: 85 c0 test %eax,%eax + 4051b1: 7f 05 jg 4051b8 + 4051b3: e8 3e 0a 00 00 call 405bf6 + 4051b8: 8b 45 cc mov -0x34(%rbp),%eax + 4051bb: 3d e7 03 00 00 cmp $0x3e7,%eax + 4051c0: 7f 05 jg 4051c7 + 4051c2: e8 2f 0a 00 00 call 405bf6 + 4051c7: 8b 45 cc mov -0x34(%rbp),%eax + 4051ca: 48 63 d0 movslq %eax,%rdx + 4051cd: 48 69 d2 d3 4d 62 10 imul $0x10624dd3,%rdx,%rdx + 4051d4: 48 c1 ea 20 shr $0x20,%rdx + 4051d8: c1 fa 06 sar $0x6,%edx + 4051db: c1 f8 1f sar $0x1f,%eax + 4051de: 89 c1 mov %eax,%ecx + 4051e0: 89 d0 mov %edx,%eax + 4051e2: 29 c8 sub %ecx,%eax + 4051e4: 89 45 cc mov %eax,-0x34(%rbp) + 4051e7: 8b 45 cc mov -0x34(%rbp),%eax + 4051ea: 89 c7 mov %eax,%edi + 4051ec: e8 23 ff ff ff call 405114 + 4051f1: 89 45 f8 mov %eax,-0x8(%rbp) + 4051f4: bf 07 00 00 00 mov $0x7,%edi + 4051f9: e8 af c4 ff ff call 4016ad + 4051fe: 48 8b 05 1b 36 00 00 mov 0x361b(%rip),%rax # 408820 + 405205: 8b 44 85 d0 mov -0x30(%rbp,%rax,4),%eax + 405209: 39 45 f8 cmp %eax,-0x8(%rbp) + 40520c: 74 05 je 405213 + 40520e: e8 e3 09 00 00 call 405bf6 + 405213: 90 nop + 405214: c9 leave + 405215: c3 ret + +0000000000405216 : + 405216: f3 0f 1e fa endbr64 + 40521a: 55 push %rbp + 40521b: 48 89 e5 mov %rsp,%rbp + 40521e: 48 83 ec 50 sub $0x50,%rsp + 405222: 48 89 7d b8 mov %rdi,-0x48(%rbp) + 405226: c7 45 d0 18 00 00 00 movl $0x18,-0x30(%rbp) + 40522d: c7 45 d4 78 00 00 00 movl $0x78,-0x2c(%rbp) + 405234: c7 45 d8 d0 02 00 00 movl $0x2d0,-0x28(%rbp) + 40523b: c7 45 dc b0 13 00 00 movl $0x13b0,-0x24(%rbp) + 405242: c7 45 e0 80 9d 00 00 movl $0x9d80,-0x20(%rbp) + 405249: c7 45 e4 80 89 05 00 movl $0x58980,-0x1c(%rbp) + 405250: c7 45 e8 00 5f 37 00 movl $0x375f00,-0x18(%rbp) + 405257: 48 8d 55 cc lea -0x34(%rbp),%rdx + 40525b: 48 8b 45 b8 mov -0x48(%rbp),%rax + 40525f: 48 8d 0d 4a 16 00 00 lea 0x164a(%rip),%rcx # 4068b0 <_IO_stdin_used+0x8b0> + 405266: 48 89 ce mov %rcx,%rsi + 405269: 48 89 c7 mov %rax,%rdi + 40526c: b8 00 00 00 00 mov $0x0,%eax + 405271: e8 1a bf ff ff call 401190 <__isoc99_sscanf@plt> + 405276: 89 45 fc mov %eax,-0x4(%rbp) + 405279: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) + 40527d: 75 07 jne 405286 + 40527f: 8b 45 cc mov -0x34(%rbp),%eax + 405282: 85 c0 test %eax,%eax + 405284: 7f 05 jg 40528b + 405286: e8 6b 09 00 00 call 405bf6 + 40528b: 8b 45 cc mov -0x34(%rbp),%eax + 40528e: 3d c7 00 00 00 cmp $0xc7,%eax + 405293: 7f 05 jg 40529a + 405295: e8 5c 09 00 00 call 405bf6 + 40529a: 8b 45 cc mov -0x34(%rbp),%eax + 40529d: 48 63 d0 movslq %eax,%rdx + 4052a0: 48 69 d2 1f 85 eb 51 imul $0x51eb851f,%rdx,%rdx + 4052a7: 48 c1 ea 20 shr $0x20,%rdx + 4052ab: c1 fa 06 sar $0x6,%edx + 4052ae: c1 f8 1f sar $0x1f,%eax + 4052b1: 89 c1 mov %eax,%ecx + 4052b3: 89 d0 mov %edx,%eax + 4052b5: 29 c8 sub %ecx,%eax + 4052b7: 89 45 cc mov %eax,-0x34(%rbp) + 4052ba: 8b 45 cc mov -0x34(%rbp),%eax + 4052bd: 89 c7 mov %eax,%edi + 4052bf: e8 50 fe ff ff call 405114 + 4052c4: 89 45 f8 mov %eax,-0x8(%rbp) + 4052c7: bf 07 00 00 00 mov $0x7,%edi + 4052cc: e8 dc c3 ff ff call 4016ad + 4052d1: 48 8b 05 48 35 00 00 mov 0x3548(%rip),%rax # 408820 + 4052d8: 8b 44 85 d0 mov -0x30(%rbp,%rax,4),%eax + 4052dc: 39 45 f8 cmp %eax,-0x8(%rbp) + 4052df: 74 05 je 4052e6 + 4052e1: e8 10 09 00 00 call 405bf6 + 4052e6: 90 nop + 4052e7: c9 leave + 4052e8: c3 ret + +00000000004052e9 : + 4052e9: f3 0f 1e fa endbr64 + 4052ed: 55 push %rbp + 4052ee: 48 89 e5 mov %rsp,%rbp + 4052f1: 48 83 ec 50 sub $0x50,%rsp + 4052f5: 48 89 7d b8 mov %rdi,-0x48(%rbp) + 4052f9: c7 45 d0 18 00 00 00 movl $0x18,-0x30(%rbp) + 405300: c7 45 d4 78 00 00 00 movl $0x78,-0x2c(%rbp) + 405307: c7 45 d8 d0 02 00 00 movl $0x2d0,-0x28(%rbp) + 40530e: c7 45 dc b0 13 00 00 movl $0x13b0,-0x24(%rbp) + 405315: c7 45 e0 80 9d 00 00 movl $0x9d80,-0x20(%rbp) + 40531c: c7 45 e4 80 89 05 00 movl $0x58980,-0x1c(%rbp) + 405323: c7 45 e8 00 5f 37 00 movl $0x375f00,-0x18(%rbp) + 40532a: 48 8d 55 cc lea -0x34(%rbp),%rdx + 40532e: 48 8b 45 b8 mov -0x48(%rbp),%rax + 405332: 48 8d 0d 77 15 00 00 lea 0x1577(%rip),%rcx # 4068b0 <_IO_stdin_used+0x8b0> + 405339: 48 89 ce mov %rcx,%rsi + 40533c: 48 89 c7 mov %rax,%rdi + 40533f: b8 00 00 00 00 mov $0x0,%eax + 405344: e8 47 be ff ff call 401190 <__isoc99_sscanf@plt> + 405349: 89 45 fc mov %eax,-0x4(%rbp) + 40534c: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) + 405350: 75 07 jne 405359 + 405352: 8b 45 cc mov -0x34(%rbp),%eax + 405355: 85 c0 test %eax,%eax + 405357: 7f 05 jg 40535e + 405359: e8 98 08 00 00 call 405bf6 + 40535e: 8b 45 cc mov -0x34(%rbp),%eax + 405361: 3d 2b 01 00 00 cmp $0x12b,%eax + 405366: 7f 05 jg 40536d + 405368: e8 89 08 00 00 call 405bf6 + 40536d: 8b 45 cc mov -0x34(%rbp),%eax + 405370: 48 63 d0 movslq %eax,%rdx + 405373: 48 69 d2 b5 81 4e 1b imul $0x1b4e81b5,%rdx,%rdx + 40537a: 48 c1 ea 20 shr $0x20,%rdx + 40537e: c1 fa 05 sar $0x5,%edx + 405381: c1 f8 1f sar $0x1f,%eax + 405384: 89 c1 mov %eax,%ecx + 405386: 89 d0 mov %edx,%eax + 405388: 29 c8 sub %ecx,%eax + 40538a: 89 45 cc mov %eax,-0x34(%rbp) + 40538d: 8b 45 cc mov -0x34(%rbp),%eax + 405390: 89 c7 mov %eax,%edi + 405392: e8 7d fd ff ff call 405114 + 405397: 89 45 f8 mov %eax,-0x8(%rbp) + 40539a: bf 07 00 00 00 mov $0x7,%edi + 40539f: e8 09 c3 ff ff call 4016ad + 4053a4: 48 8b 05 75 34 00 00 mov 0x3475(%rip),%rax # 408820 + 4053ab: 8b 44 85 d0 mov -0x30(%rbp,%rax,4),%eax + 4053af: 39 45 f8 cmp %eax,-0x8(%rbp) + 4053b2: 74 05 je 4053b9 + 4053b4: e8 3d 08 00 00 call 405bf6 + 4053b9: 90 nop + 4053ba: c9 leave + 4053bb: c3 ret + +00000000004053bc : + 4053bc: f3 0f 1e fa endbr64 + 4053c0: 55 push %rbp + 4053c1: 48 89 e5 mov %rsp,%rbp + 4053c4: 48 83 ec 50 sub $0x50,%rsp + 4053c8: 48 89 7d b8 mov %rdi,-0x48(%rbp) + 4053cc: c7 45 d0 18 00 00 00 movl $0x18,-0x30(%rbp) + 4053d3: c7 45 d4 78 00 00 00 movl $0x78,-0x2c(%rbp) + 4053da: c7 45 d8 d0 02 00 00 movl $0x2d0,-0x28(%rbp) + 4053e1: c7 45 dc b0 13 00 00 movl $0x13b0,-0x24(%rbp) + 4053e8: c7 45 e0 80 9d 00 00 movl $0x9d80,-0x20(%rbp) + 4053ef: c7 45 e4 80 89 05 00 movl $0x58980,-0x1c(%rbp) + 4053f6: c7 45 e8 00 5f 37 00 movl $0x375f00,-0x18(%rbp) + 4053fd: 48 8d 55 cc lea -0x34(%rbp),%rdx + 405401: 48 8b 45 b8 mov -0x48(%rbp),%rax + 405405: 48 8d 0d a4 14 00 00 lea 0x14a4(%rip),%rcx # 4068b0 <_IO_stdin_used+0x8b0> + 40540c: 48 89 ce mov %rcx,%rsi + 40540f: 48 89 c7 mov %rax,%rdi + 405412: b8 00 00 00 00 mov $0x0,%eax + 405417: e8 74 bd ff ff call 401190 <__isoc99_sscanf@plt> + 40541c: 89 45 fc mov %eax,-0x4(%rbp) + 40541f: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) + 405423: 75 07 jne 40542c + 405425: 8b 45 cc mov -0x34(%rbp),%eax + 405428: 85 c0 test %eax,%eax + 40542a: 7f 05 jg 405431 + 40542c: e8 c5 07 00 00 call 405bf6 + 405431: 8b 45 cc mov -0x34(%rbp),%eax + 405434: 3d 8f 01 00 00 cmp $0x18f,%eax + 405439: 7f 05 jg 405440 + 40543b: e8 b6 07 00 00 call 405bf6 + 405440: 8b 45 cc mov -0x34(%rbp),%eax + 405443: 48 63 d0 movslq %eax,%rdx + 405446: 48 69 d2 1f 85 eb 51 imul $0x51eb851f,%rdx,%rdx + 40544d: 48 c1 ea 20 shr $0x20,%rdx + 405451: c1 fa 07 sar $0x7,%edx + 405454: c1 f8 1f sar $0x1f,%eax + 405457: 89 c1 mov %eax,%ecx + 405459: 89 d0 mov %edx,%eax + 40545b: 29 c8 sub %ecx,%eax + 40545d: 89 45 cc mov %eax,-0x34(%rbp) + 405460: 8b 45 cc mov -0x34(%rbp),%eax + 405463: 89 c7 mov %eax,%edi + 405465: e8 aa fc ff ff call 405114 + 40546a: 89 45 f8 mov %eax,-0x8(%rbp) + 40546d: bf 07 00 00 00 mov $0x7,%edi + 405472: e8 36 c2 ff ff call 4016ad + 405477: 48 8b 05 a2 33 00 00 mov 0x33a2(%rip),%rax # 408820 + 40547e: 8b 44 85 d0 mov -0x30(%rbp,%rax,4),%eax + 405482: 39 45 f8 cmp %eax,-0x8(%rbp) + 405485: 74 05 je 40548c + 405487: e8 6a 07 00 00 call 405bf6 + 40548c: 90 nop + 40548d: c9 leave + 40548e: c3 ret + +000000000040548f : + 40548f: f3 0f 1e fa endbr64 + 405493: 55 push %rbp + 405494: 48 89 e5 mov %rsp,%rbp + 405497: 48 83 ec 50 sub $0x50,%rsp + 40549b: 48 89 7d b8 mov %rdi,-0x48(%rbp) + 40549f: c7 45 d0 18 00 00 00 movl $0x18,-0x30(%rbp) + 4054a6: c7 45 d4 78 00 00 00 movl $0x78,-0x2c(%rbp) + 4054ad: c7 45 d8 d0 02 00 00 movl $0x2d0,-0x28(%rbp) + 4054b4: c7 45 dc b0 13 00 00 movl $0x13b0,-0x24(%rbp) + 4054bb: c7 45 e0 80 9d 00 00 movl $0x9d80,-0x20(%rbp) + 4054c2: c7 45 e4 80 89 05 00 movl $0x58980,-0x1c(%rbp) + 4054c9: c7 45 e8 00 5f 37 00 movl $0x375f00,-0x18(%rbp) + 4054d0: 48 8d 55 cc lea -0x34(%rbp),%rdx + 4054d4: 48 8b 45 b8 mov -0x48(%rbp),%rax + 4054d8: 48 8d 0d d1 13 00 00 lea 0x13d1(%rip),%rcx # 4068b0 <_IO_stdin_used+0x8b0> + 4054df: 48 89 ce mov %rcx,%rsi + 4054e2: 48 89 c7 mov %rax,%rdi + 4054e5: b8 00 00 00 00 mov $0x0,%eax + 4054ea: e8 a1 bc ff ff call 401190 <__isoc99_sscanf@plt> + 4054ef: 89 45 fc mov %eax,-0x4(%rbp) + 4054f2: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) + 4054f6: 75 07 jne 4054ff + 4054f8: 8b 45 cc mov -0x34(%rbp),%eax + 4054fb: 85 c0 test %eax,%eax + 4054fd: 7f 05 jg 405504 + 4054ff: e8 f2 06 00 00 call 405bf6 + 405504: 8b 45 cc mov -0x34(%rbp),%eax + 405507: 3d f3 01 00 00 cmp $0x1f3,%eax + 40550c: 7f 05 jg 405513 + 40550e: e8 e3 06 00 00 call 405bf6 + 405513: 8b 45 cc mov -0x34(%rbp),%eax + 405516: 48 63 d0 movslq %eax,%rdx + 405519: 48 69 d2 d3 4d 62 10 imul $0x10624dd3,%rdx,%rdx + 405520: 48 c1 ea 20 shr $0x20,%rdx + 405524: c1 fa 05 sar $0x5,%edx + 405527: c1 f8 1f sar $0x1f,%eax + 40552a: 89 c1 mov %eax,%ecx + 40552c: 89 d0 mov %edx,%eax + 40552e: 29 c8 sub %ecx,%eax + 405530: 89 45 cc mov %eax,-0x34(%rbp) + 405533: 8b 45 cc mov -0x34(%rbp),%eax + 405536: 89 c7 mov %eax,%edi + 405538: e8 d7 fb ff ff call 405114 + 40553d: 89 45 f8 mov %eax,-0x8(%rbp) + 405540: bf 07 00 00 00 mov $0x7,%edi + 405545: e8 63 c1 ff ff call 4016ad + 40554a: 48 8b 05 cf 32 00 00 mov 0x32cf(%rip),%rax # 408820 + 405551: 8b 44 85 d0 mov -0x30(%rbp,%rax,4),%eax + 405555: 39 45 f8 cmp %eax,-0x8(%rbp) + 405558: 74 05 je 40555f + 40555a: e8 97 06 00 00 call 405bf6 + 40555f: 90 nop + 405560: c9 leave + 405561: c3 ret + +0000000000405562 : + 405562: f3 0f 1e fa endbr64 + 405566: 55 push %rbp + 405567: 48 89 e5 mov %rsp,%rbp + 40556a: 48 83 ec 10 sub $0x10,%rsp + 40556e: 89 7d fc mov %edi,-0x4(%rbp) + 405571: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) + 405575: 7f 07 jg 40557e + 405577: b8 01 00 00 00 mov $0x1,%eax + 40557c: eb 12 jmp 405590 + 40557e: 8b 45 fc mov -0x4(%rbp),%eax + 405581: 83 e8 01 sub $0x1,%eax + 405584: 89 c7 mov %eax,%edi + 405586: e8 d7 ff ff ff call 405562 + 40558b: 8b 55 fc mov -0x4(%rbp),%edx + 40558e: 01 d0 add %edx,%eax + 405590: c9 leave + 405591: c3 ret + +0000000000405592 : + 405592: f3 0f 1e fa endbr64 + 405596: 55 push %rbp + 405597: 48 89 e5 mov %rsp,%rbp + 40559a: 48 83 ec 50 sub $0x50,%rsp + 40559e: 48 89 7d b8 mov %rdi,-0x48(%rbp) + 4055a2: c7 45 d0 0a 00 00 00 movl $0xa,-0x30(%rbp) + 4055a9: c7 45 d4 0f 00 00 00 movl $0xf,-0x2c(%rbp) + 4055b0: c7 45 d8 15 00 00 00 movl $0x15,-0x28(%rbp) + 4055b7: c7 45 dc 1c 00 00 00 movl $0x1c,-0x24(%rbp) + 4055be: c7 45 e0 24 00 00 00 movl $0x24,-0x20(%rbp) + 4055c5: c7 45 e4 2d 00 00 00 movl $0x2d,-0x1c(%rbp) + 4055cc: c7 45 e8 37 00 00 00 movl $0x37,-0x18(%rbp) + 4055d3: 48 8d 55 cc lea -0x34(%rbp),%rdx + 4055d7: 48 8b 45 b8 mov -0x48(%rbp),%rax + 4055db: 48 8d 0d ce 12 00 00 lea 0x12ce(%rip),%rcx # 4068b0 <_IO_stdin_used+0x8b0> + 4055e2: 48 89 ce mov %rcx,%rsi + 4055e5: 48 89 c7 mov %rax,%rdi + 4055e8: b8 00 00 00 00 mov $0x0,%eax + 4055ed: e8 9e bb ff ff call 401190 <__isoc99_sscanf@plt> + 4055f2: 89 45 fc mov %eax,-0x4(%rbp) + 4055f5: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) + 4055f9: 75 07 jne 405602 + 4055fb: 8b 45 cc mov -0x34(%rbp),%eax + 4055fe: 85 c0 test %eax,%eax + 405600: 7f 05 jg 405607 + 405602: e8 ef 05 00 00 call 405bf6 + 405607: 8b 45 cc mov -0x34(%rbp),%eax + 40560a: 3d e7 03 00 00 cmp $0x3e7,%eax + 40560f: 7f 05 jg 405616 + 405611: e8 e0 05 00 00 call 405bf6 + 405616: 8b 45 cc mov -0x34(%rbp),%eax + 405619: 48 63 d0 movslq %eax,%rdx + 40561c: 48 69 d2 d3 4d 62 10 imul $0x10624dd3,%rdx,%rdx + 405623: 48 c1 ea 20 shr $0x20,%rdx + 405627: c1 fa 06 sar $0x6,%edx + 40562a: c1 f8 1f sar $0x1f,%eax + 40562d: 89 c1 mov %eax,%ecx + 40562f: 89 d0 mov %edx,%eax + 405631: 29 c8 sub %ecx,%eax + 405633: 89 45 cc mov %eax,-0x34(%rbp) + 405636: 8b 45 cc mov -0x34(%rbp),%eax + 405639: 89 c7 mov %eax,%edi + 40563b: e8 22 ff ff ff call 405562 + 405640: 89 45 f8 mov %eax,-0x8(%rbp) + 405643: bf 07 00 00 00 mov $0x7,%edi + 405648: e8 60 c0 ff ff call 4016ad + 40564d: 48 8b 05 cc 31 00 00 mov 0x31cc(%rip),%rax # 408820 + 405654: 8b 44 85 d0 mov -0x30(%rbp,%rax,4),%eax + 405658: 39 45 f8 cmp %eax,-0x8(%rbp) + 40565b: 74 05 je 405662 + 40565d: e8 94 05 00 00 call 405bf6 + 405662: 90 nop + 405663: c9 leave + 405664: c3 ret + +0000000000405665 : + 405665: f3 0f 1e fa endbr64 + 405669: 55 push %rbp + 40566a: 48 89 e5 mov %rsp,%rbp + 40566d: 48 83 ec 50 sub $0x50,%rsp + 405671: 48 89 7d b8 mov %rdi,-0x48(%rbp) + 405675: c7 45 d0 0a 00 00 00 movl $0xa,-0x30(%rbp) + 40567c: c7 45 d4 0f 00 00 00 movl $0xf,-0x2c(%rbp) + 405683: c7 45 d8 15 00 00 00 movl $0x15,-0x28(%rbp) + 40568a: c7 45 dc 1c 00 00 00 movl $0x1c,-0x24(%rbp) + 405691: c7 45 e0 24 00 00 00 movl $0x24,-0x20(%rbp) + 405698: c7 45 e4 2d 00 00 00 movl $0x2d,-0x1c(%rbp) + 40569f: c7 45 e8 37 00 00 00 movl $0x37,-0x18(%rbp) + 4056a6: 48 8d 55 cc lea -0x34(%rbp),%rdx + 4056aa: 48 8b 45 b8 mov -0x48(%rbp),%rax + 4056ae: 48 8d 0d fb 11 00 00 lea 0x11fb(%rip),%rcx # 4068b0 <_IO_stdin_used+0x8b0> + 4056b5: 48 89 ce mov %rcx,%rsi + 4056b8: 48 89 c7 mov %rax,%rdi + 4056bb: b8 00 00 00 00 mov $0x0,%eax + 4056c0: e8 cb ba ff ff call 401190 <__isoc99_sscanf@plt> + 4056c5: 89 45 fc mov %eax,-0x4(%rbp) + 4056c8: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) + 4056cc: 75 07 jne 4056d5 + 4056ce: 8b 45 cc mov -0x34(%rbp),%eax + 4056d1: 85 c0 test %eax,%eax + 4056d3: 7f 05 jg 4056da + 4056d5: e8 1c 05 00 00 call 405bf6 + 4056da: 8b 45 cc mov -0x34(%rbp),%eax + 4056dd: 83 f8 63 cmp $0x63,%eax + 4056e0: 7f 05 jg 4056e7 + 4056e2: e8 0f 05 00 00 call 405bf6 + 4056e7: 8b 45 cc mov -0x34(%rbp),%eax + 4056ea: 48 63 d0 movslq %eax,%rdx + 4056ed: 48 69 d2 1f 85 eb 51 imul $0x51eb851f,%rdx,%rdx + 4056f4: 48 c1 ea 20 shr $0x20,%rdx + 4056f8: c1 fa 05 sar $0x5,%edx + 4056fb: c1 f8 1f sar $0x1f,%eax + 4056fe: 89 c1 mov %eax,%ecx + 405700: 89 d0 mov %edx,%eax + 405702: 29 c8 sub %ecx,%eax + 405704: 89 45 cc mov %eax,-0x34(%rbp) + 405707: 8b 45 cc mov -0x34(%rbp),%eax + 40570a: 89 c7 mov %eax,%edi + 40570c: e8 51 fe ff ff call 405562 + 405711: 89 45 f8 mov %eax,-0x8(%rbp) + 405714: bf 07 00 00 00 mov $0x7,%edi + 405719: e8 8f bf ff ff call 4016ad + 40571e: 48 8b 05 fb 30 00 00 mov 0x30fb(%rip),%rax # 408820 + 405725: 8b 44 85 d0 mov -0x30(%rbp,%rax,4),%eax + 405729: 39 45 f8 cmp %eax,-0x8(%rbp) + 40572c: 74 05 je 405733 + 40572e: e8 c3 04 00 00 call 405bf6 + 405733: 90 nop + 405734: c9 leave + 405735: c3 ret + +0000000000405736 : + 405736: f3 0f 1e fa endbr64 + 40573a: 55 push %rbp + 40573b: 48 89 e5 mov %rsp,%rbp + 40573e: 48 83 ec 50 sub $0x50,%rsp + 405742: 48 89 7d b8 mov %rdi,-0x48(%rbp) + 405746: c7 45 d0 0a 00 00 00 movl $0xa,-0x30(%rbp) + 40574d: c7 45 d4 0f 00 00 00 movl $0xf,-0x2c(%rbp) + 405754: c7 45 d8 15 00 00 00 movl $0x15,-0x28(%rbp) + 40575b: c7 45 dc 1c 00 00 00 movl $0x1c,-0x24(%rbp) + 405762: c7 45 e0 24 00 00 00 movl $0x24,-0x20(%rbp) + 405769: c7 45 e4 2d 00 00 00 movl $0x2d,-0x1c(%rbp) + 405770: c7 45 e8 37 00 00 00 movl $0x37,-0x18(%rbp) + 405777: 48 8d 55 cc lea -0x34(%rbp),%rdx + 40577b: 48 8b 45 b8 mov -0x48(%rbp),%rax + 40577f: 48 8d 0d 2a 11 00 00 lea 0x112a(%rip),%rcx # 4068b0 <_IO_stdin_used+0x8b0> + 405786: 48 89 ce mov %rcx,%rsi + 405789: 48 89 c7 mov %rax,%rdi + 40578c: b8 00 00 00 00 mov $0x0,%eax + 405791: e8 fa b9 ff ff call 401190 <__isoc99_sscanf@plt> + 405796: 89 45 fc mov %eax,-0x4(%rbp) + 405799: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) + 40579d: 75 07 jne 4057a6 + 40579f: 8b 45 cc mov -0x34(%rbp),%eax + 4057a2: 85 c0 test %eax,%eax + 4057a4: 7f 05 jg 4057ab + 4057a6: e8 4b 04 00 00 call 405bf6 + 4057ab: 8b 45 cc mov -0x34(%rbp),%eax + 4057ae: 3d c7 00 00 00 cmp $0xc7,%eax + 4057b3: 7f 05 jg 4057ba + 4057b5: e8 3c 04 00 00 call 405bf6 + 4057ba: 8b 45 cc mov -0x34(%rbp),%eax + 4057bd: 48 63 d0 movslq %eax,%rdx + 4057c0: 48 69 d2 1f 85 eb 51 imul $0x51eb851f,%rdx,%rdx + 4057c7: 48 c1 ea 20 shr $0x20,%rdx + 4057cb: c1 fa 06 sar $0x6,%edx + 4057ce: c1 f8 1f sar $0x1f,%eax + 4057d1: 89 c1 mov %eax,%ecx + 4057d3: 89 d0 mov %edx,%eax + 4057d5: 29 c8 sub %ecx,%eax + 4057d7: 89 45 cc mov %eax,-0x34(%rbp) + 4057da: 8b 45 cc mov -0x34(%rbp),%eax + 4057dd: 89 c7 mov %eax,%edi + 4057df: e8 7e fd ff ff call 405562 + 4057e4: 89 45 f8 mov %eax,-0x8(%rbp) + 4057e7: bf 07 00 00 00 mov $0x7,%edi + 4057ec: e8 bc be ff ff call 4016ad + 4057f1: 48 8b 05 28 30 00 00 mov 0x3028(%rip),%rax # 408820 + 4057f8: 8b 44 85 d0 mov -0x30(%rbp,%rax,4),%eax + 4057fc: 39 45 f8 cmp %eax,-0x8(%rbp) + 4057ff: 74 05 je 405806 + 405801: e8 f0 03 00 00 call 405bf6 + 405806: 90 nop + 405807: c9 leave + 405808: c3 ret + +0000000000405809 : + 405809: f3 0f 1e fa endbr64 + 40580d: 55 push %rbp + 40580e: 48 89 e5 mov %rsp,%rbp + 405811: 48 83 ec 50 sub $0x50,%rsp + 405815: 48 89 7d b8 mov %rdi,-0x48(%rbp) + 405819: c7 45 d0 0a 00 00 00 movl $0xa,-0x30(%rbp) + 405820: c7 45 d4 0f 00 00 00 movl $0xf,-0x2c(%rbp) + 405827: c7 45 d8 15 00 00 00 movl $0x15,-0x28(%rbp) + 40582e: c7 45 dc 1c 00 00 00 movl $0x1c,-0x24(%rbp) + 405835: c7 45 e0 24 00 00 00 movl $0x24,-0x20(%rbp) + 40583c: c7 45 e4 2d 00 00 00 movl $0x2d,-0x1c(%rbp) + 405843: c7 45 e8 37 00 00 00 movl $0x37,-0x18(%rbp) + 40584a: 48 8d 55 cc lea -0x34(%rbp),%rdx + 40584e: 48 8b 45 b8 mov -0x48(%rbp),%rax + 405852: 48 8d 0d 57 10 00 00 lea 0x1057(%rip),%rcx # 4068b0 <_IO_stdin_used+0x8b0> + 405859: 48 89 ce mov %rcx,%rsi + 40585c: 48 89 c7 mov %rax,%rdi + 40585f: b8 00 00 00 00 mov $0x0,%eax + 405864: e8 27 b9 ff ff call 401190 <__isoc99_sscanf@plt> + 405869: 89 45 fc mov %eax,-0x4(%rbp) + 40586c: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) + 405870: 75 07 jne 405879 + 405872: 8b 45 cc mov -0x34(%rbp),%eax + 405875: 85 c0 test %eax,%eax + 405877: 7f 05 jg 40587e + 405879: e8 78 03 00 00 call 405bf6 + 40587e: 8b 45 cc mov -0x34(%rbp),%eax + 405881: 3d 2b 01 00 00 cmp $0x12b,%eax + 405886: 7f 05 jg 40588d + 405888: e8 69 03 00 00 call 405bf6 + 40588d: 8b 45 cc mov -0x34(%rbp),%eax + 405890: 48 63 d0 movslq %eax,%rdx + 405893: 48 69 d2 b5 81 4e 1b imul $0x1b4e81b5,%rdx,%rdx + 40589a: 48 c1 ea 20 shr $0x20,%rdx + 40589e: c1 fa 05 sar $0x5,%edx + 4058a1: c1 f8 1f sar $0x1f,%eax + 4058a4: 89 c1 mov %eax,%ecx + 4058a6: 89 d0 mov %edx,%eax + 4058a8: 29 c8 sub %ecx,%eax + 4058aa: 89 45 cc mov %eax,-0x34(%rbp) + 4058ad: 8b 45 cc mov -0x34(%rbp),%eax + 4058b0: 89 c7 mov %eax,%edi + 4058b2: e8 ab fc ff ff call 405562 + 4058b7: 89 45 f8 mov %eax,-0x8(%rbp) + 4058ba: bf 07 00 00 00 mov $0x7,%edi + 4058bf: e8 e9 bd ff ff call 4016ad + 4058c4: 48 8b 05 55 2f 00 00 mov 0x2f55(%rip),%rax # 408820 + 4058cb: 8b 44 85 d0 mov -0x30(%rbp,%rax,4),%eax + 4058cf: 39 45 f8 cmp %eax,-0x8(%rbp) + 4058d2: 74 05 je 4058d9 + 4058d4: e8 1d 03 00 00 call 405bf6 + 4058d9: 90 nop + 4058da: c9 leave + 4058db: c3 ret + +00000000004058dc : + 4058dc: f3 0f 1e fa endbr64 + 4058e0: 55 push %rbp + 4058e1: 48 89 e5 mov %rsp,%rbp + 4058e4: 48 83 ec 50 sub $0x50,%rsp + 4058e8: 48 89 7d b8 mov %rdi,-0x48(%rbp) + 4058ec: c7 45 d0 0a 00 00 00 movl $0xa,-0x30(%rbp) + 4058f3: c7 45 d4 0f 00 00 00 movl $0xf,-0x2c(%rbp) + 4058fa: c7 45 d8 15 00 00 00 movl $0x15,-0x28(%rbp) + 405901: c7 45 dc 1c 00 00 00 movl $0x1c,-0x24(%rbp) + 405908: c7 45 e0 24 00 00 00 movl $0x24,-0x20(%rbp) + 40590f: c7 45 e4 2d 00 00 00 movl $0x2d,-0x1c(%rbp) + 405916: c7 45 e8 37 00 00 00 movl $0x37,-0x18(%rbp) + 40591d: 48 8d 55 cc lea -0x34(%rbp),%rdx + 405921: 48 8b 45 b8 mov -0x48(%rbp),%rax + 405925: 48 8d 0d 84 0f 00 00 lea 0xf84(%rip),%rcx # 4068b0 <_IO_stdin_used+0x8b0> + 40592c: 48 89 ce mov %rcx,%rsi + 40592f: 48 89 c7 mov %rax,%rdi + 405932: b8 00 00 00 00 mov $0x0,%eax + 405937: e8 54 b8 ff ff call 401190 <__isoc99_sscanf@plt> + 40593c: 89 45 fc mov %eax,-0x4(%rbp) + 40593f: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) + 405943: 75 07 jne 40594c + 405945: 8b 45 cc mov -0x34(%rbp),%eax + 405948: 85 c0 test %eax,%eax + 40594a: 7f 05 jg 405951 + 40594c: e8 a5 02 00 00 call 405bf6 + 405951: 8b 45 cc mov -0x34(%rbp),%eax + 405954: 3d 8f 01 00 00 cmp $0x18f,%eax + 405959: 7f 05 jg 405960 + 40595b: e8 96 02 00 00 call 405bf6 + 405960: 8b 45 cc mov -0x34(%rbp),%eax + 405963: 48 63 d0 movslq %eax,%rdx + 405966: 48 69 d2 1f 85 eb 51 imul $0x51eb851f,%rdx,%rdx + 40596d: 48 c1 ea 20 shr $0x20,%rdx + 405971: c1 fa 07 sar $0x7,%edx + 405974: c1 f8 1f sar $0x1f,%eax + 405977: 89 c1 mov %eax,%ecx + 405979: 89 d0 mov %edx,%eax + 40597b: 29 c8 sub %ecx,%eax + 40597d: 89 45 cc mov %eax,-0x34(%rbp) + 405980: 8b 45 cc mov -0x34(%rbp),%eax + 405983: 89 c7 mov %eax,%edi + 405985: e8 d8 fb ff ff call 405562 + 40598a: 89 45 f8 mov %eax,-0x8(%rbp) + 40598d: bf 07 00 00 00 mov $0x7,%edi + 405992: e8 16 bd ff ff call 4016ad + 405997: 48 8b 05 82 2e 00 00 mov 0x2e82(%rip),%rax # 408820 + 40599e: 8b 44 85 d0 mov -0x30(%rbp,%rax,4),%eax + 4059a2: 39 45 f8 cmp %eax,-0x8(%rbp) + 4059a5: 74 05 je 4059ac + 4059a7: e8 4a 02 00 00 call 405bf6 + 4059ac: 90 nop + 4059ad: c9 leave + 4059ae: c3 ret + +00000000004059af : + 4059af: f3 0f 1e fa endbr64 + 4059b3: 55 push %rbp + 4059b4: 48 89 e5 mov %rsp,%rbp + 4059b7: 48 83 ec 20 sub $0x20,%rsp + 4059bb: 48 89 7d e8 mov %rdi,-0x18(%rbp) + 4059bf: 48 89 75 e0 mov %rsi,-0x20(%rbp) + 4059c3: 48 8b 45 e0 mov -0x20(%rbp),%rax + 4059c7: 48 8d 78 14 lea 0x14(%rax),%rdi + 4059cb: 48 8b 45 e0 mov -0x20(%rbp),%rax + 4059cf: 48 8d 70 10 lea 0x10(%rax),%rsi + 4059d3: 48 8b 45 e0 mov -0x20(%rbp),%rax + 4059d7: 4c 8d 48 0c lea 0xc(%rax),%r9 + 4059db: 48 8b 45 e0 mov -0x20(%rbp),%rax + 4059df: 4c 8d 40 08 lea 0x8(%rax),%r8 + 4059e3: 48 8b 45 e0 mov -0x20(%rbp),%rax + 4059e7: 48 8d 48 04 lea 0x4(%rax),%rcx + 4059eb: 48 8b 55 e0 mov -0x20(%rbp),%rdx + 4059ef: 48 8b 45 e8 mov -0x18(%rbp),%rax + 4059f3: 57 push %rdi + 4059f4: 56 push %rsi + 4059f5: 48 8d 35 bc 0e 00 00 lea 0xebc(%rip),%rsi # 4068b8 <_IO_stdin_used+0x8b8> + 4059fc: 48 89 c7 mov %rax,%rdi + 4059ff: b8 00 00 00 00 mov $0x0,%eax + 405a04: e8 87 b7 ff ff call 401190 <__isoc99_sscanf@plt> + 405a09: 48 83 c4 10 add $0x10,%rsp + 405a0d: 89 45 fc mov %eax,-0x4(%rbp) + 405a10: 83 7d fc 05 cmpl $0x5,-0x4(%rbp) + 405a14: 7f 05 jg 405a1b + 405a16: e8 db 01 00 00 call 405bf6 + 405a1b: 90 nop + 405a1c: c9 leave + 405a1d: c3 ret + +0000000000405a1e : + 405a1e: f3 0f 1e fa endbr64 + 405a22: 55 push %rbp + 405a23: 48 89 e5 mov %rsp,%rbp + 405a26: 48 83 ec 10 sub $0x10,%rsp + 405a2a: 48 89 7d f8 mov %rdi,-0x8(%rbp) + 405a2e: eb 37 jmp 405a67 + 405a30: e8 ab b7 ff ff call 4011e0 <__ctype_b_loc@plt> + 405a35: 48 8b 08 mov (%rax),%rcx + 405a38: 48 8b 45 f8 mov -0x8(%rbp),%rax + 405a3c: 48 8d 50 01 lea 0x1(%rax),%rdx + 405a40: 48 89 55 f8 mov %rdx,-0x8(%rbp) + 405a44: 0f b6 00 movzbl (%rax),%eax + 405a47: 48 0f be c0 movsbq %al,%rax + 405a4b: 48 01 c0 add %rax,%rax + 405a4e: 48 01 c8 add %rcx,%rax + 405a51: 0f b7 00 movzwl (%rax),%eax + 405a54: 0f b7 c0 movzwl %ax,%eax + 405a57: 25 00 20 00 00 and $0x2000,%eax + 405a5c: 85 c0 test %eax,%eax + 405a5e: 75 07 jne 405a67 + 405a60: b8 00 00 00 00 mov $0x0,%eax + 405a65: eb 10 jmp 405a77 + 405a67: 48 8b 45 f8 mov -0x8(%rbp),%rax + 405a6b: 0f b6 00 movzbl (%rax),%eax + 405a6e: 84 c0 test %al,%al + 405a70: 75 be jne 405a30 + 405a72: b8 01 00 00 00 mov $0x1,%eax + 405a77: c9 leave + 405a78: c3 ret + +0000000000405a79 : + 405a79: f3 0f 1e fa endbr64 + 405a7d: 55 push %rbp + 405a7e: 48 89 e5 mov %rsp,%rbp + 405a81: 48 83 ec 10 sub $0x10,%rsp + 405a85: 48 8b 05 9c 2d 00 00 mov 0x2d9c(%rip),%rax # 408828 + 405a8c: 8b 15 ae 7d 00 00 mov 0x7dae(%rip),%edx # 40d840 + 405a92: 48 63 d2 movslq %edx,%rdx + 405a95: 48 89 d1 mov %rdx,%rcx + 405a98: 48 c1 e1 0a shl $0xa,%rcx + 405a9c: 48 8d 15 9d 2d 00 00 lea 0x2d9d(%rip),%rdx # 408840 + 405aa3: 48 01 d1 add %rdx,%rcx + 405aa6: 48 89 c2 mov %rax,%rdx + 405aa9: be 00 04 00 00 mov $0x400,%esi + 405aae: 48 89 cf mov %rcx,%rdi + 405ab1: e8 ba b6 ff ff call 401170 + 405ab6: 48 89 45 f8 mov %rax,-0x8(%rbp) + 405aba: 48 83 7d f8 00 cmpq $0x0,-0x8(%rbp) + 405abf: 74 10 je 405ad1 + 405ac1: 48 8b 45 f8 mov -0x8(%rbp),%rax + 405ac5: 48 89 c7 mov %rax,%rdi + 405ac8: e8 51 ff ff ff call 405a1e + 405acd: 85 c0 test %eax,%eax + 405acf: 75 b4 jne 405a85 + 405ad1: 48 8b 45 f8 mov -0x8(%rbp),%rax + 405ad5: c9 leave + 405ad6: c3 ret + +0000000000405ad7 : + 405ad7: f3 0f 1e fa endbr64 + 405adb: 55 push %rbp + 405adc: 48 89 e5 mov %rsp,%rbp + 405adf: 48 83 ec 10 sub $0x10,%rsp + 405ae3: e8 91 ff ff ff call 405a79 + 405ae8: 48 89 45 f8 mov %rax,-0x8(%rbp) + 405aec: 48 83 7d f8 00 cmpq $0x0,-0x8(%rbp) + 405af1: 75 79 jne 405b6c + 405af3: 48 8b 15 2e 2d 00 00 mov 0x2d2e(%rip),%rdx # 408828 + 405afa: 48 8b 05 ff 2c 00 00 mov 0x2cff(%rip),%rax # 408800 + 405b01: 48 39 c2 cmp %rax,%rdx + 405b04: 75 16 jne 405b1c + 405b06: 48 8d 05 c3 0d 00 00 lea 0xdc3(%rip),%rax # 4068d0 <_IO_stdin_used+0x8d0> + 405b0d: 48 89 c7 mov %rax,%rdi + 405b10: e8 0b b6 ff ff call 401120 + 405b15: e8 dc 00 00 00 call 405bf6 + 405b1a: eb 50 jmp 405b6c + 405b1c: 48 8d 05 e1 0d 00 00 lea 0xde1(%rip),%rax # 406904 <_IO_stdin_used+0x904> + 405b23: 48 89 c7 mov %rax,%rdi + 405b26: e8 e5 b5 ff ff call 401110 + 405b2b: 48 85 c0 test %rax,%rax + 405b2e: 74 0a je 405b3a + 405b30: bf 00 00 00 00 mov $0x0,%edi + 405b35: e8 96 b6 ff ff call 4011d0 + 405b3a: 48 8b 05 bf 2c 00 00 mov 0x2cbf(%rip),%rax # 408800 + 405b41: 48 89 05 e0 2c 00 00 mov %rax,0x2ce0(%rip) # 408828 + 405b48: e8 2c ff ff ff call 405a79 + 405b4d: 48 89 45 f8 mov %rax,-0x8(%rbp) + 405b51: 48 83 7d f8 00 cmpq $0x0,-0x8(%rbp) + 405b56: 75 14 jne 405b6c + 405b58: 48 8d 05 71 0d 00 00 lea 0xd71(%rip),%rax # 4068d0 <_IO_stdin_used+0x8d0> + 405b5f: 48 89 c7 mov %rax,%rdi + 405b62: e8 b9 b5 ff ff call 401120 + 405b67: e8 8a 00 00 00 call 405bf6 + 405b6c: 8b 05 ce 7c 00 00 mov 0x7cce(%rip),%eax # 40d840 + 405b72: 48 98 cltq + 405b74: 48 c1 e0 0a shl $0xa,%rax + 405b78: 48 89 c2 mov %rax,%rdx + 405b7b: 48 8d 05 be 2c 00 00 lea 0x2cbe(%rip),%rax # 408840 + 405b82: 48 01 d0 add %rdx,%rax + 405b85: 48 89 c7 mov %rax,%rdi + 405b88: e8 b3 b5 ff ff call 401140 + 405b8d: 89 45 f4 mov %eax,-0xc(%rbp) + 405b90: 81 7d f4 ff 03 00 00 cmpl $0x3ff,-0xc(%rbp) + 405b97: 75 14 jne 405bad + 405b99: 48 8d 05 6f 0d 00 00 lea 0xd6f(%rip),%rax # 40690f <_IO_stdin_used+0x90f> + 405ba0: 48 89 c7 mov %rax,%rdi + 405ba3: e8 78 b5 ff ff call 401120 + 405ba8: e8 49 00 00 00 call 405bf6 + 405bad: 8b 05 8d 7c 00 00 mov 0x7c8d(%rip),%eax # 40d840 + 405bb3: 8b 55 f4 mov -0xc(%rbp),%edx + 405bb6: 83 ea 01 sub $0x1,%edx + 405bb9: 48 63 d2 movslq %edx,%rdx + 405bbc: 48 98 cltq + 405bbe: 48 c1 e0 0a shl $0xa,%rax + 405bc2: 48 01 c2 add %rax,%rdx + 405bc5: 48 8d 05 74 2c 00 00 lea 0x2c74(%rip),%rax # 408840 + 405bcc: 48 01 d0 add %rdx,%rax + 405bcf: c6 00 00 movb $0x0,(%rax) + 405bd2: 8b 05 68 7c 00 00 mov 0x7c68(%rip),%eax # 40d840 + 405bd8: 8d 50 01 lea 0x1(%rax),%edx + 405bdb: 89 15 5f 7c 00 00 mov %edx,0x7c5f(%rip) # 40d840 + 405be1: 48 98 cltq + 405be3: 48 c1 e0 0a shl $0xa,%rax + 405be7: 48 89 c2 mov %rax,%rdx + 405bea: 48 8d 05 4f 2c 00 00 lea 0x2c4f(%rip),%rax # 408840 + 405bf1: 48 01 d0 add %rdx,%rax + 405bf4: c9 leave + 405bf5: c3 ret + +0000000000405bf6 : + 405bf6: f3 0f 1e fa endbr64 + 405bfa: 55 push %rbp + 405bfb: 48 89 e5 mov %rsp,%rbp + 405bfe: 48 8d 05 26 0d 00 00 lea 0xd26(%rip),%rax # 40692b <_IO_stdin_used+0x92b> + 405c05: 48 89 c7 mov %rax,%rdi + 405c08: e8 13 b5 ff ff call 401120 + 405c0d: 48 8d 05 2a 0d 00 00 lea 0xd2a(%rip),%rax # 40693e <_IO_stdin_used+0x93e> + 405c14: 48 89 c7 mov %rax,%rdi + 405c17: e8 04 b5 ff ff call 401120 + 405c1c: bf 08 00 00 00 mov $0x8,%edi + 405c21: e8 aa b5 ff ff call 4011d0 + +Disassembly of section .fini: + +0000000000405c28 <_fini>: + 405c28: f3 0f 1e fa endbr64 + 405c2c: 48 83 ec 08 sub $0x8,%rsp + 405c30: 48 83 c4 08 add $0x8,%rsp + 405c34: c3 ret diff --git a/bomblab/bomb.exe b/bomblab/bomb.exe new file mode 100644 index 0000000..4fa01c1 Binary files /dev/null and b/bomblab/bomb.exe differ diff --git a/bomblab/bomb_723005.txt b/bomblab/bomb_723005.txt new file mode 100644 index 0000000..b619af7 --- /dev/null +++ b/bomblab/bomb_723005.txt @@ -0,0 +1,6 @@ +mJHurpQZtY +47 47 47 47 47 47 +2 -41 +38000 +Y +48B8F887400000000000C700FC03000048C704249618400048B88B1A400000000000FFE051 diff --git a/bomblab/bomb_decompile.gpr b/bomblab/bomb_decompile.gpr new file mode 100644 index 0000000..e69de29 diff --git a/bomblab/bomb_decompile.rep/idata/00/00000000.prp b/bomblab/bomb_decompile.rep/idata/00/00000000.prp new file mode 100644 index 0000000..66d4bbc --- /dev/null +++ b/bomblab/bomb_decompile.rep/idata/00/00000000.prp @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/bomblab/bomb_decompile.rep/idata/00/~00000000.db/db.2.gbf b/bomblab/bomb_decompile.rep/idata/00/~00000000.db/db.2.gbf new file mode 100644 index 0000000..b918dbc Binary files /dev/null and b/bomblab/bomb_decompile.rep/idata/00/~00000000.db/db.2.gbf differ diff --git a/bomblab/bomb_decompile.rep/idata/~index.bak b/bomblab/bomb_decompile.rep/idata/~index.bak new file mode 100644 index 0000000..82e2d1f --- /dev/null +++ b/bomblab/bomb_decompile.rep/idata/~index.bak @@ -0,0 +1,5 @@ +VERSION=1 +/ + 00000000:bomb_linux:c0a82b469b8f17134149581882 +NEXT-ID:1 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/bomblab/bomb_decompile.rep/idata/~index.dat b/bomblab/bomb_decompile.rep/idata/~index.dat new file mode 100644 index 0000000..82e2d1f --- /dev/null +++ b/bomblab/bomb_decompile.rep/idata/~index.dat @@ -0,0 +1,5 @@ +VERSION=1 +/ + 00000000:bomb_linux:c0a82b469b8f17134149581882 +NEXT-ID:1 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/bomblab/bomb_decompile.rep/project.prp b/bomblab/bomb_decompile.rep/project.prp new file mode 100644 index 0000000..cd88361 --- /dev/null +++ b/bomblab/bomb_decompile.rep/project.prp @@ -0,0 +1,6 @@ + + + + + + diff --git a/bomblab/bomb_decompile.rep/projectState b/bomblab/bomb_decompile.rep/projectState new file mode 100644 index 0000000..542cafe --- /dev/null +++ b/bomblab/bomb_decompile.rep/projectState @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/bomblab/bomb_decompile.rep/user/00/00000000.prp b/bomblab/bomb_decompile.rep/user/00/00000000.prp new file mode 100644 index 0000000..7dbd7b1 --- /dev/null +++ b/bomblab/bomb_decompile.rep/user/00/00000000.prp @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/bomblab/bomb_decompile.rep/user/00/~00000000.db/db.7.gbf b/bomblab/bomb_decompile.rep/user/00/~00000000.db/db.7.gbf new file mode 100644 index 0000000..783ddc8 Binary files /dev/null and b/bomblab/bomb_decompile.rep/user/00/~00000000.db/db.7.gbf differ diff --git a/bomblab/bomb_decompile.rep/user/~index.bak b/bomblab/bomb_decompile.rep/user/~index.bak new file mode 100644 index 0000000..b1e697f --- /dev/null +++ b/bomblab/bomb_decompile.rep/user/~index.bak @@ -0,0 +1,4 @@ +VERSION=1 +/ +NEXT-ID:0 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/bomblab/bomb_decompile.rep/user/~index.dat b/bomblab/bomb_decompile.rep/user/~index.dat new file mode 100644 index 0000000..8fe3225 --- /dev/null +++ b/bomblab/bomb_decompile.rep/user/~index.dat @@ -0,0 +1,5 @@ +VERSION=1 +/ + 00000000:udf_c0a82b469b8f17134149581882:c0a82b46af9f17465853183772 +NEXT-ID:1 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/bomblab/bomb_decompile.rep/user/~journal.bak b/bomblab/bomb_decompile.rep/user/~journal.bak new file mode 100644 index 0000000..8c53730 --- /dev/null +++ b/bomblab/bomb_decompile.rep/user/~journal.bak @@ -0,0 +1,2 @@ +IADD:00000000:/udf_c0a82b469b8f17134149581882 +IDSET:/udf_c0a82b469b8f17134149581882:c0a82b46af9f17465853183772 diff --git a/bomblab/bomb_decompile.rep/versioned/~index.bak b/bomblab/bomb_decompile.rep/versioned/~index.bak new file mode 100644 index 0000000..b1e697f --- /dev/null +++ b/bomblab/bomb_decompile.rep/versioned/~index.bak @@ -0,0 +1,4 @@ +VERSION=1 +/ +NEXT-ID:0 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/bomblab/bomb_decompile.rep/versioned/~index.dat b/bomblab/bomb_decompile.rep/versioned/~index.dat new file mode 100644 index 0000000..b1e697f --- /dev/null +++ b/bomblab/bomb_decompile.rep/versioned/~index.dat @@ -0,0 +1,4 @@ +VERSION=1 +/ +NEXT-ID:0 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/bomblab/bomb_linux b/bomblab/bomb_linux new file mode 100755 index 0000000..f2bcd25 Binary files /dev/null and b/bomblab/bomb_linux differ diff --git a/bomblab/phase_2_14.c b/bomblab/phase_2_14.c new file mode 100644 index 0000000..c126fc1 --- /dev/null +++ b/bomblab/phase_2_14.c @@ -0,0 +1,25 @@ + +void phase_2_14(undefined8 param_1) + +{ + int local_28 [7]; + int local_c; + + read_six_numbers(param_1,local_28); + GenerateRandomNumber(0x32); + if ((long)local_28[0] != rand_div + 0x10) { + explode_bomb(); + } + for (local_c = 0; local_c < 6; local_c = local_c + 1) { + if (local_28[local_c] < 0) { + explode_bomb(); + } + } + for (local_c = 1; local_c < 6; local_c = local_c + 1) { + if ((local_28[local_c + -1] < local_28[local_c]) || (local_28[local_c] < 1)) { + explode_bomb(); + } + } + return; +} + diff --git a/bomblab/strings_in_bomb.txt b/bomblab/strings_in_bomb.txt new file mode 100644 index 0000000..5601505 --- /dev/null +++ b/bomblab/strings_in_bomb.txt @@ -0,0 +1,200 @@ +/lib64/ld-linux-x86-64.so.2 +fgets +__libc_start_main +strcmp +atoi +fopen +memset +__ctype_b_loc +puts +strlen +getenv +sprintf +stdin +exit +__isoc99_sscanf +clock_gettime +libc.so.6 +GLIBC_2.3 +GLIBC_2.7 +GLIBC_2.17 +GLIBC_2.34 +GLIBC_2.2.5 +__gmon_start__ +PTE1 +2024 +============================ +.... +bomb_ +.txt +bomb_%s.txt +.... + 1 2 3 4 5 6 +...... +.... +%08lX +%08X +.... +...SOS... +%d %d +%d %c %d +%d %d %d %d %d %d +GRADE_BOMB +..... +:*3$" +GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 +crt1.o +__abi_tag +crtstuff.c +deregister_tm_clones +__do_global_dtors_aux +completed.0 +__do_global_dtors_aux_fini_array_entry +frame_dummy +__frame_dummy_init_array_entry +main.c +phase_impossible.c +phase1.c +phase2.c +phase3.c +phase4.c +support.c +__FRAME_END__ +_DYNAMIC +__GNU_EH_FRAME_HDR +_GLOBAL_OFFSET_TABLE_ +skip +getenv@GLIBC_2.2.5 +goto_buf_2 +__libc_start_main@GLIBC_2.34 +goto_buf_0 +phase_2_9 +phase_3_10 +phase_2_7 +phase_2_3 +phase_2_5 +phase_3_12 +puts@GLIBC_2.2.5 +phase_2_1 +phase_4_21 +phase_4_23 +stdin@GLIBC_2.2.5 +clock_gettime@GLIBC_2.17 +_edata +_fini +strlen@GLIBC_2.2.5 +phase_4_12 +phase_4_10 +phase_4_14 +num_input_strings +blank_line +rand1_l +rand1_h +phase_3 +phase_1 +memset@GLIBC_2.2.5 +phase_4_00 +phase_4_04 +phase_3_7 +phase_3_5 +phase_4_02 +phase_3_9 +GetTickCount +phase_3_3 +phase_2_13 +phase_2_15 +phase_2_11 +fgets@GLIBC_2.2.5 +explode_bomb +phase_3_1 +__data_start +strcmp@GLIBC_2.2.5 +phase_4_30 +phase_4_34 +phase_4_32 +__gmon_start__ +func4_2 +func4_0 +__dso_handle +_IO_stdin_used +goto_buf_1 +rand_div +result +__isoc99_sscanf@GLIBC_2.7 +phase_2_8 +phase_2_6 +phase_3_11 +phase_2_4 +phase_3_13 +_end +_dl_relocate_static_pie +phase_2_2 +phase_4_22 +phase_2_0 +phase_4_20 +phase_4_24 +infile +__bss_start +check_buf_valid +main +GenerateRandomString +read_line +phase_4_13 +phase_4_11 +phase_4 +fopen@GLIBC_2.2.5 +phase_2 +atoi@GLIBC_2.2.5 +phase_impossible +sprintf@GLIBC_2.2.5 +exit@GLIBC_2.2.5 +phase_3_8 +phase_4_03 +__TMC_END__ +phase_4_01 +phase_3_6 +phase_3_2 +phase_2_14 +phase_3_4 +phase_2_10 +phase_2_12 +phase_3_0 +GenerateRandomNumber +_init +phase_secret +read_six_numbers +phase_4_33 +phase_4_31 +func4_1 +tohex +func4_3 +__ctype_b_loc@GLIBC_2.3 +.symtab +.strtab +.shstrtab +.interp +.note.gnu.property +.note.gnu.build-id +.note.ABI-tag +.gnu.hash +.dynsym +.dynstr +.gnu.version +.gnu.version_r +.rela.dyn +.rela.plt +.init +.plt.sec +.text +.fini +.rodata +.eh_frame_hdr +.eh_frame +.init_array +.fini_array +.dynamic +.got +.got.plt +.data +.bss +.comment diff --git a/bomblab/计算机系统-实验2.pptx b/bomblab/计算机系统-实验2.pptx new file mode 100644 index 0000000..59b012b Binary files /dev/null and b/bomblab/计算机系统-实验2.pptx differ diff --git a/buflab/Readme.txt b/buflab/Readme.txt new file mode 100644 index 0000000..cc94717 --- /dev/null +++ b/buflab/Readme.txt @@ -0,0 +1,30 @@ +2017超级缓冲区炸弹 + +使用IDA Pro反汇编、调试bufbomb.exe文件。 + +你需要首先设置学号 +然后根据提示,输入一串特定的十六进制字符串,以便对bufbomb实现缓冲区溢出攻击。 + +例如: + + 2017超级缓冲区炸弹,欢迎你! +============================ +你的通行密码是0X8E371DDA +============================ +请输入攻击字符串(十六进制串):00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF + +鸟还活着! +不错哦,缓冲区溢出成功,而且getbuf返回0X8E371DDA + +恭喜你!你已经成功偷偷运行了第1只木马! +通过第1只木马测试 + +不错哦!第2只木马运行了,而且通行密码是正确的!(0X8E371DDA) +通过第2只木马测试 + +厉害!第3只木马运行了,而且你修改了全局变量正确!global_value = 0X8E371DDA +通过第3只木马测试 + +不错哦,缓冲区溢出成功,而且getbuf返回0X8E371DDA +厉害!第4只木马运行了,而且你修改了全局变量正确!global_value = 0X8E371DDA +通过第4只木马测试 diff --git a/buflab/bufbomb.asm b/buflab/bufbomb.asm new file mode 100644 index 0000000..6692fb6 --- /dev/null +++ b/buflab/bufbomb.asm @@ -0,0 +1,560 @@ + +bufbomb_linux: 文件格式 elf64-x86-64 + + +Disassembly of section .init: + +0000000000001000 <_init>: + 1000: f3 0f 1e fa endbr64 + 1004: 48 83 ec 08 sub $0x8,%rsp + 1008: 48 8b 05 c1 2f 00 00 mov 0x2fc1(%rip),%rax # 3fd0 <__gmon_start__@Base> + 100f: 48 85 c0 test %rax,%rax + 1012: 74 02 je 1016 <_init+0x16> + 1014: ff d0 call *%rax + 1016: 48 83 c4 08 add $0x8,%rsp + 101a: c3 ret + +Disassembly of section .plt: + +0000000000001020 : + 1020: ff 35 ca 2f 00 00 push 0x2fca(%rip) # 3ff0 <_GLOBAL_OFFSET_TABLE_+0x8> + 1026: ff 25 cc 2f 00 00 jmp *0x2fcc(%rip) # 3ff8 <_GLOBAL_OFFSET_TABLE_+0x10> + 102c: 0f 1f 40 00 nopl 0x0(%rax) + +0000000000001030 : + 1030: ff 25 ca 2f 00 00 jmp *0x2fca(%rip) # 4000 + 1036: 68 00 00 00 00 push $0x0 + 103b: e9 e0 ff ff ff jmp 1020 <_init+0x20> + +0000000000001040 <__stack_chk_fail@plt>: + 1040: ff 25 c2 2f 00 00 jmp *0x2fc2(%rip) # 4008 <__stack_chk_fail@GLIBC_2.4> + 1046: 68 01 00 00 00 push $0x1 + 104b: e9 d0 ff ff ff jmp 1020 <_init+0x20> + +0000000000001050 : + 1050: ff 25 ba 2f 00 00 jmp *0x2fba(%rip) # 4010 + 1056: 68 02 00 00 00 push $0x2 + 105b: e9 c0 ff ff ff jmp 1020 <_init+0x20> + +0000000000001060 : + 1060: ff 25 b2 2f 00 00 jmp *0x2fb2(%rip) # 4018 + 1066: 68 03 00 00 00 push $0x3 + 106b: e9 b0 ff ff ff jmp 1020 <_init+0x20> + +0000000000001070 : + 1070: ff 25 aa 2f 00 00 jmp *0x2faa(%rip) # 4020 + 1076: 68 04 00 00 00 push $0x4 + 107b: e9 a0 ff ff ff jmp 1020 <_init+0x20> + +0000000000001080 : + 1080: ff 25 a2 2f 00 00 jmp *0x2fa2(%rip) # 4028 + 1086: 68 05 00 00 00 push $0x5 + 108b: e9 90 ff ff ff jmp 1020 <_init+0x20> + +0000000000001090 <__ctype_b_loc@plt>: + 1090: ff 25 9a 2f 00 00 jmp *0x2f9a(%rip) # 4030 <__ctype_b_loc@GLIBC_2.3> + 1096: 68 06 00 00 00 push $0x6 + 109b: e9 80 ff ff ff jmp 1020 <_init+0x20> + +Disassembly of section .text: + +00000000000010a0 <_start>: + 10a0: f3 0f 1e fa endbr64 + 10a4: 31 ed xor %ebp,%ebp + 10a6: 49 89 d1 mov %rdx,%r9 + 10a9: 5e pop %rsi + 10aa: 48 89 e2 mov %rsp,%rdx + 10ad: 48 83 e4 f0 and $0xfffffffffffffff0,%rsp + 10b1: 50 push %rax + 10b2: 54 push %rsp + 10b3: 45 31 c0 xor %r8d,%r8d + 10b6: 31 c9 xor %ecx,%ecx + 10b8: 48 8d 3d 3a 05 00 00 lea 0x53a(%rip),%rdi # 15f9
+ 10bf: ff 15 fb 2e 00 00 call *0x2efb(%rip) # 3fc0 <__libc_start_main@GLIBC_2.34> + 10c5: f4 hlt + 10c6: 66 2e 0f 1f 84 00 00 cs nopw 0x0(%rax,%rax,1) + 10cd: 00 00 00 + 10d0: 48 8d 3d 79 2f 00 00 lea 0x2f79(%rip),%rdi # 4050 <__TMC_END__> + 10d7: 48 8d 05 72 2f 00 00 lea 0x2f72(%rip),%rax # 4050 <__TMC_END__> + 10de: 48 39 f8 cmp %rdi,%rax + 10e1: 74 1d je 1100 <_start+0x60> + 10e3: 48 8b 05 de 2e 00 00 mov 0x2ede(%rip),%rax # 3fc8 <_ITM_deregisterTMCloneTable@Base> + 10ea: 48 85 c0 test %rax,%rax + 10ed: 74 11 je 1100 <_start+0x60> + 10ef: ff e0 jmp *%rax + 10f1: 66 66 2e 0f 1f 84 00 data16 cs nopw 0x0(%rax,%rax,1) + 10f8: 00 00 00 00 + 10fc: 0f 1f 40 00 nopl 0x0(%rax) + 1100: c3 ret + 1101: 66 66 2e 0f 1f 84 00 data16 cs nopw 0x0(%rax,%rax,1) + 1108: 00 00 00 00 + 110c: 0f 1f 40 00 nopl 0x0(%rax) + 1110: 48 8d 3d 39 2f 00 00 lea 0x2f39(%rip),%rdi # 4050 <__TMC_END__> + 1117: 48 8d 35 32 2f 00 00 lea 0x2f32(%rip),%rsi # 4050 <__TMC_END__> + 111e: 48 29 fe sub %rdi,%rsi + 1121: 48 89 f0 mov %rsi,%rax + 1124: 48 c1 f8 03 sar $0x3,%rax + 1128: 48 c1 ee 3f shr $0x3f,%rsi + 112c: 48 01 c6 add %rax,%rsi + 112f: 48 d1 fe sar $1,%rsi + 1132: 74 1c je 1150 <_start+0xb0> + 1134: 48 8b 05 9d 2e 00 00 mov 0x2e9d(%rip),%rax # 3fd8 <_ITM_registerTMCloneTable@Base> + 113b: 48 85 c0 test %rax,%rax + 113e: 74 10 je 1150 <_start+0xb0> + 1140: ff e0 jmp *%rax + 1142: 66 66 2e 0f 1f 84 00 data16 cs nopw 0x0(%rax,%rax,1) + 1149: 00 00 00 00 + 114d: 0f 1f 00 nopl (%rax) + 1150: c3 ret + 1151: 66 66 2e 0f 1f 84 00 data16 cs nopw 0x0(%rax,%rax,1) + 1158: 00 00 00 00 + 115c: 0f 1f 40 00 nopl 0x0(%rax) + 1160: f3 0f 1e fa endbr64 + 1164: 80 3d e5 2e 00 00 00 cmpb $0x0,0x2ee5(%rip) # 4050 <__TMC_END__> + 116b: 75 33 jne 11a0 <_start+0x100> + 116d: 48 83 3d 6b 2e 00 00 cmpq $0x0,0x2e6b(%rip) # 3fe0 <__cxa_finalize@GLIBC_2.2.5> + 1174: 00 + 1175: 55 push %rbp + 1176: 48 89 e5 mov %rsp,%rbp + 1179: 74 0d je 1188 <_start+0xe8> + 117b: 48 8b 3d be 2e 00 00 mov 0x2ebe(%rip),%rdi # 4040 <__dso_handle> + 1182: ff 15 58 2e 00 00 call *0x2e58(%rip) # 3fe0 <__cxa_finalize@GLIBC_2.2.5> + 1188: e8 43 ff ff ff call 10d0 <_start+0x30> + 118d: 5d pop %rbp + 118e: c6 05 bb 2e 00 00 01 movb $0x1,0x2ebb(%rip) # 4050 <__TMC_END__> + 1195: c3 ret + 1196: 66 2e 0f 1f 84 00 00 cs nopw 0x0(%rax,%rax,1) + 119d: 00 00 00 + 11a0: c3 ret + 11a1: 66 66 2e 0f 1f 84 00 data16 cs nopw 0x0(%rax,%rax,1) + 11a8: 00 00 00 00 + 11ac: 0f 1f 40 00 nopl 0x0(%rax) + 11b0: f3 0f 1e fa endbr64 + 11b4: e9 57 ff ff ff jmp 1110 <_start+0x70> + +00000000000011b9 : + 11b9: 55 push %rbp + 11ba: 48 89 e5 mov %rsp,%rbp + 11bd: 48 89 7d e8 mov %rdi,-0x18(%rbp) + 11c1: 48 8b 05 90 2e 00 00 mov 0x2e90(%rip),%rax # 4058 + 11c8: 48 89 45 f8 mov %rax,-0x8(%rbp) + 11cc: 48 8b 45 f8 mov -0x8(%rbp),%rax + 11d0: 48 69 c0 c5 90 c6 6a imul $0x6ac690c5,%rax,%rax + 11d7: 48 89 45 f8 mov %rax,-0x8(%rbp) + 11db: 48 8b 55 f8 mov -0x8(%rbp),%rdx + 11df: 48 8b 05 7a 2e 00 00 mov 0x2e7a(%rip),%rax # 4060 + 11e6: 48 01 d0 add %rdx,%rax + 11e9: 48 89 45 f8 mov %rax,-0x8(%rbp) + 11ed: 48 8b 45 f8 mov -0x8(%rbp),%rax + 11f1: 48 89 05 60 2e 00 00 mov %rax,0x2e60(%rip) # 4058 + 11f8: 48 8b 45 f8 mov -0x8(%rbp),%rax + 11fc: 48 c1 f8 20 sar $0x20,%rax + 1200: 48 89 05 59 2e 00 00 mov %rax,0x2e59(%rip) # 4060 + 1207: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) + 120c: 74 1c je 122a + 120e: 48 8b 05 43 2e 00 00 mov 0x2e43(%rip),%rax # 4058 + 1215: ba 00 00 00 00 mov $0x0,%edx + 121a: 48 f7 75 e8 divq -0x18(%rbp) + 121e: 48 89 d0 mov %rdx,%rax + 1221: 48 89 05 40 2e 00 00 mov %rax,0x2e40(%rip) # 4068 + 1228: eb 01 jmp 122b + 122a: 90 nop + 122b: 5d pop %rbp + 122c: c3 ret + +000000000000122d : + 122d: 55 push %rbp + 122e: 48 89 e5 mov %rsp,%rbp + 1231: 48 83 ec 30 sub $0x30,%rsp + 1235: 48 89 7d d8 mov %rdi,-0x28(%rbp) + 1239: c7 45 e8 01 00 00 00 movl $0x1,-0x18(%rbp) + 1240: c7 45 ec 00 00 00 00 movl $0x0,-0x14(%rbp) + 1247: 48 8b 45 d8 mov -0x28(%rbp),%rax + 124b: 48 89 45 f8 mov %rax,-0x8(%rbp) + 124f: e9 94 00 00 00 jmp 12e8 + 1254: e8 37 fe ff ff call 1090 <__ctype_b_loc@plt> + 1259: 48 8b 00 mov (%rax),%rax + 125c: 8b 55 f4 mov -0xc(%rbp),%edx + 125f: 48 63 d2 movslq %edx,%rdx + 1262: 48 01 d2 add %rdx,%rdx + 1265: 48 01 d0 add %rdx,%rax + 1268: 0f b7 00 movzwl (%rax),%eax + 126b: 0f b7 c0 movzwl %ax,%eax + 126e: 25 00 10 00 00 and $0x1000,%eax + 1273: 85 c0 test %eax,%eax + 1275: 74 71 je 12e8 + 1277: 83 7d f4 2f cmpl $0x2f,-0xc(%rbp) + 127b: 7e 11 jle 128e + 127d: 83 7d f4 39 cmpl $0x39,-0xc(%rbp) + 1281: 7f 0b jg 128e + 1283: 8b 45 f4 mov -0xc(%rbp),%eax + 1286: 83 e8 30 sub $0x30,%eax + 1289: 89 45 f0 mov %eax,-0x10(%rbp) + 128c: eb 20 jmp 12ae + 128e: 83 7d f4 40 cmpl $0x40,-0xc(%rbp) + 1292: 7e 11 jle 12a5 + 1294: 83 7d f4 46 cmpl $0x46,-0xc(%rbp) + 1298: 7f 0b jg 12a5 + 129a: 8b 45 f4 mov -0xc(%rbp),%eax + 129d: 83 e8 37 sub $0x37,%eax + 12a0: 89 45 f0 mov %eax,-0x10(%rbp) + 12a3: eb 09 jmp 12ae + 12a5: 8b 45 f4 mov -0xc(%rbp),%eax + 12a8: 83 e8 57 sub $0x57,%eax + 12ab: 89 45 f0 mov %eax,-0x10(%rbp) + 12ae: 83 7d e8 00 cmpl $0x0,-0x18(%rbp) + 12b2: 74 0f je 12c3 + 12b4: 8b 45 f0 mov -0x10(%rbp),%eax + 12b7: 89 45 ec mov %eax,-0x14(%rbp) + 12ba: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%rbp) + 12c1: eb 25 jmp 12e8 + 12c3: 8b 45 ec mov -0x14(%rbp),%eax + 12c6: c1 e0 04 shl $0x4,%eax + 12c9: 89 c2 mov %eax,%edx + 12cb: 8b 45 f0 mov -0x10(%rbp),%eax + 12ce: 8d 0c 02 lea (%rdx,%rax,1),%ecx + 12d1: 48 8b 45 f8 mov -0x8(%rbp),%rax + 12d5: 48 8d 50 01 lea 0x1(%rax),%rdx + 12d9: 48 89 55 f8 mov %rdx,-0x8(%rbp) + 12dd: 89 ca mov %ecx,%edx + 12df: 88 10 mov %dl,(%rax) + 12e1: c7 45 e8 01 00 00 00 movl $0x1,-0x18(%rbp) + 12e8: e8 73 fd ff ff call 1060 + 12ed: 89 45 f4 mov %eax,-0xc(%rbp) + 12f0: 83 7d f4 ff cmpl $0xffffffff,-0xc(%rbp) + 12f4: 74 10 je 1306 + 12f6: 83 7d f4 0a cmpl $0xa,-0xc(%rbp) + 12fa: 74 0a je 1306 + 12fc: 83 7d f4 0d cmpl $0xd,-0xc(%rbp) + 1300: 0f 85 4e ff ff ff jne 1254 + 1306: 48 8b 45 f8 mov -0x8(%rbp),%rax + 130a: 48 8d 50 01 lea 0x1(%rax),%rdx + 130e: 48 89 55 f8 mov %rdx,-0x8(%rbp) + 1312: c6 00 00 movb $0x0,(%rax) + 1315: 48 8b 45 d8 mov -0x28(%rbp),%rax + 1319: c9 leave + 131a: c3 ret + +000000000000131b : + 131b: 55 push %rbp + 131c: 48 89 e5 mov %rsp,%rbp + 131f: 48 83 ec 20 sub $0x20,%rsp + 1323: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax + 132a: 00 00 + 132c: 48 89 45 f8 mov %rax,-0x8(%rbp) + 1330: 31 c0 xor %eax,%eax + 1332: 48 8d 45 ec lea -0x14(%rbp),%rax + 1336: 48 89 c7 mov %rax,%rdi + 1339: e8 ef fe ff ff call 122d + 133e: b8 01 00 00 00 mov $0x1,%eax + 1343: 48 8b 55 f8 mov -0x8(%rbp),%rdx + 1347: 64 48 2b 14 25 28 00 sub %fs:0x28,%rdx + 134e: 00 00 + 1350: 74 05 je 1357 + 1352: e8 e9 fc ff ff call 1040 <__stack_chk_fail@plt> + 1357: c9 leave + 1358: c3 ret + +0000000000001359 : + 1359: 55 push %rbp + 135a: 48 89 e5 mov %rsp,%rbp + 135d: 48 83 ec 20 sub $0x20,%rsp + 1361: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax + 1368: 00 00 + 136a: 48 89 45 f8 mov %rax,-0x8(%rbp) + 136e: 31 c0 xor %eax,%eax + 1370: c7 45 e8 ef be ad de movl $0xdeadbeef,-0x18(%rbp) + 1377: bf 17 00 00 00 mov $0x17,%edi + 137c: e8 38 fe ff ff call 11b9 + 1381: 48 8b 05 e0 2c 00 00 mov 0x2ce0(%rip),%rax # 4068 + 1388: 48 83 c0 01 add $0x1,%rax + 138c: 48 8d 50 08 lea 0x8(%rax),%rdx + 1390: b8 10 00 00 00 mov $0x10,%eax + 1395: 48 83 e8 01 sub $0x1,%rax + 1399: 48 01 d0 add %rdx,%rax + 139c: b9 10 00 00 00 mov $0x10,%ecx + 13a1: ba 00 00 00 00 mov $0x0,%edx + 13a6: 48 f7 f1 div %rcx + 13a9: 48 6b c0 10 imul $0x10,%rax,%rax + 13ad: 48 29 c4 sub %rax,%rsp + 13b0: 48 89 e0 mov %rsp,%rax + 13b3: 48 83 c0 0f add $0xf,%rax + 13b7: 48 c1 e8 04 shr $0x4,%rax + 13bb: 48 c1 e0 04 shl $0x4,%rax + 13bf: 48 89 45 f0 mov %rax,-0x10(%rbp) + 13c3: 48 8b 45 f0 mov -0x10(%rbp),%rax + 13c7: c6 00 6c movb $0x6c,(%rax) + 13ca: e8 4c ff ff ff call 131b + 13cf: 89 45 ec mov %eax,-0x14(%rbp) + 13d2: 8b 45 e8 mov -0x18(%rbp),%eax + 13d5: 3d ef be ad de cmp $0xdeadbeef,%eax + 13da: 75 11 jne 13ed + 13dc: 48 8d 05 25 0c 00 00 lea 0xc25(%rip),%rax # 2008 <_IO_stdin_used+0x8> + 13e3: 48 89 c7 mov %rax,%rdi + 13e6: e8 45 fc ff ff call 1030 + 13eb: eb 0f jmp 13fc + 13ed: 48 8d 05 24 0c 00 00 lea 0xc24(%rip),%rax # 2018 <_IO_stdin_used+0x18> + 13f4: 48 89 c7 mov %rax,%rdi + 13f7: e8 34 fc ff ff call 1030 + 13fc: 8b 05 46 2c 00 00 mov 0x2c46(%rip),%eax # 4048 + 1402: 39 45 ec cmp %eax,-0x14(%rbp) + 1405: 75 1b jne 1422 + 1407: 8b 45 ec mov -0x14(%rbp),%eax + 140a: 89 c6 mov %eax,%esi + 140c: 48 8d 05 3d 0c 00 00 lea 0xc3d(%rip),%rax # 2050 <_IO_stdin_used+0x50> + 1413: 48 89 c7 mov %rax,%rdi + 1416: b8 00 00 00 00 mov $0x0,%eax + 141b: e8 30 fc ff ff call 1050 + 1420: eb 30 jmp 1452 + 1422: 83 7d ec 01 cmpl $0x1,-0x14(%rbp) + 1426: 75 11 jne 1439 + 1428: 48 8d 05 61 0c 00 00 lea 0xc61(%rip),%rax # 2090 <_IO_stdin_used+0x90> + 142f: 48 89 c7 mov %rax,%rdi + 1432: e8 f9 fb ff ff call 1030 + 1437: eb 19 jmp 1452 + 1439: 8b 45 ec mov -0x14(%rbp),%eax + 143c: 89 c6 mov %eax,%esi + 143e: 48 8d 05 83 0c 00 00 lea 0xc83(%rip),%rax # 20c8 <_IO_stdin_used+0xc8> + 1445: 48 89 c7 mov %rax,%rdi + 1448: b8 00 00 00 00 mov $0x0,%eax + 144d: e8 fe fb ff ff call 1050 + 1452: 90 nop + 1453: 48 8b 45 f8 mov -0x8(%rbp),%rax + 1457: 64 48 2b 04 25 28 00 sub %fs:0x28,%rax + 145e: 00 00 + 1460: 74 05 je 1467 + 1462: e8 d9 fb ff ff call 1040 <__stack_chk_fail@plt> + 1467: c9 leave + 1468: c3 ret + +0000000000001469 : + 1469: 55 push %rbp + 146a: 48 89 e5 mov %rsp,%rbp + 146d: 48 8d 05 9c 0c 00 00 lea 0xc9c(%rip),%rax # 2110 <_IO_stdin_used+0x110> + 1474: 48 89 c7 mov %rax,%rdi + 1477: e8 b4 fb ff ff call 1030 + 147c: 48 8d 05 c6 0c 00 00 lea 0xcc6(%rip),%rax # 2149 <_IO_stdin_used+0x149> + 1483: 48 89 c7 mov %rax,%rdi + 1486: e8 a5 fb ff ff call 1030 + 148b: bf 00 00 00 00 mov $0x0,%edi + 1490: e8 eb fb ff ff call 1080 + +0000000000001495 : + 1495: 55 push %rbp + 1496: 48 89 e5 mov %rsp,%rbp + 1499: 48 83 ec 10 sub $0x10,%rsp + 149d: 89 7d fc mov %edi,-0x4(%rbp) + 14a0: 8b 05 a2 2b 00 00 mov 0x2ba2(%rip),%eax # 4048 + 14a6: 39 45 fc cmp %eax,-0x4(%rbp) + 14a9: 75 1b jne 14c6 + 14ab: 8b 45 fc mov -0x4(%rbp),%eax + 14ae: 89 c6 mov %eax,%esi + 14b0: 48 8d 05 b1 0c 00 00 lea 0xcb1(%rip),%rax # 2168 <_IO_stdin_used+0x168> + 14b7: 48 89 c7 mov %rax,%rdi + 14ba: b8 00 00 00 00 mov $0x0,%eax + 14bf: e8 8c fb ff ff call 1050 + 14c4: eb 19 jmp 14df + 14c6: 8b 45 fc mov -0x4(%rbp),%eax + 14c9: 89 c6 mov %eax,%esi + 14cb: 48 8d 05 e6 0c 00 00 lea 0xce6(%rip),%rax # 21b8 <_IO_stdin_used+0x1b8> + 14d2: 48 89 c7 mov %rax,%rdi + 14d5: b8 00 00 00 00 mov $0x0,%eax + 14da: e8 71 fb ff ff call 1050 + 14df: 8b 05 63 2b 00 00 mov 0x2b63(%rip),%eax # 4048 + 14e5: 39 45 fc cmp %eax,-0x4(%rbp) + 14e8: 75 0f jne 14f9 + 14ea: 48 8d 05 23 0d 00 00 lea 0xd23(%rip),%rax # 2214 <_IO_stdin_used+0x214> + 14f1: 48 89 c7 mov %rax,%rdi + 14f4: e8 37 fb ff ff call 1030 + 14f9: bf 00 00 00 00 mov $0x0,%edi + 14fe: e8 7d fb ff ff call 1080 + +0000000000001503 : + 1503: 55 push %rbp + 1504: 48 89 e5 mov %rsp,%rbp + 1507: 48 83 ec 10 sub $0x10,%rsp + 150b: 89 7d fc mov %edi,-0x4(%rbp) + 150e: 8b 15 5c 2b 00 00 mov 0x2b5c(%rip),%edx # 4070 + 1514: 8b 05 2e 2b 00 00 mov 0x2b2e(%rip),%eax # 4048 + 151a: 39 c2 cmp %eax,%edx + 151c: 75 1e jne 153c + 151e: 8b 05 4c 2b 00 00 mov 0x2b4c(%rip),%eax # 4070 + 1524: 89 c6 mov %eax,%esi + 1526: 48 8d 05 03 0d 00 00 lea 0xd03(%rip),%rax # 2230 <_IO_stdin_used+0x230> + 152d: 48 89 c7 mov %rax,%rdi + 1530: b8 00 00 00 00 mov $0x0,%eax + 1535: e8 16 fb ff ff call 1050 + 153a: eb 1c jmp 1558 + 153c: 8b 05 2e 2b 00 00 mov 0x2b2e(%rip),%eax # 4070 + 1542: 89 c6 mov %eax,%esi + 1544: 48 8d 05 45 0d 00 00 lea 0xd45(%rip),%rax # 2290 <_IO_stdin_used+0x290> + 154b: 48 89 c7 mov %rax,%rdi + 154e: b8 00 00 00 00 mov $0x0,%eax + 1553: e8 f8 fa ff ff call 1050 + 1558: 8b 15 12 2b 00 00 mov 0x2b12(%rip),%edx # 4070 + 155e: 8b 05 e4 2a 00 00 mov 0x2ae4(%rip),%eax # 4048 + 1564: 39 c2 cmp %eax,%edx + 1566: 75 0f jne 1577 + 1568: 48 8d 05 7e 0d 00 00 lea 0xd7e(%rip),%rax # 22ed <_IO_stdin_used+0x2ed> + 156f: 48 89 c7 mov %rax,%rdi + 1572: e8 b9 fa ff ff call 1030 + 1577: bf 00 00 00 00 mov $0x0,%edi + 157c: e8 ff fa ff ff call 1080 + +0000000000001581 : + 1581: 55 push %rbp + 1582: 48 89 e5 mov %rsp,%rbp + 1585: 48 83 ec 10 sub $0x10,%rsp + 1589: 89 7d fc mov %edi,-0x4(%rbp) + 158c: 8b 15 de 2a 00 00 mov 0x2ade(%rip),%edx # 4070 + 1592: 8b 05 b0 2a 00 00 mov 0x2ab0(%rip),%eax # 4048 + 1598: 39 c2 cmp %eax,%edx + 159a: 75 1e jne 15ba + 159c: 8b 05 ce 2a 00 00 mov 0x2ace(%rip),%eax # 4070 + 15a2: 89 c6 mov %eax,%esi + 15a4: 48 8d 05 5d 0d 00 00 lea 0xd5d(%rip),%rax # 2308 <_IO_stdin_used+0x308> + 15ab: 48 89 c7 mov %rax,%rdi + 15ae: b8 00 00 00 00 mov $0x0,%eax + 15b3: e8 98 fa ff ff call 1050 + 15b8: eb 1c jmp 15d6 + 15ba: 8b 05 b0 2a 00 00 mov 0x2ab0(%rip),%eax # 4070 + 15c0: 89 c6 mov %eax,%esi + 15c2: 48 8d 05 9f 0d 00 00 lea 0xd9f(%rip),%rax # 2368 <_IO_stdin_used+0x368> + 15c9: 48 89 c7 mov %rax,%rdi + 15cc: b8 00 00 00 00 mov $0x0,%eax + 15d1: e8 7a fa ff ff call 1050 + 15d6: 8b 15 94 2a 00 00 mov 0x2a94(%rip),%edx # 4070 + 15dc: 8b 05 66 2a 00 00 mov 0x2a66(%rip),%eax # 4048 + 15e2: 39 c2 cmp %eax,%edx + 15e4: 75 10 jne 15f6 + 15e6: 48 8d 05 d2 0d 00 00 lea 0xdd2(%rip),%rax # 23bf <_IO_stdin_used+0x3bf> + 15ed: 48 89 c7 mov %rax,%rdi + 15f0: e8 3b fa ff ff call 1030 + 15f5: 90 nop + 15f6: 90 nop + 15f7: c9 leave + 15f8: c3 ret + +00000000000015f9
: + 15f9: 55 push %rbp + 15fa: 48 89 e5 mov %rsp,%rbp + 15fd: 48 83 ec 30 sub $0x30,%rsp + 1601: 89 7d dc mov %edi,-0x24(%rbp) + 1604: 48 89 75 d0 mov %rsi,-0x30(%rbp) + 1608: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax + 160f: 00 00 + 1611: 48 89 45 f8 mov %rax,-0x8(%rbp) + 1615: 31 c0 xor %eax,%eax + 1617: 48 8d 05 c2 0d 00 00 lea 0xdc2(%rip),%rax # 23e0 <_IO_stdin_used+0x3e0> + 161e: 48 89 c7 mov %rax,%rdi + 1621: e8 0a fa ff ff call 1030 + 1626: 48 8d 05 dd 0d 00 00 lea 0xddd(%rip),%rax # 240a <_IO_stdin_used+0x40a> + 162d: 48 89 c7 mov %rax,%rdi + 1630: e8 fb f9 ff ff call 1030 + 1635: 83 7d dc 01 cmpl $0x1,-0x24(%rbp) + 1639: 75 46 jne 1681 + 163b: 48 8b 45 d0 mov -0x30(%rbp),%rax + 163f: 48 8b 00 mov (%rax),%rax + 1642: 48 89 c6 mov %rax,%rsi + 1645: 48 8d 05 dc 0d 00 00 lea 0xddc(%rip),%rax # 2428 <_IO_stdin_used+0x428> + 164c: 48 89 c7 mov %rax,%rdi + 164f: b8 00 00 00 00 mov $0x0,%eax + 1654: e8 f7 f9 ff ff call 1050 + 1659: 48 8d 05 10 0e 00 00 lea 0xe10(%rip),%rax # 2470 <_IO_stdin_used+0x470> + 1660: 48 89 c7 mov %rax,%rdi + 1663: e8 c8 f9 ff ff call 1030 + 1668: 48 8d 05 59 0e 00 00 lea 0xe59(%rip),%rax # 24c8 <_IO_stdin_used+0x4c8> + 166f: 48 89 c7 mov %rax,%rdi + 1672: e8 b9 f9 ff ff call 1030 + 1677: b8 00 00 00 00 mov $0x0,%eax + 167c: e9 43 01 00 00 jmp 17c4 + 1681: 48 8b 45 d0 mov -0x30(%rbp),%rax + 1685: 48 83 c0 08 add $0x8,%rax + 1689: 48 8b 00 mov (%rax),%rax + 168c: 48 89 c6 mov %rax,%rsi + 168f: 48 8d 05 7a 0e 00 00 lea 0xe7a(%rip),%rax # 2510 <_IO_stdin_used+0x510> + 1696: 48 89 c7 mov %rax,%rdi + 1699: b8 00 00 00 00 mov $0x0,%eax + 169e: e8 ad f9 ff ff call 1050 + 16a3: 48 8b 45 d0 mov -0x30(%rbp),%rax + 16a7: 48 83 c0 08 add $0x8,%rax + 16ab: 48 8b 00 mov (%rax),%rax + 16ae: 48 89 c7 mov %rax,%rdi + 16b1: e8 ba f9 ff ff call 1070 + 16b6: 48 98 cltq + 16b8: 48 89 05 99 29 00 00 mov %rax,0x2999(%rip) # 4058 + 16bf: 48 c7 05 96 29 00 00 movq $0x29a,0x2996(%rip) # 4060 + 16c6: 9a 02 00 00 + 16ca: bf 00 00 00 00 mov $0x0,%edi + 16cf: e8 e5 fa ff ff call 11b9 + 16d4: c7 45 ec 02 00 00 00 movl $0x2,-0x14(%rbp) + 16db: eb 36 jmp 1713 + 16dd: 8b 45 ec mov -0x14(%rbp),%eax + 16e0: 48 98 cltq + 16e2: 48 8d 14 c5 00 00 00 lea 0x0(,%rax,8),%rdx + 16e9: 00 + 16ea: 48 8b 45 d0 mov -0x30(%rbp),%rax + 16ee: 48 01 d0 add %rdx,%rax + 16f1: 48 8b 00 mov (%rax),%rax + 16f4: 48 89 c7 mov %rax,%rdi + 16f7: e8 74 f9 ff ff call 1070 + 16fc: 48 98 cltq + 16fe: 48 89 05 5b 29 00 00 mov %rax,0x295b(%rip) # 4060 + 1705: bf 00 00 00 00 mov $0x0,%edi + 170a: e8 aa fa ff ff call 11b9 + 170f: 83 45 ec 01 addl $0x1,-0x14(%rbp) + 1713: 8b 45 ec mov -0x14(%rbp),%eax + 1716: 3b 45 dc cmp -0x24(%rbp),%eax + 1719: 7c c2 jl 16dd + 171b: 48 8b 05 36 29 00 00 mov 0x2936(%rip),%rax # 4058 + 1722: 89 05 20 29 00 00 mov %eax,0x2920(%rip) # 4048 + 1728: 8b 05 1a 29 00 00 mov 0x291a(%rip),%eax # 4048 + 172e: 89 c6 mov %eax,%esi + 1730: 48 8d 05 f7 0d 00 00 lea 0xdf7(%rip),%rax # 252e <_IO_stdin_used+0x52e> + 1737: 48 89 c7 mov %rax,%rdi + 173a: b8 00 00 00 00 mov $0x0,%eax + 173f: e8 0c f9 ff ff call 1050 + 1744: 48 8d 05 bf 0c 00 00 lea 0xcbf(%rip),%rax # 240a <_IO_stdin_used+0x40a> + 174b: 48 89 c7 mov %rax,%rdi + 174e: e8 dd f8 ff ff call 1030 + 1753: 48 8d 05 f6 0d 00 00 lea 0xdf6(%rip),%rax # 2550 <_IO_stdin_used+0x550> + 175a: 48 89 c7 mov %rax,%rdi + 175d: b8 00 00 00 00 mov $0x0,%eax + 1762: e8 e9 f8 ff ff call 1050 + 1767: bf 00 02 00 00 mov $0x200,%edi + 176c: e8 48 fa ff ff call 11b9 + 1771: 48 8b 05 f0 28 00 00 mov 0x28f0(%rip),%rax # 4068 + 1778: 48 83 c0 01 add $0x1,%rax + 177c: 48 8d 50 08 lea 0x8(%rax),%rdx + 1780: b8 10 00 00 00 mov $0x10,%eax + 1785: 48 83 e8 01 sub $0x1,%rax + 1789: 48 01 d0 add %rdx,%rax + 178c: b9 10 00 00 00 mov $0x10,%ecx + 1791: ba 00 00 00 00 mov $0x0,%edx + 1796: 48 f7 f1 div %rcx + 1799: 48 6b c0 10 imul $0x10,%rax,%rax + 179d: 48 29 c4 sub %rax,%rsp + 17a0: 48 89 e0 mov %rsp,%rax + 17a3: 48 83 c0 0f add $0xf,%rax + 17a7: 48 c1 e8 04 shr $0x4,%rax + 17ab: 48 c1 e0 04 shl $0x4,%rax + 17af: 48 89 45 f0 mov %rax,-0x10(%rbp) + 17b3: 48 8b 45 f0 mov -0x10(%rbp),%rax + 17b7: c6 00 68 movb $0x68,(%rax) + 17ba: e8 9a fb ff ff call 1359 + 17bf: b8 00 00 00 00 mov $0x0,%eax + 17c4: 48 8b 55 f8 mov -0x8(%rbp),%rdx + 17c8: 64 48 2b 14 25 28 00 sub %fs:0x28,%rdx + 17cf: 00 00 + 17d1: 74 05 je 17d8 + 17d3: e8 68 f8 ff ff call 1040 <__stack_chk_fail@plt> + 17d8: c9 leave + 17d9: c3 ret + +Disassembly of section .fini: + +00000000000017dc <_fini>: + 17dc: f3 0f 1e fa endbr64 + 17e0: 48 83 ec 08 sub $0x8,%rsp + 17e4: 48 83 c4 08 add $0x8,%rsp + 17e8: c3 ret diff --git a/buflab/bufbomb.c b/buflab/bufbomb.c new file mode 100644 index 0000000..7d9ebb1 --- /dev/null +++ b/buflab/bufbomb.c @@ -0,0 +1,200 @@ +#include +#include +#include + +#ifdef __linux__ +#define _alloca alloca +#endif + +int getbuf(void); +void test(void); + +int cookie=0x11223344; +unsigned long rand1_h,rand1_l,rand_div; + +/* 产生一个0~divv-1之间的随机数,同时更新随机数种子 */ +void GenerateRandomNumber(unsigned long divv) +{ + long long x = rand1_h; + x *= 0x6AC690C5; + x += rand1_l; + + rand1_h = (unsigned long)x; + rand1_l = (unsigned long)(x>>32); + if (divv==0) return; + + rand_div = rand1_h % divv; +} + +/* 输入16进制字符串,并转换为对应的字符串,以\0结束 */ +char*getxs(char*dest) +{ + int c; + int even =1; /* Have read even number of digits */ + int otherd =0; /* Other hex digit of pair */ + char*sp = dest; + while ((c = getchar()) != EOF && c !='\n' && c != '\r') { + if (isxdigit(c)) { + int val; + if ('0'<= c && c <='9') + val = c -'0'; + else if ('A'<= c && c <='F') + val = c -'A'+10; + else + val = c -'a'+10; + if (even) { + otherd = val; + even =0; + } + else { + *sp++= otherd *16+ val; + even =1; + } + } + } + *sp++='\0'; + return dest; +} + +/* 获取一行输入字符串 */ +int getbuf(void) +{ + char buf[12]; + getxs(buf); + return 1; +} + +/* 主测试程序 */ +void test(void) +{ + int val; + char *localbuf; + volatile int bird = 0xdeadbeef; //金丝雀保护机制 + GenerateRandomNumber(23); + localbuf = (char *)_alloca(rand_div+1); //在栈上分配随机空间 + localbuf[0] = 'l'; + + val = getbuf(); + /* 检测是否栈被破坏 */ + if (bird == 0xdeadbeef) { + printf("鸟还活着!\n"); + } + else + printf("不妙!鸟被杀死,栈已经被你破坏了!\n"); + + if (val == cookie) { + printf("不错哦,缓冲区溢出成功,而且getbuf返回 0X%08X\n", val); + } + else if (val == 1) { + printf("缓冲区没有溢出.....攻击失败,请重来吧\n"); + } + else { + printf("不对哦,虽然缓冲区溢出成功,但是getbuf返回 0X%08X\n", val); + } +} + +/* 第1只木马,只需要修改返回地址,即可进入 */ +void Trojan1(void) +{ + printf("恭喜你!你已经成功偷偷运行了第1只木马!\n"); + printf("通过第1只木马测试\n"); + exit(0); +} + +/* 第2只木马,不仅需要修改返回地址,而且要修改栈中返回的结果 */ +void Trojan2(int val) +{ + if (val == cookie) { + printf("不错哦!第2只木马运行了,而且通行密码是正确的!(0X%08X)\n", val); + } else + printf("需要加油!虽然第2只木马运行了,但是通行密码是不正确的!(0X%08X)\n", val); + if (val == cookie) + printf("通过第2只木马测试\n"); + exit(0); +} + +/* 第3只木马,本关任务是构造特定的机器代码放置在栈内,然后将返回地址置为该段特定代码的入口。此段代码负责将global_value设置为想要的cookie值 */ +/* 汇编指令程序: + MOV EAX,cookie + MOV global_val,EAX + PUSH Trojan3 + RET + + 0: a1 e4 c1 04 08 MOV EAX,0x804c1e4 + 5: a3 ec c1 04 08 MOV 0x804c1ec,EAX + a: 68 eb 8c 04 08 PUSH $0x8048ceb + f: c3 RET +*/ +int global_value = 0; +void Trojan3(int val) +{ + if (global_value == cookie) { + printf("厉害!第3只木马运行了,而且你修改了全局变量正确!global_value = 0X%08X\n", global_value); + } else + printf("差一点!第3只木马运行了,但是全局变量修改错误!global_value = 0X%08X\n", global_value); + if (global_value == cookie) + printf("通过第3只木马测试\n"); + exit(0); +} + +/* 第4只木马,本关任务是构造特定的机器代码放置在栈内,然后将返回地址置为该段特定代码的入口。此段代码负责将global_value设置为想要的cookie值,需要正常返回 */ +/* 汇编指令程序: + MOV EAX,cookie + MOV global_val,EAX + PUSH Trojan3 + RET + + 0: a1 e4 c1 04 08 MOV EAX,0x804c1e4 + 5: a3 ec c1 04 08 MOV 0x804c1ec,EAX + a: 68 eb 8c 04 08 PUSH $0x8048ceb + f: c3 RET +*/ +void Trojan4(int val) +{ + if (global_value == cookie) { + printf("厉害!第4只木马运行了,而且你修改了全局变量正确!global_value = 0X%08X\n", global_value); + } else + printf("差一点!第4只木马运行了,但是全局变量不对!global_value = 0X%08X\n", global_value); + if (global_value == cookie) + printf("通过第4只木马测试\n"); + return; // 正常返回,需要修复栈 +} + +/* 主程序,依据学号,随机生成cookie值 */ +int main(int argc, char *argv[]) +{ + int i; + char *MyRandomBuffer; + printf("\t2018超级缓冲区炸弹,欢迎你!\n"); + printf("============================\n"); + + if (argc == 1) + { + printf("使用方法:%s 学号后6位 [学号后6位] [学号后6位] ...\n",argv[0]); + printf("你需要输入攻击字符串,以便种入木马,一旦出错,哇哈哈....\n"); + printf("请以十六进制形式输入攻击字符串,例如00 aa bb cc等等\n"); + return 0; + } + + printf("欢迎你前来挑战! %s \n",argv[1]); + /*依据学号,初始化一个随机数发生器*/ + rand1_h = (unsigned long)atoi(argv[1]); + rand1_l=0x29A; + GenerateRandomNumber(0); + for (i=2;i: + 1000: f3 0f 1e fa endbr64 + 1004: 48 83 ec 08 sub $0x8,%rsp + 1008: 48 8b 05 c1 2f 00 00 mov 0x2fc1(%rip),%rax # 3fd0 <__gmon_start__@Base> + 100f: 48 85 c0 test %rax,%rax + 1012: 74 02 je 1016 <_init+0x16> + 1014: ff d0 call *%rax + 1016: 48 83 c4 08 add $0x8,%rsp + 101a: c3 ret + +Disassembly of section .plt: + +0000000000001020 : + 1020: ff 35 ca 2f 00 00 push 0x2fca(%rip) # 3ff0 <_GLOBAL_OFFSET_TABLE_+0x8> + 1026: ff 25 cc 2f 00 00 jmp *0x2fcc(%rip) # 3ff8 <_GLOBAL_OFFSET_TABLE_+0x10> + 102c: 0f 1f 40 00 nopl 0x0(%rax) + +0000000000001030 : + 1030: ff 25 ca 2f 00 00 jmp *0x2fca(%rip) # 4000 + 1036: 68 00 00 00 00 push $0x0 + 103b: e9 e0 ff ff ff jmp 1020 <_init+0x20> + +0000000000001040 <__stack_chk_fail@plt>: + 1040: ff 25 c2 2f 00 00 jmp *0x2fc2(%rip) # 4008 <__stack_chk_fail@GLIBC_2.4> + 1046: 68 01 00 00 00 push $0x1 + 104b: e9 d0 ff ff ff jmp 1020 <_init+0x20> + +0000000000001050 : + 1050: ff 25 ba 2f 00 00 jmp *0x2fba(%rip) # 4010 + 1056: 68 02 00 00 00 push $0x2 + 105b: e9 c0 ff ff ff jmp 1020 <_init+0x20> + +0000000000001060 : + 1060: ff 25 b2 2f 00 00 jmp *0x2fb2(%rip) # 4018 + 1066: 68 03 00 00 00 push $0x3 + 106b: e9 b0 ff ff ff jmp 1020 <_init+0x20> + +0000000000001070 : + 1070: ff 25 aa 2f 00 00 jmp *0x2faa(%rip) # 4020 + 1076: 68 04 00 00 00 push $0x4 + 107b: e9 a0 ff ff ff jmp 1020 <_init+0x20> + +0000000000001080 : + 1080: ff 25 a2 2f 00 00 jmp *0x2fa2(%rip) # 4028 + 1086: 68 05 00 00 00 push $0x5 + 108b: e9 90 ff ff ff jmp 1020 <_init+0x20> + +0000000000001090 <__ctype_b_loc@plt>: + 1090: ff 25 9a 2f 00 00 jmp *0x2f9a(%rip) # 4030 <__ctype_b_loc@GLIBC_2.3> + 1096: 68 06 00 00 00 push $0x6 + 109b: e9 80 ff ff ff jmp 1020 <_init+0x20> + +Disassembly of section .text: + +00000000000010a0 <_start>: + 10a0: f3 0f 1e fa endbr64 + 10a4: 31 ed xor %ebp,%ebp + 10a6: 49 89 d1 mov %rdx,%r9 + 10a9: 5e pop %rsi + 10aa: 48 89 e2 mov %rsp,%rdx + 10ad: 48 83 e4 f0 and $0xfffffffffffffff0,%rsp + 10b1: 50 push %rax + 10b2: 54 push %rsp + 10b3: 45 31 c0 xor %r8d,%r8d + 10b6: 31 c9 xor %ecx,%ecx + 10b8: 48 8d 3d 3a 05 00 00 lea 0x53a(%rip),%rdi # 15f9
+ 10bf: ff 15 fb 2e 00 00 call *0x2efb(%rip) # 3fc0 <__libc_start_main@GLIBC_2.34> + 10c5: f4 hlt + 10c6: 66 2e 0f 1f 84 00 00 cs nopw 0x0(%rax,%rax,1) + 10cd: 00 00 00 + 10d0: 48 8d 3d 79 2f 00 00 lea 0x2f79(%rip),%rdi # 4050 <__TMC_END__> + 10d7: 48 8d 05 72 2f 00 00 lea 0x2f72(%rip),%rax # 4050 <__TMC_END__> + 10de: 48 39 f8 cmp %rdi,%rax + 10e1: 74 1d je 1100 <_start+0x60> + 10e3: 48 8b 05 de 2e 00 00 mov 0x2ede(%rip),%rax # 3fc8 <_ITM_deregisterTMCloneTable@Base> + 10ea: 48 85 c0 test %rax,%rax + 10ed: 74 11 je 1100 <_start+0x60> + 10ef: ff e0 jmp *%rax + 10f1: 66 66 2e 0f 1f 84 00 data16 cs nopw 0x0(%rax,%rax,1) + 10f8: 00 00 00 00 + 10fc: 0f 1f 40 00 nopl 0x0(%rax) + 1100: c3 ret + 1101: 66 66 2e 0f 1f 84 00 data16 cs nopw 0x0(%rax,%rax,1) + 1108: 00 00 00 00 + 110c: 0f 1f 40 00 nopl 0x0(%rax) + 1110: 48 8d 3d 39 2f 00 00 lea 0x2f39(%rip),%rdi # 4050 <__TMC_END__> + 1117: 48 8d 35 32 2f 00 00 lea 0x2f32(%rip),%rsi # 4050 <__TMC_END__> + 111e: 48 29 fe sub %rdi,%rsi + 1121: 48 89 f0 mov %rsi,%rax + 1124: 48 c1 f8 03 sar $0x3,%rax + 1128: 48 c1 ee 3f shr $0x3f,%rsi + 112c: 48 01 c6 add %rax,%rsi + 112f: 48 d1 fe sar $1,%rsi + 1132: 74 1c je 1150 <_start+0xb0> + 1134: 48 8b 05 9d 2e 00 00 mov 0x2e9d(%rip),%rax # 3fd8 <_ITM_registerTMCloneTable@Base> + 113b: 48 85 c0 test %rax,%rax + 113e: 74 10 je 1150 <_start+0xb0> + 1140: ff e0 jmp *%rax + 1142: 66 66 2e 0f 1f 84 00 data16 cs nopw 0x0(%rax,%rax,1) + 1149: 00 00 00 00 + 114d: 0f 1f 00 nopl (%rax) + 1150: c3 ret + 1151: 66 66 2e 0f 1f 84 00 data16 cs nopw 0x0(%rax,%rax,1) + 1158: 00 00 00 00 + 115c: 0f 1f 40 00 nopl 0x0(%rax) + 1160: f3 0f 1e fa endbr64 + 1164: 80 3d e5 2e 00 00 00 cmpb $0x0,0x2ee5(%rip) # 4050 <__TMC_END__> + 116b: 75 33 jne 11a0 <_start+0x100> + 116d: 48 83 3d 6b 2e 00 00 cmpq $0x0,0x2e6b(%rip) # 3fe0 <__cxa_finalize@GLIBC_2.2.5> + 1174: 00 + 1175: 55 push %rbp + 1176: 48 89 e5 mov %rsp,%rbp + 1179: 74 0d je 1188 <_start+0xe8> + 117b: 48 8b 3d be 2e 00 00 mov 0x2ebe(%rip),%rdi # 4040 <__dso_handle> + 1182: ff 15 58 2e 00 00 call *0x2e58(%rip) # 3fe0 <__cxa_finalize@GLIBC_2.2.5> + 1188: e8 43 ff ff ff call 10d0 <_start+0x30> + 118d: 5d pop %rbp + 118e: c6 05 bb 2e 00 00 01 movb $0x1,0x2ebb(%rip) # 4050 <__TMC_END__> + 1195: c3 ret + 1196: 66 2e 0f 1f 84 00 00 cs nopw 0x0(%rax,%rax,1) + 119d: 00 00 00 + 11a0: c3 ret + 11a1: 66 66 2e 0f 1f 84 00 data16 cs nopw 0x0(%rax,%rax,1) + 11a8: 00 00 00 00 + 11ac: 0f 1f 40 00 nopl 0x0(%rax) + 11b0: f3 0f 1e fa endbr64 + 11b4: e9 57 ff ff ff jmp 1110 <_start+0x70> + +00000000000011b9 : + 11b9: 55 push %rbp + 11ba: 48 89 e5 mov %rsp,%rbp + 11bd: 48 89 7d e8 mov %rdi,-0x18(%rbp) + 11c1: 48 8b 05 90 2e 00 00 mov 0x2e90(%rip),%rax # 4058 + 11c8: 48 89 45 f8 mov %rax,-0x8(%rbp) + 11cc: 48 8b 45 f8 mov -0x8(%rbp),%rax + 11d0: 48 69 c0 c5 90 c6 6a imul $0x6ac690c5,%rax,%rax + 11d7: 48 89 45 f8 mov %rax,-0x8(%rbp) + 11db: 48 8b 55 f8 mov -0x8(%rbp),%rdx + 11df: 48 8b 05 7a 2e 00 00 mov 0x2e7a(%rip),%rax # 4060 + 11e6: 48 01 d0 add %rdx,%rax + 11e9: 48 89 45 f8 mov %rax,-0x8(%rbp) + 11ed: 48 8b 45 f8 mov -0x8(%rbp),%rax + 11f1: 48 89 05 60 2e 00 00 mov %rax,0x2e60(%rip) # 4058 + 11f8: 48 8b 45 f8 mov -0x8(%rbp),%rax + 11fc: 48 c1 f8 20 sar $0x20,%rax + 1200: 48 89 05 59 2e 00 00 mov %rax,0x2e59(%rip) # 4060 + 1207: 48 83 7d e8 00 cmpq $0x0,-0x18(%rbp) + 120c: 74 1c je 122a + 120e: 48 8b 05 43 2e 00 00 mov 0x2e43(%rip),%rax # 4058 + 1215: ba 00 00 00 00 mov $0x0,%edx + 121a: 48 f7 75 e8 divq -0x18(%rbp) + 121e: 48 89 d0 mov %rdx,%rax + 1221: 48 89 05 40 2e 00 00 mov %rax,0x2e40(%rip) # 4068 + 1228: eb 01 jmp 122b + 122a: 90 nop + 122b: 5d pop %rbp + 122c: c3 ret + +000000000000122d : + 122d: 55 push %rbp + 122e: 48 89 e5 mov %rsp,%rbp + 1231: 48 83 ec 30 sub $0x30,%rsp + 1235: 48 89 7d d8 mov %rdi,-0x28(%rbp) + 1239: c7 45 e8 01 00 00 00 movl $0x1,-0x18(%rbp) + 1240: c7 45 ec 00 00 00 00 movl $0x0,-0x14(%rbp) + 1247: 48 8b 45 d8 mov -0x28(%rbp),%rax + 124b: 48 89 45 f8 mov %rax,-0x8(%rbp) + 124f: e9 94 00 00 00 jmp 12e8 + 1254: e8 37 fe ff ff call 1090 <__ctype_b_loc@plt> + 1259: 48 8b 00 mov (%rax),%rax + 125c: 8b 55 f4 mov -0xc(%rbp),%edx + 125f: 48 63 d2 movslq %edx,%rdx + 1262: 48 01 d2 add %rdx,%rdx + 1265: 48 01 d0 add %rdx,%rax + 1268: 0f b7 00 movzwl (%rax),%eax + 126b: 0f b7 c0 movzwl %ax,%eax + 126e: 25 00 10 00 00 and $0x1000,%eax + 1273: 85 c0 test %eax,%eax + 1275: 74 71 je 12e8 + 1277: 83 7d f4 2f cmpl $0x2f,-0xc(%rbp) + 127b: 7e 11 jle 128e + 127d: 83 7d f4 39 cmpl $0x39,-0xc(%rbp) + 1281: 7f 0b jg 128e + 1283: 8b 45 f4 mov -0xc(%rbp),%eax + 1286: 83 e8 30 sub $0x30,%eax + 1289: 89 45 f0 mov %eax,-0x10(%rbp) + 128c: eb 20 jmp 12ae + 128e: 83 7d f4 40 cmpl $0x40,-0xc(%rbp) + 1292: 7e 11 jle 12a5 + 1294: 83 7d f4 46 cmpl $0x46,-0xc(%rbp) + 1298: 7f 0b jg 12a5 + 129a: 8b 45 f4 mov -0xc(%rbp),%eax + 129d: 83 e8 37 sub $0x37,%eax + 12a0: 89 45 f0 mov %eax,-0x10(%rbp) + 12a3: eb 09 jmp 12ae + 12a5: 8b 45 f4 mov -0xc(%rbp),%eax + 12a8: 83 e8 57 sub $0x57,%eax + 12ab: 89 45 f0 mov %eax,-0x10(%rbp) + 12ae: 83 7d e8 00 cmpl $0x0,-0x18(%rbp) + 12b2: 74 0f je 12c3 + 12b4: 8b 45 f0 mov -0x10(%rbp),%eax + 12b7: 89 45 ec mov %eax,-0x14(%rbp) + 12ba: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%rbp) + 12c1: eb 25 jmp 12e8 + 12c3: 8b 45 ec mov -0x14(%rbp),%eax + 12c6: c1 e0 04 shl $0x4,%eax + 12c9: 89 c2 mov %eax,%edx + 12cb: 8b 45 f0 mov -0x10(%rbp),%eax + 12ce: 8d 0c 02 lea (%rdx,%rax,1),%ecx + 12d1: 48 8b 45 f8 mov -0x8(%rbp),%rax + 12d5: 48 8d 50 01 lea 0x1(%rax),%rdx + 12d9: 48 89 55 f8 mov %rdx,-0x8(%rbp) + 12dd: 89 ca mov %ecx,%edx + 12df: 88 10 mov %dl,(%rax) + 12e1: c7 45 e8 01 00 00 00 movl $0x1,-0x18(%rbp) + 12e8: e8 73 fd ff ff call 1060 + 12ed: 89 45 f4 mov %eax,-0xc(%rbp) + 12f0: 83 7d f4 ff cmpl $0xffffffff,-0xc(%rbp) + 12f4: 74 10 je 1306 + 12f6: 83 7d f4 0a cmpl $0xa,-0xc(%rbp) + 12fa: 74 0a je 1306 + 12fc: 83 7d f4 0d cmpl $0xd,-0xc(%rbp) + 1300: 0f 85 4e ff ff ff jne 1254 + 1306: 48 8b 45 f8 mov -0x8(%rbp),%rax + 130a: 48 8d 50 01 lea 0x1(%rax),%rdx + 130e: 48 89 55 f8 mov %rdx,-0x8(%rbp) + 1312: c6 00 00 movb $0x0,(%rax) + 1315: 48 8b 45 d8 mov -0x28(%rbp),%rax + 1319: c9 leave + 131a: c3 ret + +000000000000131b : + 131b: 55 push %rbp + 131c: 48 89 e5 mov %rsp,%rbp + 131f: 48 83 ec 20 sub $0x20,%rsp + 1323: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax + 132a: 00 00 + 132c: 48 89 45 f8 mov %rax,-0x8(%rbp) + 1330: 31 c0 xor %eax,%eax + 1332: 48 8d 45 ec lea -0x14(%rbp),%rax + 1336: 48 89 c7 mov %rax,%rdi + 1339: e8 ef fe ff ff call 122d + 133e: b8 01 00 00 00 mov $0x1,%eax + 1343: 48 8b 55 f8 mov -0x8(%rbp),%rdx + 1347: 64 48 2b 14 25 28 00 sub %fs:0x28,%rdx + 134e: 00 00 + 1350: 74 05 je 1357 + 1352: e8 e9 fc ff ff call 1040 <__stack_chk_fail@plt> + 1357: c9 leave + 1358: c3 ret + +0000000000001359 : + 1359: 55 push %rbp + 135a: 48 89 e5 mov %rsp,%rbp + 135d: 48 83 ec 20 sub $0x20,%rsp + 1361: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax + 1368: 00 00 + 136a: 48 89 45 f8 mov %rax,-0x8(%rbp) + 136e: 31 c0 xor %eax,%eax + 1370: c7 45 e8 ef be ad de movl $0xdeadbeef,-0x18(%rbp) + 1377: bf 17 00 00 00 mov $0x17,%edi + 137c: e8 38 fe ff ff call 11b9 + 1381: 48 8b 05 e0 2c 00 00 mov 0x2ce0(%rip),%rax # 4068 + 1388: 48 83 c0 01 add $0x1,%rax + 138c: 48 8d 50 08 lea 0x8(%rax),%rdx + 1390: b8 10 00 00 00 mov $0x10,%eax + 1395: 48 83 e8 01 sub $0x1,%rax + 1399: 48 01 d0 add %rdx,%rax + 139c: b9 10 00 00 00 mov $0x10,%ecx + 13a1: ba 00 00 00 00 mov $0x0,%edx + 13a6: 48 f7 f1 div %rcx + 13a9: 48 6b c0 10 imul $0x10,%rax,%rax + 13ad: 48 29 c4 sub %rax,%rsp + 13b0: 48 89 e0 mov %rsp,%rax + 13b3: 48 83 c0 0f add $0xf,%rax + 13b7: 48 c1 e8 04 shr $0x4,%rax + 13bb: 48 c1 e0 04 shl $0x4,%rax + 13bf: 48 89 45 f0 mov %rax,-0x10(%rbp) + 13c3: 48 8b 45 f0 mov -0x10(%rbp),%rax + 13c7: c6 00 6c movb $0x6c,(%rax) + 13ca: e8 4c ff ff ff call 131b + 13cf: 89 45 ec mov %eax,-0x14(%rbp) + 13d2: 8b 45 e8 mov -0x18(%rbp),%eax + 13d5: 3d ef be ad de cmp $0xdeadbeef,%eax + 13da: 75 11 jne 13ed + 13dc: 48 8d 05 25 0c 00 00 lea 0xc25(%rip),%rax # 2008 <_IO_stdin_used+0x8> + 13e3: 48 89 c7 mov %rax,%rdi + 13e6: e8 45 fc ff ff call 1030 + 13eb: eb 0f jmp 13fc + 13ed: 48 8d 05 24 0c 00 00 lea 0xc24(%rip),%rax # 2018 <_IO_stdin_used+0x18> + 13f4: 48 89 c7 mov %rax,%rdi + 13f7: e8 34 fc ff ff call 1030 + 13fc: 8b 05 46 2c 00 00 mov 0x2c46(%rip),%eax # 4048 + 1402: 39 45 ec cmp %eax,-0x14(%rbp) + 1405: 75 1b jne 1422 + 1407: 8b 45 ec mov -0x14(%rbp),%eax + 140a: 89 c6 mov %eax,%esi + 140c: 48 8d 05 3d 0c 00 00 lea 0xc3d(%rip),%rax # 2050 <_IO_stdin_used+0x50> + 1413: 48 89 c7 mov %rax,%rdi + 1416: b8 00 00 00 00 mov $0x0,%eax + 141b: e8 30 fc ff ff call 1050 + 1420: eb 30 jmp 1452 + 1422: 83 7d ec 01 cmpl $0x1,-0x14(%rbp) + 1426: 75 11 jne 1439 + 1428: 48 8d 05 61 0c 00 00 lea 0xc61(%rip),%rax # 2090 <_IO_stdin_used+0x90> + 142f: 48 89 c7 mov %rax,%rdi + 1432: e8 f9 fb ff ff call 1030 + 1437: eb 19 jmp 1452 + 1439: 8b 45 ec mov -0x14(%rbp),%eax + 143c: 89 c6 mov %eax,%esi + 143e: 48 8d 05 83 0c 00 00 lea 0xc83(%rip),%rax # 20c8 <_IO_stdin_used+0xc8> + 1445: 48 89 c7 mov %rax,%rdi + 1448: b8 00 00 00 00 mov $0x0,%eax + 144d: e8 fe fb ff ff call 1050 + 1452: 90 nop + 1453: 48 8b 45 f8 mov -0x8(%rbp),%rax + 1457: 64 48 2b 04 25 28 00 sub %fs:0x28,%rax + 145e: 00 00 + 1460: 74 05 je 1467 + 1462: e8 d9 fb ff ff call 1040 <__stack_chk_fail@plt> + 1467: c9 leave + 1468: c3 ret + +0000000000001469 : + 1469: 55 push %rbp + 146a: 48 89 e5 mov %rsp,%rbp + 146d: 48 8d 05 9c 0c 00 00 lea 0xc9c(%rip),%rax # 2110 <_IO_stdin_used+0x110> + 1474: 48 89 c7 mov %rax,%rdi + 1477: e8 b4 fb ff ff call 1030 + 147c: 48 8d 05 c6 0c 00 00 lea 0xcc6(%rip),%rax # 2149 <_IO_stdin_used+0x149> + 1483: 48 89 c7 mov %rax,%rdi + 1486: e8 a5 fb ff ff call 1030 + 148b: bf 00 00 00 00 mov $0x0,%edi + 1490: e8 eb fb ff ff call 1080 + +0000000000001495 : + 1495: 55 push %rbp + 1496: 48 89 e5 mov %rsp,%rbp + 1499: 48 83 ec 10 sub $0x10,%rsp + 149d: 89 7d fc mov %edi,-0x4(%rbp) + 14a0: 8b 05 a2 2b 00 00 mov 0x2ba2(%rip),%eax # 4048 + 14a6: 39 45 fc cmp %eax,-0x4(%rbp) + 14a9: 75 1b jne 14c6 + 14ab: 8b 45 fc mov -0x4(%rbp),%eax + 14ae: 89 c6 mov %eax,%esi + 14b0: 48 8d 05 b1 0c 00 00 lea 0xcb1(%rip),%rax # 2168 <_IO_stdin_used+0x168> + 14b7: 48 89 c7 mov %rax,%rdi + 14ba: b8 00 00 00 00 mov $0x0,%eax + 14bf: e8 8c fb ff ff call 1050 + 14c4: eb 19 jmp 14df + 14c6: 8b 45 fc mov -0x4(%rbp),%eax + 14c9: 89 c6 mov %eax,%esi + 14cb: 48 8d 05 e6 0c 00 00 lea 0xce6(%rip),%rax # 21b8 <_IO_stdin_used+0x1b8> + 14d2: 48 89 c7 mov %rax,%rdi + 14d5: b8 00 00 00 00 mov $0x0,%eax + 14da: e8 71 fb ff ff call 1050 + 14df: 8b 05 63 2b 00 00 mov 0x2b63(%rip),%eax # 4048 + 14e5: 39 45 fc cmp %eax,-0x4(%rbp) + 14e8: 75 0f jne 14f9 + 14ea: 48 8d 05 23 0d 00 00 lea 0xd23(%rip),%rax # 2214 <_IO_stdin_used+0x214> + 14f1: 48 89 c7 mov %rax,%rdi + 14f4: e8 37 fb ff ff call 1030 + 14f9: bf 00 00 00 00 mov $0x0,%edi + 14fe: e8 7d fb ff ff call 1080 + +0000000000001503 : + 1503: 55 push %rbp + 1504: 48 89 e5 mov %rsp,%rbp + 1507: 48 83 ec 10 sub $0x10,%rsp + 150b: 89 7d fc mov %edi,-0x4(%rbp) + 150e: 8b 15 5c 2b 00 00 mov 0x2b5c(%rip),%edx # 4070 + 1514: 8b 05 2e 2b 00 00 mov 0x2b2e(%rip),%eax # 4048 + 151a: 39 c2 cmp %eax,%edx + 151c: 75 1e jne 153c + 151e: 8b 05 4c 2b 00 00 mov 0x2b4c(%rip),%eax # 4070 + 1524: 89 c6 mov %eax,%esi + 1526: 48 8d 05 03 0d 00 00 lea 0xd03(%rip),%rax # 2230 <_IO_stdin_used+0x230> + 152d: 48 89 c7 mov %rax,%rdi + 1530: b8 00 00 00 00 mov $0x0,%eax + 1535: e8 16 fb ff ff call 1050 + 153a: eb 1c jmp 1558 + 153c: 8b 05 2e 2b 00 00 mov 0x2b2e(%rip),%eax # 4070 + 1542: 89 c6 mov %eax,%esi + 1544: 48 8d 05 45 0d 00 00 lea 0xd45(%rip),%rax # 2290 <_IO_stdin_used+0x290> + 154b: 48 89 c7 mov %rax,%rdi + 154e: b8 00 00 00 00 mov $0x0,%eax + 1553: e8 f8 fa ff ff call 1050 + 1558: 8b 15 12 2b 00 00 mov 0x2b12(%rip),%edx # 4070 + 155e: 8b 05 e4 2a 00 00 mov 0x2ae4(%rip),%eax # 4048 + 1564: 39 c2 cmp %eax,%edx + 1566: 75 0f jne 1577 + 1568: 48 8d 05 7e 0d 00 00 lea 0xd7e(%rip),%rax # 22ed <_IO_stdin_used+0x2ed> + 156f: 48 89 c7 mov %rax,%rdi + 1572: e8 b9 fa ff ff call 1030 + 1577: bf 00 00 00 00 mov $0x0,%edi + 157c: e8 ff fa ff ff call 1080 + +0000000000001581 : + 1581: 55 push %rbp + 1582: 48 89 e5 mov %rsp,%rbp + 1585: 48 83 ec 10 sub $0x10,%rsp + 1589: 89 7d fc mov %edi,-0x4(%rbp) + 158c: 8b 15 de 2a 00 00 mov 0x2ade(%rip),%edx # 4070 + 1592: 8b 05 b0 2a 00 00 mov 0x2ab0(%rip),%eax # 4048 + 1598: 39 c2 cmp %eax,%edx + 159a: 75 1e jne 15ba + 159c: 8b 05 ce 2a 00 00 mov 0x2ace(%rip),%eax # 4070 + 15a2: 89 c6 mov %eax,%esi + 15a4: 48 8d 05 5d 0d 00 00 lea 0xd5d(%rip),%rax # 2308 <_IO_stdin_used+0x308> + 15ab: 48 89 c7 mov %rax,%rdi + 15ae: b8 00 00 00 00 mov $0x0,%eax + 15b3: e8 98 fa ff ff call 1050 + 15b8: eb 1c jmp 15d6 + 15ba: 8b 05 b0 2a 00 00 mov 0x2ab0(%rip),%eax # 4070 + 15c0: 89 c6 mov %eax,%esi + 15c2: 48 8d 05 9f 0d 00 00 lea 0xd9f(%rip),%rax # 2368 <_IO_stdin_used+0x368> + 15c9: 48 89 c7 mov %rax,%rdi + 15cc: b8 00 00 00 00 mov $0x0,%eax + 15d1: e8 7a fa ff ff call 1050 + 15d6: 8b 15 94 2a 00 00 mov 0x2a94(%rip),%edx # 4070 + 15dc: 8b 05 66 2a 00 00 mov 0x2a66(%rip),%eax # 4048 + 15e2: 39 c2 cmp %eax,%edx + 15e4: 75 10 jne 15f6 + 15e6: 48 8d 05 d2 0d 00 00 lea 0xdd2(%rip),%rax # 23bf <_IO_stdin_used+0x3bf> + 15ed: 48 89 c7 mov %rax,%rdi + 15f0: e8 3b fa ff ff call 1030 + 15f5: 90 nop + 15f6: 90 nop + 15f7: c9 leave + 15f8: c3 ret + +00000000000015f9
: + 15f9: 55 push %rbp + 15fa: 48 89 e5 mov %rsp,%rbp + 15fd: 48 83 ec 30 sub $0x30,%rsp + 1601: 89 7d dc mov %edi,-0x24(%rbp) + 1604: 48 89 75 d0 mov %rsi,-0x30(%rbp) + 1608: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax + 160f: 00 00 + 1611: 48 89 45 f8 mov %rax,-0x8(%rbp) + 1615: 31 c0 xor %eax,%eax + 1617: 48 8d 05 c2 0d 00 00 lea 0xdc2(%rip),%rax # 23e0 <_IO_stdin_used+0x3e0> + 161e: 48 89 c7 mov %rax,%rdi + 1621: e8 0a fa ff ff call 1030 + 1626: 48 8d 05 dd 0d 00 00 lea 0xddd(%rip),%rax # 240a <_IO_stdin_used+0x40a> + 162d: 48 89 c7 mov %rax,%rdi + 1630: e8 fb f9 ff ff call 1030 + 1635: 83 7d dc 01 cmpl $0x1,-0x24(%rbp) + 1639: 75 46 jne 1681 + 163b: 48 8b 45 d0 mov -0x30(%rbp),%rax + 163f: 48 8b 00 mov (%rax),%rax + 1642: 48 89 c6 mov %rax,%rsi + 1645: 48 8d 05 dc 0d 00 00 lea 0xddc(%rip),%rax # 2428 <_IO_stdin_used+0x428> + 164c: 48 89 c7 mov %rax,%rdi + 164f: b8 00 00 00 00 mov $0x0,%eax + 1654: e8 f7 f9 ff ff call 1050 + 1659: 48 8d 05 10 0e 00 00 lea 0xe10(%rip),%rax # 2470 <_IO_stdin_used+0x470> + 1660: 48 89 c7 mov %rax,%rdi + 1663: e8 c8 f9 ff ff call 1030 + 1668: 48 8d 05 59 0e 00 00 lea 0xe59(%rip),%rax # 24c8 <_IO_stdin_used+0x4c8> + 166f: 48 89 c7 mov %rax,%rdi + 1672: e8 b9 f9 ff ff call 1030 + 1677: b8 00 00 00 00 mov $0x0,%eax + 167c: e9 43 01 00 00 jmp 17c4 + 1681: 48 8b 45 d0 mov -0x30(%rbp),%rax + 1685: 48 83 c0 08 add $0x8,%rax + 1689: 48 8b 00 mov (%rax),%rax + 168c: 48 89 c6 mov %rax,%rsi + 168f: 48 8d 05 7a 0e 00 00 lea 0xe7a(%rip),%rax # 2510 <_IO_stdin_used+0x510> + 1696: 48 89 c7 mov %rax,%rdi + 1699: b8 00 00 00 00 mov $0x0,%eax + 169e: e8 ad f9 ff ff call 1050 + 16a3: 48 8b 45 d0 mov -0x30(%rbp),%rax + 16a7: 48 83 c0 08 add $0x8,%rax + 16ab: 48 8b 00 mov (%rax),%rax + 16ae: 48 89 c7 mov %rax,%rdi + 16b1: e8 ba f9 ff ff call 1070 + 16b6: 48 98 cltq + 16b8: 48 89 05 99 29 00 00 mov %rax,0x2999(%rip) # 4058 + 16bf: 48 c7 05 96 29 00 00 movq $0x29a,0x2996(%rip) # 4060 + 16c6: 9a 02 00 00 + 16ca: bf 00 00 00 00 mov $0x0,%edi + 16cf: e8 e5 fa ff ff call 11b9 + 16d4: c7 45 ec 02 00 00 00 movl $0x2,-0x14(%rbp) + 16db: eb 36 jmp 1713 + 16dd: 8b 45 ec mov -0x14(%rbp),%eax + 16e0: 48 98 cltq + 16e2: 48 8d 14 c5 00 00 00 lea 0x0(,%rax,8),%rdx + 16e9: 00 + 16ea: 48 8b 45 d0 mov -0x30(%rbp),%rax + 16ee: 48 01 d0 add %rdx,%rax + 16f1: 48 8b 00 mov (%rax),%rax + 16f4: 48 89 c7 mov %rax,%rdi + 16f7: e8 74 f9 ff ff call 1070 + 16fc: 48 98 cltq + 16fe: 48 89 05 5b 29 00 00 mov %rax,0x295b(%rip) # 4060 + 1705: bf 00 00 00 00 mov $0x0,%edi + 170a: e8 aa fa ff ff call 11b9 + 170f: 83 45 ec 01 addl $0x1,-0x14(%rbp) + 1713: 8b 45 ec mov -0x14(%rbp),%eax + 1716: 3b 45 dc cmp -0x24(%rbp),%eax + 1719: 7c c2 jl 16dd + 171b: 48 8b 05 36 29 00 00 mov 0x2936(%rip),%rax # 4058 + 1722: 89 05 20 29 00 00 mov %eax,0x2920(%rip) # 4048 + 1728: 8b 05 1a 29 00 00 mov 0x291a(%rip),%eax # 4048 + 172e: 89 c6 mov %eax,%esi + 1730: 48 8d 05 f7 0d 00 00 lea 0xdf7(%rip),%rax # 252e <_IO_stdin_used+0x52e> + 1737: 48 89 c7 mov %rax,%rdi + 173a: b8 00 00 00 00 mov $0x0,%eax + 173f: e8 0c f9 ff ff call 1050 + 1744: 48 8d 05 bf 0c 00 00 lea 0xcbf(%rip),%rax # 240a <_IO_stdin_used+0x40a> + 174b: 48 89 c7 mov %rax,%rdi + 174e: e8 dd f8 ff ff call 1030 + 1753: 48 8d 05 f6 0d 00 00 lea 0xdf6(%rip),%rax # 2550 <_IO_stdin_used+0x550> + 175a: 48 89 c7 mov %rax,%rdi + 175d: b8 00 00 00 00 mov $0x0,%eax + 1762: e8 e9 f8 ff ff call 1050 + 1767: bf 00 02 00 00 mov $0x200,%edi + 176c: e8 48 fa ff ff call 11b9 + 1771: 48 8b 05 f0 28 00 00 mov 0x28f0(%rip),%rax # 4068 + 1778: 48 83 c0 01 add $0x1,%rax + 177c: 48 8d 50 08 lea 0x8(%rax),%rdx + 1780: b8 10 00 00 00 mov $0x10,%eax + 1785: 48 83 e8 01 sub $0x1,%rax + 1789: 48 01 d0 add %rdx,%rax + 178c: b9 10 00 00 00 mov $0x10,%ecx + 1791: ba 00 00 00 00 mov $0x0,%edx + 1796: 48 f7 f1 div %rcx + 1799: 48 6b c0 10 imul $0x10,%rax,%rax + 179d: 48 29 c4 sub %rax,%rsp + 17a0: 48 89 e0 mov %rsp,%rax + 17a3: 48 83 c0 0f add $0xf,%rax + 17a7: 48 c1 e8 04 shr $0x4,%rax + 17ab: 48 c1 e0 04 shl $0x4,%rax + 17af: 48 89 45 f0 mov %rax,-0x10(%rbp) + 17b3: 48 8b 45 f0 mov -0x10(%rbp),%rax + 17b7: c6 00 68 movb $0x68,(%rax) + 17ba: e8 9a fb ff ff call 1359 + 17bf: b8 00 00 00 00 mov $0x0,%eax + 17c4: 48 8b 55 f8 mov -0x8(%rbp),%rdx + 17c8: 64 48 2b 14 25 28 00 sub %fs:0x28,%rdx + 17cf: 00 00 + 17d1: 74 05 je 17d8 + 17d3: e8 68 f8 ff ff call 1040 <__stack_chk_fail@plt> + 17d8: c9 leave + 17d9: c3 ret + +Disassembly of section .fini: + +00000000000017dc <_fini>: + 17dc: f3 0f 1e fa endbr64 + 17e0: 48 83 ec 08 sub $0x8,%rsp + 17e4: 48 83 c4 08 add $0x8,%rsp + 17e8: c3 ret diff --git a/buflab/bufbomb_linux b/buflab/bufbomb_linux new file mode 100755 index 0000000..bd1d50f Binary files /dev/null and b/buflab/bufbomb_linux differ diff --git a/buflab/buflab.pdf b/buflab/buflab.pdf new file mode 100644 index 0000000..09c8d79 Binary files /dev/null and b/buflab/buflab.pdf differ diff --git a/buflab/╝╞╦π╗·╧╡═│╘¡└φ-╩╡╤Θ3.pptx b/buflab/╝╞╦π╗·╧╡═│╘¡└φ-╩╡╤Θ3.pptx new file mode 100644 index 0000000..5893ddf Binary files /dev/null and b/buflab/╝╞╦π╗·╧╡═│╘¡└φ-╩╡╤Θ3.pptx differ diff --git a/datalab/README.txt b/datalab/README.txt new file mode 100644 index 0000000..db1028c --- /dev/null +++ b/datalab/README.txt @@ -0,0 +1,47 @@ + +ʵ + +Ŀ޸bits.cļʹܹͨbtestԣȷΥκαҪ + + +*********************************************************** +1. ޸bits.cʹdlcҪ +*********************************************************** + +ϸĶbits.cļеҪָҪصıҪ + + +************************************* +2. ʹbtestijȷ +************************************* + +lccУ½һֽ̣btest +ļ빤̣ +bits.c +btest.c +decl.c +getopt.c +tests.c + +룬һbtest.exeִļ +btest.exe + + btest.exe [optional command line arguments] + + +******************* +3. btestʲô +******************* + +btestͨһϵbits.cǷȷ + +btestһЩв + -e ƶijıĿΪNȱʡòƣ + -f ضֵĺ + -g ӡҪϢ(ͬ -v 0 -e 0) + -h ʾϢ + -a + -r ͬȨN + -v ʾΪ N + N=0: յ÷ + N=1: N=1 ⻹÷֣ȱʡֵ diff --git a/datalab/datalab.pdf b/datalab/datalab.pdf new file mode 100644 index 0000000..2cb8c75 Binary files /dev/null and b/datalab/datalab.pdf differ diff --git a/datalab/src/Makefile b/datalab/src/Makefile new file mode 100755 index 0000000..240c709 --- /dev/null +++ b/datalab/src/Makefile @@ -0,0 +1,16 @@ +CC = gcc +CFLAGS = -O -Wall -m32 +LIBS = -lm + +all: btest + +btest: btest.c bits.c decl.c tests.c getopt.c getopt.h btest.h bits.h + $(CC) $(CFLAGS) $(LIBS) -o btest bits.c btest.c decl.c tests.c getopt.c + +run: btest + ./btest + +clean: + rm -f *.o btest + + diff --git a/datalab/src/bits.c b/datalab/src/bits.c new file mode 100644 index 0000000..b1ead2c --- /dev/null +++ b/datalab/src/bits.c @@ -0,0 +1,326 @@ +/* + * CS:APP Data Lab + * + * bits.c - ��ʵ������Ҫ�޸ı��ļ��� + * ����Ҫ�Ѵ��ļ��ύ����ʦ/�̸��� + * + */ + +#include "btest.h" +#include + +/* + * ѧ����ʵ��ָ���� + * + * ����1����������֡�ѧ����д������Ľṹ�У� + */ +team_struct team = { + /* Replace this with your full name */ + "程景愉", + + /* Replace this with your Andrew login ID */ + "202302723005"}; + +#if 0 +/* + * ����2������ϸ�Ķ������˵���� + */ + +// �������ʵ�飬��ͨ���༭���ļ���bits.c���еĸ�������������ύ����� + +���Ҫ�� + + ����return������滻��һ�л��߶���ʵ�ֺ������ܵ�C���롣 + ������/�޸ĵĴ�������������ķ�� + + int Funct(arg1, arg2, ...) { + /* ��Ҫ�����������ʵ�ָú������ܵ� */ + int var1 = Expr1; + ... + int varM = ExprM; + + varJ = ExprJ; + ... + varN = ExprN; + return ExprR; + } + + ÿһ����Expr����һ������ʹ���������ݵı���ʽ�� + 1. 0~255��0xFF��������������������ʹ�ô�ij���������0xffffffff�� + 2. �����IJ����;ֲ�������������ʹ��ȫ�ֱ������� + 3. ��Լ�����������" ! ~ " + 4. ����������������� & ^ | + << >> �� + + һЩ������ʵ�֣��������ܹ�ʹ�õ�������� + ÿһ����Expr������ʽ���ܰ�������������û��Ҫ�������ÿ��ֻ��һ��������� + + ��������ϸ��ֹ�� + 1. ʹ���κο��������䣬����if, do, while, for, switch, �ȵȡ� + 2. �������ʹ���κκꡣ + 3. �ڴ��ļ������������κζ���ĺ����� + 4. �����κκ����� + 5. ʹ���κ������������������ &&, ||, -, ���� ?: + 6. ʹ���κ���ʽ��ǿ������ת���� + + ����Ҫ������ĵ��ԣ� + 1. ʹ��2�IJ��룬32λ��ʾ�������� + 2. ���������������������㡣 + 3. �����λ�����������ֳ�����ô�����������Ԥ��Ľ���� + +// ���Խ��ܵı�̷���ʾ���� + /* + * pow2plus1 - returns 2^x + 1, where 0 <= x <= 31 + */ + int pow2plus1(int x) { + /* exploit ability of shifts to compute powers of 2 */ + return (1 << x) + 1; + } + + /* + * pow2plus4 - returns 2^x + 4, where 0 <= x <= 31 + */ + int pow2plus4(int x) { + /* exploit ability of shifts to compute powers of 2 */ + int result = (1 << x); + result += 4; + return result; + } + + +ע�⣺ + 1. ����ʹ��dlc.exe������bits.c�Ƿ���ϱ��Ҫ�� + 2. Each function has a maximum number of operators (! ~ & ^ | + << >>) + that you are allowed to use for your implementation of the function. + The max operator count is checked by dlc. Note that '=' is not + counted; you may use as many of these as you want without penalty. + 3. ʹ��btest�����ĺ����Ƿ�����ȷ�� + 4. The maximum number of ops for each function is given in the + header comment for each function. If there are any inconsistencies + between the maximum ops in the writeup and in this file, consider + this file the authoritative source. +#endif + +/* + * ����3: + * ��������ı��Ҫ���޸�����ĺ����� + * + * ��Ҫ��Ϊ�˱���ܲ�ijɼ��� + * 1. ʹ��dlc.exe�����ı�̷���Ƿ����Ҫ�� + * 2. + * ʹ��btest�����ĺ����Ƿ�����ȷ����ע����Tmin��Tmax�����������Ƿ���ȷ�� + */ + +/* + * bitAnd - x&y using only ~ and | + * Example: bitAnd(6, 5) = 4 + * Legal ops: ~ | + * Max ops: 8 + * Rating: 1 + */ +int bitAnd(int x, int y) { + // 实现x&y的位与运算 + return x & y; +} + +/* + * bitXor - x^y using only ~ and & + * Example: bitXor(4, 5) = 1 + * Legal ops: ~ & + * Max ops: 14 + * Rating: 2 + */ +int bitXor(int x, int y) { return 2; } + +/* + * evenBits - return word with all even-numbered bits set to 1 + * Legal ops: ! ~ & ^ | + << >> + * Max ops: 8 + * Rating: 2 + */ +int evenBits(void) { return 2; } + +/* + * getByte - Extract byte n from word x + * Bytes numbered from 0 (LSB) to 3 (MSB) + * Examples: getByte(0x12345678,1) = 0x56 + * Legal ops: ! ~ & ^ | + << >> + * Max ops: 6 + * Rating: 2 + */ +int getByte(int x, int n) { return 2; } + +/* + * bitMask - Generate a bitmask consisting of all 1's + * from lowbit to highbit and 0's everywhere else. + * Examples: bitMask(5,3) = 0x38 + * Assume 0 <= lowbit <= 31, and 0 <= highbit <= 31 + * If lowbit > highbit, then mask should be all 0's + * Legal ops: ! ~ & ^ | + << >> + * Max ops: 16 + * Rating: 3 + */ +int bitMask(int highbit, int lowbit) { + // 生成从lowbit到highbit的位掩码 + if (lowbit > highbit) + return 0; + else { + int res = 0; + for (int i = lowbit; i <= highbit; i++) { + res |= (1 << i); + } + return res; + } +} + +/* + * reverseBytes - reverse the bytes of x + * Example: reverseBytes(0x01020304) = 0x04030201 + * Legal ops: ! ~ & ^ | + << >> + * Max ops: 25 + * Rating: 3 + */ +int reverseBytes(int x) { + // 提取每个字节并移动到正确的位置 + int byte0 = (x >> 24) & 0xFF; // 提取最高字节并移动到最低字节位置 + int byte1 = (x >> 8) & 0xFF00; // 提取第二字节并移动到第二字节位置 + int byte2 = (x << 8) & 0xFF0000; // 提取第三字节并移动到第三字节位置 + int byte3 = (x << 24); // 提取最低字节并移动到最高字节位置 + + // 将各个字节合并 + return byte0 | byte1 | byte2 | byte3; +} + +/* + * leastBitPos - return a mask that marks the position of the + * least significant 1 bit. If x == 0, return 0 + * Example: leastBitPos(96) = 0x20 + * Legal ops: ! ~ & ^ | + << >> + * Max ops: 6 + * Rating: 4 + */ +int leastBitPos(int x) { + // 根据补码是取反再加一的性质 + return x & (~x + 1); +} + +/* + * logicalNeg - implement the ! operator, using all of + * the legal operators except ! + * Examples: logicalNeg(3) = 0, logicalNeg(0) = 1 + * Legal ops: ~ & ^ | + << >> + * Max ops: 12 + * Rating: 4 + */ +int logicalNeg(int x) { return 2; } + +/* + * minusOne - return a value of -1 + * Legal ops: ! ~ & ^ | + << >> + * Max ops: 2 + * Rating: 1 + */ +int minusOne(void) { + // 1的补码0直接取反 + return ~0; +} + +/* + * TMax - return maximum two's complement integer + * Legal ops: ! ~ & ^ | + << >> + * Max ops: 4 + * Rating: 1 + */ +int tmax(void) { return 2; } + +/* + * negate - return -x + * Example: negate(1) = -1. + * Legal ops: ! ~ & ^ | + << >> + * Max ops: 5 + * Rating: 2 + */ +int negate(int x) { return ~x + 1; } + +/* + * isPositive - return 1 if x > 0, return 0 otherwise + * Example: isPositive(-1) = 0. + * Legal ops: ! ~ & ^ | + << >> + * Max ops: 8 + * Rating: 3 + */ +int isPositive(int x) { return 2; } + +/* + * isLess - if x < y then return 1, else return 0 + * Example: isLess(4,5) = 1. + * Legal ops: ! ~ & ^ | + << >> + * Max ops: 24 + * Rating: 3 + */ +int isLess(int x, int y) { return 2; } + +/* + * sm2tc - Convert from sign-magnitude to two's complement + * where the MSB is the sign bit + * Example: sm2tc(0x80000005) = -5. + * Legal ops: ! ~ & ^ | + << >> + * Max ops: 15 + * Rating: 4 + */ +int sm2tc(int x) { return 2; } + +/* + * getHighBit - return a mask that marks the position of the + * most significant 1 bit. If x == 0, return 0 + * Legal ops: ! ~ & ^ | + << >> + */ +int getHighBit(int x) { + // 使用位运算找到最高位 + return x & (~(x - 1)); +} + +/* + * getLowBit - return a mask that marks the position of the + * least significant 1 bit. If x == 0, return 0 + * Legal ops: ! ~ & ^ | + << >> + */ +int getLowBit(int x) { + // 使用位运算找到最低位 + return x & (~x + 1); +} + +/* + * isNegative - return 1 if x < 0, return 0 otherwise + * Legal ops: ! ~ & ^ | + << >> + */ +int isNegative(int x) { + // 判断符号位 + return (x >> 31) & 1; +} + +/* + * isGreater - if x > y then return 1, else return 0 + * Legal ops: ! ~ & ^ | + << >> + */ +int isGreater(int x, int y) { + // 判断x是否大于y + return (x - y) > 0; +} + +/* + * tmin - return minimum two's complement integer + * Legal ops: ! ~ & ^ | + << >> + */ +int tmin(void) { + // 返回最小的二补数 + return 1 << 31; +} + +/* + * plusOne - return x + 1 + * Legal ops: ! ~ & ^ | + << >> + */ +int plusOne(int x) { + // 实现加1操作 + return x + 1; +} diff --git a/datalab/src/bits.h b/datalab/src/bits.h new file mode 100644 index 0000000..8db5c56 --- /dev/null +++ b/datalab/src/bits.h @@ -0,0 +1,114 @@ + +int bitAnd(int a, int b); +int test_bitAnd(int, int); + + + + + + +int bitXor(int, int); +int test_bitXor(int, int); + + + + + + +int evenBits(); +int test_evenBits(); + + + + + + +int getByte(int, int); +int test_getByte(int, int); + + + + + + +int bitMask(int, int); +int test_bitMask(int, int); + + + + + + +int reverseBytes(int); +int test_reverseBytes(int); + + + + + + +int leastBitPos(int); +int test_leastBitPos(int); + + + + + + +int logicalNeg(int); +int test_logicalNeg(int); + + + + + + + +int minusOne(); +int test_minusOne(); + + + + + + +int tmax(); +int test_tmax(); + + + + + + +int negate(int); +int test_negate(int); + + + + + + +int isPositive(int); +int test_isPositive(int); + + + + + + +int isLess(int, int); +int test_isLess(int, int); + + + + + + +int sm2tc(int); +int test_sm2tc(int); + + + + + + diff --git a/datalab/src/btest b/datalab/src/btest new file mode 100755 index 0000000..eabdaec Binary files /dev/null and b/datalab/src/btest differ diff --git a/datalab/src/btest.c b/datalab/src/btest.c new file mode 100644 index 0000000..dd83ab8 --- /dev/null +++ b/datalab/src/btest.c @@ -0,0 +1,318 @@ +/* + * CS:APP Data Lab + * + * btest.c - A test harness that checks a student's solution + * in bits.c for correctness. + * + * Copyright (c) 2001, R. Bryant and D. O'Hallaron, All rights reserved. + * May not be used, modified, or copied without permission. + * + * Usage: + * -e 限制对某个函数的报错数目为N(缺省该参数,将会无限制) + * -f 检查特定名字的函数 + * -g 打印出简要信息(等同于 -v 0 和 -e 0) + * -h 显示本信息 + * -a 不检查分组 + * -r 对所有问题设置相同的权重N + * -v 设置显示级别为 N + * N=0: 仅仅给出最终得分 + * N=1: N=1 另外还给出单项得分(缺省值) + * + * Each problem has a weight 1 to 4, which is defined in legallist.c. + + */ +#include +// #include +#include "btest.h" +#include "getopt.h" +#include +#include +#include + +/* Globals defined in other modules */ +extern team_struct team; /* defined in bits.c */ +extern test_rec test_set[]; /* defined in decl.c */ + /* and generated from templates in ./puzzles */ + +/* Generate test values near "corner cases" */ +#define TEST_RANGE 5 +#define TEST_COUNT 33 + +/* Print only compact grading summary if set (-g) */ +static int grade = 0; + +/* Max errors reported per function (-e) */ +static int error_limit = 1000; + +/* If non-NULL, test only one function (-f) */ +static char *test_fname = NULL; + +/* Should I used fixed weight for rating, and if so, what should it be? (-r)*/ +static int global_rating = 0; + +/* Return random value between min and max */ +static int random_val(int min, int max) { + double weight = rand() / (double)RAND_MAX; + int result = min * (1 - weight) + max * weight; + return result; +} + +/* Generate the integer values we'll use to test a function */ +static int gen_vals(int test_vals[], int min, int max) { + int i; + int test_count = 0; + + /* If range small enough, then do exhaustively */ + if (max - 32 <= min) { + for (i = min; i <= max; i++) + test_vals[test_count++] = i; + return test_count; + } + /* Otherwise, need to sample. + Do so near the boundaries and for a few random cases */ + for (i = 0; i < TEST_RANGE; i++) { + test_vals[test_count++] = min + i; + test_vals[test_count++] = max - i; + test_vals[test_count++] = (max + min - TEST_RANGE) / 2 + i; + test_vals[test_count++] = random_val(min, max); + } + return test_count; +} + +/* Test a function with zero arguments */ +static int test_0_arg(funct_t f, funct_t ft, char *name, int report) { + int r = f(); + int rt = ft(); + int error = (r != rt); + + if (error && report) + ; + // printf("测试 %s() 失败!\n 计算得到 %d[0x%x]. 应该是 %d[0x%x]\n", + // name, r, r, rt, rt); + return error; +} + +/* Test a function with one argument */ +static int test_1_arg(funct_t f, funct_t ft, int arg1, char *name, int report) { + funct1_t f1 = (funct1_t)f; + funct1_t f1t = (funct1_t)ft; + int r, rt, error; + + r = f1(arg1); + rt = f1t(arg1); + error = (r != rt); + if (error && report) + // printf("测试 %s(%d[0x%x]) 失败!\n 计算得到 %d[0x%x]. 应该是 + // %d[0x%x]\n", + // name, arg1, arg1, r, r, rt, rt); + ; + return error; +} + +/* Test a function with two arguments */ +static int test_2_arg(funct_t f, funct_t ft, int arg1, int arg2, char *name, + int report) { + funct2_t f2 = (funct2_t)f; + funct2_t f2t = (funct2_t)ft; + int r = f2(arg1, arg2); + int rt = f2t(arg1, arg2); + int error = (r != rt); + + if (error && report) + // printf("测试 %s(%d[0x%x],%d[0x%x]) 失败!\n 计算得到 %d[0x%x]. 应该是 " + // "%d[0x%x]\n", + // name, arg1, arg1, arg2, arg2, r, r, rt, rt); + ; + return error; +} + +/* Test a function with three arguments */ +static int test_3_arg(funct_t f, funct_t ft, int arg1, int arg2, int arg3, + char *name, int report) { + funct3_t f3 = (funct3_t)f; + funct3_t f3t = (funct3_t)ft; + int r = f3(arg1, arg2, arg3); + int rt = f3t(arg1, arg2, arg3); + int error = (r != rt); + + if (error && report) + // printf("测试 %s(%d[0x%x],%d[0x%x],%d[0x%x]) 失败!\n 计算得到 %d[0x%x]. + // " + // "应该是 %d[0x%x]\n", + // name, arg1, arg1, arg2, arg2, arg3, arg3, r, r, rt, rt); + ; + return error; +} + +/* Test a function. Return number of errors */ +static int test_function(test_ptr t, int report) { + int test_vals[3][TEST_COUNT]; + int test_counts[3]; + int errors = 0; + int i; + int a1, a2, a3; + int args = t->args; + + /* Create test set */ + for (i = 0; i < 3; i++) + test_counts[i] = + gen_vals(test_vals[i], t->arg_ranges[i][0], t->arg_ranges[i][1]); + if (args == 0) { + errors += test_0_arg(t->solution_funct, t->test_funct, t->name, + report && errors < error_limit); + } else + for (a1 = 0; a1 < test_counts[0]; a1++) { + if (args == 1) { + errors += test_1_arg(t->solution_funct, t->test_funct, test_vals[0][a1], + t->name, report && errors < error_limit); + } else + for (a2 = 0; a2 < test_counts[1]; a2++) { + if (args == 2) { + errors += test_2_arg(t->solution_funct, t->test_funct, + test_vals[0][a1], test_vals[1][a2], t->name, + report && errors < error_limit); + } else + for (a3 = 0; a3 < test_counts[2]; a3++) { + errors += + test_3_arg(t->solution_funct, t->test_funct, test_vals[0][a1], + test_vals[1][a2], test_vals[2][a3], t->name, + report && errors < error_limit); + } + } + } + + if (!grade) { + if (report && errors > error_limit) + printf("函数 %s 总共有%d个错误!\n", t->name, errors); + } + + return errors; +} + +/* Run series of tests. Return number of errors */ +static int run_tests(int report) { + int i; + int errors = 0; + double points = 0.0; + double max_points = 0.0; + + if (grade) + printf("得分\t错误数\t函数\n"); + + for (i = 0; test_set[i].solution_funct; i++) { + int terrors; + double tscore; + double tpoints; + if (!test_fname || strcmp(test_set[i].name, test_fname) == 0) { + int rating = global_rating ? global_rating : test_set[i].rating; + terrors = test_function(&test_set[i], report); + errors += terrors; + if (test_set[i].args == 0) + tscore = terrors == 0 ? 1.0 : 0.0; + else + tscore = terrors == 0 ? 1.0 : terrors == 1 ? 0.5 : 0.0; + tpoints = rating * tscore; + points += tpoints; + max_points += rating; + if (grade) + printf(" %.1f\t%d\t%s\n", tpoints, terrors, test_set[i].name); + if (report) + printf("测试 %s 得分: %.2f/%.2f\n", test_set[i].name, tpoints, + (double)rating); + } + } + + if (grade) + printf("总分: %.2f/%.2f\n", points, max_points); + else + printf("总共正确得分: %.2f/%.2f\n", points, max_points); + + return errors; +} + +static void usage(char *cmd) { + printf("Usage: %s [-v 0|1] [-hag] [-f ] [-e ]\n", cmd); + printf(" -e 限制对某个函数的报错数目为n(缺省该参数,将会无限制)\n"); + printf(" -f 检查特定名字的函数\n"); + printf(" -g 打印出简要信息(等同于 -v 0 和 -e 0)\n"); + printf(" -h 显示本信息\n"); + printf(" -a 不检查分组\n"); + printf(" -r 对所有问题设置相同的权重n\n"); + printf(" -v 设置显示级别为 n\n"); + printf(" n=0: 仅仅给出最终得分\n"); + printf(" n=1: 另外还给出单项得分(缺省值)\n"); + exit(1); +} + +/* + * main routine + */ + +int main(int argc, char *argv[]) { + int verbose_level = 1; + int errors; + int team_check = 1; + char c; + + /* parse command line args */ + while ((c = getopt(argc, argv, "hagv:f:e:r:")) != -1) + switch (c) { + case 'h': /* help */ + usage(argv[0]); + break; + case 'a': /* Don't check team structure */ + team_check = 0; + break; + case 'g': /* grading summary */ + grade = 1; + break; + case 'v': /* set verbosity level */ + verbose_level = atoi(optarg); + if (verbose_level < 0 || verbose_level > 1) + usage(argv[0]); + break; + case 'f': /* test only one function */ + test_fname = strdup(optarg); + break; + case 'e': /* set error limit */ + error_limit = atoi(optarg); + if (error_limit < 0) + usage(argv[0]); + break; + case 'r': /* set global rating for each problem */ + global_rating = atoi(optarg); + if (global_rating < 0) + usage(argv[0]); + break; + default: + usage(argv[0]); + } + + if (grade) { + error_limit = 0; + verbose_level = 0; + } + + if (team_check) { + if ((*team.name1 == '\0') || (*team.id1 == '\0')) { + printf("%s: 错误!你必须填写所有小组成员!\n", argv[0]); + exit(1); + } else + printf("学生:\t%s\t%s\n", team.name1, team.id1); + + printf("\n"); + } + + /* test each function */ + errors = run_tests(verbose_level > 0); + + if (!grade) { + if (errors > 0) + printf("发现%d个错误!\n", errors); + else { + printf("成功通过所有测试!\n"); + } + } + + return 0; +} diff --git a/datalab/src/btest.h b/datalab/src/btest.h new file mode 100644 index 0000000..a26de91 --- /dev/null +++ b/datalab/src/btest.h @@ -0,0 +1,39 @@ +/* + * CS:APP Data Lab + */ + +/* + * Students work in teams of one. They enter their name and ID + * in a struct of this type in their bits.c file. + */ +typedef struct { + char *name1; /* full name */ + char *id1; /* Andrew ID */ +} team_struct; + +/* Declare different function types */ +typedef int (*funct_t) (void); +typedef int (*funct1_t)(int); +typedef int (*funct2_t)(int, int); +typedef int (*funct3_t)(int, int, int); + +/* Combine all the information about a function and its tests as structure */ +typedef struct { + char *name; + funct_t solution_funct; /* These will typically be casted */ + funct_t test_funct; + int args; + char *ops; + int op_limit; + int rating; + int arg_ranges[3][2]; /* Min & Max values for each argument */ +} test_rec, *test_ptr; + +extern test_rec test_set[]; + + + + + + + diff --git a/datalab/src/decl.c b/datalab/src/decl.c new file mode 100644 index 0000000..44d302d --- /dev/null +++ b/datalab/src/decl.c @@ -0,0 +1,137 @@ +#include +#include +#include + +#define TMin LONG_MIN +#define TMax LONG_MAX + +#include "btest.h" +#include "bits.h" + +test_rec test_set[] = { + + + {"bitAnd", (funct_t) bitAnd, (funct_t) test_bitAnd, 2, "| ~", 8, 1, + {{TMin, TMax},{TMin,TMax},{TMin,TMax}}}, + + + + + + + {"bitXor", (funct_t) bitXor, (funct_t) test_bitXor, 2, "& ~", 14, 2, + {{TMin, TMax},{TMin,TMax},{TMin,TMax}}}, + + + + + + + {"evenBits", (funct_t) evenBits, (funct_t) test_evenBits, 0, + "! ~ & ^ | + << >>", 8, 2, + {{TMin, TMax},{TMin,TMax},{TMin,TMax}}}, + + + + + + + {"getByte", (funct_t) getByte, (funct_t) test_getByte, 2, + "! ~ & ^ | + << >>", 6, 2, + {{TMin, TMax},{0,3},{TMin,TMax}}}, + + + + + + + {"bitMask", (funct_t) bitMask, (funct_t) test_bitMask, 2, + "! ~ & ^ | + << >>", 16, 3, + {{0, 31},{0,31},{TMin,TMax}}}, + + + + + + + {"reverseBytes", (funct_t) reverseBytes, (funct_t) test_reverseBytes, 1, + "! ~ & ^ | + << >>", 25, 3, + {{TMin, TMax},{TMin,TMax},{TMin,TMax}}}, + + + + + + + {"leastBitPos", (funct_t) leastBitPos, (funct_t) test_leastBitPos, 1, "! ~ & ^ | + << >>", 6, 4, + {{TMin, TMax},{TMin,TMax},{TMin,TMax}}}, + + + + + + + {"logicalNeg", (funct_t) logicalNeg, (funct_t) test_logicalNeg, 1, + "~ & ^ | + << >>", 12, 4, + {{TMin, TMax},{TMin,TMax},{TMin,TMax}}}, + + + + + + + + {"minusOne", (funct_t) minusOne, (funct_t) test_minusOne, 0, + "! ~ & ^ | + << >>", 2, 1, + {{TMin, TMax},{TMin,TMax},{TMin,TMax}}}, + + + + + + + {"tmax", (funct_t) tmax, (funct_t) test_tmax, 0, "! ~ & ^ | + << >>", 4, 1, + {{TMin, TMax},{TMin,TMax},{TMin,TMax}}}, + + + + + + + {"negate", (funct_t) negate, (funct_t) test_negate, 1, + "! ~ & ^ | + << >>", 5, 2, + {{TMin, TMax},{TMin,TMax},{TMin,TMax}}}, + + + + + + + {"isPositive", (funct_t) isPositive, (funct_t) test_isPositive, 1, + "! ~ & ^ | + << >>", 8, 3, + {{TMin, TMax},{TMin,TMax},{TMin,TMax}}}, + + + + + + + {"isLess", (funct_t) isLess, (funct_t) test_isLess, 2, + "! ~ & ^ | + << >>", 24, 3, + {{TMin, TMax},{TMin,TMax},{TMin,TMax}}}, + + + + + + + {"sm2tc", (funct_t) sm2tc, (funct_t) test_sm2tc, 1, "! ~ & ^ | + << >>", 15, 4, + {{TMin, TMax},{TMin,TMax},{TMin,TMax}}}, + + + + + + {"", NULL, NULL, 0, "", 0, 0, + {{0, 0},{0,0},{0,0}}} +}; diff --git a/datalab/src/getopt.c b/datalab/src/getopt.c new file mode 100644 index 0000000..1d30f8b --- /dev/null +++ b/datalab/src/getopt.c @@ -0,0 +1,254 @@ +#define _CRT_SECURE_NO_WARNINGS 1 +/***************************************************************************** +* getopt.c - competent and free getopt library. +* $Header: /cvsroot/freegetopt/freegetopt/getopt.c,v 1.2 2003/10/26 03:10:20 vindaci Exp $ +* +* Copyright (c)2002-2003 Mark K. Kim +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* +* * Neither the original author of this software nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +* THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +* DAMAGE. +*/ +#include +#include +#include +#include "getopt.h" + + +//static const char* ID = "$Id: getopt.c,v 1.2 2003/10/26 03:10:20 vindaci Exp $"; + + +char* optarg = NULL; +int optind = 0; +int opterr = 1; +int optopt = '?'; + + +static char** prev_argv = NULL; /* Keep a copy of argv and argc to */ +static int prev_argc = 0; /* tell if getopt params change */ +static int argv_index = 0; /* Option we're checking */ +static int argv_index2 = 0; /* Option argument we're checking */ +static int opt_offset = 0; /* Index into compounded "-option" */ +static int dashdash = 0; /* True if "--" option reached */ +static int nonopt = 0; /* How many nonopts we've found */ + +static void increment_index(void); +static int permute_argv_once(void); + +static void increment_index(void) +{ + /* Move onto the next option */ + if(argv_index < argv_index2) + { + while(prev_argv[++argv_index] && prev_argv[argv_index][0] != '-' + && argv_index < argv_index2+1); + } + else argv_index++; + opt_offset = 1; +} + + +/* +* Permutes argv[] so that the argument currently being processed is moved +* to the end. +*/ +static int permute_argv_once(void) +{ + /* Movability check */ + if(argv_index + nonopt >= prev_argc) return 1; + /* Move the current option to the end, bring the others to front */ + else + { + char* tmp = prev_argv[argv_index]; + + /* Move the data */ + memmove(&prev_argv[argv_index], &prev_argv[argv_index+1], + sizeof(char**) * (prev_argc - argv_index - 1)); + prev_argv[prev_argc - 1] = tmp; + + nonopt++; + return 0; + } +} + + +int getopt(int argc, char** argv, char* optstr) +{ + int c = 0; + + /* If we have new argv, reinitialize */ + if(prev_argv != argv || prev_argc != argc) + { + /* Initialize variables */ + prev_argv = argv; + prev_argc = argc; + argv_index = 1; + argv_index2 = 1; + opt_offset = 1; + dashdash = 0; + nonopt = 0; + } + + /* Jump point in case we want to ignore the current argv_index */ + getopt_top: + + /* Misc. initializations */ + optarg = NULL; + + /* Dash-dash check */ + if(argv[argv_index] && !strcmp(argv[argv_index], "--")) + { + dashdash = 1; + increment_index(); + } + + /* If we're at the end of argv, that's it. */ + if(argv[argv_index] == NULL) + { + c = -1; + } + /* Are we looking at a string? Single dash is also a string */ + else if(dashdash || argv[argv_index][0] != '-' || !strcmp(argv[argv_index], "-")) + { + /* If we want a string... */ + if(optstr[0] == '-') + { + c = 1; + optarg = argv[argv_index]; + increment_index(); + } + /* If we really don't want it (we're in POSIX mode), we're done */ + else if(optstr[0] == '+' || getenv("POSIXLY_CORRECT")) + { + c = -1; + + /* Everything else is a non-opt argument */ + nonopt = argc - argv_index; + } + /* If we mildly don't want it, then move it back */ + else + { + if(!permute_argv_once()) goto getopt_top; + else c = -1; + } + } + /* Otherwise we're looking at an option */ + else + { + char* opt_ptr = NULL; + + /* Grab the option */ + c = argv[argv_index][opt_offset++]; + + /* Is the option in the optstr? */ + if(optstr[0] == '-') opt_ptr = strchr(optstr+1, c); + else opt_ptr = strchr(optstr, c); + /* Invalid argument */ + if(!opt_ptr) + { + if(opterr) + { + fprintf(stderr, "%s: invalid option -- %c\n", argv[0], c); + } + + optopt = c; + c = '?'; + + /* Move onto the next option */ + increment_index(); + } + /* Option takes argument */ + else if(opt_ptr[1] == ':') + { + /* ie, -oARGUMENT, -xxxoARGUMENT, etc. */ + if(argv[argv_index][opt_offset] != '\0') + { + optarg = &argv[argv_index][opt_offset]; + increment_index(); + } + /* ie, -o ARGUMENT (only if it's a required argument) */ + else if(opt_ptr[2] != ':') + { + /* One of those "you're not expected to understand this" moment */ + if(argv_index2 < argv_index) argv_index2 = argv_index; + while(argv[++argv_index2] && argv[argv_index2][0] == '-'); + optarg = argv[argv_index2]; + + /* Don't cross into the non-option argument list */ + if(argv_index2 + nonopt >= prev_argc) optarg = NULL; + + /* Move onto the next option */ + increment_index(); + } + else + { + /* Move onto the next option */ + increment_index(); + } + + /* In case we got no argument for an option with required argument */ + if(optarg == NULL && opt_ptr[2] != ':') + { + optopt = c; + c = '?'; + + if(opterr) + { + fprintf(stderr,"%s: option requires an argument -- %c\n", + argv[0], optopt); + } + } + } + /* Option does not take argument */ + else + { + /* Next argv_index */ + if(argv[argv_index][opt_offset] == '\0') + { + increment_index(); + } + } + } + + /* Calculate optind */ + if(c == -1) + { + optind = argc - nonopt; + } + else + { + optind = argv_index; + } + + return c; +} + + +/* vim:ts=3 +*/ diff --git a/datalab/src/getopt.h b/datalab/src/getopt.h new file mode 100644 index 0000000..0b78650 --- /dev/null +++ b/datalab/src/getopt.h @@ -0,0 +1,63 @@ +/***************************************************************************** +* getopt.h - competent and free getopt library. +* $Header: /cvsroot/freegetopt/freegetopt/getopt.h,v 1.2 2003/10/26 03:10:20 vindaci Exp $ +* +* Copyright (c)2002-2003 Mark K. Kim +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* +* * Neither the original author of this software nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +* THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +* DAMAGE. +*/ +#ifndef GETOPT_H_ +#define GETOPT_H_ + + +#ifdef __cplusplus +extern "C" { +#endif + + +extern char* optarg; +extern int optind; +extern int opterr; +extern int optopt; + +int getopt(int argc, char** argv, char* optstr); + + +#ifdef __cplusplus +} +#endif + + +#endif /* GETOPT_H_ */ + + +/* vim:ts=3 +*/ diff --git a/datalab/src/tests.c b/datalab/src/tests.c new file mode 100644 index 0000000..4ad3b53 --- /dev/null +++ b/datalab/src/tests.c @@ -0,0 +1,175 @@ +/* Testing Code */ + +#include + + + + +int test_bitAnd(int x, int y) +{ + return x&y; +} + + + + + + +int test_bitXor(int x, int y) +{ + return x^y; +} + + + + + + +int test_evenBits(void) { + int result = 0; + int i; + for (i = 0; i < 32; i+=2) + result |= 1< 0; +} + + + + + + +int test_isLess(int x, int y) +{ + return x < y; +} + + + + + + +int test_sm2tc(int x) { + int sign = x < 0; + int mag = x & LONG_MAX; + return sign ? -mag : mag; +} + + + diff --git a/datalab/计算机系统原理-实验1.pptx b/datalab/计算机系统原理-实验1.pptx new file mode 100644 index 0000000..1d6cd19 Binary files /dev/null and b/datalab/计算机系统原理-实验1.pptx differ