Function at 0x47b8d5
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
mov eax, dword [0x4d3040]
xor eax, esp
mov dword [esp + 0x38], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edi
mov eax, dword [edi]
call dword [eax + 0x184]
test al, al
jne 0x47b933
mov eax, dword [esi]
sub eax, 9
cmp eax, 0xc
ja 0x47b933
mov ecx, dword [edi + 0xa0]
push esi
test ecx, ecx
je 0x47b927
mov eax, dword [ecx]
call dword [eax + 0x1c4]
jmp 0x47c18d
mov ecx, edi
call fcn.0044d855
jmp 0x47c18d
cmp dword [esi], 0x18
je 0x47c17e
cmp dword [esi], 0x17
je 0x47c17e
cmp dword [esi], 0xd
jne 0x47bb68
lea eax, [esi + 0xc]
mov ecx, edi
push eax
call fcn.0047aff4
mov dword [edi + 0x13a8], eax
test eax, eax
jne 0x47b97b
lea esi, [edi + 0x830]
mov ecx, esi
call fcn.004814d7
mov ecx, esi
call fcn.0048134a
mov esi, dword [esp + 0x14]
or dword [edi + 0x80c], 0x40
mov ecx, edi
push esi
call fcn.0047c1a1
test al, al
jne 0x47c18d
xor ebx, ebx
cmp dword [edi + 0x86c], ebx
je 0x47b9a4
cmp dword [edi + 0x870], ebx
jne 0x47b9c8
mov eax, dword [esi + 0xc]
mov dword [edi + 0x138c], eax
mov eax, dword [esi + 0x10]
mov dword [edi + 0x1390], eax
mov eax, dword [esi + 0xc]
mov dword [edi + 0x1394], eax
mov eax, dword [esi + 0x10]
mov dword [edi + 0x1398], eax
mov eax, dword [edi + 0x13a8]
test eax, eax
je 0x47c18d
mov esi, dword [eax + 0x11f4]
mov ecx, edi
mov eax, dword [eax + 0x11f8]
push esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], eax
call fcn.0047b2fa
test eax, eax
je 0x47ba17
mov ebx, dword [esp + 0x10]
mov ecx, edi
push ebx
call fcn.0047b320
test eax, eax
jne 0x47bb5c
push ebx
mov ecx, edi
call fcn.0047b3da
jmp 0x47bb5c
cmp dword [edi + 0x86c], ebx
je 0x47ba97
lea esi, [edi + 0x830]
cmp dword [edi + 0x870], ebx
je 0x47ba3f
mov ebx, dword [esp + 0x14]
mov ecx, esi
push ebx
call fcn.00481477
test eax, eax
jne 0x47ba86
jmp 0x47ba7c
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, esi
test ax, ax
jns 0x47ba73
push dword [esp + 0x14]
call fcn.00481477
mov ecx, esi
test eax, eax
je 0x47ba6d
push ebx
push dword [esp + 0x18]
call fcn.004813bc
push 0xffffffffffffffff
push 0xffffffffffffffff
jmp 0x47ba8b
mov ebx, dword [esp + 0x14]
jmp 0x47ba7e
call fcn.0048134a
mov ebx, dword [esp + 0x14]
mov ecx, esi
push 1
push ebx
call fcn.004813bc
push dword [esp + 0x10]
push ebx
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
jmp 0x47bb5c
mov ebx, dword [esp + 0x10]
mov ecx, edi
push ebx
call fcn.0047b320
test eax, eax
je 0x47bb24
push esi
mov ecx, edi
call fcn.0047b2fa
test eax, eax
jne 0x47bb24
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x47bacb
lea ecx, [edi + 0x830]
call fcn.004814d7
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x48]
test eax, eax
je 0x47bb5c
lea esi, [eax + 0x6b8]
xor ebx, ebx
mov eax, dword [esi]
mov ecx, esi
inc ebx
call dword [eax + 0xc]
cmp eax, ebx
jle 0x47bb5c
lea eax, [edi + 0x830]
mov edi, eax
mov eax, dword [esi]
mov ecx, esi
push ebx
call dword [eax]
push 1
mov ecx, edi
push dword [eax + 0x11f8]
push dword [eax + 0x11f4]
call fcn.0048154b
mov eax, dword [esi]
mov ecx, esi
inc ebx
call dword [eax + 0xc]
cmp ebx, eax
jl 0x47baf6
mov edi, dword [esp + 0x18]
jmp 0x47bb5c
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
lea ecx, [edi + 0x830]
test ax, ax
jns 0x47bb48
push ebx
push esi
call fcn.00481639
xor edx, edx
test eax, eax
sete dl
push edx
jmp 0x47bb4f
call fcn.004814d7
push 1
push ebx
push esi
lea ecx, [edi + 0x830]
call fcn.0048154b
mov ecx, edi
call fcn.0041ff0d
jmp 0x47c18d
cmp dword [esi], 0xe
jne 0x47be36
mov eax, dword [edi + 0x80c]
test al, 0x40
je 0x47bb84
and eax, 0xffffffbf
mov dword [edi + 0x80c], eax
lea ecx, [edi + 0x138c]
call fcn.00426c0d
xor ebx, ebx
test al, al
jne 0x47bd4a
call fcn.00426c58
mov eax, dword [ecx]
mov ecx, edi
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x1390]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x24]
push eax
call fcn.0047aff4
mov ecx, dword [edi + 0x1394]
mov esi, eax
mov dword [esp + 0x24], ecx
lea eax, [esp + 0x24]
mov ecx, dword [edi + 0x1398]
mov dword [esp + 0x28], ecx
mov ecx, edi
push eax
call fcn.0047aff4
test esi, esi
je 0x47bc09
test eax, eax
je 0x47bc09
cmp esi, eax
je 0x47bc09
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x47bc09
lea esi, [edi + 0x830]
mov ecx, esi
call fcn.0048134a
mov ecx, esi
call fcn.004814d7
mov ecx, dword [edi + 0xf80]
mov esi, ebx
add ecx, 0x6b8
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], ebx
mov eax, dword [ecx]
mov dword [esp + 0x10], ebx
call dword [eax + 0xc]
test eax, eax
jle 0x47bd4a
lea eax, [edi + 0x138c]
mov dword [esp + 0x24], eax
mov ecx, dword [edi + 0xf80]
add ecx, 0x6b8
push esi
mov eax, dword [ecx]
call dword [eax]
mov dword [esp + 0x20], eax
cmp dword [edi + 0x86c], ebx
je 0x47bca8
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x9c]
push eax
lea eax, [edi + 0x138c]
push eax
lea eax, [esp + 0x3c]
push eax
call dword [sym.imp.USER32.dll_IntersectRect]
test eax, eax
je 0x47bd2c
lea esi, [edi + 0x830]
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax + 0x20]
add eax, dword [esp + 0x14]
mov ecx, esi
push eax
call fcn.004813bc
mov esi, dword [esp + 0x10]
jmp 0x47bd2c
lea ecx, [edi + 0x830]
mov eax, dword [ecx]
mov dword [esp + 0x1c], ecx
call dword [eax + 0x28]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
add eax, 0x6b8
mov ecx, eax
mov dword [esp + 0x20], eax
mov edx, dword [eax]
call dword [edx + 0xc]
cmp dword [esp + 0x10], eax
jge 0x47bd2c
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
mov eax, dword [edi]
mov ecx, edi
push ebx
call dword [eax]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x9c]
push eax
push dword [esp + 0x28]
lea eax, [esp + 0x3c]
push eax
call dword [sym.imp.USER32.dll_IntersectRect]
test eax, eax
je 0x47bd1a
mov ecx, dword [esp + 0x1c]
push 1
push ebx
mov eax, dword [ecx]
call dword [eax + 0x20]
mov ecx, dword [esp + 0x24]
add eax, esi
push eax
call fcn.0048154b
mov eax, dword [edi]
mov ecx, edi
inc ebx
call dword [eax + 0xc]
cmp ebx, eax
jl 0x47bcdd
mov edi, dword [esp + 0x18]
xor ebx, ebx
mov ecx, dword [edi + 0xf80]
inc esi
add ecx, 0x6b8
mov dword [esp + 0x10], esi
mov eax, dword [ecx]
call dword [eax + 0xc]
cmp esi, eax
jl 0x47bc42
mov eax, dword [esp + 0x14]
mov ecx, edi
add eax, 0xc
push eax
call fcn.0047aff4
mov esi, eax
test esi, esi
je 0x47bdd6
cmp esi, dword [edi + 0x13a8]
jne 0x47bdd6
push dword [esi + 0x11f8]
mov ecx, edi
push dword [esi + 0x11f4]
call fcn.0047ac76
cmp eax, 2
jne 0x47bdd6
mov esi, dword [esi + 0x11fc]
mov dword [esp + 0x18], esi
test esi, esi
je 0x47bdd6
mov eax, dword [esi]
mov ecx, esi
push str.CheckBox
call dword [eax + 0x34]
test eax, eax
je 0x47bdd6
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x184]
test al, al
je 0x47bdd6
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x17c]
test al, al
je 0x47bdd6
mov esi, dword [esi]
mov ecx, dword [esp + 0x18]
call dword [esi + 0x28c]
mov ecx, dword [esp + 0x18]
neg al
sbb al, al
inc al
push eax
call dword [esi + 0x288]
mov eax, dword [esp + 0x14]
push dword [eax + 0x10]
push dword [eax + 0xc]
lea eax, [edi + 0x1b0]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x47be13
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x40]
test eax, eax
je 0x47be13
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x40]
push ebx
push ebx
push ebx
push str.click
push edi
mov ecx, eax
call fcn.00418aca
mov dword [edi + 0x1398], ebx
mov dword [edi + 0x1394], ebx
mov dword [edi + 0x1390], ebx
mov dword [edi + 0x138c], ebx
mov dword [edi + 0x13a8], ebx
jmp 0x47bb5c
cmp dword [esi], 9
jne 0x47bf6d
lea eax, [esi + 0xc]
mov ecx, edi
push eax
mov dword [esp + 0x28], eax
call fcn.0047aff4
xor ebx, ebx
mov dword [edi + 0x13b0], eax
test eax, eax
je 0x47be69
push dword [eax + 0x11f4]
mov ecx, edi
call fcn.0047b257
jmp 0x47be6b
mov eax, ebx
mov dword [edi + 0x13ac], eax
test byte [edi + 0x80c], 0x40
je 0x47c185
mov eax, dword [edi + 0x13b4]
cmp eax, 1
jne 0x47bef1
mov ecx, dword [edi + 0x13a8]
test ecx, ecx
je 0x47bf42
push dword [ecx + 0x11f8]
lea ebx, [edi + 0x830]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x40]
mov esi, dword [esp + 0x24]
mov edx, dword [esi]
sub edx, dword [edi + 0x810]
add eax, edx
test eax, eax
jle 0x47c18d
mov edx, dword [ebx]
mov ecx, ebx
push eax
mov eax, dword [edi + 0x13a8]
push dword [eax + 0x11f8]
call dword [edx + 0x3c]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [edi + 0x814], ecx
mov ecx, edi
mov dword [edi + 0x810], eax
call fcn.0041ffad
jmp 0x47c18d
cmp eax, 2
jne 0x47bf42
mov ecx, dword [edi + 0x13a8]
test ecx, ecx
je 0x47bf42
push dword [ecx + 0x11f4]
lea ebx, [edi + 0x830]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x38]
mov edx, dword [esi + 0x10]
sub edx, dword [edi + 0x814]
add eax, edx
test eax, eax
jle 0x47c18d
mov edx, dword [ebx]
mov ecx, ebx
push eax
mov eax, dword [edi + 0x13a8]
push dword [eax + 0x11f4]
call dword [edx + 0x34]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
jmp 0x47bed9
cmp dword [edi + 0x86c], ebx
je 0x47bf56
cmp dword [edi + 0x870], ebx
jne 0x47c185
mov eax, dword [esi + 0xc]
mov dword [edi + 0x1394], eax
mov eax, dword [esi + 0x10]
mov dword [edi + 0x1398], eax
jmp 0x47bb5c
cmp dword [esi], 0xf
jne 0x47c044
lea eax, [esi + 0xc]
mov ecx, edi
push eax
call fcn.0047aff4
mov ecx, eax
test ecx, ecx
jne 0x47bfa9
lea esi, [edi + 0x830]
mov ecx, esi
call fcn.004814d7
mov ecx, esi
call fcn.0048134a
mov eax, dword [esi]
mov ecx, esi
push 0
call dword [eax + 4]
jmp 0x47c18d
mov eax, dword [ecx + 0x11f4]
mov ecx, dword [ecx + 0x11f8]
mov dword [esp + 0x14], ecx
mov ecx, edi
push eax
mov dword [esp + 0x14], eax
call fcn.0047b2fa
test eax, eax
jne 0x47c185
lea ebx, [edi + 0x830]
mov ecx, ebx
cmp dword [edi + 0x86c], eax
je 0x47c012
push dword [esp + 0x10]
call fcn.00481477
test eax, eax
jne 0x47bffe
mov ecx, ebx
call fcn.0048134a
push 1
push dword [esp + 0x14]
mov ecx, ebx
call fcn.004813bc
push dword [esp + 0x14]
mov eax, dword [ebx]
mov ecx, ebx
push dword [esp + 0x14]
call dword [eax + 0x48]
jmp 0x47c185
push dword [esp + 0x14]
push dword [esp + 0x14]
call fcn.00481639
test eax, eax
jne 0x47c185
mov ecx, ebx
call fcn.004814d7
push 1
push dword [esp + 0x18]
mov ecx, ebx
push dword [esp + 0x18]
call fcn.0048154b
jmp 0x47c185
cmp dword [esi], 0x10
je 0x47c18d
cmp dword [esi], 0x1a
jne 0x47c13b
lea eax, [esi + 0xc]
mov ecx, edi
push eax
call fcn.0047aff4
mov ebx, eax
mov dword [esp + 0x10], ebx
test ebx, ebx
je 0x47c185
lea eax, [esp + 0x34]
mov ecx, ebx
push eax
call fcn.0047870a
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x24]
add ecx, 0xfffffff8
mov dword [esp + 0x34], ecx
mov ecx, ebx
push eax
call fcn.0047870a
mov eax, dword [esp + 0x30]
xor ebx, ebx
add eax, 0xfffffffc
mov dword [esp + 0x28], eax
cmp dword [edi + 0x854], ebx
je 0x47c0e9
mov eax, dword [esp + 0x10]
mov ecx, edi
push dword [eax + 0x11f4]
call fcn.0047b2fa
test eax, eax
je 0x47c0e9
push dword [esi + 0x10]
lea eax, [esp + 0x38]
push dword [esi + 0xc]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x47c0e9
push 0x7f84
push ebx
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x47c18d
cmp dword [edi + 0x858], ebx
je 0x47c185
mov eax, dword [esp + 0x10]
mov ecx, edi
push dword [eax + 0x11f8]
call fcn.0047b320
test eax, eax
jne 0x47c11f
mov eax, dword [esp + 0x10]
mov ecx, edi
push dword [eax + 0x11f4]
call fcn.0047b2fa
test eax, eax
je 0x47c185
push dword [esi + 0x10]
lea eax, [esp + 0x28]
push dword [esi + 0xc]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x47c185
push 0x7f85
jmp 0x47c0d6
cmp dword [esi], 0x13
jne 0x47c185
push dword [esi + 0x10]
lea eax, [edi + 0x1b0]
push dword [esi + 0xc]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x47c18d
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x40]
test eax, eax
je 0x47c18d
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x40]
push 1
xor ebx, ebx
mov ecx, eax
push ebx
push ebx
push str.dbclick
push edi
call fcn.00418aca
jmp 0x47c18d
mov ecx, edi
call fcn.0041ff0d
push esi
mov ecx, edi
call fcn.004536b4
mov ecx, dword [esp + 0x44]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004820f4
mov esp, ebp
pop ebp
ret 4