Function at 0x426d9b
Capabilities:
Log keystrokes via polling

Disassembly:
push 0x68
mov eax, 0x4b2c15
call fcn.00461a91
mov ebx, ecx
mov ecx, dword [ebp + 0x14]
xor edx, edx
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], edx
mov byte [ecx], 1
cmp eax, 0x56
jg 0x427090
je 0x427082
cmp eax, 0x16
jg 0x426ea5
je case.0x426df0.11
add eax, 0xfffffff8
cmp eax, 0xc
ja case.0x426df0.10
jmp dword [eax*4 + 0x427393]
mov esi, dword [ebx + 0x3c]
test esi, esi
je case.0x426df0.11
mov esi, dword [esi + 0xc]
test esi, esi
je case.0x426df0.11
push 0xff
push dword [ebx + 0x20]
lea eax, [ebp - 0x20]
mov ecx, ebx
push eax
call fcn.00424983
push eax
push ecx
mov ecx, esp
push edi
call fcn.0040c9b3
mov eax, dword [esi]
mov ecx, esi
push ebx
call dword [eax + 4]
jmp 0x42717b
mov esi, dword [ebx + 0x3c]
test esi, esi
je case.0x426df0.11
mov esi, dword [esi]
jmp 0x426e05
push str.UIObject_Window
mov ecx, esi
call fcn.0040f8b1
jmp 0x4271c9
push edx
push edi
push esi
push 0x13
mov ecx, ebx
call fcn.00425b31
jmp 0x42718d
push edx
push edi
push esi
push 0x14
jmp 0x426e5c
mov ecx, ebx
call fcn.0040ecc6
test eax, eax
je 0x4271c9
mov ecx, ebx
call fcn.0040ecc6
mov edi, eax
mov esi, dword [edi + 0x84]
test esi, esi
jne 0x426f19
call fcn.00424089
mov dword [edi + 0x84], eax
jmp 0x42718d
cmp eax, 0x2c
jg 0x426f96
je case.0x426df0.10
sub eax, 0x19
je case.0x426df0.11
sub eax, 1
je 0x426f86
sub eax, 1
je case.0x426df0.11
sub eax, 8
je 0x426f5f
sub eax, 6
jne case.0x426df0.10
push 1
lea eax, [ebp - 0x74]
mov ecx, ebx
push eax
call fcn.004241ff
mov esi, dword [ebx + 0x40]
lea edi, [ebp - 0x38]
xor eax, eax
stosd dword es:[edi], eax
push 5
pop ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea edi, [ebp - 0x24]
test esi, esi
jne 0x426f00
lea esi, [ebp - 0x38]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x20]
cmp dword [ebp - 0x24], esi
jne 0x426f23
mov eax, dword [ebp - 0x74]
cmp eax, dword [ebp - 0x70]
jne 0x426f23
mov eax, dword [ebp - 0x44]
mov byte [eax], dl
mov esi, edx
mov eax, esi
call fcn.00461a3b
ret 0x10
mov eax, dword [ebp - 0x54]
xor ecx, ecx
cmp dword [ebp - 0x24], esi
push edx
sete cl
shr eax, 0x10
test ax, ax
cwde
jle 0x426f42
push eax
push dword [ecx*4 + 0x4d1758]
jmp 0x426f4c
neg eax
push eax
push dword [ecx*4 + str._t_tWV_b_b]
push dword [ecx*4 + 0x4d1750]
mov ecx, ebx
call fcn.00425b31
jmp 0x42717b
lea eax, [ebp - 0x50]
mov dword [ebp - 0x50], edx
push eax
mov dword [ebp - 0x4c], edx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [ebp - 0x44]
movzx ecx, word [ebp - 0x4c]
push eax
movzx eax, word [ebp - 0x50]
shl ecx, 0x10
or ecx, eax
push ecx
jmp 0x42707a
mov ecx, esi
call fcn.0041244b
jmp 0x42717b
mov byte [ecx], dl
jmp case.0x426df0.11
sub eax, 0x2d
je 0x427050
sub eax, 6
je 0x42703c
sub eax, 4
je 0x426ffb
sub eax, 1
jne case.0x426df0.10
mov eax, edi
mov byte [ecx], dl
shr eax, 0x10
lea ecx, [ebp - 0x50]
cwde
push eax
movsx eax, di
push eax
call fcn.004052d0
mov eax, dword [esi + 8]
dec eax
sub eax, 1
je 0x426fee
dec eax
sub eax, 1
jne 0x4271c9
mov eax, dword [ebp - 0x44]
mov ecx, ebx
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.00425718
jmp 0x42718d
xor edi, edi
mov dword [ebx + 0x4c], edi
mov dword [ebx + 0x50], edi
jmp 0x42736f
cmp dword [ebx + 0x2c], edx
je case.0x426df0.10
push 0x4000
mov ecx, ebx
call fcn.0040f992
test al, al
je 0x42702c
mov ecx, dword [ebx + 0x2c]
push 0x4000
call fcn.0040f992
test al, al
jne 0x42702c
mov eax, dword [ebp - 0x44]
mov byte [eax], 1
jmp 0x42717b
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebx + 0x2c]
push eax
push edi
push esi
push 0x37
jmp 0x426f55
xor esi, esi
inc esi
call fcn.00423b9a
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x426f19
cmp esi, 0x5d
je 0x427077
cmp esi, 0x79
jne case.0x426df0.11
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x42717b
mov ecx, dword [ebp - 0x44]
push ecx
push 0xffffffffffffffff
push ebx
push 0x37
jmp 0x426e5c
push edi
push esi
mov ecx, ebx
call fcn.00425357
jmp 0x42717b
cmp eax, 0x67
jg 0x427212
je 0x4271dd
sub eax, 0x57
je 0x4271d2
sub eax, 9
je 0x4271c2
dec eax
sub eax, 1
je 0x427194
dec eax
sub eax, 1
je 0x427183
sub eax, 1
je 0x4270e2
sub eax, 1
jne case.0x426df0.10
push ecx
push esi
push ecx
mov ecx, ebx
call fcn.00426c14
jmp 0x42718d
mov ebx, dword [ebx + 0x34]
test ebx, ebx
je case.0x426df0.11
mov ecx, ebx
call fcn.00410b18
mov ecx, esi
mov edi, eax
call fcn.004277d2
cmp edi, eax
jbe 0x427116
call fcn.004217d7
cmp edi, eax
ja 0x42738e
push edi
mov ecx, esi
call fcn.004277f3
lea eax, [ebp - 0x5c]
mov ecx, esi
push eax
call fcn.00427587
mov ecx, ebx
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x60]
push eax
call fcn.00427558
mov ecx, ebx
mov edi, dword [eax]
lea eax, [ebp - 0x4c]
push eax
call fcn.00427587
mov ecx, dword [ebp - 0x54]
mov esi, dword [eax]
call fcn.00403c8e
push dword [ebp - 0x4c]
mov ecx, eax
mov eax, dword [ebp - 0x48]
push edi
mov ebx, eax
push esi
sub ebx, dword [ecx]
mov ecx, dword [ebp - 0x54]
push eax
sar ebx, 2
call fcn.00427b24
mov ecx, dword [ebp - 0x54]
call fcn.00403d2c
push eax
mov ecx, dword [eax]
lea ecx, [ecx + ebx*4]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0x44]
call fcn.00406814
mov esi, dword [ebp - 0x40]
jmp 0x426f19
push edi
push esi
push ecx
mov ecx, ebx
call fcn.00426ae8
mov esi, eax
jmp 0x426f19
mov ecx, ebx
call fcn.0040dd90
test al, al
je 0x42717b
push 0x200
mov ecx, ebx
call fcn.0040f992
test al, al
je 0x42717b
push edi
push esi
push ebx
mov ecx, ebx
call fcn.0040ecc6
mov ecx, eax
call fcn.00433141
jmp 0x42717b
mov ecx, ebx
call fcn.004253b4
xor edi, edi
mov esi, edi
jmp 0x426f19
push edi
push esi
mov ecx, ebx
call fcn.004252fa
jmp 0x42717b
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
je case.0x426df0.11
mov ecx, dword [ecx + 0x24]
test ecx, ecx
je case.0x426df0.11
mov eax, dword [ecx]
lea edx, [ebp - 0x3c]
push ebx
push edx
call dword [eax + 4]
push eax
mov ecx, esi
call fcn.00405cfe
lea ecx, [ebp - 0x3c]
call fcn.00405118
jmp 0x42736f
sub eax, 0x68
je 0x427377
dec eax
sub eax, 1
je 0x4272cd
sub eax, 1
je 0x4272a4
sub eax, 8
je 0x42724e
dec eax
sub eax, 1
jne case.0x426df0.10
mov ecx, dword [ebx + 0x2c]
test ecx, ecx
je case.0x426df0.11
push edx
push edi
push esi
push 0x75
jmp 0x426e5e
mov byte [ecx], dl
mov ecx, ebx
push 0x400
call fcn.0040f992
test al, al
je 0x42727a
mov ecx, dword [ebx + 0x2c]
test ecx, ecx
je 0x42727a
mov eax, dword [ebp - 0x44]
push eax
push edi
xor edi, edi
push edi
push 0x73
call fcn.00425b31
mov esi, eax
jmp 0x42727e
xor edi, edi
mov esi, edi
mov ecx, dword [ebp - 0x44]
cmp byte [ecx], 0
jne 0x426f19
mov eax, dword [ebp - 0x54]
test eax, eax
je 0x426f19
push ecx
mov ecx, dword [ebp - 0x48]
push ecx
push edi
push 0x74
mov ecx, eax
jmp 0x426e5e
mov ecx, dword [ebx + 0x30]
test ecx, ecx
je case.0x426df0.11
test edi, edi
je 0x4272b8
mov ecx, dword [ecx + 4]
jmp 0x4272bb
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x4272c6
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, eax
mov eax, edx
jmp 0x426f1b
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
je 0x4272f1
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x4272f1
mov eax, dword [ecx]
lea edx, [ebp - 0x50]
push ebx
push edx
call dword [eax + 4]
mov ecx, dword [eax]
mov dword [edi], ecx
mov eax, dword [eax + 4]
mov dword [edi + 4], eax
jmp 0x42736f
push edx
push edx
push edx
push 0x1b
mov ecx, ebx
call fcn.00425b31
test eax, eax
je 0x42717b
lea eax, [ebp - 0x3c]
mov ecx, ebx
push eax
call fcn.0040de2f
mov esi, eax
xor edi, edi
mov ecx, ebx
push edi
push edi
push edi
push 0xf
mov dword [ebp - 4], edi
call fcn.00425b31
push ecx
push edi
push edi
push edi
push eax
push 0xffffffffffffffff
mov ecx, esi
call fcn.00404e0f
push eax
xor edx, edx
lea ecx, [ebp - 0x20]
call fcn.004500f0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3c]
add esp, 0x1c
call fcn.00405118
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x50]
sub eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x20]
push eax
call fcn.004052d0
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x50]
mov dword [ecx], eax
mov eax, dword [ebp - 0x4c]
mov dword [ecx + 4], eax
xor esi, esi
inc esi
jmp 0x426f19
push edi
push esi
lea ecx, [ebp - 0x58]
call fcn.004052d0
push eax
mov ecx, ebx
call fcn.0042512c
jmp 0x42718d
call fcn.00415a29
imul dword [ebp + 0x42]
add byte [edi], dh
outsb dx, byte [esi]
inc edx
add byte [edx + 0x1700426f], dl
outsd dx, dword [esi]
inc edx
add byte [edi], dl
outsd dx, dword [esi]
inc edx
add byte [edi], dl
outsd dx, dword [esi]
inc edx
add byte [edi], dl
outsd dx, dword [esi]
inc edx
add byte [edi + 0x6e], ch
inc edx
add byte [edx + 0x5700426f], dl
outsb dx, byte [esi]
inc edx
add byte [eax + 0x6e], ch
inc edx
add byte [edi], dl
outsd dx, dword [esi]
inc edx
add byte [esi + 0x6e], al
inc edx
add byte [esi - 0x70], ah
nop