Function at 0x45fa00
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::Control.virtual_272
jne 0x45fdbd
mov al, byte [esi + 0x300]
mov ebx, dword [ebp + 8]
test al, al
jne 0x45fa57
mov eax, dword [ebx]
cmp eax, 8
jle 0x45fa57
cmp eax, 0x14
jge 0x45fa57
mov ecx, dword [esi + 0xe90]
push ebx
test ecx, ecx
jne 0x45fba6
mov ecx, esi
call fcn.0047dff0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx]
cmp eax, 0x11
jne 0x45fa9a
mov eax, dword [esi]
mov eax, dword [eax + 0x128]
cmp eax, method.ui::Control.virtual_296
jne 0x45fdc4
mov al, byte [esi + 0x2f8]
not al
and al, 1
test al, al
je 0x45fdb4
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov ecx, esi
call fcn.0045f620
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, 3
jne 0x45fac7
mov eax, dword [esi]
mov eax, dword [eax + 0x128]
cmp eax, method.ui::Control.virtual_296
jne 0x45fdcd
mov al, byte [esi + 0x2f8]
not al
and al, 1
test al, al
je 0x45fac7
cmp word [ebx + 0x18], 0xd
je 0x45fa83
mov eax, dword [ebx]
cmp eax, 0xd
je 0x45fbb4
cmp eax, 0xf
je 0x45fbb4
cmp eax, 0x13
jne 0x45fb16
mov eax, dword [esi]
mov eax, dword [eax + 0x128]
cmp eax, method.ui::Control.virtual_296
jne 0x45fdd6
mov al, byte [esi + 0x2f8]
not al
and al, 1
test al, al
je 0x45fb16
mov ecx, dword [esi + 0xe90]
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 0x45fb5a
cmp eax, 9
je 0x45fdb4
cmp eax, 0xb
jne 0x45fb6b
mov eax, dword [esi]
mov eax, dword [eax + 0x128]
cmp eax, method.ui::Control.virtual_296
jne 0x45fddf
mov al, byte [esi + 0x2f8]
not al
and al, 1
test al, al
je 0x45fb5a
or dword [esi + 0xe8c], 8
mov ecx, esi
call fcn.0045f620
push ebx
mov ecx, esi
call fcn.00449860
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, 0xa
jne 0x45fb9b
mov eax, dword [esi + 0xe8c]
test al, 8
je 0x45fb8a
and eax, 0xfffffff7
mov ecx, esi
mov dword [esi + 0xe8c], eax
call fcn.0045f620
push ebx
mov ecx, esi
call fcn.00449860
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [esi + 0xe90]
push ebx
test ecx, ecx
je 0x45fb5b
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::Control.virtual_296
jne 0x45fde8
mov al, byte [esi + 0x2f8]
not al
and al, 1
test al, al
je 0x45fd92
mov eax, dword [esi]
mov eax, dword [eax + 0x110]
cmp eax, method.ui::Control.virtual_272
jne 0x45fdf1
mov al, byte [esi + 0x300]
test al, al
je 0x45fd92
mov ecx, dword [esi + 0xe90]
test ecx, ecx
je 0x45fd8b
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
cmp eax, method.ui::List.virtual_52
jne 0x45fdfa
mov al, byte [ecx + 5]
test al, al
je 0x45fc45
mov eax, dword [esi]
mov eax, dword [eax + 0x130]
cmp eax, method.ui::ListContainerElement.2.virtual_304
jne 0x45fe01
mov al, byte [esi + 0xe89]
test al, al
jne 0x45fd8b
jmp 0x45fd78
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call edi
mov ecx, 0x8000
test cx, ax
je 0x45fc9c
mov eax, dword [esi]
mov eax, dword [eax + 0x130]
cmp eax, method.ui::ListContainerElement.2.virtual_304
jne 0x45fe0a
mov al, byte [esi + 0xe89]
mov ecx, dword [esi + 0xe90]
test al, al
mov eax, dword [ecx]
je 0x45fc8c
push dword [esi + 0xe74]
call dword [eax + 0xc]
jmp 0x45fd8b
push 0
push dword [esi + 0xe74]
call dword [eax + 0x2c]
jmp 0x45fd8b
push 0x10
call edi
mov ecx, 0x8000
test cx, ax
je 0x45fd19
mov ecx, dword [esi + 0xe90]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
cmp eax, fcn.00458da0
jne 0x45fe13
mov edi, dword [ecx + 0x18]
cmp edi, 0xffffffff
je 0x45fd8b
mov ecx, dword [esi + 0xe90]
mov edx, dword [ecx]
call dword [edx + 0x44]
mov eax, dword [esi + 0xe74]
cmp edi, eax
jle 0x45fd00
mov ebx, eax
mov ecx, dword [esi + 0xe90]
push 0
push ebx
mov eax, dword [ecx]
call dword [eax + 0x2c]
inc ebx
cmp ebx, edi
jle 0x45fce3
mov ebx, dword [ebp + 8]
jmp 0x45fd8b
mov ecx, dword [esi + 0xe90]
push 0
push edi
mov eax, dword [ecx]
call dword [eax + 0x2c]
inc edi
cmp edi, dword [esi + 0xe74]
jle 0x45fd00
jmp 0x45fd8b
mov eax, dword [esi]
mov eax, dword [eax + 0x130]
cmp eax, method.ui::ListContainerElement.2.virtual_304
jne 0x45fe1c
mov al, byte [esi + 0xe89]
test al, al
je 0x45fd59
cmp dword [ebx], 0xd
jne 0x45fd8b
mov ecx, dword [esi + 0xe90]
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
cmp eax, method.Concurrency::details::InternalContextBase.virtual_0
jne 0x45fe25
mov eax, dword [ecx + 0xc]
cmp eax, 1
je 0x45fd8b
mov ecx, dword [esi + 0xe90]
mov edx, dword [esi + 0xe74]
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
cmp eax, method.ui::List.virtual_60
jne 0x45fe2c
mov dword [ecx + 0x18], edx
mov ecx, dword [esi + 0xe90]
push 0
push dword [esi + 0xe74]
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, esi
call fcn.0045f620
mov ecx, dword [esi + 0xe90]
push ebx
mov eax, dword [ecx]
call dword [eax + 0x10]
push ecx
mov ecx, dword [esi + 0x188]
push 0
push 0
push str.itemclick
push esi
call fcn.0043add0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
call eax
jmp 0x45fa25
mov ecx, esi
call eax
jmp 0x45fa7b
mov ecx, esi
call eax
jmp 0x45fabc
mov ecx, esi
call eax
jmp 0x45fafd
mov ecx, esi
call eax
jmp 0x45fb48
mov ecx, esi
call eax
jmp 0x45fbd1
mov ecx, esi
call eax
jmp 0x45fbf2
call eax
jmp 0x45fc1b
mov ecx, esi
call eax
jmp 0x45fc38
mov ecx, esi
call eax
jmp 0x45fc72
call eax
mov edi, eax
jmp 0x45fcc3
mov ecx, esi
call eax
jmp 0x45fd32
call eax
jmp 0x45fd54
push edx
call eax
jmp 0x45fd78