Function at 0x43efa0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5091b0
mov eax, dword fs:[0]
push eax
sub esp, 0x84
mov eax, dword [0x564040]
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
mov ebx, ecx
mov dword [ebp - 0x2c], ebx
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x28], edi
cmp eax, 0xf
jne 0x43f024
push esi
mov dword [ebx + 0x10], 1
call fcn.004459e0
mov dword [edi], 0
cmp dword [ebx + 0x10], 0
jne 0x43f071
mov eax, dword [ebp - 0x28]
mov edi, dword [ebp - 0x24]
cmp dword [ebx + 0x10], 0
jne 0x43f071
push eax
push dword [ebp - 0x30]
mov ecx, ebx
push edi
push dword [ebp + 8]
call dword [sym.imp.soui.dll_protected_virtual:_int___thiscall_SOUI::SEdit::ProcessSwndMessage_unsigned_int__unsigned_int__long_int__long_int__]
jmp 0x43f076
cmp eax, 0x14
jne 0x43f10e
mov eax, dword [ebx]
lea ecx, [ebp - 0x20]
push ecx
mov ecx, ebx
mov dword [ebx + 0x10], 1
call dword [eax + 0x4c]
cmp dword [ebx + 0x14c], 0
jne 0x43f094
mov ecx, dword [ebx + 0x74]
cmp ecx, 0xffffff
je 0x43f05f
mov eax, dword [esi]
push ecx
lea ecx, [ebp - 0x20]
push ecx
mov ecx, esi
call dword [eax + 0x68]
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov dword [eax], 1
cmp dword [ebx + 0x10], 0
je 0x43f00c
mov eax, 1
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.004d1b1e
mov esp, ebp
pop ebp
ret 0x10
mov esi, dword [sym.imp.soui.dll_public:_unsigned_long_int___thiscall_SOUI::SWindow::GetState_void_]
mov ecx, ebx
xor edi, edi
call esi
test al, 0x10
je 0x43f0ab
mov edi, 3
jmp 0x43f0cf
mov ecx, ebx
call esi
test al, 4
jne 0x43f0ca
mov ecx, ebx
call esi
test al, 2
jne 0x43f0ca
mov ecx, ebx
call esi
test al, 1
je 0x43f0cf
mov edi, 1
jmp 0x43f0cf
mov edi, 2
mov ecx, ebx
call dword [sym.imp.soui.dll_public:_int___thiscall_SOUI::SWindow::IsFocused_void_]
mov ecx, dword [ebx + 0x14c]
test eax, eax
mov eax, 1
cmovne edi, eax
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, dword [ebx + 0x14c]
mov edx, eax
xor eax, eax
cmp edi, edx
cmovl eax, edi
mov edi, dword [ebp - 0x24]
mov esi, dword [ecx]
push eax
lea eax, [ebp - 0x20]
push eax
push edi
call dword [esi + 0xc]
jmp 0x43f062
cmp eax, 0x100
jne 0x43f1ca
push ebx
lea ecx, [ebp - 0x60]
mov dword [ebx + 0x10], 1
movzx esi, si
call dword [sym.imp.soui.dll_public:_void___thiscall_SOUI::EventArgs::constructor_class_SOUI::SObjectImpl_struct_SOUI::IObject___]
mov dword [ebp - 0x60], 0x525a08
mov dword [ebp - 0x58], 0x52592c
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 4], 0
mov eax, dword [ebx]
shr ecx, 0x10
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp - 0x60]
push ecx
mov ecx, ebx
mov byte [ebp - 0x38], 0
mov dword [ebp - 0x40], esi
call dword [eax + 0x94]
cmp byte [ebp - 0x38], 0
je 0x43f171
mov eax, dword [ebx + 0x3a4]
mov dword [ebx + 0x10], eax
jmp 0x43f1b5
cmp esi, 0xd
jne 0x43f19a
test dword [ebx + 0x370], 0x1000
jne 0x43f19a
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x43f19a
mov eax, dword [ebx + 0x3a4]
mov dword [ebx + 0x10], eax
jmp 0x43f1b5
mov eax, dword [ebx + 0x380]
push 0
mov ecx, dword [eax + 0xc]
mov eax, dword [ebx + 0x6c]
mov edx, dword [ecx]
push dword [eax + 8]
push dword [eax + 4]
push dword [eax]
call dword [edx + 0xc]
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.soui.dll_public_virtual:_void___thiscall_SOUI::EventArgs::destructor_void_]
jmp 0x43effa
cmp eax, 0x201
jne 0x43f24e
movsx eax, dx
mov dword [ebp - 0x34], eax
mov eax, edx
shr eax, 0x10
cwde
mov dword [ebx + 0x10], 1
mov dword [ebp - 0x2c], eax
call dword [sym.imp.soui.dll_public:_int___thiscall_SOUI::SWindow::IsFocused_void_]
test eax, eax
jne 0x43f23a
push ebx
lea ecx, [ebp - 0x5c]
call dword [sym.imp.soui.dll_public:_void___thiscall_SOUI::EventArgs::constructor_class_SOUI::SObjectImpl_struct_SOUI::IObject___]
mov dword [ebp - 0x5c], 0x5259a4
mov dword [ebp - 0x54], 0x5259cc
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x5c]
mov dword [ebp - 4], 1
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x38], eax
mov eax, dword [ebx]
push ecx
mov ecx, ebx
call dword [eax + 0x94]
lea ecx, [ebp - 0x5c]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.soui.dll_public_virtual:_void___thiscall_SOUI::EventArgs::destructor_void_]
push dword [ebp - 0x2c]
mov ecx, ebx
push dword [ebp - 0x34]
push esi
call dword [sym.imp.soui.dll_protected:_void___thiscall_SOUI::SRichEdit::OnLButtonDown_unsigned_int__class_SOUI::CPoint_]
jmp 0x43effa
cmp eax, 0x20a
jne 0x43f006
mov eax, edx
mov dword [ebx + 0x10], 1
shr eax, 0x10
mov edi, esi
movsx ebx, ax
push ebx
movsx ecx, dx
push ecx
mov ecx, dword [ebp - 0x2c]
shr edi, 0x10
push edi
movzx esi, si
push esi
call dword [sym.imp.soui.dll_protected:_int___thiscall_SOUI::SRichEdit::OnMouseWheel_unsigned_int__short_int__class_SOUI::CPoint_]
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x90]
call dword [sym.imp.soui.dll_public:_void___thiscall_SOUI::EventArgs::constructor_class_SOUI::SObjectImpl_struct_SOUI::IObject___]
mov dword [ebp - 0x90], 0x5259b8
mov dword [ebp - 0x88], 0x525968
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 4], 2
movsx eax, cx
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x64], ebx
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x68], eax
push ecx
mov ecx, ebx
mov dword [ebp - 0x70], esi
mov eax, dword [ebx]
mov word [ebp - 0x6c], di
call dword [eax + 0x94]
lea ecx, [ebp - 0x90]
mov dword [ebp - 4], 0xffffffff
mov esi, eax
call dword [sym.imp.soui.dll_public_virtual:_void___thiscall_SOUI::EventArgs::destructor_void_]
mov eax, dword [ebp - 0x28]
mov dword [eax], esi
cmp dword [ebx + 0x10], 0
jne 0x43f071
mov edi, dword [ebp - 0x24]
jmp 0x43f012