diff options
| -rw-r--r-- | bomblab/ans.txt | 6 | ||||
| -rw-r--r-- | bomblab/bomb.asm | 3099 | ||||
| -rw-r--r-- | bomblab/phase6.asm | 199 | ||||
| -rw-r--r-- | bomblab/solution.md | 56 | ||||
| -rw-r--r-- | bomblab/static.txt | 82 |
5 files changed, 1838 insertions, 1604 deletions
diff --git a/bomblab/ans.txt b/bomblab/ans.txt new file mode 100644 index 0000000..1d54cee --- /dev/null +++ b/bomblab/ans.txt @@ -0,0 +1,6 @@ +Border relations with Canada have never been better. +1 2 4 8 16 32 +7 327 +7 0 +ionefg +4 3 2 1 6 5 diff --git a/bomblab/bomb.asm b/bomblab/bomb.asm index 5d6d553..29a2a11 100644 --- a/bomblab/bomb.asm +++ b/bomblab/bomb.asm @@ -5,1737 +5,1640 @@ bomb: file format elf64-x86-64 Disassembly of section .init: 0000000000400ac0 <_init>: - 400ac0: 48 83 ec 08 sub $0x8,%rsp - 400ac4: e8 f3 01 00 00 call 400cbc <call_gmon_start> - 400ac9: 48 83 c4 08 add $0x8,%rsp - 400acd: c3 ret + 400ac0: sub $0x8,%rsp + 400ac4: call 400cbc <call_gmon_start> + 400ac9: add $0x8,%rsp + 400acd: ret Disassembly of section .plt: 0000000000400ad0 <.plt>: - 400ad0: ff 35 1a 25 20 00 push 0x20251a(%rip) # 602ff0 <_GLOBAL_OFFSET_TABLE_+0x8> - 400ad6: ff 25 1c 25 20 00 jmp *0x20251c(%rip) # 602ff8 <_GLOBAL_OFFSET_TABLE_+0x10> - 400adc: 0f 1f 40 00 nopl 0x0(%rax) + 400ad0: push 0x20251a(%rip) # 602ff0 <_GLOBAL_OFFSET_TABLE_+0x8> + 400ad6: jmp *0x20251c(%rip) # 602ff8 <_GLOBAL_OFFSET_TABLE_+0x10> + 400adc: nopl 0x0(%rax) 0000000000400ae0 <getenv@plt>: - 400ae0: ff 25 1a 25 20 00 jmp *0x20251a(%rip) # 603000 <getenv@GLIBC_2.2.5> - 400ae6: 68 00 00 00 00 push $0x0 - 400aeb: e9 e0 ff ff ff jmp 400ad0 <.plt> + 400ae0: jmp *0x20251a(%rip) # 603000 <getenv@GLIBC_2.2.5> + 400ae6: push $0x0 + 400aeb: jmp 400ad0 <.plt> 0000000000400af0 <__errno_location@plt>: - 400af0: ff 25 12 25 20 00 jmp *0x202512(%rip) # 603008 <__errno_location@GLIBC_2.2.5> - 400af6: 68 01 00 00 00 push $0x1 - 400afb: e9 d0 ff ff ff jmp 400ad0 <.plt> + 400af0: jmp *0x202512(%rip) # 603008 <__errno_location@GLIBC_2.2.5> + 400af6: push $0x1 + 400afb: jmp 400ad0 <.plt> 0000000000400b00 <strcpy@plt>: - 400b00: ff 25 0a 25 20 00 jmp *0x20250a(%rip) # 603010 <strcpy@GLIBC_2.2.5> - 400b06: 68 02 00 00 00 push $0x2 - 400b0b: e9 c0 ff ff ff jmp 400ad0 <.plt> + 400b00: jmp *0x20250a(%rip) # 603010 <strcpy@GLIBC_2.2.5> + 400b06: push $0x2 + 400b0b: jmp 400ad0 <.plt> 0000000000400b10 <puts@plt>: - 400b10: ff 25 02 25 20 00 jmp *0x202502(%rip) # 603018 <puts@GLIBC_2.2.5> - 400b16: 68 03 00 00 00 push $0x3 - 400b1b: e9 b0 ff ff ff jmp 400ad0 <.plt> + 400b10: jmp *0x202502(%rip) # 603018 <puts@GLIBC_2.2.5> + 400b16: push $0x3 + 400b1b: jmp 400ad0 <.plt> 0000000000400b20 <write@plt>: - 400b20: ff 25 fa 24 20 00 jmp *0x2024fa(%rip) # 603020 <write@GLIBC_2.2.5> - 400b26: 68 04 00 00 00 push $0x4 - 400b2b: e9 a0 ff ff ff jmp 400ad0 <.plt> + 400b20: jmp *0x2024fa(%rip) # 603020 <write@GLIBC_2.2.5> + 400b26: push $0x4 + 400b2b: jmp 400ad0 <.plt> 0000000000400b30 <__stack_chk_fail@plt>: - 400b30: ff 25 f2 24 20 00 jmp *0x2024f2(%rip) # 603028 <__stack_chk_fail@GLIBC_2.4> - 400b36: 68 05 00 00 00 push $0x5 - 400b3b: e9 90 ff ff ff jmp 400ad0 <.plt> + 400b30: jmp *0x2024f2(%rip) # 603028 <__stack_chk_fail@GLIBC_2.4> + 400b36: push $0x5 + 400b3b: jmp 400ad0 <.plt> 0000000000400b40 <alarm@plt>: - 400b40: ff 25 ea 24 20 00 jmp *0x2024ea(%rip) # 603030 <alarm@GLIBC_2.2.5> - 400b46: 68 06 00 00 00 push $0x6 - 400b4b: e9 80 ff ff ff jmp 400ad0 <.plt> + 400b40: jmp *0x2024ea(%rip) # 603030 <alarm@GLIBC_2.2.5> + 400b46: push $0x6 + 400b4b: jmp 400ad0 <.plt> 0000000000400b50 <close@plt>: - 400b50: ff 25 e2 24 20 00 jmp *0x2024e2(%rip) # 603038 <close@GLIBC_2.2.5> - 400b56: 68 07 00 00 00 push $0x7 - 400b5b: e9 70 ff ff ff jmp 400ad0 <.plt> + 400b50: jmp *0x2024e2(%rip) # 603038 <close@GLIBC_2.2.5> + 400b56: push $0x7 + 400b5b: jmp 400ad0 <.plt> 0000000000400b60 <read@plt>: - 400b60: ff 25 da 24 20 00 jmp *0x2024da(%rip) # 603040 <read@GLIBC_2.2.5> - 400b66: 68 08 00 00 00 push $0x8 - 400b6b: e9 60 ff ff ff jmp 400ad0 <.plt> + 400b60: jmp *0x2024da(%rip) # 603040 <read@GLIBC_2.2.5> + 400b66: push $0x8 + 400b6b: jmp 400ad0 <.plt> 0000000000400b70 <__libc_start_main@plt>: - 400b70: ff 25 d2 24 20 00 jmp *0x2024d2(%rip) # 603048 <__libc_start_main@GLIBC_2.2.5> - 400b76: 68 09 00 00 00 push $0x9 - 400b7b: e9 50 ff ff ff jmp 400ad0 <.plt> + 400b70: jmp *0x2024d2(%rip) # 603048 <__libc_start_main@GLIBC_2.2.5> + 400b76: push $0x9 + 400b7b: jmp 400ad0 <.plt> 0000000000400b80 <fgets@plt>: - 400b80: ff 25 ca 24 20 00 jmp *0x2024ca(%rip) # 603050 <fgets@GLIBC_2.2.5> - 400b86: 68 0a 00 00 00 push $0xa - 400b8b: e9 40 ff ff ff jmp 400ad0 <.plt> + 400b80: jmp *0x2024ca(%rip) # 603050 <fgets@GLIBC_2.2.5> + 400b86: push $0xa + 400b8b: jmp 400ad0 <.plt> 0000000000400b90 <signal@plt>: - 400b90: ff 25 c2 24 20 00 jmp *0x2024c2(%rip) # 603058 <signal@GLIBC_2.2.5> - 400b96: 68 0b 00 00 00 push $0xb - 400b9b: e9 30 ff ff ff jmp 400ad0 <.plt> + 400b90: jmp *0x2024c2(%rip) # 603058 <signal@GLIBC_2.2.5> + 400b96: push $0xb + 400b9b: jmp 400ad0 <.plt> 0000000000400ba0 <gethostbyname@plt>: - 400ba0: ff 25 ba 24 20 00 jmp *0x2024ba(%rip) # 603060 <gethostbyname@GLIBC_2.2.5> - 400ba6: 68 0c 00 00 00 push $0xc - 400bab: e9 20 ff ff ff jmp 400ad0 <.plt> + 400ba0: jmp *0x2024ba(%rip) # 603060 <gethostbyname@GLIBC_2.2.5> + 400ba6: push $0xc + 400bab: jmp 400ad0 <.plt> 0000000000400bb0 <__memmove_chk@plt>: - 400bb0: ff 25 b2 24 20 00 jmp *0x2024b2(%rip) # 603068 <__memmove_chk@GLIBC_2.3.4> - 400bb6: 68 0d 00 00 00 push $0xd - 400bbb: e9 10 ff ff ff jmp 400ad0 <.plt> + 400bb0: jmp *0x2024b2(%rip) # 603068 <__memmove_chk@GLIBC_2.3.4> + 400bb6: push $0xd + 400bbb: jmp 400ad0 <.plt> 0000000000400bc0 <__memcpy_chk@plt>: - 400bc0: ff 25 aa 24 20 00 jmp *0x2024aa(%rip) # 603070 <__memcpy_chk@GLIBC_2.3.4> - 400bc6: 68 0e 00 00 00 push $0xe - 400bcb: e9 00 ff ff ff jmp 400ad0 <.plt> + 400bc0: jmp *0x2024aa(%rip) # 603070 <__memcpy_chk@GLIBC_2.3.4> + 400bc6: push $0xe + 400bcb: jmp 400ad0 <.plt> 0000000000400bd0 <strtol@plt>: - 400bd0: ff 25 a2 24 20 00 jmp *0x2024a2(%rip) # 603078 <strtol@GLIBC_2.2.5> - 400bd6: 68 0f 00 00 00 push $0xf - 400bdb: e9 f0 fe ff ff jmp 400ad0 <.plt> + 400bd0: jmp *0x2024a2(%rip) # 603078 <strtol@GLIBC_2.2.5> + 400bd6: push $0xf + 400bdb: jmp 400ad0 <.plt> 0000000000400be0 <fflush@plt>: - 400be0: ff 25 9a 24 20 00 jmp *0x20249a(%rip) # 603080 <fflush@GLIBC_2.2.5> - 400be6: 68 10 00 00 00 push $0x10 - 400beb: e9 e0 fe ff ff jmp 400ad0 <.plt> + 400be0: jmp *0x20249a(%rip) # 603080 <fflush@GLIBC_2.2.5> + 400be6: push $0x10 + 400beb: jmp 400ad0 <.plt> 0000000000400bf0 <__isoc99_sscanf@plt>: - 400bf0: ff 25 92 24 20 00 jmp *0x202492(%rip) # 603088 <__isoc99_sscanf@GLIBC_2.7> - 400bf6: 68 11 00 00 00 push $0x11 - 400bfb: e9 d0 fe ff ff jmp 400ad0 <.plt> + 400bf0: jmp *0x202492(%rip) # 603088 <__isoc99_sscanf@GLIBC_2.7> + 400bf6: push $0x11 + 400bfb: jmp 400ad0 <.plt> 0000000000400c00 <__printf_chk@plt>: - 400c00: ff 25 8a 24 20 00 jmp *0x20248a(%rip) # 603090 <__printf_chk@GLIBC_2.3.4> - 400c06: 68 12 00 00 00 push $0x12 - 400c0b: e9 c0 fe ff ff jmp 400ad0 <.plt> + 400c00: jmp *0x20248a(%rip) # 603090 <__printf_chk@GLIBC_2.3.4> + 400c06: push $0x12 + 400c0b: jmp 400ad0 <.plt> 0000000000400c10 <fopen@plt>: - 400c10: ff 25 82 24 20 00 jmp *0x202482(%rip) # 603098 <fopen@GLIBC_2.2.5> - 400c16: 68 13 00 00 00 push $0x13 - 400c1b: e9 b0 fe ff ff jmp 400ad0 <.plt> + 400c10: jmp *0x202482(%rip) # 603098 <fopen@GLIBC_2.2.5> + 400c16: push $0x13 + 400c1b: jmp 400ad0 <.plt> 0000000000400c20 <exit@plt>: - 400c20: ff 25 7a 24 20 00 jmp *0x20247a(%rip) # 6030a0 <exit@GLIBC_2.2.5> - 400c26: 68 14 00 00 00 push $0x14 - 400c2b: e9 a0 fe ff ff jmp 400ad0 <.plt> + 400c20: jmp *0x20247a(%rip) # 6030a0 <exit@GLIBC_2.2.5> + 400c26: push $0x14 + 400c2b: jmp 400ad0 <.plt> 0000000000400c30 <connect@plt>: - 400c30: ff 25 72 24 20 00 jmp *0x202472(%rip) # 6030a8 <connect@GLIBC_2.2.5> - 400c36: 68 15 00 00 00 push $0x15 - 400c3b: e9 90 fe ff ff jmp 400ad0 <.plt> + 400c30: jmp *0x202472(%rip) # 6030a8 <connect@GLIBC_2.2.5> + 400c36: push $0x15 + 400c3b: jmp 400ad0 <.plt> 0000000000400c40 <__fprintf_chk@plt>: - 400c40: ff 25 6a 24 20 00 jmp *0x20246a(%rip) # 6030b0 <__fprintf_chk@GLIBC_2.3.4> - 400c46: 68 16 00 00 00 push $0x16 - 400c4b: e9 80 fe ff ff jmp 400ad0 <.plt> + 400c40: jmp *0x20246a(%rip) # 6030b0 <__fprintf_chk@GLIBC_2.3.4> + 400c46: push $0x16 + 400c4b: jmp 400ad0 <.plt> 0000000000400c50 <sleep@plt>: - 400c50: ff 25 62 24 20 00 jmp *0x202462(%rip) # 6030b8 <sleep@GLIBC_2.2.5> - 400c56: 68 17 00 00 00 push $0x17 - 400c5b: e9 70 fe ff ff jmp 400ad0 <.plt> + 400c50: jmp *0x202462(%rip) # 6030b8 <sleep@GLIBC_2.2.5> + 400c56: push $0x17 + 400c5b: jmp 400ad0 <.plt> 0000000000400c60 <__ctype_b_loc@plt>: - 400c60: ff 25 5a 24 20 00 jmp *0x20245a(%rip) # 6030c0 <__ctype_b_loc@GLIBC_2.3> - 400c66: 68 18 00 00 00 push $0x18 - 400c6b: e9 60 fe ff ff jmp 400ad0 <.plt> + 400c60: jmp *0x20245a(%rip) # 6030c0 <__ctype_b_loc@GLIBC_2.3> + 400c66: push $0x18 + 400c6b: jmp 400ad0 <.plt> 0000000000400c70 <__sprintf_chk@plt>: - 400c70: ff 25 52 24 20 00 jmp *0x202452(%rip) # 6030c8 <__sprintf_chk@GLIBC_2.3.4> - 400c76: 68 19 00 00 00 push $0x19 - 400c7b: e9 50 fe ff ff jmp 400ad0 <.plt> + 400c70: jmp *0x202452(%rip) # 6030c8 <__sprintf_chk@GLIBC_2.3.4> + 400c76: push $0x19 + 400c7b: jmp 400ad0 <.plt> 0000000000400c80 <socket@plt>: - 400c80: ff 25 4a 24 20 00 jmp *0x20244a(%rip) # 6030d0 <socket@GLIBC_2.2.5> - 400c86: 68 1a 00 00 00 push $0x1a - 400c8b: e9 40 fe ff ff jmp 400ad0 <.plt> + 400c80: jmp *0x20244a(%rip) # 6030d0 <socket@GLIBC_2.2.5> + 400c86: push $0x1a + 400c8b: jmp 400ad0 <.plt> Disassembly of section .text: 0000000000400c90 <_start>: - 400c90: 31 ed xor %ebp,%ebp - 400c92: 49 89 d1 mov %rdx,%r9 - 400c95: 5e pop %rsi - 400c96: 48 89 e2 mov %rsp,%rdx - 400c99: 48 83 e4 f0 and $0xfffffffffffffff0,%rsp - 400c9d: 50 push %rax - 400c9e: 54 push %rsp - 400c9f: 49 c7 c0 a0 22 40 00 mov $0x4022a0,%r8 - 400ca6: 48 c7 c1 10 22 40 00 mov $0x402210,%rcx - 400cad: 48 c7 c7 a0 0d 40 00 mov $0x400da0,%rdi - 400cb4: e8 b7 fe ff ff call 400b70 <__libc_start_main@plt> - 400cb9: f4 hlt - 400cba: 90 nop - 400cbb: 90 nop + 400c90: xor %ebp,%ebp + 400c92: mov %rdx,%r9 + 400c95: pop %rsi + 400c96: mov %rsp,%rdx + 400c99: and $0xfffffffffffffff0,%rsp + 400c9d: push %rax + 400c9e: push %rsp + 400c9f: mov $0x4022a0,%r8 + 400ca6: mov $0x402210,%rcx + 400cad: mov $0x400da0,%rdi + 400cb4: call 400b70 <__libc_start_main@plt> + 400cb9: hlt + 400cba: nop + 400cbb: nop 0000000000400cbc <call_gmon_start>: - 400cbc: 48 83 ec 08 sub $0x8,%rsp - 400cc0: 48 8b 05 19 23 20 00 mov 0x202319(%rip),%rax # 602fe0 <__gmon_start__> - 400cc7: 48 85 c0 test %rax,%rax - 400cca: 74 02 je 400cce <call_gmon_start+0x12> - 400ccc: ff d0 call *%rax - 400cce: 48 83 c4 08 add $0x8,%rsp - 400cd2: c3 ret - 400cd3: 90 nop - 400cd4: 90 nop - 400cd5: 90 nop - 400cd6: 90 nop - 400cd7: 90 nop - 400cd8: 90 nop - 400cd9: 90 nop - 400cda: 90 nop - 400cdb: 90 nop - 400cdc: 90 nop - 400cdd: 90 nop - 400cde: 90 nop - 400cdf: 90 nop + 400cbc: sub $0x8,%rsp + 400cc0: mov 0x202319(%rip),%rax # 602fe0 <__gmon_start__> + 400cc7: test %rax,%rax + 400cca: je 400cce <call_gmon_start+0x12> + 400ccc: call *%rax + 400cce: add $0x8,%rsp + 400cd2: ret + 400cd3: nop + 400cd4: nop + 400cd5: nop + 400cd6: nop + 400cd7: nop + 400cd8: nop + 400cd9: nop + 400cda: nop + 400cdb: nop + 400cdc: nop + 400cdd: nop + 400cde: nop + 400cdf: nop 0000000000400ce0 <deregister_tm_clones>: - 400ce0: b8 47 37 60 00 mov $0x603747,%eax - 400ce5: 55 push %rbp - 400ce6: 48 2d 40 37 60 00 sub $0x603740,%rax - 400cec: 48 83 f8 0e cmp $0xe,%rax - 400cf0: 48 89 e5 mov %rsp,%rbp - 400cf3: 77 02 ja 400cf7 <deregister_tm_clones+0x17> - 400cf5: 5d pop %rbp - 400cf6: c3 ret - 400cf7: b8 00 00 00 00 mov $0x0,%eax - 400cfc: 48 85 c0 test %rax,%rax - 400cff: 74 f4 je 400cf5 <deregister_tm_clones+0x15> - 400d01: 5d pop %rbp - 400d02: bf 40 37 60 00 mov $0x603740,%edi - 400d07: ff e0 jmp *%rax - 400d09: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 400ce0: mov $0x603747,%eax + 400ce5: push %rbp + 400ce6: sub $0x603740,%rax + 400cec: cmp $0xe,%rax + 400cf0: mov %rsp,%rbp + 400cf3: ja 400cf7 <deregister_tm_clones+0x17> + 400cf5: pop %rbp + 400cf6: ret + 400cf7: mov $0x0,%eax + 400cfc: test %rax,%rax + 400cff: je 400cf5 <deregister_tm_clones+0x15> + 400d01: pop %rbp + 400d02: mov $0x603740,%edi + 400d07: jmp *%rax + 400d09: nopl 0x0(%rax) 0000000000400d10 <register_tm_clones>: - 400d10: b8 40 37 60 00 mov $0x603740,%eax - 400d15: 55 push %rbp - 400d16: 48 2d 40 37 60 00 sub $0x603740,%rax - 400d1c: 48 c1 f8 03 sar $0x3,%rax - 400d20: 48 89 e5 mov %rsp,%rbp - 400d23: 48 89 c2 mov %rax,%rdx - 400d26: 48 c1 ea 3f shr $0x3f,%rdx - 400d2a: 48 01 d0 add %rdx,%rax - 400d2d: 48 d1 f8 sar $1,%rax - 400d30: 75 02 jne 400d34 <register_tm_clones+0x24> - 400d32: 5d pop %rbp - 400d33: c3 ret - 400d34: ba 00 00 00 00 mov $0x0,%edx - 400d39: 48 85 d2 test %rdx,%rdx - 400d3c: 74 f4 je 400d32 <register_tm_clones+0x22> - 400d3e: 5d pop %rbp - 400d3f: 48 89 c6 mov %rax,%rsi - 400d42: bf 40 37 60 00 mov $0x603740,%edi - 400d47: ff e2 jmp *%rdx - 400d49: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 400d10: mov $0x603740,%eax + 400d15: push %rbp + 400d16: sub $0x603740,%rax + 400d1c: sar $0x3,%rax + 400d20: mov %rsp,%rbp + 400d23: mov %rax,%rdx + 400d26: shr $0x3f,%rdx + 400d2a: add %rdx,%rax + 400d2d: sar $1,%rax + 400d30: jne 400d34 <register_tm_clones+0x24> + 400d32: pop %rbp + 400d33: ret + 400d34: mov $0x0,%edx + 400d39: test %rdx,%rdx + 400d3c: je 400d32 <register_tm_clones+0x22> + 400d3e: pop %rbp + 400d3f: mov %rax,%rsi + 400d42: mov $0x603740,%edi + 400d47: jmp *%rdx + 400d49: nopl 0x0(%rax) 0000000000400d50 <__do_global_dtors_aux>: - 400d50: 80 3d 01 2a 20 00 00 cmpb $0x0,0x202a01(%rip) # 603758 <completed.6976> - 400d57: 75 11 jne 400d6a <__do_global_dtors_aux+0x1a> - 400d59: 55 push %rbp - 400d5a: 48 89 e5 mov %rsp,%rbp - 400d5d: e8 7e ff ff ff call 400ce0 <deregister_tm_clones> - 400d62: 5d pop %rbp - 400d63: c6 05 ee 29 20 00 01 movb $0x1,0x2029ee(%rip) # 603758 <completed.6976> - 400d6a: f3 c3 repz ret - 400d6c: 0f 1f 40 00 nopl 0x0(%rax) + 400d50: cmpb $0x0,0x202a01(%rip) # 603758 <completed.6976> + 400d57: jne 400d6a <__do_global_dtors_aux+0x1a> + 400d59: push %rbp + 400d5a: mov %rsp,%rbp + 400d5d: call 400ce0 <deregister_tm_clones> + 400d62: pop %rbp + 400d63: movb $0x1,0x2029ee(%rip) # 603758 <completed.6976> + 400d6a: repz ret + 400d6c: nopl 0x0(%rax) 0000000000400d70 <frame_dummy>: - 400d70: 48 83 3d 90 20 20 00 cmpq $0x0,0x202090(%rip) # 602e08 <__JCR_END__> - 400d77: 00 - 400d78: 74 1e je 400d98 <frame_dummy+0x28> - 400d7a: b8 00 00 00 00 mov $0x0,%eax - 400d7f: 48 85 c0 test %rax,%rax - 400d82: 74 14 je 400d98 <frame_dummy+0x28> - 400d84: 55 push %rbp - 400d85: bf 08 2e 60 00 mov $0x602e08,%edi - 400d8a: 48 89 e5 mov %rsp,%rbp - 400d8d: ff d0 call *%rax - 400d8f: 5d pop %rbp - 400d90: e9 7b ff ff ff jmp 400d10 <register_tm_clones> - 400d95: 0f 1f 00 nopl (%rax) - 400d98: e9 73 ff ff ff jmp 400d10 <register_tm_clones> - 400d9d: 90 nop - 400d9e: 90 nop - 400d9f: 90 nop + 400d70: cmpq $0x0,0x202090(%rip) # 602e08 <__JCR_END__> + 400d78: je 400d98 <frame_dummy+0x28> + 400d7a: mov $0x0,%eax + 400d7f: test %rax,%rax + 400d82: je 400d98 <frame_dummy+0x28> + 400d84: push %rbp + 400d85: mov $0x602e08,%edi + 400d8a: mov %rsp,%rbp + 400d8d: call *%rax + 400d8f: pop %rbp + 400d90: jmp 400d10 <register_tm_clones> + 400d95: nopl (%rax) + 400d98: jmp 400d10 <register_tm_clones> + 400d9d: nop + 400d9e: nop + 400d9f: nop 0000000000400da0 <main>: - 400da0: 53 push %rbx - 400da1: 83 ff 01 cmp $0x1,%edi - 400da4: 75 10 jne 400db6 <main+0x16> - 400da6: 48 8b 05 9b 29 20 00 mov 0x20299b(%rip),%rax # 603748 <stdin@GLIBC_2.2.5> - 400dad: 48 89 05 b4 29 20 00 mov %rax,0x2029b4(%rip) # 603768 <infile> - 400db4: eb 63 jmp 400e19 <main+0x79> - 400db6: 48 89 f3 mov %rsi,%rbx - 400db9: 83 ff 02 cmp $0x2,%edi - 400dbc: 75 3a jne 400df8 <main+0x58> - 400dbe: 48 8b 7e 08 mov 0x8(%rsi),%rdi - 400dc2: be b4 22 40 00 mov $0x4022b4,%esi - 400dc7: e8 44 fe ff ff call 400c10 <fopen@plt> - 400dcc: 48 89 05 95 29 20 00 mov %rax,0x202995(%rip) # 603768 <infile> - 400dd3: 48 85 c0 test %rax,%rax - 400dd6: 75 41 jne 400e19 <main+0x79> - 400dd8: 48 8b 4b 08 mov 0x8(%rbx),%rcx - 400ddc: 48 8b 13 mov (%rbx),%rdx - 400ddf: be b6 22 40 00 mov $0x4022b6,%esi - 400de4: bf 01 00 00 00 mov $0x1,%edi - 400de9: e8 12 fe ff ff call 400c00 <__printf_chk@plt> - 400dee: bf 08 00 00 00 mov $0x8,%edi - 400df3: e8 28 fe ff ff call 400c20 <exit@plt> - 400df8: 48 8b 16 mov (%rsi),%rdx - 400dfb: be d3 22 40 00 mov $0x4022d3,%esi - 400e00: bf 01 00 00 00 mov $0x1,%edi - 400e05: b8 00 00 00 00 mov $0x0,%eax - 400e0a: e8 f1 fd ff ff call 400c00 <__printf_chk@plt> - 400e0f: bf 08 00 00 00 mov $0x8,%edi - 400e14: e8 07 fe ff ff call 400c20 <exit@plt> - 400e19: e8 84 05 00 00 call 4013a2 <initialize_bomb> - 400e1e: bf 38 23 40 00 mov $0x402338,%edi - 400e23: e8 e8 fc ff ff call 400b10 <puts@plt> - 400e28: bf 78 23 40 00 mov $0x402378,%edi - 400e2d: e8 de fc ff ff call 400b10 <puts@plt> - 400e32: e8 67 06 00 00 call 40149e <read_line> - 400e37: 48 89 c7 mov %rax,%rdi - 400e3a: e8 a1 00 00 00 call 400ee0 <phase_1> - 400e3f: e8 80 07 00 00 call 4015c4 <phase_defused> - 400e44: bf a8 23 40 00 mov $0x4023a8,%edi - 400e49: e8 c2 fc ff ff call 400b10 <puts@plt> - 400e4e: e8 4b 06 00 00 call 40149e <read_line> - 400e53: 48 89 c7 mov %rax,%rdi - 400e56: e8 a1 00 00 00 call 400efc <phase_2> - 400e5b: e8 64 07 00 00 call 4015c4 <phase_defused> - 400e60: bf ed 22 40 00 mov $0x4022ed,%edi - 400e65: e8 a6 fc ff ff call 400b10 <puts@plt> - 400e6a: e8 2f 06 00 00 call 40149e <read_line> - 400e6f: 48 89 c7 mov %rax,%rdi - 400e72: e8 cc 00 00 00 call 400f43 <phase_3> - 400e77: e8 48 07 00 00 call 4015c4 <phase_defused> - 400e7c: bf 0b 23 40 00 mov $0x40230b,%edi - 400e81: e8 8a fc ff ff call 400b10 <puts@plt> - 400e86: e8 13 06 00 00 call 40149e <read_line> - 400e8b: 48 89 c7 mov %rax,%rdi - 400e8e: e8 79 01 00 00 call 40100c <phase_4> - 400e93: e8 2c 07 00 00 call 4015c4 <phase_defused> - 400e98: bf d8 23 40 00 mov $0x4023d8,%edi - 400e9d: e8 6e fc ff ff call 400b10 <puts@plt> - 400ea2: e8 f7 05 00 00 call 40149e <read_line> - 400ea7: 48 89 c7 mov %rax,%rdi - 400eaa: e8 b3 01 00 00 call 401062 <phase_5> - 400eaf: e8 10 07 00 00 call 4015c4 <phase_defused> - 400eb4: bf 1a 23 40 00 mov $0x40231a,%edi - 400eb9: e8 52 fc ff ff call 400b10 <puts@plt> - 400ebe: e8 db 05 00 00 call 40149e <read_line> - 400ec3: 48 89 c7 mov %rax,%rdi - 400ec6: e8 29 02 00 00 call 4010f4 <phase_6> - 400ecb: e8 f4 06 00 00 call 4015c4 <phase_defused> - 400ed0: b8 00 00 00 00 mov $0x0,%eax - 400ed5: 5b pop %rbx - 400ed6: c3 ret - 400ed7: 90 nop - 400ed8: 90 nop - 400ed9: 90 nop - 400eda: 90 nop - 400edb: 90 nop - 400edc: 90 nop - 400edd: 90 nop - 400ede: 90 nop - 400edf: 90 nop + 400da0: push %rbx + 400da1: cmp $0x1,%edi + 400da4: jne 400db6 <main+0x16> + 400da6: mov 0x20299b(%rip),%rax # 603748 <stdin@GLIBC_2.2.5> + 400dad: mov %rax,0x2029b4(%rip) # 603768 <infile> + 400db4: jmp 400e19 <main+0x79> + 400db6: mov %rsi,%rbx + 400db9: cmp $0x2,%edi + 400dbc: jne 400df8 <main+0x58> + 400dbe: mov 0x8(%rsi),%rdi + 400dc2: mov $0x4022b4,%esi + 400dc7: call 400c10 <fopen@plt> + 400dcc: mov %rax,0x202995(%rip) # 603768 <infile> + 400dd3: test %rax,%rax + 400dd6: jne 400e19 <main+0x79> +#else + return __vprintf_chk (__USE_FORTIFY_LEVEL - 1, __fmt, __ap); +#endif +} + +__fortify_function __nonnull ((1)) int + 400dd8: mov 0x8(%rbx),%rcx + 400ddc: mov (%rbx),%rdx + 400ddf: mov $0x4022b6,%esi + 400de4: mov $0x1,%edi + 400de9: call 400c00 <__printf_chk@plt> + 400dee: mov $0x8,%edi + 400df3: call 400c20 <exit@plt> + 400df8: mov (%rsi),%rdx + 400dfb: mov $0x4022d3,%esi + 400e00: mov $0x1,%edi + 400e05: mov $0x0,%eax + 400e0a: call 400c00 <__printf_chk@plt> + 400e0f: mov $0x8,%edi + 400e14: call 400c20 <exit@plt> + 400e19: call 4013a2 <initialize_bomb> + 400e1e: mov $0x402338,%edi + 400e23: call 400b10 <puts@plt> + 400e28: mov $0x402378,%edi + 400e2d: call 400b10 <puts@plt> + 400e32: call 40149e <read_line> + 400e37: mov %rax,%rdi + 400e3a: call 400ee0 <phase_1> + 400e3f: call 4015c4 <phase_defused> + 400e44: mov $0x4023a8,%edi + 400e49: call 400b10 <puts@plt> + 400e4e: call 40149e <read_line> + 400e53: mov %rax,%rdi + 400e56: call 400efc <phase_2> + 400e5b: call 4015c4 <phase_defused> + 400e60: mov $0x4022ed,%edi + 400e65: call 400b10 <puts@plt> + 400e6a: call 40149e <read_line> + 400e6f: mov %rax,%rdi + 400e72: call 400f43 <phase_3> + 400e77: call 4015c4 <phase_defused> + 400e7c: mov $0x40230b,%edi + 400e81: call 400b10 <puts@plt> + 400e86: call 40149e <read_line> + 400e8b: mov %rax,%rdi + 400e8e: call 40100c <phase_4> + 400e93: call 4015c4 <phase_defused> + 400e98: mov $0x4023d8,%edi + 400e9d: call 400b10 <puts@plt> + 400ea2: call 40149e <read_line> + 400ea7: mov %rax,%rdi + 400eaa: call 401062 <phase_5> + 400eaf: call 4015c4 <phase_defused> + 400eb4: mov $0x40231a,%edi + 400eb9: call 400b10 <puts@plt> + 400ebe: call 40149e <read_line> + 400ec3: mov %rax,%rdi + 400ec6: call 4010f4 <phase_6> + 400ecb: call 4015c4 <phase_defused> + 400ed0: mov $0x0,%eax + 400ed5: pop %rbx + 400ed6: ret + 400ed7: nop + 400ed8: nop + 400ed9: nop + 400eda: nop + 400edb: nop + 400edc: nop + 400edd: nop + 400ede: nop + 400edf: nop 0000000000400ee0 <phase_1>: - 400ee0: 48 83 ec 08 sub $0x8,%rsp - 400ee4: be 00 24 40 00 mov $0x402400,%esi - 400ee9: e8 4a 04 00 00 call 401338 <strings_not_equal> - 400eee: 85 c0 test %eax,%eax - 400ef0: 74 05 je 400ef7 <phase_1+0x17> - 400ef2: e8 43 05 00 00 call 40143a <explode_bomb> - 400ef7: 48 83 c4 08 add $0x8,%rsp - 400efb: c3 ret + 400ee0: sub $0x8,%rsp + 400ee4: mov $0x402400,%esi + 400ee9: call 401338 <strings_not_equal> + 400eee: test %eax,%eax + 400ef0: je 400ef7 <phase_1+0x17> + 400ef2: call 40143a <explode_bomb> + 400ef7: add $0x8,%rsp + 400efb: ret 0000000000400efc <phase_2>: - 400efc: 55 push %rbp - 400efd: 53 push %rbx - 400efe: 48 83 ec 28 sub $0x28,%rsp - 400f02: 48 89 e6 mov %rsp,%rsi - 400f05: e8 52 05 00 00 call 40145c <read_six_numbers> - 400f0a: 83 3c 24 01 cmpl $0x1,(%rsp) - 400f0e: 74 20 je 400f30 <phase_2+0x34> - 400f10: e8 25 05 00 00 call 40143a <explode_bomb> - 400f15: eb 19 jmp 400f30 <phase_2+0x34> - 400f17: 8b 43 fc mov -0x4(%rbx),%eax - 400f1a: 01 c0 add %eax,%eax - 400f1c: 39 03 cmp %eax,(%rbx) - 400f1e: 74 05 je 400f25 <phase_2+0x29> - 400f20: e8 15 05 00 00 call 40143a <explode_bomb> - 400f25: 48 83 c3 04 add $0x4,%rbx - 400f29: 48 39 eb cmp %rbp,%rbx - 400f2c: 75 e9 jne 400f17 <phase_2+0x1b> - 400f2e: eb 0c jmp 400f3c <phase_2+0x40> - 400f30: 48 8d 5c 24 04 lea 0x4(%rsp),%rbx - 400f35: 48 8d 6c 24 18 lea 0x18(%rsp),%rbp - 400f3a: eb db jmp 400f17 <phase_2+0x1b> - 400f3c: 48 83 c4 28 add $0x28,%rsp - 400f40: 5b pop %rbx - 400f41: 5d pop %rbp - 400f42: c3 ret + 400efc: push %rbp + 400efd: push %rbx + 400efe: sub $0x28,%rsp + 400f02: mov %rsp,%rsi + 400f05: call 40145c <read_six_numbers> + 400f0a: cmpl $0x1,(%rsp) + 400f0e: je 400f30 <phase_2+0x34> + 400f10: call 40143a <explode_bomb> + 400f15: jmp 400f30 <phase_2+0x34> + 400f17: mov -0x4(%rbx),%eax + 400f1a: add %eax,%eax + 400f1c: cmp %eax,(%rbx) + 400f1e: je 400f25 <phase_2+0x29> + 400f20: call 40143a <explode_bomb> + 400f25: add $0x4,%rbx + 400f29: cmp %rbp,%rbx + 400f2c: jne 400f17 <phase_2+0x1b> + 400f2e: jmp 400f3c <phase_2+0x40> + 400f30: lea 0x4(%rsp),%rbx + 400f35: lea 0x18(%rsp),%rbp + 400f3a: jmp 400f17 <phase_2+0x1b> + 400f3c: add $0x28,%rsp + 400f40: pop %rbx + 400f41: pop %rbp + 400f42: ret 0000000000400f43 <phase_3>: - 400f43: 48 83 ec 18 sub $0x18,%rsp - 400f47: 48 8d 4c 24 0c lea 0xc(%rsp),%rcx - 400f4c: 48 8d 54 24 08 lea 0x8(%rsp),%rdx - 400f51: be cf 25 40 00 mov $0x4025cf,%esi - 400f56: b8 00 00 00 00 mov $0x0,%eax - 400f5b: e8 90 fc ff ff call 400bf0 <__isoc99_sscanf@plt> - 400f60: 83 f8 01 cmp $0x1,%eax - 400f63: 7f 05 jg 400f6a <phase_3+0x27> - 400f65: e8 d0 04 00 00 call 40143a <explode_bomb> - 400f6a: 83 7c 24 08 07 cmpl $0x7,0x8(%rsp) - 400f6f: 77 3c ja 400fad <phase_3+0x6a> - 400f71: 8b 44 24 08 mov 0x8(%rsp),%eax - 400f75: ff 24 c5 70 24 40 00 jmp *0x402470(,%rax,8) - 400f7c: b8 cf 00 00 00 mov $0xcf,%eax - 400f81: eb 3b jmp 400fbe <phase_3+0x7b> - 400f83: b8 c3 02 00 00 mov $0x2c3,%eax - 400f88: eb 34 jmp 400fbe <phase_3+0x7b> - 400f8a: b8 00 01 00 00 mov $0x100,%eax - 400f8f: eb 2d jmp 400fbe <phase_3+0x7b> - 400f91: b8 85 01 00 00 mov $0x185,%eax - 400f96: eb 26 jmp 400fbe <phase_3+0x7b> - 400f98: b8 ce 00 00 00 mov $0xce,%eax - 400f9d: eb 1f jmp 400fbe <phase_3+0x7b> - 400f9f: b8 aa 02 00 00 mov $0x2aa,%eax - 400fa4: eb 18 jmp 400fbe <phase_3+0x7b> - 400fa6: b8 47 01 00 00 mov $0x147,%eax - 400fab: eb 11 jmp 400fbe <phase_3+0x7b> - 400fad: e8 88 04 00 00 call 40143a <explode_bomb> - 400fb2: b8 00 00 00 00 mov $0x0,%eax - 400fb7: eb 05 jmp 400fbe <phase_3+0x7b> - 400fb9: b8 37 01 00 00 mov $0x137,%eax - 400fbe: 3b 44 24 0c cmp 0xc(%rsp),%eax - 400fc2: 74 05 je 400fc9 <phase_3+0x86> - 400fc4: e8 71 04 00 00 call 40143a <explode_bomb> - 400fc9: 48 83 c4 18 add $0x18,%rsp - 400fcd: c3 ret + 400f43: sub $0x18,%rsp + 400f47: lea 0xc(%rsp),%rcx + 400f4c: lea 0x8(%rsp),%rdx + 400f51: mov $0x4025cf,%esi + 400f56: mov $0x0,%eax + 400f5b: call 400bf0 <__isoc99_sscanf@plt> + 400f60: cmp $0x1,%eax + 400f63: jg 400f6a <phase_3+0x27> + 400f65: call 40143a <explode_bomb> + 400f6a: cmpl $0x7,0x8(%rsp) + 400f6f: ja 400fad <phase_3+0x6a> + 400f71: mov 0x8(%rsp),%eax + 400f75: jmp *0x402470(,%rax,8) + 400f7c: mov $0xcf,%eax + 400f81: jmp 400fbe <phase_3+0x7b> + 400f83: mov $0x2c3,%eax + 400f88: jmp 400fbe <phase_3+0x7b> + 400f8a: mov $0x100,%eax + 400f8f: jmp 400fbe <phase_3+0x7b> + 400f91: mov $0x185,%eax + 400f96: jmp 400fbe <phase_3+0x7b> + 400f98: mov $0xce,%eax + 400f9d: jmp 400fbe <phase_3+0x7b> + 400f9f: mov $0x2aa,%eax + 400fa4: jmp 400fbe <phase_3+0x7b> + 400fa6: mov $0x147,%eax + 400fab: jmp 400fbe <phase_3+0x7b> + 400fad: call 40143a <explode_bomb> + 400fb2: mov $0x0,%eax + 400fb7: jmp 400fbe <phase_3+0x7b> + 400fb9: mov $0x137,%eax + 400fbe: cmp 0xc(%rsp),%eax + 400fc2: je 400fc9 <phase_3+0x86> + 400fc4: call 40143a <explode_bomb> + 400fc9: add $0x18,%rsp + 400fcd: ret 0000000000400fce <func4>: - 400fce: 48 83 ec 08 sub $0x8,%rsp - 400fd2: 89 d0 mov %edx,%eax - 400fd4: 29 f0 sub %esi,%eax - 400fd6: 89 c1 mov %eax,%ecx - 400fd8: c1 e9 1f shr $0x1f,%ecx - 400fdb: 01 c8 add %ecx,%eax - 400fdd: d1 f8 sar $1,%eax - 400fdf: 8d 0c 30 lea (%rax,%rsi,1),%ecx - 400fe2: 39 f9 cmp %edi,%ecx - 400fe4: 7e 0c jle 400ff2 <func4+0x24> - 400fe6: 8d 51 ff lea -0x1(%rcx),%edx - 400fe9: e8 e0 ff ff ff call 400fce <func4> - 400fee: 01 c0 add %eax,%eax - 400ff0: eb 15 jmp 401007 <func4+0x39> - 400ff2: b8 00 00 00 00 mov $0x0,%eax - 400ff7: 39 f9 cmp %edi,%ecx - 400ff9: 7d 0c jge 401007 <func4+0x39> - 400ffb: 8d 71 01 lea 0x1(%rcx),%esi - 400ffe: e8 cb ff ff ff call 400fce <func4> - 401003: 8d 44 00 01 lea 0x1(%rax,%rax,1),%eax - 401007: 48 83 c4 08 add $0x8,%rsp - 40100b: c3 ret + 400fce: sub $0x8,%rsp + 400fd2: mov %edx,%eax + 400fd4: sub %esi,%eax + 400fd6: mov %eax,%ecx + 400fd8: shr $0x1f,%ecx + 400fdb: add %ecx,%eax + 400fdd: sar $1,%eax + 400fdf: lea (%rax,%rsi,1),%ecx + 400fe2: cmp %edi,%ecx + 400fe4: jle 400ff2 <func4+0x24> + 400fe6: lea -0x1(%rcx),%edx + 400fe9: call 400fce <func4> + 400fee: add %eax,%eax + 400ff0: jmp 401007 <func4+0x39> + 400ff2: mov $0x0,%eax + 400ff7: cmp %edi,%ecx + 400ff9: jge 401007 <func4+0x39> + 400ffb: lea 0x1(%rcx),%esi + 400ffe: call 400fce <func4> + 401003: lea 0x1(%rax,%rax,1),%eax + 401007: add $0x8,%rsp + 40100b: ret 000000000040100c <phase_4>: - 40100c: 48 83 ec 18 sub $0x18,%rsp - 401010: 48 8d 4c 24 0c lea 0xc(%rsp),%rcx - 401015: 48 8d 54 24 08 lea 0x8(%rsp),%rdx - 40101a: be cf 25 40 00 mov $0x4025cf,%esi - 40101f: b8 00 00 00 00 mov $0x0,%eax - 401024: e8 c7 fb ff ff call 400bf0 <__isoc99_sscanf@plt> - 401029: 83 f8 02 cmp $0x2,%eax - 40102c: 75 07 jne 401035 <phase_4+0x29> - 40102e: 83 7c 24 08 0e cmpl $0xe,0x8(%rsp) - 401033: 76 05 jbe 40103a <phase_4+0x2e> - 401035: e8 00 04 00 00 call 40143a <explode_bomb> - 40103a: ba 0e 00 00 00 mov $0xe,%edx - 40103f: be 00 00 00 00 mov $0x0,%esi - 401044: 8b 7c 24 08 mov 0x8(%rsp),%edi - 401048: e8 81 ff ff ff call 400fce <func4> - 40104d: 85 c0 test %eax,%eax - 40104f: 75 07 jne 401058 <phase_4+0x4c> - 401051: 83 7c 24 0c 00 cmpl $0x0,0xc(%rsp) - 401056: 74 05 je 40105d <phase_4+0x51> - 401058: e8 dd 03 00 00 call 40143a <explode_bomb> - 40105d: 48 83 c4 18 add $0x18,%rsp - 401061: c3 ret + 40100c: sub $0x18,%rsp + 401010: lea 0xc(%rsp),%rcx + 401015: lea 0x8(%rsp),%rdx + 40101a: mov $0x4025cf,%esi + 40101f: mov $0x0,%eax + 401024: call 400bf0 <__isoc99_sscanf@plt> + 401029: cmp $0x2,%eax + 40102c: jne 401035 <phase_4+0x29> + 40102e: cmpl $0xe,0x8(%rsp) + 401033: jbe 40103a <phase_4+0x2e> + 401035: call 40143a <explode_bomb> + 40103a: mov $0xe,%edx + 40103f: mov $0x0,%esi + 401044: mov 0x8(%rsp),%edi + 401048: call 400fce <func4> + 40104d: test %eax,%eax + 40104f: jne 401058 <phase_4+0x4c> + 401051: cmpl $0x0,0xc(%rsp) + 401056: je 40105d <phase_4+0x51> + 401058: call 40143a <explode_bomb> + 40105d: add $0x18,%rsp + 401061: ret 0000000000401062 <phase_5>: - 401062: 53 push %rbx - 401063: 48 83 ec 20 sub $0x20,%rsp - 401067: 48 89 fb mov %rdi,%rbx - 40106a: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax - 401071: 00 00 - 401073: 48 89 44 24 18 mov %rax,0x18(%rsp) - 401078: 31 c0 xor %eax,%eax - 40107a: e8 9c 02 00 00 call 40131b <string_length> - 40107f: 83 f8 06 cmp $0x6,%eax - 401082: 74 4e je 4010d2 <phase_5+0x70> - 401084: e8 b1 03 00 00 call 40143a <explode_bomb> - 401089: eb 47 jmp 4010d2 <phase_5+0x70> - 40108b: 0f b6 0c 03 movzbl (%rbx,%rax,1),%ecx - 40108f: 88 0c 24 mov %cl,(%rsp) - 401092: 48 8b 14 24 mov (%rsp),%rdx - 401096: 83 e2 0f and $0xf,%edx - 401099: 0f b6 92 b0 24 40 00 movzbl 0x4024b0(%rdx),%edx - 4010a0: 88 54 04 10 mov %dl,0x10(%rsp,%rax,1) - 4010a4: 48 83 c0 01 add $0x1,%rax - 4010a8: 48 83 f8 06 cmp $0x6,%rax - 4010ac: 75 dd jne 40108b <phase_5+0x29> - 4010ae: c6 44 24 16 00 movb $0x0,0x16(%rsp) - 4010b3: be 5e 24 40 00 mov $0x40245e,%esi - 4010b8: 48 8d 7c 24 10 lea 0x10(%rsp),%rdi - 4010bd: e8 76 02 00 00 call 401338 <strings_not_equal> - 4010c2: 85 c0 test %eax,%eax - 4010c4: 74 13 je 4010d9 <phase_5+0x77> - 4010c6: e8 6f 03 00 00 call 40143a <explode_bomb> - 4010cb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) - 4010d0: eb 07 jmp 4010d9 <phase_5+0x77> - 4010d2: b8 00 00 00 00 mov $0x0,%eax - 4010d7: eb b2 jmp 40108b <phase_5+0x29> - 4010d9: 48 8b 44 24 18 mov 0x18(%rsp),%rax - 4010de: 64 48 33 04 25 28 00 xor %fs:0x28,%rax - 4010e5: 00 00 - 4010e7: 74 05 je 4010ee <phase_5+0x8c> - 4010e9: e8 42 fa ff ff call 400b30 <__stack_chk_fail@plt> - 4010ee: 48 83 c4 20 add $0x20,%rsp - 4010f2: 5b pop %rbx - 4010f3: c3 ret + 401062: push %rbx + 401063: sub $0x20,%rsp + 401067: mov %rdi,%rbx + 40106a: mov %fs:0x28,%rax + 401073: mov %rax,0x18(%rsp) + 401078: xor %eax,%eax + 40107a: call 40131b <string_length> + 40107f: cmp $0x6,%eax + 401082: je 4010d2 <phase_5+0x70> + 401084: call 40143a <explode_bomb> + 401089: jmp 4010d2 <phase_5+0x70> + 40108b: movzbl (%rbx,%rax,1),%ecx + 40108f: mov %cl,(%rsp) + 401092: mov (%rsp),%rdx + 401096: and $0xf,%edx + 401099: movzbl 0x4024b0(%rdx),%edx + 4010a0: mov %dl,0x10(%rsp,%rax,1) + 4010a4: add $0x1,%rax + 4010a8: cmp $0x6,%rax + 4010ac: jne 40108b <phase_5+0x29> + 4010ae: movb $0x0,0x16(%rsp) + 4010b3: mov $0x40245e,%esi + 4010b8: lea 0x10(%rsp),%rdi + 4010bd: call 401338 <strings_not_equal> + 4010c2: test %eax,%eax + 4010c4: je 4010d9 <phase_5+0x77> + 4010c6: call 40143a <explode_bomb> + 4010cb: nopl 0x0(%rax,%rax,1) + 4010d0: jmp 4010d9 <phase_5+0x77> + 4010d2: mov $0x0,%eax + 4010d7: jmp 40108b <phase_5+0x29> + 4010d9: mov 0x18(%rsp),%rax + 4010de: xor %fs:0x28,%rax + 4010e7: je 4010ee <phase_5+0x8c> + 4010e9: call 400b30 <__stack_chk_fail@plt> + 4010ee: add $0x20,%rsp + 4010f2: pop %rbx + 4010f3: ret 00000000004010f4 <phase_6>: - 4010f4: 41 56 push %r14 - 4010f6: 41 55 push %r13 - 4010f8: 41 54 push %r12 - 4010fa: 55 push %rbp - 4010fb: 53 push %rbx - 4010fc: 48 83 ec 50 sub $0x50,%rsp - 401100: 49 89 e5 mov %rsp,%r13 - 401103: 48 89 e6 mov %rsp,%rsi - 401106: e8 51 03 00 00 call 40145c <read_six_numbers> - 40110b: 49 89 e6 mov %rsp,%r14 - 40110e: 41 bc 00 00 00 00 mov $0x0,%r12d - 401114: 4c 89 ed mov %r13,%rbp - 401117: 41 8b 45 00 mov 0x0(%r13),%eax - 40111b: 83 e8 01 sub $0x1,%eax - 40111e: 83 f8 05 cmp $0x5,%eax - 401121: 76 05 jbe 401128 <phase_6+0x34> - 401123: e8 12 03 00 00 call 40143a <explode_bomb> - 401128: 41 83 c4 01 add $0x1,%r12d - 40112c: 41 83 fc 06 cmp $0x6,%r12d - 401130: 74 21 je 401153 <phase_6+0x5f> - 401132: 44 89 e3 mov %r12d,%ebx - 401135: 48 63 c3 movslq %ebx,%rax - 401138: 8b 04 84 mov (%rsp,%rax,4),%eax - 40113b: 39 45 00 cmp %eax,0x0(%rbp) - 40113e: 75 05 jne 401145 <phase_6+0x51> - 401140: e8 f5 02 00 00 call 40143a <explode_bomb> - 401145: 83 c3 01 add $0x1,%ebx - 401148: 83 fb 05 cmp $0x5,%ebx - 40114b: 7e e8 jle 401135 <phase_6+0x41> - 40114d: 49 83 c5 04 add $0x4,%r13 - 401151: eb c1 jmp 401114 <phase_6+0x20> - 401153: 48 8d 74 24 18 lea 0x18(%rsp),%rsi - 401158: 4c 89 f0 mov %r14,%rax - 40115b: b9 07 00 00 00 mov $0x7,%ecx - 401160: 89 ca mov %ecx,%edx - 401162: 2b 10 sub (%rax),%edx - 401164: 89 10 mov %edx,(%rax) - 401166: 48 83 c0 04 add $0x4,%rax - 40116a: 48 39 f0 cmp %rsi,%rax - 40116d: 75 f1 jne 401160 <phase_6+0x6c> - 40116f: be 00 00 00 00 mov $0x0,%esi - 401174: eb 21 jmp 401197 <phase_6+0xa3> - 401176: 48 8b 52 08 mov 0x8(%rdx),%rdx - 40117a: 83 c0 01 add $0x1,%eax - 40117d: 39 c8 cmp %ecx,%eax - 40117f: 75 f5 jne 401176 <phase_6+0x82> - 401181: eb 05 jmp 401188 <phase_6+0x94> - 401183: ba d0 32 60 00 mov $0x6032d0,%edx - 401188: 48 89 54 74 20 mov %rdx,0x20(%rsp,%rsi,2) - 40118d: 48 83 c6 04 add $0x4,%rsi - 401191: 48 83 fe 18 cmp $0x18,%rsi - 401195: 74 14 je 4011ab <phase_6+0xb7> - 401197: 8b 0c 34 mov (%rsp,%rsi,1),%ecx - 40119a: 83 f9 01 cmp $0x1,%ecx - 40119d: 7e e4 jle 401183 <phase_6+0x8f> - 40119f: b8 01 00 00 00 mov $0x1,%eax - 4011a4: ba d0 32 60 00 mov $0x6032d0,%edx - 4011a9: eb cb jmp 401176 <phase_6+0x82> - 4011ab: 48 8b 5c 24 20 mov 0x20(%rsp),%rbx - 4011b0: 48 8d 44 24 28 lea 0x28(%rsp),%rax - 4011b5: 48 8d 74 24 50 lea 0x50(%rsp),%rsi - 4011ba: 48 89 d9 mov %rbx,%rcx - 4011bd: 48 8b 10 mov (%rax),%rdx - 4011c0: 48 89 51 08 mov %rdx,0x8(%rcx) - 4011c4: 48 83 c0 08 add $0x8,%rax - 4011c8: 48 39 f0 cmp %rsi,%rax - 4011cb: 74 05 je 4011d2 <phase_6+0xde> - 4011cd: 48 89 d1 mov %rdx,%rcx - 4011d0: eb eb jmp 4011bd <phase_6+0xc9> - 4011d2: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) - 4011d9: 00 - 4011da: bd 05 00 00 00 mov $0x5,%ebp - 4011df: 48 8b 43 08 mov 0x8(%rbx),%rax - 4011e3: 8b 00 mov (%rax),%eax - 4011e5: 39 03 cmp %eax,(%rbx) - 4011e7: 7d 05 jge 4011ee <phase_6+0xfa> - 4011e9: e8 4c 02 00 00 call 40143a <explode_bomb> - 4011ee: 48 8b 5b 08 mov 0x8(%rbx),%rbx - 4011f2: 83 ed 01 sub $0x1,%ebp - 4011f5: 75 e8 jne 4011df <phase_6+0xeb> - 4011f7: 48 83 c4 50 add $0x50,%rsp - 4011fb: 5b pop %rbx - 4011fc: 5d pop %rbp - 4011fd: 41 5c pop %r12 - 4011ff: 41 5d pop %r13 - 401201: 41 5e pop %r14 - 401203: c3 ret + 4010f4: push %r14 + 4010f6: push %r13 + 4010f8: push %r12 + 4010fa: push %rbp + 4010fb: push %rbx + 4010fc: sub $0x50,%rsp + 401100: mov %rsp,%r13 + 401103: mov %rsp,%rsi + 401106: call 40145c <read_six_numbers> + 40110b: mov %rsp,%r14 + 40110e: mov $0x0,%r12d + 401114: mov %r13,%rbp + 401117: mov 0x0(%r13),%eax + 40111b: sub $0x1,%eax + 40111e: cmp $0x5,%eax + 401121: jbe 401128 <phase_6+0x34> + 401123: call 40143a <explode_bomb> + 401128: add $0x1,%r12d + 40112c: cmp $0x6,%r12d + 401130: je 401153 <phase_6+0x5f> + 401132: mov %r12d,%ebx + 401135: movslq %ebx,%rax + 401138: mov (%rsp,%rax,4),%eax + 40113b: cmp %eax,0x0(%rbp) + 40113e: jne 401145 <phase_6+0x51> + 401140: call 40143a <explode_bomb> + 401145: add $0x1,%ebx + 401148: cmp $0x5,%ebx + 40114b: jle 401135 <phase_6+0x41> + 40114d: add $0x4,%r13 + 401151: jmp 401114 <phase_6+0x20> + 401153: lea 0x18(%rsp),%rsi + 401158: mov %r14,%rax + 40115b: mov $0x7,%ecx + 401160: mov %ecx,%edx + 401162: sub (%rax),%edx + 401164: mov %edx,(%rax) + 401166: add $0x4,%rax + 40116a: cmp %rsi,%rax + 40116d: jne 401160 <phase_6+0x6c> + 40116f: mov $0x0,%esi + 401174: jmp 401197 <phase_6+0xa3> + 401176: mov 0x8(%rdx),%rdx + 40117a: add $0x1,%eax + 40117d: cmp %ecx,%eax + 40117f: jne 401176 <phase_6+0x82> + 401181: jmp 401188 <phase_6+0x94> + 401183: mov $0x6032d0,%edx + 401188: mov %rdx,0x20(%rsp,%rsi,2) + 40118d: add $0x4,%rsi + 401191: cmp $0x18,%rsi + 401195: je 4011ab <phase_6+0xb7> + 401197: mov (%rsp,%rsi,1),%ecx + 40119a: cmp $0x1,%ecx + 40119d: jle 401183 <phase_6+0x8f> + 40119f: mov $0x1,%eax + 4011a4: mov $0x6032d0,%edx + 4011a9: jmp 401176 <phase_6+0x82> + 4011ab: mov 0x20(%rsp),%rbx + 4011b0: lea 0x28(%rsp),%rax + 4011b5: lea 0x50(%rsp),%rsi + 4011ba: mov %rbx,%rcx + 4011bd: mov (%rax),%rdx + 4011c0: mov %rdx,0x8(%rcx) + 4011c4: add $0x8,%rax + 4011c8: cmp %rsi,%rax + 4011cb: je 4011d2 <phase_6+0xde> + 4011cd: mov %rdx,%rcx + 4011d0: jmp 4011bd <phase_6+0xc9> + 4011d2: movq $0x0,0x8(%rdx) + 4011da: mov $0x5,%ebp + 4011df: mov 0x8(%rbx),%rax + 4011e3: mov (%rax),%eax + 4011e5: cmp %eax,(%rbx) + 4011e7: jge 4011ee <phase_6+0xfa> + 4011e9: call 40143a <explode_bomb> + 4011ee: mov 0x8(%rbx),%rbx + 4011f2: sub $0x1,%ebp + 4011f5: jne 4011df <phase_6+0xeb> + 4011f7: add $0x50,%rsp + 4011fb: pop %rbx + 4011fc: pop %rbp + 4011fd: pop %r12 + 4011ff: pop %r13 + 401201: pop %r14 + 401203: ret 0000000000401204 <fun7>: - 401204: 48 83 ec 08 sub $0x8,%rsp - 401208: 48 85 ff test %rdi,%rdi - 40120b: 74 2b je 401238 <fun7+0x34> - 40120d: 8b 17 mov (%rdi),%edx - 40120f: 39 f2 cmp %esi,%edx - 401211: 7e 0d jle 401220 <fun7+0x1c> - 401213: 48 8b 7f 08 mov 0x8(%rdi),%rdi - 401217: e8 e8 ff ff ff call 401204 <fun7> - 40121c: 01 c0 add %eax,%eax - 40121e: eb 1d jmp 40123d <fun7+0x39> - 401220: b8 00 00 00 00 mov $0x0,%eax - 401225: 39 f2 cmp %esi,%edx - 401227: 74 14 je 40123d <fun7+0x39> - 401229: 48 8b 7f 10 mov 0x10(%rdi),%rdi - 40122d: e8 d2 ff ff ff call 401204 <fun7> - 401232: 8d 44 00 01 lea 0x1(%rax,%rax,1),%eax - 401236: eb 05 jmp 40123d <fun7+0x39> - 401238: b8 ff ff ff ff mov $0xffffffff,%eax - 40123d: 48 83 c4 08 add $0x8,%rsp - 401241: c3 ret + 401204: sub $0x8,%rsp + 401208: test %rdi,%rdi + 40120b: je 401238 <fun7+0x34> + 40120d: mov (%rdi),%edx + 40120f: cmp %esi,%edx + 401211: jle 401220 <fun7+0x1c> + 401213: mov 0x8(%rdi),%rdi + 401217: call 401204 <fun7> + 40121c: add %eax,%eax + 40121e: jmp 40123d <fun7+0x39> + 401220: mov $0x0,%eax + 401225: cmp %esi,%edx + 401227: je 40123d <fun7+0x39> + 401229: mov 0x10(%rdi),%rdi + 40122d: call 401204 <fun7> + 401232: lea 0x1(%rax,%rax,1),%eax + 401236: jmp 40123d <fun7+0x39> + 401238: mov $0xffffffff,%eax + 40123d: add $0x8,%rsp + 401241: ret 0000000000401242 <secret_phase>: - 401242: 53 push %rbx - 401243: e8 56 02 00 00 call 40149e <read_line> - 401248: ba 0a 00 00 00 mov $0xa,%edx - 40124d: be 00 00 00 00 mov $0x0,%esi - 401252: 48 89 c7 mov %rax,%rdi - 401255: e8 76 f9 ff ff call 400bd0 <strtol@plt> - 40125a: 48 89 c3 mov %rax,%rbx - 40125d: 8d 40 ff lea -0x1(%rax),%eax - 401260: 3d e8 03 00 00 cmp $0x3e8,%eax - 401265: 76 05 jbe 40126c <secret_phase+0x2a> - 401267: e8 ce 01 00 00 call 40143a <explode_bomb> - 40126c: 89 de mov %ebx,%esi - 40126e: bf f0 30 60 00 mov $0x6030f0,%edi - 401273: e8 8c ff ff ff call 401204 <fun7> - 401278: 83 f8 02 cmp $0x2,%eax - 40127b: 74 05 je 401282 <secret_phase+0x40> - 40127d: e8 b8 01 00 00 call 40143a <explode_bomb> - 401282: bf 38 24 40 00 mov $0x402438,%edi - 401287: e8 84 f8 ff ff call 400b10 <puts@plt> - 40128c: e8 33 03 00 00 call 4015c4 <phase_defused> - 401291: 5b pop %rbx - 401292: c3 ret - 401293: 90 nop - 401294: 90 nop - 401295: 90 nop - 401296: 90 nop - 401297: 90 nop - 401298: 90 nop - 401299: 90 nop - 40129a: 90 nop - 40129b: 90 nop - 40129c: 90 nop - 40129d: 90 nop - 40129e: 90 nop - 40129f: 90 nop + 401242: push %rbx + 401243: call 40149e <read_line> + 401248: mov $0xa,%edx + 40124d: mov $0x0,%esi + 401252: mov %rax,%rdi + 401255: call 400bd0 <strtol@plt> + 40125a: mov %rax,%rbx + 40125d: lea -0x1(%rax),%eax + 401260: cmp $0x3e8,%eax + 401265: jbe 40126c <secret_phase+0x2a> + 401267: call 40143a <explode_bomb> + 40126c: mov %ebx,%esi + 40126e: mov $0x6030f0,%edi + 401273: call 401204 <fun7> + 401278: cmp $0x2,%eax + 40127b: je 401282 <secret_phase+0x40> + 40127d: call 40143a <explode_bomb> + 401282: mov $0x402438,%edi + 401287: call 400b10 <puts@plt> + 40128c: call 4015c4 <phase_defused> + 401291: pop %rbx + 401292: ret + 401293: nop + 401294: nop + 401295: nop + 401296: nop + 401297: nop + 401298: nop + 401299: nop + 40129a: nop + 40129b: nop + 40129c: nop + 40129d: nop + 40129e: nop + 40129f: nop 00000000004012a0 <sig_handler>: - 4012a0: 48 83 ec 08 sub $0x8,%rsp - 4012a4: bf c0 24 40 00 mov $0x4024c0,%edi - 4012a9: e8 62 f8 ff ff call 400b10 <puts@plt> - 4012ae: bf 03 00 00 00 mov $0x3,%edi - 4012b3: e8 98 f9 ff ff call 400c50 <sleep@plt> - 4012b8: be 82 25 40 00 mov $0x402582,%esi - 4012bd: bf 01 00 00 00 mov $0x1,%edi - 4012c2: b8 00 00 00 00 mov $0x0,%eax - 4012c7: e8 34 f9 ff ff call 400c00 <__printf_chk@plt> - 4012cc: 48 8b 3d 6d 24 20 00 mov 0x20246d(%rip),%rdi # 603740 <stdout@GLIBC_2.2.5> - 4012d3: e8 08 f9 ff ff call 400be0 <fflush@plt> - 4012d8: bf 01 00 00 00 mov $0x1,%edi - 4012dd: e8 6e f9 ff ff call 400c50 <sleep@plt> - 4012e2: bf 8a 25 40 00 mov $0x40258a,%edi - 4012e7: e8 24 f8 ff ff call 400b10 <puts@plt> - 4012ec: bf 10 00 00 00 mov $0x10,%edi - 4012f1: e8 2a f9 ff ff call 400c20 <exit@plt> + 4012a0: sub $0x8,%rsp + 4012a4: mov $0x4024c0,%edi + 4012a9: call 400b10 <puts@plt> + 4012ae: mov $0x3,%edi + 4012b3: call 400c50 <sleep@plt> + 4012b8: mov $0x402582,%esi + 4012bd: mov $0x1,%edi + 4012c2: mov $0x0,%eax + 4012c7: call 400c00 <__printf_chk@plt> + 4012cc: mov 0x20246d(%rip),%rdi # 603740 <stdout@GLIBC_2.2.5> + 4012d3: call 400be0 <fflush@plt> + 4012d8: mov $0x1,%edi + 4012dd: call 400c50 <sleep@plt> + 4012e2: mov $0x40258a,%edi + 4012e7: call 400b10 <puts@plt> + 4012ec: mov $0x10,%edi + 4012f1: call 400c20 <exit@plt> 00000000004012f6 <invalid_phase>: - 4012f6: 48 83 ec 08 sub $0x8,%rsp - 4012fa: 48 89 fa mov %rdi,%rdx - 4012fd: be 92 25 40 00 mov $0x402592,%esi - 401302: bf 01 00 00 00 mov $0x1,%edi - 401307: b8 00 00 00 00 mov $0x0,%eax - 40130c: e8 ef f8 ff ff call 400c00 <__printf_chk@plt> - 401311: bf 08 00 00 00 mov $0x8,%edi - 401316: e8 05 f9 ff ff call 400c20 <exit@plt> + 4012f6: sub $0x8,%rsp + 4012fa: mov %rdi,%rdx + 4012fd: mov $0x402592,%esi + 401302: mov $0x1,%edi + 401307: mov $0x0,%eax + 40130c: call 400c00 <__printf_chk@plt> + 401311: mov $0x8,%edi + 401316: call 400c20 <exit@plt> 000000000040131b <string_length>: - 40131b: 80 3f 00 cmpb $0x0,(%rdi) - 40131e: 74 12 je 401332 <string_length+0x17> - 401320: 48 89 fa mov %rdi,%rdx - 401323: 48 83 c2 01 add $0x1,%rdx - 401327: 89 d0 mov %edx,%eax - 401329: 29 f8 sub %edi,%eax - 40132b: 80 3a 00 cmpb $0x0,(%rdx) - 40132e: 75 f3 jne 401323 <string_length+0x8> - 401330: f3 c3 repz ret - 401332: b8 00 00 00 00 mov $0x0,%eax - 401337: c3 ret + 40131b: cmpb $0x0,(%rdi) + 40131e: je 401332 <string_length+0x17> + 401320: mov %rdi,%rdx + 401323: add $0x1,%rdx + 401327: mov %edx,%eax + 401329: sub %edi,%eax + 40132b: cmpb $0x0,(%rdx) + 40132e: jne 401323 <string_length+0x8> + 401330: repz ret + 401332: mov $0x0,%eax + 401337: ret 0000000000401338 <strings_not_equal>: - 401338: 41 54 push %r12 - 40133a: 55 push %rbp - 40133b: 53 push %rbx - 40133c: 48 89 fb mov %rdi,%rbx - 40133f: 48 89 f5 mov %rsi,%rbp - 401342: e8 d4 ff ff ff call 40131b <string_length> - 401347: 41 89 c4 mov %eax,%r12d - 40134a: 48 89 ef mov %rbp,%rdi - 40134d: e8 c9 ff ff ff call 40131b <string_length> - 401352: ba 01 00 00 00 mov $0x1,%edx - 401357: 41 39 c4 cmp %eax,%r12d - 40135a: 75 3f jne 40139b <strings_not_equal+0x63> - 40135c: 0f b6 03 movzbl (%rbx),%eax - 40135f: 84 c0 test %al,%al - 401361: 74 25 je 401388 <strings_not_equal+0x50> - 401363: 3a 45 00 cmp 0x0(%rbp),%al - 401366: 74 0a je 401372 <strings_not_equal+0x3a> - 401368: eb 25 jmp 40138f <strings_not_equal+0x57> - 40136a: 3a 45 00 cmp 0x0(%rbp),%al - 40136d: 0f 1f 00 nopl (%rax) - 401370: 75 24 jne 401396 <strings_not_equal+0x5e> - 401372: 48 83 c3 01 add $0x1,%rbx - 401376: 48 83 c5 01 add $0x1,%rbp - 40137a: 0f b6 03 movzbl (%rbx),%eax - 40137d: 84 c0 test %al,%al - 40137f: 75 e9 jne 40136a <strings_not_equal+0x32> - 401381: ba 00 00 00 00 mov $0x0,%edx - 401386: eb 13 jmp 40139b <strings_not_equal+0x63> - 401388: ba 00 00 00 00 mov $0x0,%edx - 40138d: eb 0c jmp 40139b <strings_not_equal+0x63> - 40138f: ba 01 00 00 00 mov $0x1,%edx - 401394: eb 05 jmp 40139b <strings_not_equal+0x63> - 401396: ba 01 00 00 00 mov $0x1,%edx - 40139b: 89 d0 mov %edx,%eax - 40139d: 5b pop %rbx - 40139e: 5d pop %rbp - 40139f: 41 5c pop %r12 - 4013a1: c3 ret + 401338: push %r12 + 40133a: push %rbp + 40133b: push %rbx + 40133c: mov %rdi,%rbx + 40133f: mov %rsi,%rbp + 401342: call 40131b <string_length> + 401347: mov %eax,%r12d + 40134a: mov %rbp,%rdi + 40134d: call 40131b <string_length> + 401352: mov $0x1,%edx + 401357: cmp %eax,%r12d + 40135a: jne 40139b <strings_not_equal+0x63> + 40135c: movzbl (%rbx),%eax + 40135f: test %al,%al + 401361: je 401388 <strings_not_equal+0x50> + 401363: cmp 0x0(%rbp),%al + 401366: je 401372 <strings_not_equal+0x3a> + 401368: jmp 40138f <strings_not_equal+0x57> + 40136a: cmp 0x0(%rbp),%al + 40136d: nopl (%rax) + 401370: jne 401396 <strings_not_equal+0x5e> + 401372: add $0x1,%rbx + 401376: add $0x1,%rbp + 40137a: movzbl (%rbx),%eax + 40137d: test %al,%al + 40137f: jne 40136a <strings_not_equal+0x32> + 401381: mov $0x0,%edx + 401386: jmp 40139b <strings_not_equal+0x63> + 401388: mov $0x0,%edx + 40138d: jmp 40139b <strings_not_equal+0x63> + 40138f: mov $0x1,%edx + 401394: jmp 40139b <strings_not_equal+0x63> + 401396: mov $0x1,%edx + 40139b: mov %edx,%eax + 40139d: pop %rbx + 40139e: pop %rbp + 40139f: pop %r12 + 4013a1: ret 00000000004013a2 <initialize_bomb>: - 4013a2: 48 83 ec 08 sub $0x8,%rsp - 4013a6: be a0 12 40 00 mov $0x4012a0,%esi - 4013ab: bf 02 00 00 00 mov $0x2,%edi - 4013b0: e8 db f7 ff ff call 400b90 <signal@plt> - 4013b5: 48 83 c4 08 add $0x8,%rsp - 4013b9: c3 ret + 4013a2: sub $0x8,%rsp + 4013a6: mov $0x4012a0,%esi + 4013ab: mov $0x2,%edi + 4013b0: call 400b90 <signal@plt> + 4013b5: add $0x8,%rsp + 4013b9: ret 00000000004013ba <initialize_bomb_solve>: - 4013ba: f3 c3 repz ret + 4013ba: repz ret 00000000004013bc <blank_line>: - 4013bc: 55 push %rbp - 4013bd: 53 push %rbx - 4013be: 48 83 ec 08 sub $0x8,%rsp - 4013c2: 48 89 fb mov %rdi,%rbx - 4013c5: eb 17 jmp 4013de <blank_line+0x22> - 4013c7: e8 94 f8 ff ff call 400c60 <__ctype_b_loc@plt> - 4013cc: 48 83 c3 01 add $0x1,%rbx - 4013d0: 48 0f be ed movsbq %bpl,%rbp - 4013d4: 48 8b 00 mov (%rax),%rax - 4013d7: f6 44 68 01 20 testb $0x20,0x1(%rax,%rbp,2) - 4013dc: 74 0f je 4013ed <blank_line+0x31> - 4013de: 0f b6 2b movzbl (%rbx),%ebp - 4013e1: 40 84 ed test %bpl,%bpl - 4013e4: 75 e1 jne 4013c7 <blank_line+0xb> - 4013e6: b8 01 00 00 00 mov $0x1,%eax - 4013eb: eb 05 jmp 4013f2 <blank_line+0x36> - 4013ed: b8 00 00 00 00 mov $0x0,%eax - 4013f2: 48 83 c4 08 add $0x8,%rsp - 4013f6: 5b pop %rbx - 4013f7: 5d pop %rbp - 4013f8: c3 ret + 4013bc: push %rbp + 4013bd: push %rbx + 4013be: sub $0x8,%rsp + 4013c2: mov %rdi,%rbx + 4013c5: jmp 4013de <blank_line+0x22> + 4013c7: call 400c60 <__ctype_b_loc@plt> + 4013cc: add $0x1,%rbx + 4013d0: movsbq %bpl,%rbp + 4013d4: mov (%rax),%rax + 4013d7: testb $0x20,0x1(%rax,%rbp,2) + 4013dc: je 4013ed <blank_line+0x31> + 4013de: movzbl (%rbx),%ebp + 4013e1: test %bpl,%bpl + 4013e4: jne 4013c7 <blank_line+0xb> + 4013e6: mov $0x1,%eax + 4013eb: jmp 4013f2 <blank_line+0x36> + 4013ed: mov $0x0,%eax + 4013f2: add $0x8,%rsp + 4013f6: pop %rbx + 4013f7: pop %rbp + 4013f8: ret 00000000004013f9 <skip>: - 4013f9: 53 push %rbx - 4013fa: 48 63 05 5f 23 20 00 movslq 0x20235f(%rip),%rax # 603760 <num_input_strings> - 401401: 48 8d 3c 80 lea (%rax,%rax,4),%rdi - 401405: 48 c1 e7 04 shl $0x4,%rdi - 401409: 48 81 c7 80 37 60 00 add $0x603780,%rdi - 401410: 48 8b 15 51 23 20 00 mov 0x202351(%rip),%rdx # 603768 <infile> - 401417: be 50 00 00 00 mov $0x50,%esi - 40141c: e8 5f f7 ff ff call 400b80 <fgets@plt> - 401421: 48 89 c3 mov %rax,%rbx - 401424: 48 85 c0 test %rax,%rax - 401427: 74 0c je 401435 <skip+0x3c> - 401429: 48 89 c7 mov %rax,%rdi - 40142c: e8 8b ff ff ff call 4013bc <blank_line> - 401431: 85 c0 test %eax,%eax - 401433: 75 c5 jne 4013fa <skip+0x1> - 401435: 48 89 d8 mov %rbx,%rax - 401438: 5b pop %rbx - 401439: c3 ret + 4013f9: push %rbx + 4013fa: movslq 0x20235f(%rip),%rax # 603760 <num_input_strings> + 401401: lea (%rax,%rax,4),%rdi + 401405: shl $0x4,%rdi + 401409: add $0x603780,%rdi + 401410: mov 0x202351(%rip),%rdx # 603768 <infile> + 401417: mov $0x50,%esi + 40141c: call 400b80 <fgets@plt> + 401421: mov %rax,%rbx + 401424: test %rax,%rax + 401427: je 401435 <skip+0x3c> + 401429: mov %rax,%rdi + 40142c: call 4013bc <blank_line> + 401431: test %eax,%eax + 401433: jne 4013fa <skip+0x1> + 401435: mov %rbx,%rax + 401438: pop %rbx + 401439: ret 000000000040143a <explode_bomb>: - 40143a: 48 83 ec 08 sub $0x8,%rsp - 40143e: bf a3 25 40 00 mov $0x4025a3,%edi - 401443: e8 c8 f6 ff ff call 400b10 <puts@plt> - 401448: bf ac 25 40 00 mov $0x4025ac,%edi - 40144d: e8 be f6 ff ff call 400b10 <puts@plt> - 401452: bf 08 00 00 00 mov $0x8,%edi - 401457: e8 c4 f7 ff ff call 400c20 <exit@plt> + 40143a: sub $0x8,%rsp + 40143e: mov $0x4025a3,%edi + 401443: call 400b10 <puts@plt> + 401448: mov $0x4025ac,%edi + 40144d: call 400b10 <puts@plt> + 401452: mov $0x8,%edi + 401457: call 400c20 <exit@plt> 000000000040145c <read_six_numbers>: - 40145c: 48 83 ec 18 sub $0x18,%rsp - 401460: 48 89 f2 mov %rsi,%rdx - 401463: 48 8d 4e 04 lea 0x4(%rsi),%rcx - 401467: 48 8d 46 14 lea 0x14(%rsi),%rax - 40146b: 48 89 44 24 08 mov %rax,0x8(%rsp) - 401470: 48 8d 46 10 lea 0x10(%rsi),%rax - 401474: 48 89 04 24 mov %rax,(%rsp) - 401478: 4c 8d 4e 0c lea 0xc(%rsi),%r9 - 40147c: 4c 8d 46 08 lea 0x8(%rsi),%r8 - 401480: be c3 25 40 00 mov $0x4025c3,%esi - 401485: b8 00 00 00 00 mov $0x0,%eax - 40148a: e8 61 f7 ff ff call 400bf0 <__isoc99_sscanf@plt> - 40148f: 83 f8 05 cmp $0x5,%eax - 401492: 7f 05 jg 401499 <read_six_numbers+0x3d> - 401494: e8 a1 ff ff ff call 40143a <explode_bomb> - 401499: 48 83 c4 18 add $0x18,%rsp - 40149d: c3 ret + 40145c: sub $0x18,%rsp + 401460: mov %rsi,%rdx + 401463: lea 0x4(%rsi),%rcx + 401467: lea 0x14(%rsi),%rax + 40146b: mov %rax,0x8(%rsp) + 401470: lea 0x10(%rsi),%rax + 401474: mov %rax,(%rsp) + 401478: lea 0xc(%rsi),%r9 + 40147c: lea 0x8(%rsi),%r8 + 401480: mov $0x4025c3,%esi + 401485: mov $0x0,%eax + 40148a: call 400bf0 <__isoc99_sscanf@plt> + 40148f: cmp $0x5,%eax + 401492: jg 401499 <read_six_numbers+0x3d> + 401494: call 40143a <explode_bomb> + 401499: add $0x18,%rsp + 40149d: ret 000000000040149e <read_line>: - 40149e: 48 83 ec 08 sub $0x8,%rsp - 4014a2: b8 00 00 00 00 mov $0x0,%eax - 4014a7: e8 4d ff ff ff call 4013f9 <skip> - 4014ac: 48 85 c0 test %rax,%rax - 4014af: 75 6e jne 40151f <read_line+0x81> - 4014b1: 48 8b 05 90 22 20 00 mov 0x202290(%rip),%rax # 603748 <stdin@GLIBC_2.2.5> - 4014b8: 48 39 05 a9 22 20 00 cmp %rax,0x2022a9(%rip) # 603768 <infile> - 4014bf: 75 14 jne 4014d5 <read_line+0x37> - 4014c1: bf d5 25 40 00 mov $0x4025d5,%edi - 4014c6: e8 45 f6 ff ff call 400b10 <puts@plt> - 4014cb: bf 08 00 00 00 mov $0x8,%edi - 4014d0: e8 4b f7 ff ff call 400c20 <exit@plt> - 4014d5: bf f3 25 40 00 mov $0x4025f3,%edi - 4014da: e8 01 f6 ff ff call 400ae0 <getenv@plt> - 4014df: 48 85 c0 test %rax,%rax - 4014e2: 74 0a je 4014ee <read_line+0x50> - 4014e4: bf 00 00 00 00 mov $0x0,%edi - 4014e9: e8 32 f7 ff ff call 400c20 <exit@plt> - 4014ee: 48 8b 05 53 22 20 00 mov 0x202253(%rip),%rax # 603748 <stdin@GLIBC_2.2.5> - 4014f5: 48 89 05 6c 22 20 00 mov %rax,0x20226c(%rip) # 603768 <infile> - 4014fc: b8 00 00 00 00 mov $0x0,%eax - 401501: e8 f3 fe ff ff call 4013f9 <skip> - 401506: 48 85 c0 test %rax,%rax - 401509: 75 14 jne 40151f <read_line+0x81> - 40150b: bf d5 25 40 00 mov $0x4025d5,%edi - 401510: e8 fb f5 ff ff call 400b10 <puts@plt> - 401515: bf 00 00 00 00 mov $0x0,%edi - 40151a: e8 01 f7 ff ff call 400c20 <exit@plt> - 40151f: 8b 15 3b 22 20 00 mov 0x20223b(%rip),%edx # 603760 <num_input_strings> - 401525: 48 63 c2 movslq %edx,%rax - 401528: 48 8d 34 80 lea (%rax,%rax,4),%rsi - 40152c: 48 c1 e6 04 shl $0x4,%rsi - 401530: 48 81 c6 80 37 60 00 add $0x603780,%rsi - 401537: 48 89 f7 mov %rsi,%rdi - 40153a: b8 00 00 00 00 mov $0x0,%eax - 40153f: 48 c7 c1 ff ff ff ff mov $0xffffffffffffffff,%rcx - 401546: f2 ae repnz scas %es:(%rdi),%al - 401548: 48 f7 d1 not %rcx - 40154b: 48 83 e9 01 sub $0x1,%rcx - 40154f: 83 f9 4e cmp $0x4e,%ecx - 401552: 7e 46 jle 40159a <read_line+0xfc> - 401554: bf fe 25 40 00 mov $0x4025fe,%edi - 401559: e8 b2 f5 ff ff call 400b10 <puts@plt> - 40155e: 8b 05 fc 21 20 00 mov 0x2021fc(%rip),%eax # 603760 <num_input_strings> - 401564: 8d 50 01 lea 0x1(%rax),%edx - 401567: 89 15 f3 21 20 00 mov %edx,0x2021f3(%rip) # 603760 <num_input_strings> - 40156d: 48 98 cltq - 40156f: 48 6b c0 50 imul $0x50,%rax,%rax - 401573: 48 bf 2a 2a 2a 74 72 movabs $0x636e7572742a2a2a,%rdi - 40157a: 75 6e 63 - 40157d: 48 89 b8 80 37 60 00 mov %rdi,0x603780(%rax) - 401584: 48 bf 61 74 65 64 2a movabs $0x2a2a2a64657461,%rdi - 40158b: 2a 2a 00 - 40158e: 48 89 b8 88 37 60 00 mov %rdi,0x603788(%rax) - 401595: e8 a0 fe ff ff call 40143a <explode_bomb> - 40159a: 83 e9 01 sub $0x1,%ecx - 40159d: 48 63 c9 movslq %ecx,%rcx - 4015a0: 48 63 c2 movslq %edx,%rax - 4015a3: 48 8d 04 80 lea (%rax,%rax,4),%rax - 4015a7: 48 c1 e0 04 shl $0x4,%rax - 4015ab: c6 84 01 80 37 60 00 movb $0x0,0x603780(%rcx,%rax,1) - 4015b2: 00 - 4015b3: 83 c2 01 add $0x1,%edx - 4015b6: 89 15 a4 21 20 00 mov %edx,0x2021a4(%rip) # 603760 <num_input_strings> - 4015bc: 48 89 f0 mov %rsi,%rax - 4015bf: 48 83 c4 08 add $0x8,%rsp - 4015c3: c3 ret + 40149e: sub $0x8,%rsp + 4014a2: mov $0x0,%eax + 4014a7: call 4013f9 <skip> + 4014ac: test %rax,%rax + 4014af: jne 40151f <read_line+0x81> + 4014b1: mov 0x202290(%rip),%rax # 603748 <stdin@GLIBC_2.2.5> + 4014b8: cmp %rax,0x2022a9(%rip) # 603768 <infile> + 4014bf: jne 4014d5 <read_line+0x37> + 4014c1: mov $0x4025d5,%edi + 4014c6: call 400b10 <puts@plt> + 4014cb: mov $0x8,%edi + 4014d0: call 400c20 <exit@plt> + 4014d5: mov $0x4025f3,%edi + 4014da: call 400ae0 <getenv@plt> + 4014df: test %rax,%rax + 4014e2: je 4014ee <read_line+0x50> + 4014e4: mov $0x0,%edi + 4014e9: call 400c20 <exit@plt> + 4014ee: mov 0x202253(%rip),%rax # 603748 <stdin@GLIBC_2.2.5> + 4014f5: mov %rax,0x20226c(%rip) # 603768 <infile> + 4014fc: mov $0x0,%eax + 401501: call 4013f9 <skip> + 401506: test %rax,%rax + 401509: jne 40151f <read_line+0x81> + 40150b: mov $0x4025d5,%edi + 401510: call 400b10 <puts@plt> + 401515: mov $0x0,%edi + 40151a: call 400c20 <exit@plt> + 40151f: mov 0x20223b(%rip),%edx # 603760 <num_input_strings> + 401525: movslq %edx,%rax + 401528: lea (%rax,%rax,4),%rsi + 40152c: shl $0x4,%rsi + 401530: add $0x603780,%rsi + 401537: mov %rsi,%rdi + 40153a: mov $0x0,%eax + 40153f: mov $0xffffffffffffffff,%rcx + 401546: repnz scas %es:(%rdi),%al + 401548: not %rcx + 40154b: sub $0x1,%rcx + 40154f: cmp $0x4e,%ecx + 401552: jle 40159a <read_line+0xfc> + 401554: mov $0x4025fe,%edi + 401559: call 400b10 <puts@plt> + 40155e: mov 0x2021fc(%rip),%eax # 603760 <num_input_strings> + 401564: lea 0x1(%rax),%edx + 401567: mov %edx,0x2021f3(%rip) # 603760 <num_input_strings> + 40156d: cltq + 40156f: imul $0x50,%rax,%rax + 401573: movabs $0x636e7572742a2a2a,%rdi + 40157d: mov %rdi,0x603780(%rax) + 401584: movabs $0x2a2a2a64657461,%rdi + 40158e: mov %rdi,0x603788(%rax) + 401595: call 40143a <explode_bomb> + 40159a: sub $0x1,%ecx + 40159d: movslq %ecx,%rcx + 4015a0: movslq %edx,%rax + 4015a3: lea (%rax,%rax,4),%rax + 4015a7: shl $0x4,%rax + 4015ab: movb $0x0,0x603780(%rcx,%rax,1) + 4015b3: add $0x1,%edx + 4015b6: mov %edx,0x2021a4(%rip) # 603760 <num_input_strings> + 4015bc: mov %rsi,%rax + 4015bf: add $0x8,%rsp + 4015c3: ret 00000000004015c4 <phase_defused>: - 4015c4: 48 83 ec 78 sub $0x78,%rsp - 4015c8: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax - 4015cf: 00 00 - 4015d1: 48 89 44 24 68 mov %rax,0x68(%rsp) - 4015d6: 31 c0 xor %eax,%eax - 4015d8: 83 3d 81 21 20 00 06 cmpl $0x6,0x202181(%rip) # 603760 <num_input_strings> - 4015df: 75 5e jne 40163f <phase_defused+0x7b> - 4015e1: 4c 8d 44 24 10 lea 0x10(%rsp),%r8 - 4015e6: 48 8d 4c 24 0c lea 0xc(%rsp),%rcx - 4015eb: 48 8d 54 24 08 lea 0x8(%rsp),%rdx - 4015f0: be 19 26 40 00 mov $0x402619,%esi - 4015f5: bf 70 38 60 00 mov $0x603870,%edi - 4015fa: e8 f1 f5 ff ff call 400bf0 <__isoc99_sscanf@plt> - 4015ff: 83 f8 03 cmp $0x3,%eax - 401602: 75 31 jne 401635 <phase_defused+0x71> - 401604: be 22 26 40 00 mov $0x402622,%esi - 401609: 48 8d 7c 24 10 lea 0x10(%rsp),%rdi - 40160e: e8 25 fd ff ff call 401338 <strings_not_equal> - 401613: 85 c0 test %eax,%eax - 401615: 75 1e jne 401635 <phase_defused+0x71> - 401617: bf f8 24 40 00 mov $0x4024f8,%edi - 40161c: e8 ef f4 ff ff call 400b10 <puts@plt> - 401621: bf 20 25 40 00 mov $0x402520,%edi - 401626: e8 e5 f4 ff ff call 400b10 <puts@plt> - 40162b: b8 00 00 00 00 mov $0x0,%eax - 401630: e8 0d fc ff ff call 401242 <secret_phase> - 401635: bf 58 25 40 00 mov $0x402558,%edi - 40163a: e8 d1 f4 ff ff call 400b10 <puts@plt> - 40163f: 48 8b 44 24 68 mov 0x68(%rsp),%rax - 401644: 64 48 33 04 25 28 00 xor %fs:0x28,%rax - 40164b: 00 00 - 40164d: 74 05 je 401654 <phase_defused+0x90> - 40164f: e8 dc f4 ff ff call 400b30 <__stack_chk_fail@plt> - 401654: 48 83 c4 78 add $0x78,%rsp - 401658: c3 ret - 401659: 90 nop - 40165a: 90 nop - 40165b: 90 nop - 40165c: 90 nop - 40165d: 90 nop - 40165e: 90 nop - 40165f: 90 nop + 4015c4: sub $0x78,%rsp + 4015c8: mov %fs:0x28,%rax + 4015d1: mov %rax,0x68(%rsp) + 4015d6: xor %eax,%eax + 4015d8: cmpl $0x6,0x202181(%rip) # 603760 <num_input_strings> + 4015df: jne 40163f <phase_defused+0x7b> + 4015e1: lea 0x10(%rsp),%r8 + 4015e6: lea 0xc(%rsp),%rcx + 4015eb: lea 0x8(%rsp),%rdx + 4015f0: mov $0x402619,%esi + 4015f5: mov $0x603870,%edi + 4015fa: call 400bf0 <__isoc99_sscanf@plt> + 4015ff: cmp $0x3,%eax + 401602: jne 401635 <phase_defused+0x71> + 401604: mov $0x402622,%esi + 401609: lea 0x10(%rsp),%rdi + 40160e: call 401338 <strings_not_equal> + 401613: test %eax,%eax + 401615: jne 401635 <phase_defused+0x71> + 401617: mov $0x4024f8,%edi + 40161c: call 400b10 <puts@plt> + 401621: mov $0x402520,%edi + 401626: call 400b10 <puts@plt> + 40162b: mov $0x0,%eax + 401630: call 401242 <secret_phase> + 401635: mov $0x402558,%edi + 40163a: call 400b10 <puts@plt> + 40163f: mov 0x68(%rsp),%rax + 401644: xor %fs:0x28,%rax + 40164d: je 401654 <phase_defused+0x90> + 40164f: call 400b30 <__stack_chk_fail@plt> + 401654: add $0x78,%rsp + 401658: ret + 401659: nop + 40165a: nop + 40165b: nop + 40165c: nop + 40165d: nop + 40165e: nop + 40165f: nop 0000000000401660 <sigalrm_handler>: - 401660: 48 83 ec 08 sub $0x8,%rsp - 401664: b9 00 00 00 00 mov $0x0,%ecx - 401669: ba 78 26 40 00 mov $0x402678,%edx - 40166e: be 01 00 00 00 mov $0x1,%esi - 401673: 48 8b 3d d6 20 20 00 mov 0x2020d6(%rip),%rdi # 603750 <stderr@GLIBC_2.2.5> - 40167a: b8 00 00 00 00 mov $0x0,%eax - 40167f: e8 bc f5 ff ff call 400c40 <__fprintf_chk@plt> - 401684: bf 01 00 00 00 mov $0x1,%edi - 401689: e8 92 f5 ff ff call 400c20 <exit@plt> + 401660: sub $0x8,%rsp + 401664: mov $0x0,%ecx + 401669: mov $0x402678,%edx + 40166e: mov $0x1,%esi + 401673: mov 0x2020d6(%rip),%rdi # 603750 <stderr@GLIBC_2.2.5> + 40167a: mov $0x0,%eax + 40167f: call 400c40 <__fprintf_chk@plt> + 401684: mov $0x1,%edi + 401689: call 400c20 <exit@plt> 000000000040168e <rio_readlineb>: - 40168e: 41 57 push %r15 - 401690: 41 56 push %r14 - 401692: 41 55 push %r13 - 401694: 41 54 push %r12 - 401696: 55 push %rbp - 401697: 53 push %rbx - 401698: 48 83 ec 38 sub $0x38,%rsp - 40169c: 49 89 f6 mov %rsi,%r14 - 40169f: 48 89 54 24 18 mov %rdx,0x18(%rsp) - 4016a4: 48 83 fa 01 cmp $0x1,%rdx - 4016a8: 0f 86 c9 00 00 00 jbe 401777 <rio_readlineb+0xe9> - 4016ae: 48 89 fb mov %rdi,%rbx - 4016b1: 41 bd 01 00 00 00 mov $0x1,%r13d - 4016b7: 4c 8d 67 10 lea 0x10(%rdi),%r12 - 4016bb: eb 30 jmp 4016ed <rio_readlineb+0x5f> - 4016bd: ba 00 20 00 00 mov $0x2000,%edx - 4016c2: 4c 89 e6 mov %r12,%rsi - 4016c5: 8b 3b mov (%rbx),%edi - 4016c7: e8 94 f4 ff ff call 400b60 <read@plt> - 4016cc: 89 43 04 mov %eax,0x4(%rbx) - 4016cf: 85 c0 test %eax,%eax - 4016d1: 79 12 jns 4016e5 <rio_readlineb+0x57> - 4016d3: e8 18 f4 ff ff call 400af0 <__errno_location@plt> - 4016d8: 83 38 04 cmpl $0x4,(%rax) - 4016db: 74 10 je 4016ed <rio_readlineb+0x5f> - 4016dd: 0f 1f 00 nopl (%rax) - 4016e0: e9 a1 00 00 00 jmp 401786 <rio_readlineb+0xf8> - 4016e5: 85 c0 test %eax,%eax - 4016e7: 74 71 je 40175a <rio_readlineb+0xcc> - 4016e9: 4c 89 63 08 mov %r12,0x8(%rbx) - 4016ed: 8b 6b 04 mov 0x4(%rbx),%ebp - 4016f0: 85 ed test %ebp,%ebp - 4016f2: 7e c9 jle 4016bd <rio_readlineb+0x2f> - 4016f4: 85 ed test %ebp,%ebp - 4016f6: 41 0f 95 c7 setne %r15b - 4016fa: 41 0f b6 c7 movzbl %r15b,%eax - 4016fe: 89 44 24 0c mov %eax,0xc(%rsp) - 401702: 45 0f b6 ff movzbl %r15b,%r15d - 401706: 48 8b 4b 08 mov 0x8(%rbx),%rcx - 40170a: 48 89 ce mov %rcx,%rsi - 40170d: b9 01 00 00 00 mov $0x1,%ecx - 401712: 4c 89 fa mov %r15,%rdx - 401715: 48 89 74 24 10 mov %rsi,0x10(%rsp) - 40171a: 48 8d 7c 24 2f lea 0x2f(%rsp),%rdi - 40171f: e8 9c f4 ff ff call 400bc0 <__memcpy_chk@plt> - 401724: 4c 03 7c 24 10 add 0x10(%rsp),%r15 - 401729: 4c 89 7b 08 mov %r15,0x8(%rbx) - 40172d: 8b 44 24 0c mov 0xc(%rsp),%eax - 401731: 29 c5 sub %eax,%ebp - 401733: 89 6b 04 mov %ebp,0x4(%rbx) - 401736: 83 f8 01 cmp $0x1,%eax - 401739: 75 13 jne 40174e <rio_readlineb+0xc0> - 40173b: 49 83 c6 01 add $0x1,%r14 - 40173f: 0f b6 44 24 2f movzbl 0x2f(%rsp),%eax - 401744: 41 88 46 ff mov %al,-0x1(%r14) - 401748: 3c 0a cmp $0xa,%al - 40174a: 75 18 jne 401764 <rio_readlineb+0xd6> - 40174c: eb 2f jmp 40177d <rio_readlineb+0xef> - 40174e: 83 7c 24 0c 00 cmpl $0x0,0xc(%rsp) - 401753: 75 3a jne 40178f <rio_readlineb+0x101> - 401755: 44 89 e8 mov %r13d,%eax - 401758: eb 03 jmp 40175d <rio_readlineb+0xcf> - 40175a: 44 89 e8 mov %r13d,%eax - 40175d: 83 f8 01 cmp $0x1,%eax - 401760: 75 1b jne 40177d <rio_readlineb+0xef> - 401762: eb 34 jmp 401798 <rio_readlineb+0x10a> - 401764: 41 83 c5 01 add $0x1,%r13d - 401768: 49 63 c5 movslq %r13d,%rax - 40176b: 48 3b 44 24 18 cmp 0x18(%rsp),%rax - 401770: 73 0b jae 40177d <rio_readlineb+0xef> - 401772: e9 76 ff ff ff jmp 4016ed <rio_readlineb+0x5f> - 401777: 41 bd 01 00 00 00 mov $0x1,%r13d - 40177d: 41 c6 06 00 movb $0x0,(%r14) - 401781: 49 63 c5 movslq %r13d,%rax - 401784: eb 17 jmp 40179d <rio_readlineb+0x10f> - 401786: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax - 40178d: eb 0e jmp 40179d <rio_readlineb+0x10f> - 40178f: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax - 401796: eb 05 jmp 40179d <rio_readlineb+0x10f> - 401798: b8 00 00 00 00 mov $0x0,%eax - 40179d: 48 83 c4 38 add $0x38,%rsp - 4017a1: 5b pop %rbx - 4017a2: 5d pop %rbp - 4017a3: 41 5c pop %r12 - 4017a5: 41 5d pop %r13 - 4017a7: 41 5e pop %r14 - 4017a9: 41 5f pop %r15 - 4017ab: c3 ret + 40168e: push %r15 + 401690: push %r14 + 401692: push %r13 + 401694: push %r12 + 401696: push %rbp + 401697: push %rbx + 401698: sub $0x38,%rsp + 40169c: mov %rsi,%r14 + 40169f: mov %rdx,0x18(%rsp) + 4016a4: cmp $0x1,%rdx + 4016a8: jbe 401777 <rio_readlineb+0xe9> + 4016ae: mov %rdi,%rbx + 4016b1: mov $0x1,%r13d + 4016b7: lea 0x10(%rdi),%r12 + 4016bb: jmp 4016ed <rio_readlineb+0x5f> + 4016bd: mov $0x2000,%edx + 4016c2: mov %r12,%rsi + 4016c5: mov (%rbx),%edi + 4016c7: call 400b60 <read@plt> + 4016cc: mov %eax,0x4(%rbx) + 4016cf: test %eax,%eax + 4016d1: jns 4016e5 <rio_readlineb+0x57> + 4016d3: call 400af0 <__errno_location@plt> + 4016d8: cmpl $0x4,(%rax) + 4016db: je 4016ed <rio_readlineb+0x5f> + 4016dd: nopl (%rax) + 4016e0: jmp 401786 <rio_readlineb+0xf8> + 4016e5: test %eax,%eax + 4016e7: je 40175a <rio_readlineb+0xcc> + 4016e9: mov %r12,0x8(%rbx) + 4016ed: mov 0x4(%rbx),%ebp + 4016f0: test %ebp,%ebp + 4016f2: jle 4016bd <rio_readlineb+0x2f> + 4016f4: test %ebp,%ebp + 4016f6: setne %r15b + 4016fa: movzbl %r15b,%eax + 4016fe: mov %eax,0xc(%rsp) + 401702: movzbl %r15b,%r15d + 401706: mov 0x8(%rbx),%rcx + 40170a: mov %rcx,%rsi + 40170d: mov $0x1,%ecx + 401712: mov %r15,%rdx + 401715: mov %rsi,0x10(%rsp) + 40171a: lea 0x2f(%rsp),%rdi + 40171f: call 400bc0 <__memcpy_chk@plt> + 401724: add 0x10(%rsp),%r15 + 401729: mov %r15,0x8(%rbx) + 40172d: mov 0xc(%rsp),%eax + 401731: sub %eax,%ebp + 401733: mov %ebp,0x4(%rbx) + 401736: cmp $0x1,%eax + 401739: jne 40174e <rio_readlineb+0xc0> + 40173b: add $0x1,%r14 + 40173f: movzbl 0x2f(%rsp),%eax + 401744: mov %al,-0x1(%r14) + 401748: cmp $0xa,%al + 40174a: jne 401764 <rio_readlineb+0xd6> + 40174c: jmp 40177d <rio_readlineb+0xef> + 40174e: cmpl $0x0,0xc(%rsp) + 401753: jne 40178f <rio_readlineb+0x101> + 401755: mov %r13d,%eax + 401758: jmp 40175d <rio_readlineb+0xcf> + 40175a: mov %r13d,%eax + 40175d: cmp $0x1,%eax + 401760: jne 40177d <rio_readlineb+0xef> + 401762: jmp 401798 <rio_readlineb+0x10a> + 401764: add $0x1,%r13d + 401768: movslq %r13d,%rax + 40176b: cmp 0x18(%rsp),%rax + 401770: jae 40177d <rio_readlineb+0xef> + 401772: jmp 4016ed <rio_readlineb+0x5f> + 401777: mov $0x1,%r13d + 40177d: movb $0x0,(%r14) + 401781: movslq %r13d,%rax + 401784: jmp 40179d <rio_readlineb+0x10f> + 401786: mov $0xffffffffffffffff,%rax + 40178d: jmp 40179d <rio_readlineb+0x10f> + 40178f: mov $0xffffffffffffffff,%rax + 401796: jmp 40179d <rio_readlineb+0x10f> + 401798: mov $0x0,%eax + 40179d: add $0x38,%rsp + 4017a1: pop %rbx + 4017a2: pop %rbp + 4017a3: pop %r12 + 4017a5: pop %r13 + 4017a7: pop %r14 + 4017a9: pop %r15 + 4017ab: ret 00000000004017ac <submitr>: - 4017ac: 41 57 push %r15 - 4017ae: 41 56 push %r14 - 4017b0: 41 55 push %r13 - 4017b2: 41 54 push %r12 - 4017b4: 55 push %rbp - 4017b5: 53 push %rbx - 4017b6: 48 81 ec 68 a0 00 00 sub $0xa068,%rsp - 4017bd: 48 89 fd mov %rdi,%rbp - 4017c0: 41 89 f5 mov %esi,%r13d - 4017c3: 48 89 54 24 10 mov %rdx,0x10(%rsp) - 4017c8: 48 89 4c 24 18 mov %rcx,0x18(%rsp) - 4017cd: 4d 89 c7 mov %r8,%r15 - 4017d0: 4c 89 cb mov %r9,%rbx - 4017d3: 4c 8b b4 24 a0 a0 00 mov 0xa0a0(%rsp),%r14 - 4017da: 00 - 4017db: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax - 4017e2: 00 00 - 4017e4: 48 89 84 24 58 a0 00 mov %rax,0xa058(%rsp) - 4017eb: 00 - 4017ec: 31 c0 xor %eax,%eax - 4017ee: c7 44 24 2c 00 00 00 movl $0x0,0x2c(%rsp) - 4017f5: 00 - 4017f6: ba 00 00 00 00 mov $0x0,%edx - 4017fb: be 01 00 00 00 mov $0x1,%esi - 401800: bf 02 00 00 00 mov $0x2,%edi - 401805: e8 76 f4 ff ff call 400c80 <socket@plt> - 40180a: 41 89 c4 mov %eax,%r12d - 40180d: 85 c0 test %eax,%eax - 40180f: 79 50 jns 401861 <submitr+0xb5> - 401811: 48 b8 45 72 72 6f 72 movabs $0x43203a726f727245,%rax - 401818: 3a 20 43 - 40181b: 49 89 06 mov %rax,(%r14) - 40181e: 48 b8 6c 69 65 6e 74 movabs $0x6e7520746e65696c,%rax - 401825: 20 75 6e - 401828: 49 89 46 08 mov %rax,0x8(%r14) - 40182c: 48 b8 61 62 6c 65 20 movabs $0x206f7420656c6261,%rax - 401833: 74 6f 20 - 401836: 49 89 46 10 mov %rax,0x10(%r14) - 40183a: 48 b8 63 72 65 61 74 movabs $0x7320657461657263,%rax - 401841: 65 20 73 - 401844: 49 89 46 18 mov %rax,0x18(%r14) - 401848: 41 c7 46 20 6f 63 6b movl $0x656b636f,0x20(%r14) - 40184f: 65 - 401850: 66 41 c7 46 24 74 00 movw $0x74,0x24(%r14) - 401857: b8 ff ff ff ff mov $0xffffffff,%eax - 40185c: e9 07 06 00 00 jmp 401e68 <submitr+0x6bc> - 401861: 48 89 ef mov %rbp,%rdi - 401864: e8 37 f3 ff ff call 400ba0 <gethostbyname@plt> - 401869: 48 85 c0 test %rax,%rax - 40186c: 75 6b jne 4018d9 <submitr+0x12d> - 40186e: 48 b8 45 72 72 6f 72 movabs $0x44203a726f727245,%rax - 401875: 3a 20 44 - 401878: 49 89 06 mov %rax,(%r14) - 40187b: 48 b8 4e 53 20 69 73 movabs $0x6e7520736920534e,%rax - 401882: 20 75 6e - 401885: 49 89 46 08 mov %rax,0x8(%r14) - 401889: 48 b8 61 62 6c 65 20 movabs $0x206f7420656c6261,%rax - 401890: 74 6f 20 - 401893: 49 89 46 10 mov %rax,0x10(%r14) - 401897: 48 b8 72 65 73 6f 6c movabs $0x2065766c6f736572,%rax - 40189e: 76 65 20 - 4018a1: 49 89 46 18 mov %rax,0x18(%r14) - 4018a5: 48 b8 73 65 72 76 65 movabs $0x6120726576726573,%rax - 4018ac: 72 20 61 - 4018af: 49 89 46 20 mov %rax,0x20(%r14) - 4018b3: 41 c7 46 28 64 64 72 movl $0x65726464,0x28(%r14) - 4018ba: 65 - 4018bb: 66 41 c7 46 2c 73 73 movw $0x7373,0x2c(%r14) - 4018c2: 41 c6 46 2e 00 movb $0x0,0x2e(%r14) - 4018c7: 44 89 e7 mov %r12d,%edi - 4018ca: e8 81 f2 ff ff call 400b50 <close@plt> - 4018cf: b8 ff ff ff ff mov $0xffffffff,%eax - 4018d4: e9 8f 05 00 00 jmp 401e68 <submitr+0x6bc> - 4018d9: 48 c7 44 24 30 00 00 movq $0x0,0x30(%rsp) - 4018e0: 00 00 - 4018e2: 48 c7 44 24 38 00 00 movq $0x0,0x38(%rsp) - 4018e9: 00 00 - 4018eb: 66 c7 44 24 30 02 00 movw $0x2,0x30(%rsp) - 4018f2: 48 63 50 14 movslq 0x14(%rax),%rdx - 4018f6: 48 8b 40 18 mov 0x18(%rax),%rax - 4018fa: 48 8d 7c 24 34 lea 0x34(%rsp),%rdi - 4018ff: b9 0c 00 00 00 mov $0xc,%ecx - 401904: 48 8b 30 mov (%rax),%rsi - 401907: e8 a4 f2 ff ff call 400bb0 <__memmove_chk@plt> - 40190c: 66 41 c1 cd 08 ror $0x8,%r13w - 401911: 66 44 89 6c 24 32 mov %r13w,0x32(%rsp) - 401917: ba 10 00 00 00 mov $0x10,%edx - 40191c: 48 8d 74 24 30 lea 0x30(%rsp),%rsi - 401921: 44 89 e7 mov %r12d,%edi - 401924: e8 07 f3 ff ff call 400c30 <connect@plt> - 401929: 85 c0 test %eax,%eax - 40192b: 79 5d jns 40198a <submitr+0x1de> - 40192d: 48 b8 45 72 72 6f 72 movabs $0x55203a726f727245,%rax - 401934: 3a 20 55 - 401937: 49 89 06 mov %rax,(%r14) - 40193a: 48 b8 6e 61 62 6c 65 movabs $0x6f7420656c62616e,%rax - 401941: 20 74 6f - 401944: 49 89 46 08 mov %rax,0x8(%r14) - 401948: 48 b8 20 63 6f 6e 6e movabs $0x7463656e6e6f6320,%rax - 40194f: 65 63 74 - 401952: 49 89 46 10 mov %rax,0x10(%r14) - 401956: 48 b8 20 74 6f 20 74 movabs $0x20656874206f7420,%rax - 40195d: 68 65 20 - 401960: 49 89 46 18 mov %rax,0x18(%r14) - 401964: 41 c7 46 20 73 65 72 movl $0x76726573,0x20(%r14) - 40196b: 76 - 40196c: 66 41 c7 46 24 65 72 movw $0x7265,0x24(%r14) - 401973: 41 c6 46 26 00 movb $0x0,0x26(%r14) - 401978: 44 89 e7 mov %r12d,%edi - 40197b: e8 d0 f1 ff ff call 400b50 <close@plt> - 401980: b8 ff ff ff ff mov $0xffffffff,%eax - 401985: e9 de 04 00 00 jmp 401e68 <submitr+0x6bc> - 40198a: 48 c7 c2 ff ff ff ff mov $0xffffffffffffffff,%rdx - 401991: 48 89 df mov %rbx,%rdi - 401994: b8 00 00 00 00 mov $0x0,%eax - 401999: 48 89 d1 mov %rdx,%rcx - 40199c: f2 ae repnz scas %es:(%rdi),%al - 40199e: 48 f7 d1 not %rcx - 4019a1: 48 89 ce mov %rcx,%rsi - 4019a4: 48 8b 7c 24 10 mov 0x10(%rsp),%rdi - 4019a9: 48 89 d1 mov %rdx,%rcx - 4019ac: f2 ae repnz scas %es:(%rdi),%al - 4019ae: 49 89 c8 mov %rcx,%r8 - 4019b1: 48 8b 7c 24 18 mov 0x18(%rsp),%rdi - 4019b6: 48 89 d1 mov %rdx,%rcx - 4019b9: f2 ae repnz scas %es:(%rdi),%al - 4019bb: 48 f7 d1 not %rcx - 4019be: 49 89 c9 mov %rcx,%r9 - 4019c1: 4c 89 ff mov %r15,%rdi - 4019c4: 48 89 d1 mov %rdx,%rcx - 4019c7: f2 ae repnz scas %es:(%rdi),%al - 4019c9: 4d 29 c1 sub %r8,%r9 - 4019cc: 49 29 c9 sub %rcx,%r9 - 4019cf: 48 8d 44 76 fd lea -0x3(%rsi,%rsi,2),%rax - 4019d4: 49 8d 44 01 7b lea 0x7b(%r9,%rax,1),%rax - 4019d9: 48 3d 00 20 00 00 cmp $0x2000,%rax - 4019df: 76 73 jbe 401a54 <submitr+0x2a8> - 4019e1: 48 b8 45 72 72 6f 72 movabs $0x52203a726f727245,%rax - 4019e8: 3a 20 52 - 4019eb: 49 89 06 mov %rax,(%r14) - 4019ee: 48 b8 65 73 75 6c 74 movabs $0x747320746c757365,%rax - 4019f5: 20 73 74 - 4019f8: 49 89 46 08 mov %rax,0x8(%r14) - 4019fc: 48 b8 72 69 6e 67 20 movabs $0x6f6f7420676e6972,%rax - 401a03: 74 6f 6f - 401a06: 49 89 46 10 mov %rax,0x10(%r14) - 401a0a: 48 b8 20 6c 61 72 67 movabs $0x202e656772616c20,%rax - 401a11: 65 2e 20 - 401a14: 49 89 46 18 mov %rax,0x18(%r14) - 401a18: 48 b8 49 6e 63 72 65 movabs $0x6573616572636e49,%rax - 401a1f: 61 73 65 - 401a22: 49 89 46 20 mov %rax,0x20(%r14) - 401a26: 48 b8 20 53 55 42 4d movabs $0x5254494d42555320,%rax - 401a2d: 49 54 52 - 401a30: 49 89 46 28 mov %rax,0x28(%r14) - 401a34: 48 b8 5f 4d 41 58 42 movabs $0x46554258414d5f,%rax - 401a3b: 55 46 00 - 401a3e: 49 89 46 30 mov %rax,0x30(%r14) - 401a42: 44 89 e7 mov %r12d,%edi - 401a45: e8 06 f1 ff ff call 400b50 <close@plt> - 401a4a: b8 ff ff ff ff mov $0xffffffff,%eax - 401a4f: e9 14 04 00 00 jmp 401e68 <submitr+0x6bc> - 401a54: 48 8d 94 24 40 20 00 lea 0x2040(%rsp),%rdx - 401a5b: 00 - 401a5c: b9 00 04 00 00 mov $0x400,%ecx - 401a61: b8 00 00 00 00 mov $0x0,%eax - 401a66: 48 89 d7 mov %rdx,%rdi - 401a69: f3 48 ab rep stos %rax,%es:(%rdi) - 401a6c: 48 89 df mov %rbx,%rdi - 401a6f: 48 c7 c1 ff ff ff ff mov $0xffffffffffffffff,%rcx - 401a76: f2 ae repnz scas %es:(%rdi),%al - 401a78: 48 f7 d1 not %rcx - 401a7b: 48 83 e9 01 sub $0x1,%rcx - 401a7f: 85 c9 test %ecx,%ecx - 401a81: 0f 84 fd 03 00 00 je 401e84 <submitr+0x6d8> - 401a87: 83 e9 01 sub $0x1,%ecx - 401a8a: 4c 8d 6c 0b 01 lea 0x1(%rbx,%rcx,1),%r13 - 401a8f: 48 89 d5 mov %rdx,%rbp - 401a92: 44 0f b6 03 movzbl (%rbx),%r8d - 401a96: 41 80 f8 2a cmp $0x2a,%r8b - 401a9a: 74 23 je 401abf <submitr+0x313> - 401a9c: 41 8d 40 d3 lea -0x2d(%r8),%eax - 401aa0: 3c 01 cmp $0x1,%al - 401aa2: 76 1b jbe 401abf <submitr+0x313> - 401aa4: 41 80 f8 5f cmp $0x5f,%r8b - 401aa8: 74 15 je 401abf <submitr+0x313> - 401aaa: 41 8d 40 d0 lea -0x30(%r8),%eax - 401aae: 3c 09 cmp $0x9,%al - 401ab0: 76 0d jbe 401abf <submitr+0x313> - 401ab2: 44 89 c0 mov %r8d,%eax - 401ab5: 83 e0 df and $0xffffffdf,%eax - 401ab8: 83 e8 41 sub $0x41,%eax - 401abb: 3c 19 cmp $0x19,%al - 401abd: 77 0a ja 401ac9 <submitr+0x31d> - 401abf: 48 8d 45 01 lea 0x1(%rbp),%rax - 401ac3: 44 88 45 00 mov %r8b,0x0(%rbp) - 401ac7: eb 6c jmp 401b35 <submitr+0x389> - 401ac9: 41 80 f8 20 cmp $0x20,%r8b - 401acd: 75 0a jne 401ad9 <submitr+0x32d> - 401acf: 48 8d 45 01 lea 0x1(%rbp),%rax - 401ad3: c6 45 00 2b movb $0x2b,0x0(%rbp) - 401ad7: eb 5c jmp 401b35 <submitr+0x389> - 401ad9: 41 8d 40 e0 lea -0x20(%r8),%eax - 401add: 3c 5f cmp $0x5f,%al - 401adf: 76 0a jbe 401aeb <submitr+0x33f> - 401ae1: 41 80 f8 09 cmp $0x9,%r8b - 401ae5: 0f 85 02 04 00 00 jne 401eed <submitr+0x741> - 401aeb: 45 0f b6 c0 movzbl %r8b,%r8d - 401aef: b9 48 27 40 00 mov $0x402748,%ecx - 401af4: ba 08 00 00 00 mov $0x8,%edx - 401af9: be 01 00 00 00 mov $0x1,%esi - 401afe: 48 8d bc 24 40 80 00 lea 0x8040(%rsp),%rdi - 401b05: 00 - 401b06: b8 00 00 00 00 mov $0x0,%eax - 401b0b: e8 60 f1 ff ff call 400c70 <__sprintf_chk@plt> - 401b10: 0f b6 84 24 40 80 00 movzbl 0x8040(%rsp),%eax - 401b17: 00 - 401b18: 88 45 00 mov %al,0x0(%rbp) - 401b1b: 0f b6 84 24 41 80 00 movzbl 0x8041(%rsp),%eax - 401b22: 00 - 401b23: 88 45 01 mov %al,0x1(%rbp) - 401b26: 48 8d 45 03 lea 0x3(%rbp),%rax - 401b2a: 0f b6 94 24 42 80 00 movzbl 0x8042(%rsp),%edx - 401b31: 00 - 401b32: 88 55 02 mov %dl,0x2(%rbp) - 401b35: 48 83 c3 01 add $0x1,%rbx - 401b39: 4c 39 eb cmp %r13,%rbx - 401b3c: 0f 84 42 03 00 00 je 401e84 <submitr+0x6d8> - 401b42: 48 89 c5 mov %rax,%rbp - 401b45: e9 48 ff ff ff jmp 401a92 <submitr+0x2e6> - 401b4a: 48 89 da mov %rbx,%rdx - 401b4d: 48 89 ee mov %rbp,%rsi - 401b50: 44 89 e7 mov %r12d,%edi - 401b53: e8 c8 ef ff ff call 400b20 <write@plt> - 401b58: 48 85 c0 test %rax,%rax - 401b5b: 7f 0f jg 401b6c <submitr+0x3c0> - 401b5d: e8 8e ef ff ff call 400af0 <__errno_location@plt> - 401b62: 83 38 04 cmpl $0x4,(%rax) - 401b65: 75 12 jne 401b79 <submitr+0x3cd> - 401b67: b8 00 00 00 00 mov $0x0,%eax - 401b6c: 48 01 c5 add %rax,%rbp - 401b6f: 48 29 c3 sub %rax,%rbx - 401b72: 75 d6 jne 401b4a <submitr+0x39e> - 401b74: 4d 85 ed test %r13,%r13 - 401b77: 79 5f jns 401bd8 <submitr+0x42c> - 401b79: 48 b8 45 72 72 6f 72 movabs $0x43203a726f727245,%rax - 401b80: 3a 20 43 - 401b83: 49 89 06 mov %rax,(%r14) - 401b86: 48 b8 6c 69 65 6e 74 movabs $0x6e7520746e65696c,%rax - 401b8d: 20 75 6e - 401b90: 49 89 46 08 mov %rax,0x8(%r14) - 401b94: 48 b8 61 62 6c 65 20 movabs $0x206f7420656c6261,%rax - 401b9b: 74 6f 20 - 401b9e: 49 89 46 10 mov %rax,0x10(%r14) - 401ba2: 48 b8 77 72 69 74 65 movabs $0x6f74206574697277,%rax - 401ba9: 20 74 6f - 401bac: 49 89 46 18 mov %rax,0x18(%r14) - 401bb0: 48 b8 20 74 68 65 20 movabs $0x7265732065687420,%rax - 401bb7: 73 65 72 - 401bba: 49 89 46 20 mov %rax,0x20(%r14) - 401bbe: 41 c7 46 28 76 65 72 movl $0x726576,0x28(%r14) - 401bc5: 00 - 401bc6: 44 89 e7 mov %r12d,%edi - 401bc9: e8 82 ef ff ff call 400b50 <close@plt> - 401bce: b8 ff ff ff ff mov $0xffffffff,%eax - 401bd3: e9 90 02 00 00 jmp 401e68 <submitr+0x6bc> - 401bd8: 44 89 a4 24 40 80 00 mov %r12d,0x8040(%rsp) - 401bdf: 00 - 401be0: c7 84 24 44 80 00 00 movl $0x0,0x8044(%rsp) - 401be7: 00 00 00 00 - 401beb: 48 8d 84 24 50 80 00 lea 0x8050(%rsp),%rax - 401bf2: 00 - 401bf3: 48 89 84 24 48 80 00 mov %rax,0x8048(%rsp) - 401bfa: 00 - 401bfb: ba 00 20 00 00 mov $0x2000,%edx - 401c00: 48 8d 74 24 40 lea 0x40(%rsp),%rsi - 401c05: 48 8d bc 24 40 80 00 lea 0x8040(%rsp),%rdi - 401c0c: 00 - 401c0d: e8 7c fa ff ff call 40168e <rio_readlineb> - 401c12: 48 85 c0 test %rax,%rax - 401c15: 7f 74 jg 401c8b <submitr+0x4df> - 401c17: 48 b8 45 72 72 6f 72 movabs $0x43203a726f727245,%rax - 401c1e: 3a 20 43 - 401c21: 49 89 06 mov %rax,(%r14) - 401c24: 48 b8 6c 69 65 6e 74 movabs $0x6e7520746e65696c,%rax - 401c2b: 20 75 6e - 401c2e: 49 89 46 08 mov %rax,0x8(%r14) - 401c32: 48 b8 61 62 6c 65 20 movabs $0x206f7420656c6261,%rax - 401c39: 74 6f 20 - 401c3c: 49 89 46 10 mov %rax,0x10(%r14) - 401c40: 48 b8 72 65 61 64 20 movabs $0x7269662064616572,%rax - 401c47: 66 69 72 - 401c4a: 49 89 46 18 mov %rax,0x18(%r14) - 401c4e: 48 b8 73 74 20 68 65 movabs $0x6564616568207473,%rax - 401c55: 61 64 65 - 401c58: 49 89 46 20 mov %rax,0x20(%r14) - 401c5c: 48 b8 72 20 66 72 6f movabs $0x73206d6f72662072,%rax - 401c63: 6d 20 73 - 401c66: 49 89 46 28 mov %rax,0x28(%r14) - 401c6a: 41 c7 46 30 65 72 76 movl $0x65767265,0x30(%r14) - 401c71: 65 - 401c72: 66 41 c7 46 34 72 00 movw $0x72,0x34(%r14) - 401c79: 44 89 e7 mov %r12d,%edi - 401c7c: e8 cf ee ff ff call 400b50 <close@plt> - 401c81: b8 ff ff ff ff mov $0xffffffff,%eax - 401c86: e9 dd 01 00 00 jmp 401e68 <submitr+0x6bc> - 401c8b: 4c 8d 84 24 40 60 00 lea 0x6040(%rsp),%r8 - 401c92: 00 - 401c93: 48 8d 4c 24 2c lea 0x2c(%rsp),%rcx - 401c98: 48 8d 94 24 40 40 00 lea 0x4040(%rsp),%rdx - 401c9f: 00 - 401ca0: be 4f 27 40 00 mov $0x40274f,%esi - 401ca5: 48 8d 7c 24 40 lea 0x40(%rsp),%rdi - 401caa: b8 00 00 00 00 mov $0x0,%eax - 401caf: e8 3c ef ff ff call 400bf0 <__isoc99_sscanf@plt> - 401cb4: 44 8b 44 24 2c mov 0x2c(%rsp),%r8d - 401cb9: 41 81 f8 c8 00 00 00 cmp $0xc8,%r8d - 401cc0: 0f 84 be 00 00 00 je 401d84 <submitr+0x5d8> - 401cc6: 4c 8d 8c 24 40 60 00 lea 0x6040(%rsp),%r9 - 401ccd: 00 - 401cce: b9 a0 26 40 00 mov $0x4026a0,%ecx - 401cd3: 48 c7 c2 ff ff ff ff mov $0xffffffffffffffff,%rdx - 401cda: be 01 00 00 00 mov $0x1,%esi - 401cdf: 4c 89 f7 mov %r14,%rdi - 401ce2: b8 00 00 00 00 mov $0x0,%eax - 401ce7: e8 84 ef ff ff call 400c70 <__sprintf_chk@plt> - 401cec: 44 89 e7 mov %r12d,%edi - 401cef: e8 5c ee ff ff call 400b50 <close@plt> - 401cf4: b8 ff ff ff ff mov $0xffffffff,%eax - 401cf9: e9 6a 01 00 00 jmp 401e68 <submitr+0x6bc> - 401cfe: ba 00 20 00 00 mov $0x2000,%edx - 401d03: 48 8d 74 24 40 lea 0x40(%rsp),%rsi - 401d08: 48 8d bc 24 40 80 00 lea 0x8040(%rsp),%rdi - 401d0f: 00 - 401d10: e8 79 f9 ff ff call 40168e <rio_readlineb> - 401d15: 48 85 c0 test %rax,%rax - 401d18: 7f 6a jg 401d84 <submitr+0x5d8> - 401d1a: 48 b8 45 72 72 6f 72 movabs $0x43203a726f727245,%rax - 401d21: 3a 20 43 - 401d24: 49 89 06 mov %rax,(%r14) - 401d27: 48 b8 6c 69 65 6e 74 movabs $0x6e7520746e65696c,%rax - 401d2e: 20 75 6e - 401d31: 49 89 46 08 mov %rax,0x8(%r14) - 401d35: 48 b8 61 62 6c 65 20 movabs $0x206f7420656c6261,%rax - 401d3c: 74 6f 20 - 401d3f: 49 89 46 10 mov %rax,0x10(%r14) - 401d43: 48 b8 72 65 61 64 20 movabs $0x6165682064616572,%rax - 401d4a: 68 65 61 - 401d4d: 49 89 46 18 mov %rax,0x18(%r14) - 401d51: 48 b8 64 65 72 73 20 movabs $0x6f72662073726564,%rax - 401d58: 66 72 6f - 401d5b: 49 89 46 20 mov %rax,0x20(%r14) - 401d5f: 48 b8 6d 20 73 65 72 movabs $0x726576726573206d,%rax - 401d66: 76 65 72 - 401d69: 49 89 46 28 mov %rax,0x28(%r14) - 401d6d: 41 c6 46 30 00 movb $0x0,0x30(%r14) - 401d72: 44 89 e7 mov %r12d,%edi - 401d75: e8 d6 ed ff ff call 400b50 <close@plt> - 401d7a: b8 ff ff ff ff mov $0xffffffff,%eax - 401d7f: e9 e4 00 00 00 jmp 401e68 <submitr+0x6bc> - 401d84: 80 7c 24 40 0d cmpb $0xd,0x40(%rsp) - 401d89: 0f 85 6f ff ff ff jne 401cfe <submitr+0x552> - 401d8f: 80 7c 24 41 0a cmpb $0xa,0x41(%rsp) - 401d94: 0f 85 64 ff ff ff jne 401cfe <submitr+0x552> - 401d9a: 80 7c 24 42 00 cmpb $0x0,0x42(%rsp) - 401d9f: 0f 85 59 ff ff ff jne 401cfe <submitr+0x552> - 401da5: ba 00 20 00 00 mov $0x2000,%edx - 401daa: 48 8d 74 24 40 lea 0x40(%rsp),%rsi - 401daf: 48 8d bc 24 40 80 00 lea 0x8040(%rsp),%rdi - 401db6: 00 - 401db7: e8 d2 f8 ff ff call 40168e <rio_readlineb> - 401dbc: 48 85 c0 test %rax,%rax - 401dbf: 7f 70 jg 401e31 <submitr+0x685> - 401dc1: 48 b8 45 72 72 6f 72 movabs $0x43203a726f727245,%rax - 401dc8: 3a 20 43 - 401dcb: 49 89 06 mov %rax,(%r14) - 401dce: 48 b8 6c 69 65 6e 74 movabs $0x6e7520746e65696c,%rax - 401dd5: 20 75 6e - 401dd8: 49 89 46 08 mov %rax,0x8(%r14) - 401ddc: 48 b8 61 62 6c 65 20 movabs $0x206f7420656c6261,%rax - 401de3: 74 6f 20 - 401de6: 49 89 46 10 mov %rax,0x10(%r14) - 401dea: 48 b8 72 65 61 64 20 movabs $0x6174732064616572,%rax - 401df1: 73 74 61 - 401df4: 49 89 46 18 mov %rax,0x18(%r14) - 401df8: 48 b8 74 75 73 20 6d movabs $0x7373656d20737574,%rax - 401dff: 65 73 73 - 401e02: 49 89 46 20 mov %rax,0x20(%r14) - 401e06: 48 b8 61 67 65 20 66 movabs $0x6d6f726620656761,%rax - 401e0d: 72 6f 6d - 401e10: 49 89 46 28 mov %rax,0x28(%r14) - 401e14: 48 b8 20 73 65 72 76 movabs $0x72657672657320,%rax - 401e1b: 65 72 00 - 401e1e: 49 89 46 30 mov %rax,0x30(%r14) - 401e22: 44 89 e7 mov %r12d,%edi - 401e25: e8 26 ed ff ff call 400b50 <close@plt> - 401e2a: b8 ff ff ff ff mov $0xffffffff,%eax - 401e2f: eb 37 jmp 401e68 <submitr+0x6bc> - 401e31: 48 8d 74 24 40 lea 0x40(%rsp),%rsi - 401e36: 4c 89 f7 mov %r14,%rdi - 401e39: e8 c2 ec ff ff call 400b00 <strcpy@plt> - 401e3e: 44 89 e7 mov %r12d,%edi - 401e41: e8 0a ed ff ff call 400b50 <close@plt> - 401e46: 41 0f b6 06 movzbl (%r14),%eax - 401e4a: 83 e8 4f sub $0x4f,%eax - 401e4d: 75 0f jne 401e5e <submitr+0x6b2> - 401e4f: 41 0f b6 46 01 movzbl 0x1(%r14),%eax - 401e54: 83 e8 4b sub $0x4b,%eax - 401e57: 75 05 jne 401e5e <submitr+0x6b2> - 401e59: 41 0f b6 46 02 movzbl 0x2(%r14),%eax - 401e5e: 85 c0 test %eax,%eax - 401e60: 0f 95 c0 setne %al - 401e63: 0f b6 c0 movzbl %al,%eax - 401e66: f7 d8 neg %eax - 401e68: 48 8b 94 24 58 a0 00 mov 0xa058(%rsp),%rdx - 401e6f: 00 - 401e70: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx - 401e77: 00 00 - 401e79: 0f 84 00 01 00 00 je 401f7f <submitr+0x7d3> - 401e7f: e9 f6 00 00 00 jmp 401f7a <submitr+0x7ce> - 401e84: 48 8d 84 24 40 20 00 lea 0x2040(%rsp),%rax - 401e8b: 00 - 401e8c: 48 89 44 24 08 mov %rax,0x8(%rsp) - 401e91: 4c 89 3c 24 mov %r15,(%rsp) - 401e95: 4c 8b 4c 24 18 mov 0x18(%rsp),%r9 - 401e9a: 4c 8b 44 24 10 mov 0x10(%rsp),%r8 - 401e9f: b9 d0 26 40 00 mov $0x4026d0,%ecx - 401ea4: ba 00 20 00 00 mov $0x2000,%edx - 401ea9: be 01 00 00 00 mov $0x1,%esi - 401eae: 48 8d 7c 24 40 lea 0x40(%rsp),%rdi - 401eb3: b8 00 00 00 00 mov $0x0,%eax - 401eb8: e8 b3 ed ff ff call 400c70 <__sprintf_chk@plt> - 401ebd: 48 8d 7c 24 40 lea 0x40(%rsp),%rdi - 401ec2: b8 00 00 00 00 mov $0x0,%eax - 401ec7: 48 c7 c1 ff ff ff ff mov $0xffffffffffffffff,%rcx - 401ece: f2 ae repnz scas %es:(%rdi),%al - 401ed0: 48 f7 d1 not %rcx - 401ed3: 48 83 e9 01 sub $0x1,%rcx - 401ed7: 49 89 cd mov %rcx,%r13 - 401eda: 0f 84 f8 fc ff ff je 401bd8 <submitr+0x42c> - 401ee0: 48 89 cb mov %rcx,%rbx - 401ee3: 48 8d 6c 24 40 lea 0x40(%rsp),%rbp - 401ee8: e9 5d fc ff ff jmp 401b4a <submitr+0x39e> - 401eed: 48 b8 45 72 72 6f 72 movabs $0x52203a726f727245,%rax - 401ef4: 3a 20 52 - 401ef7: 49 89 06 mov %rax,(%r14) - 401efa: 48 b8 65 73 75 6c 74 movabs $0x747320746c757365,%rax - 401f01: 20 73 74 - 401f04: 49 89 46 08 mov %rax,0x8(%r14) - 401f08: 48 b8 72 69 6e 67 20 movabs $0x6e6f6320676e6972,%rax - 401f0f: 63 6f 6e - 401f12: 49 89 46 10 mov %rax,0x10(%r14) - 401f16: 48 b8 74 61 69 6e 73 movabs $0x6e6120736e696174,%rax - 401f1d: 20 61 6e - 401f20: 49 89 46 18 mov %rax,0x18(%r14) - 401f24: 48 b8 20 69 6c 6c 65 movabs $0x6c6167656c6c6920,%rax - 401f2b: 67 61 6c - 401f2e: 49 89 46 20 mov %rax,0x20(%r14) - 401f32: 48 b8 20 6f 72 20 75 movabs $0x72706e7520726f20,%rax - 401f39: 6e 70 72 - 401f3c: 49 89 46 28 mov %rax,0x28(%r14) - 401f40: 48 b8 69 6e 74 61 62 movabs $0x20656c6261746e69,%rax - 401f47: 6c 65 20 - 401f4a: 49 89 46 30 mov %rax,0x30(%r14) - 401f4e: 48 b8 63 68 61 72 61 movabs $0x6574636172616863,%rax - 401f55: 63 74 65 - 401f58: 49 89 46 38 mov %rax,0x38(%r14) - 401f5c: 66 41 c7 46 40 72 2e movw $0x2e72,0x40(%r14) - 401f63: 41 c6 46 42 00 movb $0x0,0x42(%r14) - 401f68: 44 89 e7 mov %r12d,%edi - 401f6b: e8 e0 eb ff ff call 400b50 <close@plt> - 401f70: b8 ff ff ff ff mov $0xffffffff,%eax - 401f75: e9 ee fe ff ff jmp 401e68 <submitr+0x6bc> - 401f7a: e8 b1 eb ff ff call 400b30 <__stack_chk_fail@plt> - 401f7f: 48 81 c4 68 a0 00 00 add $0xa068,%rsp - 401f86: 5b pop %rbx - 401f87: 5d pop %rbp - 401f88: 41 5c pop %r12 - 401f8a: 41 5d pop %r13 - 401f8c: 41 5e pop %r14 - 401f8e: 41 5f pop %r15 - 401f90: c3 ret + 4017ac: push %r15 + 4017ae: push %r14 + 4017b0: push %r13 + 4017b2: push %r12 + 4017b4: push %rbp + 4017b5: push %rbx + 4017b6: sub $0xa068,%rsp + 4017bd: mov %rdi,%rbp + 4017c0: mov %esi,%r13d + 4017c3: mov %rdx,0x10(%rsp) + 4017c8: mov %rcx,0x18(%rsp) + 4017cd: mov %r8,%r15 + 4017d0: mov %r9,%rbx + 4017d3: mov 0xa0a0(%rsp),%r14 + 4017db: mov %fs:0x28,%rax + 4017e4: mov %rax,0xa058(%rsp) + 4017ec: xor %eax,%eax + 4017ee: movl $0x0,0x2c(%rsp) + 4017f6: mov $0x0,%edx + 4017fb: mov $0x1,%esi + 401800: mov $0x2,%edi + 401805: call 400c80 <socket@plt> + 40180a: mov %eax,%r12d + 40180d: test %eax,%eax + 40180f: jns 401861 <submitr+0xb5> + 401811: movabs $0x43203a726f727245,%rax + 40181b: mov %rax,(%r14) + 40181e: movabs $0x6e7520746e65696c,%rax + 401828: mov %rax,0x8(%r14) + 40182c: movabs $0x206f7420656c6261,%rax + 401836: mov %rax,0x10(%r14) + 40183a: movabs $0x7320657461657263,%rax + 401844: mov %rax,0x18(%r14) + 401848: movl $0x656b636f,0x20(%r14) + 401850: movw $0x74,0x24(%r14) + 401857: mov $0xffffffff,%eax + 40185c: jmp 401e68 <submitr+0x6bc> + 401861: mov %rbp,%rdi + 401864: call 400ba0 <gethostbyname@plt> + 401869: test %rax,%rax + 40186c: jne 4018d9 <submitr+0x12d> + 40186e: movabs $0x44203a726f727245,%rax + 401878: mov %rax,(%r14) + 40187b: movabs $0x6e7520736920534e,%rax + 401885: mov %rax,0x8(%r14) + 401889: movabs $0x206f7420656c6261,%rax + 401893: mov %rax,0x10(%r14) + 401897: movabs $0x2065766c6f736572,%rax + 4018a1: mov %rax,0x18(%r14) + 4018a5: movabs $0x6120726576726573,%rax + 4018af: mov %rax,0x20(%r14) + 4018b3: movl $0x65726464,0x28(%r14) + 4018bb: movw $0x7373,0x2c(%r14) + 4018c2: movb $0x0,0x2e(%r14) + 4018c7: mov %r12d,%edi + 4018ca: call 400b50 <close@plt> + 4018cf: mov $0xffffffff,%eax + 4018d4: jmp 401e68 <submitr+0x6bc> + 4018d9: movq $0x0,0x30(%rsp) + 4018e2: movq $0x0,0x38(%rsp) + 4018eb: movw $0x2,0x30(%rsp) + 4018f2: movslq 0x14(%rax),%rdx + 4018f6: mov 0x18(%rax),%rax + 4018fa: lea 0x34(%rsp),%rdi + 4018ff: mov $0xc,%ecx + 401904: mov (%rax),%rsi + 401907: call 400bb0 <__memmove_chk@plt> + 40190c: ror $0x8,%r13w + 401911: mov %r13w,0x32(%rsp) + 401917: mov $0x10,%edx + 40191c: lea 0x30(%rsp),%rsi + 401921: mov %r12d,%edi + 401924: call 400c30 <connect@plt> + 401929: test %eax,%eax + 40192b: jns 40198a <submitr+0x1de> + 40192d: movabs $0x55203a726f727245,%rax + 401937: mov %rax,(%r14) + 40193a: movabs $0x6f7420656c62616e,%rax + 401944: mov %rax,0x8(%r14) + 401948: movabs $0x7463656e6e6f6320,%rax + 401952: mov %rax,0x10(%r14) + 401956: movabs $0x20656874206f7420,%rax + 401960: mov %rax,0x18(%r14) + 401964: movl $0x76726573,0x20(%r14) + 40196c: movw $0x7265,0x24(%r14) + 401973: movb $0x0,0x26(%r14) + 401978: mov %r12d,%edi + 40197b: call 400b50 <close@plt> + 401980: mov $0xffffffff,%eax + 401985: jmp 401e68 <submitr+0x6bc> + 40198a: mov $0xffffffffffffffff,%rdx + 401991: mov %rbx,%rdi + 401994: mov $0x0,%eax + 401999: mov %rdx,%rcx + 40199c: repnz scas %es:(%rdi),%al + 40199e: not %rcx + 4019a1: mov %rcx,%rsi + 4019a4: mov 0x10(%rsp),%rdi + 4019a9: mov %rdx,%rcx + 4019ac: repnz scas %es:(%rdi),%al + 4019ae: mov %rcx,%r8 + 4019b1: mov 0x18(%rsp),%rdi + 4019b6: mov %rdx,%rcx + 4019b9: repnz scas %es:(%rdi),%al + 4019bb: not %rcx + 4019be: mov %rcx,%r9 + 4019c1: mov %r15,%rdi + 4019c4: mov %rdx,%rcx + 4019c7: repnz scas %es:(%rdi),%al + 4019c9: sub %r8,%r9 + 4019cc: sub %rcx,%r9 + 4019cf: lea -0x3(%rsi,%rsi,2),%rax + 4019d4: lea 0x7b(%r9,%rax,1),%rax + 4019d9: cmp $0x2000,%rax + 4019df: jbe 401a54 <submitr+0x2a8> + 4019e1: movabs $0x52203a726f727245,%rax + 4019eb: mov %rax,(%r14) + 4019ee: movabs $0x747320746c757365,%rax + 4019f8: mov %rax,0x8(%r14) + 4019fc: movabs $0x6f6f7420676e6972,%rax + 401a06: mov %rax,0x10(%r14) + 401a0a: movabs $0x202e656772616c20,%rax + 401a14: mov %rax,0x18(%r14) + 401a18: movabs $0x6573616572636e49,%rax + 401a22: mov %rax,0x20(%r14) + 401a26: movabs $0x5254494d42555320,%rax + 401a30: mov %rax,0x28(%r14) + 401a34: movabs $0x46554258414d5f,%rax + 401a3e: mov %rax,0x30(%r14) + 401a42: mov %r12d,%edi + 401a45: call 400b50 <close@plt> + 401a4a: mov $0xffffffff,%eax + 401a4f: jmp 401e68 <submitr+0x6bc> + 401a54: lea 0x2040(%rsp),%rdx + 401a5c: mov $0x400,%ecx + 401a61: mov $0x0,%eax + 401a66: mov %rdx,%rdi + 401a69: rep stos %rax,%es:(%rdi) + 401a6c: mov %rbx,%rdi + 401a6f: mov $0xffffffffffffffff,%rcx + 401a76: repnz scas %es:(%rdi),%al + 401a78: not %rcx + 401a7b: sub $0x1,%rcx + 401a7f: test %ecx,%ecx + 401a81: je 401e84 <submitr+0x6d8> + 401a87: sub $0x1,%ecx + 401a8a: lea 0x1(%rbx,%rcx,1),%r13 + 401a8f: mov %rdx,%rbp + 401a92: movzbl (%rbx),%r8d + 401a96: cmp $0x2a,%r8b + 401a9a: je 401abf <submitr+0x313> + 401a9c: lea -0x2d(%r8),%eax + 401aa0: cmp $0x1,%al + 401aa2: jbe 401abf <submitr+0x313> + 401aa4: cmp $0x5f,%r8b + 401aa8: je 401abf <submitr+0x313> + 401aaa: lea -0x30(%r8),%eax + 401aae: cmp $0x9,%al + 401ab0: jbe 401abf <submitr+0x313> + 401ab2: mov %r8d,%eax + 401ab5: and $0xffffffdf,%eax + 401ab8: sub $0x41,%eax + 401abb: cmp $0x19,%al + 401abd: ja 401ac9 <submitr+0x31d> + 401abf: lea 0x1(%rbp),%rax + 401ac3: mov %r8b,0x0(%rbp) + 401ac7: jmp 401b35 <submitr+0x389> + 401ac9: cmp $0x20,%r8b + 401acd: jne 401ad9 <submitr+0x32d> + 401acf: lea 0x1(%rbp),%rax + 401ad3: movb $0x2b,0x0(%rbp) + 401ad7: jmp 401b35 <submitr+0x389> + 401ad9: lea -0x20(%r8),%eax + 401add: cmp $0x5f,%al + 401adf: jbe 401aeb <submitr+0x33f> + 401ae1: cmp $0x9,%r8b + 401ae5: jne 401eed <submitr+0x741> + 401aeb: movzbl %r8b,%r8d + 401aef: mov $0x402748,%ecx + 401af4: mov $0x8,%edx + 401af9: mov $0x1,%esi + 401afe: lea 0x8040(%rsp),%rdi + 401b06: mov $0x0,%eax + 401b0b: call 400c70 <__sprintf_chk@plt> + 401b10: movzbl 0x8040(%rsp),%eax + 401b18: mov %al,0x0(%rbp) + 401b1b: movzbl 0x8041(%rsp),%eax + 401b23: mov %al,0x1(%rbp) + 401b26: lea 0x3(%rbp),%rax + 401b2a: movzbl 0x8042(%rsp),%edx + 401b32: mov %dl,0x2(%rbp) + 401b35: add $0x1,%rbx + 401b39: cmp %r13,%rbx + 401b3c: je 401e84 <submitr+0x6d8> + 401b42: mov %rax,%rbp + 401b45: jmp 401a92 <submitr+0x2e6> + 401b4a: mov %rbx,%rdx + 401b4d: mov %rbp,%rsi + 401b50: mov %r12d,%edi + 401b53: call 400b20 <write@plt> + 401b58: test %rax,%rax + 401b5b: jg 401b6c <submitr+0x3c0> + 401b5d: call 400af0 <__errno_location@plt> + 401b62: cmpl $0x4,(%rax) + 401b65: jne 401b79 <submitr+0x3cd> + 401b67: mov $0x0,%eax + 401b6c: add %rax,%rbp + 401b6f: sub %rax,%rbx + 401b72: jne 401b4a <submitr+0x39e> + 401b74: test %r13,%r13 + 401b77: jns 401bd8 <submitr+0x42c> + 401b79: movabs $0x43203a726f727245,%rax + 401b83: mov %rax,(%r14) + 401b86: movabs $0x6e7520746e65696c,%rax + 401b90: mov %rax,0x8(%r14) + 401b94: movabs $0x206f7420656c6261,%rax + 401b9e: mov %rax,0x10(%r14) + 401ba2: movabs $0x6f74206574697277,%rax + 401bac: mov %rax,0x18(%r14) + 401bb0: movabs $0x7265732065687420,%rax + 401bba: mov %rax,0x20(%r14) + 401bbe: movl $0x726576,0x28(%r14) + 401bc6: mov %r12d,%edi + 401bc9: call 400b50 <close@plt> + 401bce: mov $0xffffffff,%eax + 401bd3: jmp 401e68 <submitr+0x6bc> + 401bd8: mov %r12d,0x8040(%rsp) + 401be0: movl $0x0,0x8044(%rsp) + 401beb: lea 0x8050(%rsp),%rax + 401bf3: mov %rax,0x8048(%rsp) + 401bfb: mov $0x2000,%edx + 401c00: lea 0x40(%rsp),%rsi + 401c05: lea 0x8040(%rsp),%rdi + 401c0d: call 40168e <rio_readlineb> + 401c12: test %rax,%rax + 401c15: jg 401c8b <submitr+0x4df> + 401c17: movabs $0x43203a726f727245,%rax + 401c21: mov %rax,(%r14) + 401c24: movabs $0x6e7520746e65696c,%rax + 401c2e: mov %rax,0x8(%r14) + 401c32: movabs $0x206f7420656c6261,%rax + 401c3c: mov %rax,0x10(%r14) + 401c40: movabs $0x7269662064616572,%rax + 401c4a: mov %rax,0x18(%r14) + 401c4e: movabs $0x6564616568207473,%rax + 401c58: mov %rax,0x20(%r14) + 401c5c: movabs $0x73206d6f72662072,%rax + 401c66: mov %rax,0x28(%r14) + 401c6a: movl $0x65767265,0x30(%r14) + 401c72: movw $0x72,0x34(%r14) + 401c79: mov %r12d,%edi + 401c7c: call 400b50 <close@plt> + 401c81: mov $0xffffffff,%eax + 401c86: jmp 401e68 <submitr+0x6bc> + 401c8b: lea 0x6040(%rsp),%r8 + 401c93: lea 0x2c(%rsp),%rcx + 401c98: lea 0x4040(%rsp),%rdx + 401ca0: mov $0x40274f,%esi + 401ca5: lea 0x40(%rsp),%rdi + 401caa: mov $0x0,%eax + 401caf: call 400bf0 <__isoc99_sscanf@plt> + 401cb4: mov 0x2c(%rsp),%r8d + 401cb9: cmp $0xc8,%r8d + 401cc0: je 401d84 <submitr+0x5d8> + 401cc6: lea 0x6040(%rsp),%r9 + 401cce: mov $0x4026a0,%ecx + 401cd3: mov $0xffffffffffffffff,%rdx + 401cda: mov $0x1,%esi + 401cdf: mov %r14,%rdi + 401ce2: mov $0x0,%eax + 401ce7: call 400c70 <__sprintf_chk@plt> + 401cec: mov %r12d,%edi + 401cef: call 400b50 <close@plt> + 401cf4: mov $0xffffffff,%eax + 401cf9: jmp 401e68 <submitr+0x6bc> + 401cfe: mov $0x2000,%edx + 401d03: lea 0x40(%rsp),%rsi + 401d08: lea 0x8040(%rsp),%rdi + 401d10: call 40168e <rio_readlineb> + 401d15: test %rax,%rax + 401d18: jg 401d84 <submitr+0x5d8> + 401d1a: movabs $0x43203a726f727245,%rax + 401d24: mov %rax,(%r14) + 401d27: movabs $0x6e7520746e65696c,%rax + 401d31: mov %rax,0x8(%r14) + 401d35: movabs $0x206f7420656c6261,%rax + 401d3f: mov %rax,0x10(%r14) + 401d43: movabs $0x6165682064616572,%rax + 401d4d: mov %rax,0x18(%r14) + 401d51: movabs $0x6f72662073726564,%rax + 401d5b: mov %rax,0x20(%r14) + 401d5f: movabs $0x726576726573206d,%rax + 401d69: mov %rax,0x28(%r14) + 401d6d: movb $0x0,0x30(%r14) + 401d72: mov %r12d,%edi + 401d75: call 400b50 <close@plt> + 401d7a: mov $0xffffffff,%eax + 401d7f: jmp 401e68 <submitr+0x6bc> + 401d84: cmpb $0xd,0x40(%rsp) + 401d89: jne 401cfe <submitr+0x552> + 401d8f: cmpb $0xa,0x41(%rsp) + 401d94: jne 401cfe <submitr+0x552> + 401d9a: cmpb $0x0,0x42(%rsp) + 401d9f: jne 401cfe <submitr+0x552> + 401da5: mov $0x2000,%edx + 401daa: lea 0x40(%rsp),%rsi + 401daf: lea 0x8040(%rsp),%rdi + 401db7: call 40168e <rio_readlineb> + 401dbc: test %rax,%rax + 401dbf: jg 401e31 <submitr+0x685> + 401dc1: movabs $0x43203a726f727245,%rax + 401dcb: mov %rax,(%r14) + 401dce: movabs $0x6e7520746e65696c,%rax + 401dd8: mov %rax,0x8(%r14) + 401ddc: movabs $0x206f7420656c6261,%rax + 401de6: mov %rax,0x10(%r14) + 401dea: movabs $0x6174732064616572,%rax + 401df4: mov %rax,0x18(%r14) + 401df8: movabs $0x7373656d20737574,%rax + 401e02: mov %rax,0x20(%r14) + 401e06: movabs $0x6d6f726620656761,%rax + 401e10: mov %rax,0x28(%r14) + 401e14: movabs $0x72657672657320,%rax + 401e1e: mov %rax,0x30(%r14) + 401e22: mov %r12d,%edi + 401e25: call 400b50 <close@plt> + 401e2a: mov $0xffffffff,%eax + 401e2f: jmp 401e68 <submitr+0x6bc> + 401e31: lea 0x40(%rsp),%rsi + 401e36: mov %r14,%rdi + 401e39: call 400b00 <strcpy@plt> + 401e3e: mov %r12d,%edi + 401e41: call 400b50 <close@plt> + 401e46: movzbl (%r14),%eax + 401e4a: sub $0x4f,%eax + 401e4d: jne 401e5e <submitr+0x6b2> + 401e4f: movzbl 0x1(%r14),%eax + 401e54: sub $0x4b,%eax + 401e57: jne 401e5e <submitr+0x6b2> + 401e59: movzbl 0x2(%r14),%eax + 401e5e: test %eax,%eax + 401e60: setne %al + 401e63: movzbl %al,%eax + 401e66: neg %eax + 401e68: mov 0xa058(%rsp),%rdx + 401e70: xor %fs:0x28,%rdx + 401e79: je 401f7f <submitr+0x7d3> + 401e7f: jmp 401f7a <submitr+0x7ce> + 401e84: lea 0x2040(%rsp),%rax + 401e8c: mov %rax,0x8(%rsp) + 401e91: mov %r15,(%rsp) + 401e95: mov 0x18(%rsp),%r9 + 401e9a: mov 0x10(%rsp),%r8 + 401e9f: mov $0x4026d0,%ecx + 401ea4: mov $0x2000,%edx + 401ea9: mov $0x1,%esi + 401eae: lea 0x40(%rsp),%rdi + 401eb3: mov $0x0,%eax + 401eb8: call 400c70 <__sprintf_chk@plt> + 401ebd: lea 0x40(%rsp),%rdi + 401ec2: mov $0x0,%eax + 401ec7: mov $0xffffffffffffffff,%rcx + 401ece: repnz scas %es:(%rdi),%al + 401ed0: not %rcx + 401ed3: sub $0x1,%rcx + 401ed7: mov %rcx,%r13 + 401eda: je 401bd8 <submitr+0x42c> + 401ee0: mov %rcx,%rbx + 401ee3: lea 0x40(%rsp),%rbp + 401ee8: jmp 401b4a <submitr+0x39e> + 401eed: movabs $0x52203a726f727245,%rax + 401ef7: mov %rax,(%r14) + 401efa: movabs $0x747320746c757365,%rax + 401f04: mov %rax,0x8(%r14) + 401f08: movabs $0x6e6f6320676e6972,%rax + 401f12: mov %rax,0x10(%r14) + 401f16: movabs $0x6e6120736e696174,%rax + 401f20: mov %rax,0x18(%r14) + 401f24: movabs $0x6c6167656c6c6920,%rax + 401f2e: mov %rax,0x20(%r14) + 401f32: movabs $0x72706e7520726f20,%rax + 401f3c: mov %rax,0x28(%r14) + 401f40: movabs $0x20656c6261746e69,%rax + 401f4a: mov %rax,0x30(%r14) + 401f4e: movabs $0x6574636172616863,%rax + 401f58: mov %rax,0x38(%r14) + 401f5c: movw $0x2e72,0x40(%r14) + 401f63: movb $0x0,0x42(%r14) + 401f68: mov %r12d,%edi + 401f6b: call 400b50 <close@plt> + 401f70: mov $0xffffffff,%eax + 401f75: jmp 401e68 <submitr+0x6bc> + 401f7a: call 400b30 <__stack_chk_fail@plt> + 401f7f: add $0xa068,%rsp + 401f86: pop %rbx + 401f87: pop %rbp + 401f88: pop %r12 + 401f8a: pop %r13 + 401f8c: pop %r14 + 401f8e: pop %r15 + 401f90: ret 0000000000401f91 <init_timeout>: - 401f91: 53 push %rbx - 401f92: 89 fb mov %edi,%ebx - 401f94: 85 ff test %edi,%edi - 401f96: 74 1e je 401fb6 <init_timeout+0x25> - 401f98: be 60 16 40 00 mov $0x401660,%esi - 401f9d: bf 0e 00 00 00 mov $0xe,%edi - 401fa2: e8 e9 eb ff ff call 400b90 <signal@plt> - 401fa7: 85 db test %ebx,%ebx - 401fa9: bf 00 00 00 00 mov $0x0,%edi - 401fae: 0f 49 fb cmovns %ebx,%edi - 401fb1: e8 8a eb ff ff call 400b40 <alarm@plt> - 401fb6: 5b pop %rbx - 401fb7: c3 ret + 401f91: push %rbx + 401f92: mov %edi,%ebx + 401f94: test %edi,%edi + 401f96: je 401fb6 <init_timeout+0x25> + 401f98: mov $0x401660,%esi + 401f9d: mov $0xe,%edi + 401fa2: call 400b90 <signal@plt> + 401fa7: test %ebx,%ebx + 401fa9: mov $0x0,%edi + 401fae: cmovns %ebx,%edi + 401fb1: call 400b40 <alarm@plt> + 401fb6: pop %rbx + 401fb7: ret 0000000000401fb8 <init_driver>: - 401fb8: 55 push %rbp - 401fb9: 53 push %rbx - 401fba: 48 83 ec 28 sub $0x28,%rsp - 401fbe: 48 89 fd mov %rdi,%rbp - 401fc1: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax - 401fc8: 00 00 - 401fca: 48 89 44 24 18 mov %rax,0x18(%rsp) - 401fcf: 31 c0 xor %eax,%eax - 401fd1: be 01 00 00 00 mov $0x1,%esi - 401fd6: bf 0d 00 00 00 mov $0xd,%edi - 401fdb: e8 b0 eb ff ff call 400b90 <signal@plt> - 401fe0: be 01 00 00 00 mov $0x1,%esi - 401fe5: bf 1d 00 00 00 mov $0x1d,%edi - 401fea: e8 a1 eb ff ff call 400b90 <signal@plt> - 401fef: be 01 00 00 00 mov $0x1,%esi - 401ff4: bf 1d 00 00 00 mov $0x1d,%edi - 401ff9: e8 92 eb ff ff call 400b90 <signal@plt> - 401ffe: ba 00 00 00 00 mov $0x0,%edx - 402003: be 01 00 00 00 mov $0x1,%esi - 402008: bf 02 00 00 00 mov $0x2,%edi - 40200d: e8 6e ec ff ff call 400c80 <socket@plt> - 402012: 89 c3 mov %eax,%ebx - 402014: 85 c0 test %eax,%eax - 402016: 79 4f jns 402067 <init_driver+0xaf> - 402018: 48 b8 45 72 72 6f 72 movabs $0x43203a726f727245,%rax - 40201f: 3a 20 43 - 402022: 48 89 45 00 mov %rax,0x0(%rbp) - 402026: 48 b8 6c 69 65 6e 74 movabs $0x6e7520746e65696c,%rax - 40202d: 20 75 6e - 402030: 48 89 45 08 mov %rax,0x8(%rbp) - 402034: 48 b8 61 62 6c 65 20 movabs $0x206f7420656c6261,%rax - 40203b: 74 6f 20 - 40203e: 48 89 45 10 mov %rax,0x10(%rbp) - 402042: 48 b8 63 72 65 61 74 movabs $0x7320657461657263,%rax - 402049: 65 20 73 - 40204c: 48 89 45 18 mov %rax,0x18(%rbp) - 402050: c7 45 20 6f 63 6b 65 movl $0x656b636f,0x20(%rbp) - 402057: 66 c7 45 24 74 00 movw $0x74,0x24(%rbp) - 40205d: b8 ff ff ff ff mov $0xffffffff,%eax - 402062: e9 0a 01 00 00 jmp 402171 <init_driver+0x1b9> - 402067: bf 60 27 40 00 mov $0x402760,%edi - 40206c: e8 2f eb ff ff call 400ba0 <gethostbyname@plt> - 402071: 48 85 c0 test %rax,%rax - 402074: 75 68 jne 4020de <init_driver+0x126> - 402076: 48 b8 45 72 72 6f 72 movabs $0x44203a726f727245,%rax - 40207d: 3a 20 44 - 402080: 48 89 45 00 mov %rax,0x0(%rbp) - 402084: 48 b8 4e 53 20 69 73 movabs $0x6e7520736920534e,%rax - 40208b: 20 75 6e - 40208e: 48 89 45 08 mov %rax,0x8(%rbp) - 402092: 48 b8 61 62 6c 65 20 movabs $0x206f7420656c6261,%rax - 402099: 74 6f 20 - 40209c: 48 89 45 10 mov %rax,0x10(%rbp) - 4020a0: 48 b8 72 65 73 6f 6c movabs $0x2065766c6f736572,%rax - 4020a7: 76 65 20 - 4020aa: 48 89 45 18 mov %rax,0x18(%rbp) - 4020ae: 48 b8 73 65 72 76 65 movabs $0x6120726576726573,%rax - 4020b5: 72 20 61 - 4020b8: 48 89 45 20 mov %rax,0x20(%rbp) - 4020bc: c7 45 28 64 64 72 65 movl $0x65726464,0x28(%rbp) - 4020c3: 66 c7 45 2c 73 73 movw $0x7373,0x2c(%rbp) - 4020c9: c6 45 2e 00 movb $0x0,0x2e(%rbp) - 4020cd: 89 df mov %ebx,%edi - 4020cf: e8 7c ea ff ff call 400b50 <close@plt> - 4020d4: b8 ff ff ff ff mov $0xffffffff,%eax - 4020d9: e9 93 00 00 00 jmp 402171 <init_driver+0x1b9> - 4020de: 48 c7 04 24 00 00 00 movq $0x0,(%rsp) - 4020e5: 00 - 4020e6: 48 c7 44 24 08 00 00 movq $0x0,0x8(%rsp) - 4020ed: 00 00 - 4020ef: 66 c7 04 24 02 00 movw $0x2,(%rsp) - 4020f5: 48 63 50 14 movslq 0x14(%rax),%rdx - 4020f9: 48 8b 40 18 mov 0x18(%rax),%rax - 4020fd: 48 8d 7c 24 04 lea 0x4(%rsp),%rdi - 402102: b9 0c 00 00 00 mov $0xc,%ecx - 402107: 48 8b 30 mov (%rax),%rsi - 40210a: e8 a1 ea ff ff call 400bb0 <__memmove_chk@plt> - 40210f: 66 c7 44 24 02 3b 6e movw $0x6e3b,0x2(%rsp) - 402116: ba 10 00 00 00 mov $0x10,%edx - 40211b: 48 89 e6 mov %rsp,%rsi - 40211e: 89 df mov %ebx,%edi - 402120: e8 0b eb ff ff call 400c30 <connect@plt> - 402125: 85 c0 test %eax,%eax - 402127: 79 32 jns 40215b <init_driver+0x1a3> - 402129: 41 b8 60 27 40 00 mov $0x402760,%r8d - 40212f: b9 20 27 40 00 mov $0x402720,%ecx - 402134: 48 c7 c2 ff ff ff ff mov $0xffffffffffffffff,%rdx - 40213b: be 01 00 00 00 mov $0x1,%esi - 402140: 48 89 ef mov %rbp,%rdi - 402143: b8 00 00 00 00 mov $0x0,%eax - 402148: e8 23 eb ff ff call 400c70 <__sprintf_chk@plt> - 40214d: 89 df mov %ebx,%edi - 40214f: e8 fc e9 ff ff call 400b50 <close@plt> - 402154: b8 ff ff ff ff mov $0xffffffff,%eax - 402159: eb 16 jmp 402171 <init_driver+0x1b9> - 40215b: 89 df mov %ebx,%edi - 40215d: e8 ee e9 ff ff call 400b50 <close@plt> - 402162: 66 c7 45 00 4f 4b movw $0x4b4f,0x0(%rbp) - 402168: c6 45 02 00 movb $0x0,0x2(%rbp) - 40216c: b8 00 00 00 00 mov $0x0,%eax - 402171: 48 8b 4c 24 18 mov 0x18(%rsp),%rcx - 402176: 64 48 33 0c 25 28 00 xor %fs:0x28,%rcx - 40217d: 00 00 - 40217f: 74 05 je 402186 <init_driver+0x1ce> - 402181: e8 aa e9 ff ff call 400b30 <__stack_chk_fail@plt> - 402186: 48 83 c4 28 add $0x28,%rsp - 40218a: 5b pop %rbx - 40218b: 5d pop %rbp - 40218c: c3 ret + 401fb8: push %rbp + 401fb9: push %rbx + 401fba: sub $0x28,%rsp + 401fbe: mov %rdi,%rbp + 401fc1: mov %fs:0x28,%rax + 401fca: mov %rax,0x18(%rsp) + 401fcf: xor %eax,%eax + 401fd1: mov $0x1,%esi + 401fd6: mov $0xd,%edi + 401fdb: call 400b90 <signal@plt> + 401fe0: mov $0x1,%esi + 401fe5: mov $0x1d,%edi + 401fea: call 400b90 <signal@plt> + 401fef: mov $0x1,%esi + 401ff4: mov $0x1d,%edi + 401ff9: call 400b90 <signal@plt> + 401ffe: mov $0x0,%edx + 402003: mov $0x1,%esi + 402008: mov $0x2,%edi + 40200d: call 400c80 <socket@plt> + 402012: mov %eax,%ebx + 402014: test %eax,%eax + 402016: jns 402067 <init_driver+0xaf> + 402018: movabs $0x43203a726f727245,%rax + 402022: mov %rax,0x0(%rbp) + 402026: movabs $0x6e7520746e65696c,%rax + 402030: mov %rax,0x8(%rbp) + 402034: movabs $0x206f7420656c6261,%rax + 40203e: mov %rax,0x10(%rbp) + 402042: movabs $0x7320657461657263,%rax + 40204c: mov %rax,0x18(%rbp) + 402050: movl $0x656b636f,0x20(%rbp) + 402057: movw $0x74,0x24(%rbp) + 40205d: mov $0xffffffff,%eax + 402062: jmp 402171 <init_driver+0x1b9> + 402067: mov $0x402760,%edi + 40206c: call 400ba0 <gethostbyname@plt> + 402071: test %rax,%rax + 402074: jne 4020de <init_driver+0x126> + 402076: movabs $0x44203a726f727245,%rax + 402080: mov %rax,0x0(%rbp) + 402084: movabs $0x6e7520736920534e,%rax + 40208e: mov %rax,0x8(%rbp) + 402092: movabs $0x206f7420656c6261,%rax + 40209c: mov %rax,0x10(%rbp) + 4020a0: movabs $0x2065766c6f736572,%rax + 4020aa: mov %rax,0x18(%rbp) + 4020ae: movabs $0x6120726576726573,%rax + 4020b8: mov %rax,0x20(%rbp) + 4020bc: movl $0x65726464,0x28(%rbp) + 4020c3: movw $0x7373,0x2c(%rbp) + 4020c9: movb $0x0,0x2e(%rbp) + 4020cd: mov %ebx,%edi + 4020cf: call 400b50 <close@plt> + 4020d4: mov $0xffffffff,%eax + 4020d9: jmp 402171 <init_driver+0x1b9> + 4020de: movq $0x0,(%rsp) + 4020e6: movq $0x0,0x8(%rsp) + 4020ef: movw $0x2,(%rsp) + 4020f5: movslq 0x14(%rax),%rdx + 4020f9: mov 0x18(%rax),%rax + 4020fd: lea 0x4(%rsp),%rdi + 402102: mov $0xc,%ecx + 402107: mov (%rax),%rsi + 40210a: call 400bb0 <__memmove_chk@plt> + 40210f: movw $0x6e3b,0x2(%rsp) + 402116: mov $0x10,%edx + 40211b: mov %rsp,%rsi + 40211e: mov %ebx,%edi + 402120: call 400c30 <connect@plt> + 402125: test %eax,%eax + 402127: jns 40215b <init_driver+0x1a3> + 402129: mov $0x402760,%r8d + 40212f: mov $0x402720,%ecx + 402134: mov $0xffffffffffffffff,%rdx + 40213b: mov $0x1,%esi + 402140: mov %rbp,%rdi + 402143: mov $0x0,%eax + 402148: call 400c70 <__sprintf_chk@plt> + 40214d: mov %ebx,%edi + 40214f: call 400b50 <close@plt> + 402154: mov $0xffffffff,%eax + 402159: jmp 402171 <init_driver+0x1b9> + 40215b: mov %ebx,%edi + 40215d: call 400b50 <close@plt> + 402162: movw $0x4b4f,0x0(%rbp) + 402168: movb $0x0,0x2(%rbp) + 40216c: mov $0x0,%eax + 402171: mov 0x18(%rsp),%rcx + 402176: xor %fs:0x28,%rcx + 40217f: je 402186 <init_driver+0x1ce> + 402181: call 400b30 <__stack_chk_fail@plt> + 402186: add $0x28,%rsp + 40218a: pop %rbx + 40218b: pop %rbp + 40218c: ret 000000000040218d <driver_post>: - 40218d: 53 push %rbx - 40218e: 48 83 ec 10 sub $0x10,%rsp - 402192: 48 89 cb mov %rcx,%rbx - 402195: 85 d2 test %edx,%edx - 402197: 74 27 je 4021c0 <driver_post+0x33> - 402199: 48 89 f2 mov %rsi,%rdx - 40219c: be 78 27 40 00 mov $0x402778,%esi - 4021a1: bf 01 00 00 00 mov $0x1,%edi - 4021a6: b8 00 00 00 00 mov $0x0,%eax - 4021ab: e8 50 ea ff ff call 400c00 <__printf_chk@plt> - 4021b0: 66 c7 03 4f 4b movw $0x4b4f,(%rbx) - 4021b5: c6 43 02 00 movb $0x0,0x2(%rbx) - 4021b9: b8 00 00 00 00 mov $0x0,%eax - 4021be: eb 3e jmp 4021fe <driver_post+0x71> - 4021c0: 48 85 ff test %rdi,%rdi - 4021c3: 74 2b je 4021f0 <driver_post+0x63> - 4021c5: 80 3f 00 cmpb $0x0,(%rdi) - 4021c8: 74 26 je 4021f0 <driver_post+0x63> - 4021ca: 48 89 0c 24 mov %rcx,(%rsp) - 4021ce: 49 89 f1 mov %rsi,%r9 - 4021d1: 41 b8 ec 22 40 00 mov $0x4022ec,%r8d - 4021d7: 48 89 f9 mov %rdi,%rcx - 4021da: ba 8f 27 40 00 mov $0x40278f,%edx - 4021df: be 6e 3b 00 00 mov $0x3b6e,%esi - 4021e4: bf 60 27 40 00 mov $0x402760,%edi - 4021e9: e8 be f5 ff ff call 4017ac <submitr> - 4021ee: eb 0e jmp 4021fe <driver_post+0x71> - 4021f0: 66 c7 03 4f 4b movw $0x4b4f,(%rbx) - 4021f5: c6 43 02 00 movb $0x0,0x2(%rbx) - 4021f9: b8 00 00 00 00 mov $0x0,%eax - 4021fe: 48 83 c4 10 add $0x10,%rsp - 402202: 5b pop %rbx - 402203: c3 ret - 402204: 90 nop - 402205: 90 nop - 402206: 90 nop - 402207: 90 nop - 402208: 90 nop - 402209: 90 nop - 40220a: 90 nop - 40220b: 90 nop - 40220c: 90 nop - 40220d: 90 nop - 40220e: 90 nop - 40220f: 90 nop + 40218d: push %rbx + 40218e: sub $0x10,%rsp + 402192: mov %rcx,%rbx + 402195: test %edx,%edx + 402197: je 4021c0 <driver_post+0x33> + 402199: mov %rsi,%rdx + 40219c: mov $0x402778,%esi + 4021a1: mov $0x1,%edi + 4021a6: mov $0x0,%eax + 4021ab: call 400c00 <__printf_chk@plt> + 4021b0: movw $0x4b4f,(%rbx) + 4021b5: movb $0x0,0x2(%rbx) + 4021b9: mov $0x0,%eax + 4021be: jmp 4021fe <driver_post+0x71> + 4021c0: test %rdi,%rdi + 4021c3: je 4021f0 <driver_post+0x63> + 4021c5: cmpb $0x0,(%rdi) + 4021c8: je 4021f0 <driver_post+0x63> + 4021ca: mov %rcx,(%rsp) + 4021ce: mov %rsi,%r9 + 4021d1: mov $0x4022ec,%r8d + 4021d7: mov %rdi,%rcx + 4021da: mov $0x40278f,%edx + 4021df: mov $0x3b6e,%esi + 4021e4: mov $0x402760,%edi + 4021e9: call 4017ac <submitr> + 4021ee: jmp 4021fe <driver_post+0x71> + 4021f0: movw $0x4b4f,(%rbx) + 4021f5: movb $0x0,0x2(%rbx) + 4021f9: mov $0x0,%eax + 4021fe: add $0x10,%rsp + 402202: pop %rbx + 402203: ret + 402204: nop + 402205: nop + 402206: nop + 402207: nop + 402208: nop + 402209: nop + 40220a: nop + 40220b: nop + 40220c: nop + 40220d: nop + 40220e: nop + 40220f: nop 0000000000402210 <__libc_csu_init>: - 402210: 48 89 6c 24 d8 mov %rbp,-0x28(%rsp) - 402215: 4c 89 64 24 e0 mov %r12,-0x20(%rsp) - 40221a: 48 8d 2d df 0b 20 00 lea 0x200bdf(%rip),%rbp # 602e00 <__do_global_dtors_aux_fini_array_entry> - 402221: 4c 8d 25 d0 0b 20 00 lea 0x200bd0(%rip),%r12 # 602df8 <__frame_dummy_init_array_entry> - 402228: 4c 89 6c 24 e8 mov %r13,-0x18(%rsp) - 40222d: 4c 89 74 24 f0 mov %r14,-0x10(%rsp) - 402232: 4c 89 7c 24 f8 mov %r15,-0x8(%rsp) - 402237: 48 89 5c 24 d0 mov %rbx,-0x30(%rsp) - 40223c: 48 83 ec 38 sub $0x38,%rsp - 402240: 4c 29 e5 sub %r12,%rbp - 402243: 41 89 fd mov %edi,%r13d - 402246: 49 89 f6 mov %rsi,%r14 - 402249: 48 c1 fd 03 sar $0x3,%rbp - 40224d: 49 89 d7 mov %rdx,%r15 - 402250: e8 6b e8 ff ff call 400ac0 <_init> - 402255: 48 85 ed test %rbp,%rbp - 402258: 74 1c je 402276 <__libc_csu_init+0x66> - 40225a: 31 db xor %ebx,%ebx - 40225c: 0f 1f 40 00 nopl 0x0(%rax) - 402260: 4c 89 fa mov %r15,%rdx - 402263: 4c 89 f6 mov %r14,%rsi - 402266: 44 89 ef mov %r13d,%edi - 402269: 41 ff 14 dc call *(%r12,%rbx,8) - 40226d: 48 83 c3 01 add $0x1,%rbx - 402271: 48 39 eb cmp %rbp,%rbx - 402274: 75 ea jne 402260 <__libc_csu_init+0x50> - 402276: 48 8b 5c 24 08 mov 0x8(%rsp),%rbx - 40227b: 48 8b 6c 24 10 mov 0x10(%rsp),%rbp - 402280: 4c 8b 64 24 18 mov 0x18(%rsp),%r12 - 402285: 4c 8b 6c 24 20 mov 0x20(%rsp),%r13 - 40228a: 4c 8b 74 24 28 mov 0x28(%rsp),%r14 - 40228f: 4c 8b 7c 24 30 mov 0x30(%rsp),%r15 - 402294: 48 83 c4 38 add $0x38,%rsp - 402298: c3 ret - 402299: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 402210: mov %rbp,-0x28(%rsp) + 402215: mov %r12,-0x20(%rsp) + 40221a: lea 0x200bdf(%rip),%rbp # 602e00 <__do_global_dtors_aux_fini_array_entry> + 402221: lea 0x200bd0(%rip),%r12 # 602df8 <__frame_dummy_init_array_entry> + 402228: mov %r13,-0x18(%rsp) + 40222d: mov %r14,-0x10(%rsp) + 402232: mov %r15,-0x8(%rsp) + 402237: mov %rbx,-0x30(%rsp) + 40223c: sub $0x38,%rsp + 402240: sub %r12,%rbp + 402243: mov %edi,%r13d + 402246: mov %rsi,%r14 + 402249: sar $0x3,%rbp + 40224d: mov %rdx,%r15 + 402250: call 400ac0 <_init> + 402255: test %rbp,%rbp + 402258: je 402276 <__libc_csu_init+0x66> + 40225a: xor %ebx,%ebx + 40225c: nopl 0x0(%rax) + 402260: mov %r15,%rdx + 402263: mov %r14,%rsi + 402266: mov %r13d,%edi + 402269: call *(%r12,%rbx,8) + 40226d: add $0x1,%rbx + 402271: cmp %rbp,%rbx + 402274: jne 402260 <__libc_csu_init+0x50> + 402276: mov 0x8(%rsp),%rbx + 40227b: mov 0x10(%rsp),%rbp + 402280: mov 0x18(%rsp),%r12 + 402285: mov 0x20(%rsp),%r13 + 40228a: mov 0x28(%rsp),%r14 + 40228f: mov 0x30(%rsp),%r15 + 402294: add $0x38,%rsp + 402298: ret + 402299: nopl 0x0(%rax) 00000000004022a0 <__libc_csu_fini>: - 4022a0: f3 c3 repz ret - 4022a2: 90 nop - 4022a3: 90 nop + 4022a0: repz ret + 4022a2: nop + 4022a3: nop Disassembly of section .fini: 00000000004022a4 <_fini>: - 4022a4: 48 83 ec 08 sub $0x8,%rsp - 4022a8: 48 83 c4 08 add $0x8,%rsp - 4022ac: c3 ret + 4022a4: sub $0x8,%rsp + 4022a8: add $0x8,%rsp + 4022ac: ret diff --git a/bomblab/phase6.asm b/bomblab/phase6.asm new file mode 100644 index 0000000..2e4d00d --- /dev/null +++ b/bomblab/phase6.asm @@ -0,0 +1,199 @@ +# OBJDUMP + +# phase_6(char *input) +# %r12d = %index +# %rbx = %j + + 4010f4: push %r14 + 4010f6: push %r13 + 4010f8: push %r12 + 4010fa: push %rbp + 4010fb: push %rbx + 4010fc: sub $0x50,%rsp + 401100: mov %rsp,%r13 # r13 = rsp + 401103: mov %rsp,%rsi + 401106: call 40145c <read_six_numbers> + + # {step 1} + # FOR initialization + 40110b: mov %rsp,%r14 + 40110e: mov $0x0,%index # index = 0 + + # FOR loop + # inside this loop, always (rbp == r13), step +4, from stack top to last + # rbp = r13 = [rsp, rsp+4n] + # rsp is constant + 401114: mov %r13,%rbp + 401117: mov 0x0(%r13),%eax # rax = *rsp + + # if (1 <= rax <= 6) safe (for each element) + 40111b: sub $0x1,%eax + 40111e: cmp $0x5,%eax + 401121: jbe 401128 <phase_6+0x34> + 401123: call 40143a <explode_bomb> + + + 401128: add $0x1,%index # index++, index=[1, 5], rbp = 4*[0, 5] + 40112c: cmp $0x6,%index + 401130: je 401153 <phase_6+0x5f> # if (index == 6) break + + + # smaller loop j=[index, 5] + 401132: mov %index,%j + + 401135: movslq %j,%rax # rax = j + 401138: mov (%rsp,%rax,4),%eax # rax = *(rsp + 4*j) --- array[j] + 40113b: cmp %eax,0x0(%rbp) + 40113e: jne 401145 <phase_6+0x51> # if (rax == a[j]) die + 401140: call 40143a <explode_bomb> + + # if (j>=5) break + 401145: add $0x1,%j # else j++ + 401148: cmp $0x5,%j + 40114b: jle 401135 <phase_6+0x41> + # end smaller loop + + + 40114d: add $0x4,%r13 # r13 += 4, rbp +=4 + # move to next int element + 401151: jmp 401114 <phase_6+0x20> + + + + # {step 2} + # FOR loop + # rsp is constant + # old: x + # new: 7-x + 401153: lea 0x18(%rsp),%rsi # rsi = rsp + 24 (end of 6 elements) + 401158: mov %r14,%rax # rax = rsp + 40115b: mov $0x7,%ecx # rcx = 7 + + 401160: mov %ecx,%edx # rdx = 7 + 401162: sub (%rax),%edx # rdx -= *rax + 401164: mov %edx,(%rax) # *rax = rdx + 401166: add $0x4,%rax # rax += 4 move to next element + 40116a: cmp %rsi,%rax + 40116d: jne 401160 <phase_6+0x6c> # if (rax == rsi) break + + + + # {step 3} + # DO WHILE loop + # %rsi = %bias + # actual [0, 20], 6 elements + + # %rcx = %coded + 40116f: mov $0x0,%bias + 401174: jmp 401197 <phase_6+0xa3> + + # --- WHILE --- + # only exit : 401195: je 4011ab <phase_6+0xb7> + + # smaller loop + # initialization: j = 1 + # %rax = %j + 401176: mov 0x8(%rdx),%rdx # rdx: get the pointer of next node, always pointer + 40117a: add $0x1,%j # j++ + 40117d: cmp %coded,%j + 40117f: jne 401176 <phase_6+0x82> # if (j == coded) break + # end smaller loop + # rdx = &(coded-th node) + + 401181: jmp 401188 <phase_6+0x94> + + + # smaller loop (only exit) + # tip: coded inputs are stored in [rsp, rsp+20] + # while (coded != 1) + + 401183: mov $0x6032d0,%edx + + 401188: mov %rdx,0x20(%rsp,%bias,2) # *(rsp + 2*bias + 32) = &(coded-th node) + # 从rsp+32开始,间隔8 bytes存入第coded个的指针 + 40118d: add $0x4,%bias # move to next element + 401191: cmp $0x18,%bias + + 401195: je 4011ab <phase_6+0xb7> # if (bias == 24) 全部都存完了 + # break large loop + + + # move to next coded input + 401197: mov (%rsp,%bias,1),%coded # coded = *(rsp + bias) first to last element + 40119a: cmp $0x1,%coded + 40119d: jle 401183 <phase_6+0x8f> # if (coded > 1) break + # end smaller loop + + + 40119f: mov $0x1,%eax # rax = 1 + 4011a4: mov $0x6032d0,%edx # rdx = 0x6032d0 + 4011a9: jmp 401176 <phase_6+0x82> + # --- end WHILE --- + + + + + + # {step 4} + + # 0x20 = decimal 32 + # 0x50 = decimal 80 + # %rsi = %rightBoundPP (constant) + # %rbx = %firstP + # %rax = %secondPP + + # P = pointer + # PP = pointer to pointer + + 4011ab: mov 0x20(%rsp),%firstP # firstP = pointer to actual node + 4011b0: lea 0x28(%rsp),%secondPP # secondPP = pointer to pointer of second node + 4011b5: lea 0x50(%rsp),%rightBoundPP + 4011ba: mov %firstNum,%rcx # rcx = firstP + + # loop + # update `next` field + 4011bd: mov (%secondPP),%rdx + 4011c0: mov %rdx,0x8(%rcx) # *(rcx+8) = secondP + # next node's address (next) part + 4011c4: add $0x8,%secondPP # move to next "second" + + 4011c8: cmp %rightBound,%secondPP + 4011cb: je 4011d2 <phase_6+0xde> # if (secondPP > boundPP) break + # else: + 4011cd: mov %rdx,%rcx # rcx = pointer to second node (secondP) + # (rcx +=8) + 4011d0: jmp 4011bd <phase_6+0xc9> + + 4011d2: movq $0x0,0x8(%rdx) # for the last node + # it doesn't point to any further nodes + + + # {step 5} + + 4011da: mov $0x5,%ebp # rbp = 5 + + # loop + # %rbx = firstP (initially) + 4011df: mov 0x8(%rbx),%rax # rax = rbx.next + 4011e3: mov (%rax),%eax # rax = *(rax.next) (rax now stores the next's number field) + # (ie. rax = rax -> num) + 4011e5: cmp %eax,(%rbx) + 4011e7: jge 4011ee <phase_6+0xfa> # if (rbx->num >= rax) safe + + 4011e9: call 40143a <explode_bomb> + 4011ee: mov 0x8(%rbx),%rbx + 4011f2: sub $0x1,%ebp + 4011f5: jne 4011df <phase_6+0xeb> + + + + + + + 4011f7: add $0x50,%rsp + 4011fb: pop %rbx + 4011fc: pop %rbp + 4011fd: pop %r12 + 4011ff: pop %r13 + 401201: pop %r14 + 401203: ret diff --git a/bomblab/solution.md b/bomblab/solution.md index 7934ba9..7458165 100644 --- a/bomblab/solution.md +++ b/bomblab/solution.md @@ -10,6 +10,21 @@ remember to set a breakpoint for ALL `<explode_bomb>`, so that your GPA won't be English version will be available soon +👍😍❤️ _ov4 + +``` +➜ bomblab git:(main) ✗ ./bomb ans.txt +Welcome to my fiendish little bomb. You have 6 phases with +which to blow yourself up. Have a nice day! +Phase 1 defused. How about the next one? +That's number 2. Keep going! +Halfway there! +So you got that one. Try this one. +Good work! On to the next... +Congratulations! You've defused the bomb! +➜ bomblab git:(main) ✗ +``` + # commands @@ -209,14 +224,43 @@ func4运行完之后还会检测第二个数字,别被坑了(第二个很简 ``` -## Solution +# Phase 6 + +汇编太长了,自己去`phase6.asm`看,有完整的注释 + +1. 输入`6`个数组,检测是否在`[1, 6]`,并且没有重复 + +2. 假设原来的输入是`x`,将它转换成`7-x`,存储在`[rsp, rsp+20]` (`rsp+23`是最后一个占用的字节) + +3. 按coded input的顺序,将地址提取到`rsp+32`开始的连续内存;如果coded input是`4 5 1 2 3`,那么rsp+32开始的指针对应的就是`node 4, 5, 2, 1, 3`的地址 + +4. 更新`node.next`,指向重新连接之后的下一个`node`,使得`next`的顺序与`[rsp+32, rsp+72]`存储的顺序相符(ie. 不要了`rsp+32`之后的内容,也知道重新连接之后的链表的顺序) -Border relations with Canada have never been better. +5. 检测顺序(要求是降序);很明显 ,`node 3, 4, 5, 6, 1, 2`排序时刚好降序,答案自然就出来了 -1 2 4 8 16 32 -7 327 -7 0 +```c +// 16 bytes each +struct idk { + int num; // 4 bytes + int index; // 4 bytes + idk *next; // 8 bytes +} node[6]; +``` + +``` +gef➤ x/24dwx 0x6032d0 +0x6032d0 <node1>: 0x0000014c 0x00000001 0x006032e0 0x00000000 +0x6032e0 <node2>: 0x000000a8 0x00000002 0x006032f0 0x00000000 +0x6032f0 <node3>: 0x0000039c 0x00000003 0x00603300 0x00000000 +0x603300 <node4>: 0x000002b3 0x00000004 0x00603310 0x00000000 +0x603310 <node5>: 0x000001dd 0x00000005 0x00603320 0x00000000 +0x603320 <node6>: 0x000001bb 0x00000006 0x00000000 0x00000000 +``` + + + +## Solution -ionefg
\ No newline at end of file +See `ans.txt` diff --git a/bomblab/static.txt b/bomblab/static.txt new file mode 100644 index 0000000..1010b4a --- /dev/null +++ b/bomblab/static.txt @@ -0,0 +1,82 @@ +bomb: file format elf64-x86-64 + +Contents of section .rodata: + 4022b0 01000200 72002573 3a204572 726f723a ....r.%s: Error: + 4022c0 20436f75 6c646e27 74206f70 656e2025 Couldn't open % + 4022d0 730a0055 73616765 3a202573 205b3c69 s..Usage: %s [<i + 4022e0 6e707574 5f66696c 653e5d0a 00546861 nput_file>]..Tha + 4022f0 74277320 6e756d62 65722032 2e20204b t's number 2. K + 402300 65657020 676f696e 67210048 616c6677 eep going!.Halfw + 402310 61792074 68657265 2100476f 6f642077 ay there!.Good w + 402320 6f726b21 20204f6e 20746f20 74686520 ork! On to the + 402330 6e657874 2e2e2e00 57656c63 6f6d6520 next....Welcome + 402340 746f206d 79206669 656e6469 7368206c to my fiendish l + 402350 6974746c 6520626f 6d622e20 596f7520 ittle bomb. You + 402360 68617665 20362070 68617365 73207769 have 6 phases wi + 402370 74680000 00000000 77686963 6820746f th......which to + 402380 20626c6f 7720796f 75727365 6c662075 blow yourself u + 402390 702e2048 61766520 61206e69 63652064 p. Have a nice d + 4023a0 61792100 00000000 50686173 65203120 ay!.....Phase 1 + 4023b0 64656675 7365642e 20486f77 2061626f defused. How abo + 4023c0 75742074 6865206e 65787420 6f6e653f ut the next one? + 4023d0 00000000 00000000 536f2079 6f752067 ........So you g + 4023e0 6f742074 68617420 6f6e652e 20205472 ot that one. Tr + 4023f0 79207468 6973206f 6e652e00 00000000 y this one...... + 402400 426f7264 65722072 656c6174 696f6e73 Border relations + 402410 20776974 68204361 6e616461 20686176 with Canada hav + 402420 65206e65 76657220 6265656e 20626574 e never been bet + 402430 7465722e 00000000 576f7721 20596f75 ter.....Wow! You + 402440 27766520 64656675 73656420 74686520 've defused the + 402450 73656372 65742073 74616765 2100666c secret stage!.fl + 402460 79657273 00000000 00000000 00000000 yers............ + 402470 7c0f4000 00000000 b90f4000 00000000 |.@.......@..... + 402480 830f4000 00000000 8a0f4000 00000000 ..@.......@..... + 402490 910f4000 00000000 980f4000 00000000 ..@.......@..... + 4024a0 9f0f4000 00000000 a60f4000 00000000 ..@.......@..... + 4024b0 6d616475 69657273 6e666f74 7662796c maduiersnfotvbyl + 4024c0 536f2079 6f752074 68696e6b 20796f75 So you think you + 4024d0 2063616e 2073746f 70207468 6520626f can stop the bo + 4024e0 6d622077 69746820 6374726c 2d632c20 mb with ctrl-c, + 4024f0 646f2079 6f753f00 43757273 65732c20 do you?.Curses, + 402500 796f7527 76652066 6f756e64 20746865 you've found the + 402510 20736563 72657420 70686173 65210000 secret phase!.. + 402520 42757420 66696e64 696e6720 69742061 But finding it a + 402530 6e642073 6f6c7669 6e672069 74206172 nd solving it ar + 402540 65207175 69746520 64696666 6572656e e quite differen + 402550 742e2e2e 00000000 436f6e67 72617475 t.......Congratu + 402560 6c617469 6f6e7321 20596f75 27766520 lations! You've + 402570 64656675 73656420 74686520 626f6d62 defused the bomb + 402580 21005765 6c6c2e2e 2e004f4b 2e203a2d !.Well....OK. :- + 402590 2900496e 76616c69 64207068 61736525 ).Invalid phase% + 4025a0 730a000a 424f4f4d 21212100 54686520 s...BOOM!!!.The + 4025b0 626f6d62 20686173 20626c6f 776e2075 bomb has blown u + 4025c0 702e0025 64202564 20256420 25642025 p..%d %d %d %d % + 4025d0 64202564 00457272 6f723a20 5072656d d %d.Error: Prem + 4025e0 61747572 6520454f 46206f6e 20737464 ature EOF on std + 4025f0 696e0047 52414445 5f424f4d 42004572 in.GRADE_BOMB.Er + 402600 726f723a 20496e70 7574206c 696e6520 ror: Input line + 402610 746f6f20 6c6f6e67 00256420 25642025 too long.%d %d % + 402620 73004472 4576696c 00677265 61747768 s.DrEvil.greatwh + 402630 6974652e 6963732e 63732e63 6d752e65 ite.ics.cs.cmu.e + 402640 64750061 6e67656c 73686172 6b2e6963 du.angelshark.ic + 402650 732e6373 2e636d75 2e656475 006d616b s.cs.cmu.edu.mak + 402660 6f736861 726b2e69 63732e63 732e636d oshark.ics.cs.cm + 402670 752e6564 75000000 50726f67 72616d20 u.edu...Program + 402680 74696d65 64206f75 74206166 74657220 timed out after + 402690 25642073 65636f6e 64730a00 00000000 %d seconds...... + 4026a0 4572726f 723a2048 54545020 72657175 Error: HTTP requ + 4026b0 65737420 6661696c 65642077 69746820 est failed with + 4026c0 6572726f 72202564 3a202573 00000000 error %d: %s.... + 4026d0 47455420 2f25732f 7375626d 6974722e GET /%s/submitr. + 4026e0 706c2f3f 75736572 69643d25 73266c61 pl/?userid=%s&la + 4026f0 623d2573 26726573 756c743d 25732673 b=%s&result=%s&s + 402700 75626d69 743d7375 626d6974 20485454 ubmit=submit HTT + 402710 502f312e 300d0a0d 0a000000 00000000 P/1.0........... + 402720 4572726f 723a2055 6e61626c 6520746f Error: Unable to + 402730 20636f6e 6e656374 20746f20 73657276 connect to serv + 402740 65722025 73000000 25252530 32580025 er %s...%%%02X.% + 402750 73202564 20255b61 2d7a412d 7a205d00 s %d %[a-zA-z ]. + 402760 6368616e 67656d65 2e696373 2e63732e changeme.ics.cs. + 402770 636d752e 65647500 0a415554 4f524553 cmu.edu..AUTORES + 402780 554c545f 53545249 4e473d25 730a0063 ULT_STRING=%s..c + 402790 73617070 00 sapp.
\ No newline at end of file |
