Function at 0x403190
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 0x4031c8
cmp word [r15], 0x5a4d
je 0x4031f0
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 0x4031c8
lea rcx, [0x0052d4c0]
mov edx, 0x3c3c0148
call fcn.0040cb90
mov edx, 0x72503048
mov rcx, rax
call fcn.0040cde0
test byte [rdi + 0x17], 0x20
je 0x4031c8
lea rcx, [0x0052d820]
mov edx, 0x55fd3148
call fcn.0040cb90
mov edx, 0x1b084048
mov rcx, rax
call fcn.0040cde0
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 0x4031c8
movsxd rax, dword [rsp + 0x30]
test eax, eax
je 0x4031c8
lea rcx, [0x0052d7c0]
mov edx, 0x25949448
lea rbx, [rax + r15]
call fcn.0040cb90
mov edx, 0x55fd3148
lea r13, section..rdata
mov rcx, rax
call fcn.0040cde0
movsxd rbp, dword [rbx + 0x1c]
add rbp, r15
cmp rsi, r13
je 0x4034c0
cmp byte [rsi], 0
je 0x4034c0
mov r14d, dword [rbx + 0x18]
test r14d, r14d
js 0x4034e0
mov eax, dword [rbp]
xor edi, edi
mov dword [rsp + 0x20], eax
movsxd rax, dword [rbx + 0x20]
mov r12d, dword [rax + r15]
nop dword [rax]
lea rcx, [0x0052d740]
mov edx, 0x25949448
movsxd rbx, r12d
call fcn.0040cde0
mov edx, 0x70e56d48
add rbx, r15
lea rcx, [0x0052d710]
call fcn.0040cde0
mov rdx, r13
test rax, rax
je 0x40338c
cmp qword [rax], 0
lea rdx, [rax + 0x10]
cmove rdx, r13
mov rcx, rbx
call fcn.0040d2c0
test eax, eax
jne 0x403450
add rbp, 4
test rbx, rbx
mov r9d, dword [rbp]
je 0x403462
cmp rsi, rbx
jne 0x403480
mov edx, 0x1ebe0948
movsxd rbx, dword [rsp + 0x20]
lea rcx, [0x0052d6c0]
call fcn.0040cde0
mov edx, 0x2d289c48
lea rcx, [0x0052d680]
call fcn.0040cde0
mov edx, 0x5eee0548
add rbx, r15
lea rcx, [0x0052d660]
call fcn.0040cde0
mov edx, 0x38b25048
lea rcx, [0x0052d620]
call fcn.0040cde0
mov edx, 0x8b46148
lea rcx, [0x0052d5e0]
call fcn.0040cde0
mov edx, 0x7bf52448
lea rcx, [0x0052d5c0]
call fcn.0040cde0
mov edx, 0x6ae81d48
lea rcx, [0x0052d580]
call fcn.0040cde0
lea rcx, [0x0052d500]
mov edx, 0x51b83948
call fcn.0040cde0
jmp 0x4031ca
add r14d, 1
test rbx, rbx
mov r9d, dword [rsp + 0x20]
jne 0x4033ad
add r12d, 1
add edi, 1
cmp r14d, edi
jl 0x4034e0
mov dword [rsp + 0x20], r9d
jmp 0x403350
mov rcx, rbx
mov dword [rsp + 0x24], r9d
call sub.msvcrt.dll_strlen
mov rdx, rbx
mov rcx, rsi
mov qword [rsp + 0x28], rax
call sub.msvcrt.dll_strcmp
mov r9d, dword [rsp + 0x24]
test eax, eax
je 0x4033b6
mov rax, qword [rsp + 0x28]
lea r12d, [r12 + rax + 1]
jmp 0x403466
lea rcx, [0x0052d780]
mov edx, 0x13661848
call fcn.0040cde0
movsxd rbx, dword [rbp - 4]
add rbx, r15
jmp 0x403435
lea rcx, [0x0052d500]
mov edx, 0x51b83948
call fcn.0040cde0
jmp 0x4031c8