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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x78
push esi
push edi
mov edi, dword [ebp + 0xc]
push edi
push 1
call fcn.00464df0
push edi
push 1
mov dword [esp + 0x1c], eax
call fcn.00464df0
mov esi, 1
mov dword [esp + 0x20], eax
add esp, 0x10
cmp edi, esi
jl 0x4650d1
movsd xmm0, qword [0x497c78]
lea eax, [edi*8]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + esi*4]
mov ecx, eax
xor eax, eax
shr ecx, 2
lea edi, [edx + 8]
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 0xc]
movsd qword [edx + esi*8], xmm0
inc esi
lea eax, [edi*8]
cmp esi, edi
jle 0x465061
mov eax, dword [esp + 0xc]
mov ecx, 1
mov esi, dword [ebp + 0x10]
xorps xmm7, xmm7
sub esi, eax
lea edx, [eax + 8]
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0xc]
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 8]
lea edx, [edx + 8]
mov eax, dword [eax + ecx*4]
movsd xmm0, qword [eax + ecx*8]
inc ecx
mov eax, dword [esp + 0x54]
movsd qword [esi + edx - 8], xmm0
movsd qword [edx - 8], xmm0
movsd qword [eax + edx - 8], xmm7
cmp ecx, edi
jle 0x4650a7
jmp 0x4650d4
xorps xmm7, xmm7
mov eax, dword [ebp + 0x18]
lea esi, [edi - 1]
movsd xmm5, qword [0x497cf0]
mov dword [esp + 0x30], 1
mov dword [esp + 0x68], esi
mov dword [eax], 0
movaps xmm6, xmm7
cmp esi, 1
jl 0x4658da
mov eax, dword [ebp + 8]
mov ecx, esi
add eax, 4
mov dword [esp + 0x28], 0x20
mov edx, 2
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x40], esi
mov esi, edx
cmp edx, edi
jg 0x4651bb
mov eax, dword [eax]
mov dword [esp + 0x54], eax
cmp ecx, 4
jl 0x46518f
add eax, dword [esp + 0x28]
mov ecx, edi
sub ecx, edx
sub ecx, 3
shr ecx, 2
inc ecx
lea esi, [edx + ecx*4]
nop dword [eax]
movsd xmm1, qword [eax - 0x10]
movsd xmm0, qword [eax - 8]
andps xmm1, xmm5
addsd xmm6, xmm1
andps xmm0, xmm5
addsd xmm6, xmm0
movsd xmm0, qword [eax]
andps xmm0, xmm5
addsd xmm6, xmm0
movsd xmm0, qword [eax + 8]
andps xmm0, xmm5
add eax, 0x20
addsd xmm6, xmm0
sub ecx, 1
jne 0x465150
cmp esi, edi
jg 0x4651b3
mov eax, dword [esp + 0x54]
mov ecx, edi
lea eax, [eax + esi*8]
sub ecx, esi
inc ecx
nop word [eax + eax]
movsd xmm0, qword [eax]
add eax, 8
andps xmm0, xmm5
addsd xmm6, xmm0
sub ecx, 1
jne 0x4651a0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
add dword [esp + 0x28], 8
dec ecx
add eax, 4
mov dword [esp + 0x24], ecx
inc edx
mov dword [esp + 0x20], eax
sub dword [esp + 0x40], 1
jne 0x465125
ucomisd xmm6, xmm7
lahf
test ah, 0x44
jnp 0x4658da
cmp dword [esp + 0x30], 4
jge 0x46520e
mulsd xmm6, qword [0x497c48]
mov eax, edi
imul eax, edi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm6, xmm0
movsd qword [esp + 0x70], xmm6
jmp 0x465217
movaps xmm6, xmm7
movsd qword [esp + 0x70], xmm7
mov eax, dword [ebp + 0x10]
mov ecx, 2
add eax, 8
mov dword [esp + 0x1c], 8
mov esi, eax
mov dword [esp + 0x54], eax
lea eax, [edi - 2]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x40], eax
mov eax, 8
sub eax, dword [esp + 0x10]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x10]
sub eax, dword [ebp + 0x10]
mov dword [esp + 0x20], esi
mov dword [esp + 0x50], eax
nop word [eax + eax]
mov edx, dword [esp + 0x2c]
add edx, 4
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x1c]
cmp ecx, edi
jg 0x465770
mov edx, dword [esp + 0x10]
inc ecx
mov esi, dword [esp + 0x58]
sub edi, dword [esp + 0x18]
add esi, eax
add esi, dword [esp + 0x20]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x34], 0x18
sub dword [esp + 0x34], edx
mov edx, 8
sub edx, dword [ebp + 0x10]
inc edi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x38], esi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x4c], edi
nop word [eax + eax]
cmp dword [esp + 0x30], 4
mov edi, dword [esp + 0x2c]
mov edi, dword [edi]
mov dword [esp + 0x48], edi
movsd xmm4, qword [esi + edi]
movaps xmm2, xmm4
movsd qword [esp + 0x78], xmm4
andps xmm2, xmm5
movaps xmm3, xmm2
mulsd xmm3, qword [0x497cb0]
jle 0x465347
mov eax, dword [esp + 0x20]
movsd xmm1, qword [eax]
andps xmm1, xmm5
movaps xmm0, xmm1
addsd xmm0, xmm3
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x465343
mov eax, dword [ebp + 0x10]
movsd xmm1, qword [esi + eax]
andps xmm1, xmm5
movaps xmm0, xmm1
addsd xmm0, xmm3
ucomisd xmm0, xmm1
lahf
test ah, 0x44
mov eax, dword [esp + 0x14]
jp 0x465347
movsd qword [esi + edi], xmm7
jmp 0x465733
mov eax, dword [esp + 0x14]
comisd xmm2, xmm6
jbe 0x465733
mov eax, dword [ebp + 0x10]
add eax, esi
mov dword [esp + 0x44], eax
movsd xmm2, qword [eax]
mov eax, dword [esp + 0x20]
subsd xmm2, qword [eax]
movaps xmm1, xmm2
andps xmm1, xmm5
movaps xmm0, xmm1
addsd xmm0, xmm3
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x465386
movaps xmm1, xmm4
divsd xmm1, xmm2
jmp 0x4653f1
mulsd xmm2, qword [0x497c60]
xorps xmm1, xmm1
divsd xmm2, xmm4
movaps xmm0, xmm2
movsd qword [esp + 0x60], xmm2
mulsd xmm0, xmm2
addsd xmm0, qword [0x497c78]
ucomisd xmm1, xmm0
ja 0x4653b6
sqrtsd xmm0, xmm0
jmp 0x4653bb
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
movsd xmm2, qword [esp + 0x60]
movaps xmm1, xmm2
andps xmm1, xmmword [0x497cf0]
addsd xmm0, xmm1
movsd xmm1, qword [0x497c78]
divsd xmm1, xmm0
xorps xmm0, xmm0
comisd xmm0, xmm2
movsd qword [esp + 0x60], xmm1
jbe 0x4653f7
xorps xmm1, xmmword [0x497d00]
movsd qword [esp + 0x60], xmm1
movaps xmm0, xmm1
mulsd xmm0, xmm1
xorps xmm1, xmm1
addsd xmm0, qword [0x497c78]
ucomisd xmm1, xmm0
ja 0x465415
sqrtsd xmm0, xmm0
jmp 0x46541a
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
movsd xmm1, qword [0x497c78]
divsd xmm1, xmm0
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x44]
movsd xmm0, qword [ecx + edx]
movaps xmm4, xmm1
mulsd xmm4, qword [esp + 0x60]
addsd xmm1, qword [0x497c78]
movaps xmm5, xmm4
movaps xmm6, xmm4
unpcklpd xmm6, xmm6
divsd xmm5, xmm1
movsd xmm1, qword [esp + 0x78]
mulsd xmm1, qword [esp + 0x60]
movaps xmm7, xmm5
unpcklpd xmm7, xmm7
subsd xmm0, xmm1
movsd qword [ecx + edx], xmm0
add ecx, eax
movaps xmm0, xmm1
mov dword [esp + 0x60], ecx
addsd xmm0, qword [ecx]
movsd qword [ecx], xmm0
mov ecx, 1
movsd xmm0, qword [edx]
subsd xmm0, xmm1
movsd qword [edx], xmm0
xorps xmm0, xmm0
addsd xmm1, qword [eax]
movsd qword [eax], xmm1
mov eax, dword [esp + 0x18]
movsd qword [esi + edi], xmm0
lea edx, [eax - 2]
cmp edx, ecx
jl 0x465503
mov edi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
movaps xmm1, xmm5
mov eax, dword [eax + ecx*4]
inc ecx
movsd xmm3, qword [edi + eax]
movsd xmm2, qword [esi + eax]
movaps xmm0, xmm3
mulsd xmm1, xmm3
addsd xmm1, xmm2
mulsd xmm1, xmm4
subsd xmm0, xmm1
movsd qword [edi + eax], xmm0
movaps xmm0, xmm5
mulsd xmm0, xmm2
subsd xmm3, xmm0
mulsd xmm3, xmm4
addsd xmm3, xmm2
movsd qword [esi + eax], xmm3
cmp ecx, edx
jle 0x4654b3
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x18]
mov ecx, eax
mov eax, dword [esp + 0x28]
lea edx, [eax - 2]
cmp dword [esp + 0x18], edx
jg 0x46555e
movsd xmm3, qword [edi + ecx*8]
movaps xmm1, xmm5
mov eax, dword [ebp + 8]
movaps xmm0, xmm3
mulsd xmm1, xmm3
mov eax, dword [eax + ecx*4]
movsd xmm2, qword [eax + esi]
addsd xmm1, xmm2
mulsd xmm1, xmm4
subsd xmm0, xmm1
movsd qword [edi + ecx*8], xmm0
movaps xmm0, xmm5
mulsd xmm0, xmm2
inc ecx
subsd xmm3, xmm0
mulsd xmm3, xmm4
addsd xmm3, xmm2
movsd qword [eax + esi], xmm3
cmp ecx, edx
jle 0x465512
mov eax, dword [esp + 0x28]
mov ecx, dword [ebp + 0xc]
mov edx, eax
cmp eax, ecx
jg 0x465662
cmp dword [esp + 0x14], 4
jb 0x465666
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x44]
add eax, dword [esp + 0x5c]
mov esi, dword [edi]
lea edi, [esi + ecx*8]
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x48]
lea ecx, [eax + edi]
add eax, esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x48], ecx
mov ecx, dword [ebp + 0xc]
lea ecx, [edi + ecx*8]
cmp eax, ecx
ja 0x4655b4
mov eax, dword [esp + 0x48]
cmp dword [esp + 0x44], eax
jae 0x465666
mov eax, dword [esp + 0x14]
and eax, 0x80000003
jns 0x4655c4
dec eax
or eax, 0xfffffffc
inc eax
mov ecx, dword [ebp + 0xc]
mov esi, dword [esp + 0x24]
sub ecx, eax
mov eax, dword [esp + 0x60]
add eax, dword [esp + 0x34]
mov dword [esp + 0x48], ecx
mov ecx, edi
add eax, dword [esi]
sub ecx, dword [esi]
mov esi, dword [esp + 0x38]
movups xmm3, xmmword [edi + edx*8]
movups xmm2, xmmword [eax - 0x10]
movaps xmm0, xmm7
movaps xmm1, xmm3
mulpd xmm0, xmm3
addpd xmm0, xmm2
mulpd xmm0, xmm6
subpd xmm1, xmm0
movaps xmm0, xmm7
mulpd xmm0, xmm2
movups xmmword [edi + edx*8], xmm1
add edx, 4
subpd xmm3, xmm0
movaps xmm0, xmm7
mulpd xmm3, xmm6
addpd xmm3, xmm2
movups xmmword [eax - 0x10], xmm3
movups xmm3, xmmword [ecx + eax]
movups xmm2, xmmword [eax]
mulpd xmm0, xmm3
movaps xmm1, xmm3
addpd xmm0, xmm2
mulpd xmm0, xmm6
subpd xmm1, xmm0
movaps xmm0, xmm7
mulpd xmm0, xmm2
movups xmmword [ecx + eax], xmm1
subpd xmm3, xmm0
mulpd xmm3, xmm6
addpd xmm3, xmm2
movups xmmword [eax], xmm3
add eax, 0x20
cmp edx, dword [esp + 0x48]
jle 0x4655e3
mov ecx, dword [ebp + 0xc]
cmp edx, ecx
jg 0x4656c3
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
sub edi, eax
lea ecx, [eax + edx*8]
mov eax, dword [ebp + 0xc]
sub eax, edx
inc eax
nop word [eax + eax]
movsd xmm3, qword [ecx + edi]
movaps xmm1, xmm5
movsd xmm2, qword [ecx]
movaps xmm0, xmm3
mulsd xmm1, xmm3
addsd xmm1, xmm2
mulsd xmm1, xmm4
subsd xmm0, xmm1
movsd qword [ecx + edi], xmm0
movaps xmm0, xmm5
mulsd xmm0, xmm2
subsd xmm3, xmm0
mulsd xmm3, xmm4
addsd xmm3, xmm2
movsd qword [ecx], xmm3
add ecx, 8
sub eax, 1
jne 0x465680
mov edi, dword [ebp + 0xc]
mov ecx, 1
mov edx, dword [esp + 0x1c]
cmp edi, ecx
jl 0x46571b
mov eax, dword [ebp + 0x14]
movaps xmm1, xmm5
mov eax, dword [eax + ecx*4]
inc ecx
movsd xmm3, qword [edx + eax]
movsd xmm2, qword [esi + eax]
movaps xmm0, xmm3
mulsd xmm1, xmm3
addsd xmm1, xmm2
mulsd xmm1, xmm4
subsd xmm0, xmm1
movsd qword [edx + eax], xmm0
movaps xmm0, xmm5
mulsd xmm0, xmm2
subsd xmm3, xmm0
mulsd xmm3, xmm4
addsd xmm3, xmm2
movsd qword [esi + eax], xmm3
cmp ecx, edi
jle 0x4656d3
mov eax, dword [ebp + 0x18]
xorps xmm7, xmm7
movsd xmm5, qword [0x497cf0]
mov ecx, dword [esp + 0x28]
inc dword [eax]
mov eax, dword [esp + 0x14]
add dword [esp + 0x24], 4
inc ecx
movsd xmm6, qword [esp + 0x70]
dec eax
add esi, 8
mov dword [esp + 0x28], ecx
sub dword [esp + 0x4c], 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], esi
jne 0x4652d0
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x18]
jmp 0x465778
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x68]
inc ecx
dec dword [esp + 0x40]
add edx, 8
movsd xmm6, qword [esp + 0x70]
add esi, 8
cmp dword [esp + 0x6c], edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], esi
jle 0x465260
mov ecx, 1
cmp edi, ecx
jl 0x46589f
cmp edi, 2
jb 0x465851
mov eax, dword [esp + 0x10]
lea esi, [eax + edi*8]
mov dword [esp + 0x6c], esi
lea edx, [eax + 8]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x60], edx
lea eax, [esi + 8]
lea esi, [esi + edi*8]
cmp edx, esi
mov esi, dword [esp + 0x6c]
ja 0x4657e4
cmp esi, eax
jae 0x465851
mov edx, dword [ebp + 0x10]
lea edx, [edx + edi*8]
cmp dword [esp + 0x60], edx
ja 0x4657f6
cmp esi, dword [esp + 0x54]
jae 0x465851
cmp eax, edx
ja 0x465807
mov esi, dword [esp + 0xc]
lea edx, [esi + edi*8]
cmp edx, dword [esp + 0x54]
jae 0x465851
mov edx, dword [ebp + 0x10]
mov esi, edi
sub edx, dword [esp + 0xc]
and esi, 0xfffffffe
mov dword [esp + 0x6c], edx
xorps xmm2, xmm2
mov edx, dword [esp + 0x10]
sub edx, dword [esp + 0xc]
mov edi, dword [esp + 0x6c]
movups xmm1, xmmword [edx + eax]
add ecx, 2
movups xmm0, xmmword [eax]
movups xmmword [edx + eax], xmm2
addpd xmm1, xmm0
movups xmmword [eax], xmm1
movups xmmword [edi + eax], xmm1
add eax, 0x10
cmp ecx, esi
jle 0x465826
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x6c], ecx
cmp ecx, edi
jg 0x46589f
mov edx, dword [ebp + 0x10]
sub edx, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
sub esi, dword [esp + 0xc]
mov dword [esp + 0x6c], edx
mov edx, edi
sub edx, ecx
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x6c]
inc edx
nop dword [eax]
nop dword [eax + eax]
movsd xmm0, qword [esi + eax]
addsd xmm0, qword [eax]
movsd qword [eax], xmm0
movsd qword [ecx + eax], xmm0
movsd qword [esi + eax], xmm7
add eax, 8
sub edx, 1
jne 0x465880
mov eax, dword [esp + 0x30]
lea esi, [edi - 1]
inc eax
mov dword [esp + 0x30], eax
cmp eax, 0x32
jle 0x4650f4
push edi
push 1
push dword [esp + 0x18]
call fcn.00464e80
push edi
push 1
push dword [esp + 0x20]
call fcn.00464e80
add esp, 0x18
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push edi
push 1
push dword [esp + 0x18]
call fcn.00464e80
push edi
push 1
push dword [esp + 0x20]
call fcn.00464e80
add esp, 0x18
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret