Function at 0x7cdfc59a
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x44
push ebx
push ebp
push esi
push edi
xor edi, edi
mov ebp, ecx
push edi
mov dword [esp + 0x1c], 1
push dword [0x7ce4d234]
push edi
push edi
call dword [sym.imp.USER32.dll_SetTimer]
mov ebx, dword [sym.imp.USER32.dll_PeekMessageW]
mov dword [esp + 0x14], eax
push 3
push 0x12
push 0x12
lea eax, [esp + 0x28]
push edi
push eax
mov dword [esp + 0x24], edi
call ebx
test eax, eax
jne 0x7cdfc658
push 3
push 0x108
push 0x100
lea eax, [esp + 0x28]
push edi
push eax
call ebx
test eax, eax
jne 0x7cdfc658
push 3
mov esi, 0x104
push 0x105
push esi
lea eax, [esp + 0x28]
push edi
push eax
call ebx
test eax, eax
jne 0x7cdfc65d
push 1
push 0x20d
push 0x200
lea eax, [esp + 0x28]
push edi
push eax
call ebx
test eax, eax
jne 0x7cdfc65d
push 3
push 0xa9
push 0xa0
lea eax, [esp + 0x28]
push edi
push eax
call ebx
test eax, eax
jne 0x7cdfc65d
push 3
push edi
push edi
lea eax, [esp + 0x28]
push edi
push eax
call ebx
test eax, eax
jne 0x7cdfc65d
call dword [sym.imp.USER32.dll_WaitMessage]
jmp 0x7cdfc7e8
mov esi, 0x104
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], 1
cmp eax, 0x12
jne 0x7cdfc688
push dword [esp + 0x24]
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov dword [ebp + 0x38], 0x80004005
mov dword [esp + 0x18], edi
jmp 0x7cdfc7e8
mov ecx, 0x100
cmp eax, ecx
jb 0x7cdfc698
cmp eax, 0x108
jbe 0x7cdfc6ae
cmp eax, esi
jb 0x7cdfc712
cmp eax, 0x105
ja 0x7cdfc712
jmp 0x7cdfc6ae
mov eax, dword [esp + 0x20]
mov ecx, 0x100
cmp eax, ecx
je 0x7cdfc6b6
cmp eax, esi
jne 0x7cdfc6c4
cmp dword [esp + 0x24], 0x1b
jne 0x7cdfc6c4
mov dword [ebp + 0x28], 1
push 3
push 0x108
push ecx
lea eax, [esp + 0x28]
push edi
push eax
call ebx
test eax, eax
jne 0x7cdfc6a5
push 3
push 0x105
push esi
lea eax, [esp + 0x28]
push edi
push eax
call ebx
test eax, eax
jne 0x7cdfc6a5
mov esi, dword [ebp + 0x34]
push edi
call fcn.7cdfbf0a
movzx eax, ax
mov ecx, esi
and ecx, 0x13
or eax, ecx
cmp eax, esi
jne 0x7cdfc78b
cmp dword [ebp + 0x28], edi
je 0x7cdfc7e4
jmp 0x7cdfc78b
mov esi, 0x200
cmp eax, esi
jb 0x7cdfc790
cmp eax, 0x20d
ja 0x7cdfc790
push 0x1b
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jge 0x7cdfc736
mov dword [ebp + 0x28], 1
cmp dword [esp + 0x20], esi
jne 0x7cdfc771
push 1
push esi
push esi
lea eax, [esp + 0x44]
push edi
push eax
call ebx
test eax, eax
je 0x7cdfc771
push 7
mov eax, 0x200
pop ecx
lea esi, [esp + 0x38]
push 1
push eax
push eax
lea edi, [esp + 0x28]
lea eax, [esp + 0x44]
push 0
rep movsd dword es:[edi], dword [esi]
push eax
call ebx
test eax, eax
jne 0x7cdfc74c
xor edi, edi
mov eax, dword [esp + 0x30]
push dword [esp + 0x24]
mov dword [ebp + 0x18], eax
mov eax, dword [esp + 0x38]
mov dword [ebp + 0x1c], eax
call fcn.7cdfbf4d
movzx eax, ax
mov dword [ebp + 0x34], eax
jmp 0x7cdfc7e8
cmp eax, 0xa0
jb 0x7cdfc79e
cmp eax, 0xa9
jbe 0x7cdfc7e8
cmp eax, 0x113
jne 0x7cdfc7d9
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x24], eax
jne 0x7cdfc7d9
push edi
call fcn.7cdfbf0a
mov ecx, dword [ebp + 0x34]
push 0x1b
movzx eax, ax
and ecx, 0x13
or eax, ecx
mov dword [ebp + 0x34], eax
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jge 0x7cdfc7e8
mov dword [ebp + 0x28], 1
jmp 0x7cdfc7e8
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
mov dword [esp + 0x10], edi
cmp dword [esp + 0x10], edi
je 0x7cdfc5c6
push dword [esp + 0x14]
push edi
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret