Function at 0x4bfd20
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
push edi
mov ebx, dword [ebp + 0xc]
movzx eax, bx
add eax, 0xffffff9b
cmp eax, 0x21
ja case.0x4bfd3b.110
jmp dword [eax*4 + 0x4bfd42]
cmp dword [0x54e380], 0
jne 0x4bfdee
cmp dword [0x55bb40], 0xffffffff
jne 0x4bfdee
cmp dword [0x54e374], 0
jne 0x4bfdee
cmp dword [0x54e370], 0
je 0x4bfe0e
mov byte [0x571463], 0
mov byte [0x56fa50], 0
xor edx, edx
mov dword [0x54c534], edx
call fcn.0044811d
jmp 0x4c06dd
cmp dword [0x55bb40], 0xffffffff
jne 0x4c06dd
push 0x11
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x4bfe31
push 0x57c887
call fcn.004f786b
push 0x10
call sub.USER32.dll_GetKeyState
test ax, ax
jl 0x4bfe6e
mov esi, 0x57c887
mov edi, 0x55755c
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x57c887
call fcn.004f7915
push 1
call fcn.00447b2a
jmp 0x4c06dd
cmp dword [0x5573c4], 0
jne 0x4c06dd
xor eax, eax
mov dword [0x557974], eax
mov edx, dword [ebp + 0x10]
mov dword [0x556158], edx
push 0x4cb4ec
push 0x29e
push dword [ebp + 8]
call fcn.0045a0bc
xor ecx, ecx
mov dword [0x556158], ecx
jmp 0x4c06dd
cmp dword [0x5573c4], 0
jne 0x4c06dd
mov eax, dword [ebp + 0x10]
mov dword [0x556158], eax
push 0x4cb4ec
push 0x29e
push dword [ebp + 8]
call fcn.0045a0bc
xor edx, edx
mov dword [0x556158], edx
jmp 0x4c06dd
push 0
push 0
push 0x10
push dword [ebp + 8]
call sub.USER32.dll_PostMessageA
jmp 0x4c06dd
cmp dword [0x54c734], 0
jne 0x4c06dd
mov eax, dword [ebp + 0x10]
mov dword [0x556158], eax
dec eax
je 0x4bff33
mov eax, dword [0x55b3d4]
test eax, eax
je 0x4bff33
cmp eax, dword [0x55b3dc]
jne 0x4bff33
mov dword [ebp + 8], eax
mov dword [0x556158], 2
push dword [ebp + 8]
call fcn.004251d3
xor edx, edx
mov dword [0x556158], edx
jmp 0x4c06dd
cmp dword [0x5561d4], 0
jne 0x4bffb4
cmp dword [0x54c8cc], 0
jne 0x4bffb4
mov dword [0x5561d4], 1
mov eax, dword [ebp + 0x10]
mov dword [0x556158], eax
dec eax
je 0x4bff8d
mov eax, dword [0x55b3d4]
test eax, eax
je 0x4bff8d
cmp eax, dword [0x55b3dc]
jne 0x4bff8d
mov dword [ebp + 8], eax
mov dword [0x556158], 2
push 0x426c0f
push 0x91
push dword [ebp + 8]
call fcn.0045a0bc
xor edx, edx
mov dword [0x556158], edx
xor ecx, ecx
mov dword [0x5561d4], ecx
jmp 0x4c06dd
push 0
call fcn.0041c2be
jmp 0x4c06dd
cmp dword [0x5595ec], 0
jne 0x4bffda
xor eax, eax
mov dword [0x5595f0], eax
call fcn.004f31b8
jmp 0x4c06dd
push 0
call fcn.004f3205
jmp 0x4c06dd
cmp dword [0x5595ec], 0
jne 0x4c0003
mov dword [0x5595f0], 1
call fcn.004f31b8
jmp 0x4c06dd
push 1
call fcn.004f3205
jmp 0x4c06dd
cmp dword [0x5595ec], 0
jne 0x4c0035
cmp dword [0x5595f0], 2
jge 0x4c002b
mov dword [0x5595f0], 2
call fcn.004f31b8
jmp 0x4c06dd
cmp dword [0x5595f0], 2
jge 0x4c004a
push 2
call fcn.004f3205
jmp 0x4c06dd
push dword [0x5595f0]
call fcn.004f3205
jmp 0x4c06dd
cmp dword [0x54b444], 0
jne 0x4c06dd
cmp dword [0x55b3d4], 0
je 0x4c00b3
push dword [0x55b3d4]
call sub.USER32.dll_IsIconic
test eax, eax
jne 0x4c00b3
push dword [0x55b3d4]
call sub.USER32.dll_IsWindowVisible
test eax, eax
je 0x4c00b3
push dword [0x55b3d4]
call fcn.00514192
test eax, eax
je 0x4c00a8
mov edx, dword [0x55b3c8]
mov dword [ebp + 8], edx
jmp 0x4c00bb
mov ecx, dword [0x55b3d4]
mov dword [ebp + 8], ecx
jmp 0x4c00bb
mov eax, dword [0x55b3c8]
mov dword [ebp + 8], eax
mov edx, dword [ebp + 0x10]
mov dword [0x556158], edx
mov eax, dword [0x55b3d4]
test eax, eax
je 0x4c00ea
push eax
call fcn.00514192
test eax, eax
jne 0x4c00ea
mov edx, dword [0x55b3d4]
mov dword [ebp + 8], edx
mov dword [0x556158], 2
push 0x4112bb
push 0x1e
push dword [ebp + 8]
call fcn.0045a0bc
xor ecx, ecx
mov dword [0x556158], ecx
jmp 0x4c06dd
cmp dword [0x5561d8], 0
jne 0x4c06dd
mov dword [0x5561d8], 1
cmp dword [0x551548], 0
je 0x4c0153
mov ebx, dword [0x55b3ec]
test ebx, ebx
je 0x4c0149
push dword [0x54d298]
push 0
push 0x2f3
call fcn.0041c35b
push eax
push ebx
call fcn.004dfd6c
push 0x556407
call fcn.004744e8
mov eax, dword [ebp + 0x10]
mov dword [0x556158], eax
mov eax, dword [0x55b3d4]
test eax, eax
je 0x4c017b
cmp eax, dword [0x55b3ec]
jne 0x4c017b
mov dword [ebp + 8], eax
mov dword [0x556158], 2
jmp 0x4c0187
cmp dword [0x556158], 2
jne 0x4c0187
mov dword [ebp + 8], eax
push 0x45c53b
push 0x1b8
push dword [ebp + 8]
call fcn.0045a0bc
xor edx, edx
mov dword [0x556158], edx
xor ecx, ecx
mov dword [0x5561d8], ecx
jmp 0x4c06dd
cmp dword [0x5561dc], 0
jne 0x4c06dd
mov dword [0x5561dc], 1
mov eax, dword [ebp + 0x10]
mov dword [0x556158], eax
push 0x45a3a7
push 0x30c
push dword [ebp + 8]
call fcn.0045a0bc
xor edx, edx
mov dword [0x556158], edx
xor ecx, ecx
mov dword [0x5561dc], ecx
jmp 0x4c06dd
cmp dword [0x5561e0], 0
jne 0x4c06dd
mov dword [0x5561e0], 1
mov eax, dword [ebp + 0x10]
mov dword [0x556158], eax
push 0x4309e8
push 0xaa
push dword [ebp + 8]
call fcn.0045a0bc
xor edx, edx
mov dword [0x556158], edx
xor ecx, ecx
mov dword [0x5561e0], ecx
jmp 0x4c06dd
cmp dword [0x5561e4], 0
jne 0x4c06dd
mov dword [0x5561e4], 1
push dword [0x55b3d4]
call fcn.00478166
xor eax, eax
mov dword [0x5561e4], eax
jmp 0x4c06dd
cmp dword [0x5561e8], 0
jne 0x4c06dd
mov dword [0x5561e8], 1
mov edx, dword [ebp + 0x10]
mov dword [0x556158], edx
push 0
push 0
push 0
push 0
push 0
call fcn.004f4e55
xor ecx, ecx
mov dword [0x556158], ecx
xor eax, eax
mov dword [0x5561e8], eax
jmp 0x4c06dd
cmp dword [0x5561ec], 0
jne 0x4c06dd
mov dword [0x5561ec], 1
mov edx, dword [ebp + 0x10]
mov dword [0x556158], edx
push 0
push 0
push 0
push 0
push 0
push 0
call fcn.00427cfe
xor ecx, ecx
mov dword [0x556158], ecx
xor eax, eax
mov dword [0x5561ec], eax
jmp 0x4c06dd
cmp dword [0x5573c4], 0
jne 0x4c06dd
mov dword [0x55797c], 5
mov dword [0x55799c], 1
push 0x4cb4ec
push 0x29e
push dword [ebp + 8]
call fcn.0045a0bc
jmp 0x4c06dd
mov eax, dword [0x55b3e4]
test eax, eax
je 0x4c0370
cmp eax, dword [0x55b3d4]
jne 0x4c034a
push 0
push 0
push 0x10
push eax
call sub.USER32.dll_PostMessageA
jmp 0x4c06dd
push dword [0x55b3cc]
call sub.USER32.dll_GetTopWindow
mov ebx, dword [0x55b3e4]
cmp eax, ebx
jne 0x4c0370
push 0
push 0
push 0x10
push ebx
call sub.USER32.dll_PostMessageA
jmp 0x4c06dd
call fcn.004c9f0c
jmp 0x4c06dd
mov eax, dword [0x55b3e0]
test eax, eax
je 0x4c039c
cmp eax, dword [0x55b3d4]
jne 0x4c039c
push 0
push 0
push 0x10
push eax
call sub.USER32.dll_PostMessageA
jmp 0x4c06dd
call fcn.0050e936
jmp 0x4c06dd
cmp dword [ebp + 0x10], 0
je 0x4c03ce
push 0x10
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x4c03ce
push 0
push 0
push 0x226
push dword [0x55b3cc]
call sub.USER32.dll_SendMessageA
jmp 0x4c03e2
push 0
push 1
push 0x226
push dword [0x55b3cc]
call sub.USER32.dll_SendMessageA
mov ebx, dword [0x55b3c0]
test ebx, ebx
je 0x4c06dd
push dword [ebx]
call sub.USER32.dll_IsIconic
test eax, eax
jne 0x4c0427
push dword [ebx]
call sub.USER32.dll_IsWindowVisible
test eax, eax
je 0x4c0427
push 0
lea eax, [ebp - 0x10]
push eax
push dword [ebx]
call fcn.00516353
push 1
lea edx, [ebp - 0x10]
push edx
push dword [ebx]
call sub.USER32.dll_InvalidateRect
push dword [ebx]
call sub.USER32.dll_UpdateWindow
mov ebx, dword [ebx + 0x9d8]
test ebx, ebx
jne 0x4c03f0
jmp 0x4c06dd
push 0
push 0
push 0x227
push dword [0x55b3cc]
call sub.USER32.dll_SendMessageA
mov ebx, dword [0x55b3c0]
test ebx, ebx
je 0x4c06dd
push dword [ebx]
call sub.USER32.dll_IsIconic
test eax, eax
jne 0x4c048f
push dword [ebx]
call sub.USER32.dll_IsWindowVisible
test eax, eax
je 0x4c048f
push 0
lea eax, [ebp - 0x20]
push eax
push dword [ebx]
call fcn.00516353
push 1
lea edx, [ebp - 0x20]
push edx
push dword [ebx]
call sub.USER32.dll_InvalidateRect
push dword [ebx]
call sub.USER32.dll_UpdateWindow
mov ebx, dword [ebx + 0x9d8]
test ebx, ebx
jne 0x4c0458
jmp 0x4c06dd
mov ebx, dword [0x55b3c0]
test ebx, ebx
je 0x4c04db
push dword [ebx]
call sub.USER32.dll_IsIconic
test eax, eax
jne 0x4c04be
push dword [ebx]
call sub.USER32.dll_IsWindowVisible
test eax, eax
jne 0x4c04d1
push 0x13
push 0
push 0
push 0
push 0
push 1
push dword [ebx]
call sub.USER32.dll_SetWindowPos
mov ebx, dword [ebx + 0x9d8]
test ebx, ebx
jne 0x4c04a8
push 0
push 0
push 0x228
push dword [0x55b3cc]
call sub.USER32.dll_SendMessageA
jmp 0x4c06dd
mov eax, dword [0x55b3d4]
test eax, eax
je 0x4c06dd
push 0
push 0
push 0x10
push eax
call sub.USER32.dll_SendMessageA
jmp 0x4c06dd
mov eax, dword [0x556140]
cmp eax, 1
sbb eax, eax
neg eax
mov dword [0x556140], eax
test eax, eax
je 0x4c0555
push 8
push 0x7e
push dword [0x555c3c]
call sub.USER32.dll_CheckMenuItem
push 0
push 0x80
push dword [0x555c3c]
call sub.USER32.dll_CheckMenuItem
xor edx, edx
mov dword [0x556144], edx
jmp 0x4c06dd
push 0
push 0x7e
push dword [0x555c3c]
call sub.USER32.dll_CheckMenuItem
jmp 0x4c06dd
mov eax, dword [0x556144]
cmp eax, 1
sbb eax, eax
neg eax
mov dword [0x556144], eax
test eax, eax
je 0x4c05ac
push 8
push 0x80
push dword [0x555c3c]
call sub.USER32.dll_CheckMenuItem
push 0
push 0x7e
push dword [0x555c3c]
call sub.USER32.dll_CheckMenuItem
xor edx, edx
mov dword [0x556140], edx
jmp 0x4c06dd
push 0
push 0x80
push dword [0x555c3c]
call sub.USER32.dll_CheckMenuItem
jmp 0x4c06dd
mov eax, dword [0x556148]
cmp eax, 1
sbb eax, eax
neg eax
mov dword [0x556148], eax
test eax, eax
je 0x4c05ec
push 8
push 0x7f
push dword [0x555c3c]
call sub.USER32.dll_CheckMenuItem
jmp 0x4c06dd
push 0
push 0x7f
push dword [0x555c3c]
call sub.USER32.dll_CheckMenuItem
jmp 0x4c06dd
push 0xa
call fcn.0041ce33
jmp 0x4c06dd
push 0
call fcn.0041ce33
jmp 0x4c06dd
cmp dword [0x5561f0], 0
jne 0x4c06dd
mov dword [0x5561f0], 1
mov edx, dword [ebp + 0x10]
mov dword [0x556158], edx
push 0x40e9a7
push 0xa
push dword [ebp + 8]
call fcn.0045a0bc
xor ecx, ecx
mov dword [0x556158], ecx
cmp dword [0x54b37c], 0
je 0x4c0664
xor eax, eax
mov dword [0x54b37c], eax
call fcn.004bce55
xor edx, edx
mov dword [0x5561f0], edx
jmp 0x4c06dd
cmp dword [0x5561f4], 0
jne 0x4c06dd
mov dword [0x5561f4], 1
push 0x4b09ee
push 0x2c6
push dword [ebp + 8]
call fcn.0045a0bc
xor ecx, ecx
mov dword [0x5561f4], ecx
jmp 0x4c06dd
movzx esi, bx
push esi
push dword [0x55b3d4]
call fcn.004b995d
test eax, eax
je 0x4c06b7
mov eax, 1
jmp 0x4c06e2
push esi
call fcn.004b809f
test eax, eax
je 0x4c06c8
mov eax, 1
jmp 0x4c06e2
push ebx
call fcn.004b86e4
test eax, eax
je 0x4c06d9
mov eax, 1
jmp 0x4c06e2
xor eax, eax
jmp 0x4c06e2
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc