a.out: file format elf64-x86-64 Disassembly of section .init: 00000000004008b0 <_init>: 4008b0: 48 83 ec 08 sub $0x8,%rsp 4008b4: 48 8b 05 8d 09 20 00 mov 0x20098d(%rip),%rax # 601248 <_DYNAMIC+0x200> 4008bb: 48 85 c0 test %rax,%rax 4008be: 74 05 je 4008c5 <_init+0x15> 4008c0: e8 2b 00 00 00 callq 4008f0 <__gmon_start__@plt> 4008c5: 48 83 c4 08 add $0x8,%rsp 4008c9: c3 retq Disassembly of section .plt: 00000000004008d0 <_ZNSolsEi@plt-0x10>: 4008d0: ff 35 82 09 20 00 pushq 0x200982(%rip) # 601258 <_GLOBAL_OFFSET_TABLE_+0x8> 4008d6: ff 25 84 09 20 00 jmpq *0x200984(%rip) # 601260 <_GLOBAL_OFFSET_TABLE_+0x10> 4008dc: 0f 1f 40 00 nopl 0x0(%rax) 00000000004008e0 <_ZNSolsEi@plt>: 4008e0: ff 25 82 09 20 00 jmpq *0x200982(%rip) # 601268 <_GLOBAL_OFFSET_TABLE_+0x18> 4008e6: 68 00 00 00 00 pushq $0x0 4008eb: e9 e0 ff ff ff jmpq 4008d0 <_init+0x20> 00000000004008f0 <__gmon_start__@plt>: 4008f0: ff 25 7a 09 20 00 jmpq *0x20097a(%rip) # 601270 <_GLOBAL_OFFSET_TABLE_+0x20> 4008f6: 68 01 00 00 00 pushq $0x1 4008fb: e9 d0 ff ff ff jmpq 4008d0 <_init+0x20> 0000000000400900 <_Znam@plt>: 400900: ff 25 72 09 20 00 jmpq *0x200972(%rip) # 601278 <_GLOBAL_OFFSET_TABLE_+0x28> 400906: 68 02 00 00 00 pushq $0x2 40090b: e9 c0 ff ff ff jmpq 4008d0 <_init+0x20> 0000000000400910 <_ZNSt8ios_base4InitC1Ev@plt>: 400910: ff 25 6a 09 20 00 jmpq *0x20096a(%rip) # 601280 <_GLOBAL_OFFSET_TABLE_+0x30> 400916: 68 03 00 00 00 pushq $0x3 40091b: e9 b0 ff ff ff jmpq 4008d0 <_init+0x20> 0000000000400920 <__libc_start_main@plt>: 400920: ff 25 62 09 20 00 jmpq *0x200962(%rip) # 601288 <_GLOBAL_OFFSET_TABLE_+0x38> 400926: 68 04 00 00 00 pushq $0x4 40092b: e9 a0 ff ff ff jmpq 4008d0 <_init+0x20> 0000000000400930 <__cxa_atexit@plt>: 400930: ff 25 5a 09 20 00 jmpq *0x20095a(%rip) # 601290 <_GLOBAL_OFFSET_TABLE_+0x40> 400936: 68 05 00 00 00 pushq $0x5 40093b: e9 90 ff ff ff jmpq 4008d0 <_init+0x20> 0000000000400940 <_ZNSt8ios_base4InitD1Ev@plt>: 400940: ff 25 52 09 20 00 jmpq *0x200952(%rip) # 601298 <_GLOBAL_OFFSET_TABLE_+0x48> 400946: 68 06 00 00 00 pushq $0x6 40094b: e9 80 ff ff ff jmpq 4008d0 <_init+0x20> 0000000000400950 <_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@plt>: 400950: ff 25 4a 09 20 00 jmpq *0x20094a(%rip) # 6012a0 <_GLOBAL_OFFSET_TABLE_+0x50> 400956: 68 07 00 00 00 pushq $0x7 40095b: e9 70 ff ff ff jmpq 4008d0 <_init+0x20> 0000000000400960 <__cxa_allocate_exception@plt>: 400960: ff 25 42 09 20 00 jmpq *0x200942(%rip) # 6012a8 <_GLOBAL_OFFSET_TABLE_+0x58> 400966: 68 08 00 00 00 pushq $0x8 40096b: e9 60 ff ff ff jmpq 4008d0 <_init+0x20> 0000000000400970 <_ZdaPv@plt>: 400970: ff 25 3a 09 20 00 jmpq *0x20093a(%rip) # 6012b0 <_GLOBAL_OFFSET_TABLE_+0x60> 400976: 68 09 00 00 00 pushq $0x9 40097b: e9 50 ff ff ff jmpq 4008d0 <_init+0x20> 0000000000400980 <__cxa_throw@plt>: 400980: ff 25 32 09 20 00 jmpq *0x200932(%rip) # 6012b8 <_GLOBAL_OFFSET_TABLE_+0x68> 400986: 68 0a 00 00 00 pushq $0xa 40098b: e9 40 ff ff ff jmpq 4008d0 <_init+0x20> 0000000000400990 <__cxa_end_catch@plt>: 400990: ff 25 2a 09 20 00 jmpq *0x20092a(%rip) # 6012c0 <_GLOBAL_OFFSET_TABLE_+0x70> 400996: 68 0b 00 00 00 pushq $0xb 40099b: e9 30 ff ff ff jmpq 4008d0 <_init+0x20> 00000000004009a0 <__cxa_begin_catch@plt>: 4009a0: ff 25 22 09 20 00 jmpq *0x200922(%rip) # 6012c8 <_GLOBAL_OFFSET_TABLE_+0x78> 4009a6: 68 0c 00 00 00 pushq $0xc 4009ab: e9 20 ff ff ff jmpq 4008d0 <_init+0x20> 00000000004009b0 <__gxx_personality_v0@plt>: 4009b0: ff 25 1a 09 20 00 jmpq *0x20091a(%rip) # 6012d0 <_GLOBAL_OFFSET_TABLE_+0x80> 4009b6: 68 0d 00 00 00 pushq $0xd 4009bb: e9 10 ff ff ff jmpq 4008d0 <_init+0x20> 00000000004009c0 <_Unwind_Resume@plt>: 4009c0: ff 25 12 09 20 00 jmpq *0x200912(%rip) # 6012d8 <_GLOBAL_OFFSET_TABLE_+0x88> 4009c6: 68 0e 00 00 00 pushq $0xe 4009cb: e9 00 ff ff ff jmpq 4008d0 <_init+0x20> Disassembly of section .text: 00000000004009d0 <_start>: 4009d0: 31 ed xor %ebp,%ebp 4009d2: 49 89 d1 mov %rdx,%r9 4009d5: 5e pop %rsi 4009d6: 48 89 e2 mov %rsp,%rdx 4009d9: 48 83 e4 f0 and $0xfffffffffffffff0,%rsp 4009dd: 50 push %rax 4009de: 54 push %rsp 4009df: 49 c7 c0 80 0d 40 00 mov $0x400d80,%r8 4009e6: 48 c7 c1 10 0d 40 00 mov $0x400d10,%rcx 4009ed: 48 c7 c7 c6 0a 40 00 mov $0x400ac6,%rdi 4009f4: e8 27 ff ff ff callq 400920 <__libc_start_main@plt> 4009f9: f4 hlt 4009fa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 0000000000400a00 : 400a00: b8 f7 12 60 00 mov $0x6012f7,%eax 400a05: 55 push %rbp 400a06: 48 2d f0 12 60 00 sub $0x6012f0,%rax 400a0c: 48 83 f8 0e cmp $0xe,%rax 400a10: 48 89 e5 mov %rsp,%rbp 400a13: 76 1b jbe 400a30 400a15: b8 00 00 00 00 mov $0x0,%eax 400a1a: 48 85 c0 test %rax,%rax 400a1d: 74 11 je 400a30 400a1f: 5d pop %rbp 400a20: bf f0 12 60 00 mov $0x6012f0,%edi 400a25: ff e0 jmpq *%rax 400a27: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) 400a2e: 00 00 400a30: 5d pop %rbp 400a31: c3 retq 400a32: 66 66 66 66 66 2e 0f data16 data16 data16 data16 nopw %cs:0x0(%rax,%rax,1) 400a39: 1f 84 00 00 00 00 00 0000000000400a40 : 400a40: be f0 12 60 00 mov $0x6012f0,%esi 400a45: 55 push %rbp 400a46: 48 81 ee f0 12 60 00 sub $0x6012f0,%rsi 400a4d: 48 c1 fe 03 sar $0x3,%rsi 400a51: 48 89 e5 mov %rsp,%rbp 400a54: 48 89 f0 mov %rsi,%rax 400a57: 48 c1 e8 3f shr $0x3f,%rax 400a5b: 48 01 c6 add %rax,%rsi 400a5e: 48 d1 fe sar %rsi 400a61: 74 15 je 400a78 400a63: b8 00 00 00 00 mov $0x0,%eax 400a68: 48 85 c0 test %rax,%rax 400a6b: 74 0b je 400a78 400a6d: 5d pop %rbp 400a6e: bf f0 12 60 00 mov $0x6012f0,%edi 400a73: ff e0 jmpq *%rax 400a75: 0f 1f 00 nopl (%rax) 400a78: 5d pop %rbp 400a79: c3 retq 400a7a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 0000000000400a80 <__do_global_dtors_aux>: 400a80: 80 3d c9 09 20 00 00 cmpb $0x0,0x2009c9(%rip) # 601450 400a87: 75 11 jne 400a9a <__do_global_dtors_aux+0x1a> 400a89: 55 push %rbp 400a8a: 48 89 e5 mov %rsp,%rbp 400a8d: e8 6e ff ff ff callq 400a00 400a92: 5d pop %rbp 400a93: c6 05 b6 09 20 00 01 movb $0x1,0x2009b6(%rip) # 601450 400a9a: f3 c3 repz retq 400a9c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000400aa0 : 400aa0: bf 40 10 60 00 mov $0x601040,%edi 400aa5: 48 83 3f 00 cmpq $0x0,(%rdi) 400aa9: 75 05 jne 400ab0 400aab: eb 93 jmp 400a40 400aad: 0f 1f 00 nopl (%rax) 400ab0: b8 00 00 00 00 mov $0x0,%eax 400ab5: 48 85 c0 test %rax,%rax 400ab8: 74 f1 je 400aab 400aba: 55 push %rbp 400abb: 48 89 e5 mov %rsp,%rbp 400abe: ff d0 callq *%rax 400ac0: 5d pop %rbp 400ac1: e9 7a ff ff ff jmpq 400a40 0000000000400ac6
: --count; } }; int T::count = 0; int main() try { 400ac6: 55 push %rbp 400ac7: 48 89 e5 mov %rsp,%rbp 400aca: 41 56 push %r14 400acc: 41 55 push %r13 400ace: 41 54 push %r12 400ad0: 53 push %rbx 400ad1: 48 83 ec 10 sub $0x10,%rsp std::cout << "=== Before init\n"; 400ad5: be b7 0d 40 00 mov $0x400db7,%esi 400ada: bf 00 13 60 00 mov $0x601300,%edi 400adf: e8 6c fe ff ff callq 400950 <_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@plt> T *ptr = new T[10]; // T() will throw 400ae4: bf 12 00 00 00 mov $0x12,%edi 400ae9: e8 12 fe ff ff callq 400900 <_Znam@plt> 400aee: 49 89 c4 mov %rax,%r12 400af1: 49 c7 04 24 0a 00 00 movq $0xa,(%r12) 400af8: 00 400af9: 49 8d 5c 24 08 lea 0x8(%r12),%rbx 400afe: 41 bd 09 00 00 00 mov $0x9,%r13d 400b04: 49 89 de mov %rbx,%r14 400b07: eb 10 jmp 400b19 400b09: 4c 89 f7 mov %r14,%rdi 400b0c: e8 55 01 00 00 callq 400c66 <_ZN1TC1Ev> 400b11: 49 83 c6 01 add $0x1,%r14 400b15: 49 83 ed 01 sub $0x1,%r13 400b19: 49 83 fd ff cmp $0xffffffffffffffff,%r13 400b1d: 75 ea jne 400b09 400b1f: 49 8d 44 24 08 lea 0x8(%r12),%rax 400b24: 48 89 45 d8 mov %rax,-0x28(%rbp) std::cout << "=== After init\n"; 400b28: be c8 0d 40 00 mov $0x400dc8,%esi 400b2d: bf 00 13 60 00 mov $0x601300,%edi 400b32: e8 19 fe ff ff callq 400950 <_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@plt> delete[] ptr; 400b37: 48 83 7d d8 00 cmpq $0x0,-0x28(%rbp) 400b3c: 74 37 je 400b75 400b3e: 48 8b 45 d8 mov -0x28(%rbp),%rax 400b42: 48 83 e8 08 sub $0x8,%rax 400b46: 48 8b 10 mov (%rax),%rdx 400b49: 48 8b 45 d8 mov -0x28(%rbp),%rax 400b4d: 48 8d 1c 02 lea (%rdx,%rax,1),%rbx 400b51: 48 3b 5d d8 cmp -0x28(%rbp),%rbx 400b55: 74 0e je 400b65 400b57: 48 83 eb 01 sub $0x1,%rbx 400b5b: 48 89 df mov %rbx,%rdi 400b5e: e8 7f 01 00 00 callq 400ce2 <_ZN1TD1Ev> 400b63: eb ec jmp 400b51 400b65: 48 8b 45 d8 mov -0x28(%rbp),%rax 400b69: 48 83 e8 08 sub $0x8,%rax 400b6d: 48 89 c7 mov %rax,%rdi 400b70: e8 fb fd ff ff callq 400970 <_ZdaPv@plt> } catch(...) { std::cout << "=== Exception: object count = " << T::count << "\n"; } 400b75: b8 00 00 00 00 mov $0x0,%eax 400b7a: e9 88 00 00 00 jmpq 400c07 400b7f: 49 89 c6 mov %rax,%r14 400b82: 48 85 db test %rbx,%rbx 400b85: 74 1f je 400ba6 }; int T::count = 0; int main() try { std::cout << "=== Before init\n"; T *ptr = new T[10]; // T() will throw 400b87: b8 09 00 00 00 mov $0x9,%eax 400b8c: 4c 29 e8 sub %r13,%rax 400b8f: 4c 8d 2c 03 lea (%rbx,%rax,1),%r13 400b93: 49 39 dd cmp %rbx,%r13 400b96: 74 0e je 400ba6 400b98: 49 83 ed 01 sub $0x1,%r13 400b9c: 4c 89 ef mov %r13,%rdi 400b9f: e8 3e 01 00 00 callq 400ce2 <_ZN1TD1Ev> 400ba4: eb ed jmp 400b93 400ba6: 4c 89 f3 mov %r14,%rbx 400ba9: 4c 89 e7 mov %r12,%rdi 400bac: e8 bf fd ff ff callq 400970 <_ZdaPv@plt> 400bb1: 48 89 d8 mov %rbx,%rax 400bb4: eb 13 jmp 400bc9 400bb6: 48 89 c3 mov %rax,%rbx std::cout << "=== After init\n"; delete[] ptr; } catch(...) { 400bb9: e8 d2 fd ff ff callq 400990 <__cxa_end_catch@plt> 400bbe: 48 89 d8 mov %rbx,%rax 400bc1: 48 89 c7 mov %rax,%rdi 400bc4: e8 f7 fd ff ff callq 4009c0 <_Unwind_Resume@plt> 400bc9: 48 89 c7 mov %rax,%rdi 400bcc: e8 cf fd ff ff callq 4009a0 <__cxa_begin_catch@plt> std::cout << "=== Exception: object count = " << T::count << "\n"; 400bd1: 8b 1d 7d 08 20 00 mov 0x20087d(%rip),%ebx # 601454 <_ZN1T5countE> 400bd7: be d8 0d 40 00 mov $0x400dd8,%esi 400bdc: bf 00 13 60 00 mov $0x601300,%edi 400be1: e8 6a fd ff ff callq 400950 <_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@plt> 400be6: 89 de mov %ebx,%esi 400be8: 48 89 c7 mov %rax,%rdi 400beb: e8 f0 fc ff ff callq 4008e0 <_ZNSolsEi@plt> 400bf0: be af 0d 40 00 mov $0x400daf,%esi 400bf5: 48 89 c7 mov %rax,%rdi 400bf8: e8 53 fd ff ff callq 400950 <_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@plt> std::cout << "=== Before init\n"; T *ptr = new T[10]; // T() will throw std::cout << "=== After init\n"; delete[] ptr; } catch(...) { 400bfd: e8 8e fd ff ff callq 400990 <__cxa_end_catch@plt> 400c02: e9 6e ff ff ff jmpq 400b75 std::cout << "=== Exception: object count = " << T::count << "\n"; } 400c07: 48 83 c4 10 add $0x10,%rsp 400c0b: 5b pop %rbx 400c0c: 41 5c pop %r12 400c0e: 41 5d pop %r13 400c10: 41 5e pop %r14 400c12: 5d pop %rbp 400c13: c3 retq 0000000000400c14 <_Z41__static_initialization_and_destruction_0ii>: 400c14: 55 push %rbp 400c15: 48 89 e5 mov %rsp,%rbp 400c18: 48 83 ec 10 sub $0x10,%rsp 400c1c: 89 7d fc mov %edi,-0x4(%rbp) 400c1f: 89 75 f8 mov %esi,-0x8(%rbp) 400c22: 83 7d fc 01 cmpl $0x1,-0x4(%rbp) 400c26: 75 27 jne 400c4f <_Z41__static_initialization_and_destruction_0ii+0x3b> 400c28: 81 7d f8 ff ff 00 00 cmpl $0xffff,-0x8(%rbp) 400c2f: 75 1e jne 400c4f <_Z41__static_initialization_and_destruction_0ii+0x3b> extern wostream wclog; /// Linked to standard error (buffered) #endif //@} // For construction of filebuffers for cout, cin, cerr, clog et. al. static ios_base::Init __ioinit; 400c31: bf 58 14 60 00 mov $0x601458,%edi 400c36: e8 d5 fc ff ff callq 400910 <_ZNSt8ios_base4InitC1Ev@plt> 400c3b: ba e8 12 60 00 mov $0x6012e8,%edx 400c40: be 58 14 60 00 mov $0x601458,%esi 400c45: bf 40 09 40 00 mov $0x400940,%edi 400c4a: e8 e1 fc ff ff callq 400930 <__cxa_atexit@plt> 400c4f: c9 leaveq 400c50: c3 retq 0000000000400c51 <_GLOBAL__sub_I__ZN1T5countE>: 400c51: 55 push %rbp 400c52: 48 89 e5 mov %rsp,%rbp 400c55: be ff ff 00 00 mov $0xffff,%esi 400c5a: bf 01 00 00 00 mov $0x1,%edi 400c5f: e8 b0 ff ff ff callq 400c14 <_Z41__static_initialization_and_destruction_0ii> 400c64: 5d pop %rbp 400c65: c3 retq 0000000000400c66 <_ZN1TC1Ev>: const int MAX=3; struct T { static int count; T() { 400c66: 55 push %rbp 400c67: 48 89 e5 mov %rsp,%rbp 400c6a: 53 push %rbx 400c6b: 48 83 ec 18 sub $0x18,%rsp 400c6f: 48 89 7d e8 mov %rdi,-0x18(%rbp) if(count>=MAX) throw 1; 400c73: 8b 05 db 07 20 00 mov 0x2007db(%rip),%eax # 601454 <_ZN1T5countE> 400c79: 83 f8 02 cmp $0x2,%eax 400c7c: 7e 22 jle 400ca0 <_ZN1TC1Ev+0x3a> 400c7e: bf 04 00 00 00 mov $0x4,%edi 400c83: e8 d8 fc ff ff callq 400960 <__cxa_allocate_exception@plt> 400c88: c7 00 01 00 00 00 movl $0x1,(%rax) 400c8e: ba 00 00 00 00 mov $0x0,%edx 400c93: be 40 14 60 00 mov $0x601440,%esi 400c98: 48 89 c7 mov %rax,%rdi 400c9b: e8 e0 fc ff ff callq 400980 <__cxa_throw@plt> ++count; 400ca0: 8b 05 ae 07 20 00 mov 0x2007ae(%rip),%eax # 601454 <_ZN1T5countE> 400ca6: 83 c0 01 add $0x1,%eax 400ca9: 89 05 a5 07 20 00 mov %eax,0x2007a5(%rip) # 601454 <_ZN1T5countE> std::cout << "T() object count = " << count <<"\n"; 400caf: 8b 1d 9f 07 20 00 mov 0x20079f(%rip),%ebx # 601454 <_ZN1T5countE> 400cb5: be 98 0d 40 00 mov $0x400d98,%esi 400cba: bf 00 13 60 00 mov $0x601300,%edi 400cbf: e8 8c fc ff ff callq 400950 <_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@plt> 400cc4: 89 de mov %ebx,%esi 400cc6: 48 89 c7 mov %rax,%rdi 400cc9: e8 12 fc ff ff callq 4008e0 <_ZNSolsEi@plt> 400cce: be af 0d 40 00 mov $0x400daf,%esi 400cd3: 48 89 c7 mov %rax,%rdi 400cd6: e8 75 fc ff ff callq 400950 <_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@plt> } 400cdb: 48 83 c4 18 add $0x18,%rsp 400cdf: 5b pop %rbx 400ce0: 5d pop %rbp 400ce1: c3 retq 0000000000400ce2 <_ZN1TD1Ev>: ~T() { 400ce2: 55 push %rbp 400ce3: 48 89 e5 mov %rsp,%rbp 400ce6: 48 83 ec 10 sub $0x10,%rsp 400cea: 48 89 7d f8 mov %rdi,-0x8(%rbp) std::cout << "~T()\n"; 400cee: be b1 0d 40 00 mov $0x400db1,%esi 400cf3: bf 00 13 60 00 mov $0x601300,%edi 400cf8: e8 53 fc ff ff callq 400950 <_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@plt> --count; 400cfd: 8b 05 51 07 20 00 mov 0x200751(%rip),%eax # 601454 <_ZN1T5countE> 400d03: 83 e8 01 sub $0x1,%eax 400d06: 89 05 48 07 20 00 mov %eax,0x200748(%rip) # 601454 <_ZN1T5countE> } 400d0c: c9 leaveq 400d0d: c3 retq 400d0e: 66 90 xchg %ax,%ax 0000000000400d10 <__libc_csu_init>: 400d10: 41 57 push %r15 400d12: 41 89 ff mov %edi,%r15d 400d15: 41 56 push %r14 400d17: 49 89 f6 mov %rsi,%r14 400d1a: 41 55 push %r13 400d1c: 49 89 d5 mov %rdx,%r13 400d1f: 41 54 push %r12 400d21: 4c 8d 25 00 03 20 00 lea 0x200300(%rip),%r12 # 601028 <__frame_dummy_init_array_entry> 400d28: 55 push %rbp 400d29: 48 8d 2d 08 03 20 00 lea 0x200308(%rip),%rbp # 601038 <__init_array_end> 400d30: 53 push %rbx 400d31: 4c 29 e5 sub %r12,%rbp 400d34: 31 db xor %ebx,%ebx 400d36: 48 c1 fd 03 sar $0x3,%rbp 400d3a: 48 83 ec 08 sub $0x8,%rsp 400d3e: e8 6d fb ff ff callq 4008b0 <_init> 400d43: 48 85 ed test %rbp,%rbp 400d46: 74 1e je 400d66 <__libc_csu_init+0x56> 400d48: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) 400d4f: 00 400d50: 4c 89 ea mov %r13,%rdx 400d53: 4c 89 f6 mov %r14,%rsi 400d56: 44 89 ff mov %r15d,%edi 400d59: 41 ff 14 dc callq *(%r12,%rbx,8) 400d5d: 48 83 c3 01 add $0x1,%rbx 400d61: 48 39 eb cmp %rbp,%rbx 400d64: 75 ea jne 400d50 <__libc_csu_init+0x40> 400d66: 48 83 c4 08 add $0x8,%rsp 400d6a: 5b pop %rbx 400d6b: 5d pop %rbp 400d6c: 41 5c pop %r12 400d6e: 41 5d pop %r13 400d70: 41 5e pop %r14 400d72: 41 5f pop %r15 400d74: c3 retq 400d75: 66 66 2e 0f 1f 84 00 data16 nopw %cs:0x0(%rax,%rax,1) 400d7c: 00 00 00 00 0000000000400d80 <__libc_csu_fini>: 400d80: f3 c3 repz retq Disassembly of section .fini: 0000000000400d84 <_fini>: 400d84: 48 83 ec 08 sub $0x8,%rsp 400d88: 48 83 c4 08 add $0x8,%rsp 400d8c: c3 retq