Function at 0x425d50
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 0x425fe2
lea rax, [rsp + 0x68]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], rax
mov r15d, dword [rbx + 8]
cmp r15d, 0xffffffff
je 0x425eb0
test r15d, r15d
js 0x426268
mov rdx, qword [rbp + 0xf0]
cmp r15d, dword [rdx + 0x28]
jae 0x426268
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 0x425e02
mov r10d, dword [r12 + 0x18]
test r10d, r10d
je 0x425e02
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 0x425ed5
movzx eax, byte [rax + 7]
not eax
test al, 0xa
je 0x425ef0
test rsi, rsi
je 0x425f30
movzx eax, byte [rsi + 0x18]
lea edx, [rax - 3]
cmp dl, 1
jbe 0x425ff0
cmp al, 2
je 0x4261b8
movzx eax, byte [r14]
and eax, 3
cmp al, 2
je 0x425ea2
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 0x42602b
xor eax, eax
xor r12d, r12d
xor esi, esi
jmp 0x425e02
mov r8, qword [rbx]
lea rcx, str._pB:_bad_reloc_address__llx_in_section___pA
mov r9, rdi
mov rdx, rbp
call fcn.00408c40
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 0x425fd0
test r12, r12
je 0x425e4d
mov r9d, dword [r12 + 0x18]
test r9d, r9d
je 0x425e4d
mov rax, qword [r12 + 0x10]
add qword [rsp + 0x68], rax
test rsi, rsi
jne 0x425e56
nop dword [rax]
cmp r15d, 0xffffffff
je 0x425ea2
mov rcx, qword [rsp + 0x108]
movsxd rax, r15d
mov rdx, qword [0x005004c0]
mov rax, qword [rcx + rax*8]
lea rcx, [rdx + 0x230]
cmp rax, rcx
je 0x425fd0
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 0x42601b
add rdx, 0x230
sub r11, qword [rax + 0x28]
cmp rcx, rdx
jne 0x42602b
nop dword [rax]
movzx eax, word [rax + 0x24]
and ax, 0x380
sub ax, 0x100
test ax, 0xfe80
je 0x42602b
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.00494b20
mov rax, qword [rsp + 0x50]
add rbx, 0x18
cmp rbx, rax
jb 0x425da3
mov eax, 1
jmp 0x425ed7
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 [0x005004c0]
lea rcx, [rdx + 0x230]
cmp rax, rcx
je 0x42602b
mov rcx, qword [rax + 0x68]
add rdx, 0x230
cmp rcx, rdx
je 0x425f98
cmp qword [r14 + 0x80], 0
je 0x4260d2
test r12, r12
je 0x4260d2
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 0x4260d2
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 0x4261a0
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 0x42627f
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.00494a20
cmp eax, 3
je 0x426138
cmp eax, 4
je 0x425ec0
cmp eax, 2
je 0x425fd0
lea r8, str._bfd_coff_generic_relocate_section
mov edx, 0xc31
lea rcx, str..._.._.._src_binutils_2.32_bfd_cofflink.c
call fcn.00408da0
nop word [rax + rax]
cmp r15d, 0xffffffff
je 0x426210
test rsi, rsi
je 0x426230
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 0x425da3
jmp 0x425fe2
sub rax, qword [rdx + 0xe0]
mov qword [rsp + 0x70], rax
jmp 0x4260a2
cmp word [rsi + 0x3e], 0x169
jne 0x425ea2
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 0x425ea2
cmp byte [rdx + 0x18], 1
je 0x425ea2
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 0x426004
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 0x426161
lea r8, [rsp + 0x70]
mov rdx, r12
mov rcx, rbp
call fcn.00428d10
test rax, rax
mov r8, rax
je 0x425ed5
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 0x426161
lea rcx, str._pB:_illegal_symbol_index__ld_in_relocs
mov r8d, r15d
mov rdx, rbp
call fcn.00408c40
jmp 0x425ed5
mov ecx, 1
call fcn.00408e00
jmp 0x425ed5
sub rsp, 0x28
mov rax, qword [rdx + 0xe0]
test rax, rax
je 0x47eae5
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 0x47ead0
add rsp, 0x28
ret
lea rcx, str..._.._.._src_binutils_2.32_bfd_peicode.h
mov edx, 0x200
add rsp, 0x28
jmp fcn.00408d80
lea r8, str.pe_ILF_save_relocs
mov edx, 0x1f3
lea rcx, str..._.._.._src_binutils_2.32_bfd_peicode.h
call fcn.00408da0
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 0x47eb40
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 0x425d50
mov eax, 1
pop rbx
pop rsi
ret