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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x38
mov r9, qword [rcx]
mov r12d, 5
mov r14, qword [rcx + 8]
mov r8d, r12d
xor esi, esi
mov qword [rsp + 0x20], r14
xor edi, edi
mov rbx, rcx
cmp r9, r8
jbe 0x180037b37
mov eax, r12d
nop dword [rax]
mov ecx, dword [r14 + rax*4]
movzx edx, cx
shr ecx, 0x10
test ecx, ecx
je 0x180037b30
cmp edx, 0x41
jne 0x18003707a
inc dword [rbx + 0x58]
lea eax, [rdi + 1]
cmp edx, 0x56
cmovne eax, edi
add r8d, ecx
mov edi, eax
inc esi
mov eax, r8d
cmp rax, r9
jb 0x180037060
test esi, esi
je 0x180037b37
mov ebp, esi
mov edx, 0xd0
mov ecx, esi
mov qword [rbx + 0x38], rbp
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov qword [rbx + 0x40], rax
test rax, rax
je 0x180037b29
test esi, esi
je 0x180037133
xor ecx, ecx
mov rax, qword [rbx + 0x40]
lea rcx, [rcx + 0xd0]
mov dword [rax + rcx - 0xc8], 0xffffffff
mov rax, qword [rbx + 0x40]
mov dword [rax + rcx - 0xbc], 0xffffffff
mov rax, qword [rbx + 0x40]
mov dword [rax + rcx - 0x68], 0xffffffff
mov rax, qword [rbx + 0x40]
mov dword [rax + rcx - 0x60], 0xffffffff
mov rax, qword [rbx + 0x40]
mov dword [rax + rcx - 0x50], 0xffffffff
mov rax, qword [rbx + 0x40]
mov dword [rax + rcx - 0x48], 0xffffffff
mov rax, qword [rbx + 0x40]
mov dword [rax + rcx - 0x40], 0xffffffff
mov rax, qword [rbx + 0x40]
mov dword [rax + rcx - 0x20], 0xffffffff
sub rbp, 1
jne 0x1800370c0
mov eax, dword [rbx + 0x58]
mov dword [rbx + 0x28], 0xffffffff
mov qword [rbx + 0x30], 0
mov dword [rsp + 0x90], 0xffffffff
test eax, eax
je 0x18003716e
mov ecx, eax
mov edx, 0x18
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov qword [rbx + 0x60], rax
test rax, rax
je 0x180037b29
test edi, edi
je 0x180037196
mov edx, 8
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
lea r8, [rdi*8]
xor edx, edx
mov rcx, rax
mov qword [rbx + 0x70], rax
call sub.VCRUNTIME140.dll_memset
xor ebp, ebp
xor edi, edi
xor r13d, r13d
mov dword [rsp + 0x98], ebp
mov dword [rsp + 0x80], edi
cmp qword [rbx], r12
jbe 0x18003732b
mov rax, r12
lea r8, [0x180000000]
nop
lea rdx, [rax*4]
mov eax, ebp
mov ecx, dword [rdx + r14]
mov esi, ecx
imul r15, rax, 0xd0
shr esi, 0x10
add r15, qword [rbx + 0x40]
movzx eax, cx
mov dword [rsp + 0x88], esi
mov dword [r15 + 8], eax
mov dword [r15 + 0x18], r12d
mov dword [r15 + 0x1c], esi
cmp eax, 0x1178
ja 0x180037afb
je case.0x180037229.8
add eax, 0xfffffffe
cmp eax, 0xf6
ja case.0x180037229.24
cdqe
movzx eax, byte [r8 + rax + 0x37bac]
mov ecx, dword [r8 + rax*4 + 0x37b50]
add rcx, r8
jmp rcx
inc dword [rbx + 0x10]
jmp case.0x180037229.24
mov rcx, qword [rbx + 8]
lea eax, [r12 + 1]
test rcx, rcx
je 0x180037b37
mov rdx, qword [rbx]
cmp rax, rdx
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [rbx + 0x20], eax
mov eax, dword [r15 + 0x18]
add eax, 2
mov r8d, eax
cmp r8, rdx
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [rbx + 0x24], eax
mov eax, dword [r15 + 0x1c]
cmp eax, 4
jb 0x180037296
mov eax, dword [r15 + 0x18]
add eax, 3
mov r8d, eax
cmp r8, rdx
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [rbx + 0x28], eax
mov eax, dword [r15 + 0x1c]
cmp eax, 5
jb case.0x180037229.24
mov eax, dword [r15 + 0x18]
lea rdi, [rcx + rax*4]
mov rax, 0xffffffffffffffff
nop word [rax + rax]
cmp byte [rdi + rax + 0x11], 0
lea rax, [rax + 1]
jne 0x1800372b0
lea rbp, [rax + 1]
mov edx, 8
mov rcx, rbp
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov rsi, rax
test rax, rax
je 0x180037b29
lea r8, [rdi + 0x10]
mov rdx, rbp
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
mov ebp, dword [rsp + 0x98]
mov qword [rbx + 0x30], rsi
mov edi, dword [rsp + 0x80]
mov esi, dword [rsp + 0x88]
cmp byte [r15 + 0x20], 0
je 0x18003730c
inc dword [rbx + 0x78]
add r12d, esi
lea r8, [0x180000000]
inc ebp
mov eax, r12d
mov dword [rsp + 0x98], ebp
cmp rax, qword [rbx]
jb 0x1800371c0
mov dword [rbx + 0x68], r13d
xor eax, eax
jmp 0x180037b3c
mov rbp, qword [rbx + 8]
mov rsi, 0xffffffffffffffff
add rbp, rdx
cmp byte [rsi + rbp + 5], 0
lea rsi, [rsi + 1]
jne 0x180037344
mov rax, qword [rbx + 0x30]
mov rdi, 0xffffffffffffffff
nop word [rax + rax]
inc rdi
cmp byte [rax + rdi], 0
jne 0x180037360
lea rcx, [rsi + 1]
mov edx, 8
add rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov r14, rax
test rax, rax
je 0x180037b29
mov r8, qword [rbx + 0x30]
lea rdx, [rdi + 1]
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
lea rdx, [rsi + 1]
mov rcx, r14
lea r8, [rbp + 4]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcat_s]
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x1800373b8
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ebp, dword [rsp + 0x98]
mov qword [rbx + 0x30], r14
mov r14, qword [rsp + 0x20]
jmp 0x1800372f4
inc dword [rbx + 0x48]
mov eax, dword [r15 + 0x18]
mov rdx, qword [rbx + 8]
add eax, 2
test rdx, rdx
je 0x180037b37
mov ecx, eax
cmp rcx, qword [rbx]
jae 0x180037b37
mov eax, dword [rdx + rax*4]
mov dword [r15 + 4], eax
jmp case.0x180037229.24
mov rcx, qword [rbx + 8]
lea eax, [r12 + 1]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15 + 4], eax
mov rcx, qword [rbx + 8]
add rcx, 8
add rcx, rdx
mov qword [r15 + 0x50], rcx
jmp case.0x180037229.24
mov rcx, qword [rbx + 8]
add rcx, 0xc
add rcx, rdx
mov qword [r15 + 0x50], rcx
jmp case.0x180037229.24
lea eax, [rsi - 2]
mov dword [r15 + 0xb8], eax
jmp case.0x180037229.8
mov rcx, qword [rbx + 8]
lea eax, [r12 + 1]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15], eax
lea eax, [r12 + 2]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15 + 0x2c], eax
lea eax, [r12 + 3]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15 + 0x30], eax
lea eax, [r12 + 4]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15 + 0x34], eax
lea eax, [r12 + 5]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15 + 0x38], eax
lea eax, [r12 + 6]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15 + 0x3c], eax
lea eax, [r12 + 7]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15 + 0x40], eax
lea eax, [r12 + 8]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15 + 0x44], eax
mov byte [r15 + 0x20], 1
jmp case.0x180037229.24
mov rcx, qword [rbx + 8]
lea eax, [r12 + 1]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15], eax
lea eax, [r12 + 2]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15 + 0x48], eax
mov byte [r15 + 0x20], 1
jmp case.0x180037229.24
mov rcx, qword [rbx + 8]
lea eax, [r12 + 1]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15], eax
lea eax, [r12 + 2]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15 + 0x24], eax
lea eax, [r12 + 3]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15 + 0x28], eax
mov byte [r15 + 0x20], 1
jmp case.0x180037229.24
mov rcx, qword [rbx + 8]
lea eax, [r12 + 1]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15], eax
lea eax, [r12 + 2]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15 + 0x24], eax
mov byte [r15 + 0x20], 1
jmp case.0x180037229.24
mov rcx, qword [rbx + 8]
lea eax, [r12 + 1]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15], eax
lea eax, [r12 + 2]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15 + 0x14], eax
lea eax, [r12 + 3]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15 + 0x10], eax
mov byte [r15 + 0x20], 1
jmp case.0x180037229.24
mov rcx, qword [rbx + 8]
lea eax, [r12 + 1]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15], eax
lea eax, [r12 + 2]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15 + 0x14], eax
mov byte [r15 + 0x20], 1
jmp case.0x180037229.24
mov rcx, qword [rbx + 8]
lea eax, [r12 + 1]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15 + 0xc], eax
lea eax, [r12 + 2]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15], eax
jmp case.0x180037229.24
mov rcx, qword [rbx + 8]
lea eax, [r12 + 1]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15 + 0x10], eax
lea eax, [r12 + 2]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15], eax
lea eax, [r12 + 3]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15 + 0x14], eax
jmp case.0x180037229.24
mov rcx, qword [rbx + 8]
lea eax, [r12 + 1]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15 + 0xc], eax
lea eax, [r12 + 2]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15], eax
lea eax, [r12 + 3]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15 + 0x4c], eax
jmp case.0x180037229.24
mov eax, edi
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 0x60]
lea rdi, [rax + rcx*8]
mov rcx, qword [rbx + 8]
lea eax, [r12 + 1]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [rdi + 4], eax
mov eax, dword [r15 + 0x18]
mov rdx, qword [rbx + 8]
add eax, 2
test rdx, rdx
je 0x180037b37
mov ecx, eax
cmp rcx, qword [rbx]
jae 0x180037b37
mov eax, dword [rdx + rax*4]
mov dword [rdi], eax
mov eax, dword [r15 + 0x18]
mov rdx, qword [rbx + 8]
add eax, 3
test rdx, rdx
je 0x180037b37
mov ecx, eax
cmp rcx, qword [rbx]
jae 0x180037b37
mov eax, dword [rdx + rax*4]
mov dword [rdi + 8], eax
lea eax, [rsi - 4]
mov dword [rdi + 0xc], eax
test eax, eax
je 0x180037979
mov ecx, eax
mov edx, 4
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov qword [rdi + 0x10], rax
test rax, rax
je 0x180037b29
xor r9d, r9d
cmp dword [rdi + 0xc], r9d
jbe 0x180037979
nop dword [rax + rax]
mov ecx, dword [r15 + 0x18]
mov r10, qword [rbx + 8]
add ecx, 4
add ecx, r9d
test r10, r10
je 0x180037b37
mov r11, qword [rbx]
mov eax, ecx
cmp rax, r11
jae 0x180037b37
mov r8d, dword [r10 + rcx*4]
xor ecx, ecx
mov rdx, qword [rbx + 0x38]
test rdx, rdx
je 0x180037970
mov rax, qword [rbx + 0x40]
cmp dword [rax], r8d
je 0x18003794d
inc rcx
add rax, 0xd0
cmp rcx, rdx
jb 0x180037938
jmp 0x180037970
cmp dword [rax + 8], 0x2b
jne 0x180037970
mov eax, dword [rax + 0x18]
add eax, 3
mov ecx, eax
cmp rcx, r11
jae 0x180037b37
mov edx, dword [r10 + rax*4]
mov rax, qword [rdi + 0x10]
mov dword [rax + r9*4], edx
inc r9d
cmp r9d, dword [rdi + 0xc]
jb 0x180037900
mov edi, dword [rsp + 0x80]
inc edi
mov dword [rsp + 0x80], edi
jmp case.0x180037229.24
mov rax, qword [rbx + 0x70]
mov rcx, qword [rbx + 8]
lea rdi, [rax + r13*8]
lea eax, [r12 + 1]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15 + 0xc], eax
lea eax, [r12 + 2]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15], eax
lea eax, [r12 + 3]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov r8d, dword [rcx + rax*4]
mov dword [rdi], r8d
mov eax, dword [r15 + 0x18]
mov rdx, qword [rbx + 8]
add eax, 4
test rdx, rdx
je 0x180037b37
mov ecx, eax
cmp rcx, qword [rbx]
jae 0x180037b37
mov esi, dword [rdx + rax*4]
mov r9d, 0x19
mov edx, ebp
mov dword [rdi + 4], esi
mov rcx, rbx
call fcn.180034380
test rax, rax
je 0x180037a37
mov eax, dword [rax]
mov r9d, 0x1a
mov dword [rdi], eax
mov r8d, esi
mov edx, ebp
mov rcx, rbx
call fcn.180034380
test rax, rax
je 0x180037a55
mov edx, dword [rax]
jmp 0x180037a57
xor edx, edx
xor ecx, ecx
mov dword [rdi + 4], edx
test r13d, r13d
je 0x180037a80
mov r8, qword [rbx + 0x70]
mov r9d, dword [rdi]
cmp dword [r8 + rcx*8], r9d
jne 0x180037a79
cmp dword [r8 + rcx*8 + 4], edx
je 0x1800372f4
inc ecx
cmp ecx, r13d
jb 0x180037a68
inc r13d
jmp 0x1800372f4
mov rcx, qword [rbx + 8]
lea eax, [r12 + 2]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15], eax
mov dword [rsp + 0x90], ebp
jmp case.0x180037229.24
mov eax, dword [rsp + 0x90]
cmp eax, 0xffffffff
je case.0x180037229.18
mov r8, qword [rbx + 8]
imul rcx, rax, 0xd0
add rcx, qword [rbx + 0x40]
mov eax, dword [rcx + 0x18]
add eax, 2
test r8, r8
je 0x180037b37
mov edx, eax
cmp rdx, qword [rbx]
jae 0x180037b37
mov eax, dword [r8 + rax*4]
mov dword [rcx], eax
inc dword [rbx + 0x4c]
mov dword [rsp + 0x90], 0xffffffff
jmp case.0x180037229.24
cmp eax, 0x14dd
jne case.0x180037229.24
mov rcx, qword [rbx + 8]
lea eax, [r12 + 1]
test rcx, rcx
je 0x180037b37
cmp rax, qword [rbx]
jae 0x180037b37
mov eax, dword [rcx + rax*4]
mov dword [r15], eax
mov byte [r15 + 0x20], 1
jmp case.0x180037229.24
mov eax, 3
jmp 0x180037b3c
mov eax, 0x10
jmp 0x180037b3c
mov eax, 0xb
add rsp, 0x38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret