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

Disassembly:
mov qword [rsp + 0x18], r8
push rbx
push rsi
push rdi
sub rsp, 0x120
movsxd rax, edx
mov rdi, rcx
mov rbx, r8
lea rdx, [rax + rax*4]
mov rax, qword [rcx + 0x18]
lea rsi, [rax + rdx*8]
mov rcx, rsi
mov qword [rsp + 0x38], rsi
lea rdx, [rsi + 0xc]
call fcn.140232a70
test eax, eax
jne 0x1402448c1
mov r8d, dword [rsi + 0x24]
test r8d, r8d
je 0x140244899
mov edx, dword [rdi + 0x68]
mov qword [rsp + 0x118], rbp
lea eax, [rdx + rdx*2]
movsxd rcx, eax
mov rax, qword [rdi + 0x70]
lea rbx, [rax + rcx*4]
lea eax, [rdx + rdx]
movsxd rcx, eax
mov rax, qword [rdi + 0x78]
lea rbp, [rax + rcx*4]
xor ecx, ecx
mov dword [rsp + 0x148], ecx
test r8d, r8d
jle 0x140244889
movaps xmmword [rsp + 0x100], xmm6
movaps xmmword [rsp + 0xf0], xmm7
movss xmm7, dword [rsp + 0x148]
lea r8, [rdi + 0x120]
movaps xmmword [rsp + 0xe0], xmm8
movaps xmmword [rsp + 0xd0], xmm9
movaps xmmword [rsp + 0xc0], xmm10
movss xmm10, dword [0x140339228]
movss xmm8, dword [rsp + 0x148]
movaps xmmword [rsp + 0xb0], xmm11
movaps xmmword [rsp + 0xa0], xmm12
movaps xmmword [rsp + 0x90], xmm13
movaps xmmword [rsp + 0x80], xmm14
movaps xmmword [rsp + 0x70], xmm15
movsd xmm15, qword [0x140339360]
movsd xmm14, qword [0x1403139d0]
nop dword [rax]
mov eax, dword [rsi + 0x20]
add eax, ecx
lea rcx, [rsp + 0x40]
movsxd rsi, eax
imul rsi, rsi, 0x64
add rsi, qword [rdi + 8]
mov eax, dword [rsi]
lea rdx, [rsi + 0x4c]
mov dword [rcx], eax
mov eax, dword [rsi + 4]
mov dword [rcx + 4], eax
mov eax, dword [rsi + 8]
mov dword [rcx + 8], eax
mov eax, dword [rsi + 0xc]
lea rcx, [rsp + 0x4c]
mov dword [rcx], eax
mov eax, dword [rsi + 0x10]
mov dword [rcx + 4], eax
mov eax, dword [rsi + 0x14]
mov dword [rcx + 8], eax
mov eax, dword [rsi + 0x18]
lea rcx, [rsp + 0x58]
mov dword [rcx], eax
mov eax, dword [rsi + 0x1c]
mov dword [rcx + 4], eax
mov eax, dword [rsi + 0x20]
mov dword [rcx + 8], eax
mov eax, dword [rsi + 0x58]
lea rcx, [rsp + 0x140]
mov dword [0x140377580], eax
mov eax, dword [rsi + 0x5c]
mov dword [0x140377584], eax
call fcn.140250870
movss xmm5, dword [rdi + 0x110]
movss xmm0, dword [rsp + 0x140]
comiss xmm5, xmm0
jbe 0x140244230
movaps xmm1, xmm10
jmp 0x140244255
movss xmm1, dword [rdi + 0x114]
comiss xmm0, xmm1
ja 0x140244805
subss xmm1, xmm5
subss xmm0, xmm5
divss xmm0, xmm1
movaps xmm1, xmm10
subss xmm1, xmm0
movss xmm0, dword [rsi + 0x3c]
mulss xmm0, dword [rdi + 0x20]
mulss xmm0, xmm1
unpcklps xmm0, xmm0
cvtps2pd xmm0, xmm0
call sub.MSVCR90.dll_ceil
cvttsd2si eax, xmm0
test eax, eax
jle 0x140244805
mov r9d, dword [0x140377580]
mov r10d, dword [0x140377584]
mov eax, eax
mov qword [rsp + 0x30], rax
nop
movzx ecx, r9w
shr r9d, 0x10
pxor xmm0, xmm0
movzx edx, r10w
shr r10d, 0x10
imul ecx, ecx, 0x9069
add ecx, r9d
mov eax, ecx
imul edx, edx, 0x4650
add edx, r10d
shl eax, 0x10
movzx r8d, cx
shr ecx, 0x10
add eax, edx
movzx r9d, dx
shr edx, 0x10
imul r8d, r8d, 0x9069
add r8d, ecx
cvtsi2sd xmm0, rax
imul r9d, r9d, 0x4650
mov eax, r8d
shl eax, 0x10
add r9d, edx
add eax, r9d
mulsd xmm0, xmm14
cvtsd2ss xmm3, xmm0
pxor xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, xmm14
cvtsd2ss xmm4, xmm0
movaps xmm1, xmm4
addss xmm1, xmm3
comiss xmm1, xmm10
jbe 0x14024432b
movaps xmm0, xmm10
movaps xmm1, xmm10
subss xmm0, xmm3
subss xmm1, xmm4
movaps xmm3, xmm0
movaps xmm4, xmm1
movd xmm0, dword [rdi + 0x28]
movd xmm1, dword [rdi + 0x24]
movss xmm11, dword [rsp + 0x4c]
movss xmm12, dword [rsp + 0x50]
movss xmm13, dword [rsp + 0x54]
pxor xmm2, xmm2
movzx ecx, r8w
shr r8d, 0x10
movzx edx, r9w
shr r9d, 0x10
imul ecx, ecx, 0x9069
add ecx, r8d
imul edx, edx, 0x4650
mov eax, ecx
add edx, r9d
movzx r8d, cx
mulss xmm11, xmm4
movaps xmm5, xmm10
mulss xmm12, xmm4
mulss xmm13, xmm4
shl eax, 0x10
shr ecx, 0x10
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subss xmm5, xmm3
add eax, edx
imul r8d, r8d, 0x9069
add r8d, ecx
movzx ecx, dx
shr edx, 0x10
movzx r9d, r8w
cvtsi2sd xmm2, rax
mov eax, r8d
subss xmm5, xmm4
shl eax, 0x10
shr r8d, 0x10
imul ecx, ecx, 0x4650
add ecx, edx
add eax, ecx
movzx r10d, cx
shr ecx, 0x10
imul r9d, r9d, 0x9069
add r9d, r8d
mov dword [0x140377580], r9d
mulsd xmm2, xmm14
mulsd xmm2, xmm0
imul r10d, r10d, 0x4650
add r10d, ecx
movd xmm0, dword [rdi + 0x30]
mov dword [0x140377584], r10d
addsd xmm2, xmm1
movd xmm1, dword [rdi + 0x2c]
cvtps2pd xmm0, xmm0
cvtsd2ss xmm9, xmm2
pxor xmm2, xmm2
cvtps2pd xmm1, xmm1
cvtsi2sd xmm2, rax
mov eax, r9d
shl eax, 0x10
add eax, r10d
shr eax, 0x1e
mov dword [rsp + 0x158], eax
mulsd xmm2, xmm14
mulsd xmm2, xmm0
movss xmm0, dword [rsp + 0x40]
mulss xmm0, xmm3
addsd xmm2, xmm1
movss xmm1, dword [rsp + 0x58]
mulsd xmm2, qword [0x140339290]
mulss xmm1, xmm5
addss xmm11, xmm0
movss xmm0, dword [rsp + 0x44]
mulss xmm0, xmm3
addss xmm11, xmm1
movss xmm1, dword [rsp + 0x5c]
cvtsd2ss xmm6, xmm2
mulss xmm1, xmm5
addss xmm12, xmm0
movss xmm0, dword [rsp + 0x48]
mulss xmm0, xmm3
addss xmm12, xmm1
movss xmm1, dword [rsp + 0x60]
addss xmm13, xmm0
movaps xmm2, xmm11
mulss xmm1, xmm5
subss xmm2, dword [rdi + 0x120]
addss xmm13, xmm1
movaps xmm1, xmm12
movaps xmm0, xmm13
mulss xmm2, xmm2
subss xmm1, dword [rdi + 0x124]
subss xmm0, dword [rdi + 0x128]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm2
addss xmm1, xmm0
comiss xmm1, dword [rdi + 0x11c]
ja 0x1402447f9
mov r11, qword [rdi + 0x58]
test r11, r11
je 0x140244532
movaps xmm0, xmm3
mulss xmm3, dword [rsi + 0x30]
movaps xmm1, xmm5
movaps xmm7, xmm4
movaps xmm8, xmm4
mulss xmm0, dword [rsi + 0x24]
mulss xmm1, dword [rsi + 0x2c]
mulss xmm5, dword [rsi + 0x38]
mulss xmm7, dword [rsi + 0x28]
mulss xmm8, dword [rsi + 0x34]
addss xmm7, xmm0
addss xmm8, xmm3
addss xmm7, xmm1
addss xmm8, xmm5
test r11, r11
je 0x1402445bc
movsxd r8, dword [rdi + 0x50]
movzx ecx, r9w
shr r9d, 0x10
imul ecx, ecx, 0x9069
add r9d, ecx
movzx ecx, r10w
shr r10d, 0x10
mov dword [0x140377580], r9d
imul ecx, ecx, 0x4650
add r10d, ecx
mov ecx, dword [rdi + 0x4c]
mov dword [0x140377584], r10d
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm8
cvttss2si eax, xmm0
movd xmm0, r8d
cvtdq2ps xmm0, xmm0
cdq
idiv ecx
mulss xmm0, xmm7
cvttss2si eax, xmm0
movsxd rcx, edx
cdq
idiv r8d
imul rcx, r8
mov eax, r9d
shl eax, 0x10
add eax, r10d
add rcx, r11
shr eax, 0x18
movsxd r8, edx
cmp al, byte [r8 + rcx]
jae 0x1402447f9
cmp dword [rdi + 0x80], 0x7ce
jle 0x14024463c
mov r8d, dword [rdi + 0x68]
lea rcx, [rdi + 0x88]
xor edx, edx
call fcn.140213800
mov r11d, dword [rdi + 0x68]
mov r8d, dword [rdi + 0x80]
lea rcx, [rdi + 0x88]
xor r9d, r9d
xor edx, edx
mov dword [rsp + 0x20], r11d
call fcn.14021e010
lea rcx, [rdi + 0x88]
call fcn.140213790
mov ebx, dword [rdi + 0xa8]
mov ebp, dword [rdi + 0xb8]
mov r9d, dword [0x140377580]
mov r10d, dword [0x140377584]
add rbx, rax
add rbp, rax
xor eax, eax
mov qword [rdi + 0x70], rbx
mov dword [rdi + 0x68], eax
mov dword [rdi + 0x80], eax
mov qword [rdi + 0x78], rbp
jmp 0x14024463e
xor eax, eax
movaps xmm1, xmm6
movaps xmm2, xmm9
movaps xmm0, xmm11
add rbx, 0x30
mulss xmm1, dword [rdi + 0x138]
subss xmm0, xmm1
movaps xmm1, xmm6
movss dword [rbx - 0x30], xmm0
mulss xmm1, dword [rdi + 0x13c]
movaps xmm0, xmm12
subss xmm0, xmm1
movaps xmm1, xmm6
movss dword [rbx - 0x2c], xmm0
mulss xmm1, dword [rdi + 0x140]
movaps xmm0, xmm13
subss xmm0, xmm1
movaps xmm1, xmm9
movss dword [rbx - 0x28], xmm0
mulss xmm1, dword [rdi + 0x12c]
movaps xmm0, xmm6
mulss xmm0, dword [rdi + 0x138]
addss xmm1, xmm11
subss xmm1, xmm0
movaps xmm0, xmm6
movss dword [rbx - 0x24], xmm1
mulss xmm0, dword [rdi + 0x13c]
mulss xmm2, dword [rdi + 0x130]
movaps xmm1, xmm9
addss xmm2, xmm12
subss xmm2, xmm0
movaps xmm0, xmm6
movss dword [rbx - 0x20], xmm2
mulss xmm1, dword [rdi + 0x134]
mulss xmm0, dword [rdi + 0x140]
movaps xmm2, xmm9
addss xmm1, xmm13
subss xmm1, xmm0
movaps xmm0, xmm6
movss dword [rbx - 0x1c], xmm1
mulss xmm0, dword [rdi + 0x138]
mulss xmm2, dword [rdi + 0x12c]
movaps xmm1, xmm9
addss xmm2, xmm11
addss xmm2, xmm0
movaps xmm0, xmm6
movss dword [rbx - 0x18], xmm2
mulss xmm1, dword [rdi + 0x130]
mulss xmm0, dword [rdi + 0x13c]
addss xmm1, xmm12
addss xmm1, xmm0
movaps xmm0, xmm6
movss dword [rbx - 0x14], xmm1
mulss xmm0, dword [rdi + 0x140]
mulss xmm9, dword [rdi + 0x134]
movaps xmm1, xmm6
addss xmm9, xmm13
addss xmm9, xmm0
movaps xmm0, xmm6
movss dword [rbx - 0x10], xmm9
mulss xmm0, dword [rdi + 0x138]
addss xmm0, xmm11
movss dword [rbx - 0xc], xmm0
mulss xmm1, dword [rdi + 0x13c]
addss xmm1, xmm12
movss dword [rbx - 8], xmm1
mulss xmm6, dword [rdi + 0x140]
movd xmm1, dword [rsp + 0x158]
cvtdq2pd xmm1, xmm1
addss xmm6, xmm13
mulsd xmm1, xmm15
movss dword [rbx - 4], xmm6
cvtsd2ss xmm0, xmm1
addsd xmm1, xmm15
mov dword [rbp + 4], eax
movss dword [rbp], xmm0
movss dword [rbp + 8], xmm0
cvtsd2ss xmm0, xmm1
mov dword [rbp + 0xc], 0x3f800000
mov dword [rbp + 0x14], 0x3f800000
movss dword [rbp + 0x10], xmm0
movss dword [rbp + 0x18], xmm0
mov dword [rbp + 0x1c], eax
add dword [rdi + 0x68], 4
add rbp, 0x20
add dword [rdi + 0x80], 2
sub qword [rsp + 0x30], 1
jne 0x140244290
mov ecx, dword [rsp + 0x148]
mov rsi, qword [rsp + 0x38]
lea r8, [rdi + 0x120]
inc ecx
cmp ecx, dword [rsi + 0x24]
mov dword [rsp + 0x148], ecx
jl 0x1402441a0
mov rbx, qword [rsp + 0x150]
movaps xmm15, xmmword [rsp + 0x70]
movaps xmm14, xmmword [rsp + 0x80]
movaps xmm13, xmmword [rsp + 0x90]
movaps xmm12, xmmword [rsp + 0xa0]
movaps xmm11, xmmword [rsp + 0xb0]
movaps xmm10, xmmword [rsp + 0xc0]
movaps xmm9, xmmword [rsp + 0xd0]
movaps xmm8, xmmword [rsp + 0xe0]
movaps xmm7, xmmword [rsp + 0xf0]
movaps xmm6, xmmword [rsp + 0x100]
jmp 0x140244891
mov rbx, qword [rsp + 0x150]
mov rbp, qword [rsp + 0x118]
mov edx, dword [rsi + 0x18]
test edx, edx
je 0x1402448ad
dec edx
mov r8, rbx
mov rcx, rdi
call fcn.140244090
mov edx, dword [rsi + 0x1c]
test edx, edx
je 0x1402448c1
dec edx
mov r8, rbx
mov rcx, rdi
call fcn.140244090
xor eax, eax
add rsp, 0x120
pop rdi
pop rsi
pop rbx
ret