Skip to content

Instantly share code, notes, and snippets.

@usagi
Created December 23, 2012 06:39
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/4362318 to your computer and use it in GitHub Desktop.
Save usagi/4362318 to your computer and use it in GitHub Desktop.
master_macro_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 10 09 40 00 mov $0x400910,%r8
400616: 48 c7 c1 80 08 40 00 mov $0x400880,%rcx
40061d: 48 c7 c7 a2 07 40 00 mov $0x4007a2,%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 <test_bitmap_color_transform_macro_c>:
40070c: 55 push %rbp
40070d: 48 89 e5 mov %rsp,%rbp
400710: 48 89 7d d8 mov %rdi,-0x28(%rbp)
400714: 48 8b 45 d8 mov -0x28(%rbp),%rax
400718: 48 89 45 f8 mov %rax,-0x8(%rbp)
40071c: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%rbp)
400723: eb 72 jmp 400797 <test_bitmap_color_transform_macro_c+0x8b>
400725: 48 8b 45 f8 mov -0x8(%rbp),%rax
400729: 0f b7 00 movzwl (%rax),%eax
40072c: 66 c1 e8 08 shr $0x8,%ax
400730: 0f b7 c0 movzwl %ax,%eax
400733: 25 f8 00 00 00 and $0xf8,%eax
400738: 89 45 f0 mov %eax,-0x10(%rbp)
40073b: 48 8b 45 f8 mov -0x8(%rbp),%rax
40073f: 0f b7 00 movzwl (%rax),%eax
400742: 66 c1 e8 03 shr $0x3,%ax
400746: 0f b7 c0 movzwl %ax,%eax
400749: 25 fc 00 00 00 and $0xfc,%eax
40074e: 89 45 ec mov %eax,-0x14(%rbp)
400751: 48 8b 45 f8 mov -0x8(%rbp),%rax
400755: 0f b7 00 movzwl (%rax),%eax
400758: 0f b7 c0 movzwl %ax,%eax
40075b: c1 e0 03 shl $0x3,%eax
40075e: 25 ff 00 00 00 and $0xff,%eax
400763: 89 45 e8 mov %eax,-0x18(%rbp)
400766: 8b 45 ec mov -0x14(%rbp),%eax
400769: c1 e0 08 shl $0x8,%eax
40076c: 89 c2 mov %eax,%edx
40076e: 66 81 e2 00 f8 and $0xf800,%dx
400773: 8b 45 e8 mov -0x18(%rbp),%eax
400776: c1 e0 03 shl $0x3,%eax
400779: 66 25 e0 07 and $0x7e0,%ax
40077d: 09 c2 or %eax,%edx
40077f: 8b 45 f0 mov -0x10(%rbp),%eax
400782: c1 e8 03 shr $0x3,%eax
400785: 09 c2 or %eax,%edx
400787: 48 8b 45 f8 mov -0x8(%rbp),%rax
40078b: 66 89 10 mov %dx,(%rax)
40078e: 83 45 f4 01 addl $0x1,-0xc(%rbp)
400792: 48 83 45 f8 02 addq $0x2,-0x8(%rbp)
400797: 81 7d f4 ff a3 1f 00 cmpl $0x1fa3ff,-0xc(%rbp)
40079e: 76 85 jbe 400725 <test_bitmap_color_transform_macro_c+0x19>
4007a0: 5d pop %rbp
4007a1: c3 retq
00000000004007a2 <main>:
4007a2: 55 push %rbp
4007a3: 48 89 e5 mov %rsp,%rbp
4007a6: 48 83 ec 20 sub $0x20,%rsp
4007aa: be 02 00 00 00 mov $0x2,%esi
4007af: bf 00 a4 1f 00 mov $0x1fa400,%edi
4007b4: e8 27 fe ff ff callq 4005e0 <calloc@plt>
4007b9: 48 89 45 e8 mov %rax,-0x18(%rbp)
4007bd: 48 8b 05 8c 08 20 00 mov 0x20088c(%rip),%rax # 601050 <stdout@@GLIBC_2.2.5>
4007c4: b9 00 00 00 00 mov $0x0,%ecx
4007c9: ba 02 00 00 00 mov $0x2,%edx
4007ce: be 00 00 00 00 mov $0x0,%esi
4007d3: 48 89 c7 mov %rax,%rdi
4007d6: e8 15 fe ff ff callq 4005f0 <setvbuf@plt>
4007db: bf 30 09 40 00 mov $0x400930,%edi
4007e0: e8 bb fd ff ff callq 4005a0 <puts@plt>
4007e5: c7 45 fc e8 03 00 00 movl $0x3e8,-0x4(%rbp)
4007ec: 48 c7 45 f0 00 00 00 movq $0x0,-0x10(%rbp)
4007f3: 00
4007f4: eb 3a jmp 400830 <main+0x8e>
4007f6: e8 b5 fd ff ff callq 4005b0 <clock@plt>
4007fb: 48 89 45 e0 mov %rax,-0x20(%rbp)
4007ff: 48 8b 45 e8 mov -0x18(%rbp),%rax
400803: 48 89 c7 mov %rax,%rdi
400806: e8 01 ff ff ff callq 40070c <test_bitmap_color_transform_macro_c>
40080b: e8 a0 fd ff ff callq 4005b0 <clock@plt>
400810: 48 2b 45 e0 sub -0x20(%rbp),%rax
400814: 48 01 45 f0 add %rax,-0x10(%rbp)
400818: 8b 45 fc mov -0x4(%rbp),%eax
40081b: 89 c6 mov %eax,%esi
40081d: bf 36 09 40 00 mov $0x400936,%edi
400822: b8 00 00 00 00 mov $0x0,%eax
400827: e8 94 fd ff ff callq 4005c0 <printf@plt>
40082c: 83 6d fc 01 subl $0x1,-0x4(%rbp)
400830: 83 7d fc 00 cmpl $0x0,-0x4(%rbp)
400834: 75 c0 jne 4007f6 <main+0x54>
400836: bf 42 09 40 00 mov $0x400942,%edi
40083b: e8 60 fd ff ff callq 4005a0 <puts@plt>
400840: 48 8b 45 e8 mov -0x18(%rbp),%rax
400844: 48 89 c7 mov %rax,%rdi
400847: e8 44 fd ff ff callq 400590 <free@plt>
40084c: f2 48 0f 2a 45 f0 cvtsi2sdq -0x10(%rbp),%xmm0
400852: f2 0f 10 0d 16 01 00 movsd 0x116(%rip),%xmm1 # 400970 <_IO_stdin_used+0x48>
400859: 00
40085a: f2 0f 5e c1 divsd %xmm1,%xmm0
40085e: f2 0f 10 0d 12 01 00 movsd 0x112(%rip),%xmm1 # 400978 <_IO_stdin_used+0x50>
400865: 00
400866: f2 0f 5e c1 divsd %xmm1,%xmm0
40086a: bf 53 09 40 00 mov $0x400953,%edi
40086f: b8 01 00 00 00 mov $0x1,%eax
400874: e8 47 fd ff ff callq 4005c0 <printf@plt>
400879: b8 00 00 00 00 mov $0x0,%eax
40087e: c9 leaveq
40087f: c3 retq
0000000000400880 <__libc_csu_init>:
400880: 48 89 6c 24 d8 mov %rbp,-0x28(%rsp)
400885: 4c 89 64 24 e0 mov %r12,-0x20(%rsp)
40088a: 48 8d 2d 5f 05 20 00 lea 0x20055f(%rip),%rbp # 600df0 <__init_array_end>
400891: 4c 8d 25 50 05 20 00 lea 0x200550(%rip),%r12 # 600de8 <__frame_dummy_init_array_entry>
400898: 48 89 5c 24 d0 mov %rbx,-0x30(%rsp)
40089d: 4c 89 6c 24 e8 mov %r13,-0x18(%rsp)
4008a2: 4c 89 74 24 f0 mov %r14,-0x10(%rsp)
4008a7: 4c 89 7c 24 f8 mov %r15,-0x8(%rsp)
4008ac: 48 83 ec 38 sub $0x38,%rsp
4008b0: 4c 29 e5 sub %r12,%rbp
4008b3: 41 89 ff mov %edi,%r15d
4008b6: 49 89 f6 mov %rsi,%r14
4008b9: 48 c1 fd 03 sar $0x3,%rbp
4008bd: 49 89 d5 mov %rdx,%r13
4008c0: 31 db xor %ebx,%ebx
4008c2: e8 a1 fc ff ff callq 400568 <_init>
4008c7: 48 85 ed test %rbp,%rbp
4008ca: 74 1a je 4008e6 <__libc_csu_init+0x66>
4008cc: 0f 1f 40 00 nopl 0x0(%rax)
4008d0: 4c 89 ea mov %r13,%rdx
4008d3: 4c 89 f6 mov %r14,%rsi
4008d6: 44 89 ff mov %r15d,%edi
4008d9: 41 ff 14 dc callq *(%r12,%rbx,8)
4008dd: 48 83 c3 01 add $0x1,%rbx
4008e1: 48 39 eb cmp %rbp,%rbx
4008e4: 75 ea jne 4008d0 <__libc_csu_init+0x50>
4008e6: 48 8b 5c 24 08 mov 0x8(%rsp),%rbx
4008eb: 48 8b 6c 24 10 mov 0x10(%rsp),%rbp
4008f0: 4c 8b 64 24 18 mov 0x18(%rsp),%r12
4008f5: 4c 8b 6c 24 20 mov 0x20(%rsp),%r13
4008fa: 4c 8b 74 24 28 mov 0x28(%rsp),%r14
4008ff: 4c 8b 7c 24 30 mov 0x30(%rsp),%r15
400904: 48 83 c4 38 add $0x38,%rsp
400908: c3 retq
400909: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
0000000000400910 <__libc_csu_fini>:
400910: f3 c3 repz retq
400912: 90 nop
400913: 90 nop
Disassembly of section .fini:
0000000000400914 <_fini>:
400914: 55 push %rbp
400915: 48 83 ec 08 sub $0x8,%rsp
400919: e8 06 00 00 00 callq 400924 <_real_fini>
40091e: 48 83 c4 08 add $0x8,%rsp
400922: 5d pop %rbp
400923: c3 retq
0000000000400924 <_real_fini>:
400924: c3 retq
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment