Function at 0x40e350
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4471e8
mov eax, dword fs:[0]
push eax
sub esp, 0x34
mov eax, dword [0x45a5d0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call edi
mov ebx, dword [esi + 0xc0]
shr eax, 0xf
test al, 1
je 0x40e548
cmp ebx, 0xff
jge 0x40e407
push ebx
call edi
shr eax, 0xf
and al, 1
je 0x40e401
cmp byte [ebx + 0x45fc28], 0
jne 0x40e401
mov ecx, esi
mov byte [ebx + 0x45fc28], 1
call fcn.0040dea0
test al, al
je 0x40e407
push 0x452d44
lea ecx, [ebp - 0x28]
call fcn.00403790
mov dword [ebp - 4], 0
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call fcn.0040e9b0
cmp dword [ebp - 0x14], 0x10
jb 0x40e988
push dword [ebp - 0x28]
call fcn.0042cfae
add esp, 4
jmp 0x40e988
mov byte [ebx + 0x45fc28], al
mov ebx, dword [esi + 0xc4]
cmp ebx, 0xff
jge 0x40e456
push ebx
call edi
shr eax, 0xf
and al, 1
je 0x40e450
cmp byte [ebx + 0x45fc28], 0
jne 0x40e450
mov ecx, esi
mov byte [ebx + 0x45fc28], 1
call fcn.0040dea0
test al, al
je 0x40e456
push 0x452d48
lea ecx, [ebp - 0x28]
call fcn.00403790
mov dword [ebp - 4], 1
jmp 0x40e3d9
mov byte [ebx + 0x45fc28], al
mov ebx, dword [esi + 0xc8]
cmp ebx, 0xff
jge 0x40e4a8
push ebx
call edi
shr eax, 0xf
and al, 1
je 0x40e4a2
cmp byte [ebx + 0x45fc28], 0
jne 0x40e4a2
mov ecx, esi
mov byte [ebx + 0x45fc28], 1
call fcn.0040dea0
test al, al
je 0x40e4a8
push 0x452d4c
lea ecx, [ebp - 0x28]
call fcn.00403790
mov dword [ebp - 4], 2
jmp 0x40e3d9
mov byte [ebx + 0x45fc28], al
mov ebx, dword [esi + 0xcc]
cmp ebx, 0xff
jge 0x40e510
push ebx
call edi
shr eax, 0xf
and al, 1
je 0x40e50a
cmp byte [ebx + 0x45fc28], 0
jne 0x40e50a
mov ecx, esi
mov byte [ebx + 0x45fc28], 1
call fcn.0040dea0
test al, al
je 0x40e510
push 0x452d50
lea ecx, [ebp - 0x28]
call fcn.00403790
mov dword [ebp - 4], 3
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call fcn.0040e9b0
lea ecx, [ebp - 0x28]
call fcn.004031c0
jmp 0x40e988
mov byte [ebx + 0x45fc28], al
push dword [esi + 0xd0]
call fcn.0040f270
test al, al
je 0x40e988
mov ecx, esi
call fcn.0040dea0
test al, al
je 0x40e988
push 0x452d54
lea ecx, [ebp - 0x28]
call fcn.00403790
mov dword [ebp - 4], 4
jmp 0x40e4ef
cmp ebx, 0xff
jge 0x40e594
push ebx
call edi
shr eax, 0xf
and al, 1
je 0x40e58e
cmp byte [ebx + 0x45fc28], 0
jne 0x40e58e
mov ecx, esi
mov byte [ebx + 0x45fc28], 1
call fcn.0040d610
test al, al
je 0x40e594
push 0x452af8
lea ecx, [ebp - 0x28]
call fcn.00403790
mov dword [ebp - 4], 5
jmp 0x40e3d9
mov byte [ebx + 0x45fc28], al
mov ebx, dword [esi + 0xc4]
cmp ebx, 0xff
jge 0x40e5e6
push ebx
call edi
shr eax, 0xf
and al, 1
je 0x40e5e0
cmp byte [ebx + 0x45fc28], 0
jne 0x40e5e0
mov ecx, esi
mov byte [ebx + 0x45fc28], 1
call fcn.0040d610
test al, al
je 0x40e5e6
push 0x452afc
lea ecx, [ebp - 0x28]
call fcn.00403790
mov dword [ebp - 4], 6
jmp 0x40e3d9
mov byte [ebx + 0x45fc28], al
mov ebx, dword [esi + 0xc8]
cmp ebx, 0xff
jge 0x40e62d
push ebx
call edi
shr eax, 0xf
and al, 1
je 0x40e627
cmp byte [ebx + 0x45fc28], 0
jne 0x40e627
push str.36780.
lea ecx, [ebp - 0x28]
mov byte [ebx + 0x45fc28], 1
call fcn.00403790
mov dword [ebp - 4], 7
jmp 0x40e3d9
mov byte [ebx + 0x45fc28], al
push dword [esi + 0xcc]
call fcn.0040f270
test al, al
je 0x40e660
mov ecx, esi
call fcn.0040da20
test al, al
je 0x40e660
push 0x452b48
lea ecx, [ebp - 0x28]
call fcn.00403790
mov dword [ebp - 4], 8
jmp 0x40e4ef
push dword [esi + 0xd0]
call fcn.0040f270
test al, al
je 0x40e693
mov ecx, esi
call fcn.0040dba0
test al, al
je 0x40e693
push 0x452c24
lea ecx, [ebp - 0x28]
call fcn.00403790
mov dword [ebp - 4], 9
jmp 0x40e4ef
push dword [esi + 0xd4]
call fcn.0040f270
test al, al
je 0x40e6bb
push 0x452dac
lea ecx, [ebp - 0x28]
call fcn.00403790
mov dword [ebp - 4], 0xa
jmp 0x40e4ef
push dword [esi + 0xd8]
call fcn.0040f270
test al, al
je 0x40e6e3
push 0x452db0
lea ecx, [ebp - 0x28]
call fcn.00403790
mov dword [ebp - 4], 0xb
jmp 0x40e4ef
push dword [esi + 0xdc]
call fcn.0040f270
test al, al
je 0x40e70b
push 0x452db4
lea ecx, [ebp - 0x28]
call fcn.00403790
mov dword [ebp - 4], 0xc
jmp 0x40e4ef
push dword [esi + 0xe0]
call fcn.0040f270
test al, al
je 0x40e73e
mov ecx, esi
call fcn.0040dea0
test al, al
je 0x40e73e
push 0x452d58
lea ecx, [ebp - 0x28]
call fcn.00403790
mov dword [ebp - 4], 0xd
jmp 0x40e4ef
push dword [esi + 0xbc]
call fcn.0040f270
test al, al
je 0x40e766
push 0x452db8
lea ecx, [ebp - 0x28]
call fcn.00403790
mov dword [ebp - 4], 0xe
jmp 0x40e4ef
push 0x70
call edi
shr eax, 0xf
and al, 1
je 0x40e7da
cmp byte [0x45fc98], 0
jne 0x40e7da
mov ecx, esi
mov byte [0x45fc98], 1
call fcn.0040dba0
test al, al
je 0x40e7df
push str.MTP1
lea ecx, [ebp - 0x28]
call fcn.00403790
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0xf
push eax
mov ecx, esi
call fcn.00410340
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
mov dword [eax + 0x1c], 2
call fcn.004031c0
push str.MTP1
lea ecx, [ebp - 0x28]
call fcn.00403790
mov dword [ebp - 4], 0x10
jmp 0x40e4ef
mov byte [0x45fc98], al
push 0x71
call edi
shr eax, 0xf
and al, 1
je 0x40e853
cmp byte [0x45fc99], 0
jne 0x40e853
mov ecx, esi
mov byte [0x45fc99], 1
call fcn.0040dba0
test al, al
je 0x40e858
push str.MTP1
lea ecx, [ebp - 0x28]
call fcn.00403790
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0x11
push eax
mov ecx, esi
call fcn.00410340
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
mov dword [eax + 0x1c], 4
call fcn.004031c0
push str.MTP1
lea ecx, [ebp - 0x28]
call fcn.00403790
mov dword [ebp - 4], 0x12
jmp 0x40e4ef
mov byte [0x45fc99], al
push 0x72
call edi
shr eax, 0xf
and al, 1
je 0x40e8cc
cmp byte [0x45fc9a], 0
jne 0x40e8cc
mov ecx, esi
mov byte [0x45fc9a], 1
call fcn.0040dba0
test al, al
je 0x40e8d1
push str.MTP1
lea ecx, [ebp - 0x28]
call fcn.00403790
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0x13
push eax
mov ecx, esi
call fcn.00410340
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
mov dword [eax + 0x1c], 8
call fcn.004031c0
push str.MTP1
lea ecx, [ebp - 0x28]
call fcn.00403790
mov dword [ebp - 4], 0x14
jmp 0x40e4ef
mov byte [0x45fc9a], al
push 0x73
call edi
shr eax, 0xf
and al, 1
je 0x40e958
cmp byte [0x45fc9b], 0
jne 0x40e958
mov ecx, esi
mov byte [0x45fc9b], 1
call fcn.0040dba0
test al, al
je 0x40e95d
push str.MTP1
lea ecx, [ebp - 0x28]
call fcn.00403790
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0x15
push eax
mov ecx, esi
call fcn.00410340
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
mov dword [eax + 0x1c], 0x10
call fcn.004031c0
push str.MTP1
lea ecx, [ebp - 0x40]
call fcn.00403790
sub esp, 0x18
mov dword [ebp - 4], 0x16
lea eax, [ebp - 0x40]
mov ecx, esi
push eax
call fcn.0040e9b0
lea ecx, [ebp - 0x40]
call fcn.004031c0
jmp 0x40e988
mov byte [0x45fc9b], al
push 0x24
call edi
shr eax, 0xf
and al, 1
je 0x40e983
cmp byte [0x45fc4c], 0
jne 0x40e983
push 0
mov ecx, esi
mov byte [0x45fc4c], 1
call fcn.0040f500
jmp 0x40e988
mov byte [0x45fc4c], al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042cfb3
mov esp, ebp
pop ebp
ret