Function at 0x10013660
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0xe0
push ebx
push ebp
push esi
push edi
mov edi, dword [0x10249c14]
mov esi, edx
mov dword [esp + 0x14], esi
mov ebx, ecx
test edi, edi
je 0x10013a8c
mov ebp, edi
test ebp, ebp
je 0x10013a8c
mov eax, dword [0x10249c10]
test eax, eax
jne 0x100136cb
mov edx, 0xe80c2f78
mov ecx, 0x101e7481
call fcn.10004820
mov edx, 0xc10bf213
mov ecx, 0x101e73a9
mov esi, eax
call fcn.10004820
mov edx, esi
mov ecx, eax
call fcn.10113840
mov edi, dword [0x10249c14]
mov esi, dword [esp + 0x14]
mov dword [0x10249c10], eax
cmp dword [eax + ebp], 0
jle 0x10013a8c
cmp byte [0x1024a2cc], 0
je 0x10013a8c
mov ecx, dword [0x102102f4]
mov eax, dword [0x1024a2ac]
cmp ecx, 3
ja case.0x100136f2.0
jmp dword [ecx*4 + 0x10013a98]
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x1001372a
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
jmp 0x1001372a
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
je 0x10013a8c
mov edi, dword [0x10249c14]
mov eax, dword [0x10249c64]
and esi, 1
mov dword [esp + 0x14], esi
jne 0x1001378a
mov ebp, edi
test eax, eax
jne 0x10013780
mov edx, 0xe80c2f78
mov ecx, 0x101e75b1
call fcn.10004820
mov edx, 0xc10bf213
mov ecx, 0x101e73a9
mov esi, eax
call fcn.10004820
mov edx, esi
mov ecx, eax
call fcn.10113840
mov edi, dword [0x10249c14]
mov dword [0x10249c64], eax
test byte [eax + ebp], 1
je 0x1001378a
or dword [ebx + 0x30], 4
mov ebp, edi
test eax, eax
jne 0x100137c4
mov edx, 0xe80c2f78
mov ecx, 0x101e75b1
call fcn.10004820
mov edx, 0xc10bf213
mov ecx, 0x101e73a9
mov esi, eax
call fcn.10004820
mov edx, esi
mov ecx, eax
call fcn.10113840
mov edi, dword [0x10249c14]
mov dword [0x10249c64], eax
test byte [eax + ebp], 1
je 0x100137ce
and dword [ebx + 0x30], 0xfffffffd
cmp byte [0x1024a2cc], 0
je 0x10013a85
cmp byte [0x1024a2fc], 0
jne 0x10013a85
mov ecx, dword [0x10249c88]
mov ebx, edi
test ecx, ecx
jne 0x10013830
mov edx, 0xe80c2f78
mov ecx, 0x101e7741
call fcn.10004820
mov edx, 0xc10bf213
mov ecx, 0x101e73d1
mov esi, eax
call fcn.10004820
mov edx, esi
mov ecx, eax
call fcn.10113840
mov edi, dword [0x10249c14]
mov ecx, eax
mov eax, dword [0x10249c64]
mov dword [0x10249c88], ecx
movss xmm0, dword [ecx + ebx + 8]
comiss xmm0, dword [esp + 0xfc]
jbe 0x10013a85
cmp dword [esp + 0x14], 0
jne 0x10013a85
test eax, eax
jne 0x10013881
mov edx, 0xe80c2f78
mov ecx, 0x101e75b1
call fcn.10004820
mov edx, 0xc10bf213
mov ecx, 0x101e73a9
mov esi, eax
call fcn.10004820
mov edx, esi
mov ecx, eax
call fcn.10113840
mov dword [0x10249c64], eax
test byte [eax + edi], 1
jne 0x10013a85
call fcn.1000ae70
cmp eax, 9
je 0x10013a85
call fcn.1000ae70
cmp eax, 8
je 0x10013a85
call fcn.1000ae70
cmp eax, 0xa
je 0x10013a85
cmp byte [0x1024a296], 0
mov byte [0x1024a2ec], 1
je 0x10013a8c
lea ecx, [esp + 0xa8]
mov dword [esp + 0x40], 0x101e7d7c
mov dword [esp + 0x50], 0x101e7d2c
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::constructor_void_]
push 0
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x48]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_iostream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char____]
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x40], vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [esp + ecx + 0x3c], eax
lea ecx, [esp + 0x58]
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void_]
mov edx, 0x101e79c4
mov dword [esp + 0x58], vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
lea ecx, [esp + 0x50]
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
call fcn.10011340
mov edx, 0x101e79d8
mov ecx, eax
call fcn.10011340
mov edx, 0x101e79d4
mov ecx, eax
call fcn.10011340
mov edx, 0x101e79c8
mov ecx, eax
call fcn.10011340
mov edx, 0x101e79c4
mov ecx, eax
call fcn.10011340
mov edx, str._b__jumpbugged
mov ecx, eax
call fcn.10011340
movsx edi, byte [0x102100cd]
lea eax, [esp + 0x34]
xorps xmm0, xmm0
mov dword [esp + 0x28], 0
movups xmmword [esp + 0x18], xmm0
mov esi, 0xf
mov byte [esp + 0x18], 0
push eax
lea ecx, [esp + 0x5c]
mov dword [esp + 0x30], esi
call fcn.10011260
mov eax, dword [esp + 0x34]
test eax, eax
je 0x100139d3
push dword [esp + 0x38]
lea ecx, [esp + 0x1c]
push eax
call fcn.1000be40
mov esi, dword [esp + 0x2c]
cmp esi, 0xf
lea eax, [esp + 0x18]
push edi
cmova eax, dword [esp + 0x1c]
push eax
push 0
push 0
push dword [0x10249c8c]
call fcn.1000ae20
mov ecx, dword [esp + 0x40]
add esp, 0x14
cmp ecx, 0xf
jbe 0x10013a2b
mov edx, dword [esp + 0x18]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10013a21
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10013a21
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.10177006
add esp, 8
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x40], vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [esp + ecx + 0x3c], eax
lea ecx, [esp + 0x58]
mov dword [esp + 0x58], vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
call fcn.10011160
lea ecx, [esp + 0x58]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [esp + 0x60]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_iostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [esp + 0xa8]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret
mov byte [0x1024a2ec], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret