Function at 0x4b69a0
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 0x45de82
lea rax, [rsp + 0x68]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], rax
mov r15d, dword [rbx + 8]
cmp r15d, 0xffffffff
je 0x45dd50
test r15d, r15d
js 0x45e108
mov rdx, qword [rbp + 0xf0]
cmp r15d, dword [rdx + 0x28]
jae 0x45e108
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 0x45dca2
mov r10d, dword [r12 + 0x18]
test r10d, r10d
je 0x45dca2
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 0x45dd75
movzx eax, byte [rax + 7]
not eax
test al, 0xa
je 0x45dd90
test rsi, rsi
je 0x45ddd0
movzx eax, byte [rsi + 0x18]
lea edx, [rax - 3]
cmp dl, 1
jbe 0x45de90
cmp al, 2
je 0x45e058
movzx eax, byte [r14]
and eax, 3
cmp al, 2
je 0x45dd42
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 0x45decb
xor eax, eax
xor r12d, r12d
xor esi, esi
jmp 0x45dca2
mov r8, qword [rbx]
lea rcx, str._pB:_bad_reloc_address__llx_in_section___pA
mov r9, rdi
mov rdx, rbp
call fcn.0043f660
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 0x45de70
test r12, r12
je 0x45dced
mov r9d, dword [r12 + 0x18]
test r9d, r9d
je 0x45dced
mov rax, qword [r12 + 0x10]
add qword [rsp + 0x68], rax
test rsi, rsi
jne 0x45dcf6
nop dword [rax]
cmp r15d, 0xffffffff
je 0x45dd42
mov rcx, qword [rsp + 0x108]
movsxd rax, r15d
mov rdx, qword [0x005ab640]
mov rax, qword [rcx + rax*8]
lea rcx, [rdx + 0x230]
cmp rax, rcx
je 0x45de70
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 0x45debb
add rdx, 0x230
sub r11, qword [rax + 0x28]
cmp rcx, rdx
jne 0x45decb
nop dword [rax]
movzx eax, word [rax + 0x24]
and ax, 0x380
sub ax, 0x100
test ax, 0xfe80
je 0x45decb
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.00447370
mov rax, qword [rsp + 0x50]
add rbx, 0x18
cmp rbx, rax
jb 0x45dc43
mov eax, 1
jmp 0x45dd77
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 [0x005ab640]
lea rcx, [rdx + 0x230]
cmp rax, rcx
je 0x45decb
mov rcx, qword [rax + 0x68]
add rdx, 0x230
cmp rcx, rdx
je 0x45de38
cmp qword [r14 + 0x80], 0
je 0x45df72
test r12, r12
je 0x45df72
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 0x45df72
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 0x45e040
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 0x45e11f
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.00447270
cmp eax, 3
je 0x45dfd8
cmp eax, 4
je 0x45dd60
cmp eax, 2
je 0x45de70
lea r8, str._bfd_coff_generic_relocate_section
mov edx, 0xc31
lea rcx, str..._.._.._src_binutils_2.32_bfd_cofflink.c
call fcn.0043f7c0
nop word [rax + rax]
cmp r15d, 0xffffffff
je 0x45e0b0
test rsi, rsi
je 0x45e0d0
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 0x45dc43
jmp 0x45de82
sub rax, qword [rdx + 0xe0]
mov qword [rsp + 0x70], rax
jmp 0x45df42
cmp word [rsi + 0x3e], 0x169
jne 0x45dd42
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 0x45dd42
cmp byte [rdx + 0x18], 1
je 0x45dd42
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 0x45dea4
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 0x45e001
lea r8, [rsp + 0x70]
mov rdx, r12
mov rcx, rbp
call fcn.00460bb0
test rax, rax
mov r8, rax
je 0x45dd75
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 0x45e001
lea rcx, str._pB:_illegal_symbol_index__ld_in_relocs
mov r8d, r15d
mov rdx, rbp
call fcn.0043f660
jmp 0x45dd75
mov ecx, 1
call fcn.0043f820
jmp 0x45dd75
sub rsp, 0x28
mov rax, qword [rdx + 0xe0]
test rax, rax
je 0x4b6985
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 0x4b6970
add rsp, 0x28
ret
lea rcx, str..._.._.._src_binutils_2.32_bfd_peicode.h
mov edx, 0x200
add rsp, 0x28
jmp fcn.0043f7a0
lea r8, str.pe_ILF_save_relocs
mov edx, 0x1f3
lea rcx, str..._.._.._src_binutils_2.32_bfd_peicode.h
call fcn.0043f7c0
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 0x4b69e0
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 0x45dbf0
mov eax, 1
pop rbx
pop rsi
ret