Function at 0x472e2c
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
push ebx
push esi
xor ebx, ebx
push edi
mov edi, ecx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 8], 0x2c03342e
xor ecx, ecx
mov dword [ebp - 0xc], 0x3b1a9565
inc ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], ebx
jmp 0x472e5f
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x24], ecx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ecx
jl 0x472e55
mov dword [ebp - 8], ebx
jmp 0x472eca
mov dword [ebp - 0x10], 0x38ecf54c
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0xc], ebx
jmp 0x472e94
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x34], 0x516a205b
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x472e86
mov dword [ebp - 0x10], 0x16
jmp 0x472ec1
mov dword [ebp - 0xc], ebx
jmp 0x472eb6
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x20], 0x84bc9c3
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ecx
jl 0x472ea8
dec dword [ebp - 0x20]
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x14
jle 0x472ea3
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x17
jl 0x472e69
mov esi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [ebp - 0xc], ebx
cmp dword [ebp - 0xc], ebx
jg 0x472f79
mov dword [ebp - 0x10], ebx
jmp 0x472f43
mov dword [ebp - 8], ebx
cmp dword [ebp - 8], ebx
jl 0x472f0f
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x472f0a
call esi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call esi
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
dec dword [ebp - 8]
jns 0x472eef
mov dword [ebp - 8], ebx
cmp dword [ebp - 8], ebx
jl 0x472f40
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x472f29
push ebx
call esi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x472f3b
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
dec dword [ebp - 8]
jns 0x472f17
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jle 0x472ee7
mov eax, dword [ebp - 0xc]
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x24]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + eax*4 - 0x24]
mov eax, dword [ebp - 0xc]
cmp ecx, eax
mov eax, 0xffff0008
sete dl
sub eax, edx
mov dword [ebp - 8], eax
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jle 0x472ee2
xor ecx, ecx
inc ecx
push ecx
push ecx
push ecx
push 0x48d6
push ecx
push 0x35e3
push 0x777a
push edi
push 0x764
push 0x331c
push ecx
push 0x7ab1
call fcn.00466086
mov dword [ebp - 8], 0xffffffff
add esp, 0x30
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x472fbb
push ebx
call dword [sym.imp.USER32.dll_GetKeyboardState]
mov dword [ebp - 8], ebx
jmp 0x473014
mov dword [ebp - 0xc], 3
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x472fd8
push ebx
push ebx
push ebx
call dword [sym.imp.OLEAUT32.dll_SysStringByteLen]
mov dword [ebp - 0xc], ebx
jmp 0x47300b
mov dword [ebp - 0x10], 0x999fb023
mov dword [ebp - 0x10], 0xfffffffb
jmp 0x473002
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x472fff
push ebx
call esi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xb
jge 0x472fed
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x1c
je 0x472fdd
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffff
jge 0x472fc0
push edi
call fcn.0044b9c1
mov dword [ebp - 0x18], 0xade2167
mov esi, eax
mov dword [ebp - 0x14], 0x4ad38dc5
mov dword [ebp - 0x1c], 0x184dcc80
mov dword [ebp - 0x1c], 0xc2dd78f4
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x1c], 8
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], 0x9c77509c
pop ecx
mov dword [ebp - 8], ebx
jmp 0x47306a
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x5c], 0x96960f57
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x47305c
mov dword [ebp - 8], ebx
jmp 0x473083
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x2c], 3
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x473075
mov dword [ebp - 8], ebx
jmp 0x47309c
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x4c], 0xfffffffb
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x47308e
mov eax, dword [ebp - 0x5c]
xor edi, edi
mov dword [ebp - 0x18], eax
inc edi
mov dword [ebp - 0x1c], edi
xor ecx, ecx
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 8], eax
mov edx, dword [ebp - 8]
mov dword [ebp - 0x2c], edx
imul eax, dword [ebp - 0x14], 0x10fad98e
add eax, 0x48bb
imul eax, dword [ebp - 0xc]
imul eax, eax, 0xf4df
cmp edx, eax
sete cl
imul ecx, dword [ebp - 0x18]
cmp ecx, 3
jae 0x4730e3
mov eax, dword [ebp - 0x48]
imul eax, dword [ebp - 0x14], 0xffffeb4e
cmp eax, dword [ebp - 0x14]
jg 0x4731ca
mov dword [ebp - 0x1c], 0x7067
mov dword [ebp - 0x10], 0x2e882408
mov dword [ebp - 8], 3
jmp 0x4731b7
mov dword [ebp - 0x10], ebx
jmp 0x473120
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x40], 5
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x473112
cmp dword [ebp - 0x3c], ebx
je 0x4731af
mov dword [ebp - 0xc], ebx
jmp 0x4731a8
mov eax, dword [ebp - 0xc]
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x2c]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp + eax*4 - 0x54]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp + eax*4 - 0x2c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + eax*4 - 0x2c]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
setle dl
sub edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xc]
sub edx, dword [ebp + eax*4 - 0x2c]
jne 0x473170
mov edx, ebx
cmp dword [ebp - 0x40], ebx
je 0x473172
mov edx, edi
mov eax, dword [ebp - 0xc]
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x2c]
inc eax
cmp eax, edx
setg cl
xor edx, edx
cmp ecx, 0x9ba5
setne dl
sub edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0xc]
setle cl
mov dword [ebp + eax*4 - 0x2c], ecx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jle 0x473134
jmp 0x4731b4
cmp dword [ebp - 0x38], ebx
jne 0x4731c1
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x1c
jle 0x47310d
mov dword [ebp - 0x10], 0xa
jmp 0x4731d9
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x4731d9
push ebx
call dword [sym.imp.OLEAUT32.dll_VariantClear]
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret