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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x100
mov r10, qword [rcx + 0x20]
mov qword [rcx + 0x28], rdx
mov qword [rcx + 0x30], r8
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
mov eax, dword [r8 + 0x50]
mov rdi, rcx
movsxd rbx, r9d
mov dword [r10], eax
mov r10, qword [rcx + 0x20]
mov eax, dword [r8 + 0x54]
mov ecx, 0x350
mov rsi, r8
mov rbp, rdx
mov dword [r10 + 4], eax
call fcn.1800c8c40
mov rcx, qword [rdi + 0x20]
mov qword [rcx + 8], rax
mov r8d, dword [rbp]
mov rcx, qword [rdi + 0x20]
mov r12, qword [rcx + 8]
mov eax, ebx
mov r13, rbx
cdq
mov qword [rsp + 0xb0], r12
imul r13, r13, 0x15e8
add r13, qword [rsi + 0x88]
idiv dword [rsi + 0x50]
mov qword [rsp + 0xc0], r13
mov r9d, eax
mov ecx, edx
imul ecx, dword [rsi + 0x3c]
add ecx, dword [rsi + 0x34]
cmp ecx, r8d
cmovg r8d, ecx
mov dword [r12], r8d
mov ecx, dword [rbp + 4]
mov eax, dword [rsi + 0x40]
imul eax, r9d
add eax, dword [rsi + 0x38]
cmp eax, ecx
cmovg ecx, eax
lea eax, [rdx + 1]
mov dword [r12 + 4], ecx
mov ecx, dword [rbp + 8]
imul eax, dword [rsi + 0x3c]
add eax, dword [rsi + 0x34]
cmp eax, ecx
cmovl ecx, eax
lea eax, [r9 + 1]
mov dword [r12 + 8], ecx
mov ecx, dword [rbp + 0xc]
imul eax, dword [rsi + 0x40]
add eax, dword [rsi + 0x38]
cmp eax, ecx
cmovl ecx, eax
xor r8d, r8d
xor r9d, r9d
mov dword [r12 + 0xc], ecx
mov eax, dword [rbp + 0x10]
mov dword [r12 + 0x10], eax
cmp dword [r13 + 0xc], r8d
jle 0x1801226c7
xorps xmm4, xmm4
movss xmm8, dword [0x1801e1224]
movss xmm7, dword [0x1801ec390]
movss xmm6, dword [0x1801ec38c]
movss xmm5, dword [0x1801ec388]
nop
movss xmm2, dword [r13 + r8*4 + 0x14]
ucomiss xmm2, xmm4
jp 0x180122633
jne 0x180122633
movaps xmm3, xmm4
jmp 0x180122675
mov rdx, qword [rbp + 0x18]
mov ecx, dword [r12 + 8]
mov eax, dword [r12 + 0xc]
mulss xmm2, xmm8
sub ecx, dword [r12]
sub eax, dword [r12 + 4]
cvtsi2ss xmm0, dword [rdx]
cvtsi2ss xmm1, dword [rdx + 4]
mulss xmm2, xmm0
imul ecx, eax
imul ecx, dword [rdx + 0x18]
mulss xmm2, xmm1
imul ecx, dword [r12 + 0x10]
cvtsi2ss xmm3, ecx
divss xmm3, xmm2
ucomiss xmm3, xmm4
movss dword [r13 + r8*4 + 0x14], xmm3
jp 0x180122683
je 0x1801226b5
test r8, r8
je 0x1801226a8
movss xmm1, dword [r13 + r8*4 + 0x10]
movaps xmm0, xmm1
addss xmm0, xmm7
comiss xmm0, xmm3
jbe 0x1801226b5
addss xmm1, xmm6
movss dword [r13 + r8*4 + 0x14], xmm1
jmp 0x1801226b5
comiss xmm5, xmm3
jbe 0x1801226b5
mov dword [r13 + 0x14], 0x41f00000
add r9d, 1
add r8, 1
cmp r9d, dword [r13 + 0xc]
jl 0x180122620
movsxd rax, dword [rbp + 0x10]
lea rcx, [rax + rax*2]
shl rcx, 4
call fcn.1800c8c40
xor r15d, r15d
cmp dword [r12 + 0x10], r15d
mov qword [r12 + 0x18], rax
mov dword [rsp + 0x3c], r15d
jle 0x180122ee4
movsd xmm6, qword [0x180197a68]
movsd xmm7, qword [0x1801ec380]
movsd xmm8, qword [0x1801961d8]
xor ebx, ebx
xor edi, edi
xor ecx, ecx
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x158], r14
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x98], rdi
nop
mov rax, qword [r13 + 0x15e0]
mov rsi, qword [r12 + 0x18]
lea r14, [rcx + rax]
mov rax, qword [rbp + 0x18]
mov qword [rsp + 0xb8], rsi
mov ecx, dword [rbx + rax]
mov eax, dword [r12]
mov qword [rsp + 0xa8], r14
lea eax, [rcx + rax - 1]
cdq
idiv ecx
mov dword [rdi + rsi], eax
mov rcx, qword [rbp + 0x18]
mov r11d, eax
mov r8d, dword [rbx + rcx + 4]
mov ecx, dword [r12 + 4]
lea eax, [rcx + r8 - 1]
cdq
idiv r8d
mov dword [rdi + rsi + 4], eax
mov rcx, qword [rbp + 0x18]
mov r10d, eax
mov r8d, dword [rbx + rcx]
mov ecx, dword [r12 + 8]
lea eax, [rcx + r8 - 1]
cdq
idiv r8d
mov dword [rdi + rsi + 8], eax
mov rcx, qword [rbp + 0x18]
mov r9d, eax
mov r8d, dword [rbx + rcx + 4]
mov ecx, dword [r12 + 0xc]
sub r9d, r11d
lea eax, [r8 + rcx - 1]
cdq
idiv r8d
mov dword [rdi + rsi + 0xc], eax
sub eax, r10d
imul eax, r9d
movsxd rcx, eax
shl rcx, 2
call fcn.1800c8c40
mov qword [rdi + rsi + 0x20], rax
movsxd rax, dword [r14 + 4]
mov rcx, rax
mov dword [rdi + rsi + 0x10], eax
imul rcx, rcx, 0x98
call fcn.1800c8c40
xor r10d, r10d
cmp dword [rdi + rsi + 0x10], r10d
mov qword [rdi + rsi + 0x18], rax
mov dword [rsp + 0x150], r10d
jle 0x180122e9c
lea r8, [r14 + 0x3b0]
xor ebp, ebp
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rsp + 0x80], r8
mov qword [rsp + 0x90], rbp
nop
mov eax, dword [rdi + rsi]
mov ebx, dword [rdi + rsi + 0x10]
mov r12, qword [rdi + rsi + 0x18]
sub ebx, r10d
mov r13d, 1
mov r9d, 3
sub ebx, 1
mov qword [rsp + 0xa0], r12
mov ecx, ebx
mov dword [rsp + 0x58], ebx
shl r13d, cl
mov dword [rsp + 0x54], r13d
lea edx, [rax + r13 - 1]
sar edx, cl
mov dword [r12 + rbp], edx
mov eax, dword [rdi + rsi + 4]
lea edx, [rax + r13 - 1]
sar edx, cl
mov dword [r12 + rbp + 4], edx
mov eax, dword [rdi + rsi + 8]
lea edx, [rax + r13 - 1]
sar edx, cl
mov dword [r12 + rbp + 8], edx
mov eax, dword [rdi + rsi + 0xc]
lea edx, [r13 + rax - 1]
sar edx, cl
test r10d, r10d
mov dword [r12 + rbp + 0xc], edx
mov edx, 1
cmove r9d, edx
mov dword [r12 + rbp + 0x18], r9d
test byte [r14], dl
je 0x1801228cb
mov r11d, dword [r8 - 0x84]
mov r15d, dword [r8]
mov dword [rsp + 0x2c], r11d
mov dword [rsp + 0x28], r15d
jmp 0x1801228de
mov r11d, reloc.OLEAUT32.dll_SafeArrayDestroy
mov dword [rsp + 0x2c], r11d
mov r15d, r11d
mov dword [rsp + 0x28], r11d
mov eax, dword [r12 + rbp]
mov ecx, r11d
sar eax, cl
shl eax, cl
mov ecx, r15d
mov dword [rsp + 0x140], eax
mov eax, dword [r12 + rbp + 4]
sar eax, cl
shl eax, cl
mov ecx, r11d
shl edx, cl
mov dword [rsp + 0x24], eax
mov eax, dword [r12 + rbp + 8]
lea r8d, [rdx + rax - 1]
mov eax, dword [r12 + rbp + 0xc]
mov edx, 1
sar r8d, cl
shl r8d, cl
sub r8d, dword [rsp + 0x140]
sar r8d, cl
mov ecx, r15d
mov dword [r12 + rbp + 0x10], r8d
shl edx, cl
lea r8d, [rdx + rax - 1]
mov edx, dword [rsp + 0x24]
sar r8d, cl
shl r8d, cl
sub r8d, edx
sar r8d, cl
test r10d, r10d
mov dword [r12 + rbp + 0x14], r8d
je 0x180122981
mov eax, dword [rsp + 0x140]
add edx, 1
add r11d, 0xffffffff
add eax, 1
sar edx, 1
mov dword [rsp + 0x2c], r11d
sar eax, 1
add r15d, 0xffffffff
mov dword [rsp + 0x24], edx
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x140], eax
mov eax, dword [r14 + 8]
mov ecx, r11d
cmp eax, r11d
cmovl ecx, eax
mov eax, dword [r14 + 0xc]
cmp eax, r15d
mov dword [rsp + 0x30], ecx
mov ecx, r15d
cmovl ecx, eax
xor eax, eax
xor r8d, r8d
test r9d, r9d
mov dword [rsp + 0x34], eax
mov qword [rsp + 0x60], r8
mov dword [rsp + 0x20], ecx
jle 0x180122e3a
lea r15, [r12 + rbp + 0x24]
nop
test r10d, r10d
je 0x1801229c9
lea r10d, [rax + 1]
cmp r10d, 1
mov dword [r15 + 0xc], r10d
je 0x1801229e0
cmp r10d, 3
je 0x1801229e0
xor eax, eax
lea ecx, [rax + 1]
jmp 0x1801229e7
mov ecx, 1
mov eax, ecx
cmp r10d, 2
je 0x1801229f8
cmp r10d, 3
je 0x1801229f8
xor r11d, r11d
jmp 0x1801229fb
mov r11d, ecx
test r10d, r10d
jne 0x180122a3e
mov eax, dword [rdi + rsi]
mov ecx, ebx
lea edx, [rax + r13 - 1]
sar edx, cl
mov dword [r15 - 4], edx
mov eax, dword [rdi + rsi + 4]
lea edx, [rax + r13 - 1]
sar edx, cl
mov dword [r15], edx
mov eax, dword [rdi + rsi + 8]
lea edx, [rax + r13 - 1]
sar edx, cl
mov dword [r15 + 4], edx
mov eax, dword [rdi + rsi + 0xc]
lea edx, [r13 + rax - 1]
sar edx, cl
mov dword [r15 + 8], edx
jmp 0x180122aab
lea ecx, [rbx + 1]
mov ebx, 1
mov r8d, r13d
mov r9d, r13d
mov edx, ebx
imul r8d, r11d
shl edx, cl
imul r9d, eax
mov eax, dword [rdi + rsi]
sub edx, r9d
lea edx, [rdx + rax - 1]
sar edx, cl
mov dword [r15 - 4], edx
mov eax, dword [rdi + rsi + 4]
mov edx, ebx
shl edx, cl
sub edx, r8d
lea edx, [rdx + rax - 1]
sar edx, cl
mov dword [r15], edx
mov eax, dword [rdi + rsi + 8]
mov edx, ebx
shl edx, cl
sub edx, r9d
lea edx, [rdx + rax - 1]
sar edx, cl
mov dword [r15 + 4], edx
mov eax, dword [rdi + rsi + 0xc]
mov edx, ebx
shl edx, cl
sub edx, r8d
mov r8, qword [rsp + 0x60]
lea edx, [rdx + rax - 1]
sar edx, cl
mov dword [r15 + 8], edx
cmp dword [rsp + 0x150], 0
jne 0x180122ab9
xor ebx, ebx
jmp 0x180122ac2
mov rax, qword [rsp + 0x70]
lea rbx, [r8 + rax]
cmp dword [r14 + 0x14], 0
jne 0x180122ad6
mov ecx, r10d
call fcn.18006d590
mov r11d, eax
jmp 0x180122ae1
mov ecx, r10d
call fcn.180127d00
mov r11d, eax
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x148]
movsd xmm0, xmm6
mov rax, qword [rax + 0x18]
mov ecx, dword [rcx + rax + 0x18]
sub ecx, dword [r14 + rbx*8 + 0x1c]
add ecx, r11d
cvtsi2sd xmm1, ecx
call fcn.180169de0
cvtsi2sd xmm1, dword [r14 + rbx*8 + 0x20]
mulsd xmm1, xmm7
addsd xmm1, xmm8
mulsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [r15 + 0x20], xmm0
mov ecx, dword [r14 + 0x324]
mov eax, dword [r14 + rbx*8 + 0x1c]
lea ecx, [rcx + rax - 1]
mov dword [r15 + 0x1c], ecx
mov eax, dword [r12 + rbp + 0x14]
imul eax, dword [r12 + rbp + 0x10]
lea eax, [rax + rax*2]
movsxd rcx, eax
lea rcx, [rcx + rcx*2]
shl rcx, 4
call fcn.1800c8c40
xor edx, edx
mov qword [r15 + 0x14], rax
mov eax, dword [r12 + rbp + 0x14]
imul eax, dword [r12 + rbp + 0x10]
lea eax, [rax + rax*2]
test eax, eax
jle 0x180122ba8
xor ecx, ecx
mov rax, qword [r15 + 0x14]
add edx, 1
add rcx, 0x30
mov qword [rcx + rax - 8], 0
mov rax, qword [r15 + 0x14]
mov qword [rcx + rax - 0x10], 0
mov eax, dword [r12 + rbp + 0x14]
imul eax, dword [r12 + rbp + 0x10]
lea eax, [rax + rax*2]
cmp edx, eax
jl 0x180122b75
mov eax, dword [r12 + rbp + 0x14]
xor edx, edx
mov dword [rsp + 0x38], edx
imul eax, dword [r12 + rbp + 0x10]
test eax, eax
jle 0x180122e06
mov ecx, dword [rsp + 0x2c]
mov r10d, dword [rsp + 0x30]
mov r11d, dword [rsp + 0x20]
mov ebx, 1
mov r8d, ebx
mov r9d, ebx
mov esi, ebx
shl r8d, cl
mov ecx, dword [rsp + 0x28]
mov eax, ebx
shl r9d, cl
mov ecx, r10d
mov r13d, ebx
shl esi, cl
mov ecx, r11d
mov r14d, ebx
shl eax, cl
add esi, 0xffffffff
mov ecx, r10d
add eax, 0xffffffff
rol r13d, cl
mov ecx, r11d
rol r14d, cl
mov dword [rsp + 0x68], r8d
mov dword [rsp + 0x5c], r9d
xor ebx, ebx
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x78], eax
nop
mov r10d, dword [r15 - 4]
mov rdi, qword [r15 + 0x14]
mov eax, edx
cdq
mov ecx, r8d
idiv dword [r12 + rbp + 0x10]
imul ecx, edx
imul eax, r9d
add eax, dword [rsp + 0x24]
add ecx, dword [rsp + 0x140]
cmp ecx, r10d
lea edx, [r8 + rcx]
lea r8d, [r9 + rax]
cmovg r10d, ecx
mov dword [rbx + rdi], r10d
mov r11d, dword [r15]
cmp eax, r11d
cmovg r11d, eax
mov dword [rbx + rdi + 4], r11d
mov eax, dword [r15 + 4]
cmp edx, eax
cmovl eax, edx
mov dword [rbx + rdi + 8], eax
mov r9d, dword [r15 + 8]
lea edx, [rsi + rax]
mov eax, dword [rsp + 0x78]
cmp r8d, r9d
cmovl r9d, r8d
mov r8d, dword [rsp + 0x30]
mov ecx, r8d
add eax, r9d
mov dword [rbx + rdi + 0xc], r9d
sar r10d, cl
shl r10d, cl
mov ecx, dword [rsp + 0x20]
sar r11d, cl
mov dword [rsp + 0x50], r10d
shl r11d, cl
mov ecx, r8d
sar edx, cl
mov dword [rsp + 0x7c], r11d
shl edx, cl
sub edx, r10d
sar edx, cl
mov ecx, dword [rsp + 0x20]
sar eax, cl
mov dword [rbx + rdi + 0x10], edx
shl eax, cl
sub eax, r11d
sar eax, cl
mov dword [rbx + rdi + 0x14], eax
imul eax, edx
movsxd rcx, eax
imul rcx, rcx, 0x3f78
call fcn.1800c8c40
mov edx, dword [rbx + rdi + 0x14]
mov ecx, dword [rbx + rdi + 0x10]
mov qword [rbx + rdi + 0x18], rax
call fcn.180143bb0
mov edx, dword [rbx + rdi + 0x14]
mov ecx, dword [rbx + rdi + 0x10]
mov qword [rbx + rdi + 0x20], rax
call fcn.180143bb0
xor esi, esi
mov qword [rbx + rdi + 0x28], rax
mov eax, dword [rbx + rdi + 0x10]
imul eax, dword [rbx + rdi + 0x14]
test eax, eax
jle 0x180122db9
mov r12d, dword [rsp + 0x50]
mov ebp, dword [rsp + 0x7c]
xor r11d, r11d
nop
nop
mov r10, qword [rbx + rdi + 0x18]
mov eax, esi
cdq
idiv dword [rbx + rdi + 0x10]
imul edx, r13d
mov r8d, eax
mov eax, dword [rbx + rdi]
add edx, r12d
imul r8d, r14d
add r8d, ebp
cmp edx, eax
cmovg eax, edx
lea ecx, [rdx + r13]
lea r9d, [r8 + r14]
mov dword [r11 + r10], eax
mov eax, dword [rbx + rdi + 4]
cmp r8d, eax
cmovg eax, r8d
mov dword [r11 + r10 + 4], eax
mov eax, dword [rbx + rdi + 8]
cmp ecx, eax
cmovl eax, ecx
mov dword [r11 + r10 + 8], eax
mov eax, dword [rbx + rdi + 0xc]
cmp r9d, eax
cmovl eax, r9d
add esi, 1
add r11, 0x3f78
mov dword [r11 + r10 - 0x3f6c], eax
mov eax, dword [rbx + rdi + 0x10]
imul eax, dword [rbx + rdi + 0x14]
cmp esi, eax
jl 0x180122d30
mov rbp, qword [rsp + 0x90]
mov r12, qword [rsp + 0xa0]
mov edx, dword [rsp + 0x38]
mov eax, dword [r12 + rbp + 0x14]
mov r8d, dword [rsp + 0x68]
imul eax, dword [r12 + rbp + 0x10]
mov r9d, dword [rsp + 0x5c]
mov esi, dword [rsp + 0x40]
add edx, 1
add rbx, 0x30
cmp edx, eax
mov dword [rsp + 0x38], edx
jl 0x180122c20
mov rdi, qword [rsp + 0x98]
mov rsi, qword [rsp + 0xb8]
mov r13d, dword [rsp + 0x54]
mov r14, qword [rsp + 0xa8]
mov eax, dword [rsp + 0x34]
mov r8, qword [rsp + 0x60]
mov ebx, dword [rsp + 0x58]
mov r10d, dword [rsp + 0x150]
add eax, 1
add r8, 1
add r15, 0x28
cmp eax, dword [r12 + rbp + 0x18]
mov dword [rsp + 0x34], eax
mov qword [rsp + 0x60], r8
jl 0x1801229c0
mov r8, qword [rsp + 0x80]
add qword [rsp + 0x70], 3
add r10d, 1
add rbp, 0x98
add r8, 4
cmp r10d, dword [rdi + rsi + 0x10]
mov qword [rsp + 0x80], r8
mov dword [rsp + 0x150], r10d
mov qword [rsp + 0x90], rbp
jl 0x180122830
mov rbx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x148]
mov r12, qword [rsp + 0xb0]
mov r13, qword [rsp + 0xc0]
mov r15d, dword [rsp + 0x3c]
mov rcx, qword [rsp + 0x88]
add r15d, 1
add rdi, 0x30
add rcx, 0x434
add rbx, 0x38
cmp r15d, dword [r12 + 0x10]
mov dword [rsp + 0x3c], r15d
mov qword [rsp + 0x98], rdi
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x48], rbx
jl 0x180122730
mov r14, qword [rsp + 0x158]
lea r11, [rsp + 0x100]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret