Function at 0x10012de0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push ecx
push ebx
push esi
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push edi
push 0x11
mov edi, ecx
call esi
xor ebx, ebx
test ax, ax
push 0x10
sets bl
call esi
mov edx, dword [ebp + 8]
xor ecx, ecx
mov esi, dword [ebp + 0xc]
test ax, ax
sets cl
mov dword [esp + 0xc], ecx
cmp edx, 0x100
jne 0x10013011
cmp esi, 9
jne 0x10012fc6
test ebx, ebx
jne 0x10012f17
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x24]
mov eax, dword [eax + 0x4c]
mov eax, dword [eax + 4]
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x10012e6e
push ecx
push ebx
mov ecx, edi
call sym.HncOfficeFramework.dll_public:_void____thiscall_CHDDialog::GetNextDlgTabItem_void___int_
push dword [esp + 0xc]
mov ecx, edi
mov esi, eax
push 0
call sym.HncOfficeFramework.dll_public:_void____thiscall_CHDDialog::GetNextDlgTabItem_void___int_
cmp eax, esi
je 0x10012e6e
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov esi, dword [edi + 0x58]
mov ecx, esi
call sym.HncOfficeFramework.dll_public:_class_CHDCTabCtrl____thiscall_THDPropertySheet_class_CHncDialogEx__class_CHncDialogEx_::GetTabControl_void_const
mov edi, eax
test ebx, ebx
je 0x10012eca
mov ecx, dword [ebx + 0x5c]
test ecx, ecx
je 0x10012e9b
mov ecx, dword [ecx + 0x1c]
test ecx, ecx
je 0x10012e9b
mov eax, dword [ecx + 4]
cmp dword [eax + 0x10], ebx
jne 0x10012e9b
mov dword [eax + 0x10], 0
mov ecx, dword [ebx + 0x58]
mov eax, dword [ecx + 4]
mov eax, dword [eax + 4]
test eax, eax
je 0x10012eb5
mov eax, dword [eax + 0x5c]
and dword [eax + 4], 0xfffeffff
mov ecx, dword [ebx + 0x58]
mov eax, dword [ecx]
push 0
call dword [eax + 0x30]
mov eax, dword [ebx + 0x58]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + 4]
call fcn.1001bbc0
cmp dword [esp + 0xc], 0
mov eax, dword [edi + 4]
mov edx, dword [eax + 4]
je 0x10012ef1
mov eax, dword [esi + 4]
push edx
mov ecx, dword [eax + 0x2c]
call fcn.1013be10
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0
push edx
mov ecx, esi
call sym.HncOfficeFramework.dll_public:_void____thiscall_CHDDialog::GetNextDlgTabItem_void___int_
mov ecx, dword [esi + 4]
mov edx, eax
push edx
mov ecx, dword [ecx + 0x2c]
call fcn.1013be10
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edi, dword [edi + 0x58]
mov eax, dword [edi + 0x58]
mov esi, dword [eax + 4]
sub esi, dword [eax]
sar esi, 2
test esi, esi
jle 0x10012fb8
mov eax, dword [edi + 0x40]
xor ecx, 1
mov edx, esi
lea ecx, [eax + ecx*2]
lea eax, [ecx - 1]
test eax, eax
cmovns edx, ecx
xor ebx, ebx
dec edx
mov ecx, edi
cmp edx, esi
cmovl ebx, edx
call sym.HncOfficeFramework.dll_public:_class_CHDCTabCtrl____thiscall_THDPropertySheet_class_CHncDialogEx__class_CHncDialogEx_::GetTabControl_void_const
test eax, eax
je 0x10012fb0
mov ecx, edi
call sym.HncOfficeFramework.dll_public:_class_CHDCTabCtrl____thiscall_THDPropertySheet_class_CHncDialogEx__class_CHncDialogEx_::GetTabControl_void_const
mov eax, dword [eax + 4]
mov esi, dword [eax + 4]
test esi, esi
je 0x10012fb0
mov eax, dword [esi + 0x5c]
test eax, eax
je 0x10012f81
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x10012f81
mov eax, dword [eax + 4]
cmp dword [eax + 0x10], esi
jne 0x10012f81
mov dword [eax + 0x10], 0
mov ecx, dword [esi + 0x58]
mov eax, dword [ecx + 4]
mov eax, dword [eax + 4]
test eax, eax
je 0x10012f9b
mov eax, dword [eax + 0x5c]
and dword [eax + 4], 0xfffeffff
mov ecx, dword [esi + 0x58]
mov eax, dword [ecx]
push 0
call dword [eax + 0x30]
mov eax, dword [esi + 0x58]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + 4]
call fcn.1001bbc0
push ebx
mov ecx, edi
call sym.HncOfficeFramework.dll_public:_int___thiscall_THDPropertySheet_class_CHncDialogEx__class_CHncDialogEx_::SetActivePage_int_
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
test ebx, ebx
je 0x10012ffc
lea eax, [esi - 0x30]
cmp eax, 9
ja 0x10012ffc
mov ebx, dword [edi + 0x58]
mov ecx, 9
cmp esi, 0x30
je 0x10012fe2
lea ecx, [esi - 0x31]
mov eax, dword [ebx + 0x58]
mov edx, dword [eax + 4]
sub edx, dword [eax]
sar edx, 2
cmp ecx, edx
jge 0x10012ff9
push ecx
mov ecx, ebx
call sym.HncOfficeFramework.dll_public:_int___thiscall_THDPropertySheet_class_CHncDialogEx__class_CHncDialogEx_::SetActivePage_int_
mov edx, dword [ebp + 8]
push dword [ebp + 0x10]
mov ecx, edi
push esi
push edx
call sym.HncOfficeFramework.dll_public_virtual:_int___thiscall_CHncDialogEx::PreTranslateMessage_unsigned_int__unsigned_int__long_int_
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp edx, 0x104
jne 0x10012ffc
test ebx, ebx
jne 0x10012ffc
cmp esi, 0x73
jne 0x10012ffc
mov ecx, dword [edi + 0x58]
mov eax, dword [ecx]
call dword [eax + 0x34]
pop edi
pop esi
lea eax, [ebx + 1]
pop ebx
mov esp, ebp
pop ebp
ret 0xc