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

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xd8
xor eax, eax
mov r15, rdx
mov rbx, rcx
mov edi, eax
mov qword [rbp + 0x77], rax
cmp dword [rcx + 0xac], eax
jne 0x10015a79
mov r12, qword [rcx + 0x80]
mov eax, 0x5a4d
cmp word [r12], ax
jne 0x10015a54
movsxd rdi, dword [r12 + 0x3c]
add rdi, r12
mov qword [rbp - 0x69], rdi
cmp dword [rdi], 0x4550
jne 0x10015a50
mov r8d, dword [rdi + 0x50]
mov rdx, qword [rdi + 0x30]
mov r13d, 0x40
mov r9d, 0x2000
mov rcx, r15
mov dword [rsp + 0x20], r13d
call qword [0x1001be2c]
xor esi, esi
mov r14, rax
test rax, rax
jne 0x10015400
call qword [0x1001bd7c]
cmp eax, 0x1e7
jne 0x10015a97
mov r8d, dword [rdi + 0x50]
xor edx, edx
mov r9d, 0x2000
mov rcx, r15
mov dword [rsp + 0x20], r13d
call qword [0x1001be2c]
mov r14, rax
test rax, rax
je 0x10015a97
mov r8d, dword [rdi + 0x54]
mov rax, r14
mov r9d, 0x1000
sub rax, qword [rdi + 0x30]
mov rdx, r14
mov rcx, r15
mov qword [rbp + 0x7f], rax
mov dword [rsp + 0x20], 4
call qword [0x1001be2c]
mov r13, rax
test rax, rax
je 0x10015a97
mov edx, dword [rdi + 0x90]
mov rcx, rbx
call fcn.10009318
mov r9d, dword [rdi + 0x54]
xor ecx, ecx
mov dword [rdi + 0x90], ecx
mov r8, r12
mov rdx, r13
mov rcx, r15
mov rsi, rax
call fcn.10016c97
xor ecx, ecx
test eax, eax
je 0x10015a92
mov r8d, dword [rdi + 0x54]
lea rax, [rbp + 0x67]
lea r9d, [rcx + 2]
mov dword [rbp + 0x67], ecx
mov rdx, r13
mov rcx, r15
mov qword [rsp + 0x20], rax
call qword [0x1001bd54]
xor r10d, r10d
test eax, eax
je 0x10015a8d
movzx eax, word [rdi + 0x14]
mov r13d, r10d
mov qword [rbp - 0x71], rax
cmp r10w, word [rdi + 6]
jae 0x10015572
lea r12, [rax + rdi + 0x28]
mov eax, dword [r12]
mov edx, dword [r12 - 4]
mov rcx, qword [rbp + 0x6f]
cmp dword [r12 - 8], eax
mov r9d, 0x1000
mov dword [rsp + 0x20], 4
cmova eax, dword [r12 - 8]
add rdx, r14
mov r8d, eax
mov r15d, eax
call qword [0x1001be2c]
mov qword [rbp + 0x67], rax
test rax, rax
je 0x10015a50
mov rdx, qword [rbp + 0x77]
mov ecx, r15d
call fcn.1001329f
mov r8d, r15d
xor edx, edx
mov rcx, rax
mov qword [rbp + 0x77], rax
call fcn.1000b0f8
mov r8, qword [rbp + 0x77]
mov rcx, qword [rbp + 0x6f]
mov r9d, r15d
mov r15, qword [rbp + 0x67]
mov rdx, r15
call fcn.10016c97
xor r10d, r10d
test eax, eax
je 0x10015a50
cmp dword [r12], r10d
jbe 0x1001555e
mov r8d, dword [r12 + 4]
mov r9d, dword [r12]
mov rcx, qword [rbp + 0x6f]
add r8, qword [rbx + 0x80]
mov rdx, r15
call fcn.10016c97
xor r10d, r10d
test eax, eax
je 0x10015a50
movzx eax, word [rdi + 6]
inc r13d
add r12, 0x28
cmp r13d, eax
jl 0x100154b0
cmp qword [rbp + 0x7f], r10
je 0x1001566b
mov edx, dword [rdi + 0xb0]
mov rcx, rbx
call fcn.10009318
xor r10d, r10d
mov r12, rax
test rax, rax
je 0x10015a50
cmp dword [rax], r10d
je 0x1001566b
mov r13d, dword [r12 + 4]
lea r15, [r12 + 8]
mov dword [rbp + 0x67], r10d
sub r13, 8
mov qword [rsp + 0x30], r10
shr r13, 1
test r13d, r13d
je 0x10015659
movzx ecx, word [r15]
movzx eax, cx
shr ax, 0xc
cmp ax, 3
jne 0x10015601
and ecx, 0xfff
add ecx, dword [r12]
mov edx, ecx
mov rcx, rbx
call fcn.10009318
mov r9d, 4
lea r8, [rbp + 0x67]
mov ecx, dword [rax]
mov rax, qword [rbp + 0x7f]
add eax, ecx
mov dword [rbp + 0x67], eax
jmp 0x10015635
cmp ax, 0xa
jne 0x1001564c
and ecx, 0xfff
add ecx, dword [r12]
mov edx, ecx
mov rcx, rbx
call fcn.10009318
mov r9d, 8
lea r8, [rsp + 0x30]
mov rcx, qword [rax]
mov rax, qword [rbp + 0x7f]
add rax, rcx
mov qword [rsp + 0x30], rax
mov rcx, qword [rbp + 0x6f]
add rdx, r14
call fcn.10016c97
xor r10d, r10d
test eax, eax
je 0x10015a50
add r15, 2
dec r13d
jne 0x100155c5
mov eax, dword [r12 + 4]
add r12, rax
cmp dword [r12], r10d
jne 0x100155a2
test rsi, rsi
je 0x1001575c
cmp dword [rsi], r10d
jne 0x10015695
cmp dword [rsi + 0x10], r10d
jne 0x10015695
cmp dword [rsi + 8], r10d
jne 0x10015695
cmp dword [rsi + 0xc], r10d
jne 0x10015695
cmp dword [rsi + 4], r10d
je 0x1001575c
mov qword [rbp + 0x67], r10
cmp dword [rsi + 0xc], r10d
je 0x10015674
mov edx, dword [rsi + 0xc]
mov rcx, rbx
call fcn.10009318
mov rcx, rbx
mov rdx, rax
call fcn.100112c0
mov r15, rax
test rax, rax
je 0x10015a50
mov edx, dword [rsi]
test rdx, rdx
jne 0x100156cb
mov edx, dword [rsi + 0x10]
mov rcx, rbx
call fcn.10009318
mov r12d, dword [rsi + 0x10]
mov rdx, qword [rax]
add r12, r14
xor r10d, r10d
mov r13, rax
jmp 0x1001574e
movabs rax, 0x8000000000000000
mov rcx, rbx
test rax, rdx
je 0x100156fd
movzx r8d, dx
jmp 0x10015709
call fcn.10009318
mov rcx, rbx
lea r8, [rax + 2]
mov rdx, r15
call fcn.100174c0
mov qword [rbp + 0x67], rax
test rax, rax
je 0x10015a50
mov rcx, qword [rbx + 0x90]
lea r8, [rbp + 0x67]
mov r9d, 8
mov rdx, r12
call fcn.10016c97
xor r10d, r10d
test eax, eax
je 0x10015a50
add r13, 8
add r12, 8
mov rdx, qword [r13]
test rdx, rdx
jne 0x100156e5
add rsi, 0x14
jmp 0x10015674
cmp dword [rbx + 0x8c], r10d
jne 0x1001586a
mov r13d, dword [rdi + 0x88]
mov rcx, rbx
mov edx, r13d
mov qword [rsp + 0x38], r13
call fcn.10009318
mov r12, rax
test rax, rax
je 0x10015a50
mov edx, dword [rax + 0x1c]
mov rcx, rbx
call fcn.10009318
mov edx, dword [r12 + 0x20]
mov rcx, rbx
mov qword [rbp + 0x7f], rax
call fcn.10009318
mov edx, dword [r12 + 0x24]
mov rcx, rbx
mov qword [rbp - 0x79], rax
call fcn.10009318
mov ecx, dword [rdi + 0x8c]
xor r10d, r10d
add ecx, r13d
mov r8, rax
mov qword [rsp + 0x30], rax
mov dword [rbp + 0x67], ecx
mov r15d, r10d
cmp dword [r12 + 0x14], r10d
jbe 0x10015836
mov rax, qword [rbp + 0x7f]
mov rdi, qword [rbp - 0x79]
mov esi, dword [rax]
add rax, 4
mov qword [rbp + 0x7f], rax
test esi, esi
je 0x10015828
cmp esi, r13d
jb 0x100157f9
cmp esi, ecx
jb 0x10015828
xor ecx, ecx
xor r10d, r10d
mov edx, ecx
cmp dword [r12 + 0x18], r10d
jbe 0x10015825
movzx eax, word [r8 + rcx*2]
cmp eax, r15d
je 0x100158b7
inc edx
inc rcx
cmp edx, dword [r12 + 0x18]
jb 0x10015807
mov rax, qword [rbp + 0x7f]
mov ecx, dword [rbp + 0x67]
inc r15d
cmp r15d, dword [r12 + 0x14]
jb 0x100157e2
mov rdi, qword [rbp - 0x69]
cmp qword [rbx + 0xe8], r10
je 0x10015a50
cmp qword [rbx + 0xf0], r10
je 0x10015a50
cmp qword [rbx + 0xf8], r10
je 0x10015a50
cmp qword [rbx + 0x100], r10
je 0x10015a50
mov r12d, r10d
cmp r10w, word [rdi + 6]
jae 0x10015a22
mov rax, qword [rbp - 0x71]
mov r15d, 0x40000000
mov r13d, 0x80000000
lea rsi, [rax + rdi + 0x3c]
mov eax, dword [rsi]
bt eax, 0x1d
jae 0x100159c0
test r15d, eax
je 0x100159ae
and eax, r13d
neg eax
sbb r9d, r9d
and r9d, 0x20
add r9d, 0x20
jmp 0x100159e6
mov edx, dword [rdi + rcx*4]
mov rcx, rbx
call fcn.10009318
mov rdx, 0x5a
lea rcx, [rbp - 0x59]
mov r13, rax
call fcn.1000ff20
lea rdx, [rbp - 0x59]
mov rcx, r13
call qword [0x1001bf54]
xor r10d, r10d
test eax, eax
jne 0x10015907
lea rax, [r14 + rsi]
mov qword [rbx + 0xe8], rax
mov r13, qword [rsp + 0x38]
mov rax, qword [rbp + 0x7f]
mov r8, qword [rsp + 0x30]
jmp 0x10015825
mov rdx, 0x5b
lea rcx, [rbp - 0x59]
call fcn.1000ff20
lea rdx, [rbp - 0x59]
mov rcx, r13
call qword [0x1001bf54]
xor r10d, r10d
test eax, eax
jne 0x10015938
lea rax, [r14 + rsi]
mov qword [rbx + 0xf0], rax
jmp 0x100158f4
mov rdx, 0x5c
lea rcx, [rbp - 0x59]
call fcn.1000ff20
lea rdx, [rbp - 0x59]
mov rcx, r13
call qword [0x1001bf54]
xor r10d, r10d
test eax, eax
jne 0x10015969
lea rax, [r14 + rsi]
mov qword [rbx + 0xf8], rax
jmp 0x100158f4
mov rdx, 0x5d
lea rcx, [rbp - 0x59]
call fcn.1000ff20
lea rdx, [rbp - 0x59]
mov rcx, r13
call qword [0x1001bf54]
mov r13, qword [rsp + 0x38]
mov ecx, dword [rbp + 0x67]
mov r8, qword [rsp + 0x30]
xor r10d, r10d
test eax, eax
jne 0x100159a5
lea rax, [r14 + rsi]
mov qword [rbx + 0x100], rax
mov rax, qword [rbp + 0x7f]
jmp 0x10015828
and eax, r13d
neg eax
sbb r9d, r9d
and r9d, 0x70
add r9d, 0x10
jmp 0x100159e6
test r15d, eax
je 0x100159d7
and eax, r13d
neg eax
sbb r9d, r9d
and r9d, 2
add r9d, 2
jmp 0x100159e6
and eax, r13d
neg eax
sbb r9d, r9d
and r9d, 7
inc r9d
mov edx, dword [rsi - 0x18]
mov r8d, dword [rsi - 0x1c]
mov rcx, qword [rbp + 0x6f]
lea rax, [rbp + 0x67]
add rdx, r14
mov dword [rbp + 0x67], r10d
mov qword [rsp + 0x20], rax
call qword [0x1001bd54]
xor r10d, r10d
test eax, eax
je 0x10015a50
movzx eax, word [rdi + 6]
inc r12d
add rsi, 0x28
cmp r12d, eax
jl 0x1001588d
xor r9d, r9d
mov rdx, r14
mov rcx, rbx
lea r8d, [r9 + 1]
mov qword [rbx + 0x78], r14
call fcn.10004200
xor edi, edi
test eax, eax
jne 0x10015a46
cmp dword [rbx + 0x8c], edi
je 0x10015a50
mov dword [rbx + 0xac], 1
mov rdi, qword [rbp + 0x77]
xor r14d, r14d
cmp dword [rbx + 0xac], r14d
jne 0x10015a68
mov rcx, rbx
call fcn.1000a118
test rdi, rdi
je 0x10015a75
mov rcx, rdi
call fcn.10004257
mov rax, qword [rbx + 0x78]
add rsp, 0xd8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rdi, r10
jmp 0x10015a54
mov rdi, rcx
jmp 0x10015a54
mov rdi, rsi
jmp 0x10015a54