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