Function at 0x4157b0
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
mov r15, rcx
mov ecx, 0x10
mov rsi, rdx
lea rbx, [rsp + 0x30]
test r15, r15
mov ebp, r9d
mov rdi, rbx
rep stosq qword [rdi], rax
je 0x4157eb
cmp word [r15], 0x5a4d
je 0x415804
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 0x4157eb
mov edx, 0x7fcc822e
mov qword [rsp + 0x110], r8
lea rcx, [0x00421ee0]
call fcn.00413050
mov edx, 0x7fcc822e
mov rcx, rax
call fcn.00415040
test byte [rdi + 0x17], 0x20
je 0x4157eb
lea rcx, [0x00421ec0]
mov edx, 0x3ecec2ae
call fcn.00413050
mov edx, 0x3ecec2ae
mov rcx, rax
call fcn.00415040
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 0x4157eb
movsxd rax, dword [rsp + 0x30]
test eax, eax
je 0x4157eb
lea rcx, [0x00421e00]
mov edx, 0xd7c77ea
lea rdi, [rax + r15]
call fcn.00413050
mov edx, 0xd7c77ea
mov rcx, rax
call fcn.00415040
movsxd rbx, dword [rdi + 0x1c]
lea rax, [0x0041fa20]
mov r8, qword [rsp + 0x110]
add rbx, r15
cmp rsi, rax
je 0x415b00
test rsi, rsi
je 0x415b46
cmp byte [rsi], 0
je 0x415b00
mov r14d, dword [rdi + 0x18]
test r14d, r14d
js 0x415b30
mov eax, dword [rbx]
mov qword [rsp + 0x28], rbx
xor r12d, r12d
mov dword [rsp + 0x24], eax
movsxd rax, dword [rdi + 0x20]
mov r13d, dword [rax + r15]
jmp 0x4159a8
movsxd rbx, dword [rsp + 0x24]
add r14d, 1
test rdi, rdi
jne 0x415a10
add r13d, 1
add r12d, 1
cmp r12d, r14d
jg 0x415b30
mov dword [rsp + 0x24], ebx
lea rcx, [0x00421dc0]
mov edx, 0x24f0c54e
movsxd rdi, r13d
call fcn.00415040
mov edx, 0x750699ca
add rdi, r15
lea rcx, [0x00421da0]
call fcn.00415040
lea rdx, [0x0041fa20]
test rax, rax
je 0x4159ef
cmp qword [rax], 0
lea rdx, [rax + 0x10]
lea rax, [0x0041fa20]
cmove rdx, rax
mov rcx, rdi
call fcn.004156a0
test eax, eax
jne 0x415981
add qword [rsp + 0x28], 4
mov rax, qword [rsp + 0x28]
movsxd rbx, dword [rax]
jmp 0x41598a
mov rcx, rdi
call sub.msvcrt.dll_strlen
cmp rdi, rsi
lea r13d, [r13 + rax + 1]
je 0x415a35
mov rdx, rdi
mov rcx, rsi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x415997
mov ecx, ebp
call fcn.0040bdf0
mov ecx, dword [0x004924bc]
test al, al
jne 0x415bf2
call fcn.0040bdf0
lea rcx, [0x00421d20]
mov edx, 0x44933eaa
call fcn.00415040
mov edx, 0x1dcba58e
lea rcx, [0x00421ce0]
call fcn.00415040
mov edx, 0x75959e8a
lea rcx, [0x00421cc0]
call fcn.00415040
mov edx, 0x2488932e
lea rcx, [0x00421c80]
call fcn.00415040
mov edx, 0x30ffb16a
lea rcx, [0x00421c40]
call fcn.00415040
mov edx, 0xc8449ce
lea rcx, [0x00421c20]
call fcn.00415040
mov edx, 0x2402f4a
lea rcx, [0x00421be0]
call fcn.00415040
mov ecx, ebp
call fcn.0040bdf0
movsxd rdx, dword [rsp + 0x24]
lea r10, [rbx + r15]
add rdx, r15
test al, al
mov rbx, rdx
cmovne rbx, r10
mov edx, 0x4d70902a
lea rcx, [0x00421a80]
call fcn.00415040
jmp 0x4157ed
mov edx, 0x550a716e
mov qword [rsp + 0x110], r8
lea rcx, [0x00421ba0]
call fcn.00415040
mov r8, qword [rsp + 0x110]
movsxd rbx, dword [rbx + r8*4 - 4]
add rbx, r15
jmp 0x415ae2
lea rcx, [0x00421a80]
mov edx, 0x4d70902a
call fcn.00415040
jmp 0x4157eb
mov r14d, dword [rdi + 0x18]
test r14d, r14d
js 0x415b30
mov ecx, dword [rbx]
mov rsi, rbx
xor r13d, r13d
mov qword [rsp + 0x28], rax
movsxd rdx, dword [rdi + 0x20]
mov dword [rsp + 0x24], ecx
mov r12d, dword [rdx + r15]
jmp 0x415b9a
add rsi, 4
movsxd rbx, dword [rsi]
test rdi, rdi
je 0x415a35
mov rcx, rdi
add r13d, 1
call sub.msvcrt.dll_strlen
cmp r14d, r13d
lea r12d, [r12 + rax + 1]
jl 0x415b30
mov dword [rsp + 0x24], ebx
lea rcx, [0x00421dc0]
mov edx, 0x24f0c54e
movsxd rdi, r12d
call fcn.00415040
mov edx, 0x750699ca
add rdi, r15
lea rcx, [0x00421da0]
call fcn.00415040
mov rcx, qword [rsp + 0x28]
test rax, rax
mov rdx, rcx
je 0x415bdb
cmp qword [rax], 0
lea rdx, [rax + 0x10]
cmove rdx, rcx
mov rcx, rdi
call fcn.004156a0
test eax, eax
je 0x415b70
add r14d, 1
movsxd rbx, dword [rsp + 0x24]
jmp 0x415b77
call fcn.0040bdf0
test al, al
je 0x415a4f
lea rcx, [0x00421d40]
mov edx, 0x36418ee
call fcn.00415040
jmp 0x415a4f