Function at 0x429a9f
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
mov esi, ecx
push edi
lea ebx, [esi + 0x284]
push ebx
call fcn.0042aca4
test eax, eax
je 0x429e40
mov eax, dword [ebx]
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 4]
mov dword [ebp - 0x18], eax
xor eax, eax
push 0x11
mov dword [ebp - 0xc], eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
call edi
test ah, 0x80
je 0x429b2b
mov eax, dword [ebp + 8]
sub eax, 0x2d
je 0x429b21
sub eax, 0x14
je 0x429b15
dec eax
dec eax
je 0x429b21
sub eax, 0x13
je 0x429b09
dec eax
dec eax
jne 0x429b2b
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xc4]
jmp 0x429b2b
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xcc]
jmp 0x429b2b
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xd0]
jmp 0x429b2b
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xc8]
push 0x10
call edi
test ah, 0x80
je 0x429b44
cmp dword [ebp + 8], 0x2d
jne 0x429b44
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xcc]
mov eax, dword [ebp + 8]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0x2e
jne 0x429b61
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xb8]
jmp 0x429f6e
cmp eax, 0x28
jne 0x429b91
mov ebx, dword [ebp - 0x1c]
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [esi + 0xd4]
jge 0x429b89
push eax
mov ecx, esi
call fcn.0042e333
test eax, eax
jg 0x429f6e
jmp 0x429b69
mov dword [ebp - 0x1c], ebx
jmp 0x429f6e
cmp eax, 0x26
jne 0x429bb9
mov ebx, dword [ebp - 0x1c]
dec dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [esi + 0xd8]
jl 0x429b89
push eax
mov ecx, esi
call fcn.0042e333
test eax, eax
jg 0x429f6e
jmp 0x429b99
cmp eax, 0x27
je 0x429edb
cmp eax, 9
jne 0x429bd8
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
je 0x429edb
cmp dword [ebp + 8], 0x25
je 0x429e4c
cmp dword [ebp + 8], 9
jne 0x429bf9
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
jne 0x429e4c
mov eax, dword [ebp + 8]
cmp eax, 0x22
jne 0x429c64
lea eax, [ebp - 0x14]
push 0
push eax
mov ecx, esi
call fcn.0042c42c
mov ebx, dword [eax]
push 0
push 3
push 0x115
mov eax, dword [eax + 4]
push dword [esi + 0x1c]
mov dword [ebp - 0x10], eax
call edi
lea eax, [ebp - 0x14]
push 0
push eax
mov ecx, esi
mov dword [ebp - 8], 1
call fcn.0042c42c
mov ecx, eax
mov eax, dword [ecx]
sub eax, ebx
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x10], ecx
je 0x429c5b
add dword [ebp - 0x1c], eax
mov eax, dword [esi + 0xd4]
dec eax
cmp dword [ebp - 0x1c], eax
jle 0x429f6e
jmp 0x429cc0
mov eax, dword [esi + 0xd4]
dec eax
jmp 0x429cc0
cmp eax, 0x21
jne 0x429cd0
lea eax, [ebp - 0x14]
push 0
push eax
mov ecx, esi
call fcn.0042c42c
mov ebx, dword [eax]
push 0
push 2
push 0x115
mov eax, dword [eax + 4]
push dword [esi + 0x1c]
mov dword [ebp - 0x10], eax
call edi
lea eax, [ebp - 0x14]
push 0
push eax
mov ecx, esi
mov dword [ebp - 8], 1
call fcn.0042c42c
mov ecx, eax
mov eax, dword [ecx]
sub eax, ebx
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x10], ecx
je 0x429cc8
add dword [ebp - 0x1c], eax
mov eax, dword [esi + 0xd8]
cmp dword [ebp - 0x1c], eax
jge 0x429f6e
mov dword [ebp - 0x1c], eax
jmp 0x429f6e
mov eax, dword [esi + 0xd8]
jmp 0x429cc0
cmp eax, 0x24
jne 0x429d76
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
push 0
push 6
je 0x429d16
push 0x115
push dword [esi + 0x1c]
call edi
push 0
push 6
push 0x114
push dword [esi + 0x1c]
call edi
push 1
pop eax
mov dword [ebp - 8], eax
mov dword [ebp - 4], eax
mov eax, dword [esi + 0xd8]
mov dword [ebp - 0x1c], eax
jmp 0x429d27
push 0x114
push dword [esi + 0x1c]
call edi
mov dword [ebp - 4], 1
mov eax, dword [esi + 0xe0]
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0xdc]
dec eax
cmp dword [ebp - 0x18], eax
jge 0x429d4f
push dword [ebp - 0x18]
mov ecx, esi
call fcn.0042e354
test eax, eax
jg 0x429d4f
inc dword [ebp - 0x18]
jmp 0x429d30
mov eax, dword [esi + 0xd4]
dec eax
cmp dword [ebp - 0x1c], eax
jge 0x429f6e
push dword [ebp - 0x1c]
mov ecx, esi
call fcn.0042e333
test eax, eax
jg 0x429f6e
inc dword [ebp - 0x1c]
jmp 0x429d4f
cmp eax, 0x23
jne 0x429e1b
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
push 0
push 7
je 0x429dbd
push 0x115
push dword [esi + 0x1c]
call edi
push 0
push 7
push 0x114
push dword [esi + 0x1c]
call edi
push 1
pop eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
mov eax, dword [esi + 0xd4]
dec eax
mov dword [ebp - 0x1c], eax
jmp 0x429dce
push 0x114
push dword [esi + 0x1c]
call edi
mov dword [ebp - 4], 1
mov eax, dword [esi + 0xdc]
mov ecx, dword [esi + 0xe0]
dec eax
inc ecx
mov dword [ebp - 0x18], eax
cmp eax, ecx
jle 0x429df4
push eax
mov ecx, esi
call fcn.0042e354
test eax, eax
jg 0x429df4
mov eax, dword [ebp - 0x18]
jmp 0x429dd4
mov eax, dword [esi + 0xd8]
inc eax
cmp dword [ebp - 0x1c], eax
jle 0x429f6e
push dword [ebp - 0x1c]
mov ecx, esi
call fcn.0042e333
test eax, eax
jg 0x429f6e
dec dword [ebp - 0x1c]
jmp 0x429df4
cmp eax, 0x71
jne 0x429e40
or ecx, 0xffffffff
mov edx, dword [esi]
mov eax, ecx
push 1
push ecx
push eax
push dword [esi + 0x288]
mov ecx, esi
push dword [ebx]
call dword [edx + 0xfc]
jmp 0x429f6e
mov ecx, esi
call fcn.004da014
jmp 0x42a10c
mov eax, dword [ebp - 0x18]
xor ebx, ebx
dec dword [ebp - 0x18]
cmp dword [ebp + 8], 9
mov dword [ebp - 0x10], eax
jne 0x429eb7
mov eax, dword [esi + 0xe0]
dec eax
cmp dword [ebp - 0x18], eax
jne 0x429eb0
mov eax, dword [esi + 0xd8]
cmp dword [ebp - 0x1c], eax
jle 0x429eb0
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], eax
jle 0x429e9d
push dword [ebp - 0x1c]
mov ecx, esi
call fcn.0042e333
test eax, eax
jg 0x429e9a
dec dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [esi + 0xd8]
jg 0x429e7c
jmp 0x429e9d
push 1
pop ebx
mov eax, dword [esi + 0xdc]
mov dword [ebp - 0xc], 1
dec eax
mov dword [ebp - 0x18], eax
jmp 0x429eb7
mov ecx, esi
call fcn.004da014
mov eax, dword [ebp - 0x18]
cmp eax, dword [esi + 0xe0]
jl 0x429f64
push eax
mov ecx, esi
call fcn.0042e354
test eax, eax
jg 0x429f61
dec dword [ebp - 0x18]
jmp 0x429eb7
mov eax, dword [ebp - 0x18]
xor ebx, ebx
mov dword [ebp - 0x10], eax
inc eax
cmp dword [ebp + 8], 9
mov dword [ebp - 0x18], eax
jne 0x429f45
cmp eax, dword [esi + 0xdc]
jne 0x429f3e
mov eax, dword [esi + 0xd4]
lea ecx, [eax - 1]
cmp dword [ebp - 0x1c], ecx
jge 0x429f3e
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], eax
jge 0x429f2c
push dword [ebp - 0x1c]
mov ecx, esi
call fcn.0042e333
test eax, eax
jg 0x429f29
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [esi + 0xd4]
jl 0x429f0b
jmp 0x429f2c
push 1
pop ebx
mov eax, dword [esi + 0xe0]
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x18], eax
jmp 0x429f45
mov ecx, esi
call fcn.004da014
mov eax, dword [ebp - 0x18]
cmp eax, dword [esi + 0xdc]
jge 0x429f64
push eax
mov ecx, esi
call fcn.0042e354
test eax, eax
jg 0x429f61
inc dword [ebp - 0x18]
jmp 0x429f45
push 1
pop ebx
test ebx, ebx
jne 0x429f6e
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x1c]
lea eax, [esi + 0x284]
cmp ecx, dword [eax]
jne 0x429f87
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [eax + 4]
je 0x42a10c
xor ebx, ebx
cmp dword [esi + 0x258], ebx
jne 0x429fff
lea ecx, [esi + 0x2c8]
call fcn.004314ad
mov eax, dword [esi + 0x80]
push 0x10
neg eax
sbb eax, eax
add eax, 4
mov dword [esi + 0x258], eax
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, dword [ebp - 0x1c]
test ah, 0x80
mov eax, dword [ebp - 0x18]
je 0x429fc8
cmp dword [ebp + 8], 9
jne 0x429fd4
mov dword [esi + 0x27c], ecx
mov dword [esi + 0x280], eax
push 0xffffffffffffff9c
push eax
push ecx
mov ecx, esi
call fcn.00429293
lea eax, [ebp - 0x1c]
mov ecx, esi
push eax
call fcn.0042b7c3
push 0xffffffffffffff9b
mov ecx, esi
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
call fcn.00429293
mov dword [esi + 0x258], ebx
push dword [ebp - 0x18]
lea eax, [ebp - 0x14]
mov ecx, esi
push dword [ebp - 0x1c]
push eax
call fcn.0042aff9
push dword [ebp - 0x18]
mov ecx, esi
push dword [ebp - 0x1c]
call fcn.0042ea53
test eax, eax
jne 0x42a0db
mov eax, dword [ebp + 8]
sub eax, 9
je 0x42a05d
sub eax, 0x1c
je 0x42a059
dec eax
je 0x42a055
dec eax
je 0x42a0ae
dec eax
jne 0x42a0c2
push ebx
push 1
push 0x115
push dword [esi + 0x1c]
call edi
mov dword [ebp - 8], 1
jmp 0x42a0c2
push ebx
push ebx
jmp 0x42a042
push ebx
push ebx
jmp 0x42a0b1
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
je 0x42a08a
cmp dword [ebp - 0xc], ebx
push ebx
push ebx
je 0x42a0b1
push 0x115
push dword [esi + 0x1c]
call edi
push 1
pop eax
push eax
mov dword [ebp - 8], eax
push dword [esi + 0x110]
jmp 0x42a0a4
cmp dword [ebp - 0xc], ebx
je 0x42a0ae
push ebx
push 1
push 0x115
push dword [esi + 0x1c]
call edi
push 1
pop eax
push eax
mov dword [ebp - 8], eax
push ebx
push ebx
mov ecx, esi
call fcn.0042c70d
jmp 0x42a0c2
push ebx
push 1
push 0x114
push dword [esi + 0x1c]
call edi
mov dword [ebp - 4], 1
push dword [ebp - 0x18]
mov ecx, esi
push dword [ebp - 0x1c]
call fcn.0042e7a4
push 1
push ebx
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_InvalidateRect]
push dword [ebp - 0x18]
mov ecx, esi
push dword [ebp - 0x1c]
call fcn.0042e7a4
cmp dword [ebp - 4], ebx
je 0x42a0fa
push ebx
push 8
push 0x114
push dword [esi + 0x1c]
call edi
cmp dword [ebp - 8], ebx
je 0x42a10c
push ebx
push 8
push 0x115
push dword [esi + 0x1c]
call edi
pop edi
pop esi
pop ebx
leave
ret 0xc