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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 0x18]
push edi
mov edi, ecx
test eax, eax
jle 0x5e924a
mov edx, dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
xorps xmm0, xmm0
movss xmm1, dword [ebp + 0x10]
movss xmm2, dword [ebp + 0xc]
movss xmm3, dword [ebp + 8]
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 4], edx
cmp byte [ebp + 0x34], 0
movss dword [edi + 0x34], xmm3
movss dword [edi + 0x38], xmm2
movss dword [edi + 0x3c], xmm1
je 0x5e9023
mov eax, dword [edi + 0x10]
mov dword [ebx + eax], 0xbf800000
mov eax, dword [ebp + 0x18]
mov ecx, dword [edi + 0x14]
xor esi, esi
test ecx, ecx
jle 0x5e9239
mov eax, dword [edi + 0x10]
comiss xmm0, dword [eax]
jae 0x5e9045
inc esi
add eax, 0x74
cmp esi, ecx
jl 0x5e9033
jmp 0x5e9236
cmp esi, 0xffffffff
je 0x5e9236
call edx
imul edx, esi, 0x74
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [edi + 0x10]
divss xmm0, dword [0x710ccc]
mulss xmm0, dword [edi + 0x30]
movss dword [edx + eax], xmm0
mov ecx, dword [edi + 0x10]
movq xmm0, qword [edi + 0x34]
movq qword [ecx + edx + 4], xmm0
mov eax, dword [edi + 0x3c]
mov dword [ecx + edx + 0xc], eax
mov ecx, dword [edi + 0x10]
movq xmm0, qword [edi + 0x34]
movq qword [ecx + edx + 0x10], xmm0
mov eax, dword [edi + 0x3c]
mov dword [ecx + edx + 0x18], eax
mov ecx, dword [edi + 0x10]
mov eax, dword [ebp + 0x14]
neg eax
mov dword [ecx + edx + 0x1c], 0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx + edx + 0x20], xmm0
mov dword [ecx + edx + 0x24], 0
mov ecx, dword [edi + 0x10]
movq xmm0, qword [edi + 0x5c]
movq qword [ecx + edx + 0x44], xmm0
mov eax, dword [edi + 0x64]
mov dword [ecx + edx + 0x4c], eax
movss xmm0, dword [edi + 0x68]
subss xmm0, dword [edi + 0x5c]
movss xmm4, dword [edi + 0x6c]
movss xmm2, dword [edi + 0x60]
movss xmm3, dword [edi + 0x70]
subss xmm4, xmm2
movss xmm1, dword [edi + 0x64]
mov eax, dword [edi + 0x10]
subss xmm3, xmm1
movss dword [eax + edx + 0x50], xmm0
movss dword [eax + edx + 0x54], xmm4
movss dword [eax + edx + 0x58], xmm3
mov eax, dword [edi + 0x10]
movss xmm5, dword [0x70196c]
movaps xmm1, xmm5
divss xmm1, dword [eax + edx]
movaps xmm0, xmm1
mulss xmm0, dword [eax + edx + 0x50]
movss dword [eax + edx + 0x50], xmm0
movaps xmm0, xmm1
mulss xmm0, dword [eax + edx + 0x54]
mulss xmm1, dword [eax + edx + 0x58]
movss dword [eax + edx + 0x54], xmm0
movss dword [eax + edx + 0x58], xmm1
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 0x78]
mov dword [ecx + edx + 0x5c], eax
movss xmm0, dword [edi + 0x7c]
subss xmm0, dword [edi + 0x78]
mov eax, dword [edi + 0x10]
divss xmm0, dword [eax + edx]
movss dword [eax + edx + 0x60], xmm0
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 0x74]
mov dword [ecx + edx + 0x64], eax
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 0x58]
mov dword [ecx + edx + 0x40], eax
mov ecx, dword [edi + 0x10]
movq xmm0, qword [edi + 0x40]
movq qword [ecx + edx + 0x28], xmm0
mov eax, dword [edi + 0x48]
mov dword [ecx + edx + 0x30], eax
movss xmm0, dword [edi + 0x4c]
movss xmm4, dword [edi + 0x50]
movss xmm2, dword [edi + 0x44]
movss xmm3, dword [edi + 0x54]
movss xmm1, dword [edi + 0x48]
mov eax, dword [edi + 0x10]
subss xmm0, dword [edi + 0x40]
movss dword [eax + edx + 0x34], xmm0
subss xmm3, xmm1
subss xmm4, xmm2
movaps xmm1, xmm5
movss xmm2, dword [ebp + 0xc]
movss dword [eax + edx + 0x38], xmm4
movss dword [eax + edx + 0x3c], xmm3
mov eax, dword [edi + 0x10]
movss xmm3, dword [ebp + 8]
divss xmm1, dword [eax + edx]
movaps xmm0, xmm1
mulss xmm0, dword [eax + edx + 0x34]
movss dword [eax + edx + 0x34], xmm0
movaps xmm0, xmm1
mulss xmm0, dword [eax + edx + 0x38]
mulss xmm1, dword [eax + edx + 0x3c]
movss dword [eax + edx + 0x38], xmm0
xorps xmm0, xmm0
movss dword [eax + edx + 0x3c], xmm1
mov eax, dword [edi + 0x10]
movss xmm1, dword [ebp + 0x10]
mov dword [eax + edx + 0x50], 0
mov dword [eax + edx + 0x54], 0
mov dword [eax + edx + 0x58], 0
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 0x18]
add ebx, 0x74
sub eax, 1
mov dword [ebp + 0x18], eax
jne 0x5e9001
pop esi
pop ebx
pop edi
mov esp, ebp
pop ebp
ret 0x30