Function at 0x10122424
Capabilities:
Log keystrokes via polling

Disassembly:
push 0x50
mov eax, 0x101abf57
call fcn.1017344a
mov ebx, ecx
mov dword [ebp - 0x3c], ebx
cmp byte [ebx + 0x2c8], 0
je 0x10122445
mov byte [ebx + 0x2c8], 0
cmp dword [ebx + 0x35c], 0
je 0x1012286f
mov eax, dword [ebx]
mov esi, dword [eax + 0x19c]
mov ecx, esi
call dword [0x101b1a54]
mov ecx, ebx
call esi
push eax
mov ecx, 0x1020e9bc
call fcn.100ecf59
mov dword [ebp - 0x40], eax
test eax, eax
jne 0x10122484
cmp dword [0x1020e9c0], eax
je 0x10122885
mov eax, dword [ebx + 0x35c]
mov edi, dword [ebx + 0x358]
mov dword [ebp - 0x38], eax
mov eax, dword [ebx]
mov esi, dword [eax + 0x38c]
mov ecx, esi
call dword [0x101b1a54]
mov ecx, ebx
call esi
mov ecx, ebx
call fcn.101217d4
mov edx, dword [ebp - 0x38]
mov esi, eax
mov dword [ebp - 0x34], esi
cmp edi, edx
jne 0x101224e8
mov ecx, edx
sub ecx, 8
je 0x1012279a
sub ecx, 1
je 0x101225a1
sub ecx, 0xa
je 0x101224f4
mov eax, dword [ebx]
push edx
mov esi, dword [eax + 0x37c]
mov ecx, esi
call dword [0x101b1a54]
mov ecx, ebx
call esi
mov ecx, ebx
call fcn.100303ea
jmp 0x1012287d
mov esi, dword [0x10218e40]
test esi, esi
jne 0x1012250b
mov ecx, ebx
call fcn.10030c6e
mov esi, eax
test esi, esi
je 0x10122588
push esi
push 0x101cc170
call fcn.1003ef3c
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x10122528
mov ecx, dword [edi]
mov esi, dword [ecx + 0x218]
jmp 0x10122573
push esi
push 0x101cbbe0
call fcn.1003ef3c
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x10122545
mov ecx, dword [edi]
mov esi, dword [ecx + 0x1f8]
jmp 0x10122573
push esi
push 0x101cc780
call fcn.1003ef3c
mov edi, eax
pop ecx
pop ecx
test edi, edi
jne 0x1012256b
push esi
push 0x101ccb38
call fcn.1003ef3c
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x10122588
mov ecx, dword [edi]
mov esi, dword [ecx + 0x210]
push ebx
mov ecx, esi
call dword [0x101b1a54]
mov ecx, edi
call esi
test eax, eax
je 0x101224e8
mov eax, dword [ebx]
mov esi, dword [eax + 0x2dc]
mov ecx, esi
call dword [0x101b1a54]
mov ecx, ebx
call esi
jmp 0x101224e8
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x10122722
mov eax, dword [ebx]
mov esi, dword [eax + 0x340]
mov ecx, esi
call dword [0x101b1a54]
mov ecx, ebx
call esi
test eax, eax
je 0x1012271f
mov eax, dword [ebx + 0xa4]
xor esi, esi
push esi
push esi
push 0xb
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [ebx + 0x2f8], esi
jne 0x1012268b
push 0xa
lea ecx, [ebp - 0x5c]
call fcn.100551ac
mov ecx, dword [ebp - 0x34]
lea eax, [ebp - 0x5c]
push eax
mov dword [ebp - 4], esi
call fcn.10152fb0
mov ecx, dword [ebp - 0x58]
test ecx, ecx
je 0x1012267d
mov ebx, dword [ebp - 0x34]
push dword [ecx + 8]
mov ecx, dword [ecx]
push 0x1020ebfc
mov dword [ebp - 0x34], ecx
call fcn.1003ef3c
mov edi, eax
pop ecx
pop ecx
mov dword [ebp - 0x38], edi
mov ecx, dword [edi]
mov esi, dword [ecx + 0x340]
mov ecx, esi
call dword [0x101b1a54]
mov ecx, edi
call esi
test eax, eax
je 0x10122673
mov eax, dword [edi]
mov edi, dword [eax + 0x368]
mov eax, dword [ebx]
mov esi, dword [eax + 0x194]
mov ecx, esi
call dword [0x101b1a54]
mov ecx, ebx
call esi
push 0
push 0
push eax
push 1
mov ecx, edi
call dword [0x101b1a54]
mov ecx, dword [ebp - 0x38]
call edi
mov ecx, dword [ebp - 0x34]
test ecx, ecx
jne 0x10122612
mov ebx, dword [ebp - 0x3c]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5c]
call fcn.100551d2
jmp 0x101226bf
mov edi, dword [ebx + 0x330]
mov eax, dword [edi]
mov esi, dword [eax + 0x1a0]
mov ecx, esi
call dword [0x101b1a54]
mov ecx, edi
call esi
push eax
push 0x101db308
call fcn.1003ef3c
pop ecx
pop ecx
test eax, eax
je 0x101226bf
push 0
mov ecx, eax
call fcn.10156762
mov eax, dword [ebx + 0xa4]
push 0
push 1
push 0xb
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [ebx + 0xa4]
push 0x101c5f68
call fcn.1003ef3c
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x10122702
mov ecx, dword [edi]
push 1
mov esi, dword [ecx + 0x178]
mov ecx, esi
call dword [0x101b1a54]
mov ecx, edi
call esi
mov eax, dword [ebx + 0xa4]
push 0x181
push 0
push 0
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_RedrawWindow]
jmp 0x1012287d
mov esi, dword [ebp - 0x34]
mov edi, dword [ebp - 0x40]
test edi, edi
je 0x1012287d
test esi, esi
je 0x1012287d
mov eax, dword [esi]
mov edi, dword [edi + 0x11c]
mov esi, dword [eax + 0x194]
mov ecx, esi
call dword [0x101b1a54]
mov ecx, dword [ebp - 0x34]
call esi
test edi, eax
je 0x1012287d
mov eax, dword [ebx]
mov edi, dword [eax + 0x368]
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
mov esi, dword [eax + 0x194]
mov ecx, esi
call dword [0x101b1a54]
mov ecx, dword [ebp - 0x34]
call esi
push 1
push 0
push eax
xor eax, eax
mov ecx, edi
cmp dword [ebx + 0x2f8], eax
sete al
push eax
call dword [0x101b1a54]
mov ecx, ebx
call edi
jmp 0x1012287d
cmp dword [0x10218f60], 0
je 0x1012287d
push 8
mov ecx, ebx
call fcn.10121724
mov edi, eax
mov dword [ebp - 0x3c], edi
test edi, edi
je 0x1012287d
mov ecx, dword [edi]
lea eax, [ebp - 0x30]
push eax
mov esi, dword [ecx + 0xc]
mov ecx, esi
call dword [0x101b1a54]
mov ecx, edi
call esi
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x20]
push eax
push dword [ebx + 0x20]
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x20]
mov ecx, ebx
push eax
call fcn.1002e073
push dword [ebp - 0x1c]
lea eax, [ebp - 0x30]
push dword [ebp - 0x20]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
lea eax, [ebp - 0x30]
mov ecx, ebx
push eax
call fcn.1002dab2
mov dword [edi + 0x14], 1
mov ecx, ebx
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x40], eax
call fcn.1003570a
test eax, 0x400000
je 0x10122838
sub esi, dword [ebp - 0x30]
add esi, dword [ebp - 0x28]
mov eax, dword [ebx]
push dword [ebp - 0x40]
mov edi, dword [ebx + 0x20]
push esi
mov esi, dword [eax + 0x2e4]
mov ecx, esi
call dword [0x101b1a54]
mov ecx, ebx
call esi
push edi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x1012287d
mov eax, dword [ebp - 0x3c]
mov ecx, ebx
push eax
and dword [eax + 0x14], 0
call fcn.10123d3a
jmp 0x1012287d
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.1007ddf3
call fcn.101733f9
ret 0xc
call fcn.1003cffb
int3