Ukázka volání systémové funkce v C

Je to hodně dlouhé. Hlavně assembler.

Primitivní prográmek v jazyce C
#include <stdio.h>

int main(void)
{
    printf("Nazdar studenti!\n");
    return 0;
}
Překlad a spuštění programu
$ zig cc -o hello hello.c -target x86_64-linux-musl -O2 (1)
$ file hello (2)
hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, with debug_info, not stripped
$ objdump -d hello (3)
$ ./hello (4)
Nazdar studenti! (5)
$
1 Překlad se statickým linkováním (program nepotřebuje k běhu žádné dynamické knihovny)
2 Ověření, že je to tak.
3 Podíváme se dovnitř objdumpem, co nám překladač vytvořil
4 Spuštění programu
5 Výpis na obrazovku do terminálu.
Překladač nám vytvořil program, co nepotřebuje knihovny

hello:     file format elf64-x86-64


Disassembly of section .text:

00000000002015a0 <_start>:
  2015a0:	48 31 ed             	xor    %rbp,%rbp
  2015a3:	48 89 e7             	mov    %rsp,%rdi
  2015a6:	48 8d 35 53 ea df ff 	lea    -0x2015ad(%rip),%rsi        # 0 <_start-0x2015a0>
  2015ad:	48 83 e4 f0          	and    $0xfffffffffffffff0,%rsp
  2015b1:	e8 00 00 00 00       	callq  2015b6 <_start_c>

00000000002015b6 <_start_c>:
  2015b6:	8b 37                	mov    (%rdi),%esi
  2015b8:	48 8d 57 08          	lea    0x8(%rdi),%rdx
  2015bc:	48 8d 3d 2d 01 00 00 	lea    0x12d(%rip),%rdi        # 2016f0 <main>
  2015c3:	48 8d 0d 83 0c 00 00 	lea    0xc83(%rip),%rcx        # 20224d <_init>
  2015ca:	4c 8d 05 7f 0c 00 00 	lea    0xc7f(%rip),%r8        # 202250 <_fini>
  2015d1:	45 31 c9             	xor    %r9d,%r9d
  2015d4:	e9 e2 04 00 00       	jmpq   201abb <__libc_start_main>
  2015d9:	cc                   	int3
  2015da:	cc                   	int3
  2015db:	cc                   	int3

00000000002015dc <memcpy>:
  2015dc:	48 89 f8             	mov    %rdi,%rax
  2015df:	48 83 fa 08          	cmp    $0x8,%rdx
  2015e3:	72 14                	jb     2015f9 <memcpy+0x1d>
  2015e5:	f7 c7 07 00 00 00    	test   $0x7,%edi
  2015eb:	74 0c                	je     2015f9 <memcpy+0x1d>
  2015ed:	a4                   	movsb  %ds:(%rsi),%es:(%rdi)
  2015ee:	48 ff ca             	dec    %rdx
  2015f1:	f7 c7 07 00 00 00    	test   $0x7,%edi
  2015f7:	75 f4                	jne    2015ed <memcpy+0x11>
  2015f9:	48 89 d1             	mov    %rdx,%rcx
  2015fc:	48 c1 e9 03          	shr    $0x3,%rcx
  201600:	f3 48 a5             	rep movsq %ds:(%rsi),%es:(%rdi)
  201603:	83 e2 07             	and    $0x7,%edx
  201606:	74 05                	je     20160d <memcpy+0x31>
  201608:	a4                   	movsb  %ds:(%rsi),%es:(%rdi)
  201609:	ff ca                	dec    %edx
  20160b:	75 fb                	jne    201608 <memcpy+0x2c>
  20160d:	c3                   	retq
  20160e:	cc                   	int3
  20160f:	cc                   	int3

0000000000201610 <__set_thread_area>:
  201610:	48 89 fe             	mov    %rdi,%rsi
  201613:	bf 02 10 00 00       	mov    $0x1002,%edi
  201618:	b8 9e 00 00 00       	mov    $0x9e,%eax
  20161d:	0f 05                	syscall
  20161f:	c3                   	retq

0000000000201620 <memset>:
  201620:	48 0f b6 c6          	movzbq %sil,%rax
  201624:	49 b8 01 01 01 01 01 	movabs $0x101010101010101,%r8
  20162b:	01 01 01
  20162e:	49 0f af c0          	imul   %r8,%rax
  201632:	48 83 fa 7e          	cmp    $0x7e,%rdx
  201636:	77 78                	ja     2016b0 <memset+0x90>
  201638:	85 d2                	test   %edx,%edx
  20163a:	74 70                	je     2016ac <memset+0x8c>
  20163c:	40 88 37             	mov    %sil,(%rdi)
  20163f:	40 88 74 17 ff       	mov    %sil,-0x1(%rdi,%rdx,1)
  201644:	83 fa 02             	cmp    $0x2,%edx
  201647:	76 63                	jbe    2016ac <memset+0x8c>
  201649:	66 89 47 01          	mov    %ax,0x1(%rdi)
  20164d:	66 89 44 17 fd       	mov    %ax,-0x3(%rdi,%rdx,1)
  201652:	83 fa 06             	cmp    $0x6,%edx
  201655:	76 55                	jbe    2016ac <memset+0x8c>
  201657:	89 47 03             	mov    %eax,0x3(%rdi)
  20165a:	89 44 17 f9          	mov    %eax,-0x7(%rdi,%rdx,1)
  20165e:	83 fa 0e             	cmp    $0xe,%edx
  201661:	76 49                	jbe    2016ac <memset+0x8c>
  201663:	48 89 47 07          	mov    %rax,0x7(%rdi)
  201667:	48 89 44 17 f1       	mov    %rax,-0xf(%rdi,%rdx,1)
  20166c:	83 fa 1e             	cmp    $0x1e,%edx
  20166f:	76 3b                	jbe    2016ac <memset+0x8c>
  201671:	48 89 47 0f          	mov    %rax,0xf(%rdi)
  201675:	48 89 47 17          	mov    %rax,0x17(%rdi)
  201679:	48 89 44 17 e1       	mov    %rax,-0x1f(%rdi,%rdx,1)
  20167e:	48 89 44 17 e9       	mov    %rax,-0x17(%rdi,%rdx,1)
  201683:	83 fa 3e             	cmp    $0x3e,%edx
  201686:	76 24                	jbe    2016ac <memset+0x8c>
  201688:	48 89 47 1f          	mov    %rax,0x1f(%rdi)
  20168c:	48 89 47 27          	mov    %rax,0x27(%rdi)
  201690:	48 89 47 2f          	mov    %rax,0x2f(%rdi)
  201694:	48 89 47 37          	mov    %rax,0x37(%rdi)
  201698:	48 89 44 17 c1       	mov    %rax,-0x3f(%rdi,%rdx,1)
  20169d:	48 89 44 17 c9       	mov    %rax,-0x37(%rdi,%rdx,1)
  2016a2:	48 89 44 17 d1       	mov    %rax,-0x2f(%rdi,%rdx,1)
  2016a7:	48 89 44 17 d9       	mov    %rax,-0x27(%rdi,%rdx,1)
  2016ac:	48 89 f8             	mov    %rdi,%rax
  2016af:	c3                   	retq
  2016b0:	f7 c7 0f 00 00 00    	test   $0xf,%edi
  2016b6:	49 89 f8             	mov    %rdi,%r8
  2016b9:	48 89 44 17 f8       	mov    %rax,-0x8(%rdi,%rdx,1)
  2016be:	48 89 d1             	mov    %rdx,%rcx
  2016c1:	75 0b                	jne    2016ce <memset+0xae>
  2016c3:	48 c1 e9 03          	shr    $0x3,%rcx
  2016c7:	f3 48 ab             	rep stos %rax,%es:(%rdi)
  2016ca:	4c 89 c0             	mov    %r8,%rax
  2016cd:	c3                   	retq
  2016ce:	31 d2                	xor    %edx,%edx
  2016d0:	29 fa                	sub    %edi,%edx
  2016d2:	83 e2 0f             	and    $0xf,%edx
  2016d5:	48 89 07             	mov    %rax,(%rdi)
  2016d8:	48 89 47 08          	mov    %rax,0x8(%rdi)
  2016dc:	48 29 d1             	sub    %rdx,%rcx
  2016df:	48 01 d7             	add    %rdx,%rdi
  2016e2:	eb df                	jmp    2016c3 <memset+0xa3>
  2016e4:	cc                   	int3
  2016e5:	cc                   	int3
  2016e6:	cc                   	int3
  2016e7:	cc                   	int3
  2016e8:	cc                   	int3
  2016e9:	cc                   	int3
  2016ea:	cc                   	int3
  2016eb:	cc                   	int3
  2016ec:	cc                   	int3
  2016ed:	cc                   	int3
  2016ee:	cc                   	int3
  2016ef:	cc                   	int3

00000000002016f0 <main>:                                        (1)
  2016f0:	50                   	push   %rax
  2016f1:	e8 bd 04 00 00       	callq  201bb3 <puts>        (2)
  2016f6:	31 c0                	xor    %eax,%eax
  2016f8:	59                   	pop    %rcx
  2016f9:	c3                   	retq

00000000002016fa <__init_libc>:
  2016fa:	41 57                	push   %r15
  2016fc:	41 56                	push   %r14
  2016fe:	41 54                	push   %r12
  201700:	53                   	push   %rbx
  201701:	48 81 ec 58 01 00 00 	sub    $0x158,%rsp
  201708:	48 89 f3             	mov    %rsi,%rbx
  20170b:	49 89 fe             	mov    %rdi,%r14
  20170e:	48 8d 7c 24 20       	lea    0x20(%rsp),%rdi
  201713:	ba 30 01 00 00       	mov    $0x130,%edx
  201718:	31 f6                	xor    %esi,%esi
  20171a:	e8 01 ff ff ff       	callq  201620 <memset>
  20171f:	4c 89 35 ca 2d 00 00 	mov    %r14,0x2dca(%rip)        # 2044f0 <__environ>
  201726:	49 83 3e 00          	cmpq   $0x0,(%r14)
  20172a:	4d 8d 76 08          	lea    0x8(%r14),%r14
  20172e:	75 f6                	jne    201726 <__init_libc+0x2c>
  201730:	4c 89 35 f9 31 00 00 	mov    %r14,0x31f9(%rip)        # 204930 <__libc+0x8>
  201737:	49 8b 06             	mov    (%r14),%rax
  20173a:	48 85 c0             	test   %rax,%rax
  20173d:	74 33                	je     201772 <__init_libc+0x78>
  20173f:	49 83 c6 10          	add    $0x10,%r14
  201743:	48 83 f8 25          	cmp    $0x25,%rax
  201747:	77 09                	ja     201752 <__init_libc+0x58>
  201749:	49 8b 4e f8          	mov    -0x8(%r14),%rcx
  20174d:	48 89 4c c4 20       	mov    %rcx,0x20(%rsp,%rax,8)
  201752:	49 8b 06             	mov    (%r14),%rax
  201755:	49 83 c6 10          	add    $0x10,%r14
  201759:	48 85 c0             	test   %rax,%rax
  20175c:	75 e5                	jne    201743 <__init_libc+0x49>
  20175e:	48 8b 84 24 20 01 00 	mov    0x120(%rsp),%rax
  201765:	00
  201766:	48 85 c0             	test   %rax,%rax
  201769:	74 07                	je     201772 <__init_libc+0x78>
  20176b:	48 89 05 86 2d 00 00 	mov    %rax,0x2d86(%rip)        # 2044f8 <__sysinfo>
  201772:	48 8b 44 24 50       	mov    0x50(%rsp),%rax
  201777:	48 89 05 da 31 00 00 	mov    %rax,0x31da(%rip)        # 204958 <__libc+0x30>
  20177e:	48 85 db             	test   %rbx,%rbx
  201781:	75 08                	jne    20178b <__init_libc+0x91>
  201783:	48 8b 9c 24 18 01 00 	mov    0x118(%rsp),%rbx
  20178a:	00
  20178b:	48 85 db             	test   %rbx,%rbx
  20178e:	b8 1a 02 20 00       	mov    $0x20021a,%eax
  201793:	48 0f 45 c3          	cmovne %rbx,%rax
  201797:	48 89 05 6a 2d 00 00 	mov    %rax,0x2d6a(%rip)        # 204508 <__progname_full>
  20179e:	48 89 05 5b 2d 00 00 	mov    %rax,0x2d5b(%rip)        # 204500 <__progname>
  2017a5:	48 ff c0             	inc    %rax
  2017a8:	0f b6 48 ff          	movzbl -0x1(%rax),%ecx
  2017ac:	83 f9 2f             	cmp    $0x2f,%ecx
  2017af:	74 ed                	je     20179e <__init_libc+0xa4>
  2017b1:	85 c9                	test   %ecx,%ecx
  2017b3:	75 f0                	jne    2017a5 <__init_libc+0xab>
  2017b5:	48 8b 4c 24 48       	mov    0x48(%rsp),%rcx
  2017ba:	48 85 c9             	test   %rcx,%rcx
  2017bd:	0f 84 bc 00 00 00    	je     20187f <__init_libc+0x185>
  2017c3:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
  2017c8:	44 8b 0d 81 2b 00 00 	mov    0x2b81(%rip),%r9d        # 204350 <__default_stacksize>
  2017cf:	48 8b 7c 24 40       	mov    0x40(%rsp),%rdi
  2017d4:	31 c0                	xor    %eax,%eax
  2017d6:	41 b8 00 00 80 00    	mov    $0x800000,%r8d
  2017dc:	4c 8b 15 75 1a 00 00 	mov    0x1a75(%rip),%r10        # 203258 <_fini+0x1008>
  2017e3:	31 d2                	xor    %edx,%edx
  2017e5:	49 89 f3             	mov    %rsi,%r11
  2017e8:	41 8b 1b             	mov    (%r11),%ebx
  2017eb:	83 fb 06             	cmp    $0x6,%ebx
  2017ee:	75 05                	jne    2017f5 <__init_libc+0xfb>
  2017f0:	48 89 f0             	mov    %rsi,%rax
  2017f3:	eb 0d                	jmp    201802 <__init_libc+0x108>
  2017f5:	83 fb 02             	cmp    $0x2,%ebx
  2017f8:	75 16                	jne    201810 <__init_libc+0x116>
  2017fa:	4d 85 d2             	test   %r10,%r10
  2017fd:	74 11                	je     201810 <__init_libc+0x116>
  2017ff:	4c 89 d0             	mov    %r10,%rax
  201802:	49 2b 43 10          	sub    0x10(%r11),%rax
  201806:	49 01 fb             	add    %rdi,%r11
  201809:	48 ff c9             	dec    %rcx
  20180c:	75 da                	jne    2017e8 <__init_libc+0xee>
  20180e:	eb 2d                	jmp    20183d <__init_libc+0x143>
  201810:	83 fb 07             	cmp    $0x7,%ebx
  201813:	49 0f 44 d3          	cmove  %r11,%rdx
  201817:	81 fb 51 e5 74 64    	cmp    $0x6474e551,%ebx
  20181d:	75 e7                	jne    201806 <__init_libc+0x10c>
  20181f:	49 8b 5b 28          	mov    0x28(%r11),%rbx
  201823:	45 89 ce             	mov    %r9d,%r14d
  201826:	4c 39 f3             	cmp    %r14,%rbx
  201829:	76 db                	jbe    201806 <__init_libc+0x10c>
  20182b:	4c 39 c3             	cmp    %r8,%rbx
  20182e:	49 0f 43 d8          	cmovae %r8,%rbx
  201832:	89 1d 18 2b 00 00    	mov    %ebx,0x2b18(%rip)        # 204350 <__default_stacksize>
  201838:	41 89 d9             	mov    %ebx,%r9d
  20183b:	eb c9                	jmp    201806 <__init_libc+0x10c>
  20183d:	48 85 d2             	test   %rdx,%rdx
  201840:	74 3d                	je     20187f <__init_libc+0x185>
  201842:	48 03 42 10          	add    0x10(%rdx),%rax
  201846:	48 89 05 23 2b 00 00 	mov    %rax,0x2b23(%rip)        # 204370 <main_tls+0x8>
  20184d:	48 8b 4a 20          	mov    0x20(%rdx),%rcx
  201851:	48 89 0d 20 2b 00 00 	mov    %rcx,0x2b20(%rip)        # 204378 <main_tls+0x10>
  201858:	48 8b 4a 28          	mov    0x28(%rdx),%rcx
  20185c:	48 8b 5a 30          	mov    0x30(%rdx),%rbx
  201860:	48 89 1d 21 2b 00 00 	mov    %rbx,0x2b21(%rip)        # 204388 <main_tls+0x20>
  201867:	48 c7 05 de 30 00 00 	movq   $0x1,0x30de(%rip)        # 204950 <__libc+0x28>
  20186e:	01 00 00 00
  201872:	48 c7 05 bb 30 00 00 	movq   $0x204368,0x30bb(%rip)        # 204938 <__libc+0x10>
  201879:	68 43 20 00
  20187d:	eb 15                	jmp    201894 <__init_libc+0x19a>
  20187f:	48 8b 1d 02 2b 00 00 	mov    0x2b02(%rip),%rbx        # 204388 <main_tls+0x20>
  201886:	48 8b 0d f3 2a 00 00 	mov    0x2af3(%rip),%rcx        # 204380 <main_tls+0x18>
  20188d:	48 8b 05 dc 2a 00 00 	mov    0x2adc(%rip),%rax        # 204370 <main_tls+0x8>
  201894:	48 01 c8             	add    %rcx,%rax
  201897:	48 f7 d8             	neg    %rax
  20189a:	48 8d 53 ff          	lea    -0x1(%rbx),%rdx
  20189e:	48 21 c2             	and    %rax,%rdx
  2018a1:	48 01 ca             	add    %rcx,%rdx
  2018a4:	48 89 15 d5 2a 00 00 	mov    %rdx,0x2ad5(%rip)        # 204380 <main_tls+0x18>
  2018ab:	48 89 15 de 2a 00 00 	mov    %rdx,0x2ade(%rip)        # 204390 <main_tls+0x28>
  2018b2:	48 83 fb 07          	cmp    $0x7,%rbx
  2018b6:	77 10                	ja     2018c8 <__init_libc+0x1ce>
  2018b8:	48 c7 05 c5 2a 00 00 	movq   $0x8,0x2ac5(%rip)        # 204388 <main_tls+0x20>
  2018bf:	08 00 00 00
  2018c3:	bb 08 00 00 00       	mov    $0x8,%ebx
  2018c8:	48 89 1d 79 30 00 00 	mov    %rbx,0x3079(%rip)        # 204948 <__libc+0x20>
  2018cf:	48 8d 34 1a          	lea    (%rdx,%rbx,1),%rsi
  2018d3:	48 81 c6 df 00 00 00 	add    $0xdf,%rsi
  2018da:	48 83 e6 f8          	and    $0xfffffffffffffff8,%rsi
  2018de:	48 89 35 5b 30 00 00 	mov    %rsi,0x305b(%rip)        # 204940 <__libc+0x18>
  2018e5:	41 be a0 43 20 00    	mov    $0x2043a0,%r14d
  2018eb:	48 81 fe 51 01 00 00 	cmp    $0x151,%rsi
  2018f2:	72 2f                	jb     201923 <__init_libc+0x229>
  2018f4:	b8 09 00 00 00       	mov    $0x9,%eax
  2018f9:	ba 03 00 00 00       	mov    $0x3,%edx
  2018fe:	41 ba 22 00 00 00    	mov    $0x22,%r10d
  201904:	31 ff                	xor    %edi,%edi
  201906:	49 c7 c0 ff ff ff ff 	mov    $0xffffffffffffffff,%r8
  20190d:	45 31 c9             	xor    %r9d,%r9d
  201910:	0f 05                	syscall
  201912:	49 89 c6             	mov    %rax,%r14
  201915:	48 8b 35 24 30 00 00 	mov    0x3024(%rip),%rsi        # 204940 <__libc+0x18>
  20191c:	48 8b 1d 25 30 00 00 	mov    0x3025(%rip),%rbx        # 204948 <__libc+0x20>
  201923:	4a 8d 04 36          	lea    (%rsi,%r14,1),%rax
  201927:	48 05 38 ff ff ff    	add    $0xffffffffffffff38,%rax
  20192d:	48 f7 db             	neg    %rbx
  201930:	48 21 c3             	and    %rax,%rbx
  201933:	4c 8b 3d fe 2f 00 00 	mov    0x2ffe(%rip),%r15        # 204938 <__libc+0x10>
  20193a:	4d 85 ff             	test   %r15,%r15
  20193d:	74 2f                	je     20196e <__init_libc+0x274>
  20193f:	4d 8d 66 08          	lea    0x8(%r14),%r12
  201943:	48 89 d8             	mov    %rbx,%rax
  201946:	49 2b 47 28          	sub    0x28(%r15),%rax
  20194a:	49 89 04 24          	mov    %rax,(%r12)
  20194e:	48 89 df             	mov    %rbx,%rdi
  201951:	49 2b 7f 28          	sub    0x28(%r15),%rdi
  201955:	49 8b 77 08          	mov    0x8(%r15),%rsi
  201959:	49 8b 57 10          	mov    0x10(%r15),%rdx
  20195d:	e8 7a fc ff ff       	callq  2015dc <memcpy>
  201962:	4d 8b 3f             	mov    (%r15),%r15
  201965:	49 83 c4 08          	add    $0x8,%r12
  201969:	4d 85 ff             	test   %r15,%r15
  20196c:	75 d5                	jne    201943 <__init_libc+0x249>
  20196e:	48 8b 05 db 2f 00 00 	mov    0x2fdb(%rip),%rax        # 204950 <__libc+0x28>
  201975:	49 89 06             	mov    %rax,(%r14)
  201978:	4c 89 73 08          	mov    %r14,0x8(%rbx)
  20197c:	48 89 1b             	mov    %rbx,(%rbx)
  20197f:	48 89 df             	mov    %rbx,%rdi
  201982:	e8 89 fc ff ff       	callq  201610 <__set_thread_area>
  201987:	85 c0                	test   %eax,%eax
  201989:	78 4d                	js     2019d8 <__init_libc+0x2de>
  20198b:	75 07                	jne    201994 <__init_libc+0x29a>
  20198d:	c6 05 94 2f 00 00 01 	movb   $0x1,0x2f94(%rip)        # 204928 <__libc>
  201994:	c7 43 38 02 00 00 00 	movl   $0x2,0x38(%rbx)
  20199b:	b8 da 00 00 00       	mov    $0xda,%eax
  2019a0:	bf 60 43 20 00       	mov    $0x204360,%edi
  2019a5:	0f 05                	syscall
  2019a7:	89 43 30             	mov    %eax,0x30(%rbx)
  2019aa:	48 c7 83 a8 00 00 00 	movq   $0x204960,0xa8(%rbx)
  2019b1:	60 49 20 00
  2019b5:	48 8d 83 88 00 00 00 	lea    0x88(%rbx),%rax
  2019bc:	48 89 83 88 00 00 00 	mov    %rax,0x88(%rbx)
  2019c3:	48 8b 05 2e 2b 00 00 	mov    0x2b2e(%rip),%rax        # 2044f8 <__sysinfo>
  2019ca:	48 89 43 20          	mov    %rax,0x20(%rbx)
  2019ce:	48 89 5b 10          	mov    %rbx,0x10(%rbx)
  2019d2:	48 89 5b 18          	mov    %rbx,0x18(%rbx)
  2019d6:	eb 01                	jmp    2019d9 <__init_libc+0x2df>
  2019d8:	f4                   	hlt
  2019d9:	48 8b b4 24 e8 00 00 	mov    0xe8(%rsp),%rsi
  2019e0:	00
  2019e1:	48 85 f6             	test   %rsi,%rsi
  2019e4:	74 11                	je     2019f7 <__init_libc+0x2fd>
  2019e6:	bf 90 49 20 00       	mov    $0x204990,%edi
  2019eb:	ba 08 00 00 00       	mov    $0x8,%edx
  2019f0:	e8 e7 fb ff ff       	callq  2015dc <memcpy>
  2019f5:	eb 13                	jmp    201a0a <__init_libc+0x310>
  2019f7:	b8 90 49 20 00       	mov    $0x204990,%eax
  2019fc:	48 69 c0 6d 4e c6 41 	imul   $0x41c64e6d,%rax,%rax
  201a03:	48 89 05 86 2f 00 00 	mov    %rax,0x2f86(%rip)        # 204990 <__stack_chk_guard>
  201a0a:	c6 05 80 2f 00 00 00 	movb   $0x0,0x2f80(%rip)        # 204991 <__stack_chk_guard+0x1>
  201a11:	48 8b 05 78 2f 00 00 	mov    0x2f78(%rip),%rax        # 204990 <__stack_chk_guard>
  201a18:	64 48 8b 0c 25 00 00 	mov    %fs:0x0,%rcx
  201a1f:	00 00
  201a21:	48 89 41 28          	mov    %rax,0x28(%rcx)
  201a25:	48 8b 44 24 78       	mov    0x78(%rsp),%rax
  201a2a:	48 3b 84 24 80 00 00 	cmp    0x80(%rsp),%rax
  201a31:	00
  201a32:	75 1d                	jne    201a51 <__init_libc+0x357>
  201a34:	48 8b 84 24 88 00 00 	mov    0x88(%rsp),%rax
  201a3b:	00
  201a3c:	48 3b 84 24 90 00 00 	cmp    0x90(%rsp),%rax
  201a43:	00
  201a44:	75 0b                	jne    201a51 <__init_libc+0x357>
  201a46:	48 83 bc 24 d8 00 00 	cmpq   $0x0,0xd8(%rsp)
  201a4d:	00 00
  201a4f:	74 5b                	je     201aac <__init_libc+0x3b2>
  201a51:	0f 28 05 c8 e7 ff ff 	movaps -0x1838(%rip),%xmm0        # 200220 <_start-0x1380>
  201a58:	48 89 e7             	mov    %rsp,%rdi
  201a5b:	0f 29 07             	movaps %xmm0,(%rdi)
  201a5e:	48 c7 47 10 02 00 00 	movq   $0x2,0x10(%rdi)
  201a65:	00
  201a66:	b8 07 00 00 00       	mov    $0x7,%eax
  201a6b:	be 03 00 00 00       	mov    $0x3,%esi
  201a70:	31 d2                	xor    %edx,%edx
  201a72:	0f 05                	syscall
  201a74:	85 c0                	test   %eax,%eax
  201a76:	79 01                	jns    201a79 <__init_libc+0x37f>
  201a78:	f4                   	hlt
  201a79:	ba 06 00 00 00       	mov    $0x6,%edx
  201a7e:	bf 00 02 20 00       	mov    $0x200200,%edi
  201a83:	be 02 80 00 00       	mov    $0x8002,%esi
  201a88:	f6 04 14 20          	testb  $0x20,(%rsp,%rdx,1)
  201a8c:	74 0d                	je     201a9b <__init_libc+0x3a1>
  201a8e:	b8 02 00 00 00       	mov    $0x2,%eax
  201a93:	0f 05                	syscall
  201a95:	48 85 c0             	test   %rax,%rax
  201a98:	79 01                	jns    201a9b <__init_libc+0x3a1>
  201a9a:	f4                   	hlt
  201a9b:	48 83 c2 08          	add    $0x8,%rdx
  201a9f:	48 83 fa 1e          	cmp    $0x1e,%rdx
  201aa3:	75 e3                	jne    201a88 <__init_libc+0x38e>
  201aa5:	c6 05 7e 2e 00 00 01 	movb   $0x1,0x2e7e(%rip)        # 20492a <__libc+0x2>
  201aac:	48 81 c4 58 01 00 00 	add    $0x158,%rsp
  201ab3:	5b                   	pop    %rbx
  201ab4:	41 5c                	pop    %r12
  201ab6:	41 5e                	pop    %r14
  201ab8:	41 5f                	pop    %r15
  201aba:	c3                   	retq

0000000000201abb <__libc_start_main>:
  201abb:	41 57                	push   %r15
  201abd:	41 56                	push   %r14
  201abf:	53                   	push   %rbx
  201ac0:	48 89 d3             	mov    %rdx,%rbx
  201ac3:	49 89 fe             	mov    %rdi,%r14
  201ac6:	4c 63 fe             	movslq %esi,%r15
  201ac9:	4a 8d 3c fa          	lea    (%rdx,%r15,8),%rdi
  201acd:	48 83 c7 08          	add    $0x8,%rdi
  201ad1:	48 8b 32             	mov    (%rdx),%rsi
  201ad4:	e8 21 fc ff ff       	callq  2016fa <__init_libc>
  201ad9:	b8 ee 1a 20 00       	mov    $0x201aee,%eax
  201ade:	4c 89 f7             	mov    %r14,%rdi
  201ae1:	44 89 fe             	mov    %r15d,%esi
  201ae4:	48 89 da             	mov    %rbx,%rdx
  201ae7:	5b                   	pop    %rbx
  201ae8:	41 5e                	pop    %r14
  201aea:	41 5f                	pop    %r15
  201aec:	ff e0                	jmpq   *%rax

0000000000201aee <libc_start_main_stage2>:
  201aee:	41 57                	push   %r15
  201af0:	41 56                	push   %r14
  201af2:	41 54                	push   %r12
  201af4:	53                   	push   %rbx
  201af5:	50                   	push   %rax
  201af6:	48 89 d3             	mov    %rdx,%rbx
  201af9:	49 89 fe             	mov    %rdi,%r14
  201afc:	4c 63 fe             	movslq %esi,%r15
  201aff:	4e 8d 24 fa          	lea    (%rdx,%r15,8),%r12
  201b03:	49 83 c4 08          	add    $0x8,%r12
  201b07:	e8 13 00 00 00       	callq  201b1f <libc_start_init>
  201b0c:	44 89 ff             	mov    %r15d,%edi
  201b0f:	48 89 de             	mov    %rbx,%rsi
  201b12:	4c 89 e2             	mov    %r12,%rdx
  201b15:	41 ff d6             	callq  *%r14
  201b18:	89 c7                	mov    %eax,%edi
  201b1a:	e8 33 00 00 00       	callq  201b52 <exit>

0000000000201b1f <libc_start_init>:
  201b1f:	41 56                	push   %r14
  201b21:	53                   	push   %rbx
  201b22:	50                   	push   %rax
  201b23:	e8 25 07 00 00       	callq  20224d <_init>
  201b28:	48 8d 1d 71 fa ff ff 	lea    -0x58f(%rip),%rbx        # 2015a0 <_start>
  201b2f:	48 81 fb a0 15 20 00 	cmp    $0x2015a0,%rbx
  201b36:	73 12                	jae    201b4a <libc_start_init+0x2b>
  201b38:	4c 8d 35 61 fa ff ff 	lea    -0x59f(%rip),%r14        # 2015a0 <_start>
  201b3f:	ff 13                	callq  *(%rbx)
  201b41:	48 83 c3 08          	add    $0x8,%rbx
  201b45:	4c 39 f3             	cmp    %r14,%rbx
  201b48:	72 f5                	jb     201b3f <libc_start_init+0x20>
  201b4a:	48 83 c4 08          	add    $0x8,%rsp
  201b4e:	5b                   	pop    %rbx
  201b4f:	41 5e                	pop    %r14
  201b51:	c3                   	retq

0000000000201b52 <exit>:
  201b52:	53                   	push   %rbx
  201b53:	89 fb                	mov    %edi,%ebx
  201b55:	e8 0c 00 00 00       	callq  201b66 <libc_exit_fini>
  201b5a:	e8 4c 04 00 00       	callq  201fab <__stdio_exit>
  201b5f:	89 df                	mov    %ebx,%edi
  201b61:	e8 3a 00 00 00       	callq  201ba0 <_Exit>

0000000000201b66 <libc_exit_fini>:
  201b66:	41 56                	push   %r14
  201b68:	53                   	push   %rbx
  201b69:	50                   	push   %rax
  201b6a:	48 8d 0d 2f fa ff ff 	lea    -0x5d1(%rip),%rcx        # 2015a0 <_start>
  201b71:	48 81 f9 a0 15 20 00 	cmp    $0x2015a0,%rcx
  201b78:	76 18                	jbe    201b92 <libc_exit_fini+0x2c>
  201b7a:	48 8d 1d 1f fa ff ff 	lea    -0x5e1(%rip),%rbx        # 2015a0 <_start>
  201b81:	4c 8d 71 f8          	lea    -0x8(%rcx),%r14
  201b85:	31 c0                	xor    %eax,%eax
  201b87:	ff 51 f8             	callq  *-0x8(%rcx)
  201b8a:	4c 89 f1             	mov    %r14,%rcx
  201b8d:	49 39 de             	cmp    %rbx,%r14
  201b90:	77 ef                	ja     201b81 <libc_exit_fini+0x1b>
  201b92:	31 c0                	xor    %eax,%eax
  201b94:	48 83 c4 08          	add    $0x8,%rsp
  201b98:	5b                   	pop    %rbx
  201b99:	41 5e                	pop    %r14
  201b9b:	e9 b0 06 00 00       	jmpq   202250 <_fini>

0000000000201ba0 <_Exit>:
  201ba0:	48 63 ff             	movslq %edi,%rdi
  201ba3:	b8 e7 00 00 00       	mov    $0xe7,%eax
  201ba8:	0f 05                	syscall
  201baa:	b8 3c 00 00 00       	mov    $0x3c,%eax
  201baf:	0f 05                	syscall
  201bb1:	eb f7                	jmp    201baa <_Exit+0xa>

0000000000201bb3 <puts>:                                (3)
  201bb3:	55                   	push   %rbp
  201bb4:	41 57                	push   %r15
  201bb6:	41 56                	push   %r14
  201bb8:	53                   	push   %rbx
  201bb9:	50                   	push   %rax
  201bba:	83 3d 2b 27 00 00 00 	cmpl   $0x0,0x272b(%rip)        # 2042ec <__stdout_FILE+0x8c>
  201bc1:	78 0e                	js     201bd1 <puts+0x1e>
  201bc3:	bf 60 42 20 00       	mov    $0x204260,%edi
  201bc8:	e8 c0 01 00 00       	callq  201d8d <__lockfile>
  201bcd:	89 c3                	mov    %eax,%ebx
  201bcf:	eb 02                	jmp    201bd3 <puts+0x20>
  201bd1:	31 db                	xor    %ebx,%ebx
  201bd3:	b8 11 02 20 00       	mov    $0x200211,%eax
  201bd8:	a8 07                	test   $0x7,%al
  201bda:	41 be 12 02 20 00    	mov    $0x200212,%r14d
  201be0:	4c 0f 44 f0          	cmove  %rax,%r14
  201be4:	b8 0b 02 20 00       	mov    $0x20020b,%eax
  201be9:	a8 07                	test   $0x7,%al
  201beb:	0f 94 c2             	sete   %dl
  201bee:	b9 0a 02 20 00       	mov    $0x20020a,%ecx
  201bf3:	f6 c1 07             	test   $0x7,%cl
  201bf6:	48 0f 44 c1          	cmove  %rcx,%rax
  201bfa:	40 0f 94 c6          	sete   %sil
  201bfe:	40 08 d6             	or     %dl,%sil
  201c01:	ba 0c 02 20 00       	mov    $0x20020c,%edx
  201c06:	48 0f 44 c2          	cmove  %rdx,%rax
  201c0a:	f6 c2 07             	test   $0x7,%dl
  201c0d:	0f 94 c2             	sete   %dl
  201c10:	40 08 f2             	or     %sil,%dl
  201c13:	be 0d 02 20 00       	mov    $0x20020d,%esi
  201c18:	48 0f 44 c6          	cmove  %rsi,%rax
  201c1c:	40 f6 c6 07          	test   $0x7,%sil
  201c20:	40 0f 94 c6          	sete   %sil
  201c24:	40 08 d6             	or     %dl,%sil
  201c27:	ba 0e 02 20 00       	mov    $0x20020e,%edx
  201c2c:	48 0f 44 c2          	cmove  %rdx,%rax
  201c30:	f6 c2 07             	test   $0x7,%dl
  201c33:	0f 94 c2             	sete   %dl
  201c36:	40 08 f2             	or     %sil,%dl
  201c39:	be 0f 02 20 00       	mov    $0x20020f,%esi
  201c3e:	48 0f 44 c6          	cmove  %rsi,%rax
  201c42:	40 f6 c6 07          	test   $0x7,%sil
  201c46:	40 0f 94 c6          	sete   %sil
  201c4a:	40 08 d6             	or     %dl,%sil
  201c4d:	ba 10 02 20 00       	mov    $0x200210,%edx
  201c52:	48 0f 44 c2          	cmove  %rdx,%rax
  201c56:	f6 c2 07             	test   $0x7,%dl
  201c59:	4c 0f 44 f0          	cmove  %rax,%r14
  201c5d:	40 84 f6             	test   %sil,%sil
  201c60:	4c 0f 45 f0          	cmovne %rax,%r14
  201c64:	49 8d 46 f8          	lea    -0x8(%r14),%rax
  201c68:	49 29 ce             	sub    %rcx,%r14
  201c6b:	49 83 c6 f7          	add    $0xfffffffffffffff7,%r14
  201c6f:	48 b9 80 80 80 80 80 	movabs $0x8080808080808080,%rcx
  201c76:	80 80 80
  201c79:	48 ba ff fe fe fe fe 	movabs $0xfefefefefefefeff,%rdx
  201c80:	fe fe fe
  201c83:	48 8b 70 08          	mov    0x8(%rax),%rsi
  201c87:	48 83 c0 08          	add    $0x8,%rax
  201c8b:	48 89 f7             	mov    %rsi,%rdi
  201c8e:	48 f7 d7             	not    %rdi
  201c91:	48 21 cf             	and    %rcx,%rdi
  201c94:	48 01 d6             	add    %rdx,%rsi
  201c97:	49 83 c6 08          	add    $0x8,%r14
  201c9b:	48 85 f7             	test   %rsi,%rdi
  201c9e:	74 e3                	je     201c83 <puts+0xd0>
  201ca0:	49 ff c6             	inc    %r14
  201ca3:	80 38 00             	cmpb   $0x0,(%rax)
  201ca6:	48 8d 40 01          	lea    0x1(%rax),%rax
  201caa:	75 f4                	jne    201ca0 <puts+0xed>
  201cac:	83 3d 39 26 00 00 00 	cmpl   $0x0,0x2639(%rip)        # 2042ec <__stdout_FILE+0x8c>
  201cb3:	78 22                	js     201cd7 <puts+0x124>
  201cb5:	bf 60 42 20 00       	mov    $0x204260,%edi
  201cba:	e8 ce 00 00 00       	callq  201d8d <__lockfile>
  201cbf:	89 c5                	mov    %eax,%ebp
  201cc1:	4c 89 f7             	mov    %r14,%rdi
  201cc4:	e8 94 01 00 00       	callq  201e5d <__fwritex>
  201cc9:	49 89 c7             	mov    %rax,%r15
  201ccc:	85 ed                	test   %ebp,%ebp
  201cce:	74 12                	je     201ce2 <puts+0x12f>
  201cd0:	e8 51 01 00 00       	callq  201e26 <__unlockfile>
  201cd5:	eb 0b                	jmp    201ce2 <puts+0x12f>
  201cd7:	4c 89 f7             	mov    %r14,%rdi
  201cda:	e8 7e 01 00 00       	callq  201e5d <__fwritex>
  201cdf:	49 89 c7             	mov    %rax,%r15
  201ce2:	4d 39 f7             	cmp    %r14,%r15
  201ce5:	0f 85 88 00 00 00    	jne    201d73 <puts+0x1c0>
  201ceb:	83 3d fe 25 00 00 0a 	cmpl   $0xa,0x25fe(%rip)        # 2042f0 <__stdout_FILE+0x90>
  201cf2:	75 09                	jne    201cfd <puts+0x14a>
  201cf4:	48 8b 05 85 25 00 00 	mov    0x2585(%rip),%rax        # 204280 <__stdout_FILE+0x20>
  201cfb:	eb 20                	jmp    201d1d <puts+0x16a>
  201cfd:	48 8b 05 84 25 00 00 	mov    0x2584(%rip),%rax        # 204288 <__stdout_FILE+0x28>
  201d04:	48 3b 05 75 25 00 00 	cmp    0x2575(%rip),%rax        # 204280 <__stdout_FILE+0x20>
  201d0b:	74 10                	je     201d1d <puts+0x16a>
  201d0d:	48 8d 48 01          	lea    0x1(%rax),%rcx
  201d11:	48 89 0d 70 25 00 00 	mov    %rcx,0x2570(%rip)        # 204288 <__stdout_FILE+0x28>
  201d18:	c6 00 0a             	movb   $0xa,(%rax)
  201d1b:	eb 56                	jmp    201d73 <puts+0x1c0>
  201d1d:	c6 44 24 07 0a       	movb   $0xa,0x7(%rsp)
  201d22:	48 85 c0             	test   %rax,%rax
  201d25:	74 25                	je     201d4c <puts+0x199>
  201d27:	48 8b 0d 5a 25 00 00 	mov    0x255a(%rip),%rcx        # 204288 <__stdout_FILE+0x28>
  201d2e:	48 39 c1             	cmp    %rax,%rcx
  201d31:	74 2b                	je     201d5e <puts+0x1ab>
  201d33:	83 3d b6 25 00 00 0a 	cmpl   $0xa,0x25b6(%rip)        # 2042f0 <__stdout_FILE+0x90>
  201d3a:	74 22                	je     201d5e <puts+0x1ab>
  201d3c:	48 8d 41 01          	lea    0x1(%rcx),%rax
  201d40:	48 89 05 41 25 00 00 	mov    %rax,0x2541(%rip)        # 204288 <__stdout_FILE+0x28>
  201d47:	c6 01 0a             	movb   $0xa,(%rcx)
  201d4a:	eb 27                	jmp    201d73 <puts+0x1c0>
  201d4c:	e8 00 02 00 00       	callq  201f51 <__towrite>
  201d51:	85 c0                	test   %eax,%eax
  201d53:	75 1e                	jne    201d73 <puts+0x1c0>
  201d55:	48 8b 05 24 25 00 00 	mov    0x2524(%rip),%rax        # 204280 <__stdout_FILE+0x20>
  201d5c:	eb c9                	jmp    201d27 <puts+0x174>
  201d5e:	48 8d 74 24 07       	lea    0x7(%rsp),%rsi
  201d63:	bf 60 42 20 00       	mov    $0x204260,%edi
  201d68:	ba 01 00 00 00       	mov    $0x1,%edx
  201d6d:	ff 15 35 25 00 00    	callq  *0x2535(%rip)        # 2042a8 <__stdout_FILE+0x48>
  201d73:	48 83 c4 08          	add    $0x8,%rsp
  201d77:	85 db                	test   %ebx,%ebx
  201d79:	74 0b                	je     201d86 <puts+0x1d3>
  201d7b:	5b                   	pop    %rbx
  201d7c:	41 5e                	pop    %r14
  201d7e:	41 5f                	pop    %r15
  201d80:	5d                   	pop    %rbp
  201d81:	e9 a0 00 00 00       	jmpq   201e26 <__unlockfile>
  201d86:	5b                   	pop    %rbx
  201d87:	41 5e                	pop    %r14
  201d89:	41 5f                	pop    %r15
  201d8b:	5d                   	pop    %rbp
  201d8c:	c3                   	retq

0000000000201d8d <__lockfile>:
  201d8d:	b8 ff ff ff bf       	mov    $0xbfffffff,%eax
  201d92:	23 87 8c 00 00 00    	and    0x8c(%rdi),%eax
  201d98:	64 48 8b 0c 25 00 00 	mov    %fs:0x0,%rcx
  201d9f:	00 00
  201da1:	44 8b 49 30          	mov    0x30(%rcx),%r9d
  201da5:	45 31 c0             	xor    %r8d,%r8d
  201da8:	44 39 c8             	cmp    %r9d,%eax
  201dab:	74 75                	je     201e22 <__lockfile+0x95>
  201dad:	48 81 c7 8c 00 00 00 	add    $0x8c,%rdi
  201db4:	31 c0                	xor    %eax,%eax
  201db6:	f0 44 0f b1 0f       	lock cmpxchg %r9d,(%rdi)
  201dbb:	41 b8 01 00 00 00    	mov    $0x1,%r8d
  201dc1:	85 c0                	test   %eax,%eax
  201dc3:	74 5d                	je     201e22 <__lockfile+0x95>
  201dc5:	41 81 c9 00 00 00 40 	or     $0x40000000,%r9d
  201dcc:	31 c0                	xor    %eax,%eax
  201dce:	f0 44 0f b1 0f       	lock cmpxchg %r9d,(%rdi)
  201dd3:	85 c0                	test   %eax,%eax
  201dd5:	74 4b                	je     201e22 <__lockfile+0x95>
  201dd7:	89 c1                	mov    %eax,%ecx
  201dd9:	89 ca                	mov    %ecx,%edx
  201ddb:	81 ca 00 00 00 40    	or     $0x40000000,%edx
  201de1:	0f ba e1 1e          	bt     $0x1e,%ecx
  201de5:	72 0a                	jb     201df1 <__lockfile+0x64>
  201de7:	89 c8                	mov    %ecx,%eax
  201de9:	f0 0f b1 17          	lock cmpxchg %edx,(%rdi)
  201ded:	39 c8                	cmp    %ecx,%eax
  201def:	75 24                	jne    201e15 <__lockfile+0x88>
  201df1:	48 63 d2             	movslq %edx,%rdx
  201df4:	b8 ca 00 00 00       	mov    $0xca,%eax
  201df9:	be 80 00 00 00       	mov    $0x80,%esi
  201dfe:	45 31 d2             	xor    %r10d,%r10d
  201e01:	0f 05                	syscall
  201e03:	48 83 f8 da          	cmp    $0xffffffffffffffda,%rax
  201e07:	75 0c                	jne    201e15 <__lockfile+0x88>
  201e09:	b8 ca 00 00 00       	mov    $0xca,%eax
  201e0e:	31 f6                	xor    %esi,%esi
  201e10:	45 31 d2             	xor    %r10d,%r10d
  201e13:	0f 05                	syscall
  201e15:	31 c0                	xor    %eax,%eax
  201e17:	f0 44 0f b1 0f       	lock cmpxchg %r9d,(%rdi)
  201e1c:	89 c1                	mov    %eax,%ecx
  201e1e:	85 c0                	test   %eax,%eax
  201e20:	75 b7                	jne    201dd9 <__lockfile+0x4c>
  201e22:	44 89 c0             	mov    %r8d,%eax
  201e25:	c3                   	retq

0000000000201e26 <__unlockfile>:
  201e26:	31 c0                	xor    %eax,%eax
  201e28:	87 05 be 24 00 00    	xchg   %eax,0x24be(%rip)        # 2042ec <__stdout_FILE+0x8c>
  201e2e:	0f ba e0 1e          	bt     $0x1e,%eax
  201e32:	73 28                	jae    201e5c <__unlockfile+0x36>
  201e34:	b8 ca 00 00 00       	mov    $0xca,%eax
  201e39:	bf ec 42 20 00       	mov    $0x2042ec,%edi
  201e3e:	be 81 00 00 00       	mov    $0x81,%esi
  201e43:	ba 01 00 00 00       	mov    $0x1,%edx
  201e48:	0f 05                	syscall
  201e4a:	48 83 f8 da          	cmp    $0xffffffffffffffda,%rax
  201e4e:	75 0c                	jne    201e5c <__unlockfile+0x36>
  201e50:	b8 ca 00 00 00       	mov    $0xca,%eax
  201e55:	be 01 00 00 00       	mov    $0x1,%esi
  201e5a:	0f 05                	syscall
  201e5c:	c3                   	retq

0000000000201e5d <__fwritex>:
  201e5d:	41 57                	push   %r15
  201e5f:	41 56                	push   %r14
  201e61:	41 54                	push   %r12
  201e63:	53                   	push   %rbx
  201e64:	50                   	push   %rax
  201e65:	48 89 fb             	mov    %rdi,%rbx
  201e68:	48 8b 05 11 24 00 00 	mov    0x2411(%rip),%rax        # 204280 <__stdout_FILE+0x20>
  201e6f:	48 85 c0             	test   %rax,%rax
  201e72:	0f 84 9c 00 00 00    	je     201f14 <__fwritex+0xb7>
  201e78:	48 8b 3d 09 24 00 00 	mov    0x2409(%rip),%rdi        # 204288 <__stdout_FILE+0x28>
  201e7f:	48 29 f8             	sub    %rdi,%rax
  201e82:	48 39 d8             	cmp    %rbx,%rax
  201e85:	73 21                	jae    201ea8 <__fwritex+0x4b>
  201e87:	48 8b 05 1a 24 00 00 	mov    0x241a(%rip),%rax        # 2042a8 <__stdout_FILE+0x48>
  201e8e:	bf 60 42 20 00       	mov    $0x204260,%edi
  201e93:	be 0a 02 20 00       	mov    $0x20020a,%esi
  201e98:	48 89 da             	mov    %rbx,%rdx
  201e9b:	48 83 c4 08          	add    $0x8,%rsp
  201e9f:	5b                   	pop    %rbx
  201ea0:	41 5c                	pop    %r12
  201ea2:	41 5e                	pop    %r14
  201ea4:	41 5f                	pop    %r15
  201ea6:	ff e0                	jmpq   *%rax
  201ea8:	be 0a 02 20 00       	mov    $0x20020a,%esi
  201ead:	83 3d 3c 24 00 00 00 	cmpl   $0x0,0x243c(%rip)        # 2042f0 <__stdout_FILE+0x90>
  201eb4:	78 6b                	js     201f21 <__fwritex+0xc4>
  201eb6:	49 c7 c4 ff ff ff ff 	mov    $0xffffffffffffffff,%r12
  201ebd:	41 bf 0b 02 20 00    	mov    $0x20020b,%r15d
  201ec3:	45 31 f6             	xor    %r14d,%r14d
  201ec6:	31 c0                	xor    %eax,%eax
  201ec8:	48 89 d9             	mov    %rbx,%rcx
  201ecb:	48 01 c1             	add    %rax,%rcx
  201ece:	74 54                	je     201f24 <__fwritex+0xc7>
  201ed0:	49 ff c4             	inc    %r12
  201ed3:	49 ff cf             	dec    %r15
  201ed6:	80 bc 03 09 02 20 00 	cmpb   $0xa,0x200209(%rbx,%rax,1)
  201edd:	0a
  201ede:	48 8d 40 ff          	lea    -0x1(%rax),%rax
  201ee2:	75 e4                	jne    201ec8 <__fwritex+0x6b>
  201ee4:	49 89 de             	mov    %rbx,%r14
  201ee7:	4d 29 e6             	sub    %r12,%r14
  201eea:	bf 60 42 20 00       	mov    $0x204260,%edi
  201eef:	be 0a 02 20 00       	mov    $0x20020a,%esi
  201ef4:	4c 89 f2             	mov    %r14,%rdx
  201ef7:	ff 15 ab 23 00 00    	callq  *0x23ab(%rip)        # 2042a8 <__stdout_FILE+0x48>
  201efd:	4c 39 f0             	cmp    %r14,%rax
  201f00:	72 37                	jb     201f39 <__fwritex+0xdc>
  201f02:	49 01 df             	add    %rbx,%r15
  201f05:	48 8b 3d 7c 23 00 00 	mov    0x237c(%rip),%rdi        # 204288 <__stdout_FILE+0x28>
  201f0c:	4c 89 e3             	mov    %r12,%rbx
  201f0f:	4c 89 fe             	mov    %r15,%rsi
  201f12:	eb 10                	jmp    201f24 <__fwritex+0xc7>
  201f14:	e8 38 00 00 00       	callq  201f51 <__towrite>
  201f19:	85 c0                	test   %eax,%eax
  201f1b:	74 28                	je     201f45 <__fwritex+0xe8>
  201f1d:	31 c0                	xor    %eax,%eax
  201f1f:	eb 18                	jmp    201f39 <__fwritex+0xdc>
  201f21:	45 31 f6             	xor    %r14d,%r14d
  201f24:	48 89 da             	mov    %rbx,%rdx
  201f27:	e8 b0 f6 ff ff       	callq  2015dc <memcpy>
  201f2c:	48 01 1d 55 23 00 00 	add    %rbx,0x2355(%rip)        # 204288 <__stdout_FILE+0x28>
  201f33:	49 01 de             	add    %rbx,%r14
  201f36:	4c 89 f0             	mov    %r14,%rax
  201f39:	48 83 c4 08          	add    $0x8,%rsp
  201f3d:	5b                   	pop    %rbx
  201f3e:	41 5c                	pop    %r12
  201f40:	41 5e                	pop    %r14
  201f42:	41 5f                	pop    %r15
  201f44:	c3                   	retq
  201f45:	48 8b 05 34 23 00 00 	mov    0x2334(%rip),%rax        # 204280 <__stdout_FILE+0x20>
  201f4c:	e9 27 ff ff ff       	jmpq   201e78 <__fwritex+0x1b>

0000000000201f51 <__towrite>:
  201f51:	8b 05 91 23 00 00    	mov    0x2391(%rip),%eax        # 2042e8 <__stdout_FILE+0x88>
  201f57:	8d 48 ff             	lea    -0x1(%rax),%ecx
  201f5a:	09 c1                	or     %eax,%ecx
  201f5c:	89 0d 86 23 00 00    	mov    %ecx,0x2386(%rip)        # 2042e8 <__stdout_FILE+0x88>
  201f62:	8b 05 f8 22 00 00    	mov    0x22f8(%rip),%eax        # 204260 <__stdout_FILE>
  201f68:	a8 08                	test   $0x8,%al
  201f6a:	75 30                	jne    201f9c <__towrite+0x4b>
  201f6c:	0f 57 c0             	xorps  %xmm0,%xmm0
  201f6f:	0f 11 05 f2 22 00 00 	movups %xmm0,0x22f2(%rip)        # 204268 <__stdout_FILE+0x8>
  201f76:	48 8b 05 3b 23 00 00 	mov    0x233b(%rip),%rax        # 2042b8 <__stdout_FILE+0x58>
  201f7d:	48 89 05 14 23 00 00 	mov    %rax,0x2314(%rip)        # 204298 <__stdout_FILE+0x38>
  201f84:	48 89 05 fd 22 00 00 	mov    %rax,0x22fd(%rip)        # 204288 <__stdout_FILE+0x28>
  201f8b:	48 03 05 2e 23 00 00 	add    0x232e(%rip),%rax        # 2042c0 <__stdout_FILE+0x60>
  201f92:	48 89 05 e7 22 00 00 	mov    %rax,0x22e7(%rip)        # 204280 <__stdout_FILE+0x20>
  201f99:	31 c0                	xor    %eax,%eax
  201f9b:	c3                   	retq
  201f9c:	83 c8 20             	or     $0x20,%eax
  201f9f:	89 05 bb 22 00 00    	mov    %eax,0x22bb(%rip)        # 204260 <__stdout_FILE>
  201fa5:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
  201faa:	c3                   	retq

0000000000201fab <__stdio_exit>:
  201fab:	50                   	push   %rax
  201fac:	8a 0d 79 29 00 00    	mov    0x2979(%rip),%cl        # 20492b <__libc+0x3>
  201fb2:	84 c9                	test   %cl,%cl
  201fb4:	0f 84 ad 00 00 00    	je     202067 <__stdio_exit+0xbc>
  201fba:	ba 01 00 00 80       	mov    $0x80000001,%edx
  201fbf:	31 c0                	xor    %eax,%eax
  201fc1:	f0 0f b1 15 4f 25 00 	lock cmpxchg %edx,0x254f(%rip)        # 204518 <ofl_lock>
  201fc8:	00
  201fc9:	84 c9                	test   %cl,%cl
  201fcb:	79 07                	jns    201fd4 <__stdio_exit+0x29>
  201fcd:	c6 05 57 29 00 00 00 	movb   $0x0,0x2957(%rip)        # 20492b <__libc+0x3>
  201fd4:	85 c0                	test   %eax,%eax
  201fd6:	0f 84 8b 00 00 00    	je     202067 <__stdio_exit+0xbc>
  201fdc:	ba 0a 00 00 00       	mov    $0xa,%edx
  201fe1:	8d 88 ff ff ff 7f    	lea    0x7fffffff(%rax),%ecx
  201fe7:	85 c0                	test   %eax,%eax
  201fe9:	0f 49 c8             	cmovns %eax,%ecx
  201fec:	8d b1 01 00 00 80    	lea    -0x7fffffff(%rcx),%esi
  201ff2:	89 c8                	mov    %ecx,%eax
  201ff4:	f0 0f b1 35 1c 25 00 	lock cmpxchg %esi,0x251c(%rip)        # 204518 <ofl_lock>
  201ffb:	00
  201ffc:	39 c8                	cmp    %ecx,%eax
  201ffe:	74 67                	je     202067 <__stdio_exit+0xbc>
  202000:	ff ca                	dec    %edx
  202002:	75 dd                	jne    201fe1 <__stdio_exit+0x36>
  202004:	41 b8 01 00 00 00    	mov    $0x1,%r8d
  20200a:	f0 44 0f c1 05 05 25 	lock xadd %r8d,0x2505(%rip)        # 204518 <ofl_lock>
  202011:	00 00
  202013:	41 ff c0             	inc    %r8d
  202016:	45 85 c0             	test   %r8d,%r8d
  202019:	79 30                	jns    20204b <__stdio_exit+0xa0>
  20201b:	49 63 d0             	movslq %r8d,%rdx
  20201e:	b8 ca 00 00 00       	mov    $0xca,%eax
  202023:	bf 18 45 20 00       	mov    $0x204518,%edi
  202028:	be 80 00 00 00       	mov    $0x80,%esi
  20202d:	45 31 d2             	xor    %r10d,%r10d
  202030:	0f 05                	syscall
  202032:	48 83 f8 da          	cmp    $0xffffffffffffffda,%rax
  202036:	75 0c                	jne    202044 <__stdio_exit+0x99>
  202038:	b8 ca 00 00 00       	mov    $0xca,%eax
  20203d:	31 f6                	xor    %esi,%esi
  20203f:	45 31 d2             	xor    %r10d,%r10d
  202042:	0f 05                	syscall
  202044:	41 81 c0 ff ff ff 7f 	add    $0x7fffffff,%r8d
  20204b:	44 89 c1             	mov    %r8d,%ecx
  20204e:	81 c9 00 00 00 80    	or     $0x80000000,%ecx
  202054:	44 89 c0             	mov    %r8d,%eax
  202057:	f0 0f b1 0d b9 24 00 	lock cmpxchg %ecx,0x24b9(%rip)        # 204518 <ofl_lock>
  20205e:	00
  20205f:	44 39 c0             	cmp    %r8d,%eax
  202062:	41 89 c0             	mov    %eax,%r8d
  202065:	75 af                	jne    202016 <__stdio_exit+0x6b>
  202067:	48 8b 3d a2 24 00 00 	mov    0x24a2(%rip),%rdi        # 204510 <dummy_file>
  20206e:	e8 19 00 00 00       	callq  20208c <close_file>
  202073:	48 8b 3d ce 22 00 00 	mov    0x22ce(%rip),%rdi        # 204348 <__stdout_used>
  20207a:	e8 0d 00 00 00       	callq  20208c <close_file>
  20207f:	48 8b 3d 8a 24 00 00 	mov    0x248a(%rip),%rdi        # 204510 <dummy_file>
  202086:	58                   	pop    %rax
  202087:	e9 00 00 00 00       	jmpq   20208c <close_file>

000000000020208c <close_file>:
  20208c:	53                   	push   %rbx
  20208d:	48 85 ff             	test   %rdi,%rdi
  202090:	74 41                	je     2020d3 <close_file+0x47>
  202092:	48 89 fb             	mov    %rdi,%rbx
  202095:	83 bf 8c 00 00 00 00 	cmpl   $0x0,0x8c(%rdi)
  20209c:	78 08                	js     2020a6 <close_file+0x1a>
  20209e:	48 89 df             	mov    %rbx,%rdi
  2020a1:	e8 e7 fc ff ff       	callq  201d8d <__lockfile>
  2020a6:	48 8b 43 28          	mov    0x28(%rbx),%rax
  2020aa:	48 3b 43 38          	cmp    0x38(%rbx),%rax
  2020ae:	74 0a                	je     2020ba <close_file+0x2e>
  2020b0:	48 89 df             	mov    %rbx,%rdi
  2020b3:	31 f6                	xor    %esi,%esi
  2020b5:	31 d2                	xor    %edx,%edx
  2020b7:	ff 53 48             	callq  *0x48(%rbx)
  2020ba:	48 8b 73 08          	mov    0x8(%rbx),%rsi
  2020be:	48 2b 73 10          	sub    0x10(%rbx),%rsi
  2020c2:	74 0f                	je     2020d3 <close_file+0x47>
  2020c4:	48 8b 43 50          	mov    0x50(%rbx),%rax
  2020c8:	48 89 df             	mov    %rbx,%rdi
  2020cb:	ba 01 00 00 00       	mov    $0x1,%edx
  2020d0:	5b                   	pop    %rbx
  2020d1:	ff e0                	jmpq   *%rax
  2020d3:	5b                   	pop    %rbx
  2020d4:	c3                   	retq

00000000002020d5 <__stdio_close>:
  2020d5:	48 63 7f 78          	movslq 0x78(%rdi),%rdi
  2020d9:	b8 03 00 00 00       	mov    $0x3,%eax
  2020de:	0f 05                	syscall
  2020e0:	48 3d 01 f0 ff ff    	cmp    $0xfffffffffffff001,%rax
  2020e6:	72 15                	jb     2020fd <__stdio_close+0x28>
  2020e8:	f7 d8                	neg    %eax
  2020ea:	64 48 8b 0c 25 00 00 	mov    %fs:0x0,%rcx
  2020f1:	00 00
  2020f3:	89 41 34             	mov    %eax,0x34(%rcx)
  2020f6:	48 c7 c0 ff ff ff ff 	mov    $0xffffffffffffffff,%rax
  2020fd:	c3                   	retq

00000000002020fe <__stdout_write>:                          (4)
  2020fe:	50                   	push   %rax
  2020ff:	49 89 d0             	mov    %rdx,%r8
  202102:	49 89 f1             	mov    %rsi,%r9
  202105:	49 89 fa             	mov    %rdi,%r10
  202108:	48 c7 47 48 48 21 20 	movq   $0x202148,0x48(%rdi)
  20210f:	00
  202110:	f6 07 40             	testb  $0x40,(%rdi)
  202113:	75 23                	jne    202138 <__stdout_write+0x3a>
  202115:	49 63 7a 78          	movslq 0x78(%r10),%rdi
  202119:	48 89 e2             	mov    %rsp,%rdx
  20211c:	b8 10 00 00 00       	mov    $0x10,%eax
  202121:	be 13 54 00 00       	mov    $0x5413,%esi
  202126:	0f 05                	syscall                 (5)
  202128:	48 85 c0             	test   %rax,%rax
  20212b:	74 0b                	je     202138 <__stdout_write+0x3a>
  20212d:	41 c7 82 90 00 00 00 	movl   $0xffffffff,0x90(%r10)
  202134:	ff ff ff ff
  202138:	4c 89 d7             	mov    %r10,%rdi
  20213b:	4c 89 ce             	mov    %r9,%rsi
  20213e:	4c 89 c2             	mov    %r8,%rdx
  202141:	e8 02 00 00 00       	callq  202148 <__stdio_write>
  202146:	59                   	pop    %rcx
  202147:	c3                   	retq

0000000000202148 <__stdio_write>:
  202148:	41 56                	push   %r14
  20214a:	53                   	push   %rbx
  20214b:	49 89 d0             	mov    %rdx,%r8
  20214e:	48 89 f0             	mov    %rsi,%rax
  202151:	49 89 f9             	mov    %rdi,%r9
  202154:	48 8b 4f 38          	mov    0x38(%rdi),%rcx
  202158:	48 8d 74 24 d8       	lea    -0x28(%rsp),%rsi
  20215d:	48 89 0e             	mov    %rcx,(%rsi)
  202160:	48 8b 5f 28          	mov    0x28(%rdi),%rbx
  202164:	48 29 cb             	sub    %rcx,%rbx
  202167:	48 89 5e 08          	mov    %rbx,0x8(%rsi)
  20216b:	48 89 46 10          	mov    %rax,0x10(%rsi)
  20216f:	48 89 56 18          	mov    %rdx,0x18(%rsi)
  202173:	48 01 d3             	add    %rdx,%rbx
  202176:	41 ba 02 00 00 00    	mov    $0x2,%r10d
  20217c:	45 31 f6             	xor    %r14d,%r14d
  20217f:	49 63 79 78          	movslq 0x78(%r9),%rdi
  202183:	49 63 d2             	movslq %r10d,%rdx
  202186:	b8 14 00 00 00       	mov    $0x14,%eax
  20218b:	0f 05                	syscall
  20218d:	48 3d 00 f0 ff ff    	cmp    $0xfffffffffffff000,%rax
  202193:	77 35                	ja     2021ca <__stdio_write+0x82>
  202195:	48 29 c3             	sub    %rax,%rbx
  202198:	74 63                	je     2021fd <__stdio_write+0xb5>
  20219a:	48 85 c0             	test   %rax,%rax
  20219d:	78 3f                	js     2021de <__stdio_write+0x96>
  20219f:	48 8b 4e 08          	mov    0x8(%rsi),%rcx
  2021a3:	31 d2                	xor    %edx,%edx
  2021a5:	48 39 c8             	cmp    %rcx,%rax
  2021a8:	49 0f 46 ce          	cmovbe %r14,%rcx
  2021ac:	0f 97 c2             	seta   %dl
  2021af:	48 89 d7             	mov    %rdx,%rdi
  2021b2:	48 c1 e7 04          	shl    $0x4,%rdi
  2021b6:	48 29 c8             	sub    %rcx,%rax
  2021b9:	48 01 04 3e          	add    %rax,(%rsi,%rdi,1)
  2021bd:	48 29 44 3e 08       	sub    %rax,0x8(%rsi,%rdi,1)
  2021c2:	41 29 d2             	sub    %edx,%r10d
  2021c5:	48 01 fe             	add    %rdi,%rsi
  2021c8:	eb b5                	jmp    20217f <__stdio_write+0x37>
  2021ca:	f7 d8                	neg    %eax
  2021cc:	64 48 8b 0c 25 00 00 	mov    %fs:0x0,%rcx
  2021d3:	00 00
  2021d5:	89 41 34             	mov    %eax,0x34(%rcx)
  2021d8:	48 83 fb ff          	cmp    $0xffffffffffffffff,%rbx
  2021dc:	74 1f                	je     2021fd <__stdio_write+0xb5>
  2021de:	0f 57 c0             	xorps  %xmm0,%xmm0
  2021e1:	41 0f 11 41 20       	movups %xmm0,0x20(%r9)
  2021e6:	49 c7 41 38 00 00 00 	movq   $0x0,0x38(%r9)
  2021ed:	00
  2021ee:	41 80 09 20          	orb    $0x20,(%r9)
  2021f2:	41 83 fa 02          	cmp    $0x2,%r10d
  2021f6:	75 1e                	jne    202216 <__stdio_write+0xce>
  2021f8:	45 31 c0             	xor    %r8d,%r8d
  2021fb:	eb 1d                	jmp    20221a <__stdio_write+0xd2>
  2021fd:	49 8b 41 58          	mov    0x58(%r9),%rax
  202201:	49 8b 49 60          	mov    0x60(%r9),%rcx
  202205:	48 01 c1             	add    %rax,%rcx
  202208:	49 89 49 20          	mov    %rcx,0x20(%r9)
  20220c:	49 89 41 38          	mov    %rax,0x38(%r9)
  202210:	49 89 41 28          	mov    %rax,0x28(%r9)
  202214:	eb 04                	jmp    20221a <__stdio_write+0xd2>
  202216:	4c 2b 46 08          	sub    0x8(%rsi),%r8
  20221a:	4c 89 c0             	mov    %r8,%rax
  20221d:	5b                   	pop    %rbx
  20221e:	41 5e                	pop    %r14
  202220:	c3                   	retq

0000000000202221 <__stdio_seek>:
  202221:	48 63 7f 78          	movslq 0x78(%rdi),%rdi
  202225:	48 63 d2             	movslq %edx,%rdx
  202228:	b8 08 00 00 00       	mov    $0x8,%eax
  20222d:	0f 05                	syscall
  20222f:	48 3d 01 f0 ff ff    	cmp    $0xfffffffffffff001,%rax
  202235:	72 15                	jb     20224c <__stdio_seek+0x2b>
  202237:	f7 d8                	neg    %eax
  202239:	64 48 8b 0c 25 00 00 	mov    %fs:0x0,%rcx
  202240:	00 00
  202242:	89 41 34             	mov    %eax,0x34(%rcx)
  202245:	48 c7 c0 ff ff ff ff 	mov    $0xffffffffffffffff,%rax
  20224c:	c3                   	retq

Disassembly of section .init:

000000000020224d <_init>:
  20224d:	50                   	push   %rax
  20224e:	58                   	pop    %rax
  20224f:	c3                   	retq

Disassembly of section .fini:

0000000000202250 <_fini>:
  202250:	50                   	push   %rax
  202251:	58                   	pop    %rax
  202252:	c3                   	retq
1 Funkce main
2 Volání funkce puts na adrese 201bb3, která bude volat další funkci a tam někde bude syscall
3 Funkce puts na adrese 201bc8 nějak probublá na funkci __stdout_write
4 __stdout_write na adrese 202126 volá systémové volání a píše do standarního výstupu
5 systémové volání write