
bufdemo:     file format elf64-x86-64


Disassembly of section .init:

00000000004004d0 <_init>:
  4004d0:	48 83 ec 08          	sub    $0x8,%rsp
  4004d4:	48 8b 05 1d 0b 20 00 	mov    0x200b1d(%rip),%rax        # 600ff8 <__gmon_start__>
  4004db:	48 85 c0             	test   %rax,%rax
  4004de:	74 05                	je     4004e5 <_init+0x15>
  4004e0:	e8 6b 00 00 00       	callq  400550 <.plt.got>
  4004e5:	48 83 c4 08          	add    $0x8,%rsp
  4004e9:	c3                   	retq   

Disassembly of section .plt:

00000000004004f0 <.plt>:
  4004f0:	ff 35 12 0b 20 00    	pushq  0x200b12(%rip)        # 601008 <_GLOBAL_OFFSET_TABLE_+0x8>
  4004f6:	ff 25 14 0b 20 00    	jmpq   *0x200b14(%rip)        # 601010 <_GLOBAL_OFFSET_TABLE_+0x10>
  4004fc:	0f 1f 40 00          	nopl   0x0(%rax)

0000000000400500 <puts@plt>:
  400500:	ff 25 12 0b 20 00    	jmpq   *0x200b12(%rip)        # 601018 <puts@GLIBC_2.2.5>
  400506:	68 00 00 00 00       	pushq  $0x0
  40050b:	e9 e0 ff ff ff       	jmpq   4004f0 <.plt>

0000000000400510 <printf@plt>:
  400510:	ff 25 0a 0b 20 00    	jmpq   *0x200b0a(%rip)        # 601020 <printf@GLIBC_2.2.5>
  400516:	68 01 00 00 00       	pushq  $0x1
  40051b:	e9 d0 ff ff ff       	jmpq   4004f0 <.plt>

0000000000400520 <__libc_start_main@plt>:
  400520:	ff 25 02 0b 20 00    	jmpq   *0x200b02(%rip)        # 601028 <__libc_start_main@GLIBC_2.2.5>
  400526:	68 02 00 00 00       	pushq  $0x2
  40052b:	e9 c0 ff ff ff       	jmpq   4004f0 <.plt>

0000000000400530 <_IO_getc@plt>:
  400530:	ff 25 fa 0a 20 00    	jmpq   *0x200afa(%rip)        # 601030 <_IO_getc@GLIBC_2.2.5>
  400536:	68 03 00 00 00       	pushq  $0x3
  40053b:	e9 b0 ff ff ff       	jmpq   4004f0 <.plt>

0000000000400540 <exit@plt>:
  400540:	ff 25 f2 0a 20 00    	jmpq   *0x200af2(%rip)        # 601038 <exit@GLIBC_2.2.5>
  400546:	68 04 00 00 00       	pushq  $0x4
  40054b:	e9 a0 ff ff ff       	jmpq   4004f0 <.plt>

Disassembly of section .plt.got:

0000000000400550 <.plt.got>:
  400550:	ff 25 a2 0a 20 00    	jmpq   *0x200aa2(%rip)        # 600ff8 <__gmon_start__>
  400556:	66 90                	xchg   %ax,%ax

Disassembly of section .text:

0000000000400560 <_start>:
  400560:	31 ed                	xor    %ebp,%ebp
  400562:	49 89 d1             	mov    %rdx,%r9
  400565:	5e                   	pop    %rsi
  400566:	48 89 e2             	mov    %rsp,%rdx
  400569:	48 83 e4 f0          	and    $0xfffffffffffffff0,%rsp
  40056d:	50                   	push   %rax
  40056e:	54                   	push   %rsp
  40056f:	49 c7 c0 80 07 40 00 	mov    $0x400780,%r8
  400576:	48 c7 c1 10 07 40 00 	mov    $0x400710,%rcx
  40057d:	48 c7 c7 e0 06 40 00 	mov    $0x4006e0,%rdi
  400584:	e8 97 ff ff ff       	callq  400520 <__libc_start_main@plt>
  400589:	f4                   	hlt    
  40058a:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)

0000000000400590 <deregister_tm_clones>:
  400590:	b8 4f 10 60 00       	mov    $0x60104f,%eax
  400595:	55                   	push   %rbp
  400596:	48 2d 48 10 60 00    	sub    $0x601048,%rax
  40059c:	48 83 f8 0e          	cmp    $0xe,%rax
  4005a0:	48 89 e5             	mov    %rsp,%rbp
  4005a3:	77 02                	ja     4005a7 <deregister_tm_clones+0x17>
  4005a5:	5d                   	pop    %rbp
  4005a6:	c3                   	retq   
  4005a7:	b8 00 00 00 00       	mov    $0x0,%eax
  4005ac:	48 85 c0             	test   %rax,%rax
  4005af:	74 f4                	je     4005a5 <deregister_tm_clones+0x15>
  4005b1:	5d                   	pop    %rbp
  4005b2:	bf 48 10 60 00       	mov    $0x601048,%edi
  4005b7:	ff e0                	jmpq   *%rax
  4005b9:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

00000000004005c0 <register_tm_clones>:
  4005c0:	b8 48 10 60 00       	mov    $0x601048,%eax
  4005c5:	55                   	push   %rbp
  4005c6:	48 2d 48 10 60 00    	sub    $0x601048,%rax
  4005cc:	48 c1 f8 03          	sar    $0x3,%rax
  4005d0:	48 89 e5             	mov    %rsp,%rbp
  4005d3:	48 89 c2             	mov    %rax,%rdx
  4005d6:	48 c1 ea 3f          	shr    $0x3f,%rdx
  4005da:	48 01 d0             	add    %rdx,%rax
  4005dd:	48 d1 f8             	sar    %rax
  4005e0:	75 02                	jne    4005e4 <register_tm_clones+0x24>
  4005e2:	5d                   	pop    %rbp
  4005e3:	c3                   	retq   
  4005e4:	ba 00 00 00 00       	mov    $0x0,%edx
  4005e9:	48 85 d2             	test   %rdx,%rdx
  4005ec:	74 f4                	je     4005e2 <register_tm_clones+0x22>
  4005ee:	5d                   	pop    %rbp
  4005ef:	48 89 c6             	mov    %rax,%rsi
  4005f2:	bf 48 10 60 00       	mov    $0x601048,%edi
  4005f7:	ff e2                	jmpq   *%rdx
  4005f9:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

0000000000400600 <__do_global_dtors_aux>:
  400600:	80 3d 49 0a 20 00 00 	cmpb   $0x0,0x200a49(%rip)        # 601050 <completed.6355>
  400607:	75 11                	jne    40061a <__do_global_dtors_aux+0x1a>
  400609:	55                   	push   %rbp
  40060a:	48 89 e5             	mov    %rsp,%rbp
  40060d:	e8 7e ff ff ff       	callq  400590 <deregister_tm_clones>
  400612:	5d                   	pop    %rbp
  400613:	c6 05 36 0a 20 00 01 	movb   $0x1,0x200a36(%rip)        # 601050 <completed.6355>
  40061a:	f3 c3                	repz retq 
  40061c:	0f 1f 40 00          	nopl   0x0(%rax)

0000000000400620 <frame_dummy>:
  400620:	48 83 3d f8 07 20 00 	cmpq   $0x0,0x2007f8(%rip)        # 600e20 <__JCR_END__>
  400627:	00 
  400628:	74 1e                	je     400648 <frame_dummy+0x28>
  40062a:	b8 00 00 00 00       	mov    $0x0,%eax
  40062f:	48 85 c0             	test   %rax,%rax
  400632:	74 14                	je     400648 <frame_dummy+0x28>
  400634:	55                   	push   %rbp
  400635:	bf 20 0e 60 00       	mov    $0x600e20,%edi
  40063a:	48 89 e5             	mov    %rsp,%rbp
  40063d:	ff d0                	callq  *%rax
  40063f:	5d                   	pop    %rbp
  400640:	e9 7b ff ff ff       	jmpq   4005c0 <register_tm_clones>
  400645:	0f 1f 00             	nopl   (%rax)
  400648:	e9 73 ff ff ff       	jmpq   4005c0 <register_tm_clones>

000000000040064d <gets>:
  40064d:	55                   	push   %rbp
  40064e:	53                   	push   %rbx
  40064f:	48 83 ec 08          	sub    $0x8,%rsp
  400653:	48 89 fd             	mov    %rdi,%rbp
  400656:	48 8b 3d eb 09 20 00 	mov    0x2009eb(%rip),%rdi        # 601048 <stdin@@GLIBC_2.2.5>
  40065d:	e8 ce fe ff ff       	callq  400530 <_IO_getc@plt>
  400662:	48 89 e9             	mov    %rbp,%rcx
  400665:	eb 15                	jmp    40067c <gets+0x2f>
  400667:	48 8d 59 01          	lea    0x1(%rcx),%rbx
  40066b:	88 01                	mov    %al,(%rcx)
  40066d:	48 8b 3d d4 09 20 00 	mov    0x2009d4(%rip),%rdi        # 601048 <stdin@@GLIBC_2.2.5>
  400674:	e8 b7 fe ff ff       	callq  400530 <_IO_getc@plt>
  400679:	48 89 d9             	mov    %rbx,%rcx
  40067c:	83 f8 ff             	cmp    $0xffffffff,%eax
  40067f:	41 0f 95 c0          	setne  %r8b
  400683:	83 f8 0a             	cmp    $0xa,%eax
  400686:	40 0f 95 c6          	setne  %sil
  40068a:	41 84 f0             	test   %sil,%r8b
  40068d:	75 d8                	jne    400667 <gets+0x1a>
  40068f:	c6 01 00             	movb   $0x0,(%rcx)
  400692:	48 89 e8             	mov    %rbp,%rax
  400695:	48 83 c4 08          	add    $0x8,%rsp
  400699:	5b                   	pop    %rbx
  40069a:	5d                   	pop    %rbp
  40069b:	c3                   	retq   

000000000040069c <echo>:
  40069c:	48 83 ec 18          	sub    $0x18,%rsp
  4006a0:	48 89 e7             	mov    %rsp,%rdi
  4006a3:	e8 a5 ff ff ff       	callq  40064d <gets>
  4006a8:	48 89 e7             	mov    %rsp,%rdi
  4006ab:	e8 50 fe ff ff       	callq  400500 <puts@plt>
  4006b0:	48 83 c4 18          	add    $0x18,%rsp
  4006b4:	c3                   	retq   

00000000004006b5 <call_echo>:
  4006b5:	48 83 ec 08          	sub    $0x8,%rsp
  4006b9:	b8 00 00 00 00       	mov    $0x0,%eax
  4006be:	e8 d9 ff ff ff       	callq  40069c <echo>
  4006c3:	48 83 c4 08          	add    $0x8,%rsp
  4006c7:	c3                   	retq   

00000000004006c8 <smash>:
  4006c8:	48 83 ec 08          	sub    $0x8,%rsp
  4006cc:	bf a0 07 40 00       	mov    $0x4007a0,%edi
  4006d1:	e8 2a fe ff ff       	callq  400500 <puts@plt>
  4006d6:	bf 00 00 00 00       	mov    $0x0,%edi
  4006db:	e8 60 fe ff ff       	callq  400540 <exit@plt>

00000000004006e0 <main>:
  4006e0:	48 83 ec 08          	sub    $0x8,%rsp
  4006e4:	bf b3 07 40 00       	mov    $0x4007b3,%edi
  4006e9:	b8 00 00 00 00       	mov    $0x0,%eax
  4006ee:	e8 1d fe ff ff       	callq  400510 <printf@plt>
  4006f3:	b8 00 00 00 00       	mov    $0x0,%eax
  4006f8:	e8 b8 ff ff ff       	callq  4006b5 <call_echo>
  4006fd:	b8 00 00 00 00       	mov    $0x0,%eax
  400702:	48 83 c4 08          	add    $0x8,%rsp
  400706:	c3                   	retq   
  400707:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
  40070e:	00 00 

0000000000400710 <__libc_csu_init>:
  400710:	41 57                	push   %r15
  400712:	41 89 ff             	mov    %edi,%r15d
  400715:	41 56                	push   %r14
  400717:	49 89 f6             	mov    %rsi,%r14
  40071a:	41 55                	push   %r13
  40071c:	49 89 d5             	mov    %rdx,%r13
  40071f:	41 54                	push   %r12
  400721:	4c 8d 25 e8 06 20 00 	lea    0x2006e8(%rip),%r12        # 600e10 <__frame_dummy_init_array_entry>
  400728:	55                   	push   %rbp
  400729:	48 8d 2d e8 06 20 00 	lea    0x2006e8(%rip),%rbp        # 600e18 <__init_array_end>
  400730:	53                   	push   %rbx
  400731:	4c 29 e5             	sub    %r12,%rbp
  400734:	31 db                	xor    %ebx,%ebx
  400736:	48 c1 fd 03          	sar    $0x3,%rbp
  40073a:	48 83 ec 08          	sub    $0x8,%rsp
  40073e:	e8 8d fd ff ff       	callq  4004d0 <_init>
  400743:	48 85 ed             	test   %rbp,%rbp
  400746:	74 1e                	je     400766 <__libc_csu_init+0x56>
  400748:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
  40074f:	00 
  400750:	4c 89 ea             	mov    %r13,%rdx
  400753:	4c 89 f6             	mov    %r14,%rsi
  400756:	44 89 ff             	mov    %r15d,%edi
  400759:	41 ff 14 dc          	callq  *(%r12,%rbx,8)
  40075d:	48 83 c3 01          	add    $0x1,%rbx
  400761:	48 39 eb             	cmp    %rbp,%rbx
  400764:	75 ea                	jne    400750 <__libc_csu_init+0x40>
  400766:	48 83 c4 08          	add    $0x8,%rsp
  40076a:	5b                   	pop    %rbx
  40076b:	5d                   	pop    %rbp
  40076c:	41 5c                	pop    %r12
  40076e:	41 5d                	pop    %r13
  400770:	41 5e                	pop    %r14
  400772:	41 5f                	pop    %r15
  400774:	c3                   	retq   
  400775:	90                   	nop
  400776:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
  40077d:	00 00 00 

0000000000400780 <__libc_csu_fini>:
  400780:	f3 c3                	repz retq 

Disassembly of section .fini:

0000000000400784 <_fini>:
  400784:	48 83 ec 08          	sub    $0x8,%rsp
  400788:	48 83 c4 08          	add    $0x8,%rsp
  40078c:	c3                   	retq   
