Function at 0x528b75
Capabilities:
Log keystrokes

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
sub esp, 0x20
mov eax, dword [ebp + 0x10]
xchg edx, eax
mov eax, dword [0x580260]
mov dword [eax + 4], edx
mov eax, dword [ebp + 8]
xchg edx, eax
mov eax, dword [0x580260]
mov dword [eax + 8], edx
mov eax, 0
xchg edx, eax
mov eax, dword [0x580260]
mov dword [eax + 0xc], edx
mov eax, 1
mov dword [ebp - 0x18], 1
mov eax, dword [ebp + 0x10]
cmp eax, 0xc
je 0x528c77
cmp eax, 0xe
je 0x528c8b
cmp eax, 0xf
je 0x528d56
cmp eax, 0xd
je 0x528de4
cmp eax, 0x19
je 0x528f85
cmp eax, 0x1a
je 0x528fcb
cmp eax, 0xb
je 0x52902e
cmp eax, 0xa
je 0x52902e
cmp eax, 4
je 0x52902e
cmp eax, 3
je 0x52902e
cmp eax, 6
je 0x52902e
cmp eax, 5
je 0x52902e
cmp eax, 2
je 0x52902e
cmp eax, 1
je 0x52902e
cmp eax, 9
je 0x52903f
cmp eax, 0x1b
je 0x529057
mov eax, 0
jmp 0x52906c
mov eax, dword [ebp + 0xc]
xchg edx, eax
mov eax, dword [0x580260]
mov dword [eax + 0xc], edx
jmp 0x52906c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cmp eax, 0xe5
jne 0x528cbf
mov eax, 0xffffffff
mov dword [0x58027c], 0xffffffff
mov eax, 1
jmp 0x5291b0
mov eax, dword [0x580580]
cmp eax, 0
jne 0x528cde
push dword [ebp - 0x1c]
call fcn.00528ad4
cmp eax, 0
jne 0x528cde
xor eax, eax
jmp 0x528ce1
xor eax, eax
inc eax
cmp eax, 0
je 0x528cef
mov eax, 0xffffffff
jmp 0x528d01
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.0052892e
mov dword [0x58027c], eax
mov eax, dword [0x58027c]
cmp eax, 0xffffffff
jne 0x528d35
push 2
push dword [ebp - 0x1c]
call dword [sym.imp.USER32.DLL_MapVirtualKeyW]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
cmp eax, 0
je 0x528d35
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.005289d1
mov edx, eax
mov eax, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x580260]
mov dword [eax + 0xc], edx
jmp 0x52906c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x1c]
call fcn.00528ad4
cmp eax, 0
je 0x528d7d
mov eax, 0xffffffff
jmp 0x528d8f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.0052892e
mov dword [0x58027c], eax
mov eax, dword [0x58027c]
cmp eax, 0xffffffff
jne 0x528dc3
push 2
push dword [ebp - 0x1c]
call dword [sym.imp.USER32.DLL_MapVirtualKeyW]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
cmp eax, 0
je 0x528dc3
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.005289d1
mov edx, eax
mov eax, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x580260]
mov dword [eax + 0xc], edx
jmp 0x52906c
xor eax, eax
push eax
call fcn.005289d1
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
cmp eax, 0xd800
jl 0x528e11
mov eax, dword [ebp - 0x20]
cmp eax, 0xdbff
jg 0x528e11
jmp 0x528e15
xor eax, eax
jmp 0x528e18
xor eax, eax
inc eax
cmp eax, 0
je 0x528e36
mov eax, dword [ebp - 0x20]
mov dword [0x580284], eax
mov eax, 1
jmp 0x5291b0
mov eax, dword [ebp - 0x20]
cmp eax, 0xdc00
jl 0x528e4c
mov eax, dword [ebp - 0x20]
cmp eax, 0xdfff
jg 0x528e4c
jmp 0x528e50
xor eax, eax
jmp 0x528e53
xor eax, eax
inc eax
cmp eax, 0
je 0x528e98
mov eax, dword [0x580284]
and eax, 0x3ff
shl eax, 0xa
mov edx, eax
mov eax, 0x10000
add eax, edx
push eax
mov eax, dword [ebp - 0x20]
and eax, 0x3ff
pop edx
xchg edx, eax
add eax, edx
mov dword [0x580284], eax
mov eax, dword [0x580284]
mov dword [ebp - 0x20], eax
mov eax, 0
mov dword [ebp - 0x1c], 0
jmp 0x528ebc
xor eax, eax
inc eax
je 0x528eae
mov eax, 0
mov dword [0x580284], 0
jmp 0x528ebc
call 0x528eb3
pop eax
push eax
push 0x64
call fcn.004255d6
mov eax, dword [ebp - 0x1c]
and eax, 0x10000000
cmp eax, 0
je 0x528ee3
mov eax, 0x60
mov edx, dword [ebp - 0x20]
cmp eax, edx
jge 0x528ee3
mov eax, dword [ebp - 0x20]
cmp eax, 0x7b
jge 0x528ee3
jmp 0x528ee7
xor eax, eax
jmp 0x528eea
xor eax, eax
inc eax
cmp eax, 0
je 0x528f0b
mov eax, dword [ebp - 0x20]
add eax, 0x40
mov dword [ebp - 0x20], eax
mov eax, 0xffffffff
mov dword [0x58027c], 0xffffffff
mov eax, dword [0x580580]
cmp eax, 0
je 0x528f28
mov eax, dword [ebp - 0x1c]
and eax, 0x20000000
cmp eax, 0
je 0x528f28
jmp 0x528f2c
xor eax, eax
jmp 0x528f2f
xor eax, eax
inc eax
cmp eax, 0
jne 0x528f52
mov eax, dword [0x58027c]
cmp eax, 0xa4
je 0x528f52
mov eax, dword [0x58027c]
cmp eax, 0xa5
je 0x528f52
xor eax, eax
jmp 0x528f55
xor eax, eax
inc eax
cmp eax, 0
je 0x528f6b
mov eax, 0xffffffff
mov dword [0x58027c], 0xffffffff
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x580260]
mov dword [eax + 0xc], edx
jmp 0x52906c
push 0
push dword [ebp + 8]
call fcn.0053b10e
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
mov edx, dword [0x57f994]
cmp eax, edx
jne 0x528fb0
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0053cd4e
mov eax, dword [ebp + 0xc]
inc eax
and eax, 0xffff
mov edx, eax
mov eax, dword [0x580260]
mov dword [eax + 0xc], edx
jmp 0x52906c
push 0
push dword [ebp + 8]
call fcn.0053b10e
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
push eax
call fcn.0044e3f8
mov edx, eax
mov eax, dword [0x57f9d8]
cmp eax, edx
jne 0x529009
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov edx, eax
mov eax, dword [0x580260]
mov dword [eax + 0xc], edx
jmp 0x52902c
mov eax, 0
mov edx, dword [ebp + 0xc]
cmp eax, edx
sete al
xor ah, ah
cwde
xor al, 1
cmp eax, 0
je 0x52902c
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.0053cd4e
jmp 0x52906c
mov eax, dword [ebp + 0xc]
xchg edx, eax
mov eax, dword [0x580260]
mov dword [eax + 0xc], edx
jmp 0x52906c
xor eax, eax
inc eax
push eax
call fcn.005289d1
mov edx, eax
mov eax, dword [0x580260]
mov dword [eax + 0xc], edx
jmp 0x52906c
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov edx, eax
mov eax, dword [0x580260]
mov dword [eax + 0xc], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
push dword [0x56f764]
call fcn.00489635
mov eax, dword [0x575cf4]
mov dword [ebp - 0xc], eax
mov eax, dword [0x575d1c]
mov dword [ebp - 0x28], eax
mov dword [0x575d1c], 0
mov eax, 0xffffffff
push dword [ebp - 4]
push dword [ebp - 8]
mov dword [ebp - 4], eax
call 0x5290ac
pop eax
add eax, 0x4c
mov dword [ebp - 8], eax
push dword [0x57f210]
push dword [0x57b9a0]
call fcn.004894b9
push dword [0x580260]
call fcn.00523980
xor eax, eax
push eax
call fcn.0043d55a
call fcn.0043d05a
push dword [0x57f200]
call fcn.004d3f73
call fcn.00489a6f
call fcn.004895d0
call fcn.00489a38
lea esp, [ebp - 0x30]
pop dword [ebp - 8]
pop dword [ebp - 4]
mov eax, dword [ebp - 0x28]
mov dword [0x575d1c], eax
call fcn.0048a5bf
mov eax, dword [0x54702c]
mov eax, dword [eax + 0x24]
cmp eax, 0
je 0x529131
mov eax, 0
xchg edx, eax
mov eax, dword [0x54702c]
mov dword [eax + 0x24], edx
mov eax, dword [ebp - 0x24]
xchg edx, eax
mov eax, dword [ebp + 8]
mov dword [eax], edx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
and eax, 0xff
cmp eax, 0xf
jne 0x5291ad
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
push eax
call fcn.0044e3f8
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [0x57fa44]
cmp eax, edx
jne 0x529178
mov eax, 1
mov dword [ebp - 0x18], 1
jmp 0x5291ad
mov eax, dword [ebp - 0x14]
mov edx, dword [0x57fa60]
cmp eax, edx
jne 0x529193
mov eax, 0
mov dword [ebp - 0x18], 0
jmp 0x5291ad
xor eax, eax
inc eax
je 0x52919f
mov eax, 0
jmp 0x5291ad
call 0x5291a4
pop eax
push eax
push 0x64
call fcn.004255d6
mov eax, dword [ebp - 0x18]
leave
ret 0xc