Function at 0x421920
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 0x421a98
mov eax, dword [rbx + 0x38]
test eax, eax
jns 0x421a81
cmp eax, 0xfffffffe
je 0x42196c
mov rcx, qword [rsi]
movzx eax, byte [rcx + 1]
and eax, 0x60
cmp al, 0x60
je 0x421a81
cmp al, 0x40
je 0x421d98
movzx eax, byte [rbx + 0x18]
cmp al, 5
je 0x421d20
ja 0x421d00
cmp al, 2
jbe 0x421ab0
mov rcx, qword [rbx + 0x28]
mov r8d, 0xffffffff
mov rax, qword [0x005004c0]
mov rdx, qword [rcx + 0x68]
add rax, 0x230
cmp rdx, rax
je 0x4219ad
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 0x4219e0
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 0x421d40
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.0040d1a0
cmp rax, 0xffffffffffffffff
je 0x421ad0
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 0x421af0
test edx, edx
je 0x421d70
cmp al, 0x7f
je 0x421d60
cmp al, 2
je 0x421d60
mov rdx, qword [rbp + 0xf0]
mov r12d, dword [rdx + 0x78]
test r12d, r12d
je 0x421a81
cmp al, 0x69
je 0x421d60
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 0x421942
jmp 0x421a81
test al, al
je 0x421d08
mov dword [rsp + 0x58], 0
mov qword [rsp + 0x50], 0
jmp 0x4219e0
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 0x421d60
mov rax, qword [rsi]
movzx eax, byte [rax]
and eax, 3
sub eax, 1
cmp al, 2
ja 0x421dc0
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.0040add0
test eax, eax
jne 0x421ad0
mov rcx, qword [rsi + 0xc8]
mov r8, rbp
mov rdx, r12
call fcn.0040ac10
cmp rax, r12
jne 0x421ad0
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 0x421a81
xor edi, edi
jmp 0x421c14
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.0040ac10
cmp rax, r12
jne 0x421ad0
mov rdx, qword [rbp + 0xf0]
add rdi, 1
movzx eax, byte [rsp + 0x61]
add dword [rdx + 0x28], 1
cmp edi, eax
jae 0x421a81
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 0x421bb0
cmp r9b, 3
je 0x421c47
cmp r9b, 0x6a
jne 0x421bb0
test ax, ax
jne 0x421bb0
movzx ecx, byte [rbx + 0x18]
sub ecx, 3
cmp cl, 1
ja 0x421bb0
mov rcx, qword [rbx + 0x28]
mov r14, qword [rcx + 0x68]
test r14, r14
je 0x421bb0
mov r10d, dword [r14 + 0x88]
mov rcx, qword [r14 + 0x38]
cmp r10d, 0xffff
mov dword [r13], ecx
mov ecx, r10d
jbe 0x421df9
mov r11d, dword [rdx + 0x78]
test r11d, r11d
je 0x421de4
mov rdx, qword [rsi]
movzx edx, byte [rdx]
and edx, 3
cmp dl, 2
je 0x421de4
mov r11d, dword [r14 + 0xc0]
cmp r11d, 0xffff
mov edx, r11d
jbe 0x421cd2
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 0x421bb0
cmp al, 6
je 0x421a81
lea r8, str._bfd_coff_write_global_sym
mov edx, 0xa27
lea rcx, str..._.._.._src_binutils_2.32_bfd_cofflink.c
call fcn.00408da0
mov rax, qword [rbx + 0x30]
mov dword [rsp + 0x58], 0
mov qword [rsp + 0x50], rax
jmp 0x4219e0
lea rcx, [rsp + 0x40]
mov r8d, 8
mov rdx, rdi
call sub.msvcrt.dll_strncpy
jmp 0x421a35
mov byte [rsp + 0x60], 3
jmp 0x421b11
mov rdx, qword [rsi]
movzx edx, byte [rdx]
and edx, 3
sub edx, 1
cmp dl, 2
jbe 0x421b11
cmp al, 0x7f
jne 0x421dc5
mov byte [rsp + 0x60], 2
jmp 0x421b11
mov rdx, qword [rbx + 8]
xor r9d, r9d
xor r8d, r8d
mov rcx, qword [rcx + 0x30]
call fcn.0040cc20
test rax, rax
jne 0x42196c
jmp 0x421a81
mov eax, 2
mov rdx, qword [rsi + 8]
mov rdx, qword [rdx + 0xf0]
mov edi, dword [rdx + 0x78]
test edi, edi
je 0x421b11
cmp al, 0x69
je 0x421d89
jmp 0x421b11
mov r9d, r10d
mov r8, r14
mov rdx, rbp
lea rcx, str._pB:__pA:_reloc_overflow:__x___0xffff
call fcn.00408c40
mov edx, dword [r14 + 0xc0]
cmp edx, 0xffff
mov r11d, edx
ja 0x421e23
mov ecx, dword [r14 + 0x88]
movzx r9d, byte [rsp + 0x60]
movzx r8d, word [rsp + 0x5e]
jmp 0x421cd2
mov rax, qword [rbp + 0xf0]
mov edx, dword [rax + 0x78]
test edx, edx
je 0x421e3e
mov rax, qword [rsi]
movzx eax, byte [rax]
and eax, 3
cmp al, 2
jne 0x421e72
mov r9d, r11d
mov r8, r14
mov rdx, rbp
lea rcx, str._pB:_warning:__pA:_line_number_overflow:__x___0xffff
call fcn.00408c40
mov ecx, dword [r14 + 0x88]
mov edx, dword [r14 + 0xc0]
movzx r9d, byte [rsp + 0x60]
movzx r8d, word [rsp + 0x5e]
jmp 0x421cd2
movzx eax, word [rsp + 0x5e]
mov r10d, dword [r14 + 0x88]
jmp 0x421cc2