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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb0
push ebx
mov dword [esp + 0x24], ecx
mov ecx, dword [0x5c88b8]
push ebp
lea edx, [ecx - 1]
push esi
xor eax, eax
push edi
test edx, edx
jle 0x42c272
mov edx, dword [0x5c9618]
lea esp, [esp]
cmp dword [eax*4 + 0x5c8878], edx
jne 0x42c26a
mov ecx, dword [ecx*4 + 0x5c8874]
mov dword [eax*4 + 0x5c8878], ecx
mov ecx, dword [0x5c88b8]
mov dword [ecx*4 + 0x5c8874], edx
mov ecx, dword [0x5c88b8]
inc eax
lea esi, [ecx - 1]
cmp eax, esi
jl 0x42c240
mov edx, dword [0x5ab44c]
mov eax, dword [edx*4 + 0x5c8820]
xorps xmm0, xmm0
mov esi, eax
shr esi, 1
xor edi, edi
mov dword [0x5c88b8], eax
mov dword [esp + 0x20], esi
test eax, eax
jbe 0x42c654
lea ebx, [esi + esi*2]
add ebx, ebx
add ebx, ebx
mov eax, dword [0x5c886c]
movss xmm1, dword [0x5652d0]
lea ecx, [esp + 0x58]
push ecx
lea edx, [ebx + eax + 0xc]
push edx
lea edx, [ebx + eax - 0xc]
lea ecx, [esp + 0x88]
movss dword [esp + 0x60], xmm0
movss dword [esp + 0x64], xmm1
movss dword [esp + 0x68], xmm0
call fcn.0043d110
xorps xmm4, xmm4
movss xmm3, dword [0x565524]
movss xmm0, dword [esp + 0x80]
movss xmm1, dword [esp + 0x84]
movss xmm2, dword [esp + 0x88]
mov eax, dword [0x5c886c]
mov ebp, edi
and ebp, 1
movss dword [esp + 0x14], xmm4
movss dword [esp + 0x18], xmm4
movss dword [esp + 0x1c], xmm4
movss dword [esp + 0x24], xmm4
movss dword [esp + 0x28], xmm4
movss dword [esp + 0x2c], xmm4
mulss xmm0, xmm3
mulss xmm1, xmm3
mulss xmm2, xmm3
movss xmm3, dword [ebx + eax - 0xc]
jne 0x42c37b
subss xmm3, xmm0
movss xmm0, dword [ebx + eax - 8]
subss xmm0, xmm1
movss dword [esp + 0x38], xmm0
movss xmm0, dword [ebx + eax - 4]
subss xmm0, xmm2
movss dword [esp + 0x3c], xmm0
mov eax, dword [esp + 0x3c]
movss dword [esp + 0x34], xmm3
movq xmm0, qword [esp + 0x34]
mov dword [esp + 0x1c], eax
jmp 0x42c3b3
addss xmm3, xmm0
movss xmm0, dword [ebx + eax - 8]
addss xmm0, xmm1
movss dword [esp + 0x50], xmm0
movss xmm0, dword [ebx + eax - 4]
addss xmm0, xmm2
movss dword [esp + 0x54], xmm0
mov ecx, dword [esp + 0x54]
movss dword [esp + 0x4c], xmm3
movq xmm0, qword [esp + 0x4c]
mov dword [esp + 0x1c], ecx
cmp dword [edi*4 + 0x5c8878], 0
movss xmm3, dword [0x5652dc]
movss xmm2, dword [esp + 0xa8]
movss xmm1, dword [esp + 0xa4]
movq qword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0xa0]
mulss xmm0, xmm3
addss xmm0, dword [esp + 0x14]
mulss xmm2, xmm3
addss xmm2, dword [esp + 0x1c]
mulss xmm1, xmm3
addss xmm1, dword [esp + 0x18]
movss dword [esp + 0x48], xmm2
mov edx, dword [esp + 0x48]
movss dword [esp + 0x40], xmm0
movss dword [esp + 0x44], xmm1
movq xmm0, qword [esp + 0x40]
movq qword [esp + 0x24], xmm0
mov dword [esp + 0x2c], edx
jne 0x42c46f
mov eax, dword [0x5c88b8]
dec eax
cmp edi, eax
jae 0x42c462
call fcn.005485a8
and eax, 0x80000003
jns 0x42c445
dec eax
or eax, 0xfffffffc
inc eax
mov ecx, dword [eax*4 + 0x5ab31c]
push ecx
mov ecx, dword [esp + 0x34]
call fcn.0042be40
xorps xmm4, xmm4
mov dword [edi*4 + 0x5c8878], eax
jmp 0x42c46f
mov edx, dword [0x5c9618]
mov dword [edi*4 + 0x5c8878], edx
mov ecx, dword [edi*4 + 0x5c8878]
mov eax, dword [ecx + 0x8a4]
mov edx, dword [eax + 0x258]
movss xmm2, dword [edx + 4]
movss xmm0, dword [0x565350]
movss xmm1, dword [0x565d28]
andps xmm2, xmm0
addss xmm2, dword [esp + 0x18]
addss xmm2, xmm1
movss dword [esp + 0x18], xmm2
mov eax, dword [ecx + 0x8a4]
mov edx, dword [eax + 0x258]
movss xmm2, dword [edx + 4]
andps xmm2, xmm0
addss xmm2, dword [esp + 0x28]
movss xmm0, dword [0x5652d0]
addss xmm2, xmm1
movss dword [esp + 0x28], xmm2
cmp ecx, dword [0x5c9618]
jne 0x42c52f
push 0
push 1
lea eax, [esp + 0x6c]
push eax
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x24]
push eax
movss dword [esp + 0x78], xmm4
movss dword [esp + 0x7c], xmm0
movss dword [esp + 0x80], xmm4
call fcn.0042a840
mov eax, dword [edi*4 + 0x5c8878]
mov edx, str.Player
add eax, 0xad4
lea esp, [esp]
mov cl, byte [edx]
mov byte [eax], cl
inc edx
inc eax
test cl, cl
jne 0x42c520
jmp 0x42c5af
push 1
push 1
lea edx, [esp + 0x78]
push edx
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x24]
push edx
movss dword [esp + 0x84], xmm4
movss dword [esp + 0x88], xmm0
movss dword [esp + 0x8c], xmm4
call fcn.0042a840
call fcn.005485a8
mov esi, eax
and esi, 0x80000001
jns 0x42c576
dec esi
or esi, 0xfffffffe
inc esi
shl esi, 6
call fcn.005485a8
and eax, 0x8000003f
jns 0x42c58a
dec eax
or eax, 0xffffffc0
inc eax
mov ecx, dword [edi*4 + 0x5c8878]
add eax, esi
shl eax, 6
add eax, 0x68fd7c
add ecx, 0xad4
mov dl, byte [eax]
mov byte [ecx], dl
inc eax
inc ecx
test dl, dl
jne 0x42c5a1
mov esi, dword [esp + 0x20]
mov eax, ebp
mov dword [esp + 0x7c], eax
fild dword [esp + 0x7c]
test eax, eax
jge 0x42c5c3
fadd dword [0x565934]
mov ecx, dword [edi*4 + 0x5c8878]
fadd st(0), st(0)
fsub dword [0x5652d0]
fstp dword [ecx + 0xc80]
mov ecx, dword [edi*4 + 0x5c8878]
call fcn.00427f70
mov edx, dword [edi*4 + 0x5c8878]
mov dword [edx + 0xc70], esi
mov ecx, dword [edi*4 + 0x5c8878]
cmp ecx, dword [0x5c9618]
je 0x42c60e
cmp dword [ecx + 0xb30], 0
jne 0x42c60e
call fcn.004258c0
mov eax, dword [edi*4 + 0x5c8878]
mov ecx, dword [eax + 0xb30]
push 0
push 0
call fcn.004339d0
mov ecx, dword [edi*4 + 0x5c8878]
mov ecx, dword [ecx + 0xb30]
push 1
call fcn.0042dd90
test ebp, ebp
je 0x42c644
dec esi
mov dword [esp + 0x20], esi
sub ebx, 0xc
xorps xmm0, xmm0
inc edi
cmp edi, dword [0x5c88b8]
jb 0x42c2a0
pop edi
mov dword [0x5c88bc], 0
movss dword [0x5c88c4], xmm0
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret