Function at 0x489f70
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 + 0x110]
cmp eax, method.ui::ProgressBar.virtual_272
jne 0x48a32d
mov al, byte [esi + 0x328]
mov ebx, dword [ebp + 8]
test al, al
jne 0x489fc7
mov eax, dword [ebx]
cmp eax, 8
jle 0x489fc7
cmp eax, 0x14
jge 0x489fc7
mov ecx, dword [esi + 0xeb8]
push ebx
test ecx, ecx
jne 0x48a116
mov ecx, esi
call fcn.00468970
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx]
cmp eax, 0x11
jne 0x48a00a
mov eax, dword [esi]
mov eax, dword [eax + 0x128]
cmp eax, method.ui::ProgressBar.virtual_296
jne 0x48a334
mov al, byte [esi + 0x320]
not al
and al, 1
test al, al
je 0x48a324
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov ecx, esi
call fcn.00489b90
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, 3
jne 0x48a037
mov eax, dword [esi]
mov eax, dword [eax + 0x128]
cmp eax, method.ui::ProgressBar.virtual_296
jne 0x48a33d
mov al, byte [esi + 0x320]
not al
and al, 1
test al, al
je 0x48a037
cmp word [ebx + 0x18], 0xd
je 0x489ff3
mov eax, dword [ebx]
cmp eax, 0xd
je 0x48a124
cmp eax, 0xf
je 0x48a124
cmp eax, 0x13
jne 0x48a086
mov eax, dword [esi]
mov eax, dword [eax + 0x128]
cmp eax, method.ui::ProgressBar.virtual_296
jne 0x48a346
mov al, byte [esi + 0x320]
not al
and al, 1
test al, al
je 0x48a086
mov ecx, dword [esi + 0xeb8]
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 0x48a0ca
cmp eax, 9
je 0x48a324
cmp eax, 0xb
jne 0x48a0db
mov eax, dword [esi]
mov eax, dword [eax + 0x128]
cmp eax, method.ui::ProgressBar.virtual_296
jne 0x48a34f
mov al, byte [esi + 0x320]
not al
and al, 1
test al, al
je 0x48a0ca
or dword [esi + 0xeb4], 8
mov ecx, esi
call fcn.00489b90
push ebx
mov ecx, esi
call fcn.00457810
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, 0xa
jne 0x48a10b
mov eax, dword [esi + 0xeb4]
test al, 8
je 0x48a0fa
and eax, 0xfffffff7
mov ecx, esi
mov dword [esi + 0xeb4], eax
call fcn.00489b90
push ebx
mov ecx, esi
call fcn.00457810
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [esi + 0xeb8]
push ebx
test ecx, ecx
je 0x48a0cb
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 + 0x128]
cmp eax, method.ui::ProgressBar.virtual_296
jne 0x48a358
mov al, byte [esi + 0x320]
not al
and al, 1
test al, al
je 0x48a302
mov eax, dword [esi]
mov eax, dword [eax + 0x110]
cmp eax, method.ui::ProgressBar.virtual_272
jne 0x48a361
mov al, byte [esi + 0x328]
test al, al
je 0x48a302
mov ecx, dword [esi + 0xeb8]
test ecx, ecx
je 0x48a2fb
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
cmp eax, method.ui::TreeView.2.virtual_52
jne 0x48a36a
mov al, byte [ecx + 5]
test al, al
je 0x48a1b5
mov eax, dword [esi]
mov eax, dword [eax + 0x130]
cmp eax, method.ui::TreeNode.2.virtual_304
jne 0x48a371
mov al, byte [esi + 0xeb1]
test al, al
jne 0x48a2fb
jmp 0x48a2e8
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call edi
mov ecx, 0x8000
test cx, ax
je 0x48a20c
mov eax, dword [esi]
mov eax, dword [eax + 0x130]
cmp eax, method.ui::TreeNode.2.virtual_304
jne 0x48a37a
mov al, byte [esi + 0xeb1]
mov ecx, dword [esi + 0xeb8]
test al, al
mov eax, dword [ecx]
je 0x48a1fc
push dword [esi + 0xe9c]
call dword [eax + 0xc]
jmp 0x48a2fb
push 0
push dword [esi + 0xe9c]
call dword [eax + 0x2c]
jmp 0x48a2fb
push 0x10
call edi
mov ecx, 0x8000
test cx, ax
je 0x48a289
mov ecx, dword [esi + 0xeb8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
cmp eax, fcn.00483330
jne 0x48a383
mov edi, dword [ecx + 0x18]
cmp edi, 0xffffffff
je 0x48a2fb
mov ecx, dword [esi + 0xeb8]
mov edx, dword [ecx]
call dword [edx + 0x44]
mov eax, dword [esi + 0xe9c]
cmp edi, eax
jle 0x48a270
mov ebx, eax
mov ecx, dword [esi + 0xeb8]
push 0
push ebx
mov eax, dword [ecx]
call dword [eax + 0x2c]
inc ebx
cmp ebx, edi
jle 0x48a253
mov ebx, dword [ebp + 8]
jmp 0x48a2fb
mov ecx, dword [esi + 0xeb8]
push 0
push edi
mov eax, dword [ecx]
call dword [eax + 0x2c]
inc edi
cmp edi, dword [esi + 0xe9c]
jle 0x48a270
jmp 0x48a2fb
mov eax, dword [esi]
mov eax, dword [eax + 0x130]
cmp eax, method.ui::TreeNode.2.virtual_304
jne 0x48a38c
mov al, byte [esi + 0xeb1]
test al, al
je 0x48a2c9
cmp dword [ebx], 0xd
jne 0x48a2fb
mov ecx, dword [esi + 0xeb8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
cmp eax, method.Concurrency::details::InternalContextBase.virtual_0
jne 0x48a395
mov eax, dword [ecx + 0xc]
cmp eax, 1
je 0x48a2fb
mov ecx, dword [esi + 0xeb8]
mov edx, dword [esi + 0xe9c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
cmp eax, method.ui::TreeView.2.virtual_60
jne 0x48a39c
mov dword [ecx + 0x18], edx
mov ecx, dword [esi + 0xeb8]
push 0
push dword [esi + 0xe9c]
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, esi
call fcn.00489b90
mov ecx, dword [esi + 0xeb8]
push ebx
mov eax, dword [ecx]
call dword [eax + 0x10]
push ecx
mov ecx, dword [esi + 0x1b0]
push 0
push 0
push str.itemclick
push esi
call fcn.0042aca0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
call eax
jmp 0x489f95
mov ecx, esi
call eax
jmp 0x489feb
mov ecx, esi
call eax
jmp 0x48a02c
mov ecx, esi
call eax
jmp 0x48a06d
mov ecx, esi
call eax
jmp 0x48a0b8
mov ecx, esi
call eax
jmp 0x48a141
mov ecx, esi
call eax
jmp 0x48a162
call eax
jmp 0x48a18b
mov ecx, esi
call eax
jmp 0x48a1a8
mov ecx, esi
call eax
jmp 0x48a1e2
call eax
mov edi, eax
jmp 0x48a233
mov ecx, esi
call eax
jmp 0x48a2a2
call eax
jmp 0x48a2c4
push edx
call eax
jmp 0x48a2e8