Function at 0x1004c5e3
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x164
movzx eax, byte [ebp + 8]
test eax, eax
je 0x1004cab8
mov dword [ebp - 4], 0
mov dword [ebp - 0x3c], 0xfffffffd
mov dword [ebp - 0x2c], 0xfffffff8
mov dword [ebp - 8], 0
jmp 0x1004c61d
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 2
jge 0x1004c630
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x5c], 1
jmp 0x1004c616
mov dword [ebp - 8], 0
jmp 0x1004c640
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 1
jge 0x1004c653
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x54], 1
jmp 0x1004c639
mov dword [ebp - 8], 0
jmp 0x1004c663
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 4
jge 0x1004c679
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x164], 1
jmp 0x1004c65c
mov eax, dword [ebp - 4]
mov dword [ebp - 0x108], eax
cmp dword [ebp - 4], 1
jg 0x1004c69a
cmp dword [ebp - 4], 0
je 0x1004c69a
mov dword [ebp - 0x90], 1
jmp 0x1004c6a1
and dword [ebp - 0x90], 0
cmp dword [ebp - 0x90], 0x4952
jl 0x1004c6b9
mov dword [ebp - 0xa8], 1
jmp 0x1004c6c0
and dword [ebp - 0xa8], 0
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0xa8]
jne 0x1004c6cf
cmp dword [ebp - 0x2c], 0
mov eax, 0x37fc
sub eax, 0xb27f
jne 0x1004c6e4
mov dword [ebp - 0x68], 1
jmp 0x1004c6e8
and dword [ebp - 0x68], 0
mov eax, dword [ebp - 4]
cmp dword [ebp - 0x68], eax
jne 0x1004c6fc
mov dword [ebp - 0xa4], 1
jmp 0x1004c703
and dword [ebp - 0xa4], 0
mov eax, dword [ebp - 4]
cmp dword [ebp - 0xa4], eax
jge 0x1004c717
mov dword [ebp - 0x70], 1
jmp 0x1004c71b
and dword [ebp - 0x70], 0
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x70]
cmp eax, dword [ebp - 4]
jl 0x1004c732
mov dword [ebp - 0xac], 1
jmp 0x1004c739
and dword [ebp - 0xac], 0
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0xac], eax
jg 0x1004c74d
mov dword [ebp - 0x78], 1
jmp 0x1004c751
and dword [ebp - 0x78], 0
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x78], eax
jge 0x1004c8d5
cmp dword [ebp - 4], 0
je 0x1004c8d5
mov dword [ebp - 0x1c], 0
jmp 0x1004c777
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x1004c78d
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x130], 0x843c6bcf
jmp 0x1004c770
mov dword [ebp - 0x1c], 0
jmp 0x1004c79d
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 2
jge 0x1004c7b3
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xf4], 8
jmp 0x1004c796
mov dword [ebp - 4], 0
jmp 0x1004c7c3
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 1
jg 0x1004c8b6
mov dword [ebp - 0x44], 0x51814487
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x5c]
mov dword [ebp + ecx*4 - 0x5c], eax
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax - 0x5c]
push 4
pop ecx
shl ecx, 0
add eax, dword [ebp + ecx - 0x130]
cmp eax, 0xfffffff7
jne 0x1004c80a
mov dword [ebp - 0xb4], 1
jmp 0x1004c811
and dword [ebp - 0xb4], 0
cmp dword [ebp - 0xb4], 3
jbe 0x1004c823
mov dword [ebp - 0x80], 1
jmp 0x1004c827
and dword [ebp - 0x80], 0
cmp dword [ebp - 0x80], 0xffffffff
jge 0x1004c83f
cmp dword [ebp - 0x2c], 0
je 0x1004c83f
mov dword [ebp - 0xbc], 1
jmp 0x1004c846
and dword [ebp - 0xbc], 0
push 4
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0xbc]
mov dword [ebp + eax - 0xf4], ecx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0x2c]
imul eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x44]
jg 0x1004c883
mov dword [ebp - 0x88], 1
jmp 0x1004c88a
and dword [ebp - 0x88], 0
mov eax, dword [ebp - 0x44]
cmp dword [ebp - 0x88], eax
jl 0x1004c8a1
mov dword [ebp - 0xc4], 1
jmp 0x1004c8a8
and dword [ebp - 0xc4], 0
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x3c], eax
jmp 0x1004c7bc
mov byte [ebp - 0x27], 0
movzx eax, byte [ebp - 0x27]
test eax, eax
je 0x1004c8d0
push 0
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
jmp 0x1004ca9c
mov dword [ebp - 0xa0], 1
mov dword [ebp - 0xd4], 0xfffffffd
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x4c], 0x6e219e4e
mov dword [ebp - 4], 0
jmp 0x1004c907
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 1
jg 0x1004ca9c
mov dword [ebp - 0x30], 0
jmp 0x1004c921
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 4
jge 0x1004c937
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax*4 - 0x124], 0x8004c3d8
jmp 0x1004c91a
mov byte [ebp - 0x25], 0
movzx eax, byte [ebp - 0x25]
test eax, eax
je 0x1004c94e
push 0x2ee
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 4
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 4]
mov eax, dword [ebp + eax - 0x54]
mov dword [ebp + ecx*4 - 0x5c], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0xa0]
cmp dword [ebp - 0x60], eax
jg 0x1004c97f
mov dword [ebp - 0xcc], 1
jmp 0x1004c986
and dword [ebp - 0xcc], 0
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
sub eax, 0xc219
cmp eax, dword [ebp - 4]
jle 0x1004c9ad
xor eax, eax
inc eax
je 0x1004c9ad
mov dword [ebp - 0x98], 1
jmp 0x1004c9b4
and dword [ebp - 0x98], 0
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax - 0x54]
cmp dword [ebp - 0x98], eax
jne 0x1004c9d2
mov dword [ebp - 0xe8], 1
jmp 0x1004c9d9
and dword [ebp - 0xe8], 0
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x5c]
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x3c], 0xfff7
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0xd4], eax
jle 0x1004ca13
mov eax, 0x40f4eb95
test eax, eax
jne 0x1004ca13
and dword [ebp - 0xdc], 0
jmp 0x1004ca1d
mov dword [ebp - 0xdc], 1
mov eax, dword [ebp - 0xa0]
cmp eax, dword [ebp - 0xdc]
jg 0x1004ca37
mov dword [ebp - 0xe4], 1
jmp 0x1004ca3e
and dword [ebp - 0xe4], 0
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0xe4]
sub ecx, dword [ebp + eax*4 - 0x5c]
push 4
pop eax
imul eax, eax, 0
cmp ecx, dword [ebp + eax - 0x54]
jg 0x1004ca63
mov dword [ebp - 0xc8], 1
jmp 0x1004ca6a
and dword [ebp - 0xc8], 0
push 4
pop eax
imul eax, eax, 3
mov eax, dword [ebp + eax - 0x124]
add eax, dword [ebp - 0xc8]
push 4
pop ecx
shl ecx, 1
add eax, dword [ebp + ecx - 0x124]
neg eax
push 4
pop ecx
shl ecx, 1
mov dword [ebp + ecx - 0x164], eax
jmp 0x1004c900
push 0x1f1b
push 0
push 0x812
push 0x192c
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
jmp 0x1004cea2
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x14], 0xe81a7ecc
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 0xc], eax
jne 0x1004cada
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 0xc], eax
je 0x1004cada
cmp dword [ebp - 0xc], 0
cmp dword [ebp - 0xc], 0
je 0x1004caf2
cmp dword [ebp - 0xc], 0
je 0x1004caf2
mov dword [ebp - 0xb0], 1
jmp 0x1004caf9
and dword [ebp - 0xb0], 0
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xb0], eax
jle 0x1004cb55
mov dword [ebp - 0x34], 0
jmp 0x1004cb14
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 3
jge 0x1004cb2a
mov eax, dword [ebp - 0x34]
mov dword [ebp + eax*4 - 0x148], 0x6ddcd166
jmp 0x1004cb0d
mov dword [ebp - 0x14], 0
jmp 0x1004cb3a
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jge 0x1004cb50
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x148], 0xbdbdf7cd
jmp 0x1004cb33
jmp 0x1004cd38
mov dword [ebp - 0x48], 0xd8ff8cd3
mov dword [ebp - 0xd8], 0xffffffff
mov dword [ebp - 0x18], 0
jmp 0x1004cb76
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 3
jge 0x1004cb8c
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x154], 0x94486cae
jmp 0x1004cb6f
mov dword [ebp - 0x18], 0
jmp 0x1004cb9c
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 2
jge 0x1004cbb2
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xfc], 0xfffffffb
jmp 0x1004cb95
mov byte [ebp - 0x1e], 0
movzx eax, byte [ebp - 0x1e]
test eax, eax
je 0x1004cbcb
push 0xeaf
push 0
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [ebp - 0xc], 0
jmp 0x1004cbdb
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 1
jne 0x1004cd38
mov dword [ebp - 0x24], 0
mov eax, 0xffff
test eax, eax
je 0x1004cc15
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xd8]
cmp dword [ebp - 0x48], eax
jl 0x1004cc15
mov dword [ebp - 0xc0], 1
jmp 0x1004cc1c
and dword [ebp - 0xc0], 0
cmp dword [ebp - 0x24], 1
jge 0x1004cc2e
mov dword [ebp - 0xb8], 1
jmp 0x1004cc35
and dword [ebp - 0xb8], 0
mov eax, dword [ebp - 0x48]
cmp dword [ebp - 0xb8], eax
jne 0x1004cc4c
mov dword [ebp - 0xec], 1
jmp 0x1004cc53
and dword [ebp - 0xec], 0
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x24], 0
jne 0x1004cc6e
mov dword [ebp - 0xd0], 1
jmp 0x1004cc75
and dword [ebp - 0xd0], 0
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 0xd0], eax
jge 0x1004cc8c
mov dword [ebp - 0xe0], 1
jmp 0x1004cc93
and dword [ebp - 0xe0], 0
mov eax, dword [ebp - 0xc0]
cmp eax, dword [ebp - 0xe0]
jg 0x1004ccaa
mov dword [ebp - 0x64], 1
jmp 0x1004ccae
and dword [ebp - 0x64], 0
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x64], eax
jne 0x1004ccbf
mov dword [ebp - 0x6c], 1
jmp 0x1004ccc3
and dword [ebp - 0x6c], 0
cmp dword [ebp - 0x6c], 1
jl 0x1004ccd2
mov dword [ebp - 0x74], 1
jmp 0x1004ccd6
and dword [ebp - 0x74], 0
cmp dword [ebp - 0x74], 0xf4c6
je 0x1004cce8
mov dword [ebp - 0x50], 1
jmp 0x1004ccec
and dword [ebp - 0x50], 0
push 4
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0x50]
mov dword [ebp + eax - 0x154], ecx
cmp dword [ebp - 0x50], 0
je 0x1004cd11
cmp dword [ebp - 0x24], 0
je 0x1004cd11
mov dword [ebp - 0x7c], 1
jmp 0x1004cd15
and dword [ebp - 0x7c], 0
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x7c]
push 4
pop ecx
shl ecx, 0
mov dword [ebp + ecx - 0xfc], eax
cmp dword [ebp - 0x24], 0
je 0x1004cd33
jmp 0x1004cbd4
jmp 0x1004cbd4
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
mov byte [ebp - 0x1f], 0
movzx eax, byte [ebp - 0x1f]
test eax, eax
je 0x1004cea2
mov dword [ebp - 0x40], 0xb7c7ce53
mov dword [ebp - 0x38], 0
jmp 0x1004cd68
mov eax, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 3
jge 0x1004cd7e
mov eax, dword [ebp - 0x38]
mov dword [ebp + eax*4 - 0x13c], 7
jmp 0x1004cd61
mov dword [ebp - 0x40], 0
jmp 0x1004cd8e
mov eax, dword [ebp - 0x40]
inc eax
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 2
jg 0x1004ce7a
mov dword [ebp - 0x10], 0x74dd032
mov dword [ebp - 0x84], 0xfffffffb
mov dword [ebp - 0x10], 0
jmp 0x1004cdb9
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
jg 0x1004cde7
mov byte [ebp - 0x1d], 0
movzx eax, byte [ebp - 0x1d]
test eax, eax
je 0x1004cdd6
push 0xf6e
call dword [sym.imp.USER32.dll_GetKeyState]
mov eax, dword [ebp - 0x10]
cmp dword [ebp + eax*4 - 0x13c], 0
je 0x1004cde5
jmp 0x1004cde7
jmp 0x1004cdb2
mov dword [ebp - 0x84], 0xf0a9
mov eax, dword [ebp - 0x84]
imul eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
neg ecx
add ecx, dword [ebp - 0x10]
cmp ecx, eax
je 0x1004ce13
mov dword [ebp - 0x8c], 1
jmp 0x1004ce1a
and dword [ebp - 0x8c], 0
mov eax, dword [ebp - 0x8c]
add eax, 0x6edacf57
imul eax, dword [ebp - 0x10]
cmp eax, 0xffffffff
jl 0x1004ce40
mov eax, 0x946b43d2
test eax, eax
jne 0x1004ce40
and dword [ebp - 0x94], 0
jmp 0x1004ce4a
mov dword [ebp - 0x94], 1
cmp dword [ebp - 0x94], 9
jne 0x1004ce5f
mov dword [ebp - 0x9c], 1
jmp 0x1004ce66
and dword [ebp - 0x9c], 0
or eax, 0xffffffff
sub eax, dword [ebp - 0x9c]
shl eax, 3
mov dword [ebp - 0x10], eax
jmp 0x1004cd87
mov byte [ebp - 0x26], 0
movzx eax, byte [ebp - 0x26]
test eax, eax
je 0x1004ce95
push 0
push 0x12fc
push 0
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetLBound]
push 0x24a3
push 0
call dword [sym.imp.KERNEL32.dll_IsValidLocale]
mov esp, ebp
pop ebp
ret