Skip to content

Instantly share code, notes, and snippets.

@usagi
Created December 23, 2012 05:50
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/4362200 to your computer and use it in GitHub Desktop.
Save usagi/4362200 to your computer and use it in GitHub Desktop.
master_c.O2: file format elf64-x86-64
Disassembly of section .init:
0000000000400568 <_init>:
400568: 48 83 ec 08 sub $0x8,%rsp
40056c: e8 77 01 00 00 callq 4006e8 <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 <main>:
400600: 41 55 push %r13
400602: be 02 00 00 00 mov $0x2,%esi
400607: bf 00 a4 1f 00 mov $0x1fa400,%edi
40060c: 41 54 push %r12
40060e: 55 push %rbp
40060f: 31 ed xor %ebp,%ebp
400611: 53 push %rbx
400612: bb e8 03 00 00 mov $0x3e8,%ebx
400617: 48 83 ec 08 sub $0x8,%rsp
40061b: e8 c0 ff ff ff callq 4005e0 <calloc@plt>
400620: 48 8b 3d 29 0a 20 00 mov 0x200a29(%rip),%rdi # 601050 <stdout@@GLIBC_2.2.5>
400627: 31 c9 xor %ecx,%ecx
400629: ba 02 00 00 00 mov $0x2,%edx
40062e: 31 f6 xor %esi,%esi
400630: 49 89 c5 mov %rax,%r13
400633: e8 b8 ff ff ff callq 4005f0 <setvbuf@plt>
400638: bf 0c 09 40 00 mov $0x40090c,%edi
40063d: e8 5e ff ff ff callq 4005a0 <puts@plt>
400642: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
400648: e8 63 ff ff ff callq 4005b0 <clock@plt>
40064d: 4c 89 ef mov %r13,%rdi
400650: 49 89 c4 mov %rax,%r12
400653: e8 b8 01 00 00 callq 400810 <test_bitmap_color_transform_pure_c>
400658: e8 53 ff ff ff callq 4005b0 <clock@plt>
40065d: 4c 29 e0 sub %r12,%rax
400660: 89 de mov %ebx,%esi
400662: bf 12 09 40 00 mov $0x400912,%edi
400667: 48 01 c5 add %rax,%rbp
40066a: 31 c0 xor %eax,%eax
40066c: e8 4f ff ff ff callq 4005c0 <printf@plt>
400671: 83 eb 01 sub $0x1,%ebx
400674: 75 d2 jne 400648 <main+0x48>
400676: bf 1e 09 40 00 mov $0x40091e,%edi
40067b: e8 20 ff ff ff callq 4005a0 <puts@plt>
400680: 4c 89 ef mov %r13,%rdi
400683: e8 08 ff ff ff callq 400590 <free@plt>
400688: f2 48 0f 2a c5 cvtsi2sd %rbp,%xmm0
40068d: bf 2f 09 40 00 mov $0x40092f,%edi
400692: b8 01 00 00 00 mov $0x1,%eax
400697: f2 0f 5e 05 b1 02 00 divsd 0x2b1(%rip),%xmm0 # 400950 <_IO_stdin_used+0x48>
40069e: 00
40069f: f2 0f 5e 05 b1 02 00 divsd 0x2b1(%rip),%xmm0 # 400958 <_IO_stdin_used+0x50>
4006a6: 00
4006a7: e8 14 ff ff ff callq 4005c0 <printf@plt>
4006ac: 48 83 c4 08 add $0x8,%rsp
4006b0: 31 c0 xor %eax,%eax
4006b2: 5b pop %rbx
4006b3: 5d pop %rbp
4006b4: 41 5c pop %r12
4006b6: 41 5d pop %r13
4006b8: c3 retq
4006b9: 90 nop
4006ba: 90 nop
4006bb: 90 nop
00000000004006bc <_start>:
4006bc: 31 ed xor %ebp,%ebp
4006be: 49 89 d1 mov %rdx,%r9
4006c1: 5e pop %rsi
4006c2: 48 89 e2 mov %rsp,%rdx
4006c5: 48 83 e4 f0 and $0xfffffffffffffff0,%rsp
4006c9: 50 push %rax
4006ca: 54 push %rsp
4006cb: 49 c7 c0 f0 08 40 00 mov $0x4008f0,%r8
4006d2: 48 c7 c1 60 08 40 00 mov $0x400860,%rcx
4006d9: 48 c7 c7 00 06 40 00 mov $0x400600,%rdi
4006e0: e8 eb fe ff ff callq 4005d0 <__libc_start_main@plt>
4006e5: f4 hlt
4006e6: 90 nop
4006e7: 90 nop
00000000004006e8 <call_gmon_start>:
4006e8: 48 83 ec 08 sub $0x8,%rsp
4006ec: 48 8b 05 ed 08 20 00 mov 0x2008ed(%rip),%rax # 600fe0 <_DYNAMIC+0x1e0>
4006f3: 48 85 c0 test %rax,%rax
4006f6: 74 02 je 4006fa <call_gmon_start+0x12>
4006f8: ff d0 callq *%rax
4006fa: 48 83 c4 08 add $0x8,%rsp
4006fe: c3 retq
4006ff: 90 nop
0000000000400700 <deregister_tm_clones>:
400700: b8 4f 10 60 00 mov $0x60104f,%eax
400705: 55 push %rbp
400706: 48 2d 48 10 60 00 sub $0x601048,%rax
40070c: 48 83 f8 0e cmp $0xe,%rax
400710: 48 89 e5 mov %rsp,%rbp
400713: 77 02 ja 400717 <deregister_tm_clones+0x17>
400715: 5d pop %rbp
400716: c3 retq
400717: b8 00 00 00 00 mov $0x0,%eax
40071c: 48 85 c0 test %rax,%rax
40071f: 74 f4 je 400715 <deregister_tm_clones+0x15>
400721: 5d pop %rbp
400722: bf 48 10 60 00 mov $0x601048,%edi
400727: ff e0 jmpq *%rax
400729: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
0000000000400730 <register_tm_clones>:
400730: b8 48 10 60 00 mov $0x601048,%eax
400735: 55 push %rbp
400736: 48 2d 48 10 60 00 sub $0x601048,%rax
40073c: 48 c1 f8 03 sar $0x3,%rax
400740: 48 89 e5 mov %rsp,%rbp
400743: 48 89 c2 mov %rax,%rdx
400746: 48 c1 ea 3f shr $0x3f,%rdx
40074a: 48 01 d0 add %rdx,%rax
40074d: 48 89 c6 mov %rax,%rsi
400750: 48 d1 fe sar %rsi
400753: 75 02 jne 400757 <register_tm_clones+0x27>
400755: 5d pop %rbp
400756: c3 retq
400757: ba 00 00 00 00 mov $0x0,%edx
40075c: 48 85 d2 test %rdx,%rdx
40075f: 74 f4 je 400755 <register_tm_clones+0x25>
400761: 5d pop %rbp
400762: bf 48 10 60 00 mov $0x601048,%edi
400767: ff e2 jmpq *%rdx
400769: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
0000000000400770 <__do_global_dtors_aux>:
400770: 80 3d e1 08 20 00 00 cmpb $0x0,0x2008e1(%rip) # 601058 <completed.6098>
400777: 75 11 jne 40078a <__do_global_dtors_aux+0x1a>
400779: 55 push %rbp
40077a: 48 89 e5 mov %rsp,%rbp
40077d: e8 7e ff ff ff callq 400700 <deregister_tm_clones>
400782: 5d pop %rbp
400783: c6 05 ce 08 20 00 01 movb $0x1,0x2008ce(%rip) # 601058 <completed.6098>
40078a: f3 c3 repz retq
40078c: 0f 1f 40 00 nopl 0x0(%rax)
0000000000400790 <frame_dummy>:
400790: 48 83 3d 60 06 20 00 cmpq $0x0,0x200660(%rip) # 600df8 <__JCR_END__>
400797: 00
400798: 74 1b je 4007b5 <frame_dummy+0x25>
40079a: b8 00 00 00 00 mov $0x0,%eax
40079f: 48 85 c0 test %rax,%rax
4007a2: 74 11 je 4007b5 <frame_dummy+0x25>
4007a4: 55 push %rbp
4007a5: bf f8 0d 60 00 mov $0x600df8,%edi
4007aa: 48 89 e5 mov %rsp,%rbp
4007ad: ff d0 callq *%rax
4007af: 5d pop %rbp
4007b0: e9 7b ff ff ff jmpq 400730 <register_tm_clones>
4007b5: e9 76 ff ff ff jmpq 400730 <register_tm_clones>
4007ba: 90 nop
4007bb: 90 nop
4007bc: 90 nop
4007bd: 90 nop
4007be: 90 nop
4007bf: 90 nop
00000000004007c0 <get_r>:
4007c0: 66 c1 ef 08 shr $0x8,%di
4007c4: 89 f8 mov %edi,%eax
4007c6: 25 f8 00 00 00 and $0xf8,%eax
4007cb: c3 retq
4007cc: 0f 1f 40 00 nopl 0x0(%rax)
00000000004007d0 <get_g>:
4007d0: 66 c1 ef 03 shr $0x3,%di
4007d4: 89 f8 mov %edi,%eax
4007d6: 25 fc 00 00 00 and $0xfc,%eax
4007db: c3 retq
4007dc: 0f 1f 40 00 nopl 0x0(%rax)
00000000004007e0 <get_b>:
4007e0: 8d 04 fd 00 00 00 00 lea 0x0(,%rdi,8),%eax
4007e7: 25 f8 00 00 00 and $0xf8,%eax
4007ec: c3 retq
4007ed: 0f 1f 00 nopl (%rax)
00000000004007f0 <to_rgb>:
4007f0: 8d 04 f5 00 00 00 00 lea 0x0(,%rsi,8),%eax
4007f7: c1 ea 03 shr $0x3,%edx
4007fa: c1 e7 08 shl $0x8,%edi
4007fd: 66 81 e7 00 f8 and $0xf800,%di
400802: 66 25 e0 07 and $0x7e0,%ax
400806: 09 d0 or %edx,%eax
400808: 09 f8 or %edi,%eax
40080a: c3 retq
40080b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
0000000000400810 <test_bitmap_color_transform_pure_c>:
400810: 48 8d b7 00 48 3f 00 lea 0x3f4800(%rdi),%rsi
400817: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1)
40081e: 00 00
400820: 0f b7 17 movzwl (%rdi),%edx
400823: 89 d1 mov %edx,%ecx
400825: 89 d0 mov %edx,%eax
400827: c1 e2 06 shl $0x6,%edx
40082a: 66 c1 e9 08 shr $0x8,%cx
40082e: c1 e0 05 shl $0x5,%eax
400831: 66 81 e2 c0 07 and $0x7c0,%dx
400836: 81 e1 f8 00 00 00 and $0xf8,%ecx
40083c: 66 25 00 f8 and $0xf800,%ax
400840: c1 e9 03 shr $0x3,%ecx
400843: 09 c8 or %ecx,%eax
400845: 09 d0 or %edx,%eax
400847: 66 89 07 mov %ax,(%rdi)
40084a: 48 83 c7 02 add $0x2,%rdi
40084e: 48 39 f7 cmp %rsi,%rdi
400851: 75 cd jne 400820 <test_bitmap_color_transform_pure_c+0x10>
400853: f3 c3 repz retq
400855: 90 nop
400856: 90 nop
400857: 90 nop
400858: 90 nop
400859: 90 nop
40085a: 90 nop
40085b: 90 nop
40085c: 90 nop
40085d: 90 nop
40085e: 90 nop
40085f: 90 nop
0000000000400860 <__libc_csu_init>:
400860: 48 89 6c 24 d8 mov %rbp,-0x28(%rsp)
400865: 4c 89 64 24 e0 mov %r12,-0x20(%rsp)
40086a: 48 8d 2d 7f 05 20 00 lea 0x20057f(%rip),%rbp # 600df0 <__init_array_end>
400871: 4c 8d 25 70 05 20 00 lea 0x200570(%rip),%r12 # 600de8 <__frame_dummy_init_array_entry>
400878: 48 89 5c 24 d0 mov %rbx,-0x30(%rsp)
40087d: 4c 89 6c 24 e8 mov %r13,-0x18(%rsp)
400882: 4c 89 74 24 f0 mov %r14,-0x10(%rsp)
400887: 4c 89 7c 24 f8 mov %r15,-0x8(%rsp)
40088c: 48 83 ec 38 sub $0x38,%rsp
400890: 4c 29 e5 sub %r12,%rbp
400893: 41 89 ff mov %edi,%r15d
400896: 49 89 f6 mov %rsi,%r14
400899: 48 c1 fd 03 sar $0x3,%rbp
40089d: 49 89 d5 mov %rdx,%r13
4008a0: 31 db xor %ebx,%ebx
4008a2: e8 c1 fc ff ff callq 400568 <_init>
4008a7: 48 85 ed test %rbp,%rbp
4008aa: 74 1a je 4008c6 <__libc_csu_init+0x66>
4008ac: 0f 1f 40 00 nopl 0x0(%rax)
4008b0: 4c 89 ea mov %r13,%rdx
4008b3: 4c 89 f6 mov %r14,%rsi
4008b6: 44 89 ff mov %r15d,%edi
4008b9: 41 ff 14 dc callq *(%r12,%rbx,8)
4008bd: 48 83 c3 01 add $0x1,%rbx
4008c1: 48 39 eb cmp %rbp,%rbx
4008c4: 75 ea jne 4008b0 <__libc_csu_init+0x50>
4008c6: 48 8b 5c 24 08 mov 0x8(%rsp),%rbx
4008cb: 48 8b 6c 24 10 mov 0x10(%rsp),%rbp
4008d0: 4c 8b 64 24 18 mov 0x18(%rsp),%r12
4008d5: 4c 8b 6c 24 20 mov 0x20(%rsp),%r13
4008da: 4c 8b 74 24 28 mov 0x28(%rsp),%r14
4008df: 4c 8b 7c 24 30 mov 0x30(%rsp),%r15
4008e4: 48 83 c4 38 add $0x38,%rsp
4008e8: c3 retq
4008e9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
00000000004008f0 <__libc_csu_fini>:
4008f0: f3 c3 repz retq
4008f2: 90 nop
4008f3: 90 nop
Disassembly of section .fini:
00000000004008f4 <_fini>:
4008f4: 55 push %rbp
4008f5: 48 83 ec 08 sub $0x8,%rsp
4008f9: e8 06 00 00 00 callq 400904 <_real_fini>
4008fe: 48 83 c4 08 add $0x8,%rsp
400902: 5d pop %rbp
400903: c3 retq
0000000000400904 <_real_fini>:
400904: c3 retq
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment