Function at 0x180038660
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x20], r9
push rbx
push rbp
push rsi
push rdi
push r13
push r14
push r15
sub rsp, 0x30
mov eax, dword [rdx + 0xb8]
xor edi, edi
mov r14, qword [rsp + 0x90]
mov r10, r9
mov r13, r8
mov r15, rdx
mov rbx, rcx
mov esi, edi
mov ebp, 0xffffffff
test eax, eax
je 0x180038712
mov ecx, eax
mov dword [r14 + 0xdc], eax
mov edx, 0xe8
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov qword [r14 + 0xe0], rax
test rax, rax
je 0x1800387d3
mov r8d, edi
cmp dword [rax + 0xdc], edi
jbe 0x18003870a
mov edx, edi
nop dword [rax + rax]
mov rax, qword [r14 + 0xe0]
lea rdx, [rdx + 0xe8]
inc r8
mov qword [rdx + rax - 0xe8], 0xffffffffffffffff
mov dword [rdx + rax - 0xd0], 0xffffffff
mov rax, qword [r14 + 0xe0]
mov ecx, dword [rax + 0xdc]
cmp r8, rcx
jb 0x1800386d0
mov r10, qword [rsp + 0x88]
cmp dword [r14], ebp
jne 0x180038729
mov eax, dword [r15]
mov dword [r14], eax
mov eax, dword [r15 + 8]
mov dword [r14 + 4], eax
mov dword [r14 + 0x20], edi
cmp byte [r15 + 0x58], dil
mov eax, edi
mov qword [rsp + 0x70], r12
setne al
mov ecx, eax
or ecx, 2
cmp byte [r15 + 0x59], sil
cmove ecx, eax
mov eax, ecx
or eax, 4
cmp byte [r15 + 0x5a], sil
cmove eax, ecx
mov ecx, eax
or ecx, 8
cmp byte [r15 + 0x5b], sil
cmove ecx, eax
mov eax, ecx
or eax, 0x10
cmp byte [r15 + 0x5c], sil
cmove eax, ecx
mov ecx, eax
or ecx, 0x20
cmp byte [r15 + 0x5d], sil
cmove ecx, eax
mov eax, ecx
or eax, 0x40
cmp byte [r15 + 0x5e], sil
cmove eax, ecx
mov ecx, eax
bts ecx, 7
cmp byte [r15 + 0x5f], sil
cmove ecx, eax
mov eax, ecx
bts eax, 8
cmp byte [r15 + 0x60], sil
cmove eax, ecx
mov dword [r14 + 0x20], eax
mov eax, dword [r15 + 8]
cmp eax, 0x14dd
jg case.0x1800387d1.31
je 0x180038dcb
sub eax, 0x13
cmp eax, 0xd
ja case.0x1800387d1.31
lea rdx, [0x180000000]
cdqe
mov ecx, dword [rdx + rax*4 + 0x38df8]
add rcx, rdx
jmp rcx
mov esi, 3
jmp 0x180038de7
or dword [r14 + 0x1c], 1
jmp case.0x1800387d1.31
or dword [r14 + 0x1c], 2
jmp case.0x1800387d1.31
or dword [r14 + 0x1c], 4
mov eax, dword [r15 + 0x18]
add eax, 2
test rbx, rbx
je 0x18003884b
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x18003884b
mov edx, eax
cmp rdx, qword [rbx]
jae 0x18003884b
mov eax, dword [rcx + rax*4]
mov esi, 0xb
mov dword [r14 + 0x24], eax
mov eax, dword [r15 + 0x18]
mov rdx, qword [rbx + 8]
add eax, 3
test rdx, rdx
je 0x180038dc5
mov ecx, eax
cmp rcx, qword [rbx]
jae 0x180038dc5
mov eax, dword [rdx + rax*4]
mov esi, edi
mov dword [r14 + 0x28], eax
jmp 0x180038dc5
mov esi, 0xb
jmp 0x180038de2
or dword [r14 + 0x1c], 8
mov esi, 0xb
mov eax, dword [r15 + 0x18]
add eax, 2
test rbx, rbx
je 0x180038dc5
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180038dc5
mov edx, eax
cmp rdx, qword [rbx]
jae 0x180038dc5
mov eax, dword [rcx + rax*4]
mov esi, edi
mov dword [r14 + 0x24], eax
jmp 0x180038dc5
or dword [r14 + 0x1c], 0x100
mov edx, dword [r15 + 0x18]
lea eax, [rdx + 2]
test rbx, rbx
je 0x1800388ce
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x1800388ce
mov r8, qword [rbx]
cmp rax, r8
jae 0x1800388ce
mov ebp, dword [rcx + rax*4]
lea eax, [rdx + 3]
mov edx, eax
cmp rdx, r8
jae 0x1800388ce
mov eax, dword [rcx + rax*4]
mov dword [r14 + 0x2c], eax
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x180038c57
mov rdx, qword [rbx + 0x40]
nop
cmp dword [rdx], ebp
je 0x180038db0
inc rdi
add rdx, 0xd0
cmp rdi, rax
jb 0x1800388e0
mov esi, 0xc
jmp 0x180038de2
or dword [r14 + 0x1c], 0x200
mov edx, dword [r15 + 0x18]
lea eax, [rdx + 2]
test rbx, rbx
je 0x18003893a
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x18003893a
mov r8, qword [rbx]
cmp rax, r8
jae 0x18003893a
mov ebp, dword [rcx + rax*4]
lea eax, [rdx + 3]
mov edx, eax
cmp rdx, r8
jae 0x18003893a
mov eax, dword [rcx + rax*4]
mov dword [r14 + 0x30], eax
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x18003895a
mov rdx, qword [rbx + 0x40]
cmp dword [rdx], ebp
je 0x180038988
inc rdi
add rdx, 0xd0
cmp rdi, rax
jb 0x180038947
mov esi, 0xc
mov eax, dword [r14 + 0x2c]
mov dword [r14 + 0x34], eax
mov eax, dword [r15 + 0xac]
mov dword [r14 + 0x38], eax
test r13, r13
je 0x180038dc5
mov eax, dword [r13 + 0x54]
mov dword [r14 + 0x38], eax
jmp 0x180038dc5
mov r9, r10
mov qword [rsp + 0x20], r14
xor r8d, r8d
mov rcx, rbx
call fcn.180038660
mov esi, eax
jmp 0x18003895f
or dword [r14 + 0x1c], 0x10000
mov eax, dword [r15 + 0x18]
add eax, 3
test rbx, rbx
je 0x180038a7f
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180038a7f
mov edx, eax
cmp rdx, qword [rbx]
jae 0x180038a7f
mov eax, dword [rcx + rax*4]
mov dword [r14 + 0x3c], eax
mov eax, dword [r15 + 0x18]
mov rdx, qword [rbx + 8]
add eax, 4
test rdx, rdx
je 0x180038a7f
mov ecx, eax
cmp rcx, qword [rbx]
jae 0x180038a7f
mov eax, dword [rdx + rax*4]
mov dword [r14 + 0x40], eax
mov eax, dword [r15 + 0x18]
mov rdx, qword [rbx + 8]
add eax, 5
test rdx, rdx
je 0x180038a7f
mov ecx, eax
cmp rcx, qword [rbx]
jae 0x180038a7f
mov eax, dword [rdx + rax*4]
mov dword [r14 + 0x44], eax
mov eax, dword [r15 + 0x18]
mov rdx, qword [rbx + 8]
add eax, 6
test rdx, rdx
je 0x180038a7f
mov ecx, eax
cmp rcx, qword [rbx]
jae 0x180038a7f
mov eax, dword [rdx + rax*4]
mov dword [r14 + 0x48], eax
mov eax, dword [r15 + 0x18]
mov rdx, qword [rbx + 8]
add eax, 7
test rdx, rdx
je 0x180038a7f
mov ecx, eax
cmp rcx, qword [rbx]
jae 0x180038a7f
mov eax, dword [rdx + rax*4]
mov dword [r14 + 0x4c], eax
mov eax, dword [r15 + 0x18]
mov rdx, qword [rbx + 8]
add eax, 8
test rdx, rdx
je 0x180038a7f
mov ecx, eax
cmp rcx, qword [rbx]
jae 0x180038a7f
mov eax, dword [rdx + rax*4]
mov dword [r14 + 0x50], eax
inc dword [rbx + 0x84]
jmp 0x180038dc5
inc dword [rbx + 0x84]
mov esi, 0xb
jmp 0x180038dc5
or dword [r14 + 0x1c], 0x20000
inc dword [rbx + 0x88]
jmp case.0x1800387d1.31
or dword [r14 + 0x1c], 0x40000
mov eax, dword [r15 + 0x18]
add eax, 2
test rbx, rbx
je 0x180038ac9
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180038ac9
mov edx, eax
cmp rdx, qword [rbx]
jae 0x180038ac9
mov ebp, dword [rcx + rax*4]
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x180038c57
mov rdx, qword [rbx + 0x40]
nop word [rax + rax]
cmp dword [rdx], ebp
je 0x180038db0
inc rdi
add rdx, 0xd0
cmp rdi, rax
jb 0x180038ae0
mov esi, 0xc
jmp 0x180038de2
or dword [r14 + 0x1c], 0x20000000
mov r9d, ebp
mov edx, dword [r15 + 0x18]
lea ecx, [rdx + 2]
test rbx, rbx
je 0x180038b44
mov rax, qword [rbx + 8]
test rax, rax
je 0x180038b44
cmp rcx, qword [rbx]
jae 0x180038b44
mov r8d, dword [rax + rcx*4]
mov r11, rax
lea eax, [rdx + 3]
mov esi, 0xb
mov ecx, eax
cmp rcx, qword [rbx]
jae 0x180038b4c
mov r9d, dword [r11 + rax*4]
mov esi, edi
jmp 0x180038b4c
mov esi, 0xb
mov r8d, ebp
mov eax, dword [r15 + 0xa8]
mov dword [r14 + 0xd8], eax
mov rax, rdi
mov rdx, qword [rbx + 0x38]
test rdx, rdx
je 0x180038c57
mov rcx, qword [rbx + 0x40]
nop
cmp dword [rcx], r9d
je 0x180038b8e
inc rax
add rcx, 0xd0
cmp rax, rdx
jb 0x180038b70
mov esi, 0xc
jmp 0x180038de2
mov eax, dword [rcx + 8]
sub eax, 0x32
test eax, 0xfffffffd
je 0x180038bcd
test esi, esi
jne 0x180038bc6
mov eax, dword [rcx + 0x18]
mov r9, qword [rbx + 8]
add eax, 3
test r9, r9
je 0x180038bc6
mov edx, eax
cmp rdx, qword [rbx]
jae 0x180038bc6
mov ecx, dword [r14 + 0x54]
mov esi, edi
mov eax, dword [r9 + rax*4]
mov dword [r14 + rcx*4 + 0x58], eax
jmp 0x180038bd6
mov esi, 0xc
jmp 0x180038bda
mov eax, dword [r14 + 0x54]
mov dword [r14 + rax*4 + 0x58], ebp
inc dword [r14 + 0x54]
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x180038dc5
mov rdx, qword [rbx + 0x40]
nop dword [rax + rax]
cmp dword [rdx], r8d
je 0x180038db0
inc rdi
add rdx, 0xd0
cmp rdi, rax
jb 0x180038bf0
jmp 0x180038dc5
mov eax, dword [r15 + 0x18]
add eax, 2
test rbx, rbx
je 0x180038c2c
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180038c2c
mov edx, eax
cmp rdx, qword [rbx]
jae 0x180038c2c
mov ebp, dword [rcx + rax*4]
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x180038c57
mov rdx, qword [rbx + 0x40]
nop dword [rax]
cmp dword [rdx], ebp
je 0x180038db0
inc rdi
add rdx, 0xd0
cmp rdi, rax
jb 0x180038c40
mov esi, 0xc
jmp 0x180038de2
or dword [r14 + 0x1c], 0x10080000
mov r13d, 2
cmp dword [r15 + 0x1c], r13d
jbe case.0x1800387d1.31
nop dword [rax]
mov edx, dword [r15 + 0x18]
mov ecx, ebp
add edx, r13d
test rbx, rbx
je 0x180038c9f
mov rax, qword [rbx + 8]
test rax, rax
je 0x180038c9f
cmp rdx, qword [rbx]
jae 0x180038c9f
mov ecx, dword [rax + rdx*4]
mov r8, qword [rbx + 0x38]
mov rax, rdi
test r8, r8
je 0x180038c57
mov rdx, qword [rbx + 0x40]
nop
cmp dword [rdx], ecx
je 0x180038ccd
inc rax
add rdx, 0xd0
cmp rax, r8
jb 0x180038cb0
mov esi, 0xc
jmp 0x180038de2
lea eax, [r13 - 2]
mov r9, r10
imul r12, rax, 0xe8
lea r8, [rax + rax*2]
mov qword [rsp + 0x78], rax
add r12, qword [r14 + 0xe0]
shl r8, 5
add r8, qword [r15 + 0xc8]
mov qword [rsp + 0x20], r12
mov dword [r12], ecx
mov rcx, rbx
mov eax, dword [rdx + 8]
mov dword [r12 + 4], eax
call fcn.180038660
mov esi, eax
test eax, eax
jne 0x180038de2
mov rax, qword [r15 + 0xc0]
inc r13d
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rax + rcx*8]
mov qword [r12 + 0x10], rcx
cmp r13d, dword [r15 + 0x1c]
jae case.0x1800387d1.31
mov r10, qword [rsp + 0x88]
jmp 0x180038c80
mov eax, dword [r15 + 0x18]
add eax, 2
test rbx, rbx
je 0x180038d85
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180038d85
mov edx, eax
cmp rdx, qword [rbx]
jae 0x180038d85
mov eax, dword [rcx + rax*4]
mov dword [r14 + 0x18], eax
mov eax, dword [r15 + 0x18]
mov rdx, qword [rbx + 8]
add eax, 3
test rdx, rdx
je 0x180038d85
mov ecx, eax
cmp rcx, qword [rbx]
jae 0x180038d85
mov ebp, dword [rdx + rax*4]
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x180038c57
mov rdx, qword [rbx + 0x40]
cmp dword [rdx], ebp
je 0x180038db0
inc rdi
add rdx, 0xd0
cmp rdi, rax
jb 0x180038d96
mov esi, 0xc
jmp 0x180038de2
mov r9, r10
mov qword [rsp + 0x20], r14
xor r8d, r8d
mov rcx, rbx
call fcn.180038660
mov esi, eax
test esi, esi
jne 0x180038de2
jmp case.0x1800387d1.31
or dword [r14 + 0x1c], 0x100000
cmp qword [r14 + 8], 0
jne 0x180038de2
mov rax, qword [r15 + 0x50]
mov qword [r14 + 8], rax
mov r12, qword [rsp + 0x70]
mov eax, esi
add rsp, 0x30
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret