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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5eaad0
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x98
mov eax, dword [0x64e2c0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
mov edi, dword [ebx + 8]
mov dword [ebp - 0x64], eax
mov eax, dword [ecx]
mov dword [ebp - 0x68], ecx
mov eax, dword [eax + 0x10]
call eax
mov edx, dword [edi]
mov esi, eax
mov ecx, edi
mov dword [ebp - 0x74], esi
mov edx, dword [edx + 0xa4]
call edx
movss xmm0, dword [0x5eeb5c]
movss dword [ebp - 0x80], xmm0
cmp eax, 1
jne 0x593f09
movss xmm1, dword [0x5eeaf4]
movss dword [ebp - 0x78], xmm1
jmp 0x593f19
xorps xmm0, xmm0
movss dword [ebp - 0x78], xmm0
movss xmm0, dword [0x5eeaf4]
mov eax, dword [edi]
mov ecx, edi
movss dword [ebp - 0x6c], xmm0
mov eax, dword [eax + 0xac]
call eax
cmp eax, 1
jne 0x593f3e
movss xmm0, dword [0x5eeaf4]
movss dword [ebp - 0x7c], xmm0
jmp 0x593f53
xorps xmm0, xmm0
movss dword [ebp - 0x7c], xmm0
movss xmm0, dword [0x5eeaf4]
movss dword [ebp - 0x80], xmm0
movss xmm0, dword [ebp - 0x78]
movss dword [esi + 0x2110], xmm0
movss xmm0, dword [ebp - 0x6c]
movss dword [esi + 0x2114], xmm0
mov dword [ebp - 0x84], 0
movaps xmm0, xmmword [0x5f8cf0]
mov ecx, edi
mov dword [ebp - 4], 0
movups xmmword [ebp - 0xa8], xmm0
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x94], 0
call fcn.00431d50
lea ecx, [ebp - 0xa8]
push ecx
lea ecx, [ebp - 0x84]
push ecx
mov ecx, eax
call fcn.00585b30
mov ecx, dword [ebp - 0x68]
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
mov esi, eax
mov dword [ebp - 0x68], 0
lea eax, [ebp - 0x68]
mov dword [ebp - 0x70], 0
mov eax, dword [eax]
lea ecx, [ebp - 0x70]
cmp eax, dword [ecx]
jne 0x593fee
xorps xmm0, xmm0
movups xmmword [esi + 0x110], xmm0
jmp 0x594016
mov dword [esi + 0x110], 0
mov dword [esi + 0x114], 0
mov dword [esi + 0x118], 0
mov dword [esi + 0x11c], 0
mov ecx, edi
call fcn.00431d50
cmp byte [eax + 0x154], 0
je 0x594030
movss xmm0, dword [0x5eeaf4]
jmp 0x594033
xorps xmm0, xmm0
mov ecx, dword [ebp - 0x64]
movss dword [esi + 0x110], xmm0
mov eax, dword [ecx + 0x28]
cmp dword [eax], 7
jne 0x5940e2
mov eax, dword [edi]
lea ecx, [ebp - 0x90]
push ecx
mov ecx, edi
mov eax, dword [eax + 0x24]
call eax
push eax
lea ecx, [ebp - 0x30]
call fcn.0052f950
movaps xmm3, xmmword [ebp - 0x30]
movaps xmm2, xmm3
mov eax, dword [ebp - 0x74]
mulps xmm2, xmm3
movaps xmm0, xmm2
movaps xmm1, xmm2
shufps xmm0, xmm2, 0x55
shufps xmm1, xmm2, 0xaa
addss xmm1, xmm0
xorps xmm0, xmm0
addss xmm1, xmm2
movss xmm0, xmm1
movss dword [ebp - 0x70], xmm1
rsqrtss xmm0, xmm0
shufps xmm0, xmm0, 0
mulps xmm3, xmm0
movss dword [eax + 0x20e0], xmm3
movaps xmm1, xmm3
shufps xmm1, xmm3, 0x55
movaps xmm0, xmm3
movss dword [eax + 0x20e4], xmm1
shufps xmm0, xmm3, 0xaa
movss dword [eax + 0x20e8], xmm0
mov dword [eax + 0x20ec], 0x3f800000
movss dword [esi], xmm3
movss dword [esi + 4], xmm1
movss dword [esi + 8], xmm0
mov dword [esi + 0xc], 0x3f800000
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x2c]
call eax
movss xmm1, dword [0x5eeb48]
mov edx, dword [ebp - 0x74]
mov ecx, dword [eax]
movzx eax, cl
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
divss xmm0, xmm1
movss dword [edx + 0x20f0], xmm0
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
shr eax, 0x10
movzx eax, al
shr ecx, 0x18
divss xmm0, xmm1
movss dword [edx + 0x20f4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [edi]
mov eax, dword [eax + 0x2c]
divss xmm0, xmm1
movss dword [edx + 0x20f8], xmm0
movd xmm0, ecx
mov ecx, edi
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [edx + 0x20fc], xmm0
call eax
movss xmm1, dword [0x5eeb48]
mov ecx, dword [eax]
movzx eax, cl
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
divss xmm0, xmm1
movss dword [ebp - 0x30], xmm0
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
shr eax, 0x10
movzx eax, al
shr ecx, 0x18
divss xmm0, xmm1
movss dword [ebp - 0x2c], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [ebp - 0x28], xmm0
movd xmm0, ecx
mov ecx, edi
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [ebp - 0x24], xmm0
movups xmm0, xmmword [ebp - 0x30]
movups xmmword [esi + 0x10], xmm0
mov eax, dword [edi]
mov eax, dword [eax + 0x34]
call eax
movss xmm1, dword [0x5eeb48]
mov edx, dword [ebp - 0x74]
mov ecx, dword [eax]
movzx eax, cl
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
divss xmm0, xmm1
movss dword [edx + 0x2100], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
mov eax, ecx
movss dword [edx + 0x2104], xmm0
shr eax, 0x10
movzx eax, al
shr ecx, 0x18
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [edi]
mov eax, dword [eax + 0x34]
divss xmm0, xmm1
movss dword [edx + 0x2108], xmm0
movd xmm0, ecx
mov ecx, edi
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [edx + 0x210c], xmm0
call eax
movss xmm1, dword [0x5eeb48]
mov edx, dword [ebp - 0x64]
mov ecx, dword [eax]
movzx eax, cl
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
divss xmm0, xmm1
movss dword [ebp - 0x30], xmm0
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
shr eax, 0x10
movzx eax, al
shr ecx, 0x18
divss xmm0, xmm1
movss dword [ebp - 0x2c], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [ebp - 0x28], xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [ebp - 0x24], xmm0
movups xmm0, xmmword [ebp - 0x30]
movups xmmword [esi + 0x20], xmm0
mov eax, dword [edx + 0x28]
mov eax, dword [eax + 0xa0]
mov dword [esi + 0xa0], eax
mov ecx, dword [edx + 0x28]
movzx eax, byte [ecx + 0x70]
movd xmm1, dword [ecx + 0x78]
lea ecx, [ebp - 0x90]
cvtdq2ps xmm1, xmm1
push ecx
mov ecx, edi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x34], xmm1
movss dword [esi + 0x30], xmm0
mov eax, dword [edx + 0x28]
movss xmm0, dword [eax + 0x94]
movss xmm1, dword [eax + 0x9c]
movss dword [esi + 0x40], xmm0
movss xmm0, dword [ebp - 0x78]
movss dword [esi + 0x48], xmm0
movss xmm0, dword [ebp - 0x6c]
movss dword [esi + 0x4c], xmm0
movss dword [esi + 0x44], xmm1
mov eax, dword [edx + 0x28]
movd xmm0, dword [eax + 0x98]
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x50], xmm0
mov eax, dword [edi]
call dword [eax + 0x54]
mov eax, dword [ebp - 0x64]
cmp byte [eax + 0x1c], 0
jne 0x594368
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x90]
call fcn.0050d810
movq xmm0, qword [eax]
movq qword [ebp - 0x90], xmm0
mov eax, dword [eax + 8]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x64]
movss xmm0, dword [0x5eebf0]
movss xmm2, dword [ebp - 0x8c]
movss xmm1, dword [ebp - 0x88]
xorps xmm2, xmm0
movss xmm3, dword [ebp - 0x90]
xorps xmm1, xmm0
xorps xmm3, xmm0
movss dword [esi + 0x68], xmm1
movss dword [esi + 0x60], xmm3
movss dword [esi + 0x64], xmm2
mov dword [esi + 0x6c], 0
mov edx, dword [eax + 0x38]
mov ecx, dword [eax + 0x34]
movd xmm1, dword [eax + 0x30]
movss xmm2, dword [eax + 0x3c]
movzx eax, byte [eax + 0x2c]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, cl
movss dword [esi + 0x74], xmm1
movss dword [esi + 0x70], xmm0
movss xmm1, dword [0x5eeb48]
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
movss dword [esi + 0x78], xmm2
divss xmm0, xmm1
movss dword [esi + 0x80], xmm0
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
shr eax, 0x10
movzx eax, al
shr ecx, 0x18
divss xmm0, xmm1
movss dword [esi + 0x84], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, dl
divss xmm0, xmm1
movss dword [esi + 0x88], xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mov ecx, dword [ebp - 0x64]
divss xmm0, xmm1
movss dword [esi + 0x8c], xmm0
movd xmm0, eax
mov eax, edx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
divss xmm0, xmm1
movss dword [esi + 0x90], xmm0
movd xmm0, eax
mov eax, edx
cvtdq2ps xmm0, xmm0
shr eax, 0x10
movzx eax, al
shr edx, 0x18
divss xmm0, xmm1
movss dword [esi + 0x94], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [esi + 0x98], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [esi + 0x9c], xmm0
mov ecx, dword [ecx + 0x28]
movss xmm0, dword [ecx + 0xac]
movzx eax, byte [ecx + 0xab]
push eax
movzx eax, byte [ecx + 0xaa]
movss dword [ebp - 0x68], xmm0
movss xmm0, dword [ecx + 0xa4]
movss dword [ebp - 0x70], xmm0
push eax
movzx eax, byte [ecx + 0xa9]
push eax
movzx eax, byte [ecx + 0xa8]
lea ecx, [ebp - 0x6c]
push eax
call fcn.005402a0
movss xmm1, dword [0x5eeb48]
mov ecx, dword [eax]
movzx eax, cl
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
divss xmm0, xmm1
movss dword [esi + 0xb0], xmm0
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
shr eax, 0x10
movzx eax, al
shr ecx, 0x18
divss xmm0, xmm1
movss dword [esi + 0xb4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [esi + 0xb8], xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mov ecx, dword [ebp - 0x64]
divss xmm0, xmm1
movss dword [esi + 0xbc], xmm0
movss xmm0, dword [ebp - 0x70]
movss dword [esi + 0xc0], xmm0
movss xmm0, dword [ebp - 0x68]
movss dword [esi + 0xc4], xmm0
mov eax, dword [ecx + 0x28]
movss xmm0, dword [ebp - 0x9c]
movss xmm1, dword [ecx + 0x20]
movss xmm5, dword [ebp - 0xa8]
movss xmm2, dword [eax + 0xb4]
movss xmm3, dword [eax + 0xb8]
movss xmm4, dword [eax + 0xbc]
movss xmm6, dword [ebp - 0xa4]
movss xmm7, dword [ebp - 0xa0]
movss dword [ebp - 0x70], xmm0
movss xmm0, dword [ebp - 0x98]
movss dword [ebp - 0x68], xmm0
movss xmm0, dword [ebp - 0x94]
movss dword [ebp - 0x6c], xmm0
movaps xmm0, xmm2
mulss xmm0, xmm1
movss dword [esi + 0xd0], xmm0
movaps xmm0, xmm3
mulss xmm0, xmm1
movss dword [esi + 0xd4], xmm0
movaps xmm0, xmm4
mulss xmm0, xmm1
movss dword [esi + 0xd8], xmm0
xorps xmm0, xmm0
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jp 0x59461b
ucomiss xmm3, xmm0
lahf
test ah, 0x44
jp 0x59461b
ucomiss xmm4, xmm0
lahf
test ah, 0x44
jnp 0x594623
movss xmm0, dword [0x5eeaf4]
movss dword [esi + 0xdc], xmm0
lea ecx, [ebp - 0x60]
movss xmm0, dword [ebp - 0x70]
movss dword [esi + 0xf4], xmm0
movss xmm0, dword [ebp - 0x68]
movss dword [esi + 0xf8], xmm0
movss xmm0, dword [ebp - 0x6c]
movss dword [esi + 0xfc], xmm0
movss xmm0, dword [ebp - 0x7c]
movss dword [esi + 0xe0], xmm5
movss dword [esi + 0xe4], xmm6
movss dword [esi + 0xf0], xmm7
movss dword [esi + 0x100], xmm0
movss xmm0, dword [ebp - 0x80]
movss dword [esi + 0x104], xmm0
mov eax, dword [edi]
push ecx
mov ecx, edi
mov eax, dword [eax + 0x50]
call eax
mov edx, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x64]
movups xmm0, xmmword [eax]
movups xmmword [edx], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [edx + 0x10], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [edx + 0x20], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [edx + 0x30], xmm0
mov ecx, dword [ecx + 0x28]
movzx eax, byte [ecx + 0x70]
movups xmm1, xmmword [ecx + 0x84]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movups xmmword [ebp - 0x30], xmm1
movss dword [ebp - 0x40], xmm0
movd xmm0, dword [ecx + 0x74]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x3c], xmm0
movd xmm0, dword [ecx + 0x7c]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x38], xmm0
movd xmm0, dword [ecx + 0x80]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x34], xmm0
movups xmm0, xmmword [ebp - 0x40]
movups xmmword [edx + 0x1940], xmm0
movups xmm0, xmmword [ebp - 0x30]
movups xmmword [edx + 0x1950], xmm0
mov ecx, dword [ebp - 0x84]
mov dword [ebp - 4], 1
test ecx, ecx
je 0x594729
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.005b26e6
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc