Function at 0x45b530
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov eax, dword [r9 + 0x88]
mov rbx, qword [rsp + 0xf8]
lea rax, [rax + rax*2]
mov qword [rsp + 0xd0], rcx
mov r14, rdx
mov rbp, r8
lea rcx, [rbx + rax*8]
mov rdi, r9
cmp rbx, rcx
jae 0x45b7c2
lea rax, [rsp + 0x68]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], rax
mov r15d, dword [rbx + 8]
cmp r15d, 0xffffffff
je 0x45b690
test r15d, r15d
js 0x45ba48
mov rdx, qword [rbp + 0xf0]
cmp r15d, dword [rdx + 0x28]
jae 0x45ba48
mov rdx, qword [rdx + 0x80]
movsxd rax, r15d
mov rcx, qword [rsp + 0x100]
mov rsi, qword [rdx + rax*8]
lea rax, [rax + rax*4]
lea r12, [rcx + rax*8]
xor eax, eax
test r12, r12
je 0x45b5e2
mov r10d, dword [r12 + 0x18]
test r10d, r10d
je 0x45b5e2
mov rax, qword [r12 + 0x10]
neg rax
mov qword [rsp + 0x68], rax
mov rax, qword [rbp + 8]
mov r9, rsi
mov r8, rbx
mov rcx, qword [rsp + 0x48]
mov rdx, rdi
mov rax, qword [rax + 0x368]
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x28], rcx
mov rcx, rbp
call qword [rax + 0x128]
test rax, rax
mov r13, rax
je 0x45b6b5
movzx eax, byte [rax + 7]
not eax
test al, 0xa
je 0x45b6d0
test rsi, rsi
je 0x45b710
movzx eax, byte [rsi + 0x18]
lea edx, [rax - 3]
cmp dl, 1
jbe 0x45b7d0
cmp al, 2
je 0x45b998
movzx eax, byte [r14]
and eax, 3
cmp al, 2
je 0x45b682
mov rdx, qword [rsi + 8]
mov r9, rdi
mov r8, rbp
mov rcx, r14
mov r11, qword [r14 + 0x20]
mov dword [rsp + 0x28], 1
mov rax, qword [rbx]
sub rax, qword [rdi + 0x28]
mov qword [rsp + 0x20], rax
call qword [r11 + 0x30]
xor r11d, r11d
jmp 0x45b80b
xor eax, eax
xor r12d, r12d
xor esi, esi
jmp 0x45b5e2
mov r8, qword [rbx]
lea rcx, str._pB:_bad_reloc_address__llx_in_section___pA
mov r9, rdi
mov rdx, rbp
call fcn.00438be0
xor eax, eax
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movzx eax, byte [r14]
and eax, 3
cmp al, 2
je 0x45b7b0
test r12, r12
je 0x45b62d
mov r9d, dword [r12 + 0x18]
test r9d, r9d
je 0x45b62d
mov rax, qword [r12 + 0x10]
add qword [rsp + 0x68], rax
test rsi, rsi
jne 0x45b636
nop dword [rax]
cmp r15d, 0xffffffff
je 0x45b682
mov rcx, qword [rsp + 0x108]
movsxd rax, r15d
mov rdx, qword [0x005683a0]
mov rax, qword [rcx + rax*8]
lea rcx, [rdx + 0x230]
cmp rax, rcx
je 0x45b7b0
mov r8, qword [rbp + 0xf0]
mov rcx, qword [rax + 0x68]
mov r11, qword [rax + 0x60]
mov r8d, dword [r8 + 0x78]
add r11, qword [rcx + 0x28]
add r11, qword [r12 + 0x10]
test r8d, r8d
jne 0x45b7fb
add rdx, 0x230
sub r11, qword [rax + 0x28]
cmp rcx, rdx
jne 0x45b80b
nop dword [rax]
movzx eax, word [rax + 0x24]
and ax, 0x380
sub ax, 0x100
test ax, 0xfe80
je 0x45b80b
mov rax, qword [rbx]
mov r8, rdi
mov rdx, rbp
mov rcx, r13
sub rax, qword [rdi + 0x28]
mov r9, qword [rsp + 0xf0]
mov qword [rsp + 0x20], rax
call fcn.00444cb0
mov rax, qword [rsp + 0x50]
add rbx, 0x18
cmp rbx, rax
jb 0x45b583
mov eax, 1
jmp 0x45b6b7
mov rax, qword [rsi + 0x28]
mov rdx, qword [rax + 0x68]
mov r11, qword [rax + 0x60]
add r11, qword [rsi + 0x30]
add r11, qword [rdx + 0x28]
mov rdx, qword [0x005683a0]
lea rcx, [rdx + 0x230]
cmp rax, rcx
je 0x45b80b
mov rcx, qword [rax + 0x68]
add rdx, 0x230
cmp rcx, rdx
je 0x45b778
cmp qword [r14 + 0x80], 0
je 0x45b8b2
test r12, r12
je 0x45b8b2
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x58], r11
mov rdx, r13
mov rcx, qword [rsp + 0xd0]
mov rax, qword [rax + 0xf0]
call qword [rax + 0x250]
mov r11, qword [rsp + 0x58]
test eax, eax
je 0x45b8b2
mov rcx, qword [rsp + 0xd0]
mov rax, qword [rdi + 0x68]
mov rdx, qword [rcx + 0xf0]
mov rax, qword [rax + 0x28]
sub rax, qword [rdi + 0x28]
add rax, qword [rdi + 0x60]
mov ecx, dword [rdx + 0x78]
add rax, qword [rbx]
test ecx, ecx
mov qword [rsp + 0x70], rax
jne 0x45b980
lea rcx, [rsp + 0x70]
mov r8d, 8
mov edx, 1
mov r9, qword [r14 + 0x80]
mov qword [rsp + 0x58], r11
call sub.msvcrt.dll_fwrite
mov r11, qword [rsp + 0x58]
cmp rax, 8
jne 0x45ba5f
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x28], r11
mov r8, rdi
mov rdx, rbp
mov r9, qword [rsp + 0xf0]
mov rcx, r13
mov qword [rsp + 0x30], rax
mov rax, qword [rbx]
sub rax, qword [rdi + 0x28]
mov qword [rsp + 0x20], rax
call fcn.00444bb0
cmp eax, 3
je 0x45b918
cmp eax, 4
je 0x45b6a0
cmp eax, 2
je 0x45b7b0
lea r8, str._bfd_coff_generic_relocate_section
mov edx, 0xc31
lea rcx, str..._.._.._src_binutils_2.32_bfd_cofflink.c
call fcn.00438d40
nop word [rax + rax]
cmp r15d, 0xffffffff
je 0x45b9f0
test rsi, rsi
je 0x45ba10
mov rax, qword [r14 + 0x20]
xor r8d, r8d
mov r9, qword [r13 + 0x20]
mov r11, qword [rax + 0x38]
mov rax, qword [rbx]
sub rax, qword [rdi + 0x28]
mov qword [rsp + 0x38], rax
mov rdx, rsi
mov rcx, r14
mov qword [rsp + 0x30], rdi
add rbx, 0x18
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], 0
call r11
mov rax, qword [rsp + 0x50]
cmp rbx, rax
jb 0x45b583
jmp 0x45b7c2
sub rax, qword [rdx + 0xe0]
mov qword [rsp + 0x70], rax
jmp 0x45b882
cmp word [rsi + 0x3e], 0x169
jne 0x45b682
mov rax, qword [rsi + 0x40]
mov rdx, qword [rsi + 0x48]
mov rax, qword [rax + 0xf0]
movsxd rdx, dword [rdx]
mov rax, qword [rax + 0x80]
mov rdx, qword [rax + rdx*8]
test rdx, rdx
je 0x45b682
cmp byte [rdx + 0x18], 1
je 0x45b682
mov rax, qword [rdx + 0x28]
mov r11, qword [rax + 0x60]
add r11, qword [rdx + 0x30]
mov rdx, qword [rax + 0x68]
add r11, qword [rdx + 0x28]
jmp 0x45b7e4
mov rax, qword [r14 + 0x20]
lea r8, str.ABS
mov r9, qword [r13 + 0x20]
mov r11, qword [rax + 0x38]
mov rax, qword [rbx]
sub rax, qword [rdi + 0x28]
jmp 0x45b941
lea r8, [rsp + 0x70]
mov rdx, r12
mov rcx, rbp
call fcn.0045e4f0
test rax, rax
mov r8, rax
je 0x45b6b5
mov rax, qword [r14 + 0x20]
mov r9, qword [r13 + 0x20]
mov r11, qword [rax + 0x38]
mov rax, qword [rbx]
sub rax, qword [rdi + 0x28]
jmp 0x45b941
lea rcx, str._pB:_illegal_symbol_index__ld_in_relocs
mov r8d, r15d
mov rdx, rbp
call fcn.00438be0
jmp 0x45b6b5
mov ecx, 1
call fcn.00438da0
jmp 0x45b6b5
sub rsp, 0x28
mov rax, qword [rdx + 0xe0]
test rax, rax
je 0x4b42c5
mov r9, qword [rcx + 0xa8]
mov dword [rax + 8], 1
mov r8, qword [rcx + 0x20]
mov qword [rax], r9
mov eax, dword [rcx + 0x28]
or dword [rdx + 0x20], 4
mov qword [rdx + 0x78], r8
mov dword [rdx + 0x88], eax
mov rdx, rax
lea rax, [rax + rax*2]
shl rdx, 5
mov dword [rcx + 0x28], 0
lea rax, [r9 + rax*8]
add r8, rdx
cmp rax, qword [rcx + 0x80]
mov qword [rcx + 0x20], r8
mov qword [rcx + 0xa8], rax
jae 0x4b42b0
add rsp, 0x28
ret
lea rcx, str..._.._.._src_binutils_2.32_bfd_peicode.h
mov edx, 0x200
add rsp, 0x28
jmp fcn.00438d20
lea r8, str.pe_ILF_save_relocs
mov edx, 0x1f3
lea rcx, str..._.._.._src_binutils_2.32_bfd_peicode.h
call fcn.00438d40
nop
nop
push rsi
push rbx
movzx eax, byte [rdx]
mov r10, qword [rsp + 0x38]
mov r11, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
and eax, 3
mov rsi, qword [rsp + 0x50]
cmp al, 2
je 0x4b4320
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x38], r10
pop rbx
pop rsi
jmp 0x45b530
mov eax, 1
pop rbx
pop rsi
ret