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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x60
mov rax, qword [0x1800a6010]
xor rax, rsp
mov qword [rsp + 0x58], rax
xorps xmm0, xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x50], 0
cmp r8, 0x13
jb 0x18000b1c6
mov r14, r9
mov r15, rdx
mov rdi, rcx
mov r12, qword [rsp + 0xc0]
test r12, r12
lea r13, [rsp + 0x20]
mov rax, r12
cmove rax, r13
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmmword [rcx + 0x40], xmm2
mov rax, qword [rax + 0x30]
mov qword [rcx + 0x50], rax
movups xmmword [rcx + 0x30], xmm1
movups xmmword [rcx + 0x20], xmm0
xor ebx, ebx
cmp dword [rcx + 0x40], 3
setge bl
inc ebx
cmp bx, 2
jne 0x18000b1d2
mov esi, 0x40038
movzx ecx, word [rdi + 0xd0]
cmp ecx, 2
jne 0x18000b132
mov eax, 0x40038
cmp eax, esi
jl 0x18000b147
cmp word [rdi + 0xd2], bx
jne 0x18000b2a5
lea rax, [rdi + 0x20]
mov ecx, dword [rax]
test ecx, ecx
je 0x18000b1e9
lea edx, [rcx - 8]
mov rax, 0xfffffffffffffffe
cmp edx, 0xfffffffc
jb 0x18000af71
add ecx, 0xfffffffc
lea rax, [0x180094d10]
mov rax, qword [rax + rcx*8]
test r12, r12
mov rcx, r12
cmove rcx, r13
mov qword [rdi + 0x68], rax
cmp dword [rcx + 0x24], 0
mov ecx, dword [rdi + 0x24]
jne 0x18000b1f9
xor ebx, ebx
test ecx, ecx
sete bl
shl rbx, 0x11
add rbx, rax
cmp qword [rdi + 0x70], rbx
jae 0x18000b209
mov qword [rdi + 0x70], 0
mov rax, qword [rdi + 0x10]
mov rdx, qword [rdi + 0x78]
test rax, rax
jne 0x18000b212
mov rcx, rdx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rax, qword [rdi + 8]
mov rcx, qword [rdi + 0x18]
test rax, rax
jne 0x18000b221
mov rax, qword [rdi]
test rax, rax
jne 0x18000b22f
mov ecx, 1
mov rdx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov rsi, rax
mov qword [rdi + 0x78], rax
test rax, rax
je 0x18000b2ee
mov qword [rdi + 0x70], rbx
mov qword [rdi + 0x80], rsi
mov qword [rdi + 0x88], 0
lea rcx, [rdi + 0x98]
xor edx, edx
call fcn.18000b370
mov qword [rdi + 0x60], r14
cmp dword [rdi + 0x24], 0
jne 0x18000b05c
mov edx, dword [rdi + 0x40]
mov rbx, qword [rdi + 0xc8]
mov rcx, rbx
cmp edx, 2
jle 0x18000b25a
call fcn.18000b3b0
test r14, r14
jne 0x18000b279
xor eax, eax
mov qword [rbx + 0x40028], rax
test r12, r12
mov rax, r12
cmove rax, r13
cmp dword [rax + 0x20], 3
jl 0x18000b086
test r12, r12
cmovne r13, r12
cmp dword [r13 + 0x28], 0
mov rax, qword [rdi + 0xc8]
setne byte [rax + 0x40026]
mov dword [r15], 0x184d2204
mov eax, dword [rdi + 0x24]
mov ecx, dword [rdi + 0x28]
shl eax, 5
and eax, 0x20
mov edx, dword [rdi + 0x3c]
shl edx, 4
and edx, 0x10
or edx, eax
xor eax, eax
cmp qword [rdi + 0x30], 0
setne al
lea eax, [rdx + rax*8]
and ecx, 1
lea eax, [rax + rcx*4]
xor ecx, ecx
cmp dword [rdi + 0x38], 0
setne cl
or ecx, eax
or cl, 0x40
mov byte [r15 + 4], cl
mov al, byte [rdi + 0x20]
shl al, 4
and al, 0x70
mov byte [r15 + 5], al
mov rax, qword [rdi + 0x30]
test rax, rax
jne 0x18000b282
lea rbx, [r15 + 6]
lea rcx, [r15 + 4]
mov eax, dword [rdi + 0x38]
test eax, eax
jne 0x18000b29a
mov rdx, rbx
sub rdx, rcx
xor r8d, r8d
call fcn.18000b430
mov byte [rbx], ah
mov dword [rdi + 0x5c], 1
sub rbx, r15
inc rbx
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.18004bde0
mov rax, rbx
add rsp, 0x60
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor eax, eax
cmp ecx, 1
jne 0x18000af31
call fcn.1800801e0
jmp 0x18000af31
mov rax, qword [rdi + 0x10]
mov rdx, qword [rdi + 0xc8]
test rax, rax
jne 0x18000b301
mov rcx, rdx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
cmp dword [rdi + 0x40], 2
mov rax, qword [rdi]
jle 0x18000b310
test rax, rax
jne 0x18000b342
mov ecx, 0x40038
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rdi + 0xc8], rax
test rax, rax
je 0x18000b2ee
mov edx, 0x40038
mov rcx, rax
call fcn.18004cf20
cmp qword [rdi + 0xc8], 0
je 0x18000b2ee
mov word [rdi + 0xd0], bx
lea rsi, [rdi + 0xd2]
mov word [rsi], bx
jmp 0x18000af46
mov rbx, 0xfffffffffffffff5
jmp 0x18000b112
xor esi, esi
cmp ebx, 1
jne 0x18000af1c
call fcn.1800801e0
mov esi, eax
jmp 0x18000af1c
mov dword [rax], 4
mov ecx, 4
jmp 0x18000af63
xor ebx, ebx
test ecx, ecx
sete bl
shl rbx, 0x10
jmp 0x18000af9a
mov rsi, qword [rdi + 0x78]
jmp 0x18000b005
mov rcx, qword [rdi + 0x18]
call qword [case.0x18004aa4e.0]
jmp 0x18000afc6
mov rdx, rbx
call qword [case.0x18004aa4e.0]
jmp 0x18000aff1
mov rdx, rbx
call qword [case.0x18004aa4e.0]
test rax, rax
je 0x18000b2e6
mov rsi, rax
mov rcx, rax
xor edx, edx
mov r8, rbx
call sub.VCRUNTIME140.dll_memset
mov qword [rdi + 0x78], rsi
jmp 0x18000b001
call fcn.180082400
test r14, r14
je 0x18000b2fa
mov rdx, qword [r14 + 0x28]
mov rcx, rbx
call fcn.180082470
jmp 0x18000b05c
mov rax, qword [r14 + 0x30]
jmp 0x18000b055
mov qword [r15 + 6], rax
lea rbx, [r15 + 0xe]
mov qword [rdi + 0x90], 0
jmp 0x18000b0e6
mov dword [rbx], eax
add rbx, 4
jmp 0x18000b0f5
lea rsi, [rdi + 0xd2]
cmp dword [rdi + 0x40], 2
mov rcx, qword [rdi + 0xc8]
jg 0x18000b2c8
mov edx, 0x4020
call fcn.1800801f0
jmp 0x18000b1be
mov edx, 0x40038
call fcn.18004cf20
mov edx, dword [rdi + 0x40]
mov rcx, qword [rdi + 0xc8]
call fcn.180087290
jmp 0x18000b1be
mov qword [rdi + 0x78], 0
mov rbx, 0xfffffffffffffff7
jmp 0x18000b112
xor edx, edx
jmp 0x18000b26c
mov rcx, qword [rdi + 0x18]
call qword [case.0x18004aa4e.0]
jmp 0x18000b164
test rax, rax
je 0x18000b356
mov rcx, qword [rdi + 0x18]
mov edx, 0x4020
call qword [case.0x18004aa4e.0]
mov qword [rdi + 0xc8], rax
test rax, rax
je 0x18000b2ee
mov edx, 0x4020
mov rcx, rax
call fcn.1800801f0
jmp 0x18000b1a2
mov rcx, qword [rdi + 0x18]
mov edx, 0x40038
call qword [case.0x18004aa4e.0]
jmp 0x18000b185
mov ecx, 0x4020
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
jmp 0x18000b324