Function at 0x100062f0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
push ebx
mov bh, byte [0x8c9cab]
mov bl, dl
push esi
mov esi, dword [0x1009602c]
push edi
mov dword [ebp - 0x14], ecx
movss xmm1, dword [esi + 0x25684]
movss xmm0, dword [esi + 0x25680]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10005350
movss xmm1, dword [0x1008e328]
movaps xmm2, xmm0
comiss xmm1, xmm2
movss dword [ebp - 0x1c], xmm2
ja 0x100065ba
test bl, bl
jne 0x10006359
cmp byte [0x8c9caa], 0x7f
je 0x10006359
test bh, bh
jne 0x100065ba
cmp byte [0x1009a35e], 0
je 0x1000636f
cmp byte [0x1009a356], 0
je 0x100065ba
test bl, bl
je 0x1000637d
mov al, byte [0x8c9caa]
mov byte [ebp - 1], al
jmp 0x10006381
mov byte [ebp - 1], 0x7f
movss xmm0, dword [esi + 0x25690]
movss dword [ebp - 0xc], xmm0
mov dword [ebp - 0x10], 0x56b5d0
mov edi, str.g_speed
call dword [ebp - 0x10]
mov dword [ebp - 0x10], 0x56b5d0
movd xmm1, dword [eax + 0xc]
cvtdq2ps xmm1, xmm1
movss dword [ebp - 8], xmm1
mov edi, str.com_maxfps
call dword [ebp - 0x10]
cmp dword [0x10099c90], 0x7d
movd xmm3, dword [eax + 0xc]
cvtdq2ps xmm3, xmm3
movaps xmm0, xmm3
divss xmm0, xmm1
movss dword [ebp - 0x10], xmm0
jne 0x100063e2
movaps xmm0, xmm1
divss xmm0, xmm3
movss dword [ebp - 0x10], xmm0
movss xmm1, dword [0x1008e4a0]
comiss xmm1, xmm2
jbe 0x100063fc
movaps xmm0, xmm1
subss xmm0, xmm2
subss xmm1, xmm0
jmp 0x10006410
cmp dword [0x797520], 0x3fe
jne 0x10006415
movss xmm1, dword [0x1008e4a8]
movss dword [ebp - 8], xmm1
mov eax, dword [0x1009602c]
movss xmm0, dword [eax + 0x25684]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x30], xmm0
movss xmm0, dword [eax + 0x25680]
fld qword [ebp - 0x30]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x30], xmm0
fld qword [ebp - 0x30]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIatan2
fstp qword [ebp - 0x30]
movsd xmm0, qword [ebp - 0x30]
cvtpd2ps xmm0, xmm0
movsx eax, bh
neg eax
mulss xmm0, dword [0x1008e498]
divss xmm0, dword [0x1008e3c0]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x28], xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
movsx eax, byte [ebp - 1]
movsd qword [ebp - 0x30], xmm0
xorps xmm0, xmm0
fld qword [ebp - 0x30]
cvtsi2sd xmm0, eax
movsd qword [ebp - 0x30], xmm0
fld qword [ebp - 0x30]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIatan2
fstp qword [ebp - 0x30]
movsd xmm0, qword [ebp - 0x30]
mulsd xmm0, qword [0x1008e3e8]
divsd xmm0, qword [0x1008e398]
movsd qword [ebp - 0x30], xmm0
movss xmm0, dword [ebp - 8]
subss xmm0, dword [ebp - 0x10]
divss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_acos_precise
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [0x1008e498]
divss xmm0, dword [0x1008e3c0]
cvtss2sd xmm0, xmm0
movsd qword [ebp - 0x20], xmm0
movss xmm0, dword [ebp - 0xc]
movss dword [ebp - 8], xmm0
test bh, bh
jg 0x1000658a
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x57
call esi
test ax, ax
jns 0x10006514
push 0x45
call esi
test ax, ax
jns 0x10006514
test bl, bl
jne 0x1000658a
push 0x53
call esi
test ax, ax
jns 0x1000652a
push 0x45
call esi
test ax, ax
jns 0x1000652a
test bl, bl
jne 0x1000658a
test bh, bh
js 0x1000655a
push 0x57
call esi
test ax, ax
jns 0x10006544
push 0x51
call esi
test ax, ax
jns 0x10006544
test bl, bl
jne 0x1000655a
push 0x53
call esi
test ax, ax
jns 0x100065ae
push 0x51
call esi
test ax, ax
jns 0x100065ae
test bl, bl
je 0x100065ae
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
subsd xmm0, qword [ebp - 0x30]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 8], xmm0
subss xmm0, dword [ebp - 0xc]
movss dword [eax], xmm0
movss xmm0, dword [ebp - 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movsd xmm0, qword [ebp - 0x28]
subsd xmm0, qword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
subsd xmm0, qword [ebp - 0x30]
cvtpd2ps xmm1, xmm0
movss dword [ebp - 8], xmm1
subss xmm1, dword [ebp - 0xc]
movss dword [eax], xmm1
movss xmm0, dword [ebp - 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movss xmm0, dword [0x1008e580]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret