Function at 0x10005adf
Capabilities:
Log keystrokes via polling

Disassembly:
push 0x1c
mov eax, 0x1002de7a
call fcn.1001820d
mov edi, ecx
lea esi, [edi + 0x220]
push esi
call fcn.1000527f
test eax, eax
je 0x10005f55
mov ebx, dword [esi]
mov esi, dword [esi + 4]
and dword [ebp - 0x10], 0
push 0x11
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], esi
call dword [sym.imp.USER32.dll_GetKeyState]
mov edx, dword [sym.imp.USER32.dll_SendMessageA]
test ax, ax
mov eax, dword [ebp + 0xc]
jns 0x10005b45
cmp eax, 0x41
jne 0x10005b45
lea eax, [edi + 0xa0]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x138]
mov eax, dword [ebp + 0xc]
jmp 0x10005cdf
cmp eax, 0x25
ja 0x10005cbd
je 0x10005cab
mov ecx, eax
sub ecx, 9
je 0x10005c3d
sub ecx, 0x18
je 0x10005bf8
sub ecx, 1
je 0x10005bad
sub ecx, 1
je 0x10005b93
sub ecx, 1
jne 0x10005cdf
push ecx
push 6
push 0x115
push dword [edi + 0x4c]
call edx
mov ebx, dword [edi + 0xcc]
jmp 0x10005e9c
push 0
push 7
push 0x115
push dword [edi + 0x4c]
call edx
mov ebx, dword [edi + 0xc8]
dec ebx
jmp 0x10005e9c
lea eax, [ebp - 0x28]
mov ecx, edi
push eax
call fcn.10004c70
push 0
push 3
push 0x115
push dword [edi + 0x4c]
call dword [sym.imp.USER32.dll_SendMessageA]
lea eax, [ebp - 0x18]
mov ecx, edi
push eax
call fcn.10004c70
mov eax, dword [edi + 0xc8]
mov ecx, dword [ebp - 0x18]
dec eax
sub ecx, dword [ebp - 0x28]
je 0x10005bf1
add ebx, ecx
mov dword [ebp - 0x20], ebx
cmp ebx, eax
jle 0x10005dc1
mov ebx, eax
jmp 0x10005e9c
lea eax, [ebp - 0x18]
mov ecx, edi
push eax
call fcn.10004c70
push 0
push 2
push 0x115
push dword [edi + 0x4c]
call dword [sym.imp.USER32.dll_SendMessageA]
lea eax, [ebp - 0x28]
mov ecx, edi
push eax
call fcn.10004c70
mov ecx, dword [ebp - 0x28]
mov eax, dword [edi + 0xcc]
sub ecx, dword [ebp - 0x18]
je 0x10005bf1
add ebx, ecx
mov dword [ebp - 0x20], ebx
cmp ebx, eax
jge 0x10005dc1
jmp 0x10005bf1
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x10005c6e
cmp esi, dword [edi + 0xd4]
jg 0x10005cb7
jne 0x10005dc1
cmp ebx, dword [edi + 0xcc]
jle 0x10005dc1
mov esi, dword [edi + 0xd0]
dec ebx
dec esi
jmp 0x10005c99
mov eax, dword [edi + 0xd0]
dec eax
cmp esi, eax
jl 0x10005eb3
jne 0x10005dc1
mov eax, dword [edi + 0xc8]
dec eax
cmp ebx, eax
jge 0x10005dc1
mov esi, dword [edi + 0xd4]
inc ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x10], 1
jmp 0x10005dc1
cmp esi, dword [edi + 0xd4]
jle 0x10005dc1
dec esi
jmp 0x10005eb4
mov ecx, eax
sub ecx, 0x26
je 0x10005ebc
sub ecx, 1
je 0x10005ea4
sub ecx, 1
je 0x10005e8c
sub ecx, 6
je 0x10005cf7
push dword [ebp + 0x10]
push eax
push dword [ebp + 8]
push dword [edi + 0x4c]
push dword [edi + 0x68]
call dword [sym.imp.USER32.dll_CallWindowProcA]
jmp 0x10005dc1
push dword [edi + 0x224]
mov ecx, edi
push dword [edi + 0x220]
call fcn.100050aa
test eax, eax
je 0x10005dc1
lea ecx, [ebp + 0x10]
push ecx
push dword [edi + 0x224]
lea esi, [edi + 0x220]
push dword [esi]
lea ecx, [edi + 0xa4]
call fcn.10003dc1
or eax, 0xffffffff
cmp word [ebp + 0x10], ax
je 0x10005f55
push 0x10030426
lea ecx, [ebp + 8]
call fcn.10001ea8
push dword [edi + 0x224]
and dword [ebp - 4], 0
mov ecx, edi
push dword [esi]
call fcn.100041d3
mov esi, dword [ebp + 8]
lea edx, [eax + 4]
test esi, esi
je 0x10005d6a
mov ecx, dword [esi]
jmp 0x10005d6c
xor ecx, ecx
mov eax, dword [edx]
push ecx
push edx
call dword [eax + 0x18]
push dword [edi + 0x224]
mov ecx, edi
push dword [edi + 0x220]
push 1
call fcn.10007e63
push dword [edi + 0x224]
lea ecx, [edi + 0xa4]
push dword [edi + 0x220]
call fcn.10003cb6
push 0
lea eax, [edi + 0x220]
mov ecx, edi
push eax
call fcn.10007487
or dword [ebp - 4], 0xffffffff
test esi, esi
je 0x10005dbe
mov ecx, esi
call fcn.100076f3
mov esi, dword [ebp - 0x14]
lea eax, [edi + 0x220]
push eax
lea ecx, [ebp - 0x20]
call fcn.10002274
test eax, eax
jne 0x10005f55
cmp dword [edi + 0x1b4], eax
jne 0x10005e2f
lea ecx, [edi + 0x230]
call fcn.100090f1
mov eax, dword [edi + 0x110]
neg eax
push 0x10
sbb eax, eax
add eax, 4
mov dword [edi + 0x1b4], eax
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x10005e11
cmp dword [ebp + 0xc], 9
jne 0x10005e1d
mov dword [edi + 0x218], ebx
mov dword [edi + 0x21c], esi
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
call fcn.10006cff
and dword [edi + 0x1b4], 0
push esi
push ebx
lea eax, [ebp - 0x28]
mov ecx, edi
push eax
call fcn.10007aa5
push esi
push ebx
mov ecx, edi
call fcn.1000526d
test eax, eax
jne 0x10005f55
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
call fcn.1000399e
mov eax, dword [ebp + 0xc]
sub eax, 9
je 0x10005ee4
sub eax, 0x1c
je 0x10005ede
sub eax, 1
je 0x10005ed8
sub eax, 1
je 0x10005ecd
sub eax, 1
jne 0x10005f4e
push eax
push 1
push 0x115
push dword [edi + 0x4c]
jmp 0x10005f48
mov eax, dword [edi + 0xc8]
dec eax
cmp ebx, eax
jge 0x10005dc1
inc ebx
mov dword [ebp - 0x20], ebx
jmp 0x10005dc1
mov eax, dword [edi + 0xd0]
dec eax
cmp esi, eax
jge 0x10005dc1
inc esi
mov dword [ebp - 0x1c], esi
jmp 0x10005dc1
cmp ebx, dword [edi + 0xcc]
jle 0x10005dc1
jmp 0x10005ba7
push 0
push 1
push 0x114
jmp 0x10005e84
push 0
push 0
jmp 0x10005e7f
push 0
push 0
jmp 0x10005ed1
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, dword [edi + 0x4c]
test ax, ax
jns 0x10005f22
cmp dword [ebp - 0x10], 0
je 0x10005f1c
xor ebx, ebx
push ebx
push ebx
push 0x115
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
push 1
push dword [edi + 0x168]
push ebx
mov ecx, edi
call fcn.10007f21
jmp 0x10005f4e
push 0
push 0
jmp 0x10005f42
cmp dword [ebp - 0x10], 0
je 0x10005f3e
xor ebx, ebx
push ebx
push 1
push 0x115
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
push 1
push ebx
jmp 0x10005f12
push 0
push 1
push 0x114
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, edi
call fcn.10003c6d
xor eax, eax
call fcn.100181db
ret 0x10