Function at 0x408980
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
xor eax, eax
lea rbx, [rsp + 0x30]
mov r15, rcx
mov ecx, 0x10
mov rdi, rbx
test r15, r15
mov rsi, rdx
rep stosq qword [rdi], rax
je 0x4089b8
cmp word [r15], 0x5a4d
je 0x4089e0
xor ebx, ebx
mov rax, rbx
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movsxd rdi, dword [r15 + 0x3c]
add rdi, r15
cmp dword [rdi], 0x4550
jne 0x4089b8
lea rcx, [0x0041d120]
mov edx, 0x17ff124a
call fcn.004077c0
mov edx, 0x68d45c2e
mov rcx, rax
call fcn.00407ad0
test byte [rdi + 0x17], 0x20
je 0x4089b8
lea rcx, [0x0041d540]
mov edx, 0x617f37ca
call fcn.004077c0
mov edx, 0x4cb7dcae
mov rcx, rax
call fcn.00407ad0
movsxd rdx, dword [r15 + 0x3c]
add rdx, r15
lea rax, [rdx + 0x88]
mov rdx, qword [rdx + 0x88]
mov rdi, rdx
mov qword [rbx], rdx
mov rdx, qword [rax + 8]
shr rdi, 0x20
test edi, edi
mov qword [rbx + 8], rdx
mov rdx, qword [rax + 0x10]
mov qword [rbx + 0x10], rdx
mov rdx, qword [rax + 0x18]
mov qword [rbx + 0x18], rdx
mov rdx, qword [rax + 0x20]
mov qword [rbx + 0x20], rdx
mov rdx, qword [rax + 0x28]
mov qword [rbx + 0x28], rdx
mov rdx, qword [rax + 0x30]
mov qword [rbx + 0x30], rdx
mov rdx, qword [rax + 0x38]
mov qword [rbx + 0x38], rdx
mov rdx, qword [rax + 0x40]
mov qword [rbx + 0x40], rdx
mov rdx, qword [rax + 0x48]
mov qword [rbx + 0x48], rdx
mov rdx, qword [rax + 0x50]
mov qword [rbx + 0x50], rdx
mov rdx, qword [rax + 0x58]
mov qword [rbx + 0x58], rdx
mov rdx, qword [rax + 0x60]
mov qword [rbx + 0x60], rdx
mov rdx, qword [rax + 0x68]
mov qword [rbx + 0x68], rdx
mov rdx, qword [rax + 0x70]
mov rax, qword [rax + 0x78]
mov qword [rbx + 0x70], rdx
mov qword [rbx + 0x78], rax
je 0x4089b8
movsxd rax, dword [rsp + 0x30]
test eax, eax
je 0x4089b8
lea rcx, [0x0041d460]
mov edx, 0x4544d2ee
lea rbx, [rax + r15]
call fcn.004077c0
mov edx, 0x737065ea
lea r13, [section..rdata]
mov rcx, rax
call fcn.00407ad0
movsxd rbp, dword [rbx + 0x1c]
add rbp, r15
cmp rsi, r13
je 0x408cd0
cmp byte [rsi], 0
je 0x408cd0
mov r14d, dword [rbx + 0x18]
test r14d, r14d
js 0x408c70
mov eax, dword [rbp]
xor edi, edi
mov dword [rsp + 0x2c], eax
movsxd rax, dword [rbx + 0x20]
mov r12d, dword [rax + r15]
nop dword [rax]
lea rcx, [0x0041d3e0]
mov edx, 0x23f06f4e
movsxd rbx, r12d
call fcn.00407ad0
mov edx, 0x617f37ca
add rbx, r15
lea rcx, [0x0041d3b0]
call fcn.00407ad0
mov rdx, r13
test rax, rax
je 0x408b7c
cmp qword [rax], 0
lea rdx, [rax + 0x10]
cmove rdx, r13
mov rcx, rbx
call fcn.004088c0
test eax, eax
jne 0x408c90
add rbp, 4
mov eax, dword [rbp]
mov dword [rsp + 0x2c], eax
test rbx, rbx
je 0x408c60
cmp rsi, rbx
jne 0x408ca0
mov eax, dword [0x00424550]
test eax, eax
je 0x408bc4
lea rcx, [0x0041d380]
mov edx, 0x4544d2ee
call fcn.00407ad0
lea rcx, [0x0041d360]
mov edx, 0x79580caa
call fcn.00407ad0
mov edx, 0x2f9bef8e
lea rcx, [0x0041d320]
call fcn.00407ad0
mov edx, 0x7a1c8a
lea rcx, [0x0041d300]
call fcn.00407ad0
mov edx, 0x4a3aed2e
lea rcx, [0x0041d2c0]
call fcn.00407ad0
mov edx, 0x8c35f6a
lea rcx, [0x0041d280]
call fcn.00407ad0
mov edx, 0x358f33ce
lea rcx, [0x0041d260]
call fcn.00407ad0
mov edx, 0x1e6e8d4a
lea rcx, [0x0041d220]
call fcn.00407ad0
movsxd rbx, dword [rsp + 0x2c]
add rbx, r15
lea rcx, [0x0041d160]
mov edx, 0x31411e2a
call fcn.00407ad0
jmp 0x4089ba
add r12d, 1
add edi, 1
cmp r14d, edi
jge 0x408b40
lea rcx, [0x0041d160]
mov edx, 0x31411e2a
call fcn.00407ad0
jmp 0x4089b8
add r14d, 1
jmp 0x408b97
mov rcx, rbx
call sub.msvcrt.dll_strlen
mov rdx, rbx
mov rcx, rsi
mov qword [rsp + 0x20], rax
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x408ba9
mov rax, qword [rsp + 0x20]
lea r12d, [r12 + rax + 1]
jmp 0x408c64
lea rcx, [0x0041d420]
mov edx, 0x32086b6e
call fcn.00407ad0
movsxd rbx, dword [rbp - 4]
add rbx, r15
jmp 0x408c43