Function at 0x497efc
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffac
push ebx
push esi
push edi
mov dword [ebp - 4], eax
mov byte [ebp - 5], 1
xor edx, edx
push ebp
push 0x4986cb
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
mov byte [eax + 0x45], 1
mov eax, dword [0x4dd464]
mov eax, dword [eax]
xor edx, edx
call fcn.0045efb4
push eax
call sub.user32.dll_SetCursor
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00494b60
test eax, eax
jle 0x497fff
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x30]
mov eax, ebx
call fcn.00494b60
mov edx, eax
dec edx
mov eax, ebx
call fcn.00494b68
mov edx, dword [ebp - 4]
mov dword [edx + 0x40], eax
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x30]
mov ebx, dword [esi + 0x8c]
test ebx, ebx
jl 0x497feb
mov eax, esi
call fcn.00494b60
cmp ebx, eax
jge 0x497feb
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x30]
mov edx, dword [ebx + 0x8c]
mov eax, ebx
call fcn.00494b68
mov edx, dword [ebp - 4]
mov dword [edx + 0x40], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp byte [eax + 0x78], 0
je 0x497fd7
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x30]
mov eax, ebx
call fcn.00494b60
mov edx, dword [ebx + 0x8c]
inc edx
cmp eax, edx
jle 0x497fd7
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x30]
mov edx, dword [ebx + 0x8c]
inc edx
mov eax, ebx
call fcn.00494b68
mov edx, dword [ebp - 4]
mov dword [edx + 0x40], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
test eax, eax
je 0x497feb
mov edx, eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x3c]
lea eax, [ebp - 0xe]
push eax
call sub.user32.dll_GetCursorPos
lea edx, [ebp - 0xe]
mov eax, dword [ebp - 4]
call fcn.004974a8
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x3c]
test ebx, ebx
je 0x498015
mov eax, ebx
call fcn.00447bdc
call fcn.004640c0
mov byte [ebp - 6], 1
jmp 0x498693
cmp byte [ebp - 6], 0
jne 0x498029
call sub.user32.dll_WaitMessage
mov byte [ebp - 6], 0
jmp 0x49866f
mov eax, dword [ebp - 0x38]
sub eax, 0x12
je 0x49813c
sub eax, 0x34
je 0x49805b
add eax, 0xffffffa5
sub eax, 9
jb 0x49813c
sub eax, 0x157
je 0x49806c
jmp 0x498148
push ebp
call fcn.00497ea8
pop ecx
call fcn.00404074
jmp 0x4986d2
lea edx, [ebp - 0xe]
mov eax, dword [ebp - 0x30]
call fcn.00407968
lea eax, [ebp - 0xe]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.user32.dll_ClientToScreen
mov eax, dword [ebp - 0xe]
mov dword [ebp - 0x16], eax
mov eax, dword [ebp - 0xa]
mov dword [ebp - 0x12], eax
lea ecx, [ebp - 0x44]
lea edx, [ebp - 0xe]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
call fcn.00440ef0
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0xe], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0xa], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x40], 0
je 0x4980ed
push dword [ebp - 0xa]
push dword [ebp - 0xe]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
add eax, 0x95
push eax
call sub.user32.dll_PtInRect
test eax, eax
je 0x4980ed
push 0
push 0xd
push pe_nt_image_headers32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
call fcn.00447bdc
push eax
call sub.user32.dll_PostMessageA
jmp 0x498148
mov edi, dword [ebp - 4]
xor ebx, ebx
jmp 0x49811f
lea ecx, [ebp - 0xe]
lea edx, [ebp - 0x16]
mov eax, dword [edi + 0x3c]
call fcn.00440ef0
push dword [ebp - 0xa]
push dword [ebp - 0xe]
mov eax, dword [edi + 0x40]
add eax, 0x95
push eax
call sub.user32.dll_PtInRect
test eax, eax
je 0x49811c
mov bl, 1
mov edi, dword [edi + 0x48]
test edi, edi
je 0x498127
test bl, bl
je 0x4980f4
test bl, bl
jne 0x498148
push ebp
call fcn.00497ea8
pop ecx
call fcn.00404074
jmp 0x4986d2
push ebp
call fcn.00497ea8
pop ecx
jmp 0x49866f
push 3
push 0
push 0
push 0
lea eax, [ebp - 0x3c]
push eax
call sub.user32.dll_PeekMessageA
test eax, eax
je 0x49866f
mov eax, dword [ebp - 0x38]
sub eax, 0x7b
je 0x49866f
add eax, 0xffffff7b
sub eax, 9
jb 0x49819d
add eax, 0xffffff09
sub eax, 0xb
jb 0x498483
sub eax, 0x264
jne 0x498666
mov eax, dword [ebp - 4]
call fcn.00497b58
jmp 0x49866f
push 1
call sub.user32.dll_GetKeyState
test ax, ax
jl 0x49866f
mov eax, dword [ebp - 0x38]
sub eax, 0x100
je 0x4981d3
sub eax, 2
je 0x498423
sub eax, 2
je 0x4981d3
sub eax, 2
je 0x498423
jmp 0x49866f
mov eax, dword [ebp - 0x34]
cmp eax, 0x25
jg 0x498216
je 0x4982d2
cmp eax, 0x12
jg 0x4981ff
je 0x498409
sub eax, 9
je 0x49866f
sub eax, 4
je 0x49823b
jmp 0x498415
sub eax, 0x1b
je 0x4982a5
sub eax, 5
je 0x49866f
jmp 0x498415
sub eax, 0x26
je 0x4983cc
dec eax
je 0x498347
dec eax
je 0x4983e6
sub eax, 0x51
je 0x498409
jmp 0x498415
mov eax, dword [ebp - 4]
cmp dword [eax + 0x40], 0
je 0x498253
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov si, 0xffef
call fcn.004039f0
mov eax, dword [ebp - 4]
call fcn.00497b58
test al, al
jne 0x49866f
mov eax, dword [ebp - 4]
cmp dword [eax + 0x40], 0
je 0x49866f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x30]
mov edx, 0x4986e0
call fcn.00404fcc
je 0x49866f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp byte [eax + 0x35], 0
je 0x49866f
push ebp
call fcn.00497ea8
pop ecx
jmp 0x49866f
mov eax, dword [ebp - 4]
cmp dword [eax + 0x48], 0
je 0x4982b8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
mov byte [eax + 0x44], 0
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x40], edx
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x38]
call fcn.00404074
jmp 0x4986d2
mov eax, dword [ebp - 4]
cmp byte [eax + 0x34], 0
je 0x4982e8
mov eax, dword [ebp - 4]
call fcn.00497d68
jmp 0x49866f
mov eax, dword [ebp - 4]
cmp dword [eax + 0x48], 0
je 0x49866f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
cmp byte [eax + 0x34], 0
je 0x498328
push 0
push 0x25
push pe_nt_image_headers32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
mov eax, dword [eax + 0x3c]
call fcn.00447bdc
push eax
call sub.user32.dll_PostMessageA
call fcn.00404074
jmp 0x4986d2
push 0
push 0x1b
push pe_nt_image_headers32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
call fcn.00447bdc
push eax
call sub.user32.dll_PostMessageA
jmp 0x49866f
mov eax, dword [ebp - 4]
cmp byte [eax + 0x34], 0
je 0x49835d
mov eax, dword [ebp - 4]
call fcn.00497c38
jmp 0x49866f
mov eax, dword [ebp - 4]
cmp dword [eax + 0x48], 0
je 0x49866f
mov eax, dword [ebp - 4]
call fcn.00497b58
test al, al
jne 0x49866f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
cmp byte [eax + 0x34], 0
je 0x4983ad
push 0
push 0x27
push pe_nt_image_headers32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
mov eax, dword [eax + 0x3c]
call fcn.00447bdc
push eax
call sub.user32.dll_PostMessageA
call fcn.00404074
jmp 0x4986d2
push 0
push 0x1b
push pe_nt_image_headers32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
call fcn.00447bdc
push eax
call sub.user32.dll_PostMessageA
jmp 0x49866f
mov eax, dword [ebp - 4]
cmp byte [eax + 0x34], 0
jne 0x49866f
mov eax, dword [ebp - 4]
call fcn.00497d68
jmp 0x49866f
mov eax, dword [ebp - 4]
cmp byte [eax + 0x34], 0
jne 0x4983fc
mov eax, dword [ebp - 4]
call fcn.00497c38
jmp 0x49866f
mov eax, dword [ebp - 4]
call fcn.00497b58
jmp 0x49866f
push ebp
call fcn.00497ea8
pop ecx
jmp 0x49866f
lea eax, [ebp - 0x3c]
push eax
call sub.user32.dll_TranslateMessage
jmp 0x49866f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov dl, byte [ebp - 0x34]
call fcn.00496a28
test eax, eax
je 0x49866f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov dl, byte [ebp - 0x34]
call fcn.00496a28
mov edx, dword [ebp - 4]
mov dword [edx + 0x40], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x40], 0
je 0x498464
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x40]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x3c]
push 0
push 0xd
push pe_nt_image_headers32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
call fcn.00447bdc
push eax
call sub.user32.dll_PostMessageA
jmp 0x49866f
mov eax, dword [ebp - 0x38]
sub eax, 0x200
je 0x49849b
sub eax, 2
je 0x49859e
jmp 0x49866f
lea edx, [ebp - 0xe]
mov eax, dword [ebp - 0x30]
call fcn.00407968
lea eax, [ebp - 0xe]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.user32.dll_ClientToScreen
mov eax, dword [ebp - 0xe]
cmp eax, dword [0x4f5c40]
jne 0x4984cd
mov eax, dword [ebp - 0xa]
cmp eax, dword [0x4f5c44]
je 0x49866f
mov edi, dword [ebp - 4]
push dword [ebp - 0xa]
push dword [ebp - 0xe]
lea edx, [ebp - 0x54]
mov eax, dword [edi + 0x3c]
call fcn.00440d4c
lea eax, [ebp - 0x54]
push eax
call sub.user32.dll_PtInRect
test eax, eax
je 0x4984fd
lea edx, [ebp - 0xe]
mov eax, edi
call fcn.004974a8
jmp 0x498587
mov edi, dword [ebp - 4]
jmp 0x498505
mov edi, dword [edi + 0x48]
cmp dword [edi + 0x48], 0
jne 0x498502
test edi, edi
je 0x498587
mov eax, dword [edi + 0x40]
mov dword [ebp - 0x1c], eax
lea edx, [ebp - 0xe]
mov eax, edi
call fcn.004974a8
mov eax, dword [edi + 0x40]
cmp eax, dword [ebp - 0x1c]
je 0x498580
cmp edi, dword [ebp - 4]
je 0x498580
mov eax, dword [ebp - 4]
mov dword [ebp - 0x20], eax
cmp edi, dword [ebp - 0x20]
je 0x49855f
push 0
push 0x1b
push pe_nt_image_headers32
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x3c]
call fcn.00447bdc
push eax
call sub.user32.dll_PostMessageA
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x48]
mov dword [ebp - 0x20], eax
cmp edi, dword [ebp - 0x20]
jne 0x498537
push 0
push 0
push 0x46f
mov eax, dword [edi + 0x3c]
call fcn.00447bdc
push eax
call sub.user32.dll_PostMessageA
call fcn.00404074
jmp 0x4986d2
mov edi, dword [edi + 0x4c]
test edi, edi
jne 0x49850f
mov eax, dword [ebp - 0xe]
mov dword [0x4f5c40], eax
mov eax, dword [ebp - 0xa]
mov dword [0x4f5c44], eax
jmp 0x49866f
lea edx, [ebp - 0xe]
mov eax, dword [ebp - 0x30]
call fcn.00407968
lea eax, [ebp - 0xe]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.user32.dll_ClientToScreen
mov eax, dword [ebp - 0xe]
mov dword [ebp - 0x16], eax
mov eax, dword [ebp - 0xa]
mov dword [ebp - 0x12], eax
lea ecx, [ebp - 0x44]
lea edx, [ebp - 0xe]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
call fcn.00440ef0
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0xe], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0xa], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x40], 0
je 0x49861f
push dword [ebp - 0xa]
push dword [ebp - 0xe]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
add eax, 0x95
push eax
call sub.user32.dll_PtInRect
test eax, eax
je 0x49861f
push 0
push 0xd
push pe_nt_image_headers32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
call fcn.00447bdc
push eax
call sub.user32.dll_PostMessageA
jmp 0x49866f
mov edi, dword [ebp - 4]
xor ebx, ebx
jmp 0x498651
lea ecx, [ebp - 0xe]
lea edx, [ebp - 0x16]
mov eax, dword [edi + 0x3c]
call fcn.00440ef0
push dword [ebp - 0xa]
push dword [ebp - 0xe]
mov eax, dword [edi + 0x40]
add eax, 0x95
push eax
call sub.user32.dll_PtInRect
test eax, eax
je 0x49864e
mov bl, 1
mov edi, dword [edi + 0x48]
test edi, edi
je 0x498659
test bl, bl
je 0x498626
test bl, bl
jne 0x49866f
push ebp
call fcn.00497ea8
pop ecx
jmp 0x49866f
lea eax, [ebp - 0x3c]
push eax
call sub.user32.dll_DispatchMessageA
push ebp
call fcn.00497ed4
pop ecx
test al, al
je 0x498693
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x3c]
push eax
call sub.user32.dll_PeekMessageA
test eax, eax
jne 0x498032
push ebp
call fcn.00497ed4
pop ecx
test al, al
jne 0x49801e
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4986d2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
test eax, eax
je 0x4986be
mov edx, dword [eax]
call dword [edx + 0x38]
mov eax, dword [ebp - 4]
mov byte [eax + 0x45], 0
call fcn.004640e0
ret
mov al, byte [ebp - 5]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret