Function at 0x10014de9
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x18
push ebx
mov ebx, dword [0x10281360]
push esi
push edi
mov edi, ecx
test ebx, ebx
je 0x100150a4
mov eax, dword [0x1028135c]
test eax, eax
jne 0x10014d2d
mov edx, 0xe80c2f78
mov ecx, 0x10219689
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195b1
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov dword [0x1028135c], eax
cmp dword [eax + ebx], 0
jle 0x100150a4
cmp byte [0x102815f8], 0
je 0x100150a4
call fcn.1000b770
cmp eax, 9
je 0x100150a4
cmp eax, 8
je 0x100150a4
cmp eax, 0xa
je 0x100150a4
mov ecx, dword [0x102813b4]
mov ebx, dword [0x10281360]
test ecx, ecx
jne 0x10014da5
mov edx, 0xe80c2f78
mov ecx, 0x102197a5
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195b1
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov ecx, eax
mov dword [0x102813b4], ecx
test byte [ecx + ebx], 1
mov eax, dword [0x102812e8]
je 0x10014dbb
mov edx, dword [eax + 0x1c]
mov dword [0x1027cbd8], edx
jmp 0x10014dc1
mov edx, dword [0x1027cbd8]
mov eax, dword [eax + 0x1c]
mov esi, dword [0x1024730c]
sub eax, edx
mov edx, dword [0x102815c0]
cmp eax, 2
setle al
mov byte [0x102816b4], al
cmp esi, 3
ja case.0x10014de2.0
jmp dword [esi*4 + 0x100150ac]
push edx
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x10014e1a
push edx
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
jmp 0x10014e1a
push edx
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
je 0x100150a4
mov al, byte [0x102816b4]
mov ecx, dword [0x102813b4]
test al, al
je 0x1001509d
mov ebx, dword [0x10281360]
test ecx, ecx
jne 0x10014e70
mov edx, 0xe80c2f78
mov ecx, 0x102197a5
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195b1
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov ecx, eax
mov dword [0x102813b4], ecx
test byte [ecx + ebx], 1
jne 0x1001509d
cmp byte [0x10281634], 0
je 0x10014f2a
cmp byte [0x1028161f], 0
je 0x10014f2a
mov eax, dword [0x102815f4]
test al, al
je 0x10014ebd
mov ecx, dword [0x1024b32c]
and dword [edi + 0x30], 0xfffffff7
push 0
push str._forward
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c8]
call eax
mov eax, dword [0x102815f4]
test ah, ah
je 0x10014edc
mov ecx, dword [0x1024b32c]
and dword [edi + 0x30], 0xffffffef
push 0
push str._back
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c8]
call eax
cmp byte [0x102815f6], 0
je 0x10014f03
mov ecx, dword [0x1024b32c]
and dword [edi + 0x30], 0xfffffdff
push 0
push str._moveleft
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c8]
call eax
cmp byte [0x102815f7], 0
je 0x10014f2a
mov ecx, dword [0x1024b32c]
and dword [edi + 0x30], 0xfffffbff
push 0
push str._moveright
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c8]
call eax
or dword [edi + 0x30], 4
mov eax, dword [0x102813d8]
mov ebx, dword [0x10281360]
mov byte [0x10286f59], 1
test eax, eax
jne 0x10014f72
mov edx, 0xe80c2f78
mov ecx, 0x10219945
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195d9
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov dword [0x102813d8], eax
movss xmm1, dword [eax + ebx + 4]
movss xmm0, dword [eax + ebx]
mulss xmm0, xmm0
mov dword [esp + 0x14], 0
mulss xmm1, xmm1
addss xmm0, xmm1
movss dword [esp + 0x10], xmm0
sqrtss xmm0, dword [esp + 0x10]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0x14]
mulss xmm0, dword [0x102408ec]
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_cosf
mulss xmm0, dword [0x102408ec]
mov eax, dword [0x102813d8]
movss dword [edi + 0x28], xmm0
movss dword [edi + 0x24], xmm0
mov edi, dword [0x10281360]
test eax, eax
jne 0x10015005
mov edx, 0xe80c2f78
mov ecx, 0x10219945
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195d9
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov dword [0x102813d8], eax
mov dword [eax + edi + 4], 0
mov eax, dword [0x102813d8]
mov edi, dword [0x10281360]
test eax, eax
jne 0x1001504a
mov edx, 0xe80c2f78
mov ecx, 0x10219945
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195d9
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov dword [0x102813d8], eax
mov dword [eax + edi], 0
mov eax, dword [0x102813d8]
mov edi, dword [0x10281360]
test eax, eax
jne 0x1001508e
mov edx, 0xe80c2f78
mov ecx, 0x10219945
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195d9
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov dword [0x102813d8], eax
mov dword [eax + edi + 8], 0x43bb0000
pop edi
pop esi
pop ebx
add esp, 0x18
ret
mov byte [0x10286f59], 0
pop edi
pop esi
pop ebx
add esp, 0x18
ret