Function at 0x4597c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x70
cmp byte [rcx + 0x18], 7
mov rbp, qword [rdx + 8]
mov rbx, rcx
mov rsi, rdx
je 0x459938
mov eax, dword [rbx + 0x38]
test eax, eax
jns 0x459921
cmp eax, 0xfffffffe
je 0x45980c
mov rcx, qword [rsi]
movzx eax, byte [rcx + 1]
and eax, 0x60
cmp al, 0x60
je 0x459921
cmp al, 0x40
je 0x459c38
movzx eax, byte [rbx + 0x18]
cmp al, 5
je 0x459bc0
ja 0x459ba0
cmp al, 2
jbe 0x459950
mov rcx, qword [rbx + 0x28]
mov r8d, 0xffffffff
mov rax, qword [0x005ab640]
mov rdx, qword [rcx + 0x68]
add rax, 0x230
cmp rdx, rax
je 0x45984d
mov r8d, dword [rdx + 0xd8]
mov rax, qword [rcx + 0x60]
mov dword [rsp + 0x58], r8d
mov rcx, qword [rsi + 8]
add rax, qword [rbx + 0x30]
mov rcx, qword [rcx + 0xf0]
mov qword [rsp + 0x50], rax
mov r13d, dword [rcx + 0x78]
test r13d, r13d
jne 0x459880
add rax, qword [rdx + 0x28]
mov qword [rsp + 0x50], rax
nop dword [rax]
mov rdi, qword [rbx + 8]
mov rcx, rdi
call sub.msvcrt.dll_strlen
cmp rax, 8
jbe 0x459be0
mov rax, qword [rsi]
xor r9d, r9d
mov rdx, rdi
mov rcx, qword [rsi + 0x18]
movzx r8d, byte [rax + 4]
shr r8b, 5
xor r8d, 1
and r8d, 1
call fcn.00443be0
cmp rax, 0xffffffffffffffff
je 0x459970
mov qword [rsp + 0x40], 0
add rax, 4
mov qword [rsp + 0x48], rax
movzx eax, byte [rbx + 0x3e]
movzx edx, word [rbx + 0x3c]
test al, al
mov byte [rsp + 0x60], al
mov word [rsp + 0x5e], dx
mov edx, dword [rsi + 0x14]
je 0x459990
test edx, edx
je 0x459c10
cmp al, 0x7f
je 0x459c00
cmp al, 2
je 0x459c00
mov rdx, qword [rbp + 0xf0]
mov r12d, dword [rdx + 0x78]
test r12d, r12d
je 0x459921
cmp al, 0x69
je 0x459c00
mov eax, 1
add rsp, 0x70
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov rbx, qword [rcx + 0x28]
cmp byte [rbx + 0x18], 0
jne 0x4597e2
jmp 0x459921
test al, al
je 0x459ba8
mov dword [rsp + 0x58], 0
mov qword [rsp + 0x50], 0
jmp 0x459880
xor eax, eax
mov dword [rsi + 0x10], 1
add rsp, 0x70
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
test edx, edx
mov byte [rsp + 0x60], 2
jne 0x459c00
mov rax, qword [rsi]
movzx eax, byte [rax]
and eax, 3
sub eax, 1
cmp al, 2
ja 0x459c60
movzx eax, byte [rbx + 0x3f]
lea rdx, [rsp + 0x40]
mov rcx, rbp
mov r8, qword [rsi + 0xc8]
mov byte [rsp + 0x61], al
mov rax, qword [rbp + 8]
mov rax, qword [rax + 0x368]
call qword [rax + 0x20]
mov rax, qword [rbp + 8]
xor r8d, r8d
mov rcx, rbp
mov rax, qword [rax + 0x368]
mov r12d, dword [rax + 0x5c]
mov rax, qword [rbp + 0xf0]
mov edx, dword [rax + 0x28]
imul rdx, r12
add rdx, qword [rax + 0x18]
call fcn.004c93b0
test eax, eax
jne 0x459970
mov rcx, qword [rsi + 0xc8]
mov r8, rbp
mov rdx, r12
call fcn.004c91f0
cmp rax, r12
jne 0x459970
mov rdx, qword [rbp + 0xf0]
mov eax, dword [rdx + 0x28]
mov dword [rbx + 0x38], eax
add eax, 1
cmp byte [rsp + 0x61], 0
mov dword [rdx + 0x28], eax
je 0x459921
xor edi, edi
jmp 0x459ab4
mov rax, qword [rbp + 8]
mov rcx, rbp
mov rdx, qword [rsi + 0xc8]
mov rax, qword [rax + 0x368]
mov dword [rsp + 0x20], edi
mov qword [rsp + 0x30], rdx
movzx edx, byte [rsp + 0x61]
mov dword [rsp + 0x28], edx
mov rdx, r13
call qword [rax + 0x18]
mov rcx, qword [rsi + 0xc8]
mov r8, rbp
mov rdx, r12
call fcn.004c91f0
cmp rax, r12
jne 0x459970
mov rdx, qword [rbp + 0xf0]
add rdi, 1
movzx eax, byte [rsp + 0x61]
add dword [rdx + 0x28], 1
cmp edi, eax
jae 0x459921
mov rcx, qword [rbx + 0x48]
lea rax, [rdi + rdi*4]
test edi, edi
movzx r9d, byte [rsp + 0x60]
lea r13, [rcx + rax*8]
movzx eax, word [rsp + 0x5e]
movzx r8d, ax
jne 0x459a50
cmp r9b, 3
je 0x459ae7
cmp r9b, 0x6a
jne 0x459a50
test ax, ax
jne 0x459a50
movzx ecx, byte [rbx + 0x18]
sub ecx, 3
cmp cl, 1
ja 0x459a50
mov rcx, qword [rbx + 0x28]
mov r14, qword [rcx + 0x68]
test r14, r14
je 0x459a50
mov r10d, dword [r14 + 0x88]
mov rcx, qword [r14 + 0x38]
cmp r10d, 0xffff
mov dword [r13], ecx
mov ecx, r10d
jbe 0x459c99
mov r11d, dword [rdx + 0x78]
test r11d, r11d
je 0x459c84
mov rdx, qword [rsi]
movzx edx, byte [rdx]
and edx, 3
cmp dl, 2
je 0x459c84
mov r11d, dword [r14 + 0xc0]
cmp r11d, 0xffff
mov edx, r11d
jbe 0x459b72
movzx r9d, byte [rsp + 0x60]
mov ecx, r10d
mov edx, r11d
movzx r8d, ax
movzx ecx, cx
shl edx, 0x10
xor eax, eax
mov dword [r13 + 8], 0
or edx, ecx
mov word [r13 + 0xc], ax
mov dword [r13 + 4], edx
mov byte [r13 + 0xe], 0
jmp 0x459a50
cmp al, 6
je 0x459921
lea r8, str._bfd_coff_write_global_sym
mov edx, 0xa27
lea rcx, str..._.._.._src_binutils_2.32_bfd_cofflink.c
call fcn.0043f7c0
mov rax, qword [rbx + 0x30]
mov dword [rsp + 0x58], 0
mov qword [rsp + 0x50], rax
jmp 0x459880
lea rcx, [rsp + 0x40]
mov r8d, 8
mov rdx, rdi
call sub.msvcrt.dll_strncpy
jmp 0x4598d5
mov byte [rsp + 0x60], 3
jmp 0x4599b1
mov rdx, qword [rsi]
movzx edx, byte [rdx]
and edx, 3
sub edx, 1
cmp dl, 2
jbe 0x4599b1
cmp al, 0x7f
jne 0x459c65
mov byte [rsp + 0x60], 2
jmp 0x4599b1
mov rdx, qword [rbx + 8]
xor r9d, r9d
xor r8d, r8d
mov rcx, qword [rcx + 0x30]
call fcn.00443660
test rax, rax
jne 0x45980c
jmp 0x459921
mov eax, 2
mov rdx, qword [rsi + 8]
mov rdx, qword [rdx + 0xf0]
mov edi, dword [rdx + 0x78]
test edi, edi
je 0x4599b1
cmp al, 0x69
je 0x459c29
jmp 0x4599b1
mov r9d, r10d
mov r8, r14
mov rdx, rbp
lea rcx, str._pB:__pA:_reloc_overflow:__x___0xffff
call fcn.0043f660
mov edx, dword [r14 + 0xc0]
cmp edx, 0xffff
mov r11d, edx
ja 0x459cc3
mov ecx, dword [r14 + 0x88]
movzx r9d, byte [rsp + 0x60]
movzx r8d, word [rsp + 0x5e]
jmp 0x459b72
mov rax, qword [rbp + 0xf0]
mov edx, dword [rax + 0x78]
test edx, edx
je 0x459cde
mov rax, qword [rsi]
movzx eax, byte [rax]
and eax, 3
cmp al, 2
jne 0x459d12
mov r9d, r11d
mov r8, r14
mov rdx, rbp
lea rcx, str._pB:_warning:__pA:_line_number_overflow:__x___0xffff
call fcn.0043f660
mov ecx, dword [r14 + 0x88]
mov edx, dword [r14 + 0xc0]
movzx r9d, byte [rsp + 0x60]
movzx r8d, word [rsp + 0x5e]
jmp 0x459b72
movzx eax, word [rsp + 0x5e]
mov r10d, dword [r14 + 0x88]
jmp 0x459b62