Skip to content

Instantly share code, notes, and snippets.

@usagi
Created December 23, 2012 05:49
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/4362197 to your computer and use it in GitHub Desktop.
Save usagi/4362197 to your computer and use it in GitHub Desktop.
master_c.O1: 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 00 09 40 00 mov $0x400900,%r8
400616: 48 c7 c1 70 08 40 00 mov $0x400870,%rcx
40061d: 48 c7 c7 9e 07 40 00 mov $0x40079e,%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: 66 c1 ef 08 shr $0x8,%di
400710: 89 f8 mov %edi,%eax
400712: 25 f8 00 00 00 and $0xf8,%eax
400717: c3 retq
0000000000400718 <get_g>:
400718: 66 c1 ef 03 shr $0x3,%di
40071c: 89 f8 mov %edi,%eax
40071e: 25 fc 00 00 00 and $0xfc,%eax
400723: c3 retq
0000000000400724 <get_b>:
400724: 8d 04 fd 00 00 00 00 lea 0x0(,%rdi,8),%eax
40072b: 25 f8 00 00 00 and $0xf8,%eax
400730: c3 retq
0000000000400731 <to_rgb>:
400731: 8d 04 f5 00 00 00 00 lea 0x0(,%rsi,8),%eax
400738: 66 25 e0 07 and $0x7e0,%ax
40073c: c1 ea 03 shr $0x3,%edx
40073f: 09 d0 or %edx,%eax
400741: c1 e7 08 shl $0x8,%edi
400744: 66 81 e7 00 f8 and $0xf800,%di
400749: 09 f8 or %edi,%eax
40074b: c3 retq
000000000040074c <test_bitmap_color_transform_pure_c>:
40074c: 41 56 push %r14
40074e: 41 55 push %r13
400750: 41 54 push %r12
400752: 55 push %rbp
400753: 53 push %rbx
400754: 4c 8d b7 00 48 3f 00 lea 0x3f4800(%rdi),%r14
40075b: 48 89 fb mov %rdi,%rbx
40075e: 0f b7 2b movzwl (%rbx),%ebp
400761: 89 ef mov %ebp,%edi
400763: e8 a4 ff ff ff callq 40070c <get_r>
400768: 41 89 c5 mov %eax,%r13d
40076b: 89 ef mov %ebp,%edi
40076d: e8 a6 ff ff ff callq 400718 <get_g>
400772: 41 89 c4 mov %eax,%r12d
400775: 89 ef mov %ebp,%edi
400777: e8 a8 ff ff ff callq 400724 <get_b>
40077c: 44 89 ea mov %r13d,%edx
40077f: 89 c6 mov %eax,%esi
400781: 44 89 e7 mov %r12d,%edi
400784: e8 a8 ff ff ff callq 400731 <to_rgb>
400789: 66 89 03 mov %ax,(%rbx)
40078c: 48 83 c3 02 add $0x2,%rbx
400790: 4c 39 f3 cmp %r14,%rbx
400793: 75 c9 jne 40075e <test_bitmap_color_transform_pure_c+0x12>
400795: 5b pop %rbx
400796: 5d pop %rbp
400797: 41 5c pop %r12
400799: 41 5d pop %r13
40079b: 41 5e pop %r14
40079d: c3 retq
000000000040079e <main>:
40079e: 41 55 push %r13
4007a0: 41 54 push %r12
4007a2: 55 push %rbp
4007a3: 53 push %rbx
4007a4: 48 83 ec 08 sub $0x8,%rsp
4007a8: be 02 00 00 00 mov $0x2,%esi
4007ad: bf 00 a4 1f 00 mov $0x1fa400,%edi
4007b2: e8 29 fe ff ff callq 4005e0 <calloc@plt>
4007b7: 49 89 c5 mov %rax,%r13
4007ba: b9 00 00 00 00 mov $0x0,%ecx
4007bf: ba 02 00 00 00 mov $0x2,%edx
4007c4: be 00 00 00 00 mov $0x0,%esi
4007c9: 48 8b 3d 80 08 20 00 mov 0x200880(%rip),%rdi # 601050 <stdout@@GLIBC_2.2.5>
4007d0: e8 1b fe ff ff callq 4005f0 <setvbuf@plt>
4007d5: bf 1c 09 40 00 mov $0x40091c,%edi
4007da: e8 c1 fd ff ff callq 4005a0 <puts@plt>
4007df: bd 00 00 00 00 mov $0x0,%ebp
4007e4: bb e8 03 00 00 mov $0x3e8,%ebx
4007e9: e8 c2 fd ff ff callq 4005b0 <clock@plt>
4007ee: 49 89 c4 mov %rax,%r12
4007f1: 4c 89 ef mov %r13,%rdi
4007f4: e8 53 ff ff ff callq 40074c <test_bitmap_color_transform_pure_c>
4007f9: e8 b2 fd ff ff callq 4005b0 <clock@plt>
4007fe: 48 89 c2 mov %rax,%rdx
400801: 4c 29 e2 sub %r12,%rdx
400804: 48 01 d5 add %rdx,%rbp
400807: 89 de mov %ebx,%esi
400809: bf 22 09 40 00 mov $0x400922,%edi
40080e: b8 00 00 00 00 mov $0x0,%eax
400813: e8 a8 fd ff ff callq 4005c0 <printf@plt>
400818: 83 eb 01 sub $0x1,%ebx
40081b: 75 cc jne 4007e9 <main+0x4b>
40081d: bf 2e 09 40 00 mov $0x40092e,%edi
400822: e8 79 fd ff ff callq 4005a0 <puts@plt>
400827: 4c 89 ef mov %r13,%rdi
40082a: e8 61 fd ff ff callq 400590 <free@plt>
40082f: f2 48 0f 2a c5 cvtsi2sd %rbp,%xmm0
400834: f2 0f 5e 05 24 01 00 divsd 0x124(%rip),%xmm0 # 400960 <_IO_stdin_used+0x48>
40083b: 00
40083c: f2 0f 5e 05 24 01 00 divsd 0x124(%rip),%xmm0 # 400968 <_IO_stdin_used+0x50>
400843: 00
400844: bf 3f 09 40 00 mov $0x40093f,%edi
400849: b8 01 00 00 00 mov $0x1,%eax
40084e: e8 6d fd ff ff callq 4005c0 <printf@plt>
400853: b8 00 00 00 00 mov $0x0,%eax
400858: 48 83 c4 08 add $0x8,%rsp
40085c: 5b pop %rbx
40085d: 5d pop %rbp
40085e: 41 5c pop %r12
400860: 41 5d pop %r13
400862: c3 retq
400863: 90 nop
400864: 90 nop
400865: 90 nop
400866: 90 nop
400867: 90 nop
400868: 90 nop
400869: 90 nop
40086a: 90 nop
40086b: 90 nop
40086c: 90 nop
40086d: 90 nop
40086e: 90 nop
40086f: 90 nop
0000000000400870 <__libc_csu_init>:
400870: 48 89 6c 24 d8 mov %rbp,-0x28(%rsp)
400875: 4c 89 64 24 e0 mov %r12,-0x20(%rsp)
40087a: 48 8d 2d 6f 05 20 00 lea 0x20056f(%rip),%rbp # 600df0 <__init_array_end>
400881: 4c 8d 25 60 05 20 00 lea 0x200560(%rip),%r12 # 600de8 <__frame_dummy_init_array_entry>
400888: 48 89 5c 24 d0 mov %rbx,-0x30(%rsp)
40088d: 4c 89 6c 24 e8 mov %r13,-0x18(%rsp)
400892: 4c 89 74 24 f0 mov %r14,-0x10(%rsp)
400897: 4c 89 7c 24 f8 mov %r15,-0x8(%rsp)
40089c: 48 83 ec 38 sub $0x38,%rsp
4008a0: 4c 29 e5 sub %r12,%rbp
4008a3: 41 89 ff mov %edi,%r15d
4008a6: 49 89 f6 mov %rsi,%r14
4008a9: 48 c1 fd 03 sar $0x3,%rbp
4008ad: 49 89 d5 mov %rdx,%r13
4008b0: 31 db xor %ebx,%ebx
4008b2: e8 b1 fc ff ff callq 400568 <_init>
4008b7: 48 85 ed test %rbp,%rbp
4008ba: 74 1a je 4008d6 <__libc_csu_init+0x66>
4008bc: 0f 1f 40 00 nopl 0x0(%rax)
4008c0: 4c 89 ea mov %r13,%rdx
4008c3: 4c 89 f6 mov %r14,%rsi
4008c6: 44 89 ff mov %r15d,%edi
4008c9: 41 ff 14 dc callq *(%r12,%rbx,8)
4008cd: 48 83 c3 01 add $0x1,%rbx
4008d1: 48 39 eb cmp %rbp,%rbx
4008d4: 75 ea jne 4008c0 <__libc_csu_init+0x50>
4008d6: 48 8b 5c 24 08 mov 0x8(%rsp),%rbx
4008db: 48 8b 6c 24 10 mov 0x10(%rsp),%rbp
4008e0: 4c 8b 64 24 18 mov 0x18(%rsp),%r12
4008e5: 4c 8b 6c 24 20 mov 0x20(%rsp),%r13
4008ea: 4c 8b 74 24 28 mov 0x28(%rsp),%r14
4008ef: 4c 8b 7c 24 30 mov 0x30(%rsp),%r15
4008f4: 48 83 c4 38 add $0x38,%rsp
4008f8: c3 retq
4008f9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
0000000000400900 <__libc_csu_fini>:
400900: f3 c3 repz retq
400902: 90 nop
400903: 90 nop
Disassembly of section .fini:
0000000000400904 <_fini>:
400904: 55 push %rbp
400905: 48 83 ec 08 sub $0x8,%rsp
400909: e8 06 00 00 00 callq 400914 <_real_fini>
40090e: 48 83 c4 08 add $0x8,%rsp
400912: 5d pop %rbp
400913: c3 retq
0000000000400914 <_real_fini>:
400914: c3 retq
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment