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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x16c
mov eax, dword [0x651ea8]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
mov ecx, dword [0x6da220]
call fcn.004a6720
fsub dword [edi + 4]
mov ecx, dword [0x6da220]
fstp dword [ebp - 0x14c]
call fcn.004a6720
cmp dword [edi + 0x44], 0
fstp dword [edi + 4]
je 0x531e8d
mov eax, dword [edi + 8]
xor esi, esi
mov edx, dword [edi + 0x14]
test eax, eax
je 0x531ab8
mov eax, dword [eax]
test eax, eax
je 0x531ab8
mov esi, dword [eax]
movss xmm1, dword [ebp - 0x14c]
mov ecx, dword [edi + 0x18]
mov ebx, dword [edi + 0x14]
lea eax, [ebx + ecx]
cmp edx, eax
je 0x531b16
test esi, esi
jne 0x531ad5
xor eax, eax
jmp 0x531ad7
mov eax, dword [esi]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
dec ecx
and ecx, edx
mov eax, dword [eax + ecx*4]
movss xmm0, dword [eax]
addss xmm0, xmm1
movss dword [eax], xmm0
test esi, esi
jne 0x531af7
xor eax, eax
jmp 0x531af9
mov eax, dword [esi]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
dec ecx
and ecx, edx
inc edx
mov eax, dword [eax + ecx*4]
movss xmm0, dword [eax]
comiss xmm0, dword [edi + 0x3c]
jbe 0x531ac0
mov ecx, dword [edi + 0x18]
mov ebx, dword [edi + 0x14]
lea eax, [ecx + ebx]
mov dword [ebp - 0x148], eax
cmp edx, eax
je 0x531b90
lea ebx, [edi + 8]
xor eax, eax
test ebx, ebx
je 0x531b2e
mov eax, dword [ebx]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], 0
mov dword [ecx + 4], 0
test eax, eax
je 0x531b4e
mov eax, dword [eax]
test eax, eax
je 0x531b4e
mov eax, dword [eax]
mov dword [ecx], eax
mov eax, dword [ebp - 0x148]
sub esp, 0xc
mov dword [ecx + 8], eax
mov ecx, esp
mov dword [ecx], 0
mov dword [ecx + 4], 0
test esi, esi
je 0x531b77
mov eax, dword [esi]
test eax, eax
je 0x531b77
mov eax, dword [eax]
mov dword [ecx], eax
lea eax, [ebp - 0x15c]
mov dword [ecx + 8], edx
push eax
mov ecx, ebx
call fcn.005320b0
movss xmm1, dword [ebp - 0x14c]
mov eax, dword [edi + 0x1c]
mov edx, dword [edi + 0x28]
cmp esi, eax
je 0x531ba6
test eax, eax
je 0x531ba6
mov eax, dword [eax]
test eax, eax
je 0x531ba6
mov esi, dword [eax]
mov ecx, dword [edi + 0x2c]
mov ebx, dword [edi + 0x28]
lea eax, [ebx + ecx]
cmp edx, eax
je 0x531bfc
test esi, esi
jne 0x531bbb
xor eax, eax
jmp 0x531bbd
mov eax, dword [esi]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
dec ecx
and ecx, edx
mov eax, dword [eax + ecx*4]
movss xmm0, dword [eax]
addss xmm0, xmm1
movss dword [eax], xmm0
test esi, esi
jne 0x531bdd
xor eax, eax
jmp 0x531bdf
mov eax, dword [esi]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
dec ecx
and ecx, edx
inc edx
mov eax, dword [eax + ecx*4]
movss xmm0, dword [eax]
comiss xmm0, dword [edi + 0x3c]
jbe 0x531ba6
mov ecx, dword [edi + 0x2c]
mov ebx, dword [edi + 0x28]
lea eax, [ebx + ecx]
mov dword [ebp - 0x148], eax
lea ebx, [edi + 0x1c]
cmp edx, eax
je 0x531c6e
xor eax, eax
test ebx, ebx
je 0x531c14
mov eax, dword [ebx]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], 0
mov dword [ecx + 4], 0
test eax, eax
je 0x531c34
mov eax, dword [eax]
test eax, eax
je 0x531c34
mov eax, dword [eax]
mov dword [ecx], eax
mov eax, dword [ebp - 0x148]
sub esp, 0xc
mov dword [ecx + 8], eax
mov ecx, esp
mov dword [ecx], 0
mov dword [ecx + 4], 0
test esi, esi
je 0x531c5d
mov eax, dword [esi]
test eax, eax
je 0x531c5d
mov eax, dword [eax]
mov dword [ecx], eax
lea eax, [ebp - 0x15c]
mov dword [ecx + 8], edx
push eax
mov ecx, ebx
call fcn.005320b0
cmp dword [edi + 0x80], 0
je 0x531e8d
movss xmm0, dword [edi + 0x74]
comiss xmm0, dword [0x5f4f54]
jb 0x531e8d
mov ecx, dword [edi + 0x44]
lea eax, [ebp - 0x148]
push eax
push dword [edi + 0x88]
push dword [edi + 0x48]
call fcn.004ad460
test eax, eax
je 0x531e8d
mov ecx, dword [edi + 0x44]
lea eax, [ebp - 0x14c]
push eax
push dword [edi + 0x88]
push dword [edi + 0x48]
call fcn.004ad240
mov eax, dword [ebp - 0x148]
sub esp, 0xc
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x84], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ebp - 0x74], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [ebp - 0x64], xmm0
movups xmm0, xmmword [eax + 0x30]
mov eax, dword [ebp - 0x14c]
movups xmmword [ebp - 0x54], xmm0
movss xmm0, dword [eax + 0x30]
movss dword [ebp - 0x54], xmm0
movss xmm0, dword [eax + 0x34]
movss dword [ebp - 0x50], xmm0
movss xmm0, dword [eax + 0x38]
lea eax, [ebp - 0x104]
movss dword [ebp - 0x4c], xmm0
movss xmm0, dword [edi + 0x7c]
mulss xmm0, dword [ebp + 8]
movss dword [esp + 8], xmm0
mov dword [esp + 4], 0
mov dword [esp], 0
push eax
call sub.d3dx9_43.dll_D3DXMatrixTranslation
movss xmm0, dword [edi + 0x78]
lea eax, [ebp - 0xc4]
mulss xmm0, dword [0x62e100]
push ecx
movss dword [esp], xmm0
push eax
call sub.d3dx9_43.dll_D3DXMatrixRotationZ
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x44]
push eax
call sub.d3dx9_43.dll_D3DXMatrixMultiply
movups xmm0, xmmword [ebp - 0x44]
lea ecx, [edi + 8]
mov dword [ebp - 0x16c], 0
movups xmm1, xmmword [ebp - 0x14]
movups xmmword [ebp - 0x144], xmm0
movups xmm0, xmmword [ebp - 0x34]
movaps xmm2, xmm1
addss xmm2, dword [edi + 0x6c]
movups xmmword [ebp - 0x134], xmm0
movups xmm0, xmmword [ebp - 0x24]
movups xmmword [ebp - 0x114], xmm1
movups xmmword [ebp - 0x124], xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, dword [edi + 0x70]
shufps xmm1, xmm1, 0xaa
addss xmm1, dword [edi + 0x74]
unpcklps xmm2, xmm0
movq qword [ebp - 0x168], xmm2
movss dword [ebp - 0x154], xmm1
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x160], eax
lea eax, [ebp - 0x16c]
push eax
call fcn.005322b0
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x44]
push eax
call sub.d3dx9_43.dll_D3DXMatrixMultiply
movups xmm0, xmmword [ebp - 0x44]
movups xmmword [ebp - 0x144], xmm0
movups xmm0, xmmword [ebp - 0x34]
movups xmmword [ebp - 0x134], xmm0
movups xmm1, xmmword [ebp - 0x14]
mov ecx, ebx
mov dword [ebp - 0x16c], 0
movups xmm0, xmmword [ebp - 0x24]
movaps xmm2, xmm1
addss xmm2, dword [edi + 0x6c]
movups xmmword [ebp - 0x124], xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, dword [edi + 0x70]
movups xmmword [ebp - 0x114], xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, dword [edi + 0x74]
unpcklps xmm2, xmm0
movq qword [ebp - 0x168], xmm2
movss dword [ebp - 0x154], xmm1
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x160], eax
lea eax, [ebp - 0x16c]
push eax
call fcn.005322b0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00552cac
mov esp, ebp
pop ebp
ret 4