
bufdemo:     file format elf64-x86-64


Disassembly of section .init:

0000000000400530 <_init>:
  400530:	48 83 ec 08          	sub    $0x8,%rsp
  400534:	48 8b 05 bd 0a 20 00 	mov    0x200abd(%rip),%rax        # 600ff8 <__gmon_start__>
  40053b:	48 85 c0             	test   %rax,%rax
  40053e:	74 05                	je     400545 <_init+0x15>
  400540:	e8 7b 00 00 00       	callq  4005c0 <.plt.got>
  400545:	48 83 c4 08          	add    $0x8,%rsp
  400549:	c3                   	retq   

Disassembly of section .plt:

0000000000400550 <.plt>:
  400550:	ff 35 b2 0a 20 00    	pushq  0x200ab2(%rip)        # 601008 <_GLOBAL_OFFSET_TABLE_+0x8>
  400556:	ff 25 b4 0a 20 00    	jmpq   *0x200ab4(%rip)        # 601010 <_GLOBAL_OFFSET_TABLE_+0x10>
  40055c:	0f 1f 40 00          	nopl   0x0(%rax)

0000000000400560 <puts@plt>:
  400560:	ff 25 b2 0a 20 00    	jmpq   *0x200ab2(%rip)        # 601018 <puts@GLIBC_2.2.5>
  400566:	68 00 00 00 00       	pushq  $0x0
  40056b:	e9 e0 ff ff ff       	jmpq   400550 <.plt>

0000000000400570 <__stack_chk_fail@plt>:
  400570:	ff 25 aa 0a 20 00    	jmpq   *0x200aaa(%rip)        # 601020 <__stack_chk_fail@GLIBC_2.4>
  400576:	68 01 00 00 00       	pushq  $0x1
  40057b:	e9 d0 ff ff ff       	jmpq   400550 <.plt>

0000000000400580 <printf@plt>:
  400580:	ff 25 a2 0a 20 00    	jmpq   *0x200aa2(%rip)        # 601028 <printf@GLIBC_2.2.5>
  400586:	68 02 00 00 00       	pushq  $0x2
  40058b:	e9 c0 ff ff ff       	jmpq   400550 <.plt>

0000000000400590 <__libc_start_main@plt>:
  400590:	ff 25 9a 0a 20 00    	jmpq   *0x200a9a(%rip)        # 601030 <__libc_start_main@GLIBC_2.2.5>
  400596:	68 03 00 00 00       	pushq  $0x3
  40059b:	e9 b0 ff ff ff       	jmpq   400550 <.plt>

00000000004005a0 <_IO_getc@plt>:
  4005a0:	ff 25 92 0a 20 00    	jmpq   *0x200a92(%rip)        # 601038 <_IO_getc@GLIBC_2.2.5>
  4005a6:	68 04 00 00 00       	pushq  $0x4
  4005ab:	e9 a0 ff ff ff       	jmpq   400550 <.plt>

00000000004005b0 <exit@plt>:
  4005b0:	ff 25 8a 0a 20 00    	jmpq   *0x200a8a(%rip)        # 601040 <exit@GLIBC_2.2.5>
  4005b6:	68 05 00 00 00       	pushq  $0x5
  4005bb:	e9 90 ff ff ff       	jmpq   400550 <.plt>

Disassembly of section .plt.got:

00000000004005c0 <.plt.got>:
  4005c0:	ff 25 32 0a 20 00    	jmpq   *0x200a32(%rip)        # 600ff8 <__gmon_start__>
  4005c6:	66 90                	xchg   %ax,%ax

Disassembly of section .text:

00000000004005d0 <_start>:
  4005d0:	31 ed                	xor    %ebp,%ebp
  4005d2:	49 89 d1             	mov    %rdx,%r9
  4005d5:	5e                   	pop    %rsi
  4005d6:	48 89 e2             	mov    %rsp,%rdx
  4005d9:	48 83 e4 f0          	and    $0xfffffffffffffff0,%rsp
  4005dd:	50                   	push   %rax
  4005de:	54                   	push   %rsp
  4005df:	49 c7 c0 90 08 40 00 	mov    $0x400890,%r8
  4005e6:	48 c7 c1 20 08 40 00 	mov    $0x400820,%rcx
  4005ed:	48 c7 c7 cd 07 40 00 	mov    $0x4007cd,%rdi
  4005f4:	e8 97 ff ff ff       	callq  400590 <__libc_start_main@plt>
  4005f9:	f4                   	hlt    
  4005fa:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)

0000000000400600 <deregister_tm_clones>:
  400600:	b8 57 10 60 00       	mov    $0x601057,%eax
  400605:	55                   	push   %rbp
  400606:	48 2d 50 10 60 00    	sub    $0x601050,%rax
  40060c:	48 83 f8 0e          	cmp    $0xe,%rax
  400610:	48 89 e5             	mov    %rsp,%rbp
  400613:	77 02                	ja     400617 <deregister_tm_clones+0x17>
  400615:	5d                   	pop    %rbp
  400616:	c3                   	retq   
  400617:	b8 00 00 00 00       	mov    $0x0,%eax
  40061c:	48 85 c0             	test   %rax,%rax
  40061f:	74 f4                	je     400615 <deregister_tm_clones+0x15>
  400621:	5d                   	pop    %rbp
  400622:	bf 50 10 60 00       	mov    $0x601050,%edi
  400627:	ff e0                	jmpq   *%rax
  400629:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

0000000000400630 <register_tm_clones>:
  400630:	b8 50 10 60 00       	mov    $0x601050,%eax
  400635:	55                   	push   %rbp
  400636:	48 2d 50 10 60 00    	sub    $0x601050,%rax
  40063c:	48 c1 f8 03          	sar    $0x3,%rax
  400640:	48 89 e5             	mov    %rsp,%rbp
  400643:	48 89 c2             	mov    %rax,%rdx
  400646:	48 c1 ea 3f          	shr    $0x3f,%rdx
  40064a:	48 01 d0             	add    %rdx,%rax
  40064d:	48 d1 f8             	sar    %rax
  400650:	75 02                	jne    400654 <register_tm_clones+0x24>
  400652:	5d                   	pop    %rbp
  400653:	c3                   	retq   
  400654:	ba 00 00 00 00       	mov    $0x0,%edx
  400659:	48 85 d2             	test   %rdx,%rdx
  40065c:	74 f4                	je     400652 <register_tm_clones+0x22>
  40065e:	5d                   	pop    %rbp
  40065f:	48 89 c6             	mov    %rax,%rsi
  400662:	bf 50 10 60 00       	mov    $0x601050,%edi
  400667:	ff e2                	jmpq   *%rdx
  400669:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

0000000000400670 <__do_global_dtors_aux>:
  400670:	80 3d e1 09 20 00 00 	cmpb   $0x0,0x2009e1(%rip)        # 601058 <completed.6355>
  400677:	75 11                	jne    40068a <__do_global_dtors_aux+0x1a>
  400679:	55                   	push   %rbp
  40067a:	48 89 e5             	mov    %rsp,%rbp
  40067d:	e8 7e ff ff ff       	callq  400600 <deregister_tm_clones>
  400682:	5d                   	pop    %rbp
  400683:	c6 05 ce 09 20 00 01 	movb   $0x1,0x2009ce(%rip)        # 601058 <completed.6355>
  40068a:	f3 c3                	repz retq 
  40068c:	0f 1f 40 00          	nopl   0x0(%rax)

0000000000400690 <frame_dummy>:
  400690:	48 83 3d 88 07 20 00 	cmpq   $0x0,0x200788(%rip)        # 600e20 <__JCR_END__>
  400697:	00 
  400698:	74 1e                	je     4006b8 <frame_dummy+0x28>
  40069a:	b8 00 00 00 00       	mov    $0x0,%eax
  40069f:	48 85 c0             	test   %rax,%rax
  4006a2:	74 14                	je     4006b8 <frame_dummy+0x28>
  4006a4:	55                   	push   %rbp
  4006a5:	bf 20 0e 60 00       	mov    $0x600e20,%edi
  4006aa:	48 89 e5             	mov    %rsp,%rbp
  4006ad:	ff d0                	callq  *%rax
  4006af:	5d                   	pop    %rbp
  4006b0:	e9 7b ff ff ff       	jmpq   400630 <register_tm_clones>
  4006b5:	0f 1f 00             	nopl   (%rax)
  4006b8:	e9 73 ff ff ff       	jmpq   400630 <register_tm_clones>
  4006bd:	0f 1f 00             	nopl   (%rax)

00000000004006c0 <gets>:
  4006c0:	55                   	push   %rbp
  4006c1:	53                   	push   %rbx
  4006c2:	48 83 ec 18          	sub    $0x18,%rsp
  4006c6:	48 89 fd             	mov    %rdi,%rbp
  4006c9:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
  4006d0:	00 00 
  4006d2:	48 89 44 24 08       	mov    %rax,0x8(%rsp)
  4006d7:	31 c0                	xor    %eax,%eax
  4006d9:	48 8b 3d 70 09 20 00 	mov    0x200970(%rip),%rdi        # 601050 <stdin@@GLIBC_2.2.5>
  4006e0:	e8 bb fe ff ff       	callq  4005a0 <_IO_getc@plt>
  4006e5:	48 89 e9             	mov    %rbp,%rcx
  4006e8:	eb 15                	jmp    4006ff <gets+0x3f>
  4006ea:	48 8d 59 01          	lea    0x1(%rcx),%rbx
  4006ee:	88 01                	mov    %al,(%rcx)
  4006f0:	48 8b 3d 59 09 20 00 	mov    0x200959(%rip),%rdi        # 601050 <stdin@@GLIBC_2.2.5>
  4006f7:	e8 a4 fe ff ff       	callq  4005a0 <_IO_getc@plt>
  4006fc:	48 89 d9             	mov    %rbx,%rcx
  4006ff:	83 f8 ff             	cmp    $0xffffffff,%eax
  400702:	41 0f 95 c0          	setne  %r8b
  400706:	83 f8 0a             	cmp    $0xa,%eax
  400709:	40 0f 95 c6          	setne  %sil
  40070d:	41 84 f0             	test   %sil,%r8b
  400710:	75 d8                	jne    4006ea <gets+0x2a>
  400712:	c6 01 00             	movb   $0x0,(%rcx)
  400715:	48 89 e8             	mov    %rbp,%rax
  400718:	48 8b 54 24 08       	mov    0x8(%rsp),%rdx
  40071d:	64 48 33 14 25 28 00 	xor    %fs:0x28,%rdx
  400724:	00 00 
  400726:	74 05                	je     40072d <gets+0x6d>
  400728:	e8 43 fe ff ff       	callq  400570 <__stack_chk_fail@plt>
  40072d:	48 83 c4 18          	add    $0x18,%rsp
  400731:	5b                   	pop    %rbx
  400732:	5d                   	pop    %rbp
  400733:	c3                   	retq   

0000000000400734 <echo>:
  400734:	48 83 ec 18          	sub    $0x18,%rsp
  400738:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
  40073f:	00 00 
  400741:	48 89 44 24 08       	mov    %rax,0x8(%rsp)
  400746:	31 c0                	xor    %eax,%eax
  400748:	48 89 e7             	mov    %rsp,%rdi
  40074b:	e8 70 ff ff ff       	callq  4006c0 <gets>
  400750:	48 89 e7             	mov    %rsp,%rdi
  400753:	e8 08 fe ff ff       	callq  400560 <puts@plt>
  400758:	48 8b 44 24 08       	mov    0x8(%rsp),%rax
  40075d:	64 48 33 04 25 28 00 	xor    %fs:0x28,%rax
  400764:	00 00 
  400766:	74 05                	je     40076d <echo+0x39>
  400768:	e8 03 fe ff ff       	callq  400570 <__stack_chk_fail@plt>
  40076d:	48 83 c4 18          	add    $0x18,%rsp
  400771:	c3                   	retq   

0000000000400772 <call_echo>:
  400772:	48 83 ec 18          	sub    $0x18,%rsp
  400776:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
  40077d:	00 00 
  40077f:	48 89 44 24 08       	mov    %rax,0x8(%rsp)
  400784:	31 c0                	xor    %eax,%eax
  400786:	e8 a9 ff ff ff       	callq  400734 <echo>
  40078b:	48 8b 44 24 08       	mov    0x8(%rsp),%rax
  400790:	64 48 33 04 25 28 00 	xor    %fs:0x28,%rax
  400797:	00 00 
  400799:	74 05                	je     4007a0 <call_echo+0x2e>
  40079b:	e8 d0 fd ff ff       	callq  400570 <__stack_chk_fail@plt>
  4007a0:	48 83 c4 18          	add    $0x18,%rsp
  4007a4:	c3                   	retq   

00000000004007a5 <smash>:
  4007a5:	48 83 ec 18          	sub    $0x18,%rsp
  4007a9:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
  4007b0:	00 00 
  4007b2:	48 89 44 24 08       	mov    %rax,0x8(%rsp)
  4007b7:	31 c0                	xor    %eax,%eax
  4007b9:	bf b0 08 40 00       	mov    $0x4008b0,%edi
  4007be:	e8 9d fd ff ff       	callq  400560 <puts@plt>
  4007c3:	bf 00 00 00 00       	mov    $0x0,%edi
  4007c8:	e8 e3 fd ff ff       	callq  4005b0 <exit@plt>

00000000004007cd <main>:
  4007cd:	48 83 ec 18          	sub    $0x18,%rsp
  4007d1:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
  4007d8:	00 00 
  4007da:	48 89 44 24 08       	mov    %rax,0x8(%rsp)
  4007df:	31 c0                	xor    %eax,%eax
  4007e1:	bf c3 08 40 00       	mov    $0x4008c3,%edi
  4007e6:	e8 95 fd ff ff       	callq  400580 <printf@plt>
  4007eb:	b8 00 00 00 00       	mov    $0x0,%eax
  4007f0:	e8 7d ff ff ff       	callq  400772 <call_echo>
  4007f5:	b8 00 00 00 00       	mov    $0x0,%eax
  4007fa:	48 8b 54 24 08       	mov    0x8(%rsp),%rdx
  4007ff:	64 48 33 14 25 28 00 	xor    %fs:0x28,%rdx
  400806:	00 00 
  400808:	74 05                	je     40080f <main+0x42>
  40080a:	e8 61 fd ff ff       	callq  400570 <__stack_chk_fail@plt>
  40080f:	48 83 c4 18          	add    $0x18,%rsp
  400813:	c3                   	retq   
  400814:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
  40081b:	00 00 00 
  40081e:	66 90                	xchg   %ax,%ax

0000000000400820 <__libc_csu_init>:
  400820:	41 57                	push   %r15
  400822:	41 89 ff             	mov    %edi,%r15d
  400825:	41 56                	push   %r14
  400827:	49 89 f6             	mov    %rsi,%r14
  40082a:	41 55                	push   %r13
  40082c:	49 89 d5             	mov    %rdx,%r13
  40082f:	41 54                	push   %r12
  400831:	4c 8d 25 d8 05 20 00 	lea    0x2005d8(%rip),%r12        # 600e10 <__frame_dummy_init_array_entry>
  400838:	55                   	push   %rbp
  400839:	48 8d 2d d8 05 20 00 	lea    0x2005d8(%rip),%rbp        # 600e18 <__init_array_end>
  400840:	53                   	push   %rbx
  400841:	4c 29 e5             	sub    %r12,%rbp
  400844:	31 db                	xor    %ebx,%ebx
  400846:	48 c1 fd 03          	sar    $0x3,%rbp
  40084a:	48 83 ec 08          	sub    $0x8,%rsp
  40084e:	e8 dd fc ff ff       	callq  400530 <_init>
  400853:	48 85 ed             	test   %rbp,%rbp
  400856:	74 1e                	je     400876 <__libc_csu_init+0x56>
  400858:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
  40085f:	00 
  400860:	4c 89 ea             	mov    %r13,%rdx
  400863:	4c 89 f6             	mov    %r14,%rsi
  400866:	44 89 ff             	mov    %r15d,%edi
  400869:	41 ff 14 dc          	callq  *(%r12,%rbx,8)
  40086d:	48 83 c3 01          	add    $0x1,%rbx
  400871:	48 39 eb             	cmp    %rbp,%rbx
  400874:	75 ea                	jne    400860 <__libc_csu_init+0x40>
  400876:	48 83 c4 08          	add    $0x8,%rsp
  40087a:	5b                   	pop    %rbx
  40087b:	5d                   	pop    %rbp
  40087c:	41 5c                	pop    %r12
  40087e:	41 5d                	pop    %r13
  400880:	41 5e                	pop    %r14
  400882:	41 5f                	pop    %r15
  400884:	c3                   	retq   
  400885:	90                   	nop
  400886:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
  40088d:	00 00 00 

0000000000400890 <__libc_csu_fini>:
  400890:	f3 c3                	repz retq 

Disassembly of section .fini:

0000000000400894 <_fini>:
  400894:	48 83 ec 08          	sub    $0x8,%rsp
  400898:	48 83 c4 08          	add    $0x8,%rsp
  40089c:	c3                   	retq   
