Function at 0x140040e90
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 r14, rdx
xor edx, edx
mov rbx, r8
lea r8d, [rdx + 0x50]
movsxd r13, r9d
mov rsi, rcx
mov r15d, 0xffffff9d
mov dword [rsp + 0x30], 1
call sub.msvcrt.dll_memset
mov r11d, dword [rbx]
mov dword [rsi + 0x40], r11d
movd xmm0, dword [rbx]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x140084f14]
unpcklps xmm0, xmm0
cvtps2pd xmm0, xmm0
call sub.msvcrt.dll_log
movsd xmm11, qword [0x140084d00]
movapd xmm6, xmm0
movapd xmm0, xmm11
call sub.msvcrt.dll_log
movsd xmm15, qword [0x140084d68]
divsd xmm6, xmm0
addsd xmm6, xmm15
movapd xmm0, xmm6
call sub.msvcrt.dll_floor
movd xmm6, dword [rsp + 0x170]
movss xmm14, dword [0x140084f10]
movd xmm9, r13d
subsd xmm0, qword [0x140084cf8]
cvtdq2ps xmm6, xmm6
cvttsd2si edi, xmm0
cvtdq2pd xmm9, xmm9
movaps xmm0, xmm6
mulss xmm0, xmm14
unpcklps xmm0, xmm0
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 [0x140084ec0]
movsd xmm12, qword [0x140084ef0]
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, r13d
cvtdq2ps xmm0, xmm0
mov dword [rsi + 0x38], ebx
addss xmm0, xmm14
mulss xmm0, xmm6
unpcklps xmm0, xmm0
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
mov rbp, r13
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
addsd xmm0, xmm15
cvttsd2si eax, xmm0
sub eax, ebx
lea rbx, [r13*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], r14
mov dword [rsi], r13d
mov dword [rsi + 0x4c], 0x3f800000
mov dword [rsi + 0x48], eax
cmp eax, 0x6590
jge 0x1400410b2
mov dword [rsi + 0x4c], ebx
jmp 0x1400410d0
cmp eax, 0x9470
jge 0x1400410c2
mov dword [rsi + 0x4c], 0x3f70a3d7
jmp 0x1400410d0
cmp eax, 0xb3b0
jle 0x1400410d0
mov dword [rsi + 0x4c], 0x3fa33333
movsd xmm7, qword [0x140084ee0]
movsd xmm8, qword [0x140084ee8]
movsd xmm6, qword [0x140084390]
movd xmm10, eax
mov edi, ebx
mov r13d, 1
lea r14, [0x1400c7d34]
lea r12, [0x1400c7e90]
cvtdq2pd xmm10, xmm10
movsd qword [rsp + 0x48], xmm10
movd xmm0, r13d
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 [r14 - 4]
cvttsd2si ecx, xmm0
cmp edi, ecx
jge 0x140041277
movss xmm3, dword [r14]
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 0x140041277
mov rax, rdx
sub rax, rbx
cmp rax, 4
jl 0x140041247
lea rcx, [rbx + 2]
cmp rbx, rbp
jge 0x140041277
mov rax, qword [rsi + 0x20]
unpcklps xmm2, xmm2
cvtps2pd xmm0, xmm2
addss xmm2, xmm3
addsd xmm0, xmm6
cvtsd2ss xmm1, xmm0
movss dword [rax + rbx*4], xmm1
lea rax, [rcx - 1]
cmp rax, rbp
jge 0x1400416e1
mov rax, qword [rsi + 0x20]
unpcklps xmm2, xmm2
cvtps2pd xmm0, xmm2
addss xmm2, xmm3
addsd xmm0, xmm6
cvtsd2ss xmm1, xmm0
movss dword [rax + rbx*4 + 4], xmm1
cmp rcx, rbp
jge 0x1400416d5
mov rax, qword [rsi + 0x20]
unpcklps xmm2, xmm2
cvtps2pd xmm0, xmm2
addss xmm2, xmm3
addsd xmm0, xmm6
cvtsd2ss xmm1, xmm0
movss dword [rax + rbx*4 + 8], xmm1
lea rax, [rcx + 1]
cmp rax, rbp
jge 0x1400416c9
mov rax, qword [rsi + 0x20]
unpcklps xmm2, xmm2
add rbx, 4
add edi, 4
add rcx, 4
cvtps2pd xmm0, xmm2
addss xmm2, xmm3
addsd xmm0, xmm6
cvtsd2ss xmm1, xmm0
movss dword [rax + rbx*4 - 4], xmm1
lea rax, [rdx - 3]
cmp rbx, rax
jl 0x140041194
cmp rbx, rdx
jge 0x140041277
cmp rbx, rbp
jge 0x140041277
mov rax, qword [rsi + 0x20]
unpcklps xmm2, xmm2
inc rbx
inc edi
cvtps2pd xmm0, xmm2
addss xmm2, xmm3
addsd xmm0, xmm6
cvtsd2ss xmm1, xmm0
movss dword [rax + rbx*4 - 4], xmm1
cmp rbx, rdx
jl 0x14004124c
add r14, 4
inc r13d
cmp r14, r12
jl 0x140041110
mov r13d, dword [rsp + 0x168]
mov r12d, dword [rsp + 0x30]
xor ebp, ebp
mov ebx, ebp
mov dword [rsp + 0x160], ebx
test r13d, r13d
jle 0x14004157c
mov eax, dword [rsp + 0x170]
movss xmm9, dword [0x140084f0c]
movsd xmm10, qword [0x140084e20]
lea ecx, [r13 + r13]
cdq
mov edi, ebp
movss xmm11, dword [0x140084f08]
movsd xmm12, qword [0x140084e18]
movss xmm13, dword [0x140084f04]
mov qword [rsp + 0x38], rbp
idiv ecx
mov ecx, ebp
mov dword [rsp + 0x170], ecx
mov r14d, eax
mov r13d, eax
imul r14d, eax
mov eax, ebp
mov dword [rsp + 0x30], eax
nop word [rax + rax]
movd xmm7, eax
mov eax, ecx
imul eax, ebx
movd xmm0, eax
cvtdq2ps xmm7, xmm7
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm9
unpcklps xmm0, xmm0
cvtps2pd xmm0, xmm0
call sub.msvcrt.dll_atan
movaps xmm1, xmm7
mulss xmm1, xmm11
unpcklps xmm1, xmm1
movapd 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
unpcklps xmm7, xmm7
add ebp, r15d
cvtps2pd xmm1, xmm7
addsd xmm6, xmm0
addsd xmm6, xmm1
cvtsd2ss xmm14, xmm6
cmp ebp, ebx
jge 0x140041432
mov esi, dword [rsp + 0x160]
movaps xmm8, xmm14
mov ebx, r13d
mov edi, r14d
imul ebx, r15d
subss xmm8, dword [rcx + 0x70]
imul edi, r15d
mov eax, edi
movd xmm7, ebx
imul eax, r15d
movd xmm0, eax
cvtdq2ps xmm7, xmm7
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm9
unpcklps xmm0, xmm0
cvtps2pd xmm0, xmm0
call sub.msvcrt.dll_atan
movaps xmm1, xmm7
mulss xmm1, xmm11
unpcklps xmm1, xmm1
movapd xmm6, xmm0
mulsd xmm6, xmm10
cvtps2pd xmm0, xmm1
call sub.msvcrt.dll_atan
mulss xmm7, xmm13
unpcklps xmm8, xmm8
mulsd xmm0, xmm12
unpcklps xmm7, xmm7
cvtps2pd xmm1, xmm7
addsd xmm6, xmm0
cvtps2pd xmm0, xmm8
addsd xmm6, xmm1
comisd xmm0, xmm6
jbe 0x140041416
inc ebp
inc r15d
add edi, r14d
add ebx, r13d
cmp ebp, esi
jl 0x1400413a1
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 r12d, edx
jg 0x1400414f4
mov ebp, dword [rcx + 0x7c]
mov edi, r14d
add ebp, ebx
mov ebx, r13d
imul ebx, r12d
imul edi, r12d
cmp r12d, ebp
jl 0x1400414d6
mov eax, edi
movd xmm7, ebx
imul eax, r12d
movd xmm0, eax
cvtdq2ps xmm7, xmm7
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm9
unpcklps xmm0, xmm0
cvtps2pd xmm0, xmm0
call sub.msvcrt.dll_atan
movaps xmm1, xmm7
mulss xmm1, xmm11
unpcklps xmm1, xmm1
movapd 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
unpcklps xmm7, xmm7
cvtps2pd xmm1, xmm7
addsd xmm6, xmm0
movaps xmm0, xmm14
addss xmm0, dword [rcx + 0x74]
addsd xmm6, xmm1
unpcklps xmm0, xmm0
cvtps2pd xmm0, xmm0
comisd xmm0, xmm6
jbe 0x1400414e8
inc r12d
add edi, r14d
add ebx, r13d
cmp r12d, edx
jle 0x140041455
mov ebx, dword [rsp + 0x160]
mov rdi, qword [rsp + 0x38]
mov eax, r15d
inc ebx
add rdi, 4
shl eax, 0x10
mov dword [rsp + 0x160], ebx
mov qword [rsp + 0x38], rdi
lea ecx, [rax + r12 - 0x10001]
mov rax, qword [rsi + 0x30]
mov dword [rdi + rax - 4], ecx
mov ecx, dword [rsp + 0x170]
mov eax, dword [rsp + 0x30]
add ecx, r14d
add eax, r13d
mov dword [rsp + 0x170], ecx
mov dword [rsp + 0x30], eax
cmp ebx, edx
jl 0x140041310
movsd xmm9, qword [rsp + 0x40]
movsd xmm10, qword [rsp + 0x48]
movsd xmm11, qword [0x140084d00]
mov r13d, dword [rsp + 0x168]
xor ebp, ebp
movsd xmm12, qword [0x140084ef0]
movsd xmm13, qword [0x140084ec0]
movss xmm14, dword [0x140084f10]
mov ebx, ebp
test r13d, r13d
jle 0x1400415f4
mov rdi, rbp
nop word [rax + rax]
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
addss xmm0, xmm14
unpcklps xmm0, xmm0
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, r13d
jl 0x140041590
mov rax, qword [rsp + 0x158]
movapd xmm0, xmm10
mov r8d, r13d
lea rcx, [rax + 0x24]
mulsd xmm0, xmm15
divsd xmm0, xmm9
movss xmm3, dword [rax + 0x18]
cvtsd2ss xmm1, xmm0
movss xmm0, dword [rax + 0x1c]
movss dword [rsp + 0x20], xmm0
call fcn.14003fdd0
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 0x140041645
test r13d, r13d
jle 0x1400417d3
xorps xmm7, xmm7
movss xmm6, dword [0x140084f00]
movsd xmm8, qword [0x140084cf8]
mulsd xmm9, xmm11
mov rbx, rbp
nop word [rax + rax]
movd xmm0, ebp
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm15
mulsd xmm0, xmm10
divsd xmm0, xmm9
call sub.msvcrt.dll_log
mulsd xmm0, xmm13
subsd xmm0, xmm12
mulsd xmm0, xmm11
cvtsd2ss xmm4, xmm0
comiss xmm7, xmm4
jbe 0x1400416eb
movaps xmm4, xmm7
jmp 0x1400416f3
add rbx, 3
add edi, 3
jmp 0x140041277
add rbx, 2
add edi, 2
jmp 0x140041277
inc rbx
inc edi
jmp 0x140041277
comiss xmm4, xmm6
jb 0x1400416f3
movaps xmm4, xmm6
cvttss2si eax, xmm4
movapd xmm3, xmm8
inc ebp
add rbx, 4
movsxd rdx, eax
movd xmm0, eax
mov rax, qword [rsi + 8]
cvtdq2ps xmm0, xmm0
subss xmm4, xmm0
unpcklps xmm4, xmm4
cvtps2pd xmm0, xmm4
movaps xmm1, xmm4
subsd xmm3, xmm0
mulss xmm1, dword [rax + rdx*4 + 0x88]
movd xmm0, dword [rax + rdx*4 + 0x84]
mov rax, qword [rsi + 0x18]
cvtps2pd xmm0, xmm0
unpcklps xmm1, xmm1
mov rcx, qword [rax]
mulsd xmm0, xmm3
cvtps2pd xmm2, xmm1
addsd xmm2, xmm0
movaps xmm0, xmm4
cvtsd2ss xmm1, xmm2
movss dword [rbx + rcx - 4], xmm1
mov rax, qword [rsi + 8]
mulss xmm0, dword [rax + rdx*4 + 0xcc]
movd xmm1, dword [rax + rdx*4 + 0xc8]
mov rax, qword [rsi + 0x18]
unpcklps xmm0, xmm0
cvtps2pd xmm1, xmm1
mov rcx, qword [rax + 8]
mulsd xmm1, xmm3
cvtps2pd xmm2, xmm0
addsd xmm2, xmm1
cvtsd2ss xmm0, xmm2
movss dword [rbx + rcx - 4], xmm0
mov rax, qword [rsi + 8]
mulss xmm4, dword [rax + rdx*4 + 0x110]
movd xmm0, dword [rax + rdx*4 + 0x10c]
mov rax, qword [rsi + 0x18]
unpcklps xmm4, xmm4
cvtps2pd xmm0, xmm0
mov rcx, qword [rax + 0x10]
mulsd xmm0, xmm3
cvtps2pd xmm1, xmm4
addsd xmm1, xmm0
cvtsd2ss xmm1, xmm1
movss dword [rbx + rcx - 4], xmm1
cmp ebp, r13d
jl 0x140041690
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