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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x524
mov eax, dword [0x10053040]
xor eax, esp
mov dword [esp + 0x520], eax
push ebx
push esi
mov esi, dword [ebp + 8]
mov ebx, ecx
mov ecx, dword [0x1014edc8]
push edi
push 1
mov dword [esp + 0x1c], edx
lea edx, [esp + 0x7c]
mov eax, dword [ecx]
push edx
push 0x2c
push ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x2c], esi
call dword [eax + 0x40]
mov ecx, dword [0x1014edc8]
lea edx, [esp + 0x188]
push 1
push edx
push 0x2d
mov eax, dword [ecx]
push ebx
call dword [eax + 0x40]
movss xmm1, dword [esp + 0x7c]
movss xmm2, dword [esp + 0x78]
subss xmm2, dword [esp + 0x188]
subss xmm1, dword [esp + 0x18c]
movss xmm0, dword [esp + 0x80]
subss xmm0, dword [esp + 0x190]
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
xorps xmm1, xmm1
addss xmm2, xmm0
cvtps2pd xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x1003a8b1
sqrtsd xmm0, xmm0
jmp 0x1003a8b6
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
mov edi, dword [sym.imp.d3dx9_43.dll_D3DXVec3Project]
xor ebx, ebx
cvtsd2ss xmm0, xmm0
mov dword [esp + 0xc], ebx
comiss xmm0, dword [0x100501e8]
jbe 0x1003ab50
movaps xmm0, xmmword [0x10050330]
movups xmmword [esp + 0x2b0], xmm0
movaps xmm0, xmmword [0x10050320]
movups xmmword [esp + 0x2c0], xmm0
movaps xmm0, xmmword [0x10050370]
movups xmmword [esp + 0x2d0], xmm0
movaps xmm0, xmmword [0x100503d0]
movups xmmword [esp + 0x2e0], xmm0
movaps xmm0, xmmword [0x10050380]
movups xmmword [esp + 0x2f0], xmm0
movaps xmm0, xmmword [0x100503a0]
movups xmmword [esp + 0x300], xmm0
nop dword [eax]
mov ecx, dword [0x1014edc8]
lea edx, [esp + 0x310]
push 1
push edx
lea edx, [esp + 0x2b8]
push dword [edx + ebx*8]
mov eax, dword [ecx]
push dword [esp + 0x1c]
call dword [eax + 0x40]
mov ecx, dword [0x1014edc8]
lea edx, [esp + 0x41c]
push 1
push edx
push dword [esp + ebx*8 + 0x2bc]
mov eax, dword [ecx]
push dword [esp + 0x1c]
call dword [eax + 0x40]
movss xmm0, dword [esp + 0x310]
lea ecx, [esp + 0x48]
mov eax, dword [esi]
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x314]
movss dword [esp + 0x34], xmm0
movss xmm0, dword [esp + 0x318]
push ecx
push esi
movss dword [esp + 0x40], xmm0
call dword [eax + 0xc0]
mov eax, 0x79ac60
mov ecx, dword [eax]
lea eax, [ecx + 0x3f50]
push eax
lea eax, [ecx + 0x3f90]
push eax
lea eax, [ecx + 0x3fd0]
push eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x2ac]
push eax
call edi
movss xmm0, dword [0x1005016c]
comiss xmm0, dword [esp + 0x2a0]
jbe 0x1003ab2d
movss xmm0, dword [esp + 0x41c]
lea ecx, [esp + 0x60]
mov eax, dword [esi]
movss dword [esp + 0x3c], xmm0
movss xmm0, dword [esp + 0x420]
movss dword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0x424]
push ecx
push esi
movss dword [esp + 0x4c], xmm0
call dword [eax + 0xc0]
mov eax, 0x79ac60
mov ecx, dword [eax]
lea eax, [ecx + 0x3f50]
push eax
lea eax, [ecx + 0x3f90]
push eax
lea eax, [ecx + 0x3fd0]
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x2b8]
push eax
call edi
movss xmm0, dword [0x1005016c]
comiss xmm0, dword [esp + 0x2ac]
jbe 0x1003ab2d
cvttss2si eax, dword [esp + 0x2a8]
push 0
cvttss2si ebx, dword [esp + 0x2a8]
mov dword [esp + 0x18], eax
mov eax, dword [0x1014edcc]
push eax
mov ecx, dword [eax]
cvttss2si edi, dword [esp + 0x2a4]
cvttss2si esi, dword [esp + 0x2a0]
call dword [ecx + 0x34]
mov eax, dword [0x1014edcc]
mov ecx, dword [eax]
push ecx
mov dword [esp], 0x3f800000
push eax
call dword [ecx + 0x2c]
mov eax, dword [0x1014edcc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
movd xmm0, esi
lea edx, [esp + 0x20]
cvtdq2ps xmm0, xmm0
mov eax, dword [0x1014edcc]
push dword [esp + 0x18]
movss dword [esp + 0x24], xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
push 2
push edx
push eax
movss dword [esp + 0x34], xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x38], xmm0
movd xmm0, dword [esp + 0x24]
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x3c], xmm0
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [0x1014edcc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x1c]
mov edi, dword [sym.imp.d3dx9_43.dll_D3DXVec3Project]
inc ebx
mov dword [esp + 0xc], ebx
cmp ebx, 0x10
jl 0x1003a930
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x520]
xor ecx, esp
call fcn.10047730
mov esp, ebp
pop ebp
ret
movaps xmm0, xmmword [0x10050350]
movups xmmword [esp + 0x2b0], xmm0
movaps xmm0, xmmword [0x10050340]
movups xmmword [esp + 0x2c0], xmm0
movaps xmm0, xmmword [0x10050360]
movups xmmword [esp + 0x2d0], xmm0
movaps xmm0, xmmword [0x100503e0]
movups xmmword [esp + 0x2e0], xmm0
movaps xmm0, xmmword [0x100503b0]
movups xmmword [esp + 0x2f0], xmm0
movaps xmm0, xmmword [0x100503c0]
movups xmmword [esp + 0x300], xmm0
nop word [eax + eax]
mov ecx, dword [0x1014edc8]
lea edx, [esp + 0x310]
push 1
push edx
lea edx, [esp + 0x2b8]
push dword [edx + ebx*8]
mov eax, dword [ecx]
push dword [esp + 0x1c]
call dword [eax + 0x40]
mov ecx, dword [0x1014edc8]
lea edx, [esp + 0x41c]
push 1
push edx
push dword [esp + ebx*8 + 0x2bc]
mov eax, dword [ecx]
push dword [esp + 0x1c]
call dword [eax + 0x40]
movss xmm0, dword [esp + 0x310]
lea ecx, [esp + 0x60]
mov eax, dword [esi]
movss dword [esp + 0x3c], xmm0
movss xmm0, dword [esp + 0x314]
movss dword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0x318]
push ecx
push esi
movss dword [esp + 0x4c], xmm0
call dword [eax + 0xc0]
mov eax, 0x79ac60
mov ecx, dword [eax]
lea eax, [ecx + 0x3f50]
push eax
lea eax, [ecx + 0x3f90]
push eax
lea eax, [ecx + 0x3fd0]
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x2ac]
push eax
call edi
movss xmm0, dword [0x1005016c]
comiss xmm0, dword [esp + 0x2a0]
jbe 0x1003adad
movss xmm0, dword [esp + 0x41c]
lea ecx, [esp + 0x48]
mov eax, dword [esi]
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x420]
movss dword [esp + 0x34], xmm0
movss xmm0, dword [esp + 0x424]
push ecx
push esi
movss dword [esp + 0x40], xmm0
call dword [eax + 0xc0]
mov eax, 0x79ac60
mov ecx, dword [eax]
lea eax, [ecx + 0x3f50]
push eax
lea eax, [ecx + 0x3f90]
push eax
lea eax, [ecx + 0x3fd0]
push eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x2b8]
push eax
call edi
movss xmm0, dword [0x1005016c]
comiss xmm0, dword [esp + 0x2ac]
jbe 0x1003adad
cvttss2si eax, dword [esp + 0x2a8]
push 0
cvttss2si ebx, dword [esp + 0x2a8]
mov dword [esp + 0x18], eax
mov eax, dword [0x1014edcc]
push eax
mov ecx, dword [eax]
cvttss2si edi, dword [esp + 0x2a4]
cvttss2si esi, dword [esp + 0x2a0]
call dword [ecx + 0x34]
mov eax, dword [0x1014edcc]
mov ecx, dword [eax]
push ecx
mov dword [esp], 0x3f800000
push eax
call dword [ecx + 0x2c]
mov eax, dword [0x1014edcc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
movd xmm0, esi
lea edx, [esp + 0x20]
cvtdq2ps xmm0, xmm0
mov eax, dword [0x1014edcc]
push dword [esp + 0x18]
movss dword [esp + 0x24], xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
push 2
push edx
push eax
movss dword [esp + 0x34], xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x38], xmm0
movd xmm0, dword [esp + 0x24]
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x3c], xmm0
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [0x1014edcc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x1c]
mov edi, dword [sym.imp.d3dx9_43.dll_D3DXVec3Project]
inc ebx
mov dword [esp + 0xc], ebx
cmp ebx, 0x10
jl 0x1003abb0
mov ecx, dword [esp + 0x52c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10047730
mov esp, ebp
pop ebp
ret