Function at 0x46a1e0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push ecx
push ebx
push esi
mov esi, ecx
push edi
mov eax, dword [esi]
mov eax, dword [eax + 0x11c]
cmp eax, method.UiLib::CCheckBoxUI.virtual_284
jne 0x46a590
mov al, byte [esi + 0x239]
mov ebx, dword [ebp + 8]
test al, al
jne 0x46a237
mov eax, dword [ebx]
cmp eax, 8
jle 0x46a237
cmp eax, 0x14
jge 0x46a237
mov ecx, dword [esi + 0xc94]
push ebx
test ecx, ecx
jne 0x46a376
mov ecx, esi
call fcn.0044ccd0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx]
cmp eax, 0x11
jne 0x46a276
mov eax, dword [esi]
mov eax, dword [eax + 0x10c]
cmp eax, method.UiLib::CCheckBoxUI.virtual_268
jne 0x46a597
mov al, byte [esi + 0x236]
test al, al
je 0x46a587
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov ecx, esi
call fcn.00467270
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, 3
jne 0x46a29f
mov eax, dword [esi]
mov eax, dword [eax + 0x10c]
cmp eax, method.UiLib::CCheckBoxUI.virtual_268
jne 0x46a5a0
mov al, byte [esi + 0x236]
test al, al
je 0x46a29f
cmp word [ebx + 0x18], 0xd
je 0x46a25f
mov eax, dword [ebx]
cmp eax, 0xd
je 0x46a384
cmp eax, 0xf
je 0x46a384
cmp eax, 0x13
jne 0x46a2ea
mov eax, dword [esi]
mov eax, dword [eax + 0x10c]
cmp eax, method.UiLib::CCheckBoxUI.virtual_268
jne 0x46a5a9
mov al, byte [esi + 0x236]
test al, al
je 0x46a2ea
mov ecx, dword [esi + 0xc94]
push ebx
mov eax, dword [ecx]
call dword [eax + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx]
cmp eax, 0xe
je 0x46a32a
cmp eax, 9
je 0x46a587
cmp eax, 0xb
jne 0x46a33b
mov eax, dword [esi]
mov eax, dword [eax + 0x10c]
cmp eax, method.UiLib::CCheckBoxUI.virtual_268
jne 0x46a5b2
mov al, byte [esi + 0x236]
test al, al
je 0x46a32a
or dword [esi + 0xc90], 8
mov ecx, esi
call fcn.00467270
push ebx
mov ecx, esi
call fcn.00441520
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, 0xa
jne 0x46a36b
mov eax, dword [esi + 0xc90]
test al, 8
je 0x46a35a
and eax, 0xfffffff7
mov ecx, esi
mov dword [esi + 0xc90], eax
call fcn.00467270
push ebx
mov ecx, esi
call fcn.00441520
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [esi + 0xc94]
push ebx
test ecx, ecx
je 0x46a32b
mov eax, dword [ecx]
call dword [eax + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esi]
mov eax, dword [eax + 0x10c]
cmp eax, method.UiLib::CCheckBoxUI.virtual_268
jne 0x46a5bb
mov al, byte [esi + 0x236]
test al, al
je 0x46a568
mov eax, dword [esi]
mov eax, dword [eax + 0x11c]
cmp eax, method.UiLib::CCheckBoxUI.virtual_284
jne 0x46a5c4
mov al, byte [esi + 0x239]
test al, al
je 0x46a568
mov ecx, dword [esi + 0xc94]
test ecx, ecx
je 0x46a561
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
cmp eax, method.UiLib::CTreeViewUI.1.virtual_52
jne 0x46a5cd
mov al, byte [ecx + 5]
test al, al
je 0x46a415
mov eax, dword [esi + 0xc74]
lea ecx, [esi + 0xc74]
mov eax, dword [eax + 0x10]
cmp eax, method.UiLib::CTreeNodeUI.virtual_16
jne 0x46a5d4
mov al, byte [ecx + 0x19]
test al, al
jne 0x46a561
jmp 0x46a54e
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call edi
mov ecx, 0x8000
test cx, ax
je 0x46a470
mov eax, dword [esi + 0xc74]
lea ecx, [esi + 0xc74]
mov eax, dword [eax + 0x10]
cmp eax, method.UiLib::CTreeNodeUI.virtual_16
jne 0x46a5db
mov al, byte [ecx + 0x19]
mov ecx, dword [esi + 0xc94]
test al, al
mov eax, dword [ecx]
je 0x46a460
push dword [esi + 0xc78]
call dword [eax + 0xc]
jmp 0x46a561
push 0
push dword [esi + 0xc78]
call dword [eax + 0x2c]
jmp 0x46a561
push 0x10
call edi
mov ecx, 0x8000
test cx, ax
je 0x46a4eb
mov ecx, dword [esi + 0xc94]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
cmp eax, method.UiLib::CTreeViewUI.1.virtual_56
jne 0x46a5e2
mov edi, dword [ecx + 0x18]
cmp edi, 0xffffffff
je 0x46a561
mov ecx, dword [esi + 0xc94]
mov edx, dword [ecx]
call dword [edx + 0x44]
mov eax, dword [esi + 0xc78]
cmp edi, eax
jle 0x46a4d2
mov ebx, eax
mov ecx, dword [esi + 0xc94]
push 0
push ebx
mov eax, dword [ecx]
call dword [eax + 0x2c]
inc ebx
cmp ebx, edi
jle 0x46a4b7
mov ebx, dword [ebp + 8]
jmp 0x46a561
mov ecx, dword [esi + 0xc94]
push 0
push edi
mov eax, dword [ecx]
call dword [eax + 0x2c]
inc edi
cmp edi, dword [esi + 0xc78]
jle 0x46a4d2
jmp 0x46a561
mov eax, dword [esi + 0xc74]
lea ecx, [esi + 0xc74]
mov eax, dword [eax + 0x10]
cmp eax, method.UiLib::CTreeNodeUI.virtual_16
jne 0x46a5eb
mov al, byte [ecx + 0x19]
test al, al
je 0x46a52f
cmp dword [ebx], 0xd
jne 0x46a561
mov ecx, dword [esi + 0xc94]
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
cmp eax, method.UiLib::CDelegate_class_CMainWnd__class_CMainWnd__long_int_.virtual_12
jne 0x46a5f2
mov eax, dword [ecx + 0xc]
cmp eax, 1
je 0x46a561
mov ecx, dword [esi + 0xc94]
mov edx, dword [esi + 0xc78]
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
cmp eax, method.UiLib::CTreeViewUI.1.virtual_60
jne 0x46a5f9
mov dword [ecx + 0x18], edx
mov ecx, dword [esi + 0xc94]
push 0
push dword [esi + 0xc78]
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, esi
call fcn.00467270
mov ecx, dword [esi + 0xc94]
push ebx
mov eax, dword [ecx]
call dword [eax + 0x10]
push ecx
mov ecx, dword [esi + 0x40]
push 0
push 0
push str.itemclick
push esi
call fcn.004229a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
call eax
jmp 0x46a205
mov ecx, esi
call eax
jmp 0x46a257
mov ecx, esi
call eax
jmp 0x46a294
mov ecx, esi
call eax
jmp 0x46a2d1
mov ecx, esi
call eax
jmp 0x46a318
mov ecx, esi
call eax
jmp 0x46a39d
mov ecx, esi
call eax
jmp 0x46a3be
call eax
jmp 0x46a3e7
call eax
jmp 0x46a408
call eax
jmp 0x46a446
call eax
mov edi, eax
jmp 0x46a497
call eax
jmp 0x46a508
call eax
jmp 0x46a52a
push edx
call eax
jmp 0x46a54e