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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xb8
mov eax, dword [0x4e04c4]
xor eax, esp
mov dword [esp + 0xb4], 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 + 0x24], eax
lea eax, [esp + 0xac]
mov edi, ecx
mov dword [esp + 0x20], 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 + 0x38], xmm0
movss xmm0, dword [ebp + 0x14]
movss dword [esp + 0x3c], xmm0
movss xmm0, dword [ebp + 0x18]
movss dword [esp + 0x40], 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 + 0x34], eax
lea eax, [esp + 0xac]
movss dword [esp], xmm0
push eax
mov dword [esp + 0x64], 0x3f800000
mov dword [esp + 0x68], 0x3f800000
mov dword [esp + 0xac], 0
call esi
mov ecx, dword [esp + 0x14]
mov eax, 0x2aaaaaab
mov edi, dword [edi + 0x20]
movups xmm0, xmmword [esp + 0xa0]
mov ecx, dword [ecx + 0x24]
sub ecx, edi
imul ecx
movups xmmword [esp + 0x38], xmm0
movss xmm0, dword [ebp + 0x28]
movss dword [esp + 0x48], xmm0
movss xmm0, dword [ebp + 0x2c]
mov ecx, dword [esp + 0x18]
sar edx, 1
mov eax, edx
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [ebp + 0x30]
shr eax, 0x1f
add eax, edx
movss dword [esp + 0x50], xmm0
cmp eax, ecx
jle 0x415f73
lea edx, [ecx + ecx*2]
xor esi, esi
shl edx, 2
mov dword [esp + 0x20], edx
mov ecx, dword [edx + edi + 4]
mov eax, dword [edx + edi]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], 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 0x415ed4
mov eax, dword [esp + 0x18]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x1c]
shl edx, 2
mov edi, eax
mov dword [esp + 0x18], edx
mov ecx, dword [ebp + 0xc]
cmp dword [edi], ecx
je 0x415ef5
mov ecx, dword [esp + 0x24]
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 + 0x1c]
jl 0x415ea1
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x20]
mov eax, dword [esp + 0x20]
add eax, edi
mov edx, dword [eax + 4]
cmp edx, dword [eax + 8]
je 0x415f2e
mov ecx, 0x1e
lea esi, [esp + 0x28]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
add dword [eax + 4], 0x78
jmp 0x415f3b
mov eax, dword [esp + 0x14]
mov ecx, esi
mov edx, dword [esp + 0x18]
shl ecx, 4
sub ecx, esi
lea esi, [esp + 0x28]
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 + 0xb4]
xor ecx, esp
call fcn.004968dc
mov esp, ebp
pop ebp
ret 0x2c
lea ecx, [esp + 0x28]
push ecx
push edx
mov ecx, eax
call fcn.00416a70
mov eax, dword [esp + 0x14]
push dword [esp + 0x24]
mov ecx, dword [eax + 0x20]
mov eax, dword [esp + 0x24]
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.00416dd0
add esp, 8
mov ecx, dword [esp + 0xbc]
pop edi
pop esi
xor ecx, esp
call fcn.004968dc
mov esp, ebp
pop ebp
ret 0x2c