Function at 0x4cb650
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xbc
mov eax, dword [0x60b4e0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
mov esi, dword [eax + 4]
mov ebx, ecx
mov edi, dword [ebp + 8]
mov dword [ebp - 0xa8], edi
mov dword [ebp - 0xa4], eax
cmp esi, 0x200
je 0x4cb6b1
cmp esi, 0xa0
je 0x4cb6b1
cmp esi, 0x2a3
je 0x4cb6b1
cmp esi, 0x202
je 0x4cb6b1
cmp esi, 0x205
je 0x4cb6b1
cmp esi, 0x208
jne 0x4cbd09
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x4cbd03
push 2
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x4cbd03
push 4
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x4cbd03
cmp dword [ebp + 0x10], 0
mov esi, dword [sym.imp.USER32.dll_GetParent]
jne 0x4cb721
mov eax, dword [ebp - 0xa4]
push dword [eax]
call fcn.005289e3
test eax, eax
je 0x4cb719
test dword [eax + 0x60], 0x401
jne 0x4cb719
push dword [eax + 0x20]
call esi
push eax
call fcn.005289e3
test eax, eax
jne 0x4cb701
cmp eax, edi
jne 0x4cbdca
test edi, edi
jne 0x4cb729
xor eax, eax
jmp 0x4cb72c
mov eax, dword [edi + 0x20]
push eax
call fcn.00486150
mov ecx, dword [ebx + 0x60]
add esp, 4
mov dword [ebp - 0xb0], eax
test ecx, ecx
je 0x4cb785
mov ecx, dword [ecx + 0x20]
test ecx, ecx
je 0x4cb785
push ecx
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x4cb785
cmp dword [ebp - 0xb0], 0
jne 0x4cb785
mov eax, dword [ebx + 0x60]
push 0
push 0
push 0x401
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0055a658
mov esp, ebp
pop ebp
ret 0xc
mov ecx, edi
call fcn.00528c2f
mov ecx, dword [ebx + 0x60]
mov edx, eax
mov dword [ebp - 0xa0], edx
test ecx, ecx
je 0x4cb7c5
mov eax, dword [ecx + 0x5c]
test eax, eax
jne 0x4cb7a7
push dword [ecx + 0x20]
call esi
push eax
call fcn.005289e3
mov edx, dword [ebp - 0xa0]
cmp eax, edx
je 0x4cb7c5
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx]
call dword [eax + 0x60]
mov edx, dword [ebp - 0xa0]
mov edi, dword [ebx + 0x60]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0xac], edi
test edi, edi
je 0x4cb7e6
cmp dword [edi + 0x20], 0
jne 0x4cb957
test edi, edi
jne 0x4cb7fb
mov eax, dword [ebx]
mov ecx, ebx
push edx
call dword [eax + 0x50]
mov edi, eax
mov dword [ebx + 0x60], eax
test edi, edi
je 0x4cbdca
cmp dword [edi + 0x20], 0
jne 0x4cb866
push edi
push 0x5bbfc0
call fcn.00537705
mov ecx, dword [ebx + 0x60]
add esp, 8
test eax, eax
je 0x4cb82a
mov eax, dword [ebx + 0x40]
or eax, 3
push eax
push dword [ebp - 0xa0]
call fcn.004ca850
jmp 0x4cb866
push ecx
push 0x5ce3f8
call fcn.00537705
add esp, 8
test eax, eax
je 0x4cbdca
cmp dword [ebx + 0x30], 1
mov eax, 3
mov ecx, dword [ebx + 0x60]
mov edi, 0x43
cmove eax, edi
or eax, dword [ebx + 0x40]
push eax
mov edx, dword [ecx]
push dword [ebp - 0xa0]
call dword [edx + 0x164]
mov eax, dword [ebx + 0x60]
test eax, eax
je 0x4cbdca
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x4cbdca
lea eax, [ebx + 0x98]
test eax, eax
je 0x4cb889
mov eax, dword [eax + 4]
push 1
push eax
push 0x30
push ecx
call esi
push dword [ebx + 0x3c]
mov eax, dword [ebx + 0x60]
push 0
push 0x418
push dword [eax + 0x20]
call esi
lea eax, [ebx + 0x44]
push eax
mov eax, dword [ebx + 0x60]
push 0
push 0x41a
push dword [eax + 0x20]
call esi
mov eax, dword [ebx + 0x90]
cmp eax, 0xffffffff
je 0x4cb8d1
push 0
push eax
mov eax, dword [ebx + 0x60]
push 0x413
push dword [eax + 0x20]
call esi
mov eax, dword [ebx + 0x94]
cmp eax, 0xffffffff
je 0x4cb8ec
push 0
push eax
mov eax, dword [ebx + 0x60]
push 0x414
push dword [eax + 0x20]
call esi
mov eax, dword [ebx + 0x58]
cmp eax, 0xffffffff
je 0x4cb907
movzx eax, ax
push eax
mov eax, dword [ebx + 0x60]
push 1
push 0x403
push dword [eax + 0x20]
call esi
mov eax, dword [ebx + 0x54]
cmp eax, 0xffffffff
je 0x4cb922
movzx eax, ax
push eax
mov eax, dword [ebx + 0x60]
push 3
push 0x403
push dword [eax + 0x20]
call esi
mov eax, dword [ebx + 0x5c]
cmp eax, 0xffffffff
je 0x4cb93d
movzx eax, ax
push eax
mov eax, dword [ebx + 0x60]
push 2
push 0x403
push dword [eax + 0x20]
call esi
mov eax, dword [ebx + 0x60]
push 0
push 0
push 0x401
push dword [eax + 0x20]
call esi
mov edi, dword [ebx + 0x60]
mov dword [ebp - 0xac], edi
mov ecx, dword [ebp - 0xa4]
xor eax, eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0xb8], eax
mov eax, dword [ecx + 0x18]
mov dword [ebp - 0xb4], eax
lea eax, [ebp - 0xb8]
push eax
mov eax, dword [ebp - 0xa8]
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_ScreenToClient]
cmp dword [ebx + 0x20], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
jne 0x4cb9f1
cmp dword [ebx + 0x24], 0
mov dword [ebp - 0x70], 0x28
je 0x4cb9f8
mov dword [ebp - 0x70], 0x2c
lea ecx, [ebp - 0x70]
push ecx
push dword [ebp - 0xb4]
lea eax, [ebp - 0x44]
mov ecx, ebx
push dword [ebp - 0xb8]
mov dword [ebp - 0x48], eax
mov eax, dword [ebx]
push dword [ebp - 0xa8]
call dword [eax + 0x54]
cmp dword [ebx + 0x20], 0
mov dword [ebp - 0xa0], eax
je 0x4cba76
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x4cba76
mov ecx, dword [ebp - 0x40]
test ecx, ecx
je 0x4cba76
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4cba5b
test dx, dx
je 0x4cba57
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4cba5b
add eax, 4
add ecx, 4
test dx, dx
jne 0x4cba35
xor eax, eax
jmp 0x4cba60
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4cba76
push dword [ebp - 0x44]
call fcn.00561815
add esp, 4
mov dword [ebp - 0x44], 0
test byte [ebx + 0x40], 2
jne 0x4cba92
push dword [ebp - 0x4c]
call fcn.004865f0
mov eax, dword [ebp - 0x48]
push dword [eax + 4]
call fcn.004865f0
add esp, 8
cmp dword [ebx + 0xa8], 0
je 0x4cbab1
push dword [ebp - 0x4c]
call fcn.004cdfd0
mov eax, dword [ebp - 0x48]
push dword [eax + 4]
call fcn.004cdfd0
add esp, 8
mov eax, dword [ebx + 0x70]
cmp eax, dword [ebp - 0x64]
jne 0x4cbb16
mov eax, dword [ebx + 0x6c]
cmp eax, dword [ebp - 0x68]
jne 0x4cbb16
mov esi, dword [sym.imp.USER32.dll_CopyRect]
xor eax, eax
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x14]
push eax
call esi
lea eax, [ebx + 0x74]
push eax
lea eax, [ebp - 0x24]
push eax
call esi
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.USER32.dll_EqualRect]
test eax, eax
je 0x4cbb23
cmp dword [ebp - 0xa0], 0xffffffff
je 0x4cbcb5
mov eax, dword [ebp - 0xa4]
mov ecx, ebx
push eax
push edi
call fcn.004cd8d0
jmp 0x4cbcb5
mov ecx, 1
mov dword [ebp - 0xa8], ecx
jmp 0x4cbb2b
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
xor ecx, ecx
cmp dword [ebx + 0x64], 0x28
lea eax, [ebx + 0x64]
mov dword [ebp - 0xbc], eax
jb 0x4cbb4a
test ecx, ecx
jne 0x4cbb4a
push eax
push ecx
push 0x433
push dword [edi + 0x20]
call esi
cmp dword [ebp - 0xa0], 0xffffffff
je 0x4cbc6b
mov eax, dword [ebp - 0x6c]
lea esi, [ebp - 0x70]
and eax, 0x3fffffff
lea edi, [ebp - 0x9c]
mov ecx, 0xb
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xac]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x98], eax
lea eax, [ebp - 0x9c]
push eax
push 0
push 0x432
push dword [edi + 0x20]
call esi
mov eax, dword [ebx + 0x30]
cmp eax, 3
je 0x4cbbf8
cmp eax, 6
je 0x4cbbf8
cmp eax, 7
je 0x4cbbf8
cmp dword [ebx + 0x34], 0x50050
jae 0x4cbbb3
test eax, eax
je 0x4cbbf8
cmp dword [ebx + 0x20], 0
je 0x4cbbea
cmp dword [ebp - 0x44], 0
je 0x4cbbea
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x4cbbea
push eax
push dword [ebx + 0x38]
push 0x421
push dword [edi + 0x20]
call esi
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x9c]
push eax
push 0
push 0x439
jmp 0x4cbbf3
push 0
push 0
push 0x421
push dword [edi + 0x20]
call esi
cmp dword [ebx + 0x24], 0
je 0x4cbc31
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
je 0x4cbc19
mov eax, dword [ebx + 0x2c]
push dword [ebx + 0x28]
add eax, dword [ebp - 0xa0]
push eax
call fcn.0047df30
jmp 0x4cbc1b
xor eax, eax
mov ecx, dword [edi + 0x20]
test eax, eax
je 0x4cbc25
push eax
jmp 0x4cbc27
push 0
push 0
push 0x2a49
push ecx
call esi
test dword [ebp - 0x6c], 0x40000000
jne 0x4cbc43
cmp dword [ebp - 0xb0], 0
je 0x4cbc79
push 0
push 1
push 0x401
push dword [edi + 0x20]
call esi
push 0x213
push 0
push 0
push 0
push 0
push 0
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SetWindowPos]
jmp 0x4cbc79
push 0
push 0
push 0x401
push dword [edi + 0x20]
call esi
mov eax, dword [ebp - 0xa4]
mov ecx, ebx
push eax
push edi
call fcn.004cd8d0
mov ebx, dword [ebp - 0xbc]
cmp dword [ebx], 0x28
jb 0x4cbca9
cmp dword [ebp - 0xa8], 0
je 0x4cbca9
push ebx
push 0
push 0x433
push dword [edi + 0x20]
call esi
mov ecx, 0xb
lea esi, [ebp - 0x70]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x4c]
cmp eax, 0xffffffff
je 0x4cbccc
cmp dword [ebp - 0x50], 0
jne 0x4cbccc
push eax
call fcn.00561815
add esp, 4
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x4cbcdc
push eax
call fcn.00561815
add esp, 4
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x4cbdca
push eax
call fcn.00561815
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0055a658
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp - 0xa4]
cmp dword [ebp + 0x10], 0
jne 0x4cbd48
push dword [eax]
call fcn.005289e3
test eax, eax
je 0x4cbd40
lea ebx, [ebx]
cmp eax, edi
je 0x4cbd48
test dword [eax + 0x60], 0x401
jne 0x4cbd40
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.005289e3
test eax, eax
jne 0x4cbd20
cmp eax, edi
jne 0x4cbdca
cmp esi, 0x100
jb 0x4cbd58
cmp esi, 0x109
jbe 0x4cbdc3
lea eax, [esi - 0x104]
cmp eax, 3
jbe 0x4cbdc3
cmp esi, 0x201
je 0x4cbdc3
cmp esi, 0x203
je 0x4cbdc3
cmp esi, 0x204
je 0x4cbdc3
cmp esi, 0x206
je 0x4cbdc3
cmp esi, 0x207
je 0x4cbdc3
cmp esi, 0x209
je 0x4cbdc3
cmp esi, 0xa1
je 0x4cbdc3
cmp esi, 0xa3
je 0x4cbdc3
cmp esi, 0xa4
je 0x4cbdc3
cmp esi, 0xa6
je 0x4cbdc3
cmp esi, 0xa7
je 0x4cbdc3
cmp esi, 0xa9
jne 0x4cbdca
mov ecx, ebx
call fcn.004ca830
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0055a658
mov esp, ebp
pop ebp
ret 0xc