Function at 0x4114b0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ef916
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push esi
push edi
mov eax, dword [0x536014]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov ecx, dword [edi + 0x3ec]
push dword [ecx + 0x188]
call dword [sym.imp.soui.dll_public:_class_SOUI::STabPage____thiscall_SOUI::STabCtrl::GetItem_int_]
mov ebx, eax
lea ecx, [ebp - 0x14]
push 0x50c738
mov dword [ebp - 0x20], ebx
call dword [sym.imp.utilities.dll_public:_void___thiscall_SOUI::TStringT_char__struct_SOUI::char_traits_::constructor_char_const__]
push 0
push 0
lea eax, [ebp - 0x14]
mov dword [ebp - 4], 0
mov esi, dword [sym.imp.utilities.dll_public:_static_class_SOUI::TStringT_wchar_t__struct_SOUI::wchar_traits____cdecl_SOUI::SStrCpCvt::CvtA2W_class_SOUI::TStringT_char__struct_SOUI::char_traits__const___unsigned_int__unsigned_int_]
push eax
lea eax, [ebp - 0x24]
push eax
call esi
add esp, 0xc
mov byte [ebp - 4], 1
mov ecx, ebx
push dword [eax]
call fcn.00418310
lea ecx, [ebp - 0x24]
mov ebx, eax
call dword [sym.imp.utilities.dll_public:_void___thiscall_SOUI::TStringT_wchar_t__struct_SOUI::wchar_traits_::destructor_void_]
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.utilities.dll_public:_void___thiscall_SOUI::TStringT_char__struct_SOUI::char_traits_::destructor_void_]
mov byte [ebp - 0xd], 0
test ebx, ebx
je 0x4115a9
push 0x50c744
lea ecx, [ebp - 0x18]
call dword [sym.imp.utilities.dll_public:_void___thiscall_SOUI::TStringT_char__struct_SOUI::char_traits_::constructor_char_const__]
push 0
push 0
lea eax, [ebp - 0x18]
mov dword [ebp - 4], 2
push eax
lea eax, [ebp - 0x28]
push eax
call esi
add esp, 0xc
mov byte [ebp - 4], 3
mov ecx, ebx
push dword [eax]
call fcn.00418810
lea ecx, [ebp - 0x28]
mov esi, eax
call dword [sym.imp.utilities.dll_public:_void___thiscall_SOUI::TStringT_wchar_t__struct_SOUI::wchar_traits_::destructor_void_]
lea ecx, [ebp - 0x18]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.utilities.dll_public:_void___thiscall_SOUI::TStringT_char__struct_SOUI::char_traits_::destructor_void_]
mov ecx, esi
call dword [sym.imp.soui.dll_public:_int___thiscall_SOUI::SWindow::IsFocused_void_]
test eax, eax
setne byte [ebp - 0xd]
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call esi
mov bx, ax
shr ebx, 0xf
push 0x12
and bl, 1
call esi
push 0x10
call esi
mov esi, dword [ebp - 0x20]
shr eax, 0xf
and eax, 0xffffff01
mov dword [ebp - 0x28], eax
test esi, esi
je case.0x41164a.14
push 0x50c4ac
lea ecx, [ebp - 0x1c]
call dword [sym.imp.utilities.dll_public:_void___thiscall_SOUI::TStringT_char__struct_SOUI::char_traits_::constructor_char_const__]
push 0
push 0
lea eax, [ebp - 0x1c]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.utilities.dll_public:_static_class_SOUI::TStringT_wchar_t__struct_SOUI::wchar_traits____cdecl_SOUI::SStrCpCvt::CvtA2W_class_SOUI::TStringT_char__struct_SOUI::char_traits__const___unsigned_int__unsigned_int_]
add esp, 0xc
mov byte [ebp - 4], 5
mov ecx, esi
push dword [eax]
call fcn.00418450
lea ecx, [ebp - 0x2c]
mov esi, eax
call dword [sym.imp.utilities.dll_public:_void___thiscall_SOUI::TStringT_wchar_t__struct_SOUI::wchar_traits_::destructor_void_]
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.utilities.dll_public:_void___thiscall_SOUI::TStringT_char__struct_SOUI::char_traits_::destructor_void_]
test esi, esi
je case.0x41164a.14
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff3
cmp ecx, 0x46
ja case.0x41164a.14
movzx eax, byte [ecx + 0x411800]
jmp dword [eax*4 + 0x4117c4]
cmp byte [ebp - 0xd], 0
jne case.0x41164a.14
push 0
push 0
push 0x780000
push 0x20a
mov ecx, esi
call dword [sym.imp.soui.dll_public:_long_int___thiscall_SOUI::SWindow::SSendMessage_unsigned_int__unsigned_int__long_int__int__]
jmp case.0x41164a.14
cmp byte [ebp - 0xd], 0
jne case.0x41164a.14
push 0
push 0
push 0xff880000
push 0x20a
mov ecx, esi
call dword [sym.imp.soui.dll_public:_long_int___thiscall_SOUI::SWindow::SSendMessage_unsigned_int__unsigned_int__long_int__int__]
jmp case.0x41164a.14
cmp byte [ebp - 0xd], 0
jne case.0x41164a.14
push 2
mov ecx, esi
call fcn.0043e7d0
jmp case.0x41164a.14
cmp byte [ebp - 0xd], 0
jne case.0x41164a.14
push 1
mov ecx, esi
call fcn.0043e7d0
jmp case.0x41164a.14
push 0
mov ecx, esi
call fcn.0043e7d0
jmp case.0x41164a.14
mov ecx, esi
call fcn.0043e6f0
push 3
mov ecx, esi
call fcn.0043e7d0
jmp case.0x41164a.14
mov ebx, dword [ebp - 0x20]
push ecx
push 0x50c760
mov ecx, ebx
call fcn.00417530
mov ecx, eax
call dword [sym.imp.soui.dll_public:_int___thiscall_SOUI::SWindow::IsFocused_void_]
test eax, eax
je 0x411718
push 0
mov ecx, esi
call fcn.0043f940
jmp case.0x41164a.14
sub esp, 8
mov ecx, ebx
call fcn.004175c0
mov ecx, eax
call fcn.0043a100
test al, al
je case.0x41164a.14
push 1
mov ecx, esi
call fcn.0043f940
jmp case.0x41164a.14
test bl, bl
je case.0x41164a.14
mov ecx, edi
call fcn.0040e370
jmp case.0x41164a.14
test bl, bl
je case.0x41164a.14
mov ecx, edi
call fcn.0040e1e0
jmp case.0x41164a.14
test bl, bl
je case.0x41164a.14
mov ecx, edi
call fcn.0040f770
jmp case.0x41164a.14
test bl, bl
je case.0x41164a.14
cmp byte [ebp - 0x28], 0
je case.0x41164a.14
mov ecx, edi
call fcn.00411dc0
jmp case.0x41164a.14
test bl, bl
je case.0x41164a.14
mov ecx, dword [edi + 0x3ec]
push dword [ecx + 0x188]
call dword [sym.imp.soui.dll_public:_class_SOUI::STabPage____thiscall_SOUI::STabCtrl::GetItem_int_]
test eax, eax
je 0x4117ab
sub esp, 8
mov ecx, eax
call fcn.00416ed0
test eax, eax
je case.0x41164a.14
mov ecx, eax
call fcn.0043f120
mov dword [edi + 0x3e0], 0
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc