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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xe8
push ebx
push ebp
push esi
push edi
mov ebp, ecx
xor eax, eax
cmp dword [ebp + 0x62c], eax
mov dword [esp + 0x24], eax
jbe 0x50709f
mov dword [esp + 0x20], eax
jmp 0x506dd0
mov ebx, dword [ebp + 0x644]
add ebx, dword [esp + 0x20]
movss xmm1, dword [0x6f99f8]
movss xmm2, dword [ebx]
fld dword [ebx + 0x20]
movss xmm3, dword [ebx + 4]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
mov ecx, 0x10
mov esi, 0x6c7470
lea edi, [esp + 0x38]
rep movsd dword es:[edi], dword [esi]
movaps xmm0, xmm1
push ecx
subss xmm0, xmm2
lea eax, [esp + 0xbc]
fstp dword [esp]
movss dword [esp + 0x6c], xmm0
xorps xmm0, xmm0
subss xmm1, xmm3
push eax
movss dword [esp + 0x34], xmm2
movss dword [esp + 0x38], xmm3
movss dword [esp + 0x74], xmm1
movss dword [esp + 0x78], xmm0
call sub.d3dx9_35.dll_D3DXMatrixRotationZ
lea ecx, [esp + 0xb8]
push ecx
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x80]
push eax
call sub.d3dx9_35.dll_D3DXMatrixMultiply
movss xmm0, dword [esp + 0x2c]
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x7c]
movss dword [esp + 0x6c], xmm0
movss xmm0, dword [esp + 0x34]
push edx
mov eax, edx
movss dword [esp + 0x74], xmm0
xorps xmm0, xmm0
push eax
movss dword [esp + 0x7c], xmm0
call sub.d3dx9_35.dll_D3DXMatrixMultiply
fld dword [ebx]
fsub dword [ebx + 0x10]
xorps xmm0, xmm0
lea ecx, [esp + 0x14]
push ecx
fstp dword [esp + 0x18]
lea ecx, [esp + 0x7c]
fld dword [ebx + 4]
lea edx, [esp + 0x18]
fsub dword [ebx + 0x14]
movss dword [esp + 0x20], xmm0
fstp dword [esp + 0x1c]
call fcn.00404e50
mov edx, dword [ebp + 0x640]
fld dword [esp + 0x18]
xorps xmm0, xmm0
fstp dword [edx]
mov eax, dword [ebp + 0x640]
fld dword [esp + 0x1c]
movss xmm1, dword [0x6cc5ec]
fstp dword [eax + 4]
movzx ecx, byte [ebx + 0x3c]
mov edx, dword [ebp + 0x640]
shl ecx, 0x18
add esp, 4
or ecx, 0xff0000
mov dword [edx + 8], ecx
mov eax, dword [ebp + 0x640]
movss dword [eax + 0xc], xmm0
mov ecx, dword [ebp + 0x640]
movss dword [ecx + 0x10], xmm1
fld dword [ebx]
fsub dword [ebx + 0x10]
fstp dword [esp + 0x14]
fld dword [ebx + 4]
fadd dword [ebx + 0x14]
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x7c]
fstp dword [esp + 0x1c]
movss dword [esp + 0x20], xmm0
call fcn.00404e50
fld dword [esp + 0x18]
mov eax, dword [ebp + 0x640]
xorps xmm0, xmm0
fstp dword [eax + 0x14]
mov ecx, dword [ebp + 0x640]
fld dword [esp + 0x1c]
fstp dword [ecx + 0x18]
movzx edx, byte [ebx + 0x3c]
mov eax, dword [ebp + 0x640]
shl edx, 0x18
or edx, 0xff0000
mov dword [eax + 0x1c], edx
mov ecx, dword [ebp + 0x640]
movss dword [ecx + 0x20], xmm0
mov edx, dword [ebp + 0x640]
movss dword [edx + 0x24], xmm0
fld dword [ebx]
lea eax, [esp + 0x18]
fadd dword [ebx + 0x10]
add esp, 4
push eax
lea ecx, [esp + 0x7c]
fstp dword [esp + 0x18]
mov edx, eax
fld dword [ebx + 4]
movss dword [esp + 0x20], xmm0
fadd dword [ebx + 0x14]
fstp dword [esp + 0x1c]
call fcn.00404e50
mov ecx, dword [ebp + 0x640]
fld dword [esp + 0x18]
movss xmm0, dword [0x6cc5ec]
fstp dword [ecx + 0x28]
mov edx, dword [ebp + 0x640]
fld dword [esp + 0x1c]
fstp dword [edx + 0x2c]
movzx eax, byte [ebx + 0x3c]
mov ecx, dword [ebp + 0x640]
shl eax, 0x18
or eax, 0xff0000
mov dword [ecx + 0x30], eax
mov edx, dword [ebp + 0x640]
movss dword [edx + 0x34], xmm0
mov eax, dword [ebp + 0x640]
xorps xmm0, xmm0
movss dword [eax + 0x38], xmm0
fld dword [ebx]
fadd dword [ebx + 0x10]
lea ecx, [esp + 0x18]
add esp, 4
push ecx
fstp dword [esp + 0x18]
lea ecx, [esp + 0x7c]
fld dword [ebx + 4]
lea edx, [esp + 0x18]
fsub dword [ebx + 0x14]
movss dword [esp + 0x20], xmm0
fstp dword [esp + 0x1c]
call fcn.00404e50
mov edx, dword [ebp + 0x640]
fld dword [esp + 0x18]
movss xmm0, dword [0x6cc5ec]
fstp dword [edx + 0x3c]
mov eax, dword [ebp + 0x640]
fld dword [esp + 0x1c]
fstp dword [eax + 0x40]
movzx ecx, byte [ebx + 0x3c]
mov edx, dword [ebp + 0x640]
shl ecx, 0x18
add esp, 4
or ecx, 0xff0000
mov dword [edx + 0x44], ecx
mov eax, dword [ebp + 0x640]
movss dword [eax + 0x48], xmm0
mov ecx, dword [ebp + 0x640]
mov eax, dword [esp + 0x24]
add dword [esp + 0x20], 0x40
movss dword [ecx + 0x4c], xmm0
add dword [ebp + 0x640], 0x50
add eax, 1
cmp eax, dword [ebp + 0x62c]
mov dword [esp + 0x24], eax
jb 0x506dd0
mov ebp, dword [ebp + 0x630]
mov eax, dword [ebp]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 0x30]
call eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret