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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x74
mov eax, dword [0x1003e00c]
xor eax, esp
mov dword [esp + 0x70], eax
push ebx
push esi
mov esi, ecx
mov byte [esp + 0x2b], 1
push edi
mov edi, edx
mov dword [esp + 0x40], esi
movss xmm0, dword [esi + 0xe0]
mov eax, dword [esi + 0x134]
movss dword [esp + 0x30], xmm0
movss dword [esp + 0x48], xmm0
movss xmm0, dword [esi + 0xe4]
mov dword [esp + 0x3c], eax
xor al, al
movss dword [esp + 0x44], xmm0
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esi + 0xe8]
movss dword [esp + 0x50], xmm0
mov dword [esp + 0x34], eax
call fcn.10002dd0
movaps xmm0, xmmword [0x1003a700]
mov ecx, 1
movups xmmword [esp + 0x54], xmm0
mov dword [esp + 0x74], 0xe
mov al, byte [eax]
movaps xmm0, xmmword [0x1003a730]
not al
and al, 1
mov dword [esp + 0x78], 7
cmp byte [0x10f77512], 0
mov byte [esp + 0x3b], al
movups xmmword [esp + 0x64], xmm0
je 0x100105d9
test al, al
mov ebx, ecx
cmovne ebx, dword [ebp + 8]
jmp 0x100105f0
cmp dword [0x10f77514], 3
jne 0x100105ed
mov eax, dword [0x11dc43c4]
mov ebx, dword [esp + eax*4 + 0x54]
jmp 0x100105f0
mov ebx, dword [ebp + 8]
mov eax, dword [0x11dc4218]
sub eax, ebx
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
cmp ecx, 0xf
jle 0x1001060a
mov ecx, 0xf
jmp 0x10010611
xor eax, eax
test ecx, ecx
cmovs ecx, eax
movss xmm0, dword [esp + 0x44]
movss xmm1, dword [esp + 0x30]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10002ac0
movaps xmm1, xmm0
comiss xmm1, dword [0x1003a5b0]
jae 0x1001063d
xorps xmm1, xmm1
cmp byte [0x10f77510], 0
movss xmm0, dword [0x1003a5ec]
je 0x100107f2
mov eax, dword [0x10f77514]
test eax, eax
jne 0x100106e0
mov eax, dword [0x100565cc]
sub esp, 8
mulss xmm1, dword [eax + 0x1c]
divss xmm0, xmm1
movss dword [esp + 0x38], xmm0
fld dword [esp + 0x38]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
movd xmm0, dword [0x10f77518]
add esp, 8
movss xmm2, dword [0x1003a4e8]
cvtdq2ps xmm0, xmm0
fstp dword [esp + 0x30]
comiss xmm2, xmm0
ja 0x100106cb
movss xmm1, dword [esp + 0x30]
comiss xmm2, xmm1
jbe 0x100106c4
movaps xmm0, xmm2
cvttss2si eax, xmm0
test eax, eax
setg byte [esp + 0x34]
test eax, eax
setle dl
jmp 0x100107c8
minss xmm1, xmm0
movaps xmm0, xmm1
cvttss2si eax, xmm0
test eax, eax
setg byte [esp + 0x34]
test eax, eax
setle dl
jmp 0x100107c8
cmp eax, 1
jne 0x10010726
mov eax, dword [0x100565cc]
cvttss2si edx, dword [eax + 0x1c]
mov eax, edx
neg eax
cmp eax, 0x44
jle 0x10010702
cmp ecx, ebx
setle al
setg ah
jmp 0x10010706
mov al, 1
xor ah, ah
test ecx, ecx
movzx ebx, al
mov edx, 1
movzx eax, ah
cmovg ebx, edx
xor edx, edx
test ecx, ecx
mov dword [esp + 0x34], ebx
cmovle edx, eax
jmp 0x100107c8
cmp eax, 2
jne 0x1001074e
mov eax, dword [0x11dc43c8]
test eax, eax
js 0x10010735
inc eax
xor edx, edx
cmp eax, 0xb
cmove eax, edx
test ecx, ecx
mov dword [0x11dc43c8], eax
setg al
test ecx, ecx
setle dl
jmp 0x100107c4
mov dl, 1
cmp eax, 3
jne 0x100107c8
mov eax, dword [0x100565cc]
sub esp, 8
mulss xmm1, dword [eax + 0x1c]
divss xmm0, xmm1
movss dword [esp + 0x38], xmm0
fld dword [esp + 0x38]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
add esp, 8
fstp dword [esp + 0x30]
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
cdq
mov ecx, 3
idiv ecx
movss xmm2, dword [0x1003a4e8]
add edx, dword [0x10f77518]
movd xmm0, edx
cvtdq2ps xmm0, xmm0
comiss xmm2, xmm0
ja 0x100107b6
movss xmm1, dword [esp + 0x30]
comiss xmm2, xmm1
ja 0x100107c0
minss xmm0, xmm1
cvttss2si eax, xmm0
mov dl, 1
test eax, eax
jle 0x100107c8
mov al, 1
xor dl, dl
mov dword [esp + 0x34], eax
mov cl, byte [0x10f77468]
mov eax, dword [esp + 0x34]
cmp byte [0x11dc421c], 0
jne 0x10010817
mov byte [0x11dc421d], dl
test al, al
je 0x1001081e
mov eax, dword [0x11dc4218]
cmp eax, 0xe
jge 0x10010817
inc eax
jmp 0x10010820
mov cl, byte [0x10f77468]
mov dl, 1
test cl, cl
je 0x100107ce
cmp byte [0x11dc44bc], 0
sete al
mov byte [0x11dc44bc], al
test al, al
je 0x100107ce
mov al, dl
xor dl, dl
jmp 0x100107d2
mov byte [0x11dc421d], 1
xor eax, eax
mov dword [0x11dc4218], eax
test cl, cl
je 0x10010bb9
mov eax, dword [0x100565cc]
mov ebx, dword [eax + 0x14]
cmp ebx, 1
jl 0x100108aa
nop word [eax + eax]
mov ecx, dword [0x100565c4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
cmp ebx, eax
je 0x100108a0
mov ecx, dword [0x100565d0]
push ebx
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov dword [esp + 0x30], eax
test eax, eax
je 0x100108a0
cmp dword [eax + 0x87], 0
jne 0x100108a0
test byte [edi + 0x24], 0x20
jne 0x10010bc0
cmp byte [0x10f771f6], 0
jne 0x1001089b
mov ecx, esi
call fcn.10002c80
mov ecx, dword [esp + 0x30]
mov esi, eax
call fcn.10002c80
mov ecx, dword [eax]
cmp ecx, dword [esi]
je 0x100108a0
mov byte [esp + 0x2f], 0
mov esi, dword [esp + 0x40]
dec ebx
cmp ebx, 1
jge 0x10010840
cmp byte [0x10f77470], 0
je 0x100108be
cmp byte [esp + 0x2f], 0
jne 0x10010bc0
cmp dword [esp + 0x3c], 9
je 0x10010bb9
mov eax, dword [0x10f77524]
cmp eax, 1
jne 0x100108dc
push edi
push esi
call fcn.1002b950
jmp 0x100108ed
cmp eax, 2
jne 0x100108ed
push edi
push esi
mov ecx, 0x11d55998
call fcn.1002bbb0
cmp byte [0x10f7746d], 0
movss xmm3, dword [0x1003a624]
je 0x100109b9
lea ecx, [esp + 0x48]
call fcn.10002ad0
movss xmm1, dword [0x1003a638]
comiss xmm1, xmm0
jbe 0x100109b9
mov eax, dword [0x10f77498]
test eax, eax
je 0x10010996
cmp eax, 1
jne 0x10010933
cmp byte [0x11dc421d], 0
jmp 0x10010994
cmp eax, 2
jne 0x10010943
cmp byte [0x11dc421d], 0
jne 0x10010999
jmp 0x10010996
cmp eax, 3
jne 0x10010965
cmp byte [0x11dc421d], 0
je 0x1001095b
movss xmm3, dword [0x10f77500]
jmp 0x10010999
movss xmm3, dword [0x10f77504]
jmp 0x10010999
cmp eax, 4
jne 0x100109b9
cmp byte [0x11dc421d], 0
je 0x10010984
cmp byte [0x11dc4215], 0
sete al
mov byte [0x11dc4215], al
jmp 0x10010992
mov al, byte [0x11dc4215]
test al, al
setne byte [0x11dc4217]
test al, al
je 0x10010999
xorps xmm3, xmm3
push edi
push esi
call fcn.1002bdf0
test al, al
je 0x100109b9
movd xmm0, dword [0x10f7749c]
cvtdq2ps xmm0, xmm0
movss dword [edi + 0xc], xmm0
jmp 0x10010bb9
mov eax, dword [0x10f77474]
dec eax
cmp eax, 3
ja case.default.0x100109c4
jmp dword [eax*4 + 0x10010bd4]
movss xmm0, dword [0x10f774fc]
movss dword [edi + 0xc], xmm0
jmp case.default.0x100109c4
mov dword [edi + 0xc], 0x42b20000
jmp case.default.0x100109c4
mov dword [edi + 0xc], 0xc2b20000
jmp case.default.0x100109c4
mov dword [edi + 0xc], 0x43340000
mov eax, dword [0x10f774a0]
cmp eax, 2
jne 0x10010aef
mov ecx, dword [0x100565c4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x120]
call eax
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 0x24]
call eax
mov ecx, dword [0x100565c4]
fstp dword [esp + 0x40]
mov eax, dword [ecx]
mov eax, dword [eax + 0x120]
call eax
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 0x24]
call eax
mov eax, dword [0x100565cc]
fstp dword [esp + 0x3c]
movss xmm0, dword [esp + 0x3c]
addss xmm0, dword [esp + 0x40]
divss xmm0, dword [eax + 0x1c]
mov eax, dword [eax + 0x18]
inc eax
addss xmm0, dword [0x1003a4b8]
cvttss2si ecx, xmm0
add eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x1003a4f8]
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [0x11dc44b8]
movss dword [esp + 0x3c], xmm0
jb 0x10010ac8
mov ecx, dword [0x100565c0]
push str.mp_facefronttime
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
call eax
cmp byte [0x11dc44cc], 0
movss xmm0, dword [eax + 0x28]
sete al
mulss xmm0, dword [0x1003a4b8]
mov byte [0x11dc44cc], al
addss xmm0, dword [esp + 0x3c]
movss dword [0x11dc44b8], xmm0
jmp 0x10010acd
mov al, byte [0x11dc44cc]
cmp byte [0x11dc421d], 0
mov edx, esi
mov ecx, edi
je 0x10010ae2
push 0
movzx eax, al
push eax
jmp 0x10010b41
test al, al
push 1
sete al
movzx eax, al
push eax
jmp 0x10010b41
cmp byte [0x11dc421d], 0
je 0x10010afe
push 0
push 0
jmp 0x10010b3d
cmp eax, 1
jne 0x10010b39
cmp dword [0x11dc4218], eax
jne 0x10010b1e
mov al, al
mov byte [esp + 0x34], al
push 1
push dword [esp + 0x38]
mov byte [0x11dc44dc], al
jmp 0x10010b3d
cmp byte [0x11dc44dc], 0
push 1
sete al
mov byte [esp + 0x38], al
push dword [esp + 0x38]
mov byte [0x11dc44dc], al
jmp 0x10010b3d
push 1
push 1
mov edx, esi
mov ecx, edi
call fcn.1000fc40
add esp, 8
cmp byte [0x10f7746f], 0
je 0x10010bb9
mov ecx, dword [edi + 0x24]
test cl, 4
je 0x10010bb2
cmp byte [esp + 0x3b], 0
jne 0x10010bb2
cmp byte [0x11dc44b4], 0
movss xmm1, dword [esi + 0xdc]
jne 0x10010b88
ucomiss xmm1, dword [0x1003a5d4]
lahf
test ah, 0x44
jp 0x10010bb9
mov byte [0x11dc44b4], 1
jmp 0x10010bb9
ucomiss xmm1, dword [0x1003a5ec]
lahf
test ah, 0x44
jp 0x10010b9d
or ecx, 4
mov dword [edi + 0x24], ecx
jmp 0x10010bb9
movss xmm0, dword [0x1003a5e8]
comiss xmm0, xmm1
jb 0x10010bb9
and ecx, 0xfffffffb
mov dword [edi + 0x24], ecx
jmp 0x10010bb9
mov byte [0x11dc44b4], 0
mov byte [0x11dc421c], 0
mov ecx, dword [esp + 0x7c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1002ff8e
mov esp, ebp
pop ebp
ret