Function at 0x529d65
Capabilities:
Log keystrokes

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
sub esp, 0x24
mov eax, dword [ebp + 0x10]
xchg edx, eax
mov eax, dword [0x583814]
mov dword [eax + 4], edx
mov eax, dword [ebp + 8]
xchg edx, eax
mov eax, dword [0x583814]
mov dword [eax + 8], edx
mov eax, 0
xchg edx, eax
mov eax, dword [0x583814]
mov dword [eax + 0xc], edx
mov eax, 1
mov dword [ebp - 0x18], 1
mov eax, dword [ebp + 0x10]
cmp eax, 0xc
je 0x529e67
cmp eax, 0xe
je 0x529e7b
cmp eax, 0xf
je 0x529f46
cmp eax, 0xd
je 0x529fd4
cmp eax, 0x19
je 0x52a175
cmp eax, 0x1a
je 0x52a1bb
cmp eax, 0xb
je 0x52a240
cmp eax, 0xa
je 0x52a240
cmp eax, 4
je 0x52a240
cmp eax, 3
je 0x52a240
cmp eax, 6
je 0x52a240
cmp eax, 5
je 0x52a240
cmp eax, 2
je 0x52a240
cmp eax, 1
je 0x52a240
cmp eax, 9
je 0x52a25e
cmp eax, 0x1b
je 0x52a276
mov eax, 0
jmp 0x52a28b
mov eax, dword [ebp + 0xc]
xchg edx, eax
mov eax, dword [0x583814]
mov dword [eax + 0xc], edx
jmp 0x52a28b
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 0x529eaf
mov eax, 0xffffffff
mov dword [0x583830], 0xffffffff
mov eax, 1
jmp 0x52a3cf
mov eax, dword [0x583b88]
cmp eax, 0
jne 0x529ece
push dword [ebp - 0x1c]
call fcn.00529cc4
cmp eax, 0
jne 0x529ece
xor eax, eax
jmp 0x529ed1
xor eax, eax
inc eax
cmp eax, 0
je 0x529edf
mov eax, 0xffffffff
jmp 0x529ef1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.00529b1e
mov dword [0x583830], eax
mov eax, dword [0x583830]
cmp eax, 0xffffffff
jne 0x529f25
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 0x529f25
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.00529bc1
mov edx, eax
mov eax, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x583814]
mov dword [eax + 0xc], edx
jmp 0x52a28b
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x1c]
call fcn.00529cc4
cmp eax, 0
je 0x529f6d
mov eax, 0xffffffff
jmp 0x529f7f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.00529b1e
mov dword [0x583830], eax
mov eax, dword [0x583830]
cmp eax, 0xffffffff
jne 0x529fb3
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 0x529fb3
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.00529bc1
mov edx, eax
mov eax, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x583814]
mov dword [eax + 0xc], edx
jmp 0x52a28b
xor eax, eax
push eax
call fcn.00529bc1
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 0x52a001
mov eax, dword [ebp - 0x20]
cmp eax, 0xdbff
jg 0x52a001
jmp 0x52a005
xor eax, eax
jmp 0x52a008
xor eax, eax
inc eax
cmp eax, 0
je 0x52a026
mov eax, dword [ebp - 0x20]
mov dword [0x583838], eax
mov eax, 1
jmp 0x52a3cf
mov eax, dword [ebp - 0x20]
cmp eax, 0xdc00
jl 0x52a03c
mov eax, dword [ebp - 0x20]
cmp eax, 0xdfff
jg 0x52a03c
jmp 0x52a040
xor eax, eax
jmp 0x52a043
xor eax, eax
inc eax
cmp eax, 0
je 0x52a088
mov eax, dword [0x583838]
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 [0x583838], eax
mov eax, dword [0x583838]
mov dword [ebp - 0x20], eax
mov eax, 0
mov dword [ebp - 0x1c], 0
jmp 0x52a0ac
xor eax, eax
inc eax
je 0x52a09e
mov eax, 0
mov dword [0x583838], 0
jmp 0x52a0ac
call 0x52a0a3
pop eax
push eax
push 0x64
call fcn.00425703
mov eax, dword [ebp - 0x1c]
and eax, 0x10000000
cmp eax, 0
je 0x52a0d3
mov eax, 0x60
mov edx, dword [ebp - 0x20]
cmp eax, edx
jge 0x52a0d3
mov eax, dword [ebp - 0x20]
cmp eax, 0x7b
jge 0x52a0d3
jmp 0x52a0d7
xor eax, eax
jmp 0x52a0da
xor eax, eax
inc eax
cmp eax, 0
je 0x52a0fb
mov eax, dword [ebp - 0x20]
add eax, 0x40
mov dword [ebp - 0x20], eax
mov eax, 0xffffffff
mov dword [0x583830], 0xffffffff
mov eax, dword [0x583b88]
cmp eax, 0
je 0x52a118
mov eax, dword [ebp - 0x1c]
and eax, 0x20000000
cmp eax, 0
je 0x52a118
jmp 0x52a11c
xor eax, eax
jmp 0x52a11f
xor eax, eax
inc eax
cmp eax, 0
jne 0x52a142
mov eax, dword [0x583830]
cmp eax, 0xa4
je 0x52a142
mov eax, dword [0x583830]
cmp eax, 0xa5
je 0x52a142
xor eax, eax
jmp 0x52a145
xor eax, eax
inc eax
cmp eax, 0
je 0x52a15b
mov eax, 0xffffffff
mov dword [0x583830], 0xffffffff
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x583814]
mov dword [eax + 0xc], edx
jmp 0x52a28b
push 0
push dword [ebp + 8]
call fcn.0053ca15
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
mov edx, dword [0x582f28]
cmp eax, edx
jne 0x52a1a0
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0053e808
mov eax, dword [ebp + 0xc]
inc eax
and eax, 0xffff
mov edx, eax
mov eax, dword [0x583814]
mov dword [eax + 0xc], edx
jmp 0x52a28b
push 0
push dword [ebp + 8]
call fcn.0053ca15
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
push eax
call fcn.0044ebdc
mov edx, eax
mov eax, dword [0x582f6c]
cmp eax, edx
jne 0x52a1f9
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov edx, eax
mov eax, dword [0x583814]
mov dword [eax + 0xc], edx
jmp 0x52a23e
mov eax, 0
mov edx, dword [ebp + 0xc]
cmp eax, edx
sete al
xor ah, ah
cwde
xor al, 1
cmp eax, 0
je 0x52a23e
push 0xb
push dword [ebp + 8]
call fcn.0053ca15
push eax
call fcn.00525842
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
and eax, 0x100000
cmp eax, 0
jne 0x52a23e
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.0053e808
jmp 0x52a28b
xor eax, eax
push eax
call fcn.00529bc1
mov edx, eax
mov eax, dword [ebp + 0xc]
or eax, edx
mov edx, eax
mov eax, dword [0x583814]
mov dword [eax + 0xc], edx
jmp 0x52a28b
xor eax, eax
inc eax
push eax
call fcn.00529bc1
mov edx, eax
mov eax, dword [0x583814]
mov dword [eax + 0xc], edx
jmp 0x52a28b
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov edx, eax
mov eax, dword [0x583814]
mov dword [eax + 0xc], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
push dword [0x57190c]
call fcn.00489e42
mov eax, dword [0x577ef4]
mov dword [ebp - 0xc], eax
mov eax, dword [0x577f1c]
mov dword [ebp - 0x2c], eax
mov dword [0x577f1c], 0
mov eax, 0xffffffff
push dword [ebp - 4]
push dword [ebp - 8]
mov dword [ebp - 4], eax
call 0x52a2cb
pop eax
add eax, 0x4c
mov dword [ebp - 8], eax
push dword [0x5827a4]
push dword [0x57ef00]
call fcn.00489cc6
push dword [0x583814]
call fcn.00524a6f
xor eax, eax
push eax
call fcn.0043dd3e
call fcn.0043d83e
push dword [0x582794]
call fcn.004d49fe
call fcn.0048a27c
call fcn.00489ddd
call fcn.0048a245
lea esp, [ebp - 0x34]
pop dword [ebp - 8]
pop dword [ebp - 4]
mov eax, dword [ebp - 0x2c]
mov dword [0x577f1c], eax
call fcn.0048adcc
mov eax, dword [0x54902c]
mov eax, dword [eax + 0x24]
cmp eax, 0
je 0x52a350
mov eax, 0
xchg edx, eax
mov eax, dword [0x54902c]
mov dword [eax + 0x24], edx
mov eax, dword [ebp - 0x28]
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 0x52a3cc
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
push eax
call fcn.0044ebdc
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [0x582fd8]
cmp eax, edx
jne 0x52a397
mov eax, 1
mov dword [ebp - 0x18], 1
jmp 0x52a3cc
mov eax, dword [ebp - 0x14]
mov edx, dword [0x582ff4]
cmp eax, edx
jne 0x52a3b2
mov eax, 0
mov dword [ebp - 0x18], 0
jmp 0x52a3cc
xor eax, eax
inc eax
je 0x52a3be
mov eax, 0
jmp 0x52a3cc
call 0x52a3c3
pop eax
push eax
push 0x64
call fcn.00425703
mov eax, dword [ebp - 0x18]
leave
ret 0xc