Function at 0x10012ff0
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x1c
cmp byte [0x101f78e9], 0
push ebx
push ebp
push esi
push edi
mov ebp, ecx
je 0x10013413
mov edx, dword [0x101be2bc]
mov eax, dword [0x101f78cc]
cmp edx, 3
ja case.0x10013016.0
jmp dword [edx*4 + 0x1001341c]
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x1001304e
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
jmp 0x1001304e
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
je 0x10013413
mov edi, dword [0x101f764c]
test edi, edi
je 0x10013413
mov eax, dword [0x101f7648]
test eax, eax
jne 0x1001309b
mov edx, 0xe80c2f78
mov ecx, 0x1014c9ed
call fcn.10003ad0
mov edx, 0xc10bf213
mov ecx, 0x1014c915
mov esi, eax
call fcn.10003ad0
mov edx, esi
mov ecx, eax
call fcn.100abe50
mov dword [0x101f7648], eax
cmp dword [eax + edi], 0
jle 0x10013413
call fcn.1000a2e0
cmp eax, 9
je 0x10013413
cmp eax, 8
je 0x10013413
mov eax, dword [0x101f7680]
mov esi, dword [0x101f764c]
mov edi, esi
test eax, eax
jne 0x10013101
mov edx, 0xe80c2f78
mov ecx, 0x101985a5
call fcn.10003ad0
mov edx, 0xc10bf213
mov ecx, 0x1014c915
mov esi, eax
call fcn.10003ad0
mov edx, esi
mov ecx, eax
call fcn.100abe50
mov esi, dword [0x101f764c]
mov dword [0x101f7680], eax
test byte [eax + edi], 1
jne 0x10013413
movss xmm1, dword [esi + 0x118]
xorps xmm2, xmm2
movss xmm0, dword [esi + 0x114]
mulss xmm0, xmm0
mov dword [esp + 0x18], 0
mulss xmm1, xmm1
addss xmm0, xmm1
movss dword [esp + 0x14], xmm0
sqrtss xmm0, dword [esp + 0x14]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [0x101b841c]
comiss xmm0, dword [esp + 0x18]
jae 0x10013413
mov eax, dword [ebp + 0x30]
mov ebx, eax
mov edx, eax
shr ebx, 3
mov ecx, eax
shr edx, 0xa
shr ecx, 9
and bl, 1
shr eax, 4
and dl, 1
and cl, 1
test al, 1
je 0x100131be
mov dword [0x101f7894], 0xc3340000
test cl, cl
je 0x1001319e
movss xmm2, dword [0x101b8634]
mov dword [0x101f7894], 0xc3610000
jmp 0x10013224
movss xmm2, dword [0x101b862c]
test dl, dl
je 0x10013224
movss xmm2, dword [0x101b8628]
mov dword [0x101f7894], 0xc3070000
jmp 0x10013224
test cl, cl
je 0x100131ec
movss xmm2, dword [0x101b84b8]
mov dword [0x101f7894], 0x42b40000
test bl, bl
je 0x10013224
movss xmm2, dword [0x101b8490]
mov dword [0x101f7894], 0x42340000
jmp 0x10013224
test dl, dl
je 0x1001321a
movss xmm2, dword [0x101b8620]
mov dword [0x101f7894], 0xc2b40000
test bl, bl
je 0x10013224
movss xmm2, dword [0x101b8614]
mov dword [0x101f7894], 0xc2340000
jmp 0x10013224
mov dword [0x101f7894], 0
addss xmm2, dword [0x101c04c8]
mov eax, dword [0x101f764c]
push ecx
movss dword [0x101c04c8], xmm2
mov dword [ebp + 0x24], 0
mov dword [ebp + 0x28], 0
movq xmm0, qword [eax + 0x114]
movq qword [esp + 0x1c], xmm0
fld dword [esp + 0x20]
fld dword [esp + 0x1c]
fpatan
movss xmm1, dword [0x101c04c8]
fstp dword [esp + 0x18]
movss xmm0, dword [esp + 0x18]
mulss xmm0, dword [0x101b84a0]
subss xmm1, xmm0
movss dword [esp + 0x14], xmm1
fld dword [esp + 0x14]
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll__fdclass
add esp, 4
test ax, ax
jle 0x100132e6
xorps xmm3, xmm3
movss xmm0, dword [0x101b8550]
movss dword [ebp + 0x28], xmm0
movss xmm0, dword [0x101c04c8]
subss xmm0, xmm3
push ecx
movss dword [esp + 0x14], xmm0
fld dword [esp + 0x14]
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll__fdclass
add esp, 4
test ax, ax
jle 0x10013370
xorps xmm1, xmm1
movss dword [0x101c04c8], xmm1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
movss xmm2, dword [esp + 0x10]
comiss xmm2, dword [0x101b862c]
jb 0x10013307
movss xmm0, dword [0x101b84e0]
comiss xmm0, xmm2
jb 0x10013307
xorps xmm1, xmm1
jmp 0x10013357
movaps xmm0, xmm2
mulss xmm0, dword [0x101b8240]
call fcn.10007cd0
movss dword [esp + 0x14], xmm0
fld dword [esp + 0x14]
push ecx
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss xmm2, dword [esp + 0x14]
xorps xmm1, xmm1
fstp dword [esp + 0x18]
movss xmm0, dword [esp + 0x18]
add esp, 4
comiss xmm1, xmm2
mulss xmm0, dword [0x101b853c]
jbe 0x10013353
addss xmm2, xmm0
jmp 0x10013357
subss xmm2, xmm0
comiss xmm2, xmm1
movaps xmm3, xmm2
jbe 0x1001329b
movss xmm0, dword [0x101b863c]
jmp 0x100132a3
movss xmm0, dword [esp + 0x10]
comiss xmm0, dword [0x101b862c]
jb 0x1001339f
movss xmm1, dword [0x101b84e0]
comiss xmm1, xmm0
jb 0x1001339f
movaps xmm1, xmm0
movss dword [0x101c04c8], xmm1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
mulss xmm0, dword [0x101b8240]
call fcn.10007cd0
movss dword [esp + 0x14], xmm0
fld dword [esp + 0x14]
push ecx
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss xmm2, dword [esp + 0x14]
xorps xmm0, xmm0
add esp, 4
comiss xmm0, xmm2
fstp dword [esp + 0x14]
jbe 0x100133f6
movss xmm1, dword [esp + 0x14]
mulss xmm1, dword [0x101b853c]
addss xmm1, xmm2
movss dword [0x101c04c8], xmm1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
movss xmm0, dword [esp + 0x14]
movaps xmm1, xmm2
mulss xmm0, dword [0x101b853c]
subss xmm1, xmm0
movss dword [0x101c04c8], xmm1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret