Function at 0x411330
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ec6c6
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push esi
push edi
mov eax, dword [0x533014]
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 0x509758
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.00417e90
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 0x411429
push 0x509764
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.00418390
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.0x4114ca.14
push 0x5094ac
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.00417fd0
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.0x4114ca.14
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff3
cmp ecx, 0x46
ja case.0x4114ca.14
movzx eax, byte [ecx + 0x411680]
jmp dword [eax*4 + 0x411644]
cmp byte [ebp - 0xd], 0
jne case.0x4114ca.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.0x4114ca.14
cmp byte [ebp - 0xd], 0
jne case.0x4114ca.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.0x4114ca.14
cmp byte [ebp - 0xd], 0
jne case.0x4114ca.14
push 2
mov ecx, esi
call fcn.0043bda0
jmp case.0x4114ca.14
cmp byte [ebp - 0xd], 0
jne case.0x4114ca.14
push 1
mov ecx, esi
call fcn.0043bda0
jmp case.0x4114ca.14
push 0
mov ecx, esi
call fcn.0043bda0
jmp case.0x4114ca.14
mov ecx, esi
call fcn.0043bd00
push 3
mov ecx, esi
call fcn.0043bda0
jmp case.0x4114ca.14
mov ebx, dword [ebp - 0x20]
push ecx
push 0x509780
mov ecx, ebx
call fcn.004171c0
mov ecx, eax
call dword [sym.imp.soui.dll_public:_int___thiscall_SOUI::SWindow::IsFocused_void_]
test eax, eax
je 0x411598
push 0
mov ecx, esi
call fcn.0043cca0
jmp case.0x4114ca.14
sub esp, 8
mov ecx, ebx
call fcn.00417250
mov ecx, eax
call fcn.00437710
test al, al
je case.0x4114ca.14
push 1
mov ecx, esi
call fcn.0043cca0
jmp case.0x4114ca.14
test bl, bl
je case.0x4114ca.14
mov ecx, edi
call fcn.0040e470
jmp case.0x4114ca.14
test bl, bl
je case.0x4114ca.14
mov ecx, edi
call fcn.0040e2e0
jmp case.0x4114ca.14
test bl, bl
je case.0x4114ca.14
mov ecx, edi
call fcn.0040f860
jmp case.0x4114ca.14
test bl, bl
je case.0x4114ca.14
cmp byte [ebp - 0x28], 0
je case.0x4114ca.14
mov ecx, edi
call fcn.00411c40
jmp case.0x4114ca.14
test bl, bl
je case.0x4114ca.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 0x41162b
sub esp, 8
mov ecx, eax
call fcn.00416ba0
test eax, eax
je case.0x4114ca.14
mov ecx, eax
call fcn.0043c700
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