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

Disassembly:
mov rax, rsp
mov dword [rax + 0x18], r8d
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x138
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
movaps xmmword [rax - 0x88], xmm9
movaps xmmword [rax - 0x98], xmm10
movaps xmmword [rax - 0xa8], xmm11
movaps xmmword [rax - 0xb8], xmm12
movaps xmmword [rax - 0xc8], xmm13
mov r14d, r8d
mov rsi, rdx
mov rdi, rcx
mov rax, qword [rdx + 8]
sub rax, qword [rdx]
sar rax, 5
test rax, rax
je 0x14001fe8f
mov ecx, 0x150
call fcn.14005bb40
mov rbx, rax
mov qword [rsp + 0x198], rax
mov dword [rax], 0
lea rcx, [rax + 8]
lea rax, [0x14000dd70]
mov qword [rsp + 0x20], rax
lea r9, [0x14001fee0]
mov edx, 0x28
lea r8d, [rdx - 0x20]
call fcn.14005bed8
mov dword [rbx + 0x148], 0
mov qword [rdi + 0x28], rbx
lea eax, [r14 + 1]
cdq
sub eax, edx
sar eax, 1
lea r8d, [r14 - 1]
add r8d, eax
mov eax, r14d
cdq
sub eax, edx
sar eax, 1
inc eax
lea edx, [rax + r8]
mov ecx, r8d
neg ecx
mov dword [rsp + 0x70], ecx
mov dword [rsp + 0x74], eax
imul ecx, r14d, 0x3e
mov eax, ecx
sub eax, r8d
mov dword [rsp + 0x78], eax
mov dword [rsp + 0x80], edx
sub ecx, edx
mov dword [rsp + 0x84], ecx
mov dword [rsp + 0x88], edx
xor ebp, ebp
mov dword [rsp + 0x198], ebp
xor r11d, r11d
mov dword [rsp + 0x44], r11d
xor ecx, ecx
movss xmm13, dword [0x140070918]
movss xmm11, dword [0x140070908]
movss xmm12, dword [0x140070920]
nop
xor r9d, r9d
mov dword [rsp + 0x40], r9d
nop dword [rax + rax]
xor edx, edx
mov dword [rsp + 0x3c], edx
mov qword [rsp + 0x98], rcx
nop
mov rax, qword [rdi + 0x28]
mov dword [rax + rcx + 8], ebp
xor r10d, r10d
mov ecx, edx
imul ecx, r14d
mov dword [rsp + 0x68], ecx
xor r8d, r8d
mov qword [rsp + 0x90], r8
add ecx, dword [rdi + 4]
imul ebp, ecx, 0x3e
add ebp, dword [rsp + r8 + 0x70]
mov dword [rsp + 0x38], ebp
mov ecx, dword [rsp + r8 + 0x80]
lea eax, [rcx + rbp]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm13, xmm0
ja 0x14001fd32
mov edx, r11d
imul edx, r14d
mov dword [rsp + 0x64], edx
mov r11d, r9d
imul r11d, r14d
mov dword [rsp + 0x58], r11d
imul ebx, ebp, 0x18af7
mov dword [rsp + 0x5c], ebx
imul r14d, r14d, 0x193a5
mov dword [rsp + 0x60], r14d
movd xmm10, ecx
cvtdq2ps xmm10, xmm10
xor r12d, r12d
nop dword [rax]
nop dword [rax + rax]
mov ecx, dword [rdi]
add ecx, edx
imul r8d, ecx, 0x3e
add r8d, dword [rsp + r12 + 0x70]
mov dword [rsp + 0x34], r8d
movd xmm9, dword [rsp + r12 + 0x80]
cvtdq2ps xmm9, xmm9
movaps xmm6, xmm10
mulss xmm6, xmm9
imul r9d, r8d, 0x19919
mov dword [rsp + 0x54], r9d
xor r15d, r15d
nop dword [rax + rax]
mov ecx, dword [rdi + 8]
add ecx, r11d
imul edx, ecx, 0x3e
add edx, dword [rsp + r15 + 0x70]
mov dword [rsp + 0x30], edx
movd xmm8, dword [rsp + r15 + 0x80]
cvtdq2ps xmm8, xmm8
movaps xmm7, xmm8
mulss xmm7, xmm6
lea edi, [rbx + rdx*8]
xor edi, r14d
xor edi, r9d
mov rax, qword [rsi + 8]
mov qword [rsp + 0xa0], rax
mov rsi, qword [rsi]
cmp rsi, rax
je 0x14001fce8
nop dword [rax]
mov eax, edi
shl eax, 0xd
xor edi, eax
mov eax, edi
shr eax, 0x11
xor edi, eax
mov eax, edi
shl eax, 5
xor edi, eax
imul ecx, edi, 0x45f4914f
xorps xmm1, xmm1
cvtsi2ss xmm1, rcx
divss xmm1, xmm11
movaps xmm0, xmm7
mulss xmm0, dword [rsi + 0x1c]
addss xmm1, xmm0
cvttss2si eax, xmm1
test eax, eax
jle 0x14001fcc3
mov r13d, eax
add r10d, eax
mov dword [rsp + 0x50], r10d
nop dword [rax + rax]
mov eax, edi
shl eax, 0xd
xor edi, eax
mov eax, edi
shr eax, 0x11
xor edi, eax
mov eax, edi
shl eax, 5
xor edi, eax
imul ecx, edi, 0x45f4914f
xorps xmm0, xmm0
cvtsi2ss xmm0, rcx
divss xmm0, xmm12
mulss xmm0, xmm9
cvttss2si eax, xmm0
mov ebx, r8d
sub ebx, eax
mov eax, edi
shl eax, 0xd
xor edi, eax
mov eax, edi
shr eax, 0x11
xor edi, eax
mov eax, edi
shl eax, 5
xor edi, eax
imul ecx, edi, 0x45f4914f
xorps xmm0, xmm0
cvtsi2ss xmm0, rcx
divss xmm0, xmm12
mulss xmm0, xmm10
cvttss2si eax, xmm0
sub ebp, eax
mov dword [rsp + 0x4c], ebp
mov eax, edi
shl eax, 0xd
xor edi, eax
mov eax, edi
shr eax, 0x11
xor edi, eax
mov eax, edi
shl eax, 5
xor edi, eax
imul ecx, edi, 0x45f4914f
xorps xmm0, xmm0
cvtsi2ss xmm0, rcx
divss xmm0, xmm12
mulss xmm0, xmm8
cvttss2si eax, xmm0
mov ecx, edx
sub ecx, eax
mov dword [rsp + 0x48], ecx
movsxd rax, dword [rsp + 0x198]
mov rbp, rax
mov r14, qword [0x1400a4c60]
add eax, dword [rsi + 8]
mov dword [rsp + 0x198], eax
cmp eax, 0x61a80
jle 0x14001fc29
lea rcx, str.Out_of_scratch_structure_memory___n
call fcn.1400046c0
mov ecx, dword [rsp + 0x48]
mov dword [r14 + rbp*4], ebx
mov eax, dword [rsp + 0x4c]
mov dword [r14 + rbp*4 + 4], eax
mov dword [r14 + rbp*4 + 8], ecx
mov ecx, dword [rsi + 4]
shl ecx, 8
mov eax, dword [rsi + 8]
shl eax, 0x10
or ecx, eax
or ecx, dword [rsi]
mov dword [r14 + rbp*4 + 0xc], ecx
cmp dword [rsi], 0
je 0x14001fca7
mov eax, edi
shl eax, 0xd
xor edi, eax
mov eax, edi
shr eax, 0x11
xor edi, eax
mov eax, edi
shl eax, 5
xor edi, eax
mov eax, dword [rsi + 0x10]
sub eax, dword [rsi + 0xc]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
imul ecx, edi, 0x45f4914f
xorps xmm1, xmm1
cvtsi2ss xmm1, rcx
divss xmm1, xmm11
mulss xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
cvttss2si eax, xmm0
add eax, dword [rsi + 0xc]
mov dword [r14 + rbp*4 + 0x10], eax
mov eax, dword [rsi + 0x14]
mov dword [r14 + rbp*4 + 0x14], eax
sub r13, 1
mov edx, dword [rsp + 0x30]
mov r8d, dword [rsp + 0x34]
mov ebp, dword [rsp + 0x38]
jne 0x14001fb50
mov r10d, dword [rsp + 0x50]
add rsi, 0x20
cmp rsi, qword [rsp + 0xa0]
jne 0x14001fb00
mov r9d, dword [rsp + 0x54]
mov r11d, dword [rsp + 0x58]
mov ebx, dword [rsp + 0x5c]
mov r14d, dword [rsp + 0x60]
add r15, 4
cmp r15, 0xc
mov rdi, qword [rsp + 0x180]
mov rsi, qword [rsp + 0x188]
jl 0x14001fab0
add r12, 4
cmp r12, 0xc
mov edx, dword [rsp + 0x64]
jl 0x14001fa70
mov r8, qword [rsp + 0x90]
mov r14d, dword [rsp + 0x190]
mov r9d, dword [rsp + 0x40]
mov r11d, dword [rsp + 0x44]
add r8, 4
mov qword [rsp + 0x90], r8
cmp r8, 0xc
mov ecx, dword [rsp + 0x68]
jl 0x14001fa00
mov rax, qword [rdi + 0x28]
mov rcx, qword [rsp + 0x98]
mov dword [rax + rcx + 0x28], r10d
mov edx, dword [rsp + 0x3c]
inc edx
mov dword [rsp + 0x3c], edx
add rcx, 0x28
mov qword [rsp + 0x98], rcx
cmp edx, 2
mov ebp, dword [rsp + 0x198]
jl 0x14001f9e0
inc r9d
mov dword [rsp + 0x40], r9d
cmp r9d, 2
jl 0x14001f9d0
inc r11d
mov dword [rsp + 0x44], r11d
cmp r11d, 2
movsxd rbp, ebp
jl 0x14001f9c0
mov rbx, qword [rdi + 0x28]
test ebp, ebp
jne 0x14001fde9
test rbx, rbx
je 0x14001fddc
lea rcx, [rbx + 8]
lea r9, [0x14000dd70]
lea edx, [rbp + 0x28]
lea r8d, [rbp + 8]
call fcn.14005bbb8
nop
mov edx, 0x150
mov rcx, rbx
call fcn.14005bb7c
mov qword [rdi + 0x28], 0
jmp 0x14001fe8f
lea rdx, [rbx + 8]
mov r8d, ebp
call fcn.140022f20
mov rax, qword [rdi + 0x28]
cmp dword [rax + 8], 0xffffffff
jne 0x14001fe0b
lea rcx, str.Out_of_structure_memory___n
call fcn.1400046c0
mov rax, qword [rdi + 0x28]
mov dword [rax + 0x148], ebp
mov rcx, qword [rdi + 0x28]
mov eax, dword [rcx + 8]
add dword [rcx + 0x30], eax
mov rcx, qword [rdi + 0x28]
mov eax, dword [rcx + 8]
add dword [rcx + 0x58], eax
mov rcx, qword [rdi + 0x28]
mov eax, dword [rcx + 8]
add dword [rcx + 0x80], eax
mov rcx, qword [rdi + 0x28]
mov eax, dword [rcx + 8]
add dword [rcx + 0xa8], eax
mov rcx, qword [rdi + 0x28]
mov eax, dword [rcx + 8]
add dword [rcx + 0xd0], eax
mov rcx, qword [rdi + 0x28]
mov eax, dword [rcx + 8]
add dword [rcx + 0xf8], eax
mov rcx, qword [rdi + 0x28]
mov eax, dword [rcx + 8]
add dword [rcx + 0x120], eax
mov r8, rbp
shl r8, 2
mov rax, qword [rdi + 0x28]
mov ecx, dword [rax + 8]
mov rax, qword [0x1400a4e98]
lea rcx, [rax + rcx*4]
mov rdx, qword [0x1400a4c60]
call sub.VCRUNTIME140.dll_memcpy
lea r11, [rsp + 0x138]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
movaps xmm11, xmmword [r11 - 0x68]
movaps xmm12, xmmword [r11 - 0x78]
movaps xmm13, xmmword [r11 - 0x88]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret