Function at 0x426051
Capabilities:
Log keystrokes via polling

Disassembly:
push 0x64
mov eax, 0x49f9ca
call fcn.0045cd4f
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 - 0x58], esi
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], edx
mov byte [ecx], 1
cmp eax, 0x56
jg 0x426353
je 0x426345
cmp eax, 0x16
jg 0x42615b
je case.0x4260a6.11
add eax, 0xfffffff8
cmp eax, 0xc
ja case.0x4260a6.10
jmp dword [eax*4 + 0x42663d]
mov esi, dword [ebx + 0x3c]
test esi, esi
je case.0x4260a6.11
mov esi, dword [esi + 0xc]
test esi, esi
je case.0x4260a6.11
push 0xff
push dword [ebx + 0x20]
lea eax, [ebp - 0x20]
mov ecx, ebx
push eax
call fcn.00423b62
push eax
push ecx
mov ecx, esp
push edi
call fcn.0040898f
mov eax, dword [esi]
mov ecx, esi
push ebx
call dword [eax + 4]
jmp 0x426435
mov esi, dword [ebx + 0x3c]
test esi, esi
je case.0x4260a6.11
mov esi, dword [esi]
jmp 0x4260bb
push 0x4ba54c
mov ecx, esi
call fcn.0040848d
jmp 0x426483
push edx
push edi
push esi
push 0x13
mov ecx, ebx
call fcn.00424e95
jmp 0x426447
push edx
push edi
push esi
push 0x14
jmp 0x426112
mov ecx, ebx
call fcn.0040d6f8
test eax, eax
je 0x426483
mov ecx, ebx
call fcn.0040d6f8
mov edi, eax
mov esi, dword [edi + 0x84]
test esi, esi
jne 0x4261cf
call fcn.004232ac
mov dword [edi + 0x84], eax
jmp 0x426447
cmp eax, 0x2c
jg 0x426259
je case.0x4260a6.10
sub eax, 0x19
je case.0x4260a6.11
sub eax, 1
je 0x42623e
sub eax, 1
je case.0x4260a6.11
sub eax, 8
je 0x426215
sub eax, 6
jne case.0x4260a6.10
push 1
lea eax, [ebp - 0x70]
mov ecx, ebx
push eax
call fcn.00423422
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 0x4261b6
lea esi, [ebp - 0x38]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x20]
cmp dword [ebp - 0x24], esi
jne 0x4261d9
mov eax, dword [ebp - 0x70]
cmp eax, dword [ebp - 0x6c]
jne 0x4261d9
mov eax, dword [ebp - 0x44]
mov byte [eax], dl
mov esi, edx
mov eax, esi
call fcn.0045ccf9
ret 0x10
mov eax, dword [ebp - 0x58]
xor ecx, ecx
cmp dword [ebp - 0x24], esi
push edx
sete cl
shr eax, 0x10
test ax, ax
cwde
jle 0x4261f8
push eax
push dword [ecx*4 + 0x4ba518]
jmp 0x426202
neg eax
push eax
push dword [ecx*4 + str._t_tWV_b_b]
push dword [ecx*4 + 0x4ba510]
mov ecx, ebx
call fcn.00424e95
jmp 0x426435
lea ecx, [ebp - 0x4c]
call fcn.00409d5b
lea eax, [ebp - 0x4c]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [ebp - 0x44]
movzx ecx, word [ebp - 0x48]
push eax
movzx eax, word [ebp - 0x4c]
shl ecx, 0x10
or ecx, eax
push ecx
jmp 0x42633d
push edx
mov ecx, esi
mov dword [ebp - 4], 1
call fcn.00417231
jmp 0x426435
mov byte [ecx], dl
jmp case.0x4260a6.11
sub eax, 0x2d
je 0x426313
sub eax, 6
je 0x4262ff
sub eax, 4
je 0x4262be
sub eax, 1
jne case.0x4260a6.10
mov eax, edi
mov byte [ecx], dl
shr eax, 0x10
lea ecx, [ebp - 0x4c]
cwde
push eax
movsx eax, di
push eax
call fcn.00409d74
mov eax, dword [esi + 8]
dec eax
sub eax, 1
je 0x4262b1
dec eax
sub eax, 1
jne 0x426483
mov eax, dword [ebp - 0x44]
mov ecx, ebx
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.0042491b
jmp 0x426447
xor edi, edi
mov dword [ebx + 0x4c], edi
mov dword [ebx + 0x50], edi
jmp 0x426617
cmp dword [ebx + 0x2c], edx
je case.0x4260a6.10
push 0x4000
mov ecx, ebx
call fcn.0040d70b
test al, al
je 0x4262ef
mov ecx, dword [ebx + 0x2c]
push 0x4000
call fcn.0040d70b
test al, al
jne 0x4262ef
mov eax, dword [ebp - 0x44]
mov byte [eax], 1
jmp 0x426435
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebx + 0x2c]
push eax
push edi
push esi
push 0x37
jmp 0x42620b
xor esi, esi
inc esi
call fcn.0043c42d
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4261cf
cmp esi, 0x5d
je 0x42633a
cmp esi, 0x79
jne case.0x4260a6.11
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x426435
mov ecx, dword [ebp - 0x44]
push ecx
push 0xffffffffffffffff
push ebx
push 0x37
jmp 0x426112
push edi
push esi
mov ecx, ebx
call fcn.00424571
jmp 0x426435
cmp eax, 0x67
jg 0x4264cc
je 0x426497
sub eax, 0x57
je 0x42648c
sub eax, 9
je 0x42647c
dec eax
sub eax, 1
je 0x42644e
dec eax
sub eax, 1
je 0x42643d
sub eax, 1
je 0x4263a5
sub eax, 1
jne case.0x4260a6.10
push ecx
push esi
push ecx
mov ecx, ebx
call fcn.00425ebe
jmp 0x426447
mov ebx, dword [ebx + 0x34]
test ebx, ebx
je case.0x4260a6.11
mov edi, dword [ebx + 4]
mov eax, dword [esi + 8]
sub edi, dword [ebx]
mov ecx, dword [esi]
sub eax, ecx
sar edi, 2
sar eax, 2
cmp edi, eax
jbe 0x4263dd
call fcn.00426953
cmp edi, eax
ja 0x426636
push edi
mov ecx, esi
call fcn.0042697c
mov ecx, dword [esi]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0x44]
push esi
call fcn.004082d1
mov eax, dword [ebx + 4]
lea ecx, [ebp - 0x54]
mov esi, dword [ebp - 0x44]
push ebx
mov dword [ebp - 0x54], eax
call fcn.004082d1
mov eax, dword [ebx]
lea ecx, [ebp - 0x50]
push ebx
mov dword [ebp - 0x50], eax
call fcn.004082d1
push dword [ebp - 0x48]
mov ebx, dword [ebp - 0x58]
mov edi, esi
push dword [ebp - 0x54]
mov ecx, ebx
push dword [ebp - 0x50]
sub edi, dword [ebx]
push esi
sar edi, 2
call fcn.00426d74
mov eax, dword [ebx]
lea ecx, [ebp - 0x48]
push ebx
lea eax, [eax + edi*4]
mov dword [ebp - 0x48], eax
call fcn.004082d1
mov esi, dword [ebp - 0x40]
jmp 0x4261cf
push edi
push esi
push ecx
mov ecx, ebx
call fcn.00425dee
mov esi, eax
jmp 0x4261cf
mov ecx, ebx
call fcn.0040d640
test al, al
je 0x426435
push 0x200
mov ecx, ebx
call fcn.0040d70b
test al, al
je 0x426435
push edi
push esi
push ebx
mov ecx, ebx
call fcn.0040d6f8
mov ecx, eax
call fcn.0042c555
jmp 0x426435
mov ecx, ebx
call fcn.004245ce
xor edi, edi
mov esi, edi
jmp 0x4261cf
push edi
push esi
mov ecx, ebx
call fcn.00424514
jmp 0x426435
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
je case.0x4260a6.11
mov ecx, dword [ecx + 0x24]
test ecx, ecx
je case.0x4260a6.11
mov eax, dword [ecx]
lea edx, [ebp - 0x3c]
push ebx
push edx
call dword [eax + 4]
push eax
mov ecx, esi
call fcn.004117ee
lea ecx, [ebp - 0x3c]
call fcn.00408cf0
jmp 0x426617
sub eax, 0x68
je 0x42661f
dec eax
sub eax, 1
je 0x426585
sub eax, 1
je 0x42655c
sub eax, 8
je 0x426508
dec eax
sub eax, 1
jne case.0x4260a6.10
mov ecx, dword [ebx + 0x2c]
test ecx, ecx
je case.0x4260a6.11
push edx
push edi
push esi
push 0x75
jmp 0x426114
mov byte [ecx], dl
mov ecx, ebx
push 0x400
call fcn.0040d70b
test al, al
je 0x426534
mov ecx, dword [ebx + 0x2c]
test ecx, ecx
je 0x426534
mov eax, dword [ebp - 0x44]
push eax
push edi
xor edi, edi
push edi
push 0x73
call fcn.00424e95
mov esi, eax
jmp 0x426538
xor edi, edi
mov esi, edi
mov eax, dword [ebp - 0x44]
cmp byte [eax], 0
jne 0x4261cf
mov ebx, dword [ebp - 0x58]
test ebx, ebx
je 0x4261cf
mov edx, dword [ebp - 0x50]
push eax
push edx
push edi
push 0x74
jmp 0x426112
mov ecx, dword [ebx + 0x30]
test ecx, ecx
je case.0x4260a6.11
test edi, edi
je 0x426570
mov ecx, dword [ecx + 4]
jmp 0x426573
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x42657e
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, eax
mov eax, edx
jmp 0x4261d1
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
je 0x4265a9
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x4265a9
mov eax, dword [ecx]
lea edx, [ebp - 0x4c]
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 0x426617
push edx
push edx
push edx
push 0x1b
mov ecx, ebx
call fcn.00424e95
test eax, eax
je 0x426435
lea eax, [ebp - 0x3c]
mov ecx, ebx
push eax
call fcn.0040d813
mov esi, eax
xor edi, edi
mov ecx, ebx
push edi
push edi
push edi
push edi
mov dword [ebp - 4], edi
call fcn.0040d6db
push eax
push 0xffffffffffffffff
mov ecx, esi
call fcn.00408b05
push eax
xor edx, edx
lea ecx, [ebp - 0x20]
call fcn.004182d0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3c]
add esp, 0x1c
call fcn.00408cf0
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x20]
call fcn.0041095e
mov edx, dword [ebp - 0x50]
mov ecx, dword [eax]
mov dword [edx], ecx
mov eax, dword [eax + 4]
mov dword [edx + 4], eax
xor esi, esi
inc esi
jmp 0x4261cf
push edi
push esi
lea ecx, [ebp - 0x5c]
call fcn.00409d74
push eax
mov ecx, ebx
call fcn.00424346
jmp 0x426447
call fcn.00415d81
nop
lodsd eax, dword [esi]
pushal
inc edx
add ch, ch
pushal
inc edx
add byte [edx + 0x62], dl
inc edx
add ch, cl
popal
inc edx
add ch, cl
popal
inc edx
add ch, cl
popal
inc edx
add ch, cl
popal
inc edx
add byte [0x52004261], ah
bound eax, qword [edx]
or eax, 0x1e004261
popal
inc edx
add ch, cl
popal
inc edx
add ah, bh
pushal
inc edx
add byte [esi - 0x70], ah
nop