Function at 0x526a18
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
sub esp, 0x30
mov eax, 0
mov edx, dword [ebp + 0x14]
cmp eax, edx
jne 0x526a3a
mov eax, dword [ebp + 0x10]
cmp eax, 0x3e8
jge 0x526a3a
jmp 0x526a3e
xor eax, eax
jmp 0x526a41
xor eax, eax
inc eax
cmp eax, 0
je 0x526a71
mov eax, 0
mov edx, dword [0x57cb74]
cmp eax, edx
sete al
xor ah, ah
cwde
xor al, 1
cmp eax, 0
je 0x526a71
push dword [ebp + 8]
call fcn.0052d7ae
jmp 0x527130
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x30], eax
mov eax, 0
mov edx, dword [0x57cce8]
cmp eax, edx
jne 0x526a8d
call fcn.005269cb
jmp 0x526a97
mov eax, dword [0x57cce8]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x10]
sar eax, 0x10
cmp eax, 0
je 0x526b06
cmp eax, 3
je 0x526cca
cmp eax, 0x300
je 0x526d83
cmp eax, 0x100
je 0x526e1d
cmp eax, 4
je 0x526e1d
cmp eax, 0x200
je 0x526ef6
cmp eax, 1
je 0x526f15
cmp eax, 5
je 0x52706b
cmp eax, 0
je 0x5270ef
mov eax, 0
jmp 0x527109
push 0
push dword [0x57cce8]
call fcn.00538553
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
push eax
call fcn.0044e23a
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x30]
xchg edx, eax
mov eax, dword [0x57cce8]
mov dword [eax], edx
mov eax, dword [ebp - 0x24]
mov edx, dword [0x57c0a0]
cmp eax, edx
jne 0x526b4a
mov eax, 9
jmp 0x526c99
mov eax, dword [ebp - 0x24]
mov edx, dword [0x57c0ac]
cmp eax, edx
jne 0x526b6c
push dword [0x57cce8]
call fcn.0053a115
mov eax, 0x1a
jmp 0x526c99
mov eax, dword [ebp - 0x24]
mov edx, dword [0x57c0b8]
cmp eax, edx
jne 0x526c16
push 0xb
push dword [0x57cce8]
call fcn.00538553
push eax
call fcn.00521ee6
mov edx, eax
mov eax, 0x20000
and eax, edx
mov edx, eax
mov eax, 0
cmp eax, edx
je 0x526c01
push 0
push 0
push 0xf0
push dword [ebp - 0x30]
call dword [sym.imp.USER32.DLL_SendMessageW]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
cmp eax, 0
je 0x526bd8
cmp eax, 2
je 0x526bdf
cmp eax, 1
je 0x526be6
mov eax, 0
jmp 0x526beb
mov eax, 1
jmp 0x526beb
mov eax, 0
jmp 0x526beb
mov eax, 2
mov dword [ebp - 0x28], eax
push 0
push dword [ebp - 0x28]
push 0xf1
push dword [ebp - 0x30]
call dword [sym.imp.USER32.DLL_SendMessageW]
push dword [0x57cce8]
call fcn.0053a115
mov eax, 0x1a
jmp 0x526c99
mov eax, dword [ebp - 0x24]
mov edx, dword [0x57c0c4]
cmp eax, edx
jne 0x526c5f
push 0
push 0
push 0xf2
push dword [ebp - 0x30]
call dword [sym.imp.USER32.DLL_SendMessageW]
mov edx, eax
mov eax, 1
and eax, edx
mov edx, eax
mov eax, 1
cmp eax, edx
je 0x526c5f
push 9
call dword [sym.imp.USER32.DLL_GetKeyState]
and eax, 0x8000
cmp eax, 0
jne 0x526c5f
jmp 0x526c63
xor eax, eax
jmp 0x526c66
xor eax, eax
inc eax
cmp eax, 0
je 0x526c7f
push dword [0x57cce8]
call fcn.0053a115
mov eax, 9
jmp 0x526c99
xor eax, eax
inc eax
je 0x526c8b
mov eax, 0
jmp 0x526c99
call fcn.00526c90
push 0
push dword [0x57cce8]
call fcn.00538553
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
mov edx, dword [0x57c0c4]
cmp eax, edx
jne 0x526d2e
mov eax, dword [ebp - 0x30]
xchg edx, eax
mov eax, dword [0x57cce8]
mov dword [eax], edx
push 0
push 0
push 0xf2
push dword [ebp - 0x30]
call dword [sym.imp.USER32.DLL_SendMessageW]
xor edi, edi
cmp eax, 0
je 0x526d12
inc edi
mov eax, edi
xor al, 1
cmp eax, 0
je 0x526d2c
push 0x1a
push 0
push dword [0x57cce8]
call fcn.005262c0
jmp 0x526d7e
push dword [ebp + 8]
call fcn.005384b5
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
cmp eax, 0
je 0x526d54
mov eax, dword [ebp - 0x10]
add eax, 0xa0
push eax
push dword [ebp - 0x30]
call fcn.005250a7
mov eax, dword [ebp - 0x30]
xchg edx, eax
mov eax, dword [0x57cce8]
mov dword [eax], edx
push 0
push dword [0x57cce8]
call fcn.00538553
mov dword [ebp - 0xc], eax
push 0x11
push 0
push dword [0x57cce8]
call fcn.005262c0
jmp 0x527109
mov eax, 0
mov edx, dword [0x57cce8]
cmp eax, edx
je 0x526da5
push dword [ebp + 8]
call fcn.005383ea
cmp eax, 0
jne 0x526da5
xor eax, eax
jmp 0x526da8
xor eax, eax
inc eax
xor al, 1
cmp eax, 0
je 0x526e13
push dword [ebp - 0x30]
call fcn.005383ea
xor al, 1
cmp eax, 0
je 0x526e13
mov eax, dword [ebp - 0x30]
xchg edx, eax
mov eax, dword [0x57cce8]
mov dword [eax], edx
push 0x1a
push 0xffffffffffffffff
push dword [0x57cce8]
call fcn.005262c0
push 0
push dword [0x57cce8]
call fcn.00538553
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
mov edx, dword [0x57c0dc]
cmp eax, edx
jne 0x526e13
push 0x10
push dword [ebp - 0x30]
call fcn.0053c4a4
push 0
push dword [ebp - 0x30]
call fcn.00538a37
mov eax, 0
jmp 0x527109
push dword [ebp + 8]
call fcn.005384b5
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
cmp eax, 0
je 0x526e43
mov eax, dword [ebp - 0x10]
add eax, 0xa0
push eax
push dword [ebp - 0x30]
call fcn.005250a7
mov eax, dword [ebp - 0x30]
xchg edx, eax
mov eax, dword [0x57cce8]
mov dword [eax], edx
push 0
push dword [0x57cce8]
call fcn.00538553
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
push eax
call fcn.0044e23a
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov edx, dword [0x57c0d0]
cmp eax, edx
je 0x526e8e
mov eax, dword [ebp - 0x24]
mov edx, dword [0x57c0dc]
cmp eax, edx
je 0x526e8e
xor eax, eax
jmp 0x526e91
xor eax, eax
inc eax
cmp eax, 0
je 0x526ea9
push dword [ebp - 0x30]
call fcn.005384b5
push eax
push dword [ebp - 0x30]
call fcn.0053c6f7
mov eax, dword [ebp - 0x24]
mov edx, dword [0x57c124]
cmp eax, edx
je 0x526ec7
mov eax, dword [ebp - 0x24]
mov edx, dword [0x57c134]
cmp eax, edx
je 0x526ec7
xor eax, eax
jmp 0x526eca
xor eax, eax
inc eax
cmp eax, 0
je 0x526ee2
push 0x12
push 0
push dword [0x57cce8]
call fcn.005262c0
jmp 0x526ef1
push 0x11
push 0
push dword [0x57cce8]
call fcn.005262c0
jmp 0x527109
mov eax, dword [ebp - 0x30]
xchg edx, eax
mov eax, dword [0x57cce8]
mov dword [eax], edx
push 0x12
push 0
push dword [0x57cce8]
call fcn.005262c0
jmp 0x527109
mov eax, dword [ebp - 0x30]
xchg edx, eax
mov eax, dword [0x57cce8]
mov dword [eax], edx
push dword [ebp - 0x30]
call fcn.005384b5
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
add eax, 0
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
mov edx, dword [0x57c0f8]
cmp eax, edx
jne 0x526f50
mov eax, 0x188
jmp 0x526f55
mov eax, 0x147
mov dword [ebp - 0x38], eax
push 0
push 0
push dword [ebp - 0x38]
push dword [ebp - 0x30]
call dword [sym.imp.USER32.DLL_SendMessageW]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
add eax, 0xa0
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
and eax, 0xff
cmp eax, 0xb
jne 0x526f9e
mov eax, dword [ebp - 0x1c]
inc eax
push eax
pop edx
xchg edx, eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
xchg edx, eax
cmp eax, edx
jne 0x526f9e
jmp 0x526fa2
xor eax, eax
jmp 0x526fa5
xor eax, eax
inc eax
cmp eax, 0
je 0x526fb1
jmp 0x527130
push 0x19
push dword [ebp - 0x1c]
push dword [0x57cce8]
call fcn.005262c0
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x10]
add eax, 0xf0
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
and eax, 0xff
cmp eax, 5
je 0x526fe5
jmp 0x527130
push 0
push 0
push dword [ebp - 0x38]
push dword [ebp - 0x30]
call dword [sym.imp.USER32.DLL_SendMessageW]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
and eax, 0xff
cmp eax, 0xb
jne 0x527020
mov eax, dword [ebp - 0x1c]
inc eax
push eax
pop edx
xchg edx, eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
xchg edx, eax
cmp eax, edx
jne 0x527020
jmp 0x527024
xor eax, eax
jmp 0x527027
xor eax, eax
inc eax
cmp eax, 0
je 0x527033
jmp 0x527130
mov eax, 0xb
xchg edx, eax
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov eax, dword [ebp - 0x1c]
inc eax
mov edx, eax
mov eax, dword [ebp - 0x14]
mov dword [eax + 8], edx
mov eax, dword [ebp - 0x20]
cmp eax, 1
jne 0x527066
push 0x1a
push 0
push dword [0x57cce8]
call fcn.005262c0
jmp 0x527109
mov eax, dword [ebp - 0x30]
xchg edx, eax
mov eax, dword [0x57cce8]
mov dword [eax], edx
push 0
push dword [0x57cce8]
call fcn.00538553
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
mov edx, dword [0x57c0f8]
cmp eax, edx
je 0x5270b0
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
mov edx, dword [0x57c0c4]
cmp eax, edx
je 0x5270b0
xor eax, eax
jmp 0x5270b3
xor eax, eax
inc eax
xor al, 1
cmp eax, 0
je 0x5270cb
push 0x1a
push 0xffffffffffffffff
push dword [0x57cce8]
call fcn.005262c0
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
mov edx, dword [0x57c0f8]
cmp eax, edx
jne 0x5270ed
push 0x12
push 0
push dword [0x57cce8]
call fcn.005262c0
jmp 0x527109
mov eax, dword [ebp - 0x30]
xchg edx, eax
mov eax, dword [0x57cce8]
mov dword [eax], edx
push 1
push 0
push dword [0x57cce8]
call fcn.005262c0