Function at 0x10022b10
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100f4b8b
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
push ebx
push esi
push edi
mov eax, dword [0x1011e00c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x24], ebx
cmp byte [0x101205a8], 0
je 0x1002347e
mov eax, dword [0x1011e208]
mov ecx, dword [0x10120588]
dec eax
cmp eax, 3
ja case.default.0x10022b5e
jmp dword [eax*4 + 0x100234a8]
push ecx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne al
jmp 0x10022b95
push ecx
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
jmp 0x10022b95
push ecx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
sete al
jmp 0x10022b95
mov al, byte [ebp + 0xb]
test al, al
je 0x1002347e
mov ecx, dword [0x101202f8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
test al, al
je 0x1002347e
mov ecx, dword [0x101202f8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x1002347e
mov edi, dword [0x10120420]
test edi, edi
je 0x1002347e
mov eax, dword [0x10120334]
test eax, eax
jne 0x10022c0f
call fcn.100034c0
mov edx, 0xe80c2f78
mov ecx, 0x10110195
call fcn.100018f0
mov edx, 0xc10bf213
mov ecx, 0x101100ad
mov esi, eax
call fcn.100018f0
push esi
push eax
call fcn.1008e510
mov dword [0x10120334], eax
cmp dword [edi + eax], 0
jle 0x1002347e
call fcn.1000f8e0
cmp eax, 9
je 0x1002347e
call fcn.1000f8e0
cmp eax, 8
je 0x1002347e
call fcn.10023560
test byte [eax + 8], 1
jne 0x1002347e
mov eax, dword [ebx + 0x50]
mov esi, dword [ebp + 8]
test eax, eax
jne 0x10023316
mov ecx, dword [0x1012031c]
push str.m_yaw
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [0x1012031c]
mov esi, eax
push str.sensitivity
mov edx, dword [ecx]
call dword [edx + 0x44]
mov edx, dword [esi]
mov ecx, esi
mov edi, eax
mov edx, dword [edx + 0x30]
call edx
mov eax, dword [edi]
mov ecx, edi
fstp dword [ebp - 0x20]
mov eax, dword [eax + 0x30]
call eax
mov eax, dword [0x101202ec]
lea ecx, [ebp - 0x20]
movss xmm0, dword [0x1011e240]
lea edx, [ebp - 0x2c]
mov esi, dword [ebp + 8]
fstp dword [ebp - 0x1c]
divss xmm0, dword [eax + 0x20]
mov dword [ebp - 0x28], 0x41f00000
mov dword [ebp - 0x2c], 0xc1f00000
addss xmm0, dword [0x10116f48]
cvttss2si eax, xmm0
movss xmm0, dword [0x10117170]
mov dword [ebp - 0x34], eax
movsx eax, word [esi + 0x44]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [ebp - 0x20]
mulss xmm1, dword [ebp - 0x1c]
comiss xmm0, xmm1
movss dword [ebp - 0x20], xmm1
seta al
test al, al
cmove edx, ecx
lea ecx, [ebp - 0x28]
comiss xmm1, dword [0x10117070]
xorps xmm1, xmm1
seta al
test al, al
cmove ecx, edx
cmp byte [0x101207a4], 0
movss xmm2, dword [ecx]
movss dword [ebp - 0x18], xmm2
je 0x10022d2a
ucomiss xmm2, xmm1
mov dword [ebp - 0x20], 4
lahf
test ah, 0x44
jp 0x10022d31
mov dword [ebp - 0x20], 2
movq xmm0, qword [esi + 0xc]
xor edi, edi
movss xmm5, dword [esi + 0x24]
movss xmm6, dword [esi + 0x28]
movq qword [ebp - 0x48], xmm0
movss xmm3, dword [ebp - 0x44]
movss dword [ebp - 0x28], xmm5
movss dword [ebp - 0x2c], xmm6
movss dword [ebx + 0x48], xmm3
mov dword [ebp - 0x38], edi
jmp 0x10022d63
xorps xmm1, xmm1
cmp edi, 1
jle 0x100230c7
movd xmm0, dword [0x1011e250]
movaps xmm4, xmm2
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x4c], xmm4
divss xmm2, xmm0
movaps xmm0, xmm2
movss dword [ebp - 0x18], xmm2
call fcn.10003690
movaps xmm1, xmm0
movaps xmm0, xmm4
call fcn.10003690
comiss xmm0, xmm1
movss dword [ebp - 0x30], xmm0
jb 0x100232fa
nop dword [eax]
push esi
lea ecx, [ebp - 0xb4]
call fcn.100234c0
mov dword [ebp - 4], 0
cmp edi, 2
jne 0x10022dd5
or dword [ebp - 0x84], 4
mov byte [ebx + 0x2c], 1
jmp 0x10022de5
cmp edi, 3
jne 0x10022e01
and dword [ebp - 0x84], 0xfffffffb
mov byte [ebx + 0x2c], 0
movss dword [ebp - 0x8c], xmm6
movss dword [ebp - 0x90], xmm5
movss dword [ebp - 0xa4], xmm3
mov byte [ebx + 0x38], 1
mov eax, dword [0x101204a8]
mov ecx, dword [eax + 0x1c]
dec ecx
call fcn.1001f950
mov edi, 1
cmp dword [ebp - 0x34], edi
jl 0x1002306f
nop dword [eax]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
push ecx
mulss xmm0, dword [ebp - 0x18]
addss xmm0, dword [ebp - 0x44]
movss dword [ebp - 0x3c], xmm0
fld dword [ebp - 0x3c]
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll__fdclass
add esp, 4
test ax, ax
jle 0x10022e4f
xorps xmm1, xmm1
jmp 0x10022eb5
movss xmm1, dword [ebp - 0x3c]
comiss xmm1, dword [0x10117180]
jb 0x10022e6a
movss xmm0, dword [0x101170b8]
comiss xmm0, xmm1
jae 0x10022eb5
movaps xmm0, xmm1
divss xmm0, dword [0x101170e0]
call fcn.10003690
movss dword [ebp - 0x1c], xmm0
fld dword [ebp - 0x1c]
push ecx
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss xmm1, dword [ebp - 0x3c]
xorps xmm0, xmm0
fstp dword [ebp - 0x1c]
add esp, 4
comiss xmm0, xmm1
movss xmm0, dword [ebp - 0x1c]
mulss xmm0, dword [0x101170e0]
jbe 0x10022eb1
addss xmm1, xmm0
jmp 0x10022eb5
subss xmm1, xmm0
movss dword [esi + 0x10], xmm1
subss xmm1, dword [ebx + 0x48]
movaps xmm0, xmm1
call fcn.10003690
comiss xmm0, dword [0x10120784]
ja 0x1002306f
call fcn.10023560
push esi
mov ecx, eax
call fcn.1000fb40
call fcn.10023560
mov ecx, dword [0x10120420]
mov esi, eax
mov dword [ecx + 0x3348], 0
mov ecx, dword [esi + 0x34]
mov dword [ecx], 0
mov ecx, dword [esi + 0x30]
mov dword [ecx], 0xffffffff
mov ecx, dword [0x101204cc]
mov edx, dword [ecx]
call dword [edx + 8]
mov eax, dword [0x101202ec]
mov ecx, dword [esi]
mov ebx, dword [0x10120420]
mov dword [ebp - 0x1c], ebx
mov dword [eax + 0x10], ecx
mov eax, dword [0x101202ec]
mov ecx, dword [esi + 4]
mov dword [eax + 0x14], ecx
mov ecx, dword [0x101204a8]
mov al, byte [esi + 0x28]
mov byte [ecx + 8], al
mov al, byte [esi + 0x29]
mov byte [ecx + 0x18], al
mov eax, dword [0x101204a4]
mov byte [esi + 0xf0], 0
test eax, eax
jne 0x10022f8c
call fcn.100034c0
mov edx, 0xe80c2f78
mov ecx, 0x10110509
call fcn.100018f0
mov edx, 0xc10bf213
mov ecx, 0x101100c5
mov esi, eax
call fcn.100018f0
push esi
push eax
call fcn.1008e510
mov ebx, dword [0x10120420]
mov dword [0x101204a4], eax
mov ecx, dword [ebp - 0x1c]
movss xmm0, dword [ecx + eax + 8]
comiss xmm0, dword [0x10116ed4]
ja 0x10023069
test eax, eax
jne 0x10022fd7
call fcn.100034c0
mov edx, 0xe80c2f78
mov ecx, 0x10110509
call fcn.100018f0
mov edx, 0xc10bf213
mov ecx, 0x101100c5
mov esi, eax
call fcn.100018f0
push esi
push eax
call fcn.1008e510
mov dword [0x101204a4], eax
movss xmm1, dword [ebx + eax + 4]
movss xmm0, dword [ebx + eax]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10001660
ucomiss xmm0, dword [0x10116ed4]
lahf
test ah, 0x44
jnp 0x10023069
call fcn.1000f8e0
mov esi, dword [ebp + 8]
cmp eax, 9
je 0x1002306c
lea edx, [ebp - 0x11]
mov byte [ebp - 0x11], 0
mov ecx, esi
call fcn.10022130
mov ebx, dword [ebp - 0x24]
test al, al
jne 0x10023033
cmp byte [ebp - 0x11], al
jne 0x1002306f
inc edi
cmp edi, dword [ebp - 0x34]
jle 0x10022e20
jmp 0x1002306f
movss xmm0, dword [ebp - 0x18]
mov dword [ebx + 0x50], edi
mov dword [ebx + 0x4c], edi
mov eax, dword [0x101202ec]
mov eax, dword [eax + 0x1c]
add eax, edi
mov dword [ebx + 0x34], eax
mov eax, dword [0x101202ec]
mov eax, dword [eax + 0x1c]
mov dword [ebx + 0x30], eax
mov eax, dword [esi + 0x24]
mov dword [ebx + 0x40], eax
mov eax, dword [esi + 0x28]
mov dword [ebx + 0x44], eax
movss dword [ebx + 0x3c], xmm0
jmp 0x1002306f
mov esi, dword [ebp + 8]
mov ebx, dword [ebp - 0x24]
movss xmm1, dword [ebp - 0x4c]
mov dword [ebp - 4], 0xffffffff
movd xmm0, dword [0x1011e250]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
movss xmm0, dword [ebp - 0x18]
addss xmm0, xmm1
movss dword [ebp - 0x18], xmm0
call fcn.10003690
movss xmm1, dword [ebp - 0x30]
comiss xmm1, xmm0
mov edi, dword [ebp - 0x38]
movss xmm3, dword [ebp - 0x44]
movss xmm5, dword [ebp - 0x28]
movss xmm6, dword [ebp - 0x2c]
jae 0x10022db0
movss xmm2, dword [ebp - 0x18]
jmp 0x100232f2
push esi
lea ecx, [ebp - 0xb4]
call fcn.100234c0
mov dword [ebp - 4], 1
test edi, edi
jne 0x100230eb
or dword [ebp - 0x84], 4
mov byte [ebx + 0x2c], 1
jmp 0x100230fb
cmp edi, 1
jne 0x1002310f
and dword [ebp - 0x84], 0xfffffffb
mov byte [ebx + 0x2c], 0
movss dword [ebp - 0x8c], xmm1
movss dword [ebp - 0x90], xmm1
mov byte [ebx + 0x38], 0
mov eax, dword [0x101204a8]
mov ecx, dword [eax + 0x1c]
dec ecx
call fcn.1001f950
mov edi, 1
cmp dword [ebp - 0x34], edi
jl 0x100232dc
nop dword [eax + eax]
call fcn.10023560
push esi
mov ecx, eax
call fcn.1000fb40
call fcn.10023560
mov ecx, dword [0x10120420]
mov esi, eax
mov dword [ecx + 0x3348], 0
mov ecx, dword [esi + 0x34]
mov dword [ecx], 0
mov ecx, dword [esi + 0x30]
mov dword [ecx], 0xffffffff
mov ecx, dword [0x101204cc]
mov edx, dword [ecx]
call dword [edx + 8]
mov eax, dword [0x101202ec]
mov ecx, dword [esi]
mov dword [eax + 0x10], ecx
mov eax, dword [0x101202ec]
mov ecx, dword [esi + 4]
mov dword [eax + 0x14], ecx
mov ecx, dword [0x101204a8]
mov al, byte [esi + 0x28]
mov byte [ecx + 8], al
mov al, byte [esi + 0x29]
mov byte [ecx + 0x18], al
mov ecx, dword [0x10120420]
mov eax, dword [0x101204a4]
mov byte [esi + 0xf0], 0
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x30], ecx
test eax, eax
jne 0x100231ee
call fcn.100034c0
mov edx, 0xe80c2f78
mov ecx, 0x10110509
call fcn.100018f0
mov edx, 0xc10bf213
mov ecx, 0x101100c5
mov esi, eax
call fcn.100018f0
push esi
push eax
call fcn.1008e510
mov ecx, dword [0x10120420]
mov dword [0x101204a4], eax
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x30]
movss xmm0, dword [ecx + eax + 8]
comiss xmm0, dword [0x10116ed4]
ja 0x100232d9
test eax, eax
jne 0x10023239
call fcn.100034c0
mov edx, 0xe80c2f78
mov ecx, 0x10110509
call fcn.100018f0
mov edx, 0xc10bf213
mov ecx, 0x101100c5
mov esi, eax
call fcn.100018f0
push esi
push eax
call fcn.1008e510
mov dword [0x101204a4], eax
mov ecx, dword [ebp - 0x1c]
movss xmm1, dword [ecx + eax + 4]
movss xmm0, dword [ecx + eax]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10001660
ucomiss xmm0, dword [0x10116ed4]
lahf
test ah, 0x44
jnp 0x100232d9
call fcn.1000f8e0
mov esi, dword [ebp + 8]
cmp eax, 9
je 0x100232dc
lea edx, [ebp - 0x11]
mov byte [ebp - 0x11], 0
mov ecx, esi
call fcn.10022130
test al, al
jne 0x10023295
cmp byte [ebp - 0x11], al
jne 0x100232dc
inc edi
cmp edi, dword [ebp - 0x34]
jle 0x10023130
jmp 0x100232dc
movss xmm0, dword [ebp - 0x90]
movss xmm2, dword [ebp - 0x18]
mov dword [ebx + 0x50], edi
mov dword [ebx + 0x4c], edi
mov eax, dword [0x101202ec]
mov eax, dword [eax + 0x1c]
add eax, edi
mov dword [ebx + 0x34], eax
mov eax, dword [0x101202ec]
mov eax, dword [eax + 0x1c]
movss dword [ebx + 0x40], xmm0
movss xmm0, dword [ebp - 0x8c]
mov dword [ebx + 0x30], eax
movss dword [ebx + 0x44], xmm0
movss dword [ebx + 0x3c], xmm2
jmp 0x100232e1
mov esi, dword [ebp + 8]
movss xmm2, dword [ebp - 0x18]
mov dword [ebp - 4], 0xffffffff
movss xmm5, dword [ebp - 0x28]
movss xmm6, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x38]
movss xmm3, dword [ebp - 0x44]
mov eax, dword [ebx + 0x50]
test eax, eax
jne 0x10023316
inc edi
mov dword [ebp - 0x38], edi
cmp edi, dword [ebp - 0x20]
jl 0x10022d60
test eax, eax
je 0x10023493
mov ecx, dword [esi + 0x30]
mov eax, ecx
and eax, 0xfffffffb
or ecx, 4
cmp byte [ebx + 0x2c], 0
cmove ecx, eax
mov dword [esi + 0x30], ecx
cmp byte [ebx + 0x38], 0
je 0x10023459
mov eax, dword [ebx + 0x40]
mov dword [esi + 0x24], eax
mov eax, dword [ebx + 0x44]
mov dword [esi + 0x28], eax
mov eax, dword [ebx + 0x4c]
sub eax, dword [ebx + 0x50]
inc eax
push ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [ebx + 0x3c]
addss xmm0, dword [ebx + 0x48]
movss dword [ebp + 8], xmm0
fld dword [ebp + 8]
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll__fdclass
add esp, 4
test ax, ax
jle 0x10023391
xorps xmm1, xmm1
movss dword [esi + 0x10], xmm1
dec dword [ebx + 0x50]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
movss xmm0, dword [ebp + 8]
comiss xmm0, dword [0x10117180]
jb 0x100233cb
movss xmm1, dword [0x101170b8]
comiss xmm1, xmm0
jb 0x100233cb
movaps xmm1, xmm0
movss dword [esi + 0x10], xmm1
dec dword [ebx + 0x50]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
divss xmm0, dword [0x101170e0]
call fcn.10003690
movss dword [ebp - 0x30], xmm0
fld dword [ebp - 0x30]
push ecx
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss xmm2, dword [ebp + 8]
xorps xmm0, xmm0
add esp, 4
comiss xmm0, xmm2
fstp dword [ebp - 0x20]
jbe 0x10023429
movss xmm1, dword [ebp - 0x20]
mulss xmm1, dword [0x101170e0]
addss xmm1, xmm2
movss dword [esi + 0x10], xmm1
dec dword [ebx + 0x50]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
movss xmm0, dword [ebp - 0x20]
movaps xmm1, xmm2
mulss xmm0, dword [0x101170e0]
subss xmm1, xmm0
movss dword [esi + 0x10], xmm1
dec dword [ebx + 0x50]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
dec dword [ebx + 0x50]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov dword [ebx + 0x50], 0
mov dword [ebx + 0x34], 0
mov dword [ebx + 0x30], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4