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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x2f4
push ebx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 8]
xor edx, edx
cmp eax, edx
push esi
push edi
je 0x43ec13
mov ecx, dword [ebx + 4]
mov dword [ebx + 8], ecx
mov dword [ebx + 4], eax
mov ecx, dword [ebx + 0x14]
or dword [esp + 0x1c], 0xffffffff
cmp byte [ecx + 0x10], dl
movss xmm6, dword [0x55b520]
mov dword [esp + 0x4c], edx
je 0x43ec68
fld dword [ebx + 0x74]
fsub dword [0x55b520]
fabs
fld dword [0x57f904]
fcompi st(1)
fstp st(0)
jbe 0x43ec68
mov byte [esp + 0xbc], 1
movss dword [esp + 0xf0], xmm6
movss dword [esp + 0xf4], xmm6
movss dword [esp + 0xf8], xmm6
jmp 0x43eca9
movss xmm0, dword [ebx + 0x74]
movss xmm1, dword [ecx]
mulss xmm1, xmm0
movss dword [esp + 0xf0], xmm1
movss xmm1, dword [ecx + 4]
mulss xmm1, xmm0
movss dword [esp + 0xf4], xmm1
movss xmm1, dword [ecx + 8]
mulss xmm1, xmm0
movss dword [esp + 0xf8], xmm1
mov byte [esp + 0xbc], dl
mov eax, dword [ebx]
cmp dword [eax + 8], edx
mov dword [esp + 0x44], edx
jle 0x43f386
mov dword [esp + 0x48], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], edx
jmp 0x43ecd0
xor edx, edx
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
xorps xmm5, xmm5
lea esi, [ecx + eax + 0x40]
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x14]
lea edi, [eax + ecx + 0x10]
mov eax, dword [ebx + 0x10]
mov ecx, dword [esp + 0x28]
add ecx, eax
cmp byte [ecx + 0x1c], 0
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x30], ecx
jne 0x43ed83
movss xmm0, dword [ecx + 0x10]
ucomiss xmm0, xmm5
lahf
test ah, 0x44
jp 0x43ed1f
mov ax, word [ecx + 0x14]
mov ecx, edi
call fcn.0043196e
jmp 0x43ed7f
movss xmm4, dword [ecx + 0x18]
movaps xmm7, xmm4
addss xmm7, xmm0
movss dword [esp + 0x54], xmm7
fld dword [esp + 0x54]
fabs
fld dword [0x57f904]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x43ed6c
mov ax, word [ecx + 0x14]
lea ecx, [esp + 0xe0]
call fcn.0043196e
mov edx, dword [esp + 0x30]
push ecx
divss xmm4, xmm7
movss dword [esp], xmm4
push edx
call fcn.004319a8
add esp, 8
mov esi, dword [ebx + 0x10]
add esi, dword [esp + 0x28]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
xor edx, edx
jmp 0x43ed96
movss dword [edi + 8], xmm5
movss dword [edi + 4], xmm5
movss dword [edi], xmm5
movss dword [edi + 0xc], xmm6
mov eax, dword [ebx + 0x18]
mov ecx, dword [esp + 0x2c]
add eax, ecx
cmp byte [eax + 0x10], 0
jne 0x43edbe
fld dword [eax]
lea ecx, [esi + 0x30]
fstp dword [ecx]
mov dword [esp + 0x50], ecx
fld dword [eax + 4]
fstp dword [esi + 0x34]
fld dword [eax + 8]
fstp dword [esi + 0x38]
jmp 0x43edd3
lea eax, [esi + 0x30]
mov dword [esp + 0x50], eax
movss dword [eax], xmm5
movss dword [esi + 0x34], xmm5
movss dword [esi + 0x38], xmm5
or dword [esp + 0x20], 0xffffffff
cmp dword [esp + 0x44], edx
movss dword [esi + 0x3c], xmm6
jle 0x43eef1
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + esi*4 + 0x280]
mov eax, dword [ebx + 0xc]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x20], ecx
shl ecx, 4
add ecx, eax
add eax, edx
push eax
inc esi
mov eax, edi
mov dword [esp + 0x50], esi
call fcn.00402e92
mov eax, dword [esp + 0x24]
shl eax, 6
add eax, dword [ebx + 4]
add esp, 4
push eax
push dword [esp + 0x54]
lea eax, [esp + 0x6c]
push eax
call fcn.00402ff7
mov eax, dword [ebx + 0x14]
mov ecx, dword [esp + 0x38]
add eax, ecx
add esp, 0xc
cmp byte [eax + 0x10], 0
je 0x43ee76
mov edi, dword [esp + 0x1c]
lea eax, [esp + edi + 0xbc]
mov cl, byte [eax]
mov byte [esp + esi + 0xbc], cl
cmp byte [eax], 0
jne 0x43f226
imul edi, edi, 0xc
lea esi, [esp + edi + 0xf0]
mov edi, dword [esp + 0x4c]
imul edi, edi, 0xc
lea edi, [esp + edi + 0xf0]
jmp 0x43ee98
mov ecx, dword [esp + 0x1c]
mov byte [esp + esi + 0xbc], 0
cmp byte [esp + ecx + 0xbc], 0
je 0x43eea0
imul esi, esi, 0xc
lea edi, [esp + esi + 0xf0]
mov esi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x43f226
imul ecx, ecx, 0xc
movss xmm0, dword [esp + ecx + 0xf0]
mulss xmm0, dword [eax]
mov edx, esi
imul edx, edx, 0xc
movss dword [esp + edx + 0xf0], xmm0
movss xmm0, dword [esp + ecx + 0xf4]
mulss xmm0, dword [eax + 4]
movss dword [esp + edx + 0xf4], xmm0
movss xmm0, dword [esp + ecx + 0xf8]
mulss xmm0, dword [eax + 8]
movss dword [esp + edx + 0xf8], xmm0
jmp 0x43f226
mov esi, dword [ebp + 0xc]
movss xmm3, dword [esi + 4]
movss xmm1, dword [esi]
movss xmm2, dword [esi + 8]
movaps xmm4, xmm3
mulss xmm4, xmm3
movaps xmm3, xmm2
mulss xmm3, xmm2
movss xmm2, dword [esi + 0x10]
movaps xmm0, xmm1
mulss xmm0, xmm1
addss xmm0, xmm4
movss xmm4, dword [esi + 0x14]
addss xmm0, xmm3
movss xmm3, dword [esi + 0x18]
movaps xmm7, xmm4
mulss xmm7, xmm4
movaps xmm4, xmm3
mulss xmm4, xmm3
movss xmm3, dword [esi + 0x20]
mulss xmm2, xmm2
addss xmm2, xmm7
addss xmm2, xmm4
movss xmm4, dword [esi + 0x24]
movaps xmm7, xmm4
mulss xmm7, xmm4
movss xmm4, dword [esi + 0x28]
mulss xmm3, xmm3
addss xmm3, xmm7
movaps xmm7, xmm4
mulss xmm7, xmm4
movss xmm4, dword [0x57fc14]
comiss xmm4, xmm0
addss xmm3, xmm7
movss dword [esp + 0x58], xmm0
movss dword [esp + 0x5c], xmm2
movss dword [esp + 0x60], xmm3
ja 0x43efb7
movss xmm7, dword [0x57fc10]
comiss xmm0, xmm7
ja 0x43efb7
comiss xmm4, xmm2
ja 0x43efb7
comiss xmm2, xmm7
ja 0x43efb7
comiss xmm4, xmm3
ja 0x43efb7
comiss xmm3, xmm7
ja 0x43efb7
push esi
jmp 0x43f114
fld dword [esp + 0x58]
movss xmm0, dword [esi + 4]
fsqrt
movss xmm2, dword [esi + 8]
movss xmm4, dword [esi + 0x20]
movss dword [esp + 0x7c], xmm5
movss dword [esp + 0x8c], xmm5
movss dword [esp + 0x9c], xmm5
movaps xmm3, xmm6
movaps xmm5, xmm6
lea eax, [esp + 0x70]
mov byte [esp + 0xbc], 0
movss dword [esp + 0xac], xmm6
push eax
fstp dword [esp + 0x28]
fld dword [esp + 0x64]
fsqrt
divss xmm3, dword [esp + 0x28]
mulss xmm1, xmm3
mulss xmm0, xmm3
movss dword [esp + 0x74], xmm1
movss xmm1, dword [esi + 0x28]
mulss xmm2, xmm3
movss xmm3, dword [esi + 0x24]
movss dword [esp + 0x78], xmm0
movss dword [esp + 0x7c], xmm2
fstp dword [esp + 0x34]
fld dword [esp + 0xf4]
fmul dword [esp + 0x28]
divss xmm5, dword [esp + 0x34]
mulss xmm1, xmm5
mulss xmm4, xmm5
mulss xmm3, xmm5
fstp dword [esp + 0xf4]
movaps xmm7, xmm1
fld dword [esp + 0x60]
mulss xmm7, xmm0
fsqrt
mulss xmm0, xmm4
movaps xmm5, xmm3
movss dword [esp + 0x98], xmm3
mulss xmm3, dword [esp + 0x74]
subss xmm0, xmm3
movss dword [esp + 0x8c], xmm0
movss xmm0, dword [esi + 0x30]
movss dword [esp + 0xa4], xmm0
movss xmm0, dword [esi + 0x34]
movss dword [esp + 0x9c], xmm1
mulss xmm1, dword [esp + 0x74]
mulss xmm5, xmm2
mulss xmm2, xmm4
movss dword [esp + 0xa8], xmm0
movss xmm0, dword [esi + 0x38]
subss xmm5, xmm7
subss xmm1, xmm2
movss dword [esp + 0x94], xmm4
movss dword [esp + 0x84], xmm5
movss dword [esp + 0x88], xmm1
movss dword [esp + 0xac], xmm0
fmul dword [esp + 0xf8]
fstp dword [esp + 0xf8]
fld dword [esp + 0xfc]
fmul dword [esp + 0x34]
fstp dword [esp + 0xfc]
lea eax, [esp + 0x38]
push eax
call sub.d3dx9_33.dll_D3DXQuaternionRotationMatrix
movss xmm0, dword [edi + 0xc]
mulss xmm0, dword [esp + 0x40]
movss xmm1, dword [edi]
mulss xmm1, dword [esp + 0x34]
subss xmm0, xmm1
movss xmm1, dword [edi + 4]
mulss xmm1, dword [esp + 0x38]
mov eax, dword [ebx + 0xc]
add eax, dword [esp + 0x14]
subss xmm0, xmm1
movss xmm1, dword [esp + 0x3c]
mulss xmm1, dword [edi + 8]
subss xmm0, xmm1
movss dword [eax + 0xc], xmm0
movss xmm0, dword [esp + 0x38]
mulss xmm0, dword [edi + 8]
movss xmm1, dword [edi]
mulss xmm1, dword [esp + 0x40]
addss xmm0, xmm1
movss xmm1, dword [edi + 0xc]
mulss xmm1, dword [esp + 0x34]
addss xmm0, xmm1
movss xmm1, dword [edi + 4]
mulss xmm1, dword [esp + 0x3c]
subss xmm0, xmm1
movss dword [eax], xmm0
movss xmm0, dword [edi + 4]
mulss xmm0, dword [esp + 0x40]
movss xmm1, dword [esp + 0x34]
mulss xmm1, dword [edi + 8]
subss xmm0, xmm1
movss xmm1, dword [edi]
mulss xmm1, dword [esp + 0x3c]
addss xmm0, xmm1
movss xmm1, dword [edi + 0xc]
mulss xmm1, dword [esp + 0x38]
addss xmm0, xmm1
movss dword [eax + 4], xmm0
movss xmm0, dword [esp + 0x40]
mulss xmm0, dword [edi + 8]
movss xmm1, dword [edi + 4]
mulss xmm1, dword [esp + 0x34]
addss xmm0, xmm1
movss xmm1, dword [edi]
mulss xmm1, dword [esp + 0x38]
subss xmm0, xmm1
movss xmm1, dword [edi + 0xc]
mulss xmm1, dword [esp + 0x3c]
push esi
push dword [esp + 0x54]
addss xmm0, xmm1
movss dword [eax + 8], xmm0
lea eax, [esp + 0x6c]
push eax
call fcn.00402ff7
add esp, 0xc
mov eax, dword [ebx + 0xc]
mov esi, dword [ebx + 4]
add eax, dword [esp + 0x14]
add esi, dword [esp + 0x18]
push 0
call fcn.00402e34
mov eax, dword [ebx + 4]
add eax, dword [esp + 0x1c]
movss xmm0, dword [esp + 0x68]
movss xmm6, dword [0x55b520]
mov esi, dword [esp + 0x48]
movss dword [eax + 0x30], xmm0
movss xmm0, dword [esp + 0x6c]
movss dword [eax + 0x34], xmm0
movss xmm0, dword [esp + 0x70]
movss dword [eax + 0x38], xmm0
movss dword [eax + 0x3c], xmm6
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + esi*4]
add dword [esp + 0x20], eax
test eax, eax
pop ecx
jle 0x43f290
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x280], esi
mov ecx, dword [esp + 0x4c]
cmp byte [esp + ecx + 0xbc], 0
jne 0x43f335
mov eax, dword [ebx + 4]
add eax, dword [esp + 0x18]
imul ecx, ecx, 0xc
movss xmm1, dword [eax]
lea ecx, [esp + ecx + 0xf0]
movss xmm0, dword [ecx]
mulss xmm1, xmm0
movss dword [eax], xmm1
movss xmm1, dword [eax + 4]
mulss xmm1, xmm0
movss dword [eax + 4], xmm1
movss xmm1, dword [eax + 8]
mulss xmm1, xmm0
movss xmm0, dword [ecx + 4]
movss dword [eax + 8], xmm1
movss xmm1, dword [eax + 0x14]
movss xmm2, dword [eax + 0x18]
mulss xmm1, xmm0
mulss xmm2, xmm0
mulss xmm0, dword [eax + 0x10]
movss dword [eax + 0x10], xmm0
movss xmm0, dword [ecx + 8]
movss dword [eax + 0x14], xmm1
movss dword [eax + 0x18], xmm2
movss xmm1, dword [eax + 0x24]
movss xmm2, dword [eax + 0x28]
mulss xmm1, xmm0
mulss xmm2, xmm0
mulss xmm0, dword [eax + 0x20]
movss dword [eax + 0x20], xmm0
movss dword [eax + 0x24], xmm1
movss dword [eax + 0x28], xmm2
mov ecx, dword [esp + 0x48]
mov eax, dword [ebx + 0x1c]
add eax, ecx
mov ecx, dword [eax]
test ecx, ecx
je 0x43f35d
push dword [esp + 0x20]
push esi
push ebx
push dword [eax + 8]
push dword [eax + 4]
call ecx
movss xmm6, dword [0x55b520]
add esp, 0x14
mov eax, dword [ebx]
add dword [esp + 0x28], 0x20
add dword [esp + 0x2c], 0x14
add dword [esp + 0x14], 0x10
add dword [esp + 0x18], 0x40
add dword [esp + 0x48], 0xc
inc esi
cmp esi, dword [eax + 8]
mov dword [esp + 0x44], esi
jl 0x43ecce
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8