1 .file "crt0.c" 2 .globl __progname 3 .section .rodata 4.LC0: 5 .string "" 6 .data 7 .align 8 8 .type __progname, @object 9 .size __progname, 8 10__progname: 11 .quad .LC0 12#APP 13 .text 14 .align 8 15 .globl __start 16 .globl _start 17_start: 18__start: 19 movq %rbx,%r9 20 movq %rcx,%r8 21 movq %rdx,%rcx 22 movq (%rsp),%rdi 23 leaq 16(%rsp,%rdi,8),%rdx 24 leaq 8(%rsp),%rsi 25 subq $8,%rsp 26 andq $~15,%rsp 27 addq $8,%rsp 28 jmp ___start 29 30#NO_APP 31 .text 32 .globl ___start 33 .type ___start, @function 34___start: 35.LFB9: 36 pushq %rbp 37.LCFI0: 38 movq %rsp, %rbp 39.LCFI1: 40 subq $64, %rsp 41.LCFI2: 42 movl %edi, -20(%rbp) 43 movq %rsi, -32(%rbp) 44 movq %rdx, -40(%rbp) 45 movq %rcx, -48(%rbp) 46 movq %r8, -56(%rbp) 47 movq %r9, -64(%rbp) 48 movq -40(%rbp), %rax 49 movq %rax, environ(%rip) 50 movq %rax,operatingsystem_parameter_envp(%rip) 51 movq -32(%rbp), %rax 52 movq (%rax), %rax 53 movq %rax, -8(%rbp) 54 cmpq $0, -8(%rbp) 55 je .L2 56 movq -8(%rbp), %rdi 57 movl $47, %esi 58 call _strrchr 59 movq %rax, __progname(%rip) 60 movq __progname(%rip), %rax 61 testq %rax, %rax 62 jne .L4 63 movq -8(%rbp), %rax 64 movq %rax, __progname(%rip) 65 jmp .L6 66.L4: 67 movq __progname(%rip), %rax 68 addq $1, %rax 69 movq %rax, __progname(%rip) 70.L6: 71 movq $__progname_storage, -16(%rbp) 72 jmp .L7 73.L8: 74 movq __progname(%rip), %rcx 75 movzbl (%rcx), %edx 76 movq -16(%rbp), %rax 77 movb %dl, (%rax) 78 addq $1, -16(%rbp) 79 leaq 1(%rcx), %rax 80 movq %rax, __progname(%rip) 81.L7: 82 movq __progname(%rip), %rax 83 movzbl (%rax), %eax 84 testb %al, %al 85 je .L9 86 movl $__progname_storage+255, %eax 87 cmpq %rax, -16(%rbp) 88 jb .L8 89.L9: 90 movq -16(%rbp), %rax 91 movb $0, (%rax) 92 movq $__progname_storage, __progname(%rip) 93.L2: 94 movl $_mcleanup, %edi 95 call atexit 96 movl $_etext, %eax 97 movq %rax, %rsi 98 movl $_eprol, %eax 99 movq %rax, %rdi 100 call monstartup 101 movl $0, %eax 102 call __init 103 movq environ(%rip), %rdx 104 movq -32(%rbp), %rsi 105 movl -20(%rbp), %edi 106 movq %rdi,operatingsystem_parameter_argc(%rip) 107 movq %rsi,operatingsystem_parameter_argv(%rip) 108 movl $0, %eax 109 call main 110 # movl %eax, %edi 111 # call exit 112 jmp _haltproc 113 .p2align 2,0x90 114 115.globl _haltproc 116.type _haltproc,@function 117 118_haltproc: 119 movq $1,%rax 120 movzwq operatingsystem_result(%rip),%rbx 121 pushq %rbx 122 call .Lactualsyscall 123 addq $8,%rsp 124 jmp _haltproc 125 126.Lactualsyscall: 127 int $0x80 128 jb .LErrorcode 129 xor %rbx,%rbx 130 ret 131.LErrorcode: 132 movq %rax,%rbx 133 movq $-1,%rax 134.LFE9: 135 .size ___start, .-___start 136 .type _strrchr, @function 137_strrchr: 138.LFB10: 139 pushq %rbp 140.LCFI3: 141 movq %rsp, %rbp 142.LCFI4: 143 movq %rdi, -24(%rbp) 144 movb %sil, -25(%rbp) 145 movq $0, -8(%rbp) 146.L13: 147 movq -24(%rbp), %rdx 148 movzbl (%rdx), %eax 149 cmpb -25(%rbp), %al 150 jne .L14 151 movq -24(%rbp), %rax 152 movq %rax, -8(%rbp) 153.L14: 154 movq -24(%rbp), %rdx 155 movzbl (%rdx), %eax 156 testb %al, %al 157 jne .L16 158 movq -8(%rbp), %rax 159 movq %rax, -16(%rbp) 160 jmp .L12 161.L16: 162 addq $1, -24(%rbp) 163 jmp .L13 164.L12: 165 movq -16(%rbp), %rax 166 leave 167 ret 168.LFE10: 169 .size _strrchr, .-_strrchr 170#APP 171 .text 172 _eprol: 173#NO_APP 174 .comm environ,8,8 175 .comm __progname_storage,256,32 176 .comm operatingsystem_parameter_envp,8,8 177 .comm operatingsystem_parameter_argc,8,8 178 .comm operatingsystem_parameter_argv,8,8 179 .section .eh_frame,"a",@progbits 180.Lframe1: 181 .long .LECIE1-.LSCIE1 182.LSCIE1: 183 .long 0x0 184 .byte 0x1 185 .string "zR" 186 .uleb128 0x1 187 .sleb128 -8 188 .byte 0x10 189 .uleb128 0x1 190 .byte 0x3 191 .byte 0xc 192 .uleb128 0x7 193 .uleb128 0x8 194 .byte 0x90 195 .uleb128 0x1 196 .align 8 197.LECIE1: 198.LSFDE1: 199 .long .LEFDE1-.LASFDE1 200.LASFDE1: 201 .long .LASFDE1-.Lframe1 202 .long .LFB9 203 .long .LFE9-.LFB9 204 .uleb128 0x0 205 .byte 0x4 206 .long .LCFI0-.LFB9 207 .byte 0xe 208 .uleb128 0x10 209 .byte 0x86 210 .uleb128 0x2 211 .byte 0x4 212 .long .LCFI1-.LCFI0 213 .byte 0xd 214 .uleb128 0x6 215 .align 8 216.LEFDE1: 217.LSFDE3: 218 .long .LEFDE3-.LASFDE3 219.LASFDE3: 220 .long .LASFDE3-.Lframe1 221 .long .LFB10 222 .long .LFE10-.LFB10 223 .uleb128 0x0 224 .byte 0x4 225 .long .LCFI3-.LFB10 226 .byte 0xe 227 .uleb128 0x10 228 .byte 0x86 229 .uleb128 0x2 230 .byte 0x4 231 .long .LCFI4-.LCFI3 232 .byte 0xd 233 .uleb128 0x6 234 .align 8 235.LEFDE3: 236 .ident "GCC: (GNU) 4.2.1 20070719 " 237