Disassembly of direct and indirect function() call

Created Diff never expires
18 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
182 lines
20 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
184 lines


subroutine_direct: file format elf64-x86-64
subroutine_indirect: file format elf64-x86-64




Disassembly of section .init:
Disassembly of section .init:


0000000000000528 <_init>:
0000000000000528 <_init>:
528: 48 83 ec 08 sub rsp,0x8
528: 48 83 ec 08 sub rsp,0x8
52c: 48 8b 05 b5 0a 20 00 mov rax,QWORD PTR [rip+0x200ab5] # 200fe8 <__gmon_start__>
52c: 48 8b 05 b5 0a 20 00 mov rax,QWORD PTR [rip+0x200ab5] # 200fe8 <__gmon_start__>
533: 48 85 c0 test rax,rax
533: 48 85 c0 test rax,rax
536: 74 02 je 53a <_init+0x12>
536: 74 02 je 53a <_init+0x12>
538: ff d0 call rax
538: ff d0 call rax
53a: 48 83 c4 08 add rsp,0x8
53a: 48 83 c4 08 add rsp,0x8
53e: c3 ret
53e: c3 ret


Disassembly of section .plt:
Disassembly of section .plt:


0000000000000540 <.plt>:
0000000000000540 <.plt>:
540: ff 35 72 0a 20 00 push QWORD PTR [rip+0x200a72] # 200fb8 <_GLOBAL_OFFSET_TABLE_+0x8>
540: ff 35 72 0a 20 00 push QWORD PTR [rip+0x200a72] # 200fb8 <_GLOBAL_OFFSET_TABLE_+0x8>
546: ff 25 74 0a 20 00 jmp QWORD PTR [rip+0x200a74] # 200fc0 <_GLOBAL_OFFSET_TABLE_+0x10>
546: ff 25 74 0a 20 00 jmp QWORD PTR [rip+0x200a74] # 200fc0 <_GLOBAL_OFFSET_TABLE_+0x10>
54c: 0f 1f 40 00 nop DWORD PTR [rax+0x0]
54c: 0f 1f 40 00 nop DWORD PTR [rax+0x0]


0000000000000550 <puts@plt>:
0000000000000550 <puts@plt>:
550: ff 25 72 0a 20 00 jmp QWORD PTR [rip+0x200a72] # 200fc8 <puts@GLIBC_2.2.5>
550: ff 25 72 0a 20 00 jmp QWORD PTR [rip+0x200a72] # 200fc8 <puts@GLIBC_2.2.5>
556: 68 00 00 00 00 push 0x0
556: 68 00 00 00 00 push 0x0
55b: e9 e0 ff ff ff jmp 540 <.plt>
55b: e9 e0 ff ff ff jmp 540 <.plt>


0000000000000560 <printf@plt>:
0000000000000560 <printf@plt>:
560: ff 25 6a 0a 20 00 jmp QWORD PTR [rip+0x200a6a] # 200fd0 <printf@GLIBC_2.2.5>
560: ff 25 6a 0a 20 00 jmp QWORD PTR [rip+0x200a6a] # 200fd0 <printf@GLIBC_2.2.5>
566: 68 01 00 00 00 push 0x1
566: 68 01 00 00 00 push 0x1
56b: e9 d0 ff ff ff jmp 540 <.plt>
56b: e9 d0 ff ff ff jmp 540 <.plt>


Disassembly of section .plt.got:
Disassembly of section .plt.got:


0000000000000570 <__cxa_finalize@plt>:
0000000000000570 <__cxa_finalize@plt>:
570: ff 25 82 0a 20 00 jmp QWORD PTR [rip+0x200a82] # 200ff8 <__cxa_finalize@GLIBC_2.2.5>
570: ff 25 82 0a 20 00 jmp QWORD PTR [rip+0x200a82] # 200ff8 <__cxa_finalize@GLIBC_2.2.5>
576: 66 90 xchg ax,ax
576: 66 90 xchg ax,ax


Disassembly of section .text:
Disassembly of section .text:


0000000000000580 <_start>:
0000000000000580 <_start>:
580: 31 ed xor ebp,ebp
580: 31 ed xor ebp,ebp
582: 49 89 d1 mov r9,rdx
582: 49 89 d1 mov r9,rdx
585: 5e pop rsi
585: 5e pop rsi
586: 48 89 e2 mov rdx,rsp
586: 48 89 e2 mov rdx,rsp
589: 48 83 e4 f0 and rsp,0xfffffffffffffff0
589: 48 83 e4 f0 and rsp,0xfffffffffffffff0
58d: 50 push rax
58d: 50 push rax
58e: 54 push rsp
58e: 54 push rsp
58f: 4c 8d 05 9a 01 00 00 lea r8,[rip+0x19a] # 730 <__libc_csu_fini>
58f: 4c 8d 05 9a 01 00 00 lea r8,[rip+0x19a] # 730 <__libc_csu_fini>
596: 48 8d 0d 23 01 00 00 lea rcx,[rip+0x123] # 6c0 <__libc_csu_init>
596: 48 8d 0d 23 01 00 00 lea rcx,[rip+0x123] # 6c0 <__libc_csu_init>
59d: 48 8d 3d d8 00 00 00 lea rdi,[rip+0xd8] # 67c <main>
59d: 48 8d 3d d8 00 00 00 lea rdi,[rip+0xd8] # 67c <main>
5a4: ff 15 36 0a 20 00 call QWORD PTR [rip+0x200a36] # 200fe0 <__libc_start_main@GLIBC_2.2.5>
5a4: ff 15 36 0a 20 00 call QWORD PTR [rip+0x200a36] # 200fe0 <__libc_start_main@GLIBC_2.2.5>
5aa: f4 hlt
5aa: f4 hlt
5ab: 0f 1f 44 00 00 nop DWORD PTR [rax+rax*1+0x0]
5ab: 0f 1f 44 00 00 nop DWORD PTR [rax+rax*1+0x0]


00000000000005b0 <deregister_tm_clones>:
00000000000005b0 <deregister_tm_clones>:
5b0: 48 8d 3d 59 0a 20 00 lea rdi,[rip+0x200a59] # 201010 <__TMC_END__>
5b0: 48 8d 3d 59 0a 20 00 lea rdi,[rip+0x200a59] # 201010 <__TMC_END__>
5b7: 48 8d 05 52 0a 20 00 lea rax,[rip+0x200a52] # 201010 <__TMC_END__>
5b7: 48 8d 05 52 0a 20 00 lea rax,[rip+0x200a52] # 201010 <__TMC_END__>
5be: 48 39 f8 cmp rax,rdi
5be: 48 39 f8 cmp rax,rdi
5c1: 74 15 je 5d8 <deregister_tm_clones+0x28>
5c1: 74 15 je 5d8 <deregister_tm_clones+0x28>
5c3: 48 8b 05 0e 0a 20 00 mov rax,QWORD PTR [rip+0x200a0e] # 200fd8 <_ITM_deregisterTMCloneTable>
5c3: 48 8b 05 0e 0a 20 00 mov rax,QWORD PTR [rip+0x200a0e] # 200fd8 <_ITM_deregisterTMCloneTable>
5ca: 48 85 c0 test rax,rax
5ca: 48 85 c0 test rax,rax
5cd: 74 09 je 5d8 <deregister_tm_clones+0x28>
5cd: 74 09 je 5d8 <deregister_tm_clones+0x28>
5cf: ff e0 jmp rax
5cf: ff e0 jmp rax
5d1: 0f 1f 80 00 00 00 00 nop DWORD PTR [rax+0x0]
5d1: 0f 1f 80 00 00 00 00 nop DWORD PTR [rax+0x0]
5d8: c3 ret
5d8: c3 ret
5d9: 0f 1f 80 00 00 00 00 nop DWORD PTR [rax+0x0]
5d9: 0f 1f 80 00 00 00 00 nop DWORD PTR [rax+0x0]


00000000000005e0 <register_tm_clones>:
00000000000005e0 <register_tm_clones>:
5e0: 48 8d 3d 29 0a 20 00 lea rdi,[rip+0x200a29] # 201010 <__TMC_END__>
5e0: 48 8d 3d 29 0a 20 00 lea rdi,[rip+0x200a29] # 201010 <__TMC_END__>
5e7: 48 8d 35 22 0a 20 00 lea rsi,[rip+0x200a22] # 201010 <__TMC_END__>
5e7: 48 8d 35 22 0a 20 00 lea rsi,[rip+0x200a22] # 201010 <__TMC_END__>
5ee: 48 29 fe sub rsi,rdi
5ee: 48 29 fe sub rsi,rdi
5f1: 48 89 f0 mov rax,rsi
5f1: 48 89 f0 mov rax,rsi
5f4: 48 c1 ee 3f shr rsi,0x3f
5f4: 48 c1 ee 3f shr rsi,0x3f
5f8: 48 c1 f8 03 sar rax,0x3
5f8: 48 c1 f8 03 sar rax,0x3
5fc: 48 01 c6 add rsi,rax
5fc: 48 01 c6 add rsi,rax
5ff: 48 d1 fe sar rsi,1
5ff: 48 d1 fe sar rsi,1
602: 74 14 je 618 <register_tm_clones+0x38>
602: 74 14 je 618 <register_tm_clones+0x38>
604: 48 8b 05 e5 09 20 00 mov rax,QWORD PTR [rip+0x2009e5] # 200ff0 <_ITM_registerTMCloneTable>
604: 48 8b 05 e5 09 20 00 mov rax,QWORD PTR [rip+0x2009e5] # 200ff0 <_ITM_registerTMCloneTable>
60b: 48 85 c0 test rax,rax
60b: 48 85 c0 test rax,rax
60e: 74 08 je 618 <register_tm_clones+0x38>
60e: 74 08 je 618 <register_tm_clones+0x38>
610: ff e0 jmp rax
610: ff e0 jmp rax
612: 66 0f 1f 44 00 00 nop WORD PTR [rax+rax*1+0x0]
612: 66 0f 1f 44 00 00 nop WORD PTR [rax+rax*1+0x0]
618: c3 ret
618: c3 ret
619: 0f 1f 80 00 00 00 00 nop DWORD PTR [rax+0x0]
619: 0f 1f 80 00 00 00 00 nop DWORD PTR [rax+0x0]


0000000000000620 <__do_global_dtors_aux>:
0000000000000620 <__do_global_dtors_aux>:
620: 80 3d e9 09 20 00 00 cmp BYTE PTR [rip+0x2009e9],0x0 # 201010 <__TMC_END__>
620: 80 3d e9 09 20 00 00 cmp BYTE PTR [rip+0x2009e9],0x0 # 201010 <__TMC_END__>
627: 75 2f jne 658 <__do_global_dtors_aux+0x38>
627: 75 2f jne 658 <__do_global_dtors_aux+0x38>
629: 55 push rbp
629: 55 push rbp
62a: 48 83 3d c6 09 20 00 00 cmp QWORD PTR [rip+0x2009c6],0x0 # 200ff8 <__cxa_finalize@GLIBC_2.2.5>
62a: 48 83 3d c6 09 20 00 00 cmp QWORD PTR [rip+0x2009c6],0x0 # 200ff8 <__cxa_finalize@GLIBC_2.2.5>
632: 48 89 e5 mov rbp,rsp
632: 48 89 e5 mov rbp,rsp
635: 74 0c je 643 <__do_global_dtors_aux+0x23>
635: 74 0c je 643 <__do_global_dtors_aux+0x23>
637: 48 8b 3d ca 09 20 00 mov rdi,QWORD PTR [rip+0x2009ca] # 201008 <__dso_handle>
637: 48 8b 3d ca 09 20 00 mov rdi,QWORD PTR [rip+0x2009ca] # 201008 <__dso_handle>
63e: e8 2d ff ff ff call 570 <__cxa_finalize@plt>
63e: e8 2d ff ff ff call 570 <__cxa_finalize@plt>
643: e8 68 ff ff ff call 5b0 <deregister_tm_clones>
643: e8 68 ff ff ff call 5b0 <deregister_tm_clones>
648: c6 05 c1 09 20 00 01 mov BYTE PTR [rip+0x2009c1],0x1 # 201010 <__TMC_END__>
648: c6 05 c1 09 20 00 01 mov BYTE PTR [rip+0x2009c1],0x1 # 201010 <__TMC_END__>
64f: 5d pop rbp
64f: 5d pop rbp
650: c3 ret
650: c3 ret
651: 0f 1f 80 00 00 00 00 nop DWORD PTR [rax+0x0]
651: 0f 1f 80 00 00 00 00 nop DWORD PTR [rax+0x0]
658: c3 ret
658: c3 ret
659: 0f 1f 80 00 00 00 00 nop DWORD PTR [rax+0x0]
659: 0f 1f 80 00 00 00 00 nop DWORD PTR [rax+0x0]


0000000000000660 <frame_dummy>:
0000000000000660 <frame_dummy>:
660: e9 7b ff ff ff jmp 5e0 <register_tm_clones>
660: e9 7b ff ff ff jmp 5e0 <register_tm_clones>


0000000000000665 <subroutine>:
0000000000000665 <subroutine>:
665: 55 push rbp
665: 55 push rbp
666: 48 89 e5 mov rbp,rsp
666: 48 89 e5 mov rbp,rsp
669: 48 8d 3d d4 00 00 00 lea rdi,[rip+0xd4] # 744 <_IO_stdin_used+0x4>
669: 48 8d 3d d4 00 00 00 lea rdi,[rip+0xd4] # 744 <_IO_stdin_used+0x4>
670: e8 db fe ff ff call 550 <puts@plt>
670: e8 db fe ff ff call 550 <puts@plt>
675: b8 00 00 00 00 mov eax,0x0
675: b8 00 00 00 00 mov eax,0x0
67a: 5d pop rbp
67a: 5d pop rbp
67b: c3 ret
67b: c3 ret


000000000000067c <main>:
000000000000067c <main>:
67c: 55 push rbp
67c: 55 push rbp
67d: 48 89 e5 mov rbp,rsp
67d: 48 89 e5 mov rbp,rsp
680: 48 83 ec 10 sub rsp,0x10
680: 48 83 ec 20 sub rsp,0x20
684: 89 7d fc mov DWORD PTR [rbp-0x4],edi
684: 89 7d ec mov DWORD PTR [rbp-0x14],edi
687: 48 89 75 f0 mov QWORD PTR [rbp-0x10],rsi
687: 48 89 75 e0 mov QWORD PTR [rbp-0x20],rsi
68b: 48 8b 45 f0 mov rax,QWORD PTR [rbp-0x10]
68b: 48 8b 45 e0 mov rax,QWORD PTR [rbp-0x20]
68f: 48 8b 00 mov rax,QWORD PTR [rax]
68f: 48 8b 00 mov rax,QWORD PTR [rax]
692: 48 89 c6 mov rsi,rax
692: 48 89 c6 mov rsi,rax
695: 48 8d 3d be 00 00 00 lea rdi,[rip+0xbe] # 75a <_IO_stdin_used+0x1a>
695: 48 8d 3d be 00 00 00 lea rdi,[rip+0xbe] # 75a <_IO_stdin_used+0x1a>
69c: b8 00 00 00 00 mov eax,0x0
69c: b8 00 00 00 00 mov eax,0x0
6a1: e8 ba fe ff ff call 560 <printf@plt>
6a1: e8 ba fe ff ff call 560 <printf@plt>
6a6: b8 00 00 00 00 mov eax,0x0
6a6: 48 8d 05 b8 ff ff ff lea rax,[rip+0xffffffffffffffb8] # 665 <subroutine>
6ab: e8 b5 ff ff ff call 665 <subroutine>
6ad: 48 89 45 f8 mov QWORD PTR [rbp-0x8],rax
6b0: b8 00 00 00 00 mov eax,0x0
6b1: 48 8b 45 f8 mov rax,QWORD PTR [rbp-0x8]
6b5: c9 leave
6b5: ff d0 call rax
6b6: c3 ret
6b7: b8 00 00 00 00 mov eax,0x0
6b7: 66 0f 1f 84 00 00 00 00 00 nop WORD PTR [rax+rax*1+0x0]
6bc: c9 leave
6bd: c3 ret
6be: 66 90 xchg ax,ax


00000000000006c0 <__libc_csu_init>:
00000000000006c0 <__libc_csu_init>:
6c0: 41 57 push r15
6c0: 41 57 push r15
6c2: 41 56 push r14
6c2: 41 56 push r14
6c4: 49 89 d7 mov r15,rdx
6c4: 49 89 d7 mov r15,rdx
6c7: 41 55 push r13
6c7: 41 55 push r13
6c9: 41 54 push r12
6c9: 41 54 push r12
6cb: 4c 8d 25 de 06 20 00 lea r12,[rip+0x2006de] # 200db0 <__frame_dummy_init_array_entry>
6cb: 4c 8d 25 de 06 20 00 lea r12,[rip+0x2006de] # 200db0 <__frame_dummy_init_array_entry>
6d2: 55 push rbp
6d2: 55 push rbp
6d3: 48 8d 2d de 06 20 00 lea rbp,[rip+0x2006de] # 200db8 <__init_array_end>
6d3: 48 8d 2d de 06 20 00 lea rbp,[rip+0x2006de] # 200db8 <__init_array_end>
6da: 53 push rbx
6da: 53 push rbx
6db: 41 89 fd mov r13d,edi
6db: 41 89 fd mov r13d,edi
6de: 49 89 f6 mov r14,rsi
6de: 49 89 f6 mov r14,rsi
6e1: 4c 29 e5 sub rbp,r12
6e1: 4c 29 e5 sub rbp,r12
6e4: 48 83 ec 08 sub rsp,0x8
6e4: 48 83 ec 08 sub rsp,0x8
6e8: 48 c1 fd 03 sar rbp,0x3
6e8: 48 c1 fd 03 sar rbp,0x3
6ec: e8 37 fe ff ff call 528 <_init>
6ec: e8 37 fe ff ff call 528 <_init>
6f1: 48 85 ed test rbp,rbp
6f1: 48 85 ed test rbp,rbp
6f4: 74 20 je 716 <__libc_csu_init+0x56>
6f4: 74 20 je 716 <__libc_csu_init+0x56>
6f6: 31 db xor ebx,ebx
6f6: 31 db xor ebx,ebx
6f8: 0f 1f 84 00 00 00 00 00 nop DWORD PTR [rax+rax*1+0x0]
6f8: 0f 1f 84 00 00 00 00 00 nop DWORD PTR [rax+rax*1+0x0]
700: 4c 89 fa mov rdx,r15
700: 4c 89 fa mov rdx,r15
703: 4c 89 f6 mov rsi,r14
703: 4c 89 f6 mov rsi,r14
706: 44 89 ef mov edi,r13d
706: 44 89 ef mov edi,r13d
709: 41 ff 14 dc call QWORD PTR [r12+rbx*8]
709: 41 ff 14 dc call QWORD PTR [r12+rbx*8]
70d: 48 83 c3 01 add rbx,0x1
70d: 48 83 c3 01 add rbx,0x1
711: 48 39 dd cmp rbp,rbx
711: 48 39 dd cmp rbp,rbx
714: 75 ea jne 700 <__libc_csu_init+0x40>
714: 75 ea jne 700 <__libc_csu_init+0x40>
716: 48 83 c4 08 add rsp,0x8
716: 48 83 c4 08 add rsp,0x8
71a: 5b pop rbx
71a: 5b pop rbx
71b: 5d pop rbp
71b: 5d pop rbp
71c: 41 5c pop r12
71c: 41 5c pop r12
71e: 41 5d pop r13
71e: 41 5d pop r13
720: 41 5e pop r14
720: 41 5e pop r14
722: 41 5f pop r15
722: 41 5f pop r15
724: c3 ret
724: c3 ret
725: 90 nop
725: 90 nop
726: 66 2e 0f 1f 84 00 00 00 00 00 nop WORD PTR cs:[rax+rax*1+0x0]
726: 66 2e 0f 1f 84 00 00 00 00 00 nop WORD PTR cs:[rax+rax*1+0x0]


0000000000000730 <__libc_csu_fini>:
0000000000000730 <__libc_csu_fini>:
730: f3 c3 repz ret
730: f3 c3 repz ret


Disassembly of section .fini:
Disassembly of section .fini:


0000000000000734 <_fini>:
0000000000000734 <_fini>:
734: 48 83 ec 08 sub rsp,0x8
734: 48 83 ec 08 sub rsp,0x8
738: 48 83 c4 08 add rsp,0x8
738: 48 83 c4 08 add rsp,0x8
73c: c3 ret
73c: c3 ret