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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xa8
mov eax, dword [0x4e84c4]
xor eax, esp
mov dword [esp + 0xa4], eax
mov eax, dword [ebp + 8]
push esi
mov esi, dword [sym.imp.d3dx9_43.dll_D3DXQuaternionRotationYawPitchRoll]
push edi
sub esp, 0xc
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x2c]
mov edi, ecx
mov dword [esp + 0x18], edi
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
push eax
call esi
movss xmm0, dword [ebp + 0x10]
sub esp, 0xc
mov eax, dword [ebp + 0xc]
movss dword [esp + 0x40], xmm0
movss xmm0, dword [ebp + 0x14]
movss dword [esp + 0x44], xmm0
movss xmm0, dword [ebp + 0x18]
movss dword [esp + 0x48], xmm0
movss xmm0, dword [ebp + 0x24]
movss dword [esp + 8], xmm0
movss xmm0, dword [ebp + 0x1c]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp + 0x20]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x2c]
movss dword [esp], xmm0
push eax
mov dword [esp + 0x6c], 0x3f800000
mov dword [esp + 0x70], 0x3f800000
mov dword [esp + 0xb4], 0
call esi
mov ecx, dword [esp + 0xc]
mov eax, 0x2aaaaaab
mov edi, dword [edi + 0x20]
movups xmm0, xmmword [esp + 0x20]
mov ecx, dword [ecx + 0x24]
sub ecx, edi
imul ecx
movups xmmword [esp + 0x40], xmm0
movss xmm0, dword [ebp + 0x28]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [ebp + 0x2c]
mov ecx, dword [esp + 0x10]
sar edx, 1
mov eax, edx
movss dword [esp + 0x54], xmm0
movss xmm0, dword [ebp + 0x30]
shr eax, 0x1f
add eax, edx
movss dword [esp + 0x58], xmm0
cmp eax, ecx
jle 0x416afa
lea edx, [ecx + ecx*2]
xor esi, esi
shl edx, 2
mov dword [esp + 0x18], edx
mov ecx, dword [edx + edi + 4]
mov eax, dword [edx + edi]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ecx
sub ecx, eax
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
test eax, eax
jle 0x416a5b
mov eax, dword [esp + 0x10]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x14]
shl edx, 2
mov edi, eax
mov dword [esp + 0x10], edx
mov ecx, dword [ebp + 0xc]
cmp dword [edi], ecx
je 0x416a7c
mov ecx, dword [esp + 0x1c]
inc esi
sub ecx, eax
add edi, 0x78
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
mov eax, dword [esp + 0x14]
jl 0x416a28
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x20]
mov eax, dword [esp + 0x18]
add eax, edi
mov edx, dword [eax + 4]
cmp edx, dword [eax + 8]
je 0x416ab5
mov ecx, 0x1e
lea esi, [esp + 0x30]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
add dword [eax + 4], 0x78
jmp 0x416ac2
mov eax, dword [esp + 0xc]
mov ecx, esi
mov edx, dword [esp + 0x10]
shl ecx, 4
sub ecx, esi
lea esi, [esp + 0x30]
mov eax, dword [eax + 0x20]
mov eax, dword [edx + eax]
lea edi, [eax + ecx*8]
mov ecx, 0x1e
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov ecx, dword [esp + 0xa4]
xor ecx, esp
call fcn.0049c0fc
mov esp, ebp
pop ebp
ret 0x2c
lea ecx, [esp + 0x30]
push ecx
push edx
mov ecx, eax
call fcn.00417600
mov eax, dword [esp + 0xc]
push dword [esp + 0x1c]
mov ecx, dword [eax + 0x20]
mov eax, dword [esp + 0x1c]
mov edi, dword [eax + ecx + 4]
mov esi, edi
mov ecx, dword [eax + ecx]
sub esi, ecx
mov eax, 0x88888889
imul esi
add edx, esi
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, edi
push eax
call fcn.00417960
add esp, 8
mov ecx, dword [esp + 0xac]
pop edi
pop esi
xor ecx, esp
call fcn.0049c0fc
mov esp, ebp
pop ebp
ret 0x2c