Function at 0x10010bd0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
cmp byte [0x10132fe9], 0
push ebx
push esi
push edi
mov edi, ecx
je case.0x10010c56.0
mov ecx, dword [0x10131370]
mov eax, dword [0x10132fd4]
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
cmp ecx, 3
ja case.0x10010c01.0
jmp dword [ecx*4 + 0x10011320]
push eax
call esi
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x10010c2d
push eax
call esi
test ax, ax
setne al
jmp 0x10010c2d
push eax
call esi
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
je case.0x10010c56.0
cmp byte [0x10132fc8], 0
jne case.0x10010c56.0
mov ecx, dword [0x10131368]
mov eax, dword [0x10132fac]
cmp ecx, 3
ja case.0x10010c56.0
jmp dword [ecx*4 + 0x10011330]
push eax
call esi
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x10010c82
push eax
call esi
test ax, ax
setne al
jmp 0x10010c82
push eax
call esi
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
jne case.0x10010c56.0
cmp byte [0x10132ffc], al
jne case.0x10010c56.0
mov ecx, dword [0x10131358]
mov eax, dword [0x10132ff0]
cmp ecx, 3
ja case.0x10010c56.0
jmp dword [ecx*4 + 0x10011340]
push eax
call esi
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x10010cd6
push eax
call esi
test ax, ax
setne al
jmp 0x10010cd6
push eax
call esi
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
jne case.0x10010c56.0
mov ecx, dword [0x10131384]
mov eax, dword [0x10133000]
cmp ecx, 3
ja case.0x10010c56.0
jmp dword [ecx*4 + 0x10011350]
push eax
call esi
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x10010d1e
push eax
call esi
test ax, ax
setne al
jmp 0x10010d1e
push eax
call esi
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
jne case.0x10010c56.0
mov ecx, dword [0x1013137c]
mov eax, dword [0x10132fa4]
cmp ecx, 3
ja case.0x10010c56.0
jmp dword [ecx*4 + 0x10011360]
push eax
call esi
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x10010d66
push eax
call esi
test ax, ax
setne al
jmp 0x10010d66
push eax
call esi
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
jne case.0x10010c56.0
mov ecx, dword [0x1013135c]
mov eax, dword [0x10132fb0]
cmp ecx, 3
ja case.0x10010c56.0
jmp dword [ecx*4 + 0x10011370]
push eax
call esi
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x10010dae
push eax
call esi
test ax, ax
setne al
jmp 0x10010dae
push eax
call esi
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
jne case.0x10010c56.0
mov ecx, dword [0x10132a7c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je case.0x10010c56.0
mov ecx, dword [0x10132a7c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
test al, al
je case.0x10010c56.0
mov ebx, dword [0x10132ac8]
test ebx, ebx
je case.0x10010c56.0
mov eax, dword [0x10132ac4]
test eax, eax
jne 0x10010e25
mov edx, 0xe80c2f78
mov ecx, 0x101114a5
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113bd
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov dword [0x10132ac4], eax
cmp dword [eax + ebx], 0
jle case.0x10010c56.0
call fcn.1000a160
cmp eax, 8
je case.0x10010c56.0
call fcn.1000a160
cmp eax, 9
je case.0x10010c56.0
call fcn.1000a160
cmp eax, 0xa
je case.0x10010c56.0
mov eax, dword [0x10132af8]
mov ebx, dword [0x10132ac8]
test eax, eax
jne 0x10010e96
mov edx, 0xe80c2f78
mov ecx, 0x101115e9
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113bd
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov dword [0x10132af8], eax
test byte [eax + ebx], 1
jne case.0x10010c56.0
mov eax, dword fs:[0x2c]
mov ecx, dword [0x10132a40]
mov esi, dword [eax + ecx*4]
mov eax, dword [0x10138458]
cmp eax, dword [esi + 4]
jle 0x10010ef4
push 0x10138458
call fcn.100d6f44
add esp, 4
cmp dword [0x10138458], 0xffffffff
jne 0x10010ef4
mov ecx, dword [0x10132a78]
push str.m_yaw
mov eax, dword [ecx]
call dword [eax + 0x44]
push 0x10138458
mov dword [0x10138448], eax
call fcn.100d6ef3
add esp, 4
mov eax, dword [0x1013844c]
cmp eax, dword [esi + 4]
jle 0x10010f39
push 0x1013844c
call fcn.100d6f44
add esp, 4
cmp dword [0x1013844c], 0xffffffff
jne 0x10010f39
mov ecx, dword [0x10132a78]
push str.sensitivity
mov eax, dword [ecx]
call dword [eax + 0x44]
push 0x1013844c
mov dword [0x10138444], eax
call fcn.100d6ef3
add esp, 4
mov eax, dword [0x10138440]
cmp eax, dword [esi + 4]
jle 0x10010f76
push 0x10138440
call fcn.100d6f44
add esp, 4
cmp dword [0x10138440], 0xffffffff
jne 0x10010f76
movss xmm0, dword [edi + 0x10]
push 0x10138440
movss dword [0x10138450], xmm0
call fcn.100d6ef3
add esp, 4
mov eax, dword [0x10132f60]
mov ebx, dword [0x10132ac8]
test eax, eax
jne 0x10010fb3
mov edx, 0xe80c2f78
mov ecx, 0x10111b09
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113e5
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov dword [0x10132f60], eax
movq xmm0, qword [eax + ebx]
movq qword [esp + 0x1c], xmm0
movss xmm1, dword [esp + 0x20]
movss xmm0, dword [esp + 0x1c]
mulss xmm1, xmm1
mov dword [esp + 0x28], 0
mulss xmm0, xmm0
addss xmm1, xmm0
movss dword [esp + 0x14], xmm1
sqrtss xmm0, dword [esp + 0x14]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [esp + 0x28]
comiss xmm0, dword [0x10132fdc]
ja 0x1001102c
mov dword [esp + 0x28], 0
movss dword [esp + 0x14], xmm1
sqrtss xmm0, dword [esp + 0x14]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [0x10132f94]
comiss xmm0, dword [esp + 0x28]
jbe 0x1001130b
mov ecx, dword [0x10138448]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x14], eax
call dword [esp + 0x14]
mov ecx, dword [0x10138444]
fstp dword [esp + 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x14], eax
call dword [esp + 0x14]
fstp dword [esp + 0x14]
movss xmm0, dword [esp + 0x14]
xorps xmm1, xmm1
mulss xmm0, dword [esp + 0x10]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [edi + 0x28]
comiss xmm1, xmm0
jbe 0x100111b6
movss xmm2, dword [edi + 0x10]
movss xmm0, dword [0x10138450]
subss xmm0, xmm2
comiss xmm1, xmm0
jbe 0x1001130b
fld dword [esp + 0x20]
sub esp, 8
fld dword [esp + 0x24]
fpatan
mov dword [esp + 4], 0x43b40000
cvtps2pd xmm1, xmm2
fstp dword [esp + 0x20]
movss xmm0, dword [esp + 0x20]
mulss xmm0, dword [0x1012c96c]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x1012c870]
subsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
fmul dword [0x10132f78]
add esp, 8
movss xmm1, dword [esp + 0x10]
movaps xmm0, xmm1
xorps xmm0, xmmword [0x1012cb90]
fmul dword [0x1012c778]
fstp dword [esp + 0x18]
movss xmm2, dword [esp + 0x18]
comiss xmm0, xmm2
jbe 0x1001130b
maxss xmm2, dword [0x1012ca30]
push ecx
divss xmm2, xmm1
movss dword [esp], xmm2
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_roundf]
fmul dword [esp + 0x14]
movss xmm0, dword [edi + 0x10]
mov dword [esp], 0x43b40000
push ecx
fstp dword [esp + 0x20]
subss xmm0, dword [esp + 0x20]
movss dword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
movss xmm0, dword [0x10138450]
fstp dword [esp + 0x20]
movss xmm1, dword [esp + 0x20]
subss xmm0, xmm1
mov dword [esp + 4], 0x43b40000
movss dword [edi + 0x10], xmm1
movss dword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
movss xmm0, dword [esp + 0x18]
sqrtss xmm0, xmm0
fstp dword [esp + 0x20]
movss xmm1, dword [esp + 0x20]
divss xmm1, xmm0
movss dword [esp + 0x20], xmm1
fld dword [esp + 0x20]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
fstp dword [esp + 0x20]
movss xmm0, dword [esp + 0x20]
jmp 0x100112e9
comiss xmm0, xmm1
jbe 0x1001130b
movss xmm2, dword [edi + 0x10]
movss xmm0, dword [0x10138450]
subss xmm0, xmm2
comiss xmm0, xmm1
jbe 0x1001130b
fld dword [esp + 0x20]
sub esp, 8
fld dword [esp + 0x24]
fpatan
mov dword [esp + 4], 0x43b40000
cvtps2pd xmm1, xmm2
fstp dword [esp + 0x20]
movss xmm0, dword [esp + 0x20]
mulss xmm0, dword [0x1012c96c]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x1012c870]
subsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
fmul dword [0x10132f78]
add esp, 8
movss xmm0, dword [esp + 0x10]
fmul dword [0x1012c778]
fstp dword [esp + 0x18]
movss xmm1, dword [esp + 0x18]
comiss xmm1, xmm0
jbe 0x1001130b
minss xmm1, dword [0x1012c96c]
push ecx
divss xmm1, xmm0
movss dword [esp], xmm1
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_roundf]
fmul dword [esp + 0x14]
movss xmm0, dword [edi + 0x10]
mov dword [esp], 0x43b40000
push ecx
fstp dword [esp + 0x20]
subss xmm0, dword [esp + 0x20]
movss dword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
movss xmm0, dword [0x10138450]
fstp dword [esp + 0x20]
movss xmm1, dword [esp + 0x20]
subss xmm0, xmm1
mov dword [esp + 4], 0x43b40000
movss dword [edi + 0x10], xmm1
movss dword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
movss xmm0, dword [esp + 0x18]
sqrtss xmm0, xmm0
fstp dword [esp + 0x20]
movss xmm1, dword [esp + 0x20]
divss xmm1, xmm0
movss dword [esp + 0x20], xmm1
fld dword [esp + 0x20]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
fstp dword [esp + 0x20]
movss xmm0, dword [esp + 0x20]
mulss xmm0, dword [esp + 0x1c]
add esp, 8
mov ecx, dword [0x10132a7c]
cvttss2si eax, xmm0
mov word [edi + 0x44], ax
lea eax, [edi + 0xc]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x4c]
call eax
movss xmm0, dword [edi + 0x10]
movss dword [0x10138450], xmm0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret