Skip to content

Instantly share code, notes, and snippets.

@liweinan
Created September 5, 2012 00:28
Show Gist options
  • Select an option

  • Save liweinan/3628503 to your computer and use it in GitHub Desktop.

Select an option

Save liweinan/3628503 to your computer and use it in GitHub Desktop.
lock-free-queue
./main: file format elf64-x86-64
Disassembly of section .init:
0000000000400600 <_init>:
400600: 48 83 ec 08 sub $0x8,%rsp
400604: e8 e3 00 00 00 callq 4006ec <call_gmon_start>
400609: e8 62 01 00 00 callq 400770 <frame_dummy>
40060e: e8 dd 06 00 00 callq 400cf0 <__do_global_ctors_aux>
400613: 48 83 c4 08 add $0x8,%rsp
400617: c3 retq
Disassembly of section .plt:
0000000000400618 <printf@plt-0x10>:
400618: ff 35 ea 0b 20 00 pushq 0x200bea(%rip) # 601208 <_GLOBAL_OFFSET_TABLE_+0x8>
40061e: ff 25 ec 0b 20 00 jmpq *0x200bec(%rip) # 601210 <_GLOBAL_OFFSET_TABLE_+0x10>
400624: 0f 1f 40 00 nopl 0x0(%rax)
0000000000400628 <printf@plt>:
400628: ff 25 ea 0b 20 00 jmpq *0x200bea(%rip) # 601218 <_GLOBAL_OFFSET_TABLE_+0x18>
40062e: 68 00 00 00 00 pushq $0x0
400633: e9 e0 ff ff ff jmpq 400618 <_init+0x18>
0000000000400638 <malloc@plt>:
400638: ff 25 e2 0b 20 00 jmpq *0x200be2(%rip) # 601220 <_GLOBAL_OFFSET_TABLE_+0x20>
40063e: 68 01 00 00 00 pushq $0x1
400643: e9 d0 ff ff ff jmpq 400618 <_init+0x18>
0000000000400648 <__libc_start_main@plt>:
400648: ff 25 da 0b 20 00 jmpq *0x200bda(%rip) # 601228 <_GLOBAL_OFFSET_TABLE_+0x28>
40064e: 68 02 00 00 00 pushq $0x2
400653: e9 c0 ff ff ff jmpq 400618 <_init+0x18>
0000000000400658 <free@plt>:
400658: ff 25 d2 0b 20 00 jmpq *0x200bd2(%rip) # 601230 <_GLOBAL_OFFSET_TABLE_+0x30>
40065e: 68 03 00 00 00 pushq $0x3
400663: e9 b0 ff ff ff jmpq 400618 <_init+0x18>
0000000000400668 <pthread_create@plt>:
400668: ff 25 ca 0b 20 00 jmpq *0x200bca(%rip) # 601238 <_GLOBAL_OFFSET_TABLE_+0x38>
40066e: 68 04 00 00 00 pushq $0x4
400673: e9 a0 ff ff ff jmpq 400618 <_init+0x18>
0000000000400678 <sleep@plt>:
400678: ff 25 c2 0b 20 00 jmpq *0x200bc2(%rip) # 601240 <_GLOBAL_OFFSET_TABLE_+0x40>
40067e: 68 05 00 00 00 pushq $0x5
400683: e9 90 ff ff ff jmpq 400618 <_init+0x18>
0000000000400688 <pthread_join@plt>:
400688: ff 25 ba 0b 20 00 jmpq *0x200bba(%rip) # 601248 <_GLOBAL_OFFSET_TABLE_+0x48>
40068e: 68 06 00 00 00 pushq $0x6
400693: e9 80 ff ff ff jmpq 400618 <_init+0x18>
0000000000400698 <__gxx_personality_v0@plt>:
400698: ff 25 b2 0b 20 00 jmpq *0x200bb2(%rip) # 601250 <_GLOBAL_OFFSET_TABLE_+0x50>
40069e: 68 07 00 00 00 pushq $0x7
4006a3: e9 70 ff ff ff jmpq 400618 <_init+0x18>
00000000004006a8 <_Unwind_Resume@plt>:
4006a8: ff 25 aa 0b 20 00 jmpq *0x200baa(%rip) # 601258 <_GLOBAL_OFFSET_TABLE_+0x58>
4006ae: 68 08 00 00 00 pushq $0x8
4006b3: e9 60 ff ff ff jmpq 400618 <_init+0x18>
Disassembly of section .text:
00000000004006c0 <_start>:
4006c0: 31 ed xor %ebp,%ebp
4006c2: 49 89 d1 mov %rdx,%r9
4006c5: 5e pop %rsi
4006c6: 48 89 e2 mov %rsp,%rdx
4006c9: 48 83 e4 f0 and $0xfffffffffffffff0,%rsp
4006cd: 50 push %rax
4006ce: 54 push %rsp
4006cf: 49 c7 c0 50 0c 40 00 mov $0x400c50,%r8
4006d6: 48 c7 c1 60 0c 40 00 mov $0x400c60,%rcx
4006dd: 48 c7 c7 40 09 40 00 mov $0x400940,%rdi
4006e4: e8 5f ff ff ff callq 400648 <__libc_start_main@plt>
4006e9: f4 hlt
4006ea: 90 nop
4006eb: 90 nop
00000000004006ec <call_gmon_start>:
4006ec: 48 83 ec 08 sub $0x8,%rsp
4006f0: 48 8b 05 01 0b 20 00 mov 0x200b01(%rip),%rax # 6011f8 <_DYNAMIC+0x1d0>
4006f7: 48 85 c0 test %rax,%rax
4006fa: 74 02 je 4006fe <call_gmon_start+0x12>
4006fc: ff d0 callq *%rax
4006fe: 48 83 c4 08 add $0x8,%rsp
400702: c3 retq
400703: 90 nop
400704: 90 nop
400705: 90 nop
400706: 90 nop
400707: 90 nop
400708: 90 nop
400709: 90 nop
40070a: 90 nop
40070b: 90 nop
40070c: 90 nop
40070d: 90 nop
40070e: 90 nop
40070f: 90 nop
0000000000400710 <__do_global_dtors_aux>:
400710: 55 push %rbp
400711: 48 89 e5 mov %rsp,%rbp
400714: 53 push %rbx
400715: 48 83 ec 08 sub $0x8,%rsp
400719: 80 3d 50 0b 20 00 00 cmpb $0x0,0x200b50(%rip) # 601270 <completed.6145>
400720: 75 44 jne 400766 <__do_global_dtors_aux+0x56>
400722: b8 18 10 60 00 mov $0x601018,%eax
400727: 48 2d 10 10 60 00 sub $0x601010,%rax
40072d: 48 c1 f8 03 sar $0x3,%rax
400731: 48 8d 58 ff lea -0x1(%rax),%rbx
400735: 48 8b 05 2c 0b 20 00 mov 0x200b2c(%rip),%rax # 601268 <dtor_idx.6147>
40073c: 48 39 c3 cmp %rax,%rbx
40073f: 76 1e jbe 40075f <__do_global_dtors_aux+0x4f>
400741: 48 83 c0 01 add $0x1,%rax
400745: 48 89 05 1c 0b 20 00 mov %rax,0x200b1c(%rip) # 601268 <dtor_idx.6147>
40074c: ff 14 c5 10 10 60 00 callq *0x601010(,%rax,8)
400753: 48 8b 05 0e 0b 20 00 mov 0x200b0e(%rip),%rax # 601268 <dtor_idx.6147>
40075a: 48 39 c3 cmp %rax,%rbx
40075d: 77 e2 ja 400741 <__do_global_dtors_aux+0x31>
40075f: c6 05 0a 0b 20 00 01 movb $0x1,0x200b0a(%rip) # 601270 <completed.6145>
400766: 48 83 c4 08 add $0x8,%rsp
40076a: 5b pop %rbx
40076b: c9 leaveq
40076c: c3 retq
40076d: 0f 1f 00 nopl (%rax)
0000000000400770 <frame_dummy>:
400770: 55 push %rbp
400771: 48 83 3d a7 08 20 00 cmpq $0x0,0x2008a7(%rip) # 601020 <__JCR_END__>
400778: 00
400779: 48 89 e5 mov %rsp,%rbp
40077c: 74 16 je 400794 <frame_dummy+0x24>
40077e: b8 00 00 00 00 mov $0x0,%eax
400783: 48 85 c0 test %rax,%rax
400786: 74 0c je 400794 <frame_dummy+0x24>
400788: bf 20 10 60 00 mov $0x601020,%edi
40078d: 49 89 c3 mov %rax,%r11
400790: c9 leaveq
400791: 41 ff e3 jmpq *%r11
400794: c9 leaveq
400795: c3 retq
400796: 90 nop
400797: 90 nop
400798: 90 nop
400799: 90 nop
40079a: 90 nop
40079b: 90 nop
40079c: 90 nop
40079d: 90 nop
40079e: 90 nop
40079f: 90 nop
00000000004007a0 <_Z5debugv>:
4007a0: f3 c3 repz retq
4007a2: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
4007a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
00000000004007b0 <_Z3popPv>:
4007b0: 53 push %rbx
4007b1: 48 89 fb mov %rdi,%rbx
4007b4: 48 8b 43 10 mov 0x10(%rbx),%rax
4007b8: 48 2b 43 08 sub 0x8(%rbx),%rax
4007bc: 48 83 f8 14 cmp $0x14,%rax
4007c0: 0f 86 9a 00 00 00 jbe 400860 <_Z3popPv+0xb0>
4007c6: b8 01 00 00 00 mov $0x1,%eax
4007cb: f0 0f c1 43 08 lock xadd %eax,0x8(%rbx)
4007d0: 48 89 c1 mov %rax,%rcx
4007d3: 81 e1 ff ff ff 01 and $0x1ffffff,%ecx
4007d9: 48 8d 04 cd 00 00 00 lea 0x0(,%rcx,8),%rax
4007e0: 00
4007e1: 48 03 43 18 add 0x18(%rbx),%rax
4007e5: 48 8b 30 mov (%rax),%rsi
4007e8: 48 85 f6 test %rsi,%rsi
4007eb: 74 7f je 40086c <_Z3popPv+0xbc>
4007ed: 48 ba db 34 b6 d7 82 movabs $0x431bde82d7b634db,%rdx
4007f4: de 1b 43
4007f7: 48 89 c8 mov %rcx,%rax
4007fa: 48 f7 e2 mul %rdx
4007fd: 48 c1 ea 12 shr $0x12,%rdx
400801: 48 69 d2 40 42 0f 00 imul $0xf4240,%rdx,%rdx
400808: 48 39 d1 cmp %rdx,%rcx
40080b: 75 a7 jne 4007b4 <_Z3popPv+0x4>
40080d: 0f 31 rdtsc
40080f: 41 89 d1 mov %edx,%r9d
400812: 41 89 c0 mov %eax,%r8d
400815: 0f 31 rdtsc
400817: 89 d1 mov %edx,%ecx
400819: 4c 89 ca mov %r9,%rdx
40081c: 89 c7 mov %eax,%edi
40081e: 48 c1 e2 20 shl $0x20,%rdx
400822: 44 89 c0 mov %r8d,%eax
400825: 48 09 c2 or %rax,%rdx
400828: 48 29 f2 sub %rsi,%rdx
40082b: 78 44 js 400871 <_Z3popPv+0xc1>
40082d: f3 48 0f 2a c2 cvtsi2ss %rdx,%xmm0
400832: f3 0f 5e 05 36 05 00 divss 0x536(%rip),%xmm0 # 400d70 <__dso_handle+0x30>
400839: 00
40083a: 48 89 ca mov %rcx,%rdx
40083d: 89 f8 mov %edi,%eax
40083f: 48 c1 e2 20 shl $0x20,%rdx
400843: bf 48 0d 40 00 mov $0x400d48,%edi
400848: 48 09 c2 or %rax,%rdx
40084b: b8 01 00 00 00 mov $0x1,%eax
400850: f3 0f 5a c0 cvtss2sd %xmm0,%xmm0
400854: e8 cf fd ff ff callq 400628 <printf@plt>
400859: e9 56 ff ff ff jmpq 4007b4 <_Z3popPv+0x4>
40085e: 66 90 xchg %ax,%ax
400860: 31 ff xor %edi,%edi
400862: e8 11 fe ff ff callq 400678 <sleep@plt>
400867: e9 48 ff ff ff jmpq 4007b4 <_Z3popPv+0x4>
40086c: 5b pop %rbx
40086d: 0f 1f 00 nopl (%rax)
400870: c3 retq
400871: 48 89 d0 mov %rdx,%rax
400874: 83 e2 01 and $0x1,%edx
400877: 48 d1 e8 shr %rax
40087a: 48 09 d0 or %rdx,%rax
40087d: f3 48 0f 2a c0 cvtsi2ss %rax,%xmm0
400882: f3 0f 58 c0 addss %xmm0,%xmm0
400886: eb aa jmp 400832 <_Z3popPv+0x82>
400888: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
40088f: 00
0000000000400890 <_Z8push_endPv>:
400890: 31 c9 xor %ecx,%ecx
400892: ba 01 00 00 00 mov $0x1,%edx
400897: 48 89 d0 mov %rdx,%rax
40089a: f0 0f c1 47 10 lock xadd %eax,0x10(%rdi)
40089f: 25 ff ff ff 01 and $0x1ffffff,%eax
4008a4: 83 c1 01 add $0x1,%ecx
4008a7: 48 c1 e0 03 shl $0x3,%rax
4008ab: 48 03 47 18 add 0x18(%rdi),%rax
4008af: 81 f9 e8 03 00 00 cmp $0x3e8,%ecx
4008b5: 48 c7 00 00 00 00 00 movq $0x0,(%rax)
4008bc: 75 d9 jne 400897 <_Z8push_endPv+0x7>
4008be: f3 c3 repz retq
00000000004008c0 <_Z4pushPv>:
4008c0: 31 f6 xor %esi,%esi
4008c2: b9 01 00 00 00 mov $0x1,%ecx
4008c7: 0f 31 rdtsc
4008c9: 48 c1 e2 20 shl $0x20,%rdx
4008cd: 89 c0 mov %eax,%eax
4008cf: 48 09 c2 or %rax,%rdx
4008d2: 48 89 c8 mov %rcx,%rax
4008d5: f0 0f c1 47 10 lock xadd %eax,0x10(%rdi)
4008da: 25 ff ff ff 01 and $0x1ffffff,%eax
4008df: 48 c1 e0 03 shl $0x3,%rax
4008e3: 48 03 47 18 add 0x18(%rdi),%rax
4008e7: 48 89 10 mov %rdx,(%rax)
4008ea: 48 89 c8 mov %rcx,%rax
4008ed: f0 0f c1 47 10 lock xadd %eax,0x10(%rdi)
4008f2: 25 ff ff ff 01 and $0x1ffffff,%eax
4008f7: 48 c1 e0 03 shl $0x3,%rax
4008fb: 48 03 47 18 add 0x18(%rdi),%rax
4008ff: 48 89 10 mov %rdx,(%rax)
400902: 48 89 c8 mov %rcx,%rax
400905: f0 0f c1 47 10 lock xadd %eax,0x10(%rdi)
40090a: 25 ff ff ff 01 and $0x1ffffff,%eax
40090f: 48 c1 e0 03 shl $0x3,%rax
400913: 48 03 47 18 add 0x18(%rdi),%rax
400917: 48 89 10 mov %rdx,(%rax)
40091a: 48 89 c8 mov %rcx,%rax
40091d: f0 0f c1 47 10 lock xadd %eax,0x10(%rdi)
400922: 25 ff ff ff 01 and $0x1ffffff,%eax
400927: 83 c6 01 add $0x1,%esi
40092a: 48 c1 e0 03 shl $0x3,%rax
40092e: 48 03 47 18 add 0x18(%rdi),%rax
400932: 81 fe 40 78 7d 01 cmp $0x17d7840,%esi
400938: 48 89 10 mov %rdx,(%rax)
40093b: 75 8a jne 4008c7 <_Z4pushPv+0x7>
40093d: f3 c3 repz retq
40093f: 90 nop
0000000000400940 <main>:
400940: 41 55 push %r13
400942: bf 50 00 00 00 mov $0x50,%edi
400947: 41 54 push %r12
400949: 55 push %rbp
40094a: 53 push %rbx
40094b: 48 83 ec 38 sub $0x38,%rsp
40094f: e8 e4 fc ff ff callq 400638 <malloc@plt>
400954: bf 50 00 00 00 mov $0x50,%edi
400959: 48 89 c5 mov %rax,%rbp
40095c: e8 d7 fc ff ff callq 400638 <malloc@plt>
400961: bf 08 00 00 00 mov $0x8,%edi
400966: 48 89 c3 mov %rax,%rbx
400969: e8 ca fc ff ff callq 400638 <malloc@plt>
40096e: bf 00 00 00 10 mov $0x10000000,%edi
400973: 49 89 c5 mov %rax,%r13
400976: e8 bd fc ff ff callq 400638 <malloc@plt>
40097b: 31 f6 xor %esi,%esi
40097d: 48 89 e1 mov %rsp,%rcx
400980: ba c0 08 40 00 mov $0x4008c0,%edx
400985: 48 89 df mov %rbx,%rdi
400988: 48 89 44 24 18 mov %rax,0x18(%rsp)
40098d: 48 c7 44 24 08 00 00 movq $0x0,0x8(%rsp)
400994: 00 00
400996: 48 c7 44 24 10 00 00 movq $0x0,0x10(%rsp)
40099d: 00 00
40099f: e8 c4 fc ff ff callq 400668 <pthread_create@plt>
4009a4: 48 8d 7b 08 lea 0x8(%rbx),%rdi
4009a8: 31 f6 xor %esi,%esi
4009aa: 48 89 e1 mov %rsp,%rcx
4009ad: ba c0 08 40 00 mov $0x4008c0,%edx
4009b2: e8 b1 fc ff ff callq 400668 <pthread_create@plt>
4009b7: 48 8d 7b 10 lea 0x10(%rbx),%rdi
4009bb: 31 f6 xor %esi,%esi
4009bd: 48 89 e1 mov %rsp,%rcx
4009c0: ba c0 08 40 00 mov $0x4008c0,%edx
4009c5: e8 9e fc ff ff callq 400668 <pthread_create@plt>
4009ca: 48 8d 7b 18 lea 0x18(%rbx),%rdi
4009ce: 31 f6 xor %esi,%esi
4009d0: 48 89 e1 mov %rsp,%rcx
4009d3: ba c0 08 40 00 mov $0x4008c0,%edx
4009d8: e8 8b fc ff ff callq 400668 <pthread_create@plt>
4009dd: 48 8d 7b 20 lea 0x20(%rbx),%rdi
4009e1: 31 f6 xor %esi,%esi
4009e3: 48 89 e1 mov %rsp,%rcx
4009e6: ba c0 08 40 00 mov $0x4008c0,%edx
4009eb: e8 78 fc ff ff callq 400668 <pthread_create@plt>
4009f0: 48 8d 7b 28 lea 0x28(%rbx),%rdi
4009f4: 31 f6 xor %esi,%esi
4009f6: 48 89 e1 mov %rsp,%rcx
4009f9: ba c0 08 40 00 mov $0x4008c0,%edx
4009fe: e8 65 fc ff ff callq 400668 <pthread_create@plt>
400a03: 48 8d 7b 30 lea 0x30(%rbx),%rdi
400a07: 31 f6 xor %esi,%esi
400a09: 48 89 e1 mov %rsp,%rcx
400a0c: ba c0 08 40 00 mov $0x4008c0,%edx
400a11: e8 52 fc ff ff callq 400668 <pthread_create@plt>
400a16: 48 8d 7b 38 lea 0x38(%rbx),%rdi
400a1a: 31 f6 xor %esi,%esi
400a1c: 48 89 e1 mov %rsp,%rcx
400a1f: ba c0 08 40 00 mov $0x4008c0,%edx
400a24: e8 3f fc ff ff callq 400668 <pthread_create@plt>
400a29: 48 8d 7b 40 lea 0x40(%rbx),%rdi
400a2d: 31 f6 xor %esi,%esi
400a2f: 48 89 e1 mov %rsp,%rcx
400a32: ba c0 08 40 00 mov $0x4008c0,%edx
400a37: e8 2c fc ff ff callq 400668 <pthread_create@plt>
400a3c: 48 8d 7b 48 lea 0x48(%rbx),%rdi
400a40: 31 f6 xor %esi,%esi
400a42: 48 89 e1 mov %rsp,%rcx
400a45: ba c0 08 40 00 mov $0x4008c0,%edx
400a4a: e8 19 fc ff ff callq 400668 <pthread_create@plt>
400a4f: 31 f6 xor %esi,%esi
400a51: 48 89 e1 mov %rsp,%rcx
400a54: ba b0 07 40 00 mov $0x4007b0,%edx
400a59: 48 89 ef mov %rbp,%rdi
400a5c: e8 07 fc ff ff callq 400668 <pthread_create@plt>
400a61: 48 8d 7d 08 lea 0x8(%rbp),%rdi
400a65: 31 f6 xor %esi,%esi
400a67: 48 89 e1 mov %rsp,%rcx
400a6a: ba b0 07 40 00 mov $0x4007b0,%edx
400a6f: e8 f4 fb ff ff callq 400668 <pthread_create@plt>
400a74: 48 8d 7d 10 lea 0x10(%rbp),%rdi
400a78: 31 f6 xor %esi,%esi
400a7a: 48 89 e1 mov %rsp,%rcx
400a7d: ba b0 07 40 00 mov $0x4007b0,%edx
400a82: e8 e1 fb ff ff callq 400668 <pthread_create@plt>
400a87: 48 8d 7d 18 lea 0x18(%rbp),%rdi
400a8b: 48 89 e1 mov %rsp,%rcx
400a8e: ba b0 07 40 00 mov $0x4007b0,%edx
400a93: 31 f6 xor %esi,%esi
400a95: e8 ce fb ff ff callq 400668 <pthread_create@plt>
400a9a: 48 8d 7d 20 lea 0x20(%rbp),%rdi
400a9e: 31 f6 xor %esi,%esi
400aa0: 48 89 e1 mov %rsp,%rcx
400aa3: ba b0 07 40 00 mov $0x4007b0,%edx
400aa8: e8 bb fb ff ff callq 400668 <pthread_create@plt>
400aad: 48 8d 7d 28 lea 0x28(%rbp),%rdi
400ab1: 48 89 e1 mov %rsp,%rcx
400ab4: ba b0 07 40 00 mov $0x4007b0,%edx
400ab9: 31 f6 xor %esi,%esi
400abb: e8 a8 fb ff ff callq 400668 <pthread_create@plt>
400ac0: 48 8d 7d 30 lea 0x30(%rbp),%rdi
400ac4: 48 89 e1 mov %rsp,%rcx
400ac7: ba b0 07 40 00 mov $0x4007b0,%edx
400acc: 31 f6 xor %esi,%esi
400ace: e8 95 fb ff ff callq 400668 <pthread_create@plt>
400ad3: 48 8d 7d 38 lea 0x38(%rbp),%rdi
400ad7: 48 89 e1 mov %rsp,%rcx
400ada: ba b0 07 40 00 mov $0x4007b0,%edx
400adf: 31 f6 xor %esi,%esi
400ae1: e8 82 fb ff ff callq 400668 <pthread_create@plt>
400ae6: 48 8d 7d 40 lea 0x40(%rbp),%rdi
400aea: 48 89 e1 mov %rsp,%rcx
400aed: ba b0 07 40 00 mov $0x4007b0,%edx
400af2: 31 f6 xor %esi,%esi
400af4: e8 6f fb ff ff callq 400668 <pthread_create@plt>
400af9: 48 8d 7d 48 lea 0x48(%rbp),%rdi
400afd: 31 f6 xor %esi,%esi
400aff: 48 89 e1 mov %rsp,%rcx
400b02: ba b0 07 40 00 mov $0x4007b0,%edx
400b07: e8 5c fb ff ff callq 400668 <pthread_create@plt>
400b0c: 31 f6 xor %esi,%esi
400b0e: 48 8b 3b mov (%rbx),%rdi
400b11: e8 72 fb ff ff callq 400688 <pthread_join@plt>
400b16: 31 f6 xor %esi,%esi
400b18: 48 8b 7b 08 mov 0x8(%rbx),%rdi
400b1c: e8 67 fb ff ff callq 400688 <pthread_join@plt>
400b21: 31 f6 xor %esi,%esi
400b23: 48 8b 7b 10 mov 0x10(%rbx),%rdi
400b27: e8 5c fb ff ff callq 400688 <pthread_join@plt>
400b2c: 31 f6 xor %esi,%esi
400b2e: 48 8b 7b 18 mov 0x18(%rbx),%rdi
400b32: e8 51 fb ff ff callq 400688 <pthread_join@plt>
400b37: 31 f6 xor %esi,%esi
400b39: 48 8b 7b 20 mov 0x20(%rbx),%rdi
400b3d: e8 46 fb ff ff callq 400688 <pthread_join@plt>
400b42: 31 f6 xor %esi,%esi
400b44: 48 8b 7b 28 mov 0x28(%rbx),%rdi
400b48: e8 3b fb ff ff callq 400688 <pthread_join@plt>
400b4d: 31 f6 xor %esi,%esi
400b4f: 48 8b 7b 30 mov 0x30(%rbx),%rdi
400b53: e8 30 fb ff ff callq 400688 <pthread_join@plt>
400b58: 31 f6 xor %esi,%esi
400b5a: 48 8b 7b 38 mov 0x38(%rbx),%rdi
400b5e: e8 25 fb ff ff callq 400688 <pthread_join@plt>
400b63: 31 f6 xor %esi,%esi
400b65: 48 8b 7b 40 mov 0x40(%rbx),%rdi
400b69: e8 1a fb ff ff callq 400688 <pthread_join@plt>
400b6e: 31 f6 xor %esi,%esi
400b70: 48 8b 7b 48 mov 0x48(%rbx),%rdi
400b74: e8 0f fb ff ff callq 400688 <pthread_join@plt>
400b79: 31 f6 xor %esi,%esi
400b7b: 4c 89 ef mov %r13,%rdi
400b7e: 48 89 e1 mov %rsp,%rcx
400b81: ba 90 08 40 00 mov $0x400890,%edx
400b86: e8 dd fa ff ff callq 400668 <pthread_create@plt>
400b8b: 31 f6 xor %esi,%esi
400b8d: 48 8b 7d 00 mov 0x0(%rbp),%rdi
400b91: e8 f2 fa ff ff callq 400688 <pthread_join@plt>
400b96: 31 f6 xor %esi,%esi
400b98: 48 8b 7d 08 mov 0x8(%rbp),%rdi
400b9c: e8 e7 fa ff ff callq 400688 <pthread_join@plt>
400ba1: 31 f6 xor %esi,%esi
400ba3: 48 8b 7d 10 mov 0x10(%rbp),%rdi
400ba7: e8 dc fa ff ff callq 400688 <pthread_join@plt>
400bac: 31 f6 xor %esi,%esi
400bae: 48 8b 7d 18 mov 0x18(%rbp),%rdi
400bb2: e8 d1 fa ff ff callq 400688 <pthread_join@plt>
400bb7: 31 f6 xor %esi,%esi
400bb9: 48 8b 7d 20 mov 0x20(%rbp),%rdi
400bbd: e8 c6 fa ff ff callq 400688 <pthread_join@plt>
400bc2: 31 f6 xor %esi,%esi
400bc4: 48 8b 7d 28 mov 0x28(%rbp),%rdi
400bc8: e8 bb fa ff ff callq 400688 <pthread_join@plt>
400bcd: 31 f6 xor %esi,%esi
400bcf: 48 8b 7d 30 mov 0x30(%rbp),%rdi
400bd3: e8 b0 fa ff ff callq 400688 <pthread_join@plt>
400bd8: 31 f6 xor %esi,%esi
400bda: 48 8b 7d 38 mov 0x38(%rbp),%rdi
400bde: e8 a5 fa ff ff callq 400688 <pthread_join@plt>
400be3: 31 f6 xor %esi,%esi
400be5: 48 8b 7d 40 mov 0x40(%rbp),%rdi
400be9: e8 9a fa ff ff callq 400688 <pthread_join@plt>
400bee: 31 f6 xor %esi,%esi
400bf0: 48 8b 7d 48 mov 0x48(%rbp),%rdi
400bf4: e8 8f fa ff ff callq 400688 <pthread_join@plt>
400bf9: 48 89 ef mov %rbp,%rdi
400bfc: e8 57 fa ff ff callq 400658 <free@plt>
400c01: 48 89 df mov %rbx,%rdi
400c04: e8 4f fa ff ff callq 400658 <free@plt>
400c09: 4d 85 ed test %r13,%r13
400c0c: 74 08 je 400c16 <main+0x2d6>
400c0e: 4c 89 ef mov %r13,%rdi
400c11: e8 42 fa ff ff callq 400658 <free@plt>
400c16: 48 8b 7c 24 18 mov 0x18(%rsp),%rdi
400c1b: 48 85 ff test %rdi,%rdi
400c1e: 74 05 je 400c25 <main+0x2e5>
400c20: e8 33 fa ff ff callq 400658 <free@plt>
400c25: 48 83 c4 38 add $0x38,%rsp
400c29: 31 c0 xor %eax,%eax
400c2b: 5b pop %rbx
400c2c: 5d pop %rbp
400c2d: 41 5c pop %r12
400c2f: 41 5d pop %r13
400c31: c3 retq
400c32: 48 8b 7c 24 18 mov 0x18(%rsp),%rdi
400c37: 48 89 c3 mov %rax,%rbx
400c3a: 48 85 ff test %rdi,%rdi
400c3d: 74 05 je 400c44 <main+0x304>
400c3f: e8 14 fa ff ff callq 400658 <free@plt>
400c44: 48 89 df mov %rbx,%rdi
400c47: e8 5c fa ff ff callq 4006a8 <_Unwind_Resume@plt>
400c4c: 90 nop
400c4d: 90 nop
400c4e: 90 nop
400c4f: 90 nop
0000000000400c50 <__libc_csu_fini>:
400c50: f3 c3 repz retq
400c52: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
400c59: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
0000000000400c60 <__libc_csu_init>:
400c60: 4c 89 64 24 e0 mov %r12,-0x20(%rsp)
400c65: 4c 89 6c 24 e8 mov %r13,-0x18(%rsp)
400c6a: 4c 8d 25 8f 03 20 00 lea 0x20038f(%rip),%r12 # 601000 <__CTOR_LIST__>
400c71: 4c 89 74 24 f0 mov %r14,-0x10(%rsp)
400c76: 4c 89 7c 24 f8 mov %r15,-0x8(%rsp)
400c7b: 49 89 f6 mov %rsi,%r14
400c7e: 48 89 5c 24 d0 mov %rbx,-0x30(%rsp)
400c83: 48 89 6c 24 d8 mov %rbp,-0x28(%rsp)
400c88: 48 83 ec 38 sub $0x38,%rsp
400c8c: 41 89 ff mov %edi,%r15d
400c8f: 49 89 d5 mov %rdx,%r13
400c92: e8 69 f9 ff ff callq 400600 <_init>
400c97: 48 8d 05 62 03 20 00 lea 0x200362(%rip),%rax # 601000 <__CTOR_LIST__>
400c9e: 49 29 c4 sub %rax,%r12
400ca1: 49 c1 fc 03 sar $0x3,%r12
400ca5: 4d 85 e4 test %r12,%r12
400ca8: 74 1e je 400cc8 <__libc_csu_init+0x68>
400caa: 31 ed xor %ebp,%ebp
400cac: 48 89 c3 mov %rax,%rbx
400caf: 90 nop
400cb0: 48 83 c5 01 add $0x1,%rbp
400cb4: 4c 89 ea mov %r13,%rdx
400cb7: 4c 89 f6 mov %r14,%rsi
400cba: 44 89 ff mov %r15d,%edi
400cbd: ff 13 callq *(%rbx)
400cbf: 48 83 c3 08 add $0x8,%rbx
400cc3: 49 39 ec cmp %rbp,%r12
400cc6: 75 e8 jne 400cb0 <__libc_csu_init+0x50>
400cc8: 48 8b 5c 24 08 mov 0x8(%rsp),%rbx
400ccd: 48 8b 6c 24 10 mov 0x10(%rsp),%rbp
400cd2: 4c 8b 64 24 18 mov 0x18(%rsp),%r12
400cd7: 4c 8b 6c 24 20 mov 0x20(%rsp),%r13
400cdc: 4c 8b 74 24 28 mov 0x28(%rsp),%r14
400ce1: 4c 8b 7c 24 30 mov 0x30(%rsp),%r15
400ce6: 48 83 c4 38 add $0x38,%rsp
400cea: c3 retq
400ceb: 90 nop
400cec: 90 nop
400ced: 90 nop
400cee: 90 nop
400cef: 90 nop
0000000000400cf0 <__do_global_ctors_aux>:
400cf0: 55 push %rbp
400cf1: 48 89 e5 mov %rsp,%rbp
400cf4: 53 push %rbx
400cf5: bb 00 10 60 00 mov $0x601000,%ebx
400cfa: 48 83 ec 08 sub $0x8,%rsp
400cfe: 48 8b 05 fb 02 20 00 mov 0x2002fb(%rip),%rax # 601000 <__CTOR_LIST__>
400d05: 48 83 f8 ff cmp $0xffffffffffffffff,%rax
400d09: 74 14 je 400d1f <__do_global_ctors_aux+0x2f>
400d0b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
400d10: 48 83 eb 08 sub $0x8,%rbx
400d14: ff d0 callq *%rax
400d16: 48 8b 03 mov (%rbx),%rax
400d19: 48 83 f8 ff cmp $0xffffffffffffffff,%rax
400d1d: 75 f1 jne 400d10 <__do_global_ctors_aux+0x20>
400d1f: 48 83 c4 08 add $0x8,%rsp
400d23: 5b pop %rbx
400d24: c9 leaveq
400d25: c3 retq
400d26: 90 nop
400d27: 90 nop
Disassembly of section .fini:
0000000000400d28 <_fini>:
400d28: 48 83 ec 08 sub $0x8,%rsp
400d2c: e8 df f9 ff ff callq 400710 <__do_global_dtors_aux>
400d31: 48 83 c4 08 add $0x8,%rsp
400d35: c3 retq
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment