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

Disassembly:
mov rax, rsp
mov dword [rax + 0x20], r9d
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, 0x108
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
movaps xmmword [rsp + 0x70], xmm14
movaps xmmword [rsp + 0x60], xmm15
mov r12, rdx
xor edx, edx
mov rbx, r8
lea r8d, [rdx + 0x50]
movsxd r15, r9d
mov rsi, rcx
mov r13d, 0xffffff9d
mov dword [rsp + 0x30], 1
call sub.msvcrt.dll_memset
mov eax, dword [rbx]
mov dword [rsi + 0x40], eax
movd xmm0, dword [rbx]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x14009a0d4]
cvtps2pd xmm0, xmm0
call sub.msvcrt.dll_log
movsd xmm11, qword [0x140099e38]
movaps xmm6, xmm0
movaps xmm0, xmm11
call sub.msvcrt.dll_log
movsd xmm15, qword [0x140099e28]
divsd xmm6, xmm0
addsd xmm6, xmm15
movaps xmm0, xmm6
call sub.msvcrt.dll_floor
movd xmm6, dword [rsp + 0x170]
movss xmm14, dword [0x14009a070]
movd xmm9, r15d
subsd xmm0, qword [0x140099e30]
cvtdq2ps xmm6, xmm6
cvttsd2si edi, xmm0
cvtdq2pd xmm9, xmm9
movaps xmm0, xmm6
mulss xmm0, xmm14
mov dword [rsi + 0x3c], edi
cvtps2pd xmm0, xmm0
movsd qword [rsp + 0x40], xmm9
mulsd xmm0, xmm15
divsd xmm0, xmm9
call sub.msvcrt.dll_log
movd xmm2, dword [rbx]
movsd xmm13, qword [0x14009a0a8]
movsd xmm12, qword [0x14009a0c8]
lea ecx, [rdi + 1]
mov eax, 1
shl eax, cl
cvtdq2pd xmm2, xmm2
mulsd xmm0, xmm13
subsd xmm0, xmm12
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
subsd xmm0, xmm2
cvttsd2si ebx, xmm0
movd xmm0, r15d
cvtdq2ps xmm0, xmm0
mov dword [rsi + 0x38], ebx
addss xmm0, xmm14
mulss xmm0, xmm6
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm15
divsd xmm0, xmm9
call sub.msvcrt.dll_log
lea ecx, [rdi + 1]
mov eax, 1
shl eax, cl
mulsd xmm0, xmm13
subsd xmm0, xmm12
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
addsd xmm0, xmm15
mov rbp, r15
cvttsd2si eax, xmm0
sub eax, ebx
lea rbx, [r15*4]
inc eax
mov rcx, rbx
mov qword [rsp + 0x50], rbx
mov dword [rsi + 0x44], eax
call sub.msvcrt.dll_malloc
mov rcx, rbx
mov qword [rsi + 0x20], rax
call sub.msvcrt.dll_malloc
mov rcx, rbx
mov qword [rsi + 0x28], rax
call sub.msvcrt.dll_malloc
xor ebx, ebx
mov qword [rsi + 0x30], rax
mov eax, dword [rsp + 0x170]
mov qword [rsi + 8], r12
mov dword [rsi], r15d
mov dword [rsi + 0x4c], 0x3f800000
mov dword [rsi + 0x48], eax
cmp eax, 0x6590
jge 0x14004e834
mov dword [rsi + 0x4c], ebx
jmp 0x14004e852
cmp eax, 0x9470
jge 0x14004e844
mov dword [rsi + 0x4c], 0x3f70a3d7
jmp 0x14004e852
cmp eax, 0xb3b0
jle 0x14004e852
mov dword [rsi + 0x4c], 0x3fa33333
movsd xmm7, qword [0x14009a090]
movsd xmm8, qword [0x14009a0a0]
movsd xmm6, qword [0x1400993d0]
movd xmm10, eax
mov edi, ebx
mov r15d, 1
lea r12, [0x1400dfbb4]
lea r14, [0x1400dfd10]
cvtdq2pd xmm10, xmm10
movsd qword [rsp + 0x48], xmm10
movd xmm0, r15d
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm7
subsd xmm0, xmm11
addsd xmm0, xmm12
mulsd xmm0, xmm8
call sub.msvcrt.dll_exp
mulsd xmm0, xmm11
mulsd xmm0, xmm9
divsd xmm0, xmm10
addsd xmm0, xmm15
call sub.msvcrt.dll_floor
movss xmm2, dword [r12 - 4]
cvttsd2si ecx, xmm0
cmp edi, ecx
jge 0x14004ea08
movss xmm3, dword [r12]
mov eax, ecx
movsxd rdx, ecx
sub eax, edi
subss xmm3, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm3, xmm0
cmp rbx, rdx
jge 0x14004ea08
mov rax, rdx
sub rax, rbx
cmp rax, 4
jl 0x14004e9d7
lea rcx, [rbx + 2]
nop dword [rax + rax]
cmp rbx, rbp
jge 0x14004ea08
mov rax, qword [rsi + 0x20]
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
addss xmm2, xmm3
addsd xmm0, xmm6
cvtpd2ps xmm1, xmm0
movss dword [rax + rbx*4], xmm1
lea rax, [rcx - 1]
cmp rax, rbp
jge 0x14004ee64
mov rax, qword [rsi + 0x20]
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
addss xmm2, xmm3
addsd xmm0, xmm6
cvtpd2ps xmm1, xmm0
movss dword [rax + rbx*4 + 4], xmm1
cmp rcx, rbp
jge 0x14004ee58
mov rax, qword [rsi + 0x20]
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
addss xmm2, xmm3
addsd xmm0, xmm6
cvtpd2ps xmm1, xmm0
movss dword [rax + rbx*4 + 8], xmm1
lea rax, [rcx + 1]
cmp rax, rbp
jge 0x14004ee4c
mov rax, qword [rsi + 0x20]
xorps xmm0, xmm0
add rbx, 4
add edi, 4
add rcx, 4
cvtss2sd xmm0, xmm2
addss xmm2, xmm3
addsd xmm0, xmm6
cvtpd2ps xmm1, xmm0
movss dword [rax + rbx*4 - 4], xmm1
lea rax, [rdx - 3]
cmp rbx, rax
jl 0x14004e920
cmp rbx, rdx
jge 0x14004ea08
cmp rbx, rbp
jge 0x14004ea08
mov rax, qword [rsi + 0x20]
xorps xmm0, xmm0
inc rbx
inc edi
cvtss2sd xmm0, xmm2
addss xmm2, xmm3
addsd xmm0, xmm6
cvtpd2ps xmm1, xmm0
movss dword [rax + rbx*4 - 4], xmm1
cmp rbx, rdx
jl 0x14004e9dc
add r12, 4
inc r15d
cmp r12, r14
jl 0x14004e892
mov r15d, dword [rsp + 0x168]
mov r14d, dword [rsp + 0x30]
xor ebp, ebp
mov ebx, ebp
mov dword [rsp + 0x160], ebx
test r15d, r15d
jle 0x14004ecfc
mov eax, dword [rsp + 0x170]
movss xmm9, dword [0x14009a064]
movsd xmm10, qword [0x14009a010]
lea ecx, [r15 + r15]
cdq
mov edi, ebp
movss xmm11, dword [0x14009a06c]
movsd xmm12, qword [0x14009a018]
movss xmm13, dword [0x14009a068]
mov qword [rsp + 0x38], rbp
idiv ecx
mov ecx, ebp
mov dword [rsp + 0x170], ecx
mov r12d, eax
mov r15d, eax
imul r12d, eax
mov eax, ebp
mov dword [rsp + 0x30], eax
nop dword [rax]
nop dword [rax + rax]
movd xmm7, eax
mov eax, ecx
imul eax, ebx
movd xmm0, eax
cvtdq2ps xmm7, xmm7
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm9
cvtps2pd xmm0, xmm0
call sub.msvcrt.dll_atan
movaps xmm1, xmm7
mulss xmm1, xmm11
movaps xmm6, xmm0
mulsd xmm6, xmm10
cvtps2pd xmm0, xmm1
call sub.msvcrt.dll_atan
mov rcx, qword [rsp + 0x158]
mulss xmm7, xmm13
mov ebp, dword [rcx + 0x78]
mulsd xmm0, xmm12
xorps xmm14, xmm14
cvtps2pd xmm1, xmm7
add ebp, r13d
addsd xmm6, xmm0
addsd xmm6, xmm1
cvtsd2ss xmm14, xmm6
cmp ebp, ebx
jge 0x14004ebb7
mov esi, dword [rsp + 0x160]
movaps xmm8, xmm14
mov ebx, r15d
mov edi, r12d
imul ebx, r13d
subss xmm8, dword [rcx + 0x70]
imul edi, r13d
nop dword [rax + rax]
mov eax, edi
movd xmm7, ebx
imul eax, r13d
movd xmm0, eax
cvtdq2ps xmm7, xmm7
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm9
cvtps2pd xmm0, xmm0
call sub.msvcrt.dll_atan
movaps xmm1, xmm7
mulss xmm1, xmm11
movaps xmm6, xmm0
mulsd xmm6, xmm10
cvtps2pd xmm0, xmm1
call sub.msvcrt.dll_atan
mulss xmm7, xmm13
mulsd xmm0, xmm12
cvtps2pd xmm1, xmm7
addsd xmm6, xmm0
xorps xmm0, xmm0
addsd xmm6, xmm1
cvtss2sd xmm0, xmm8
comisd xmm0, xmm6
jbe 0x14004eb9b
inc ebp
inc r13d
add edi, r12d
add ebx, r15d
cmp ebp, esi
jl 0x14004eb30
mov rsi, qword [rsp + 0x150]
mov ebx, dword [rsp + 0x160]
mov rdi, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x158]
mov edx, dword [rsp + 0x168]
cmp r14d, edx
jg 0x14004ec73
mov ebp, dword [rcx + 0x7c]
mov edi, r12d
add ebp, ebx
mov ebx, r15d
imul ebx, r14d
imul edi, r14d
nop word [rax + rax]
cmp r14d, ebp
jl 0x14004ec55
mov eax, edi
movd xmm7, ebx
imul eax, r14d
movd xmm0, eax
cvtdq2ps xmm7, xmm7
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm9
cvtps2pd xmm0, xmm0
call sub.msvcrt.dll_atan
movaps xmm1, xmm7
mulss xmm1, xmm11
movaps xmm6, xmm0
mulsd xmm6, xmm10
cvtps2pd xmm0, xmm1
call sub.msvcrt.dll_atan
mov rcx, qword [rsp + 0x158]
mov edx, dword [rsp + 0x168]
mulss xmm7, xmm13
mulsd xmm0, xmm12
cvtps2pd xmm1, xmm7
addsd xmm6, xmm0
movaps xmm0, xmm14
addss xmm0, dword [rcx + 0x74]
addsd xmm6, xmm1
cvtss2sd xmm0, xmm0
comisd xmm0, xmm6
jbe 0x14004ec67
inc r14d
add edi, r12d
add ebx, r15d
cmp r14d, edx
jle 0x14004ebe0
mov ebx, dword [rsp + 0x160]
mov rdi, qword [rsp + 0x38]
mov rax, qword [rsi + 0x30]
inc ebx
add rdi, 4
mov ecx, r13d
mov dword [rsp + 0x160], ebx
mov qword [rsp + 0x38], rdi
shl ecx, 0x10
add ecx, 0xfffeffff
add ecx, r14d
mov dword [rdi + rax - 4], ecx
mov ecx, dword [rsp + 0x170]
mov eax, dword [rsp + 0x30]
add ecx, r12d
add eax, r15d
mov dword [rsp + 0x170], ecx
mov dword [rsp + 0x30], eax
cmp ebx, edx
jl 0x14004eaa0
movsd xmm9, qword [rsp + 0x40]
movsd xmm10, qword [rsp + 0x48]
movsd xmm11, qword [0x140099e38]
mov r15d, dword [rsp + 0x168]
xor ebp, ebp
movsd xmm12, qword [0x14009a0c8]
movsd xmm13, qword [0x14009a0a8]
movss xmm14, dword [0x14009a070]
mov ebx, ebp
test r15d, r15d
jle 0x14004ed71
mov rdi, rbp
nop word [rax + rax]
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
addss xmm0, xmm14
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm15
mulsd xmm0, xmm10
divsd xmm0, xmm9
call sub.msvcrt.dll_log
mov ecx, dword [rsi + 0x3c]
mov rax, qword [rsi + 0x28]
mulsd xmm0, xmm13
inc ecx
mov edx, 1
inc ebx
subsd xmm0, xmm12
shl edx, cl
add rdi, 4
movd xmm1, edx
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
addsd xmm0, xmm15
cvttsd2si ecx, xmm0
mov dword [rdi + rax - 4], ecx
cmp ebx, r15d
jl 0x14004ed10
mov rax, qword [rsp + 0x158]
movaps xmm0, xmm10
xorps xmm1, xmm1
mulsd xmm0, xmm15
mov r8d, r15d
lea rcx, [rax + 0x24]
divsd xmm0, xmm9
movss xmm3, dword [rax + 0x18]
cvtsd2ss xmm1, xmm0
movss xmm0, dword [rax + 0x1c]
movss dword [rsp + 0x20], xmm0
call fcn.140051060
mov ecx, 0x18
mov qword [rsi + 0x10], rax
call sub.msvcrt.dll_malloc
mov rdi, qword [rsp + 0x50]
mov qword [rsi + 0x18], rax
mov rbx, rbp
mov rcx, rdi
call sub.msvcrt.dll_malloc
mov rcx, qword [rsi + 0x18]
add rbx, 8
mov qword [rbx + rcx - 8], rax
cmp rbx, 0x18
jl 0x14004edc4
test r15d, r15d
jle 0x14004ef59
movss xmm6, dword [0x14009a0d8]
movsd xmm8, qword [0x140099e30]
mulsd xmm9, xmm11
mov rbx, rbp
xorps xmm7, xmm7
nop dword [rax]
nop dword [rax + rax]
movd xmm0, ebp
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm15
mulsd xmm0, xmm10
divsd xmm0, xmm9
call sub.msvcrt.dll_log
xorps xmm4, xmm4
mulsd xmm0, xmm13
subsd xmm0, xmm12
mulsd xmm0, xmm11
cvtsd2ss xmm4, xmm0
comiss xmm7, xmm4
jbe 0x14004ee6e
movaps xmm4, xmm7
jmp 0x14004ee76
add rbx, 3
add edi, 3
jmp 0x14004ea08
add rbx, 2
add edi, 2
jmp 0x14004ea08
inc rbx
inc edi
jmp 0x14004ea08
comiss xmm4, xmm6
jb 0x14004ee76
movaps xmm4, xmm6
cvttss2si eax, xmm4
xorps xmm2, xmm2
movaps xmm3, xmm8
inc ebp
add rbx, 4
movsxd rdx, eax
movd xmm0, eax
mov rax, qword [rsi + 8]
cvtdq2ps xmm0, xmm0
subss xmm4, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm4
subsd xmm3, xmm0
movss xmm0, dword [rax + rdx*4 + 0x84]
movaps xmm1, xmm4
mulss xmm1, dword [rax + rdx*4 + 0x88]
mov rax, qword [rsi + 0x18]
cvtss2sd xmm2, xmm1
cvtps2pd xmm0, xmm0
mov rcx, qword [rax]
mulsd xmm0, xmm3
addsd xmm2, xmm0
movaps xmm0, xmm4
cvtpd2ps xmm1, xmm2
xorps xmm2, xmm2
movss dword [rbx + rcx - 4], xmm1
mov rax, qword [rsi + 8]
mulss xmm0, dword [rax + rdx*4 + 0xcc]
movss xmm1, dword [rax + rdx*4 + 0xc8]
mov rax, qword [rsi + 0x18]
cvtps2pd xmm1, xmm1
cvtss2sd xmm2, xmm0
mov rcx, qword [rax + 8]
mulsd xmm1, xmm3
addsd xmm2, xmm1
xorps xmm1, xmm1
cvtpd2ps xmm0, xmm2
movss dword [rbx + rcx - 4], xmm0
mov rax, qword [rsi + 8]
movss xmm0, dword [rax + rdx*4 + 0x10c]
mulss xmm4, dword [rax + rdx*4 + 0x110]
mov rax, qword [rsi + 0x18]
cvtps2pd xmm0, xmm0
cvtss2sd xmm1, xmm4
mov rcx, qword [rax + 0x10]
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm1, xmm1
movss dword [rbx + rcx - 4], xmm1
cmp ebp, r15d
jl 0x14004ee10
movaps xmm14, xmmword [rsp + 0x70]
movaps xmm15, xmmword [rsp + 0x60]
lea r11, [rsp + 0x108]
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