Function at 0x18000ae60
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 0x18000b1a6
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 0x18000b1b2
mov esi, 0x40038
movzx ecx, word [rdi + 0xd0]
cmp ecx, 2
jne 0x18000b112
mov eax, 0x40038
cmp eax, esi
jl 0x18000b127
cmp word [rdi + 0xd2], bx
jne 0x18000b285
lea rax, [rdi + 0x20]
mov ecx, dword [rax]
test ecx, ecx
je 0x18000b1c9
lea edx, [rcx - 8]
mov rax, 0xfffffffffffffffe
cmp edx, 0xfffffffc
jb 0x18000af51
add ecx, 0xfffffffc
lea rax, [0x180094df0]
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 0x18000b1d9
xor ebx, ebx
test ecx, ecx
sete bl
shl rbx, 0x11
add rbx, rax
cmp qword [rdi + 0x70], rbx
jae 0x18000b1e9
mov qword [rdi + 0x70], 0
mov rax, qword [rdi + 0x10]
mov rdx, qword [rdi + 0x78]
test rax, rax
jne 0x18000b1f2
mov rcx, rdx
call qword [0x1800a3070]
mov rax, qword [rdi + 8]
mov rcx, qword [rdi + 0x18]
test rax, rax
jne 0x18000b201
mov rax, qword [rdi]
test rax, rax
jne 0x18000b20f
mov ecx, 1
mov rdx, rbx
call qword [0x1800a3068]
mov rsi, rax
mov qword [rdi + 0x78], rax
test rax, rax
je 0x18000b2ce
mov qword [rdi + 0x70], rbx
mov qword [rdi + 0x80], rsi
mov qword [rdi + 0x88], 0
lea rcx, [rdi + 0x98]
xor edx, edx
call fcn.18000b350
mov qword [rdi + 0x60], r14
cmp dword [rdi + 0x24], 0
jne 0x18000b03c
mov edx, dword [rdi + 0x40]
mov rbx, qword [rdi + 0xc8]
mov rcx, rbx
cmp edx, 2
jle 0x18000b23a
call fcn.18000b390
test r14, r14
jne 0x18000b259
xor eax, eax
mov qword [rbx + 0x40028], rax
test r12, r12
mov rax, r12
cmove rax, r13
cmp dword [rax + 0x20], 3
jl 0x18000b066
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 0x18000b262
lea rbx, [r15 + 6]
lea rcx, [r15 + 4]
mov eax, dword [rdi + 0x38]
test eax, eax
jne 0x18000b27a
mov rdx, rbx
sub rdx, rcx
xor r8d, r8d
call fcn.18000b410
mov byte [rbx], ah
mov dword [rdi + 0x5c], 1
sub rbx, r15
inc rbx
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.18004b970
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 0x18000af11
call fcn.18007fbd0
jmp 0x18000af11
mov rax, qword [rdi + 0x10]
mov rdx, qword [rdi + 0xc8]
test rax, rax
jne 0x18000b2e1
mov rcx, rdx
call qword [0x1800a3070]
cmp dword [rdi + 0x40], 2
mov rax, qword [rdi]
jle 0x18000b2f0
test rax, rax
jne 0x18000b322
mov ecx, 0x40038
call qword [0x1800a3078]
mov qword [rdi + 0xc8], rax
test rax, rax
je 0x18000b2ce
mov edx, 0x40038
mov rcx, rax
call fcn.18004cb90
cmp qword [rdi + 0xc8], 0
je 0x18000b2ce
mov word [rdi + 0xd0], bx
lea rsi, [rdi + 0xd2]
mov word [rsi], bx
jmp 0x18000af26
mov rbx, 0xfffffffffffffff5
jmp 0x18000b0f2
xor esi, esi
cmp ebx, 1
jne 0x18000aefc
call fcn.18007fbd0
mov esi, eax
jmp 0x18000aefc
mov dword [rax], 4
mov ecx, 4
jmp 0x18000af43
xor ebx, ebx
test ecx, ecx
sete bl
shl rbx, 0x10
jmp 0x18000af7a
mov rsi, qword [rdi + 0x78]
jmp 0x18000afe5
mov rcx, qword [rdi + 0x18]
call qword [case.0x18004a5de.0]
jmp 0x18000afa6
mov rdx, rbx
call qword [case.0x18004a5de.0]
jmp 0x18000afd1
mov rdx, rbx
call qword [case.0x18004a5de.0]
test rax, rax
je 0x18000b2c6
mov rsi, rax
mov rcx, rax
xor edx, edx
mov r8, rbx
call fcn.180091cf0
mov qword [rdi + 0x78], rsi
jmp 0x18000afe1
call fcn.180081df0
test r14, r14
je 0x18000b2da
mov rdx, qword [r14 + 0x28]
mov rcx, rbx
call fcn.180081e60
jmp 0x18000b03c
mov rax, qword [r14 + 0x30]
jmp 0x18000b035
mov qword [r15 + 6], rax
lea rbx, [r15 + 0xe]
mov qword [rdi + 0x90], 0
jmp 0x18000b0c6
mov dword [rbx], eax
add rbx, 4
jmp 0x18000b0d5
lea rsi, [rdi + 0xd2]
cmp dword [rdi + 0x40], 2
mov rcx, qword [rdi + 0xc8]
jg 0x18000b2a8
mov edx, 0x4020
call fcn.18007fbe0
jmp 0x18000b19e
mov edx, 0x40038
call fcn.18004cb90
mov edx, dword [rdi + 0x40]
mov rcx, qword [rdi + 0xc8]
call fcn.180086c80
jmp 0x18000b19e
mov qword [rdi + 0x78], 0
mov rbx, 0xfffffffffffffff7
jmp 0x18000b0f2
xor edx, edx
jmp 0x18000b24c
mov rcx, qword [rdi + 0x18]
call qword [case.0x18004a5de.0]
jmp 0x18000b144
test rax, rax
je 0x18000b336
mov rcx, qword [rdi + 0x18]
mov edx, 0x4020
call qword [case.0x18004a5de.0]
mov qword [rdi + 0xc8], rax
test rax, rax
je 0x18000b2ce
mov edx, 0x4020
mov rcx, rax
call fcn.18007fbe0
jmp 0x18000b182
mov rcx, qword [rdi + 0x18]
mov edx, 0x40038
call qword [case.0x18004a5de.0]
jmp 0x18000b165
mov ecx, 0x4020
call qword [0x1800a3078]
jmp 0x18000b304