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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6f7864
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x14
push esi
push edi
mov eax, dword [0x766480]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [edi + 0x44]
xor ecx, ecx
add esi, esi
mov edx, 0x34
mov eax, esi
mov dword [ebp - 0x24], esi
mul edx
mov dword [ebp - 0x18], esi
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.006dff04
add esp, 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x60b52c
push fcn.00480f00
push 0x6091b0
push dword [ebp - 0x24]
mov dword [eax], esi
lea esi, [eax + 4]
push 0x34
push esi
mov dword [ebp - 0x20], esi
call fcn.006dff12
jmp 0x60b533
mov dword [ebp - 0x20], 0
mov eax, dword [ebx + 0xc]
mov dword [ebp - 4], 0xffffffff
cmp eax, 2
jne 0x60b877
movd xmm0, dword [edi + 0x70]
mov eax, dword [edi + 0x38]
mov ecx, dword [edi + 0x1c]
mov esi, dword [ebx + 8]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax]
addss xmm0, xmm0
mulss xmm0, dword [eax + 0x18]
addss xmm0, dword [eax + 4]
mov eax, dword [ecx + esi*4]
movss dword [eax], xmm0
movd xmm0, dword [edi + 0x70]
mov eax, dword [edi + 0x38]
mov ecx, dword [edi + 0x1c]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax]
addss xmm0, xmm0
mulss xmm0, dword [eax + 0x1c]
addss xmm0, dword [eax + 8]
mov eax, dword [ecx + esi*4]
movss dword [eax + 4], xmm0
movd xmm0, dword [edi + 0x70]
mov eax, dword [edi + 0x38]
mov ecx, dword [edi + 0x1c]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax]
addss xmm0, xmm0
mulss xmm0, dword [eax + 0x20]
addss xmm0, dword [eax + 0xc]
mov eax, dword [ecx + esi*4]
movss dword [eax + 8], xmm0
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi*4]
mov dword [eax + 0x10], 0
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0xa0]
mov ecx, dword [ecx + esi*4]
mov dword [ecx + 0x14], eax
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi*4]
mov dword [eax + 0xc], 0x78ffffff
mov eax, dword [edi + 0x38]
movd xmm0, dword [edi + 0x70]
mov ecx, dword [edi + 0x1c]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax]
movss xmm1, dword [eax + 0x38]
mulss xmm0, dword [eax + 0x18]
mov eax, dword [ecx + esi*4]
subss xmm1, xmm0
movss dword [eax + 0x18], xmm1
mov eax, dword [edi + 0x38]
movd xmm0, dword [edi + 0x70]
mov ecx, dword [edi + 0x1c]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax]
movss xmm1, dword [eax + 0x3c]
mulss xmm0, dword [eax + 0x1c]
mov eax, dword [ecx + esi*4]
subss xmm1, xmm0
movss dword [eax + 0x1c], xmm1
mov eax, dword [edi + 0x38]
movd xmm0, dword [edi + 0x70]
mov ecx, dword [edi + 0x1c]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax]
movss xmm1, dword [eax + 0x40]
mulss xmm0, dword [eax + 0x20]
mov eax, dword [ecx + esi*4]
subss xmm1, xmm0
movss dword [eax + 0x20], xmm1
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0xa4]
mov ecx, dword [ecx + esi*4]
mov dword [ecx + 0x28], eax
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0xa0]
mov ecx, dword [ecx + esi*4]
mov dword [ecx + 0x2c], eax
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi*4]
mov dword [eax + 0x24], 0x78ffffff
movd xmm0, dword [edi + 0x70]
imul ecx, dword [edi + 0x44], 0x68
mov eax, dword [edi + 0x38]
mov edx, dword [edi + 0x1c]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax]
addss xmm0, xmm0
mulss xmm0, dword [ecx + eax - 0x50]
addss xmm0, dword [ecx + eax - 0x64]
mov eax, dword [edx + esi*4]
movss dword [eax + 0x30], xmm0
movd xmm0, dword [edi + 0x70]
imul ecx, dword [edi + 0x44], 0x68
mov eax, dword [edi + 0x38]
mov edx, dword [edi + 0x1c]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax]
addss xmm0, xmm0
mulss xmm0, dword [ecx + eax - 0x4c]
addss xmm0, dword [ecx + eax - 0x60]
mov eax, dword [edx + esi*4]
movss dword [eax + 0x34], xmm0
movd xmm0, dword [edi + 0x70]
imul ecx, dword [edi + 0x44], 0x68
mov eax, dword [edi + 0x38]
mov edx, dword [edi + 0x1c]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax]
addss xmm0, xmm0
mulss xmm0, dword [ecx + eax - 0x48]
addss xmm0, dword [ecx + eax - 0x5c]
mov eax, dword [edx + esi*4]
movss dword [eax + 0x38], xmm0
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi*4]
mov dword [eax + 0x40], 0
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0xa4]
mov ecx, dword [ecx + esi*4]
mov dword [ecx + 0x44], eax
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi*4]
mov dword [eax + 0x3c], 0x78ffffff
imul ecx, dword [edi + 0x44], 0x68
mov eax, dword [edi + 0x38]
movd xmm0, dword [edi + 0x70]
mov edx, dword [edi + 0x1c]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax]
movss xmm1, dword [ecx + eax - 0x30]
mulss xmm0, dword [ecx + eax - 0x50]
mov eax, dword [edx + esi*4]
subss xmm1, xmm0
movss dword [eax + 0x48], xmm1
imul ecx, dword [edi + 0x44], 0x68
mov eax, dword [edi + 0x38]
movd xmm0, dword [edi + 0x70]
mov edx, dword [edi + 0x1c]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax]
movss xmm1, dword [ecx + eax - 0x2c]
mulss xmm0, dword [ecx + eax - 0x4c]
mov eax, dword [edx + esi*4]
subss xmm1, xmm0
movss dword [eax + 0x4c], xmm1
imul ecx, dword [edi + 0x44], 0x68
mov eax, dword [edi + 0x38]
movd xmm0, dword [edi + 0x70]
mov edx, dword [edi + 0x1c]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax]
movss xmm1, dword [ecx + eax - 0x28]
mulss xmm0, dword [ecx + eax - 0x48]
mov eax, dword [edx + esi*4]
subss xmm1, xmm0
movss dword [eax + 0x50], xmm1
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0xa4]
mov ecx, dword [ecx + esi*4]
mov dword [ecx + 0x58], eax
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0xa4]
mov ecx, dword [ecx + esi*4]
mov dword [ecx + 0x5c], eax
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi*4]
mov dword [eax + 0x54], 0x78ffffff
mov esi, dword [edi + 0x1c]
mov eax, dword [ebx + 8]
mov eax, dword [esi + eax*4]
movss xmm1, dword [eax + 0x30]
movss xmm2, dword [eax + 0x34]
subss xmm2, dword [eax + 4]
subss xmm1, dword [eax]
movss xmm0, dword [eax + 0x38]
subss xmm0, dword [eax + 8]
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
xorps xmm1, xmm1
addss xmm2, xmm0
cvtps2pd xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x60b828
sqrtsd xmm0, xmm0
jmp 0x60b82d
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
cvtsd2ss xmm0, xmm0
mov edx, dword [ebx + 8]
divss xmm0, dword [0x711f54]
addss xmm0, dword [edi + 0xa4]
movss dword [edi + 0xa8], xmm0
movss dword [edi + 0xa4], xmm0
mov eax, dword [esi + edx*4]
lea esi, [edx*4]
movss dword [eax + 0x44], xmm0
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0xa8]
mov ecx, dword [ecx + esi]
mov dword [ecx + 0x5c], eax
jmp 0x60b962
cmp eax, 3
jne 0x60b9c3
mov ecx, dword [edi + 0x1c]
mov eax, dword [ebx + 8]
lea esi, [eax*4]
mov eax, dword [edi + 0xa0]
mov ecx, dword [ecx + esi]
mov dword [ecx + 0x10], eax
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi]
mov dword [eax + 0x14], 0
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi]
mov dword [eax + 0xc], 0x78ffffff
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0xa4]
mov ecx, dword [ecx + esi]
mov dword [ecx + 0x28], eax
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi]
mov dword [eax + 0x2c], 0
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi]
mov dword [eax + 0x24], 0x78ffffff
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0xa0]
mov ecx, dword [ecx + esi]
mov dword [ecx + 0x40], eax
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0xa8]
mov ecx, dword [ecx + esi]
mov dword [ecx + 0x44], eax
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi]
mov dword [eax + 0x3c], 0x78ffffff
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0xa4]
mov ecx, dword [ecx + esi]
mov dword [ecx + 0x58], eax
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0xa8]
mov ecx, dword [ecx + esi]
mov dword [ecx + 0x5c], eax
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi]
mov dword [eax + 0x54], 0x78ffffff
movss xmm0, dword [edi + 0xa0]
addss xmm0, dword [0x70c430]
movss dword [edi + 0xa0], xmm0
movss xmm0, dword [edi + 0xa4]
addss xmm0, dword [0x70c430]
movss dword [edi + 0xa4], xmm0
mov eax, dword [edi + 0x78]
lea edx, [ebp - 0x14]
push 0
push edx
push 0x60
mov eax, dword [esi + eax]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [edi + 0x1c]
mov ecx, dword [eax + esi]
mov eax, dword [ebp - 0x14]
movups xmm0, xmmword [ecx]
movups xmmword [eax], xmm0
mov eax, dword [ebp - 0x14]
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [eax + 0x10], xmm0
mov eax, dword [ebp - 0x14]
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [eax + 0x20], xmm0
mov eax, dword [ebp - 0x14]
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [eax + 0x30], xmm0
mov eax, dword [ebp - 0x14]
movups xmm0, xmmword [ecx + 0x40]
movups xmmword [eax + 0x40], xmm0
mov eax, dword [ebp - 0x14]
movups xmm0, xmmword [ecx + 0x50]
movups xmmword [eax + 0x50], xmm0
jmp 0x60bc0f
cmp eax, 1
jne 0x60b9d5
push 0x700992
call fcn.0060c010
add esp, 4
mov eax, dword [ebx + 8]
mov ecx, dword [edi + 0x38]
lea esi, [eax*4]
imul eax, dword [edi + 0x44], 0x68
mov dword [ebp - 0x18], esi
push eax
push dword [ecx + esi]
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [edi + 0x44]
add esp, 0xc
add eax, eax
mov dword [ebp - 0x1c], 0
test eax, eax
jle 0x60bb90
mov eax, dword [ebp - 0x20]
xor edx, edx
add eax, 8
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x14], eax
nop word [eax + eax]
mov ecx, dword [edi + 0x1c]
mov eax, dword [eax - 4]
mov ecx, dword [ecx + esi]
mov dword [edx + ecx], eax
mov ecx, dword [edi + 0x1c]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ecx + esi]
mov eax, dword [eax]
mov dword [ecx + edx + 4], eax
mov ecx, dword [edi + 0x1c]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ecx + esi]
mov eax, dword [eax + 4]
mov dword [edx + ecx + 8], eax
mov eax, dword [ebp - 0x1c]
and eax, reloc.WS2_32.dll_closesocket
jns 0x60ba5a
dec eax
or eax, 0xfffffffc
inc eax
cmp eax, 3
ja case.default.0x60ba5f
jmp dword [eax*4 + 0x60bc64]
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi]
mov dword [eax + edx + 0x10], 0
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi]
mov dword [edx + eax + 0x14], 0
jmp case.default.0x60ba5f
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi]
mov dword [edx + eax + 0x10], 0x3f800000
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi]
mov dword [eax + edx + 0x14], 0
jmp case.default.0x60ba5f
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi]
mov dword [eax + edx + 0x10], 0
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi]
mov dword [edx + eax + 0x14], 0x3f800000
jmp case.default.0x60ba5f
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi]
mov dword [edx + eax + 0x10], 0x3f800000
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi]
mov dword [eax + edx + 0x14], 0x3f800000
mov eax, dword [ebp - 0x14]
mov esi, dword [edi + 0x1c]
add esi, dword [ebp - 0x18]
movss xmm0, dword [eax + 0x1c]
mulss xmm0, dword [0x707808]
call fcn.006dfba0
mov ecx, dword [esi]
mov edx, dword [ebp - 0x24]
shl eax, 0x18
or eax, 0xffffff
mov dword [edx + ecx + 0xc], eax
mov ecx, dword [ebp - 0x1c]
test cl, 1
je 0x60bb65
mov eax, dword [ebp - 0x14]
xorps xmm1, xmm1
movss xmm0, dword [eax + 0x1c]
mulss xmm0, dword [0x70174c]
mov eax, dword [edi + 0x1c]
comiss xmm0, xmm1
jb 0x60bb55
mulss xmm0, dword [0x707808]
call fcn.006dfba0
mov ecx, dword [edi + 0x1c]
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x24]
shl eax, 0x18
or eax, 0xffffff
mov ecx, dword [esi + ecx]
mov dword [edx + ecx + 0xc], eax
mov ecx, dword [ebp - 0x1c]
jmp 0x60bb68
mov esi, dword [ebp - 0x18]
mov eax, dword [esi + eax]
mov dword [edx + eax + 0xc], 0xffffff
jmp 0x60bb68
mov esi, dword [ebp - 0x18]
mov eax, dword [edi + 0x44]
inc ecx
add dword [ebp - 0x14], 0x34
add eax, eax
add edx, 0x18
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x14]
jl 0x60ba20
mov eax, dword [ebx + 8]
lea esi, [eax*4]
mov eax, dword [edi + 0x1c]
push 0
mov eax, dword [eax + esi]
mov dword [eax + 0xc], 0xcccccc
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi]
mov dword [eax + 0x24], 0xcccccc
mov eax, dword [edi + 0x44]
mov edx, dword [edi + 0x1c]
lea ecx, [eax + eax*2]
mov eax, dword [edx + esi]
add ecx, ecx
mov dword [eax + ecx*8 - 0x24], 0xcccccc
mov eax, dword [edi + 0x44]
mov edx, dword [edi + 0x1c]
lea ecx, [eax + eax*2]
mov eax, dword [edx + esi]
add ecx, ecx
mov dword [eax + ecx*8 - 0xc], 0xcccccc
mov eax, dword [edi + 0x78]
mov ecx, dword [esi + eax]
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [edi + 0x44]
mov edx, dword [ecx]
lea eax, [eax + eax*2]
shl eax, 4
push eax
push 0
push ecx
call dword [edx + 0x2c]
mov eax, dword [edi + 0x44]
mov ecx, dword [edi + 0x1c]
lea eax, [eax + eax*2]
shl eax, 4
push eax
push dword [ecx + esi]
push dword [ebp - 0x1c]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [edi + 0x78]
mov eax, dword [esi + eax]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x60bc4c
push fcn.00480f00
push dword [eax - 4]
lea esi, [eax - 4]
mov dword [ebp - 4], 1
push 0x34
push eax
call fcn.006dff8b
imul eax, dword [esi], 0x34
add eax, 4
push eax
push esi
call fcn.006e00a0
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8