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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x138
movaps xmmword [rsp + 0x120], xmm6
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x58], rcx
lea rax, [rdx + 0x28]
mov qword [rsp + 0x40], rax
mov rdi, qword [rdx + 0x38]
cmp dword [rdx], 1
mov qword [rsp + 0x20], rdx
mov r12, qword [rdx + 0x20]
mov qword [rsp + 0x28], r8
jne 0x18000aa66
test rdi, rdi
js 0x18000b0f2
cvtsi2ss xmm0, rdi
test r12, r12
jns 0x18000b112
mov rax, r12
shr rax, 1
mov ecx, r12d
and ecx, 1
or rcx, rax
cvtsi2ss xmm1, rcx
addss xmm1, xmm1
divss xmm0, xmm1
ucomiss xmm0, dword [0x18018c830]
jb 0x18000b128
mov rcx, qword [rsp + 0x20]
mov qword [rcx], 0
add r12, r12
jmp 0x18000aa89
mov rax, r12
shr rax, 2
mov rcx, r12
sub rcx, rax
cmp rdi, rcx
jne 0x18000aa96
test rdi, rdi
je 0x18000b343
add r12, r12
mov rcx, qword [rsp + 0x20]
mov rdx, r12
call fcn.18000a6a0
mov r8, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x20]
mov rcx, qword [rsi]
movups xmm0, xmmword [rsi + 8]
movaps xmmword [rsp + 0xe0], xmm0
lea rdx, [rsp + 0xe0]
mov qword [rsp + 0xa8], rcx
call fcn.18000a3e0
mov r9, qword [rsp + 0x28]
mov ebp, eax
movzx edi, word [rsi + 0x58]
mov r15d, edi
and r15d, ebp
mov r14, qword [rsi + 0x18]
mov rbx, qword [rsi + 0x20]
mov rdx, qword [rsi + 0x38]
mov r11, qword [rsi + 0x28]
xor r12d, r12d
xor esi, esi
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], r11
jmp 0x18000ab06
movzx eax, byte [rax + 8]
cmp al, byte [r9 + 8]
je 0x18000abbb
nop
inc rsi
inc r15
cmp r15, rbx
cmovae r15, r12
test rbx, rbx
je 0x18000af10
movzx eax, word [r14 + r15*4]
cmp rax, 0xffff
je 0x18000af12
movzx ecx, word [r14 + r15*4 + 2]
mov r8d, edi
and r8d, ecx
mov r13d, r15d
sub r13d, r8d
and r13d, edi
cmp r13, rsi
jb 0x18000afd3
cmp cx, bp
jne 0x18000ab00
cmp rdx, rax
jbe 0x18000b578
imul r10, rax, 0x68
mov rcx, qword [r11 + r10 + 0x40]
test rcx, rcx
setne al
cmp qword [r9], 0
sete r8b
cmp al, r8b
je 0x18000ab00
lea rax, [r11 + r10]
add rax, 0x40
test rcx, rcx
je 0x18000aaf1
mov r8, qword [rax + 0x10]
cmp r8, qword [r9 + 0x10]
jne 0x18000ab00
mov rdx, qword [r9 + 8]
mov rcx, qword [rax + 8]
mov r12, r10
call fcn.180172760
mov r10, r12
xor r12d, r12d
mov r11, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
mov r9, qword [rsp + 0x28]
test eax, eax
jne 0x18000ab00
cmp qword [r11 + r10], 0
je 0x18000b4be
mov qword [rsp + 0x40], r10
lea rax, [r11 + r10]
mov rax, qword [rax + 8]
mov r12, qword [rsp + 0x20]
mov rbp, qword [r12 + 0x50]
cmp rbp, rax
jbe 0x18000b578
mov r15, qword [r12 + 0x40]
lea rdi, [rsp + 0x98]
lea rcx, [rbp*8]
add rcx, rbp
lea rbx, [r15 + rcx*8]
add rbx, 0xffffffffffffffb8
nop word cs:[rax + rax]
lea r9, [rax + rax*8]
mov rcx, qword [r15 + r9*8 + 8]
mov r8, qword [r15 + r9*8 + 0x10]
mov r10, qword [r15 + r9*8 + 0x18]
cmp qword [r15 + r9*8], 0
je 0x18000ac70
test r8, r8
je 0x18000acb0
cmp rcx, rbp
jae 0x18000b578
lea r8, [rcx + rcx*8]
mov qword [r15 + r8*8 + 0x10], 1
mov qword [r15 + r8*8 + 0x18], r10
cmp r10, rbp
jae 0x18000b578
lea rdx, [r10 + r10*8]
mov qword [r15 + rdx*8], 1
jmp 0x18000aca9
test r8, r8
je 0x18000acec
cmp rcx, rdx
jae 0x18000b578
imul r8, rcx, 0x68
cmp qword [r11 + r8], 0
je 0x18000b578
add r8, r11
mov qword [r8 + 8], r10
cmp r10, rbp
jae 0x18000b578
lea rdx, [r10 + r10*8]
mov qword [r15 + rdx*8], 0
mov qword [r15 + rdx*8 + 8], rcx
jmp 0x18000ad10
cmp r10, rdx
jae 0x18000b578
imul r8, r10, 0x68
cmp qword [r11 + r8], 0
je 0x18000b578
add r8, r11
mov qword [r8 + 0x10], rcx
cmp rcx, rbp
jae 0x18000b578
lea rcx, [rcx + rcx*8]
mov qword [r15 + rcx*8 + 0x10], 0
mov qword [r15 + rcx*8 + 0x18], r10
jmp 0x18000ad10
cmp rcx, rdx
jae 0x18000b578
imul rcx, rcx, 0x68
mov qword [r11 + rcx], 0
nop word cs:[rax + rax]
lea r10, [r15 + r9*8]
mov rdx, qword [r10]
mov r8, qword [r10 + 8]
mov rcx, qword [r10 + 0x10]
mov r14, qword [r10 + 0x18]
mov r11, qword [r10 + 0x40]
mov qword [rsp + 0xd0], r11
movups xmm0, xmmword [r10 + 0x30]
movaps xmmword [rsp + 0xc0], xmm0
movups xmm0, xmmword [r10 + 0x20]
movaps xmmword [rsp + 0xb0], xmm0
dec rbp
mov r11, qword [rbx + 0x40]
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmm2, xmmword [rbx + 0x20]
movups xmm3, xmmword [rbx + 0x30]
movups xmmword [r10], xmm0
movups xmmword [r10 + 0x10], xmm1
movups xmmword [r10 + 0x20], xmm2
movups xmmword [r10 + 0x30], xmm3
mov qword [r10 + 0x40], r11
mov qword [r12 + 0x50], rbp
cmp rbp, rax
je 0x18000ae52
jbe 0x18000b578
mov r12, rdi
lea r9, [r15 + r9*8]
add r9, 0x10
mov r11, qword [r9]
mov r9, qword [r9 + 8]
mov rdi, qword [r10 + 8]
cmp qword [r10], 0
je 0x18000adf3
cmp rdi, rbp
jae 0x18000b578
lea r10, [rdi + rdi*8]
mov qword [r15 + r10*8 + 0x10], 1
lea r10, [r15 + r10*8]
add r10, 0x18
mov qword [r10], rax
test r11, r11
mov rdi, r12
je 0x18000ae24
cmp r9, rbp
mov r12, qword [rsp + 0x20]
jae 0x18000b578
lea r9, [r9 + r9*8]
mov qword [r15 + r9*8], 1
lea r9, [r15 + r9*8]
add r9, 8
jmp 0x18000ae4f
cmp rdi, qword [rsp + 0x30]
jae 0x18000b578
imul r10, rdi, 0x68
mov rdi, qword [rsp + 0x38]
cmp qword [rdi + r10], 0
je 0x18000b578
add r10, rdi
add r10, 8
mov qword [r10], rax
test r11, r11
mov rdi, r12
jne 0x18000adcf
cmp r9, qword [rsp + 0x30]
mov r12, qword [rsp + 0x20]
jae 0x18000b578
imul r9, r9, 0x68
mov r10, qword [rsp + 0x38]
cmp qword [r10 + r9], 0
je 0x18000b578
add r9, r10
add r9, 0x10
mov qword [r9], rax
mov r9, rcx
xor r9, 1
mov r10, rbp
xor r10, r14
or r10, r9
mov r9d, 1
cmove rcx, r9
cmove r14, rax
mov r9, rdx
xor r9, 1
mov r10, rbp
xor r10, r8
or r10, r9
cmove r8, rax
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x68], r8
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], r14
mov rax, qword [rsp + 0xd0]
lea rdx, [rsp + 0x80]
mov qword [rdx + 0x20], rax
movaps xmm0, xmmword [rsp + 0xb0]
movaps xmm1, xmmword [rsp + 0xc0]
movups xmmword [rdx + 0x10], xmm1
movups xmmword [rdx], xmm0
test rcx, rcx
je 0x18000b491
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov r8, qword [rsp + 0x90]
mov rcx, rdi
call qword [rax + 0x10]
add rbx, 0xffffffffffffffb8
mov rax, r14
cmp rbp, r14
mov rdx, qword [rsp + 0x30]
mov r11, qword [rsp + 0x38]
ja 0x18000ac10
jmp 0x18000b578
jmp 0x18000af10
cmp rdx, 0x7fff
ja 0x18000b578
movups xmm0, xmmword [r9]
movups xmm1, xmmword [r9 + 0x10]
movaps xmmword [rsp + 0x70], xmm1
movaps xmmword [rsp + 0x60], xmm0
mov rax, rdx
mov rsi, qword [rsp + 0x20]
cmp rdx, qword [rsi + 0x30]
jne 0x18000af5b
mov rcx, qword [rsp + 0x40]
call fcn.18000d050
mov rdx, qword [rsp + 0x30]
mov rax, qword [rsi + 0x38]
mov rbx, qword [rsi + 0x20]
mov r11, qword [rsi + 0x28]
imul rcx, rax, 0x68
mov qword [r11 + rcx], 0
mov r8, qword [rsp + 0x50]
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
movups xmmword [r11 + rcx + 0x18], xmm0
movups xmmword [r11 + rcx + 0x28], xmm1
mov r8, qword [r8 + 0x20]
mov qword [r11 + rcx + 0x38], r8
movaps xmm0, xmmword [rsp + 0x60]
movaps xmm1, xmmword [rsp + 0x70]
movups xmmword [r11 + rcx + 0x40], xmm0
movups xmmword [r11 + rcx + 0x50], xmm1
mov word [r11 + rcx + 0x60], bp
inc rax
mov qword [rsi + 0x38], rax
cmp r15, rbx
jae 0x18000b578
mov rax, qword [rsi + 0x18]
mov word [rax + r15*4], dx
mov word [rax + r15*4 + 2], bp
mov rax, qword [rsp + 0x58]
mov byte [rax + 0x20], 2
jmp 0x18000b55c
cmp rsi, 0x200
setae dil
cmp dword [rsp + 0xa8], 2
setne cl
movups xmm0, xmmword [r9]
movups xmm1, xmmword [r9 + 0x10]
movaps xmmword [rsp + 0x70], xmm1
movaps xmmword [rsp + 0x60], xmm0
cmp rdx, 0x7fff
ja 0x18000b578
mov rax, rdx
mov r12, qword [rsp + 0x20]
cmp rdx, qword [r12 + 0x30]
jne 0x18000b044
mov ebx, ecx
mov rcx, qword [rsp + 0x40]
call fcn.18000d050
mov ecx, ebx
mov rdx, qword [rsp + 0x30]
mov r9, qword [rsp + 0x28]
mov rax, qword [r12 + 0x38]
mov r11, qword [r12 + 0x28]
mov r14, qword [r12 + 0x18]
mov rbx, qword [r12 + 0x20]
and dil, cl
imul rcx, rax, 0x68
mov qword [r11 + rcx], 0
mov r8, qword [rsp + 0x50]
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
movups xmmword [r11 + rcx + 0x18], xmm0
movups xmmword [r11 + rcx + 0x28], xmm1
mov r8, qword [r8 + 0x20]
mov qword [r11 + rcx + 0x38], r8
movaps xmm0, xmmword [rsp + 0x60]
movaps xmm1, xmmword [rsp + 0x70]
movups xmmword [r11 + rcx + 0x40], xmm0
movups xmmword [r11 + rcx + 0x50], xmm1
mov word [r11 + rcx + 0x60], bp
inc rax
mov qword [r12 + 0x38], rax
xor ecx, ecx
xor eax, eax
cmp r15, rbx
cmovae r15, rcx
test rbx, rbx
je 0x18000b0f0
nop word [rax + rax]
movzx r10d, word [r14 + r15*4]
cmp r10w, 0xffff
je 0x18000b312
inc rax
movzx r8d, word [r14 + r15*4 + 2]
mov word [r14 + r15*4], dx
mov word [r14 + r15*4 + 2], bp
inc r15
mov ebp, r8d
mov edx, r10d
cmp r15, rbx
cmovae r15, rcx
test rbx, rbx
jne 0x18000b0b0
nop dword [rax]
jmp 0x18000b0f0
mov rax, rdi
shr rax, 1
mov ecx, edi
and ecx, 1
or rcx, rax
cvtsi2ss xmm0, rcx
addss xmm0, xmm0
test r12, r12
js 0x18000aa2c
cvtsi2ss xmm1, r12
divss xmm0, xmm1
ucomiss xmm0, dword [0x18018c830]
jae 0x18000aa55
mov eax, dword [0x18021a9d8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0xa8], 0
jne 0x18000b14a
call fcn.180045f80
mov rdx, qword [rsp + 0x20]
mov qword [rdx], 2
mov eax, dword [0x18021a9d8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
movups xmm0, xmmword [rax + 0xb0]
inc qword [rax + 0xb0]
movups xmmword [rdx + 8], xmm0
mov rsi, qword [rdx + 0x18]
test r12, r12
mov r8, qword [rsp + 0x28]
je 0x18000b1ef
lea rax, [r12 - 1]
movabs rcx, 0x3fffffffffffffff
and rcx, rax
mov rax, rsi
cmp rcx, 7
jb 0x18000b1dc
inc rcx
mov rdx, rcx
and rdx, 0xfffffffffffffff8
lea rax, [rdx*4]
xor r9d, r9d
movaps xmm0, xmmword [0x18018c820]
movups xmmword [rsi + r9*4], xmm0
movups xmmword [rsi + r9*4 + 0x10], xmm0
add r9, 8
cmp rdx, r9
jne 0x18000b1c0
cmp rcx, rdx
je 0x18000b1ef
add rax, rsi
lea rcx, [rsi + r12*4]
mov dword [rax], 0xffff
add rax, 4
cmp rax, rcx
jne 0x18000b1e0
test rdi, rdi
je 0x18000aa96
mov rax, qword [rsp + 0x40]
mov r13, qword [rax]
imul rax, rdi, 0x68
add rax, r13
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x20]
movzx r14d, word [rax + 0x58]
movups xmm6, xmmword [rax + 8]
xor r15d, r15d
lea rdx, [rsp + 0xf0]
xor ebp, ebp
mov rbx, r13
add r13, 0x68
lea rax, [rbp + 1]
mov qword [rsp + 0x30], rax
lea r8, [rbx + 0x40]
movaps xmmword [rsp + 0xf0], xmm6
mov ecx, 2
mov rdi, rdx
call fcn.18000a3e0
mov ecx, r14d
and ecx, eax
mov word [rbx + 0x60], ax
xor edx, edx
cmp rcx, r12
cmovae rcx, r15
test r12, r12
je 0x18000b310
nop dword [rax + rax]
cmp word [rsi + rcx*4], 0xffff
je 0x18000b2a2
movzx r8d, word [rsi + rcx*4 + 2]
and r8d, r14d
mov r9d, ecx
sub r9d, r8d
and r9d, r14d
cmp r9, rdx
jb 0x18000b2b0
inc rdx
inc rcx
cmp rcx, r12
cmovae rcx, r15
test r12, r12
jne 0x18000b270
jmp 0x18000b310
mov word [rsi + rcx*4], bp
mov r8, qword [rsp + 0x28]
mov rdx, rdi
jmp 0x18000b2f1
mov r8, qword [rsp + 0x28]
mov rdx, rdi
nop dword [rax + rax]
cmp rcx, r12
cmovae rcx, r15
movzx r10d, word [rsi + rcx*4]
cmp r10w, 0xffff
je 0x18000b2ed
movzx r9d, word [rsi + rcx*4 + 2]
mov word [rsi + rcx*4], bp
mov word [rsi + rcx*4 + 2], ax
inc rcx
mov eax, r9d
mov ebp, r10d
jmp 0x18000b2c0
mov word [rsi + rcx*4], bp
mov rbp, qword [rsp + 0x30]
mov word [rsi + rcx*4 + 2], ax
cmp r13, qword [rsp + 0x38]
jne 0x18000b227
jmp 0x18000aa96
jmp 0x18000b310
mov word [r14 + r15*4], dx
mov word [r14 + r15*4 + 2], bp
cmp rax, 0x7f
seta al
or dil, al
cmp dil, 1
jne 0x18000b33c
cmp qword [r12], 0
jne 0x18000b33c
mov qword [r12], 1
mov al, 2
jmp 0x18000b513
mov rax, qword [rsp + 0x20]
mov word [rax + 0x58], 7
mov rcx, qword [0x18021a960]
test rcx, rcx
jne 0x18000b373
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x18000b57c
mov rcx, rax
mov qword [0x18021a960], rax
mov r8d, 0x20
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x18000b57c
mov r13, rax
movaps xmm0, xmmword [0x18018c820]
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
test r12, r12
mov rsi, qword [rsp + 0x20]
je 0x18000b3b8
mov r8, qword [rsi + 0x18]
mov rcx, qword [0x18021a960]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rsi + 0x18], r13
mov qword [rsi + 0x20], 8
mov rcx, qword [0x18021a960]
test rcx, rcx
jne 0x18000b3e9
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x18000b58d
mov rcx, rax
mov qword [0x18021a960], rax
mov r8d, 0x270
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x18000b58d
mov r12, rax
mov rax, qword [rsp + 0x20]
mov r13, qword [rax + 0x28]
mov rsi, qword [rax + 0x38]
test rsi, rsi
je 0x18000b455
lea rbp, [r13 + 0x30]
jmp 0x18000b43b
mov rax, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x10]
mov r8, qword [rbp - 8]
mov rcx, rbp
call qword [rax + 0x10]
add rbp, 0x68
dec rsi
je 0x18000b455
mov rax, qword [rbp + 0x10]
test rax, rax
je 0x18000b420
lea rcx, [rbp + 0x28]
mov rdx, qword [rbp + 0x18]
mov r8, qword [rbp + 0x20]
call qword [rax + 0x10]
jmp 0x18000b420
mov rax, qword [rsp + 0x20]
cmp qword [rax + 0x30], 0
je 0x18000b473
mov rcx, qword [0x18021a960]
xor edx, edx
mov r8, r13
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rax, qword [rsp + 0x20]
mov qword [rax + 0x28], r12
mov qword [rax + 0x30], 6
mov qword [rax + 0x38], 0
jmp 0x18000aa91
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov r8, qword [rsp + 0x90]
mov rcx, rdi
call qword [rax + 0x10]
mov r9, qword [rsp + 0x28]
mov r11, qword [rsp + 0x38]
mov r10, qword [rsp + 0x40]
movups xmm0, xmmword [r11 + r10 + 0x18]
movups xmm1, xmmword [r11 + r10 + 0x28]
movaps xmmword [rsp + 0x110], xmm1
movaps xmmword [rsp + 0x100], xmm0
movzx eax, byte [r11 + r10 + 0x38]
mov ecx, dword [r11 + r10 + 0x3c]
mov dword [rsp + 0x4b], ecx
mov ecx, dword [r11 + r10 + 0x39]
mov dword [rsp + 0x48], ecx
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rdx + 0x20]
mov qword [r11 + r10 + 0x38], rcx
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [r11 + r10 + 0x18], xmm0
movups xmmword [r11 + r10 + 0x28], xmm1
movaps xmm0, xmmword [rsp + 0x100]
movaps xmm1, xmmword [rsp + 0x110]
mov rcx, qword [rsp + 0x58]
movups xmmword [rcx + 0x10], xmm1
movups xmmword [rcx], xmm0
mov byte [rcx + 0x20], al
mov eax, dword [rsp + 0x48]
mov dword [rcx + 0x21], eax
mov eax, dword [rsp + 0x4b]
mov dword [rcx + 0x24], eax
cmp r13, rsi
jb 0x18000b55c
mov rax, qword [r9]
test rax, rax
je 0x18000b55c
lea rcx, [r9 + 0x18]
mov rdx, qword [r9 + 8]
mov r8, qword [r9 + 0x10]
call qword [rax + 0x10]
movaps xmm6, xmmword [rsp + 0x120]
add rsp, 0x138
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
mov ecx, 2
mov edx, 0x20
call fcn.18017f950
ud2
mov ecx, 8
mov edx, 0x270
call fcn.18017f950
ud2