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

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
push r12
push r15
sub rsp, 0x1a0
mov r15, rdx
movsxd rdi, r9d
xor edx, edx
xor r10d, r10d
mov r12, r8
test r9d, r9d
jle 0x180016678
cmp edi, 8
jb 0x180015c6a
cmp dword [0x1800685e0], 2
jl 0x180015c6a
mov rdx, rdi
lea rax, [r8 + 0x30]
and rdx, 0xfffffffffffffff8
xorps xmm4, xmm4
xor ecx, ecx
xorps xmm5, xmm5
nop word [rax + rax]
movd xmm1, dword [rax + 0x18]
add r10d, 8
movd xmm0, dword [rax - 0x18]
add rcx, 8
movd xmm2, dword [rax]
movd xmm3, dword [rax - 0x30]
lea rax, [rax + 0xc0]
punpckldq xmm3, xmm0
movd xmm0, dword [rax - 0x78]
punpckldq xmm2, xmm1
movd xmm1, dword [rax - 0x48]
punpcklqdq xmm3, xmm2
movd xmm2, dword [rax - 0x60]
pmaxsd xmm4, xmm3
movd xmm3, dword [rax - 0x90]
punpckldq xmm3, xmm0
punpckldq xmm2, xmm1
punpcklqdq xmm3, xmm2
pmaxsd xmm5, xmm3
cmp rcx, rdx
jl 0x180015be0
pmaxsd xmm4, xmm5
movdqa xmm0, xmm4
psrldq xmm0, 8
pmaxsd xmm4, xmm0
movdqa xmm0, xmm4
psrldq xmm0, 4
pmaxsd xmm4, xmm0
movd edx, xmm4
cmp r10d, edi
jge 0x180015c94
movsxd rax, r10d
lea rcx, [rax + rax*2]
lea r8, [r8 + rcx*8]
mov ecx, edi
sub ecx, r10d
nop word [rax + rax]
mov eax, dword [r8]
lea r8, [r8 + 0x18]
cmp edx, eax
cmovge eax, edx
mov edx, eax
sub rcx, 1
jne 0x180015c80
test edx, edx
je 0x180016678
mov qword [rsp + 0x1d0], rbx
movsxd rbx, edx
mov qword [rsp + 0x198], rbp
mov qword [rsp + 0x190], rsi
mov qword [rsp + 0x188], r13
lea rcx, [rbx + rbx*4]
shl rcx, 3
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rcx, rbx
mov qword [rsp + 0x98], rax
shl rcx, 4
mov r13, rax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
lea rcx, [rbx*4]
mov qword [rsp + 0x78], rax
mov rbp, rax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rsi, rax
test r13, r13
je 0x180016655
test rbp, rbp
je 0x18001664c
test rax, rax
je 0x18001664c
mov qword [rsp + 0x180], r14
movaps xmmword [rsp + 0x170], xmm6
movaps xmmword [rsp + 0x160], xmm7
movaps xmmword [rsp + 0x150], xmm8
movaps xmmword [rsp + 0x140], xmm9
movaps xmmword [rsp + 0x130], xmm10
movaps xmmword [rsp + 0x120], xmm11
movaps xmmword [rsp + 0x110], xmm12
movaps xmmword [rsp + 0x100], xmm13
movaps xmmword [rsp + 0xf0], xmm14
movaps xmmword [rsp + 0xe0], xmm15
mov qword [rsp + 0xb0], rdi
test edi, edi
je 0x18001654c
movss xmm10, dword [0x180058110]
xor eax, eax
movss xmm11, dword [0x180058018]
movss xmm9, dword [0x18005804c]
mov qword [rsp + 0x88], rax
nop
xor r11d, r11d
xor r14d, r14d
mov dword [rsp + 0x1d8], r11d
mov qword [rsp + 0x90], r14
mov dword [rsp + 0x58], r11d
cmp dword [r12], r11d
jle 0x180016508
xor ecx, ecx
mov qword [rsp + 0xa0], r13
mov qword [rsp + 0xa8], rcx
mov qword [rsp + 0x80], rbp
nop
mov rax, qword [r12 + 8]
mov qword [rsp + 0x70], 0xffffffffffffffff
movsxd rdx, dword [rcx + rax]
mov ecx, 0xffffffff
imul r13, rdx, 0x58
cmp qword [r15 + r13 + 0x10], r12
jne 0x180015e16
xor ecx, ecx
jmp 0x180015e30
cmp qword [r15 + r13 + 0x18], r12
jne 0x180015e24
mov ecx, 1
jmp 0x180015e30
cmp qword [r15 + r13 + 0x20], r12
jne 0x180015e35
mov ecx, 2
mov qword [rsp + 0x70], rcx
lea eax, [rcx + rdx*2]
mov rcx, qword [rsp + 0x1e0]
add eax, edx
lea rdx, [rsp + 0x40]
cdqe
mov r8d, dword [rcx + rax*4]
mov r9d, r8d
mov rcx, qword [rsp + 0x1f0]
and r9d, 3
sar r8d, 2
mov rax, qword [rcx]
call qword [rax + 0x18]
movsd xmm2, qword [r15 + r13 + 0x28]
movss xmm6, dword [rsp + 0x40]
movaps xmm0, xmm2
movss xmm7, dword [rsp + 0x44]
movaps xmm14, xmm2
movss xmm8, dword [rsp + 0x48]
movaps xmm3, xmm6
movss xmm13, dword [r15 + r13 + 0x30]
movaps xmm1, xmm7
movss xmm4, dword [r15 + r13 + 0x3c]
movaps xmm12, xmm2
shufps xmm0, xmm0, 0x55
mulss xmm1, xmm0
movaps xmm0, xmm6
mulss xmm3, xmm2
movsd qword [rsp + 0x60], xmm2
movsd qword [rsp + 0x60], xmm2
movsd xmm2, qword [r15 + r13 + 0x34]
addss xmm3, xmm1
movaps xmm1, xmm8
shufps xmm12, xmm12, 0x55
mulss xmm1, dword [r15 + r13 + 0x30]
movaps xmm5, xmm2
movaps xmm15, xmm2
movsd qword [rsp + 0x60], xmm2
shufps xmm15, xmm15, 0x55
addss xmm3, xmm1
movsd qword [rsp + 0x60], xmm2
movaps xmm1, xmm7
mulss xmm0, xmm3
mulss xmm1, xmm3
subss xmm14, xmm0
movaps xmm0, xmm8
mulss xmm0, xmm3
movaps xmm3, xmm6
subss xmm12, xmm1
mulss xmm3, xmm2
subss xmm13, xmm0
movaps xmm1, xmm7
movaps xmm0, xmm2
shufps xmm0, xmm0, 0x55
mulss xmm1, xmm0
movaps xmm0, xmm6
addss xmm3, xmm1
movaps xmm1, xmm8
mulss xmm1, dword [r15 + r13 + 0x3c]
addss xmm3, xmm1
movaps xmm1, xmm7
mulss xmm0, xmm3
mulss xmm1, xmm3
subss xmm5, xmm0
movaps xmm0, xmm8
mulss xmm0, xmm3
subss xmm15, xmm1
subss xmm4, xmm0
movss dword [rsp + 0x50], xmm5
movaps xmm0, xmm14
andps xmm0, xmm10
comiss xmm0, xmm11
movss dword [rsp + 0x54], xmm4
ja 0x180015f94
movaps xmm0, xmm12
andps xmm0, xmm10
comiss xmm0, xmm11
ja 0x180015f94
movaps xmm0, xmm13
andps xmm0, xmm10
comiss xmm0, xmm11
jbe 0x180015fd5
movaps xmm0, xmm14
movaps xmm2, xmm12
mulss xmm0, xmm14
movaps xmm1, xmm13
mulss xmm2, xmm12
movaps xmm3, xmm9
mulss xmm1, xmm13
addss xmm2, xmm0
xorps xmm0, xmm0
addss xmm2, xmm1
sqrtss xmm0, xmm2
divss xmm3, xmm0
mulss xmm14, xmm3
mulss xmm12, xmm3
mulss xmm13, xmm3
movaps xmm0, xmm5
andps xmm0, xmm10
comiss xmm0, xmm11
ja 0x180015ffd
movaps xmm0, xmm15
andps xmm0, xmm10
comiss xmm0, xmm11
ja 0x180015ffd
movaps xmm0, xmm4
andps xmm0, xmm10
comiss xmm0, xmm11
jbe 0x18001604e
movaps xmm2, xmm15
movaps xmm0, xmm5
mulss xmm0, xmm5
movaps xmm1, xmm4
mulss xmm2, xmm15
movaps xmm3, xmm9
mulss xmm1, xmm4
addss xmm2, xmm0
xorps xmm0, xmm0
addss xmm2, xmm1
sqrtss xmm0, xmm2
divss xmm3, xmm0
movaps xmm0, xmm3
movaps xmm1, xmm3
mulss xmm1, xmm5
mulss xmm0, xmm15
mulss xmm3, xmm4
movss dword [rsp + 0x50], xmm1
movaps xmm15, xmm0
movss dword [rsp + 0x54], xmm3
movsxd rdx, dword [r12]
xor ebx, ebx
mov edi, dword [r15 + r13 + 0x48]
test rdx, rdx
jle 0x1800162c6
mov ebp, dword [r15 + r13 + 0x4c]
mov rcx, rsi
mov r8, qword [r12 + 8]
nop
movsxd r10, dword [r8]
movaps xmm3, xmm7
imul r9, r10, 0x58
movaps xmm1, xmm6
movsd xmm2, qword [r9 + r15 + 0x28]
mulss xmm1, xmm2
movaps xmm0, xmm2
shufps xmm0, xmm0, 0x55
movaps xmm9, xmm2
mulss xmm3, xmm0
movaps xmm5, xmm2
movsd qword [rsp + 0x60], xmm2
movsd qword [rsp + 0x60], xmm2
movsd xmm2, qword [r9 + r15 + 0x34]
addss xmm3, xmm1
movaps xmm1, xmm8
shufps xmm5, xmm5, 0x55
mulss xmm1, dword [r9 + r15 + 0x30]
movaps xmm4, xmm2
shufps xmm4, xmm4, 0x55
movsd qword [rsp + 0x60], xmm2
addss xmm3, xmm1
movsd qword [rsp + 0x60], xmm2
movaps xmm0, xmm3
movaps xmm1, xmm3
mulss xmm0, xmm6
mulss xmm1, xmm7
mulss xmm3, xmm8
subss xmm9, xmm0
movss xmm8, dword [r9 + r15 + 0x30]
subss xmm5, xmm1
movaps xmm1, xmm7
movaps xmm0, xmm2
subss xmm8, xmm3
shufps xmm0, xmm0, 0x55
mulss xmm1, xmm0
movaps xmm3, xmm6
mulss xmm3, xmm2
movaps xmm7, xmm2
addss xmm3, xmm1
movss xmm1, dword [rsp + 0x48]
mulss xmm1, dword [r9 + r15 + 0x3c]
addss xmm3, xmm1
movaps xmm0, xmm3
movaps xmm1, xmm3
mulss xmm1, dword [rsp + 0x44]
mulss xmm3, dword [rsp + 0x48]
mulss xmm0, xmm6
subss xmm4, xmm1
movss xmm6, dword [r9 + r15 + 0x3c]
subss xmm6, xmm3
subss xmm7, xmm0
movaps xmm0, xmm9
andps xmm0, xmm10
comiss xmm0, xmm11
ja 0x18001617e
movaps xmm0, xmm5
andps xmm0, xmm10
comiss xmm0, xmm11
ja 0x18001617e
movaps xmm0, xmm8
andps xmm0, xmm10
comiss xmm0, xmm11
jbe 0x1800161c0
movss xmm3, dword [0x18005804c]
movaps xmm0, xmm9
mulss xmm0, xmm9
movaps xmm2, xmm5
mulss xmm2, xmm5
movaps xmm1, xmm8
mulss xmm1, xmm8
addss xmm2, xmm0
xorps xmm0, xmm0
addss xmm2, xmm1
sqrtss xmm0, xmm2
divss xmm3, xmm0
mulss xmm9, xmm3
mulss xmm5, xmm3
mulss xmm8, xmm3
movaps xmm0, xmm7
andps xmm0, xmm10
comiss xmm0, xmm11
ja 0x1800161e7
movaps xmm0, xmm4
andps xmm0, xmm10
comiss xmm0, xmm11
ja 0x1800161e7
movaps xmm0, xmm6
andps xmm0, xmm10
comiss xmm0, xmm11
jbe 0x180016223
movss xmm3, dword [0x18005804c]
movaps xmm0, xmm7
mulss xmm0, xmm7
movaps xmm2, xmm4
mulss xmm2, xmm4
movaps xmm1, xmm6
mulss xmm1, xmm6
addss xmm2, xmm0
xorps xmm0, xmm0
addss xmm2, xmm1
sqrtss xmm0, xmm2
divss xmm3, xmm0
mulss xmm7, xmm3
mulss xmm4, xmm3
mulss xmm6, xmm3
mov eax, ebp
or eax, dword [r9 + r15 + 0x4c]
test al, 4
jne 0x18001627a
cmp edi, dword [r9 + r15 + 0x48]
je 0x18001627a
movss xmm0, dword [rsp + 0x1e8]
mulss xmm5, xmm12
mulss xmm9, xmm14
mulss xmm8, xmm13
addss xmm5, xmm9
addss xmm5, xmm8
comiss xmm5, xmm0
jbe 0x180016283
mulss xmm7, dword [rsp + 0x50]
mulss xmm6, dword [rsp + 0x54]
mulss xmm4, xmm15
addss xmm4, xmm7
addss xmm4, xmm6
comiss xmm4, xmm0
jbe 0x180016283
inc ebx
mov dword [rcx], r10d
add rcx, 4
movss xmm6, dword [rsp + 0x40]
add r8, 4
movss xmm7, dword [rsp + 0x44]
movss xmm8, dword [rsp + 0x48]
sub rdx, 1
jne 0x180016070
cmp ebx, 1
jle 0x1800162bd
lea r8d, [rbx - 1]
xor edx, edx
mov r9d, 0x26065ca
mov rcx, rsi
call fcn.1800195c0
movss xmm9, dword [0x18005804c]
xor ecx, ecx
xor ebp, ebp
xor edi, edi
test r14, r14
jle 0x18001635d
mov r15, qword [rsp + 0x78]
nop word [rax + rax]
test ecx, ecx
jne 0x18001634f
mov r11, rdi
xor r8d, r8d
add r11, r11
mov ecx, 1
cmp ebx, dword [r15 + r11*8]
je 0x1800162fc
xor ecx, ecx
jmp 0x180016333
test ebx, ebx
jle 0x180016333
xor edx, edx
test ecx, ecx
je 0x180016333
mov rax, qword [r15 + r11*8 + 8]
xor ecx, ecx
mov r9d, dword [rdx + rsi]
mov r10d, dword [rdx + rax]
cmp r9d, r10d
sete cl
jne 0x180016321
add rdx, 4
cmp r9d, r10d
lea eax, [r8 + 1]
cmovne eax, r8d
mov r8d, eax
cmp eax, ebx
jl 0x180016302
test ecx, ecx
lea rax, [rdi + 1]
cmovne rax, rdi
mov rdi, rax
lea eax, [rbp + 1]
cmovne eax, ebp
mov ebp, eax
cmp rdi, r14
jl 0x1800162e0
test ecx, ecx
mov r15, qword [rsp + 0x1c8]
jne 0x180016428
movsxd r14, ebx
shl r14, 2
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
test rax, rax
je 0x1800165f9
mov rcx, qword [rsp + 0x80]
mov r8, r14
mov rdx, rsi
mov dword [rcx], ebx
mov qword [rcx + 8], rax
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [r12 + 0x10]
lea rcx, [rsp + 0xb8]
mov r9, qword [rsp + 0x1e0]
mov r8d, ebx
mov dword [rsp + 0x30], eax
mov rdx, rsi
mov rax, qword [rsp + 0x1f0]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r15
call fcn.180010ad0
mov r10, qword [rsp + 0xa0]
mov r11d, dword [rsp + 0x1d8]
mov r14, qword [rsp + 0x90]
inc r11d
movups xmm1, xmmword [rax]
add qword [rsp + 0x80], 0x10
inc r14
movups xmm2, xmmword [rax + 0x10]
mov dword [rsp + 0x1d8], r11d
movsd xmm0, qword [rax + 0x20]
movups xmmword [r10], xmm1
mov qword [rsp + 0x90], r14
movups xmmword [r10 + 0x10], xmm2
movsd qword [r10 + 0x20], xmm0
add r10, 0x28
mov qword [rsp + 0xa0], r10
jmp 0x180016430
mov r11d, dword [rsp + 0x1d8]
mov rax, qword [rsp + 0x70]
add rax, r13
movzx eax, byte [rax + r15 + 0x54]
add eax, dword [r15 + r13 + 0x50]
mov r13, qword [rsp + 0x98]
cdqe
lea rcx, [rax + rax*4]
mov rax, qword [rsp + 0x1c0]
cmp dword [rax + rcx*8 + 0x20], 1
lea rdx, [rax + rcx*8]
jne 0x18001649d
movsxd rax, ebp
lea rcx, [rax + rax*4]
lea r8, [rcx*8]
add r8, r13
lea rcx, [rsp + 0xb8]
call fcn.180009220
movups xmm1, xmmword [rax]
movups xmm2, xmmword [rax + 0x10]
movsd xmm0, qword [rax + 0x20]
mov eax, 2
movups xmmword [rdx], xmm1
movups xmmword [rdx + 0x10], xmm2
jmp 0x1800164c0
lea rax, [rdi + rdi*4]
movups xmm0, xmmword [r13 + rax*8]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [r13 + rax*8 + 0x10]
movups xmmword [rdx + 0x10], xmm1
movsd xmm0, qword [r13 + rax*8 + 0x20]
mov eax, 1
mov r8d, dword [rsp + 0x58]
mov rcx, qword [rsp + 0xa8]
inc r8d
movsd qword [rdx + 0x20], xmm0
add rcx, 4
mov dword [rdx + 0x20], eax
mov eax, dword [r12 + 0x14]
mov dword [rdx + 0x24], eax
mov dword [rsp + 0x58], r8d
mov qword [rsp + 0xa8], rcx
cmp r8d, dword [r12]
jl 0x180015df0
mov rbp, qword [rsp + 0x78]
mov rax, qword [rsp + 0x88]
movsxd rdi, r11d
test r11d, r11d
jle 0x18001652f
lea rbx, [rbp + 8]
mov rcx, qword [rbx]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
lea rbx, [rbx + 0x10]
sub rdi, 1
jne 0x180016514
mov rax, qword [rsp + 0x88]
inc rax
add r12, 0x18
mov qword [rsp + 0x88], rax
cmp rax, qword [rsp + 0xb0]
jl 0x180015db0
mov rcx, rbp
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, r13
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, 1
movaps xmm14, xmmword [rsp + 0xf0]
movaps xmm13, xmmword [rsp + 0x100]
movaps xmm12, xmmword [rsp + 0x110]
movaps xmm11, xmmword [rsp + 0x120]
movaps xmm10, xmmword [rsp + 0x130]
movaps xmm9, xmmword [rsp + 0x140]
movaps xmm8, xmmword [rsp + 0x150]
movaps xmm7, xmmword [rsp + 0x160]
movaps xmm6, xmmword [rsp + 0x170]
mov r14, qword [rsp + 0x180]
movaps xmm15, xmmword [rsp + 0xe0]
mov rsi, qword [rsp + 0x190]
mov rbp, qword [rsp + 0x198]
mov rbx, qword [rsp + 0x1d0]
mov r13, qword [rsp + 0x188]
add rsp, 0x1a0
pop r15
pop r12
pop rdi
ret
mov rdi, qword [rsp + 0x90]
test rdi, rdi
jle 0x180016623
mov rbx, qword [rsp + 0x78]
add rbx, 8
nop
mov rcx, qword [rbx]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
lea rbx, [rbx + 0x10]
sub rdi, 1
jne 0x180016610
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [rsp + 0x98]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
xor eax, eax
jmp 0x18001656c
mov rcx, r13
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test rbp, rbp
je 0x180016663
mov rcx, rbp
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test rsi, rsi
je 0x180016671
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
xor eax, eax
jmp 0x1800165cc
mov eax, 1
add rsp, 0x1a0
pop r15
pop r12
pop rdi
ret