Function at 0x101f888a
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x10
push ebp
push edi
mov edi, ecx
call fcn.1000c10d
xor ebp, ebp
inc ebp
cmp eax, ebp
je 0x101f8bc3
push esi
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
call esi
xor ecx, ecx
test ax, ax
sets cl
push 0x11
mov dword [esp + 0x18], ecx
call esi
xor ecx, ecx
test ax, ax
sets cl
push 0x12
mov dword [esp + 0x14], ecx
call esi
xor ecx, ecx
test ax, ax
sets cl
test ecx, ecx
jne 0x101f8bc2
push ebx
mov ebx, dword [esp + 0x24]
cmp ebx, 0x70
jne 0x101f88fe
push dword [0x1023f5b8]
call fcn.101d8d0c
mov esi, eax
call fcn.1021d8a6
push esi
call fcn.101d8d0c
sub ebx, 0xd
je 0x101f8b72
sub ebx, 0x14
je 0x101f8b0b
dec ebx
je 0x101f8a83
dec ebx
je 0x101f8a29
dec ebx
je 0x101f89ed
dec ebx
dec ebx
je 0x101f8993
dec ebx
dec ebx
jne 0x101f8bc1
mov eax, dword [edi + 0xc]
xor esi, esi
test eax, eax
je 0x101f893f
mov ecx, dword [eax + 0x10]
jmp 0x101f8941
mov ecx, esi
cmp ecx, ebp
jle 0x101f8bc1
mov ebx, dword [edi + 0x3c]
cmp ebx, 0xffffffff
je 0x101f8b65
test eax, eax
je 0x101f895c
mov esi, dword [eax + 0x10]
lea eax, [esi - 1]
mov ecx, edi
cmp ebx, eax
je 0x101f8980
push ebp
lea eax, [ebx + 1]
push eax
call fcn.101fa540
mov ecx, edi
call fcn.101faaa7
cmp dword [edi + 0x3c], eax
jg 0x101f898d
jmp 0x101f8bc1
call fcn.101faaa7
cmp ebx, eax
je 0x101f8bc1
push ebp
jmp 0x101f8a76
mov eax, dword [edi + 0xc]
xor esi, esi
test eax, eax
je 0x101f89a1
mov ecx, dword [eax + 0x10]
jmp 0x101f89a3
mov ecx, esi
cmp ecx, ebp
jle 0x101f8bc1
mov ecx, dword [edi + 0x3c]
cmp ecx, 0xffffffff
je 0x101f8b65
test eax, eax
je 0x101f89c0
mov eax, dword [eax + 0x10]
jmp 0x101f89c2
mov eax, esi
cmp eax, ebp
jle 0x101f8bc1
test ecx, ecx
je 0x101f8bc1
lea eax, [ecx - 1]
push ebp
push eax
mov ecx, edi
call fcn.101fa540
mov eax, dword [edi + 0x3c]
cmp eax, dword [edi + 0x38]
jge 0x101f8bc1
push ebp
jmp 0x101f8a26
mov eax, dword [edi + 0xc]
xor esi, esi
test eax, eax
je 0x101f89fb
mov eax, dword [eax + 0x10]
jmp 0x101f89fd
mov eax, esi
cmp eax, ebp
jle 0x101f8bc1
cmp dword [edi + 0x3c], esi
je 0x101f8bc1
push ebp
push esi
mov ecx, edi
call fcn.101fa540
mov eax, dword [edi + 0xc]
test eax, eax
je 0x101f8a23
mov eax, dword [eax + 0x10]
jmp 0x101f8a25
mov eax, esi
push eax
push esi
jmp 0x101f8a77
mov ecx, dword [edi + 0xc]
xor esi, esi
test ecx, ecx
je 0x101f8a37
mov eax, dword [ecx + 0x10]
jmp 0x101f8a39
mov eax, esi
cmp eax, ebp
jle 0x101f8bc1
test ecx, ecx
je 0x101f8a4a
mov eax, dword [ecx + 0x10]
jmp 0x101f8a4c
mov eax, esi
dec eax
cmp dword [edi + 0x3c], eax
je 0x101f8bc1
test ecx, ecx
je 0x101f8a5f
mov eax, dword [ecx + 0x10]
jmp 0x101f8a61
mov eax, esi
push ebp
dec eax
push eax
mov ecx, edi
call fcn.101fa540
mov eax, dword [edi + 0xc]
test eax, eax
je 0x101f8a75
mov esi, dword [eax + 0x10]
push esi
push ebp
mov ecx, edi
call fcn.101fa87f
jmp 0x101f8bc1
mov ebp, dword [edi + 0xc]
xor esi, esi
test ebp, ebp
je 0x101f8a91
mov eax, dword [ebp + 0x10]
jmp 0x101f8a93
mov eax, esi
cmp eax, 1
jle 0x101f8bc1
mov ebx, dword [edi + 0x3c]
mov ecx, edi
cmp ebx, 0xffffffff
jne 0x101f8ab0
push 1
push dword [edi + 0x38]
jmp 0x101f8b6b
call fcn.101faaa7
cmp ebx, eax
jne 0x101f8acd
test ebp, ebp
je 0x101f8ac2
mov eax, dword [ebp + 0x10]
jmp 0x101f8ac4
mov eax, esi
dec eax
cmp ebx, eax
je 0x101f8bc1
xor ebp, ebp
inc ebp
cmp dword [edi + 0x34], ebp
jg 0x101f8ad9
push ebp
push ebp
jmp 0x101f8ae9
mov eax, dword [edi + 0x38]
cmp ebx, eax
jle 0x101f8ae5
sub ebx, eax
push ebx
jmp 0x101f8ad6
sub eax, ebx
push eax
push esi
mov ecx, edi
call fcn.101fa87f
mov ecx, edi
call fcn.101faaa7
cmp dword [edi + 0x3c], eax
je 0x101f8bc1
push ebp
mov ecx, edi
call fcn.101faaa7
push eax
jmp 0x101f8b69
mov eax, dword [edi + 0xc]
xor esi, esi
test eax, eax
je 0x101f8b19
mov eax, dword [eax + 0x10]
jmp 0x101f8b1b
mov eax, esi
cmp eax, ebp
jle 0x101f8bc1
mov ebx, dword [edi + 0x3c]
cmp ebx, 0xffffffff
je 0x101f8b65
test ebx, ebx
je 0x101f8bc1
mov ecx, edi
cmp dword [edi + 0x34], ebp
jg 0x101f8b3d
push ebp
jmp 0x101f8b5f
call fcn.101faaa7
mov ecx, edi
cmp ebx, eax
jle 0x101f8b55
call fcn.101faaa7
sub ebx, eax
push ebx
push ebp
mov ecx, edi
jmp 0x101f8b60
call fcn.101faaa7
sub eax, ebx
push eax
mov ecx, edi
push esi
call fcn.101fa87f
push ebp
push dword [edi + 0x38]
mov ecx, edi
call fcn.101fa540
jmp 0x101f8bc1
cmp dword [esp + 0x14], 0
jne 0x101f8bc1
mov esi, dword [edi + 0x3c]
cmp esi, 0xffffffff
je 0x101f8bc1
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push esi
mov ecx, edi
call fcn.10042f82
cmp dword [esp + 0x18], 0
push esi
push dword [esp + 0x28]
mov ecx, edi
push dword [esp + 0x18]
push dword [esp + 0x20]
je 0x101f8bbc
push 2
call fcn.101f8d43
jmp 0x101f8bc1
call fcn.101f90e6
pop ebx
pop esi
pop edi
pop ebp
add esp, 0x10
ret 4