Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .text
- .intel_syntax noprefix
- .file "main"
- .globl _start
- .p2align 4, 0x90
- .type _start,@function
- _start:
- .cfi_startproc
- #APP
- xor ebp, ebp
- mov rdi, rsp
- and rsp, -16
- call start.posixCallMainAndExit
- #NO_APP
- .Lfunc_end0:
- .size _start, .Lfunc_end0-_start
- .cfi_endproc
- .p2align 4, 0x90
- .type start.posixCallMainAndExit,@function
- start.posixCallMainAndExit:
- .cfi_startproc
- push rbp
- .cfi_def_cfa_offset 16
- push r15
- .cfi_def_cfa_offset 24
- push r14
- .cfi_def_cfa_offset 32
- push r13
- .cfi_def_cfa_offset 40
- push r12
- .cfi_def_cfa_offset 48
- push rbx
- .cfi_def_cfa_offset 56
- sub rsp, 40
- .cfi_def_cfa_offset 96
- .cfi_offset rbx, -56
- .cfi_offset r12, -48
- .cfi_offset r13, -40
- .cfi_offset r14, -32
- .cfi_offset r15, -24
- .cfi_offset rbp, -16
- mov r12, qword ptr [rdi]
- mov rbx, rdi
- mov rbp, -1
- add rbx, 8
- lea r13, [rdi + 8*r12 + 16]
- mov rax, r13
- .p2align 4, 0x90
- .LBB1_1:
- add rbp, 1
- cmp qword ptr [rax], 0
- lea rax, [rax + 8]
- jne .LBB1_1
- lea rcx, [rax - 8]
- xor r14d, r14d
- xor r15d, r15d
- jmp .LBB1_4
- .LBB1_7:
- mov r15, qword ptr [rcx]
- .p2align 4, 0x90
- .LBB1_4:
- mov rdx, qword ptr [rcx + 8]
- add rcx, 16
- cmp rdx, 3
- je .LBB1_7
- cmp rdx, 5
- je .LBB1_3
- test rdx, rdx
- jne .LBB1_4
- jmp .LBB1_8
- .LBB1_3:
- mov r14, qword ptr [rcx]
- jmp .LBB1_4
- .LBB1_8:
- mov qword ptr [rip + os.linux.elf_aux_maybe], rax
- movabs rcx, -6148914691236517206
- test r14, r14
- mov eax, 8
- mov rdx, -1
- je .LBB1_9
- xor esi, esi
- mov r8, r14
- mov r9, r15
- xor edi, edi
- jmp .LBB1_13
- .p2align 4, 0x90
- .LBB1_11:
- mov rdi, r15
- sub rdi, qword ptr [r9 + 16]
- .LBB1_12:
- add r9, 56
- add r8, -1
- je .LBB1_16
- .LBB1_13:
- mov r10d, dword ptr [r9]
- cmp r10d, 6
- je .LBB1_11
- cmp r10d, 7
- jne .LBB1_12
- mov rsi, r9
- jmp .LBB1_12
- .LBB1_16:
- test rsi, rsi
- jne .LBB1_18
- .LBB1_9:
- xor r8d, r8d
- jmp .LBB1_19
- .LBB1_18:
- add rdi, qword ptr [rsi + 16]
- mov rdx, qword ptr [rsi + 40]
- mov rax, qword ptr [rsi + 48]
- mov r8, qword ptr [rsi + 32]
- add rdx, -1
- mov rcx, rdi
- .LBB1_19:
- mov rdi, rax
- add rdx, rax
- mov qword ptr [rip + os.linux.tls.area_desc.1], rax
- mov qword ptr [rip + os.linux.tls.area_desc.4.0], rcx
- mov qword ptr [rip + os.linux.tls.area_desc.4.1], r8
- neg rdi
- and rdi, rdx
- lea rsi, [rdi + 23]
- mov qword ptr [rip + os.linux.tls.area_desc.3], rdi
- and rsi, -8
- cmp rax, 4096
- lea rdx, [rsi + 16]
- mov qword ptr [rip + os.linux.tls.area_desc.2], rsi
- mov qword ptr [rip + os.linux.tls.area_desc.0], rdx
- ja .LBB1_21
- cmp rsi, 8433
- jb .LBB1_24
- .LBB1_21:
- lea rsi, [rax + rdx - 1]
- mov eax, 9
- mov edx, 3
- mov r10d, 34
- xor edi, edi
- mov r8, -1
- xor r9d, r9d
- #APP
- syscall
- #NO_APP
- test rax, rax
- jns .LBB1_23
- ud2
- .LBB1_23:
- mov rcx, qword ptr [rip + os.linux.tls.area_desc.1]
- mov rdx, qword ptr [rip + os.linux.tls.area_desc.0]
- add rax, rcx
- add rax, -1
- neg rcx
- and rcx, rax
- mov rax, rcx
- jmp .LBB1_25
- .LBB1_24:
- mov eax, offset os.linux.tls.main_thread_area_buffer
- .LBB1_25:
- mov rdi, rax
- xor esi, esi
- mov qword ptr [rsp + 24], rax
- call memset@PLT
- mov rax, qword ptr [rip + os.linux.tls.area_desc.3]
- mov rdi, qword ptr [rsp + 24]
- lea rcx, [rdi + rax]
- mov qword ptr [rdi + rax], rcx
- mov qword ptr [rsp + 32], rcx
- mov rax, qword ptr [rip + os.linux.tls.area_desc.2]
- mov qword ptr [rdi + rax], 1
- mov qword ptr [rdi + rax + 8], rdi
- mov rsi, qword ptr [rip + os.linux.tls.area_desc.4.0]
- mov rdx, qword ptr [rip + os.linux.tls.area_desc.4.1]
- call memcpy@PLT
- mov eax, 158
- mov edi, 4098
- mov rsi, qword ptr [rsp + 32]
- #APP
- syscall
- #NO_APP
- test r14, r14
- je .LBB1_32
- .p2align 4, 0x90
- .LBB1_26:
- cmp dword ptr [r15], 1685382481
- je .LBB1_28
- add r15, 56
- add r14, -1
- jne .LBB1_26
- jmp .LBB1_32
- .LBB1_28:
- lea r10, [rsp + 8]
- mov eax, 302
- mov esi, 3
- xor edi, edi
- xor edx, edx
- #APP
- syscall
- #NO_APP
- cmp rax, -4095
- jb .LBB1_30
- movzx eax, ax
- test rax, rax
- jne .LBB1_32
- .LBB1_30:
- mov rax, qword ptr [rsp + 16]
- mov rcx, qword ptr [r15 + 40]
- cmp rcx, rax
- cmovae rcx, rax
- cmp rcx, qword ptr [rsp + 8]
- jbe .LBB1_32
- mov qword ptr [rsp + 8], rcx
- mov qword ptr [rsp + 16], rax
- lea rdx, [rsp + 8]
- mov eax, 302
- xor edi, edi
- xor r10d, r10d
- #APP
- syscall
- #NO_APP
- .LBB1_32:
- mov r14, qword ptr [rip + __init_array_end@GOTPCREL]
- cmp r14, qword ptr [rip + __init_array_start@GOTPCREL]
- je .LBB1_35
- mov r15, qword ptr [rip + __init_array_start@GOTPCREL]
- sub r14, r15
- shr r14, 3
- cmp r14, 1
- adc r14, 0
- .p2align 4, 0x90
- .LBB1_34:
- mov rax, qword ptr [r15]
- call rax
- add r15, 8
- add r14, -1
- jne .LBB1_34
- .LBB1_35:
- mov qword ptr [rip + os.argv], rbx
- mov qword ptr [rip + os.environ], r13
- mov qword ptr [rip + os.argv+8], r12
- mov qword ptr [rip + os.environ+8], rbp
- call start.maybeIgnoreSigpipe
- call main.main
- mov eax, 231
- xor edi, edi
- #APP
- syscall
- #NO_APP
- .Lfunc_end1:
- .size start.posixCallMainAndExit, .Lfunc_end1-start.posixCallMainAndExit
- .cfi_endproc
- .p2align 4, 0x90
- .type main.main,@function
- main.main:
- .cfi_startproc
- push rbx
- .cfi_def_cfa_offset 16
- .cfi_offset rbx, -16
- cmp byte ptr fs:[Thread.LinuxThreadImpl.tls_thread_id.1@TPOFF], 1
- jne .LBB2_2
- mov eax, dword ptr fs:[Thread.LinuxThreadImpl.tls_thread_id.0@TPOFF]
- cmp dword ptr [rip + Progress.stderr_mutex+12], eax
- je .LBB2_4
- .LBB2_5:
- lock bts dword ptr [rip + Progress.stderr_mutex+8], 0
- jb .LBB2_6
- .LBB2_7:
- mov dword ptr [rip + Progress.stderr_mutex+12], eax
- mov eax, 1
- jmp .LBB2_8
- .LBB2_2:
- mov eax, 186
- #APP
- syscall
- #NO_APP
- mov dword ptr fs:[Thread.LinuxThreadImpl.tls_thread_id.0@TPOFF], eax
- mov byte ptr fs:[Thread.LinuxThreadImpl.tls_thread_id.1@TPOFF], 1
- cmp dword ptr [rip + Progress.stderr_mutex+12], eax
- jne .LBB2_5
- .LBB2_4:
- mov rax, qword ptr [rip + Progress.stderr_mutex]
- add rax, 1
- .LBB2_8:
- xor r8d, r8d
- xor r9d, r9d
- mov edi, 2
- mov qword ptr [rip + Progress.stderr_mutex], rax
- .LBB2_9:
- mov edx, 12
- lea rsi, [r9 + __anon_1560]
- sub rdx, r9
- .p2align 4, 0x90
- .LBB2_10:
- mov eax, 1
- #APP
- syscall
- #NO_APP
- mov ecx, eax
- neg ecx
- cmp rax, -4095
- cmovb ecx, r8d
- cmp cx, 4
- je .LBB2_10
- movzx ecx, cx
- test ecx, ecx
- jne .LBB2_16
- add r9, rax
- cmp r9, 12
- jne .LBB2_9
- add qword ptr [rip + Progress.stderr_mutex], -1
- jne .LBB2_19
- mov dword ptr [rip + Progress.stderr_mutex+12], -1
- xor eax, eax
- xchg dword ptr [rip + Progress.stderr_mutex+8], eax
- cmp eax, 3
- jne .LBB2_19
- mov eax, 202
- mov edi, offset Progress.stderr_mutex+8
- mov esi, 129
- mov edx, 1
- #APP
- syscall
- #NO_APP
- pop rbx
- .cfi_def_cfa_offset 8
- ret
- .LBB2_16:
- .cfi_def_cfa_offset 16
- add qword ptr [rip + Progress.stderr_mutex], -1
- je .LBB2_17
- .LBB2_19:
- pop rbx
- .cfi_def_cfa_offset 8
- ret
- .LBB2_17:
- .cfi_def_cfa_offset 16
- mov dword ptr [rip + Progress.stderr_mutex+12], -1
- xor eax, eax
- xchg dword ptr [rip + Progress.stderr_mutex+8], eax
- cmp eax, 3
- jne .LBB2_19
- mov eax, 202
- mov edi, offset Progress.stderr_mutex+8
- mov esi, 129
- mov edx, 1
- #APP
- syscall
- #NO_APP
- pop rbx
- .cfi_def_cfa_offset 8
- ret
- .LBB2_6:
- .cfi_def_cfa_offset 16
- mov rbx, rax
- call Thread.Mutex.FutexImpl.lockSlow
- mov rax, rbx
- jmp .LBB2_7
- .Lfunc_end2:
- .size main.main, .Lfunc_end2-main.main
- .cfi_endproc
- .p2align 4, 0x90
- .type start.maybeIgnoreSigpipe,@function
- start.maybeIgnoreSigpipe:
- .cfi_startproc
- mov qword ptr [rsp - 32], offset start.noopSigHandler
- mov qword ptr [rsp - 24], 67108864
- mov qword ptr [rsp - 16], offset os.linux.x86_64.restore_rt
- mov qword ptr [rsp - 8], 0
- lea rsi, [rsp - 32]
- mov eax, 13
- mov edi, 13
- mov r10d, 8
- xor edx, edx
- #APP
- syscall
- #NO_APP
- ret
- .Lfunc_end3:
- .size start.maybeIgnoreSigpipe, .Lfunc_end3-start.maybeIgnoreSigpipe
- .cfi_endproc
- .p2align 4, 0x90
- .type start.noopSigHandler,@function
- start.noopSigHandler:
- .cfi_startproc
- ret
- .Lfunc_end4:
- .size start.noopSigHandler, .Lfunc_end4-start.noopSigHandler
- .cfi_endproc
- .p2align 4, 0x90
- .type os.linux.x86_64.restore_rt,@function
- os.linux.x86_64.restore_rt:
- .cfi_startproc
- mov eax, 15
- #APP
- syscall
- #NO_APP
- .Lfunc_end5:
- .size os.linux.x86_64.restore_rt, .Lfunc_end5-os.linux.x86_64.restore_rt
- .cfi_endproc
- .section .text.unlikely.,"ax",@progbits
- .p2align 4, 0x90
- .type Thread.Mutex.FutexImpl.lockSlow,@function
- Thread.Mutex.FutexImpl.lockSlow:
- .cfi_startproc
- mov eax, dword ptr [rip + Progress.stderr_mutex+8]
- cmp eax, 3
- jne .LBB6_1
- mov eax, 202
- mov edi, offset Progress.stderr_mutex+8
- mov esi, 128
- mov edx, 3
- xor r10d, r10d
- #APP
- syscall
- #NO_APP
- .LBB6_1:
- mov eax, 3
- xchg dword ptr [rip + Progress.stderr_mutex+8], eax
- test eax, eax
- je .LBB6_4
- mov edi, offset Progress.stderr_mutex+8
- mov esi, 128
- mov edx, 3
- .p2align 4, 0x90
- .LBB6_3:
- mov eax, 202
- xor r10d, r10d
- #APP
- syscall
- #NO_APP
- mov eax, 3
- xchg dword ptr [rip + Progress.stderr_mutex+8], eax
- test eax, eax
- jne .LBB6_3
- .LBB6_4:
- ret
- .Lfunc_end6:
- .size Thread.Mutex.FutexImpl.lockSlow, .Lfunc_end6-Thread.Mutex.FutexImpl.lockSlow
- .cfi_endproc
- .text
- .weak getauxval
- .p2align 4, 0x90
- .type getauxval,@function
- getauxval:
- .cfi_startproc
- mov rcx, qword ptr [rip + os.linux.elf_aux_maybe]
- test rcx, rcx
- je .LBB7_1
- mov rdx, qword ptr [rcx]
- test rdx, rdx
- je .LBB7_1
- add rcx, 16
- xor eax, eax
- .p2align 4, 0x90
- .LBB7_5:
- cmp rdx, rdi
- je .LBB7_6
- mov rdx, qword ptr [rcx]
- add rcx, 16
- test rdx, rdx
- jne .LBB7_5
- ret
- .LBB7_1:
- xor eax, eax
- ret
- .LBB7_6:
- mov rax, qword ptr [rcx - 8]
- ret
- .Lfunc_end7:
- .size getauxval, .Lfunc_end7-getauxval
- .cfi_endproc
- .type os.linux.elf_aux_maybe,@object
- .local os.linux.elf_aux_maybe
- .comm os.linux.elf_aux_maybe,8,8
- .type os.argv,@object
- .local os.argv
- .comm os.argv,16,8
- .type os.environ,@object
- .local os.environ
- .comm os.environ,16,8
- .type os.linux.tls.area_desc.0,@object
- .local os.linux.tls.area_desc.0
- .comm os.linux.tls.area_desc.0,8,8
- .type os.linux.tls.area_desc.1,@object
- .local os.linux.tls.area_desc.1
- .comm os.linux.tls.area_desc.1,8,8
- .type os.linux.tls.area_desc.2,@object
- .local os.linux.tls.area_desc.2
- .comm os.linux.tls.area_desc.2,8,8
- .type os.linux.tls.area_desc.3,@object
- .local os.linux.tls.area_desc.3
- .comm os.linux.tls.area_desc.3,8,8
- .type os.linux.tls.area_desc.4.0,@object
- .local os.linux.tls.area_desc.4.0
- .comm os.linux.tls.area_desc.4.0,8,8
- .type os.linux.tls.area_desc.4.1,@object
- .local os.linux.tls.area_desc.4.1
- .comm os.linux.tls.area_desc.4.1,8,8
- .type os.linux.tls.main_thread_area_buffer,@object
- .local os.linux.tls.main_thread_area_buffer
- .comm os.linux.tls.main_thread_area_buffer,8448,4096
- .type Progress.stderr_mutex,@object
- .data
- .p2align 3, 0x0
- Progress.stderr_mutex:
- .quad 0
- .zero 4
- .long 4294967295
- .size Progress.stderr_mutex, 16
- .type __anon_1560,@object
- .section .rodata.str1.1,"aMS",@progbits,1
- __anon_1560:
- .asciz "Hello World\n"
- .size __anon_1560, 13
- .type Thread.LinuxThreadImpl.tls_thread_id.0,@object
- .section .tbss,"awT",@nobits
- .p2align 2, 0x0
- Thread.LinuxThreadImpl.tls_thread_id.0:
- .zero 4
- .size Thread.LinuxThreadImpl.tls_thread_id.0, 4
- .type Thread.LinuxThreadImpl.tls_thread_id.1,@object
- .p2align 2, 0x0
- Thread.LinuxThreadImpl.tls_thread_id.1:
- .byte 0
- .size Thread.LinuxThreadImpl.tls_thread_id.1, 1
- .weak __init_array_end
- .weak __init_array_start
- .section ".note.GNU-stack","",@progbits
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement