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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rdx
push rsi
push r13
push r14
sub rsp, 0x110
mov rcx, qword [rcx + 0x20]
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
mov r10, r8
mov rsi, rdx
movsxd r11, r9d
mov r13, qword [rcx + 8]
movaps xmmword [rax - 0x58], xmm8
imul r11, r11, 0x15e8
add r11, qword [r8 + 0x88]
mov eax, r9d
cdq
mov qword [rsp + 0xc8], r11
mov qword [rsp + 0xb8], r13
idiv dword [r8 + 0x50]
mov r8d, dword [rsi]
mov r9d, eax
mov ecx, edx
imul ecx, dword [r10 + 0x3c]
add ecx, dword [r10 + 0x34]
cmp ecx, r8d
cmovg r8d, ecx
mov dword [r13], r8d
mov ecx, dword [rsi + 4]
mov eax, dword [r10 + 0x40]
imul eax, r9d
add eax, dword [r10 + 0x38]
cmp eax, ecx
cmovg ecx, eax
lea eax, [rdx + 1]
mov dword [r13 + 4], ecx
mov ecx, dword [rsi + 8]
imul eax, dword [r10 + 0x3c]
add eax, dword [r10 + 0x34]
cmp eax, ecx
cmovl ecx, eax
lea eax, [r9 + 1]
mov dword [r13 + 8], ecx
mov ecx, dword [rsi + 0xc]
imul eax, dword [r10 + 0x40]
add eax, dword [r10 + 0x38]
cmp eax, ecx
cmovl ecx, eax
xor r8d, r8d
xor r9d, r9d
mov dword [r13 + 0xc], ecx
mov eax, dword [rsi + 0x10]
mov dword [r13 + 0x10], eax
cmp dword [r11 + 0xc], r8d
jle 0x1801232a3
xorps xmm4, xmm4
movss xmm8, dword [0x1801e1224]
movss xmm7, dword [0x1801ec390]
movss xmm6, dword [0x1801ec38c]
movss xmm5, dword [0x1801ec388]
nop
nop
nop
movss xmm2, dword [r11 + r8*4 + 0x14]
ucomiss xmm2, xmm4
jp 0x180123213
jne 0x180123213
movaps xmm3, xmm4
jmp 0x180123251
mov rdx, qword [rsi + 0x18]
mov ecx, dword [r13 + 8]
mov eax, dword [r13 + 0xc]
mulss xmm2, xmm8
sub ecx, dword [r13]
sub eax, dword [r13 + 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 [r13 + 0x10]
cvtsi2ss xmm3, ecx
divss xmm3, xmm2
ucomiss xmm3, xmm4
movss dword [r11 + r8*4 + 0x14], xmm3
jp 0x18012325f
je 0x180123291
test r8, r8
je 0x180123284
movss xmm1, dword [r11 + r8*4 + 0x10]
movaps xmm0, xmm1
addss xmm0, xmm7
comiss xmm0, xmm3
jbe 0x180123291
addss xmm1, xmm6
movss dword [r11 + r8*4 + 0x14], xmm1
jmp 0x180123291
comiss xmm5, xmm3
jbe 0x180123291
mov dword [r11 + 0x14], 0x41f00000
add r9d, 1
add r8, 1
cmp r9d, dword [r11 + 0xc]
jl 0x180123200
xor r14d, r14d
cmp dword [r13 + 0x10], r14d
mov dword [rsp + 0x40], r14d
jle 0x180123a7e
movsd xmm6, qword [0x180197a68]
movsd xmm7, qword [0x1801ec380]
movsd xmm8, qword [0x1801961d8]
mov qword [rsp + 0x130], rbx
mov qword [rsp + 0x140], rbp
mov qword [rsp + 0x148], rdi
xor edi, edi
xor ebx, ebx
xor ecx, ecx
mov qword [rsp + 0x108], r12
mov qword [rsp + 0x100], r15
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0xa0], rdi
mov rax, qword [r11 + 0x15e0]
mov rbp, qword [r13 + 0x18]
lea r12, [rcx + rax]
mov rax, qword [rsi + 0x18]
mov qword [rsp + 0xc0], rbp
mov ecx, dword [rbx + rax]
mov eax, dword [r13]
mov qword [rsp + 0xb0], r12
lea eax, [rcx + rax - 1]
cdq
idiv ecx
mov dword [rdi + rbp], eax
mov rcx, qword [rsi + 0x18]
mov r11d, eax
mov r8d, dword [rbx + rcx + 4]
mov ecx, dword [r13 + 4]
lea eax, [rcx + r8 - 1]
cdq
idiv r8d
mov dword [rdi + rbp + 4], eax
mov rcx, qword [rsi + 0x18]
mov r10d, eax
mov r8d, dword [rbx + rcx]
mov ecx, dword [r13 + 8]
lea eax, [rcx + r8 - 1]
cdq
idiv r8d
mov dword [rdi + rbp + 8], eax
mov rcx, qword [rsi + 0x18]
mov r9d, eax
mov r8d, dword [rbx + rcx + 4]
mov ecx, dword [r13 + 0xc]
sub r9d, r11d
lea eax, [r8 + rcx - 1]
cdq
idiv r8d
mov dword [rdi + rbp + 0xc], eax
sub eax, r10d
imul r9d, eax
movsxd rcx, r9d
shl rcx, 2
call fcn.1800c8c40
xor r13d, r13d
mov qword [rdi + rbp + 0x20], rax
mov eax, dword [r12 + 4]
mov dword [rsp + 0x24], r13d
test eax, eax
mov dword [rdi + rbp + 0x10], eax
jle 0x180123a07
lea r8, [r12 + 0x3b0]
xor r14d, r14d
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rsp + 0x88], r8
mov qword [rsp + 0x98], r14
nop
nop
nop
nop
mov eax, dword [rdi + rbp]
mov r11d, dword [rdi + rbp + 0x10]
mov r15, qword [rdi + rbp + 0x18]
sub r11d, r13d
mov ebx, 1
mov r9d, 3
sub r11d, 1
mov qword [rsp + 0xa8], r15
mov ecx, r11d
mov dword [rsp + 0x80], r11d
shl ebx, cl
mov dword [rsp + 0x5c], ebx
lea edx, [rax + rbx - 1]
sar edx, cl
mov dword [r14 + r15], edx
mov eax, dword [rdi + rbp + 4]
lea edx, [rbx + rax - 1]
sar edx, cl
mov dword [r14 + r15 + 4], edx
mov eax, dword [rdi + rbp + 8]
lea edx, [rax + rbx - 1]
sar edx, cl
mov dword [r14 + r15 + 8], edx
mov eax, dword [rdi + rbp + 0xc]
lea edx, [rax + rbx - 1]
sar edx, cl
test r13d, r13d
mov dword [r14 + r15 + 0xc], edx
mov edx, 1
cmove r9d, edx
mov dword [r14 + r15 + 0x18], r9d
test byte [r12], dl
je 0x18012349b
mov r10d, dword [r8 - 0x84]
mov esi, dword [r8]
mov dword [rsp + 0x30], r10d
mov dword [rsp + 0x2c], esi
jmp 0x1801234ae
mov r10d, reloc.OLEAUT32.dll_SafeArrayDestroy
mov dword [rsp + 0x30], r10d
mov esi, r10d
mov dword [rsp + 0x2c], r10d
mov eax, dword [r14 + r15]
mov ecx, r10d
sar eax, cl
shl eax, cl
mov ecx, esi
mov dword [rsp + 0x20], eax
mov eax, dword [r14 + r15 + 4]
sar eax, cl
shl eax, cl
mov ecx, r10d
shl edx, cl
mov dword [rsp + 0x28], eax
mov eax, dword [r14 + r15 + 8]
lea r8d, [rdx + rax - 1]
mov eax, dword [r14 + r15 + 0xc]
mov edx, 1
sar r8d, cl
shl r8d, cl
sub r8d, dword [rsp + 0x20]
sar r8d, cl
mov ecx, esi
mov dword [r14 + r15 + 0x10], r8d
shl edx, cl
lea r8d, [rdx + rax - 1]
mov edx, dword [rsp + 0x28]
sar r8d, cl
shl r8d, cl
sub r8d, edx
sar r8d, cl
test r13d, r13d
mov dword [r14 + r15 + 0x14], r8d
je 0x180123541
mov eax, dword [rsp + 0x20]
add edx, 1
add r10d, 0xffffffff
add eax, 1
sar edx, 1
mov dword [rsp + 0x30], r10d
sar eax, 1
add esi, 0xffffffff
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x2c], esi
mov dword [rsp + 0x20], eax
mov eax, dword [r12 + 8]
mov ecx, r10d
cmp eax, r10d
cmovl ecx, eax
mov eax, dword [r12 + 0xc]
cmp eax, esi
mov dword [rsp + 0x34], ecx
mov ecx, esi
cmovl ecx, eax
xor eax, eax
test r9d, r9d
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x3c], ecx
jle 0x1801239b8
lea rsi, [r14 + r15 + 0x44]
mov qword [rsp + 0x70], rsi
test r13d, r13d
jne 0x18012358b
xor r8d, r8d
jmp 0x18012358f
lea r8d, [rax + 1]
cmp r8d, 1
mov dword [rsi - 0x14], r8d
je 0x1801235a8
cmp r8d, 3
je 0x1801235a8
xor r10d, r10d
lea eax, [r10 + 1]
jmp 0x1801235b0
mov eax, 1
mov r10d, eax
cmp r8d, 2
je 0x1801235c1
cmp r8d, 3
je 0x1801235c1
xor r9d, r9d
jmp 0x1801235c4
mov r9d, eax
test r8d, r8d
jne 0x180123601
mov eax, dword [rdi + rbp]
mov ecx, r11d
lea edx, [rax + rbx - 1]
sar edx, cl
mov dword [rsi - 0x24], edx
mov eax, dword [rdi + rbp + 4]
lea edx, [rbx + rax - 1]
sar edx, cl
mov dword [rsi - 0x20], edx
mov eax, dword [rdi + rbp + 8]
lea edx, [rax + rbx - 1]
sar edx, cl
mov dword [rsi - 0x1c], edx
mov eax, dword [rdi + rbp + 0xc]
lea edx, [rax + rbx - 1]
sar edx, cl
mov dword [rsi - 0x18], edx
jmp 0x180123666
mov eax, dword [rdi + rbp]
lea ecx, [r11 + 1]
mov r11d, 1
imul r10d, ebx
imul r9d, ebx
mov edx, r11d
shl edx, cl
sub edx, r10d
lea edx, [rdx + rax - 1]
sar edx, cl
mov dword [rsi - 0x24], edx
mov eax, dword [rdi + rbp + 4]
mov edx, r11d
shl edx, cl
sub edx, r9d
lea edx, [rdx + rax - 1]
sar edx, cl
mov dword [rsi - 0x20], edx
mov eax, dword [rdi + rbp + 8]
mov edx, r11d
shl edx, cl
sub edx, r10d
lea edx, [rdx + rax - 1]
sar edx, cl
mov dword [rsi - 0x1c], edx
mov eax, dword [rdi + rbp + 0xc]
mov edx, r11d
shl edx, cl
sub edx, r9d
lea edx, [rdx + rax - 1]
sar edx, cl
mov dword [rsi - 0x18], edx
test r13d, r13d
jne 0x18012366f
xor ebx, ebx
jmp 0x18012367c
mov rax, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x48]
add rbx, rax
cmp dword [r12 + 0x14], 0
jne 0x180123691
mov ecx, r8d
call fcn.18006d590
mov r11d, eax
jmp 0x18012369c
mov ecx, r8d
call fcn.180127d00
mov r11d, eax
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x138]
movsd xmm0, xmm6
mov rax, qword [rax + 0x18]
mov ecx, dword [rcx + rax + 0x18]
sub ecx, dword [r12 + rbx*8 + 0x1c]
add ecx, r11d
cvtsi2sd xmm1, ecx
call fcn.180169de0
cvtsi2sd xmm1, dword [r12 + rbx*8 + 0x20]
xor r13d, r13d
mulsd xmm1, xmm7
addsd xmm1, xmm8
mulsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [rsi], xmm0
mov eax, dword [r12 + rbx*8 + 0x1c]
mov ecx, dword [r12 + 0x324]
lea ecx, [rcx + rax - 1]
mov dword [rsi - 4], ecx
mov eax, dword [r14 + r15 + 0x14]
imul eax, dword [r14 + r15 + 0x10]
test eax, eax
jle 0x180123982
mov ecx, dword [rsp + 0x30]
mov edx, dword [rsp + 0x34]
mov r10d, dword [rsp + 0x3c]
mov ebx, 1
mov r8d, ebx
mov r9d, ebx
mov r11d, ebx
shl r8d, cl
mov ecx, dword [rsp + 0x2c]
mov eax, ebx
shl r9d, cl
mov ecx, edx
mov ebp, ebx
shl r11d, cl
mov ecx, r10d
mov r12d, ebx
shl eax, cl
add r11d, 0xffffffff
mov ecx, edx
add eax, 0xffffffff
rol ebp, cl
mov ecx, r10d
rol r12d, cl
mov dword [rsp + 0x84], r8d
mov dword [rsp + 0x78], r9d
xor ebx, ebx
mov dword [rsp + 0x44], r11d
mov dword [rsp + 0x68], eax
nop
nop
mov rdi, qword [rsi - 0xc]
mov eax, r13d
cdq
idiv dword [r14 + r15 + 0x10]
imul eax, r9d
imul edx, r8d
add eax, dword [rsp + 0x28]
add edx, dword [rsp + 0x20]
lea ecx, [r8 + rdx]
lea r8d, [r9 + rax]
mov r9d, dword [rsi - 0x24]
cmp edx, r9d
cmovg r9d, edx
mov dword [rbx + rdi], r9d
mov r10d, dword [rsi - 0x20]
cmp eax, r10d
cmovg r10d, eax
mov dword [rbx + rdi + 4], r10d
mov eax, dword [rsi - 0x1c]
cmp ecx, eax
cmovl eax, ecx
mov dword [rbx + rdi + 8], eax
mov edx, dword [rsi - 0x18]
mov esi, dword [rsp + 0x3c]
cmp r8d, edx
cmovl edx, r8d
mov r8d, dword [rsp + 0x34]
add eax, r11d
mov ecx, r8d
mov dword [rbx + rdi + 0xc], edx
sar r9d, cl
shl r9d, cl
mov ecx, esi
sar r10d, cl
mov dword [rsp + 0x7c], r9d
shl r10d, cl
mov ecx, r8d
sar eax, cl
mov dword [rsp + 0x58], r10d
shl eax, cl
sub eax, r9d
sar eax, cl
mov ecx, esi
mov dword [rbx + rdi + 0x10], eax
mov eax, dword [rsp + 0x68]
add eax, edx
sar eax, cl
shl eax, cl
sub eax, r10d
sar eax, cl
mov rcx, qword [rbx + rdi + 0x18]
mov dword [rbx + rdi + 0x14], eax
call fcn.180079290
mov r11d, dword [rbx + rdi + 0x10]
imul r11d, dword [rbx + rdi + 0x14]
movsxd rcx, r11d
imul rcx, rcx, 0x3f78
call fcn.1800c8c40
mov rcx, qword [rbx + rdi + 0x20]
test rcx, rcx
mov qword [rbx + rdi + 0x18], rax
je 0x180123852
call fcn.180143960
mov rcx, qword [rbx + rdi + 0x28]
test rcx, rcx
je 0x180123861
call fcn.180143960
mov edx, dword [rbx + rdi + 0x14]
mov ecx, dword [rbx + rdi + 0x10]
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 0x180123937
mov r15d, dword [rsp + 0x7c]
mov r14d, dword [rsp + 0x58]
xor r11d, r11d
nop
nop
nop
mov r10, qword [rbx + rdi + 0x18]
mov eax, esi
cdq
idiv dword [rbx + rdi + 0x10]
imul edx, ebp
mov r8d, eax
mov eax, dword [rbx + rdi]
add edx, r15d
imul r8d, r12d
add r8d, r14d
cmp edx, eax
cmovg eax, edx
lea ecx, [rdx + rbp]
lea r9d, [r8 + r12]
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 0x1801238b0
mov r14, qword [rsp + 0x98]
mov r15, qword [rsp + 0xa8]
mov eax, dword [r14 + r15 + 0x14]
mov rsi, qword [rsp + 0x70]
mov r8d, dword [rsp + 0x84]
imul eax, dword [r14 + r15 + 0x10]
mov r9d, dword [rsp + 0x78]
mov r11d, dword [rsp + 0x44]
add r13d, 1
add rbx, 0x30
cmp r13d, eax
jl 0x180123770
mov rdi, qword [rsp + 0xa0]
mov rbp, qword [rsp + 0xc0]
mov r12, qword [rsp + 0xb0]
mov eax, dword [rsp + 0x38]
add qword [rsp + 0x60], 1
mov r11d, dword [rsp + 0x80]
mov ebx, dword [rsp + 0x5c]
mov r13d, dword [rsp + 0x24]
add eax, 1
add rsi, 0x28
cmp eax, dword [r14 + r15 + 0x18]
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x70], rsi
jl 0x180123581
mov r8, qword [rsp + 0x88]
add qword [rsp + 0x48], 3
add r13d, 1
add r14, 0x98
add r8, 4
cmp r13d, dword [rdi + rbp + 0x10]
mov qword [rsp + 0x88], r8
mov dword [rsp + 0x24], r13d
mov qword [rsp + 0x98], r14
jl 0x180123400
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x138]
mov r14d, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x90]
mov r13, qword [rsp + 0xb8]
mov r11, qword [rsp + 0xc8]
add r14d, 1
add rcx, 0x434
add rdi, 0x30
add rbx, 0x38
cmp r14d, dword [r13 + 0x10]
mov qword [rsp + 0x90], rcx
mov dword [rsp + 0x40], r14d
mov qword [rsp + 0xa0], rdi
mov qword [rsp + 0x50], rbx
jl 0x180123311
mov r15, qword [rsp + 0x100]
mov r12, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x130]
lea r11, [rsp + 0x110]
movaps xmm6, xmmword [r11 - 0x20]
movaps xmm7, xmmword [r11 - 0x30]
movaps xmm8, xmmword [r11 - 0x40]
mov rsp, r11
pop r14
pop r13
pop rsi
ret