Skip to content

Instantly share code, notes, and snippets.

@usagi
Created December 23, 2012 05:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save usagi/4362192 to your computer and use it in GitHub Desktop.
Save usagi/4362192 to your computer and use it in GitHub Desktop.
master_c.O0: file format elf64-x86-64
Disassembly of section .init:
0000000000400568 <_init>:
400568: 48 83 ec 08 sub $0x8,%rsp
40056c: e8 bb 00 00 00 callq 40062c <call_gmon_start>
400571: 48 83 c4 08 add $0x8,%rsp
400575: c3 retq
Disassembly of section .plt:
0000000000400580 <free@plt-0x10>:
400580: ff 35 6a 0a 20 00 pushq 0x200a6a(%rip) # 600ff0 <_GLOBAL_OFFSET_TABLE_+0x8>
400586: ff 25 6c 0a 20 00 jmpq *0x200a6c(%rip) # 600ff8 <_GLOBAL_OFFSET_TABLE_+0x10>
40058c: 0f 1f 40 00 nopl 0x0(%rax)
0000000000400590 <free@plt>:
400590: ff 25 6a 0a 20 00 jmpq *0x200a6a(%rip) # 601000 <_GLOBAL_OFFSET_TABLE_+0x18>
400596: 68 00 00 00 00 pushq $0x0
40059b: e9 e0 ff ff ff jmpq 400580 <_init+0x18>
00000000004005a0 <puts@plt>:
4005a0: ff 25 62 0a 20 00 jmpq *0x200a62(%rip) # 601008 <_GLOBAL_OFFSET_TABLE_+0x20>
4005a6: 68 01 00 00 00 pushq $0x1
4005ab: e9 d0 ff ff ff jmpq 400580 <_init+0x18>
00000000004005b0 <clock@plt>:
4005b0: ff 25 5a 0a 20 00 jmpq *0x200a5a(%rip) # 601010 <_GLOBAL_OFFSET_TABLE_+0x28>
4005b6: 68 02 00 00 00 pushq $0x2
4005bb: e9 c0 ff ff ff jmpq 400580 <_init+0x18>
00000000004005c0 <printf@plt>:
4005c0: ff 25 52 0a 20 00 jmpq *0x200a52(%rip) # 601018 <_GLOBAL_OFFSET_TABLE_+0x30>
4005c6: 68 03 00 00 00 pushq $0x3
4005cb: e9 b0 ff ff ff jmpq 400580 <_init+0x18>
00000000004005d0 <__libc_start_main@plt>:
4005d0: ff 25 4a 0a 20 00 jmpq *0x200a4a(%rip) # 601020 <_GLOBAL_OFFSET_TABLE_+0x38>
4005d6: 68 04 00 00 00 pushq $0x4
4005db: e9 a0 ff ff ff jmpq 400580 <_init+0x18>
00000000004005e0 <calloc@plt>:
4005e0: ff 25 42 0a 20 00 jmpq *0x200a42(%rip) # 601028 <_GLOBAL_OFFSET_TABLE_+0x40>
4005e6: 68 05 00 00 00 pushq $0x5
4005eb: e9 90 ff ff ff jmpq 400580 <_init+0x18>
00000000004005f0 <setvbuf@plt>:
4005f0: ff 25 3a 0a 20 00 jmpq *0x200a3a(%rip) # 601030 <_GLOBAL_OFFSET_TABLE_+0x48>
4005f6: 68 06 00 00 00 pushq $0x6
4005fb: e9 80 ff ff ff jmpq 400580 <_init+0x18>
Disassembly of section .text:
0000000000400600 <_start>:
400600: 31 ed xor %ebp,%ebp
400602: 49 89 d1 mov %rdx,%r9
400605: 5e pop %rsi
400606: 48 89 e2 mov %rsp,%rdx
400609: 48 83 e4 f0 and $0xfffffffffffffff0,%rsp
40060d: 50 push %rax
40060e: 54 push %rsp
40060f: 49 c7 c0 80 09 40 00 mov $0x400980,%r8
400616: 48 c7 c1 f0 08 40 00 mov $0x4008f0,%rcx
40061d: 48 c7 c7 12 08 40 00 mov $0x400812,%rdi
400624: e8 a7 ff ff ff callq 4005d0 <__libc_start_main@plt>
400629: f4 hlt
40062a: 90 nop
40062b: 90 nop
000000000040062c <call_gmon_start>:
40062c: 48 83 ec 08 sub $0x8,%rsp
400630: 48 8b 05 a9 09 20 00 mov 0x2009a9(%rip),%rax # 600fe0 <_DYNAMIC+0x1e0>
400637: 48 85 c0 test %rax,%rax
40063a: 74 02 je 40063e <call_gmon_start+0x12>
40063c: ff d0 callq *%rax
40063e: 48 83 c4 08 add $0x8,%rsp
400642: c3 retq
400643: 90 nop
400644: 90 nop
400645: 90 nop
400646: 90 nop
400647: 90 nop
400648: 90 nop
400649: 90 nop
40064a: 90 nop
40064b: 90 nop
40064c: 90 nop
40064d: 90 nop
40064e: 90 nop
40064f: 90 nop
0000000000400650 <deregister_tm_clones>:
400650: b8 4f 10 60 00 mov $0x60104f,%eax
400655: 55 push %rbp
400656: 48 2d 48 10 60 00 sub $0x601048,%rax
40065c: 48 83 f8 0e cmp $0xe,%rax
400660: 48 89 e5 mov %rsp,%rbp
400663: 77 02 ja 400667 <deregister_tm_clones+0x17>
400665: 5d pop %rbp
400666: c3 retq
400667: b8 00 00 00 00 mov $0x0,%eax
40066c: 48 85 c0 test %rax,%rax
40066f: 74 f4 je 400665 <deregister_tm_clones+0x15>
400671: 5d pop %rbp
400672: bf 48 10 60 00 mov $0x601048,%edi
400677: ff e0 jmpq *%rax
400679: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
0000000000400680 <register_tm_clones>:
400680: b8 48 10 60 00 mov $0x601048,%eax
400685: 55 push %rbp
400686: 48 2d 48 10 60 00 sub $0x601048,%rax
40068c: 48 c1 f8 03 sar $0x3,%rax
400690: 48 89 e5 mov %rsp,%rbp
400693: 48 89 c2 mov %rax,%rdx
400696: 48 c1 ea 3f shr $0x3f,%rdx
40069a: 48 01 d0 add %rdx,%rax
40069d: 48 89 c6 mov %rax,%rsi
4006a0: 48 d1 fe sar %rsi
4006a3: 75 02 jne 4006a7 <register_tm_clones+0x27>
4006a5: 5d pop %rbp
4006a6: c3 retq
4006a7: ba 00 00 00 00 mov $0x0,%edx
4006ac: 48 85 d2 test %rdx,%rdx
4006af: 74 f4 je 4006a5 <register_tm_clones+0x25>
4006b1: 5d pop %rbp
4006b2: bf 48 10 60 00 mov $0x601048,%edi
4006b7: ff e2 jmpq *%rdx
4006b9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
00000000004006c0 <__do_global_dtors_aux>:
4006c0: 80 3d 91 09 20 00 00 cmpb $0x0,0x200991(%rip) # 601058 <completed.6098>
4006c7: 75 11 jne 4006da <__do_global_dtors_aux+0x1a>
4006c9: 55 push %rbp
4006ca: 48 89 e5 mov %rsp,%rbp
4006cd: e8 7e ff ff ff callq 400650 <deregister_tm_clones>
4006d2: 5d pop %rbp
4006d3: c6 05 7e 09 20 00 01 movb $0x1,0x20097e(%rip) # 601058 <completed.6098>
4006da: f3 c3 repz retq
4006dc: 0f 1f 40 00 nopl 0x0(%rax)
00000000004006e0 <frame_dummy>:
4006e0: 48 83 3d 10 07 20 00 cmpq $0x0,0x200710(%rip) # 600df8 <__JCR_END__>
4006e7: 00
4006e8: 74 1b je 400705 <frame_dummy+0x25>
4006ea: b8 00 00 00 00 mov $0x0,%eax
4006ef: 48 85 c0 test %rax,%rax
4006f2: 74 11 je 400705 <frame_dummy+0x25>
4006f4: 55 push %rbp
4006f5: bf f8 0d 60 00 mov $0x600df8,%edi
4006fa: 48 89 e5 mov %rsp,%rbp
4006fd: ff d0 callq *%rax
4006ff: 5d pop %rbp
400700: e9 7b ff ff ff jmpq 400680 <register_tm_clones>
400705: e9 76 ff ff ff jmpq 400680 <register_tm_clones>
40070a: 90 nop
40070b: 90 nop
000000000040070c <get_r>:
40070c: 55 push %rbp
40070d: 48 89 e5 mov %rsp,%rbp
400710: 89 f8 mov %edi,%eax
400712: 66 89 45 fc mov %ax,-0x4(%rbp)
400716: 0f b7 45 fc movzwl -0x4(%rbp),%eax
40071a: 66 c1 e8 08 shr $0x8,%ax
40071e: 0f b7 c0 movzwl %ax,%eax
400721: 25 f8 00 00 00 and $0xf8,%eax
400726: 5d pop %rbp
400727: c3 retq
0000000000400728 <get_g>:
400728: 55 push %rbp
400729: 48 89 e5 mov %rsp,%rbp
40072c: 89 f8 mov %edi,%eax
40072e: 66 89 45 fc mov %ax,-0x4(%rbp)
400732: 0f b7 45 fc movzwl -0x4(%rbp),%eax
400736: 66 c1 e8 03 shr $0x3,%ax
40073a: 0f b7 c0 movzwl %ax,%eax
40073d: 25 fc 00 00 00 and $0xfc,%eax
400742: 5d pop %rbp
400743: c3 retq
0000000000400744 <get_b>:
400744: 55 push %rbp
400745: 48 89 e5 mov %rsp,%rbp
400748: 89 f8 mov %edi,%eax
40074a: 66 89 45 fc mov %ax,-0x4(%rbp)
40074e: 0f b7 45 fc movzwl -0x4(%rbp),%eax
400752: c1 e0 03 shl $0x3,%eax
400755: 25 ff 00 00 00 and $0xff,%eax
40075a: 5d pop %rbp
40075b: c3 retq
000000000040075c <to_rgb>:
40075c: 55 push %rbp
40075d: 48 89 e5 mov %rsp,%rbp
400760: 89 7d fc mov %edi,-0x4(%rbp)
400763: 89 75 f8 mov %esi,-0x8(%rbp)
400766: 89 55 f4 mov %edx,-0xc(%rbp)
400769: 8b 45 fc mov -0x4(%rbp),%eax
40076c: c1 e0 08 shl $0x8,%eax
40076f: 89 c2 mov %eax,%edx
400771: 66 81 e2 00 f8 and $0xf800,%dx
400776: 8b 45 f8 mov -0x8(%rbp),%eax
400779: c1 e0 03 shl $0x3,%eax
40077c: 66 25 e0 07 and $0x7e0,%ax
400780: 09 c2 or %eax,%edx
400782: 8b 45 f4 mov -0xc(%rbp),%eax
400785: c1 e8 03 shr $0x3,%eax
400788: 09 d0 or %edx,%eax
40078a: 5d pop %rbp
40078b: c3 retq
000000000040078c <test_bitmap_color_transform_pure_c>:
40078c: 55 push %rbp
40078d: 48 89 e5 mov %rsp,%rbp
400790: 48 83 ec 28 sub $0x28,%rsp
400794: 48 89 7d d8 mov %rdi,-0x28(%rbp)
400798: 48 8b 45 d8 mov -0x28(%rbp),%rax
40079c: 48 89 45 f8 mov %rax,-0x8(%rbp)
4007a0: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%rbp)
4007a7: eb 5e jmp 400807 <test_bitmap_color_transform_pure_c+0x7b>
4007a9: 48 8b 45 f8 mov -0x8(%rbp),%rax
4007ad: 0f b7 00 movzwl (%rax),%eax
4007b0: 0f b7 c0 movzwl %ax,%eax
4007b3: 89 c7 mov %eax,%edi
4007b5: e8 52 ff ff ff callq 40070c <get_r>
4007ba: 89 45 f0 mov %eax,-0x10(%rbp)
4007bd: 48 8b 45 f8 mov -0x8(%rbp),%rax
4007c1: 0f b7 00 movzwl (%rax),%eax
4007c4: 0f b7 c0 movzwl %ax,%eax
4007c7: 89 c7 mov %eax,%edi
4007c9: e8 5a ff ff ff callq 400728 <get_g>
4007ce: 89 45 ec mov %eax,-0x14(%rbp)
4007d1: 48 8b 45 f8 mov -0x8(%rbp),%rax
4007d5: 0f b7 00 movzwl (%rax),%eax
4007d8: 0f b7 c0 movzwl %ax,%eax
4007db: 89 c7 mov %eax,%edi
4007dd: e8 62 ff ff ff callq 400744 <get_b>
4007e2: 89 45 e8 mov %eax,-0x18(%rbp)
4007e5: 8b 55 f0 mov -0x10(%rbp),%edx
4007e8: 8b 4d e8 mov -0x18(%rbp),%ecx
4007eb: 8b 45 ec mov -0x14(%rbp),%eax
4007ee: 89 ce mov %ecx,%esi
4007f0: 89 c7 mov %eax,%edi
4007f2: e8 65 ff ff ff callq 40075c <to_rgb>
4007f7: 48 8b 55 f8 mov -0x8(%rbp),%rdx
4007fb: 66 89 02 mov %ax,(%rdx)
4007fe: 83 45 f4 01 addl $0x1,-0xc(%rbp)
400802: 48 83 45 f8 02 addq $0x2,-0x8(%rbp)
400807: 81 7d f4 ff a3 1f 00 cmpl $0x1fa3ff,-0xc(%rbp)
40080e: 76 99 jbe 4007a9 <test_bitmap_color_transform_pure_c+0x1d>
400810: c9 leaveq
400811: c3 retq
0000000000400812 <main>:
400812: 55 push %rbp
400813: 48 89 e5 mov %rsp,%rbp
400816: 48 83 ec 20 sub $0x20,%rsp
40081a: be 02 00 00 00 mov $0x2,%esi
40081f: bf 00 a4 1f 00 mov $0x1fa400,%edi
400824: e8 b7 fd ff ff callq 4005e0 <calloc@plt>
400829: 48 89 45 e8 mov %rax,-0x18(%rbp)
40082d: 48 8b 05 1c 08 20 00 mov 0x20081c(%rip),%rax # 601050 <stdout@@GLIBC_2.2.5>
400834: b9 00 00 00 00 mov $0x0,%ecx
400839: ba 02 00 00 00 mov $0x2,%edx
40083e: be 00 00 00 00 mov $0x0,%esi
400843: 48 89 c7 mov %rax,%rdi
400846: e8 a5 fd ff ff callq 4005f0 <setvbuf@plt>
40084b: bf a0 09 40 00 mov $0x4009a0,%edi
400850: e8 4b fd ff ff callq 4005a0 <puts@plt>
400855: c7 45 fc e8 03 00 00 movl $0x3e8,-0x4(%rbp)
40085c: 48 c7 45 f0 00 00 00 movq $0x0,-0x10(%rbp)
400863: 00
400864: eb 3a jmp 4008a0 <main+0x8e>
400866: e8 45 fd ff ff callq 4005b0 <clock@plt>
40086b: 48 89 45 e0 mov %rax,-0x20(%rbp)
40086f: 48 8b 45 e8 mov -0x18(%rbp),%rax
400873: 48 89 c7 mov %rax,%rdi
400876: e8 11 ff ff ff callq 40078c <test_bitmap_color_transform_pure_c>
40087b: e8 30 fd ff ff callq 4005b0 <clock@plt>
400880: 48 2b 45 e0 sub -0x20(%rbp),%rax
400884: 48 01 45 f0 add %rax,-0x10(%rbp)
400888: 8b 45 fc mov -0x4(%rbp),%eax
40088b: 89 c6 mov %eax,%esi
40088d: bf a6 09 40 00 mov $0x4009a6,%edi
400892: b8 00 00 00 00 mov $0x0,%eax
400897: e8 24 fd ff ff callq 4005c0 <printf@plt>
40089c: 83 6d fc 01 subl $0x1,-0x4(%rbp)
4008a0: 83 7d fc 00 cmpl $0x0,-0x4(%rbp)
4008a4: 75 c0 jne 400866 <main+0x54>
4008a6: bf b2 09 40 00 mov $0x4009b2,%edi
4008ab: e8 f0 fc ff ff callq 4005a0 <puts@plt>
4008b0: 48 8b 45 e8 mov -0x18(%rbp),%rax
4008b4: 48 89 c7 mov %rax,%rdi
4008b7: e8 d4 fc ff ff callq 400590 <free@plt>
4008bc: f2 48 0f 2a 45 f0 cvtsi2sdq -0x10(%rbp),%xmm0
4008c2: f2 0f 10 0d 16 01 00 movsd 0x116(%rip),%xmm1 # 4009e0 <_IO_stdin_used+0x48>
4008c9: 00
4008ca: f2 0f 5e c1 divsd %xmm1,%xmm0
4008ce: f2 0f 10 0d 12 01 00 movsd 0x112(%rip),%xmm1 # 4009e8 <_IO_stdin_used+0x50>
4008d5: 00
4008d6: f2 0f 5e c1 divsd %xmm1,%xmm0
4008da: bf c3 09 40 00 mov $0x4009c3,%edi
4008df: b8 01 00 00 00 mov $0x1,%eax
4008e4: e8 d7 fc ff ff callq 4005c0 <printf@plt>
4008e9: b8 00 00 00 00 mov $0x0,%eax
4008ee: c9 leaveq
4008ef: c3 retq
00000000004008f0 <__libc_csu_init>:
4008f0: 48 89 6c 24 d8 mov %rbp,-0x28(%rsp)
4008f5: 4c 89 64 24 e0 mov %r12,-0x20(%rsp)
4008fa: 48 8d 2d ef 04 20 00 lea 0x2004ef(%rip),%rbp # 600df0 <__init_array_end>
400901: 4c 8d 25 e0 04 20 00 lea 0x2004e0(%rip),%r12 # 600de8 <__frame_dummy_init_array_entry>
400908: 48 89 5c 24 d0 mov %rbx,-0x30(%rsp)
40090d: 4c 89 6c 24 e8 mov %r13,-0x18(%rsp)
400912: 4c 89 74 24 f0 mov %r14,-0x10(%rsp)
400917: 4c 89 7c 24 f8 mov %r15,-0x8(%rsp)
40091c: 48 83 ec 38 sub $0x38,%rsp
400920: 4c 29 e5 sub %r12,%rbp
400923: 41 89 ff mov %edi,%r15d
400926: 49 89 f6 mov %rsi,%r14
400929: 48 c1 fd 03 sar $0x3,%rbp
40092d: 49 89 d5 mov %rdx,%r13
400930: 31 db xor %ebx,%ebx
400932: e8 31 fc ff ff callq 400568 <_init>
400937: 48 85 ed test %rbp,%rbp
40093a: 74 1a je 400956 <__libc_csu_init+0x66>
40093c: 0f 1f 40 00 nopl 0x0(%rax)
400940: 4c 89 ea mov %r13,%rdx
400943: 4c 89 f6 mov %r14,%rsi
400946: 44 89 ff mov %r15d,%edi
400949: 41 ff 14 dc callq *(%r12,%rbx,8)
40094d: 48 83 c3 01 add $0x1,%rbx
400951: 48 39 eb cmp %rbp,%rbx
400954: 75 ea jne 400940 <__libc_csu_init+0x50>
400956: 48 8b 5c 24 08 mov 0x8(%rsp),%rbx
40095b: 48 8b 6c 24 10 mov 0x10(%rsp),%rbp
400960: 4c 8b 64 24 18 mov 0x18(%rsp),%r12
400965: 4c 8b 6c 24 20 mov 0x20(%rsp),%r13
40096a: 4c 8b 74 24 28 mov 0x28(%rsp),%r14
40096f: 4c 8b 7c 24 30 mov 0x30(%rsp),%r15
400974: 48 83 c4 38 add $0x38,%rsp
400978: c3 retq
400979: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
0000000000400980 <__libc_csu_fini>:
400980: f3 c3 repz retq
400982: 90 nop
400983: 90 nop
Disassembly of section .fini:
0000000000400984 <_fini>:
400984: 55 push %rbp
400985: 48 83 ec 08 sub $0x8,%rsp
400989: e8 06 00 00 00 callq 400994 <_real_fini>
40098e: 48 83 c4 08 add $0x8,%rsp
400992: 5d pop %rbp
400993: c3 retq
0000000000400994 <_real_fini>:
400994: c3 retq
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment