Function at 0x529d95
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 [0x58380c]
mov dword [eax + 4], edx
mov eax, dword [ebp + 8]
xchg edx, eax
mov eax, dword [0x58380c]
mov dword [eax + 8], edx
mov eax, 0
xchg edx, eax
mov eax, dword [0x58380c]
mov dword [eax + 0xc], edx
mov eax, 1
mov dword [ebp - 0x18], 1
mov eax, dword [ebp + 0x10]
cmp eax, 0xc
je 0x529e97
cmp eax, 0xe
je 0x529eab
cmp eax, 0xf
je 0x529f76
cmp eax, 0xd
je 0x52a004
cmp eax, 0x19
je 0x52a1a5
cmp eax, 0x1a
je 0x52a1eb
cmp eax, 0xb
je 0x52a270
cmp eax, 0xa
je 0x52a270
cmp eax, 4
je 0x52a270
cmp eax, 3
je 0x52a270
cmp eax, 6
je 0x52a270
cmp eax, 5
je 0x52a270
cmp eax, 2
je 0x52a270
cmp eax, 1
je 0x52a270
cmp eax, 9
je 0x52a28e
cmp eax, 0x1b
je 0x52a2a6
mov eax, 0
jmp 0x52a2bb
mov eax, dword [ebp + 0xc]
xchg edx, eax
mov eax, dword [0x58380c]
mov dword [eax + 0xc], edx
jmp 0x52a2bb
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 0x529edf
mov eax, 0xffffffff
mov dword [0x583828], 0xffffffff
mov eax, 1
jmp 0x52a3ff
mov eax, dword [0x583b80]
cmp eax, 0
jne 0x529efe
push dword [ebp - 0x1c]
call fcn.00529cf4
cmp eax, 0
jne 0x529efe
xor eax, eax
jmp 0x529f01
xor eax, eax
inc eax
cmp eax, 0
je 0x529f0f
mov eax, 0xffffffff
jmp 0x529f21
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.00529b4e
mov dword [0x583828], eax
mov eax, dword [0x583828]
cmp eax, 0xffffffff
jne 0x529f55
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 0x529f55
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.00529bf1
mov edx, eax
mov eax, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x58380c]
mov dword [eax + 0xc], edx
jmp 0x52a2bb
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x1c]
call fcn.00529cf4
cmp eax, 0
je 0x529f9d
mov eax, 0xffffffff
jmp 0x529faf
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.00529b4e
mov dword [0x583828], eax
mov eax, dword [0x583828]
cmp eax, 0xffffffff
jne 0x529fe3
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 0x529fe3
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.00529bf1
mov edx, eax
mov eax, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x58380c]
mov dword [eax + 0xc], edx
jmp 0x52a2bb
xor eax, eax
push eax
call fcn.00529bf1
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 0x52a031
mov eax, dword [ebp - 0x20]
cmp eax, 0xdbff
jg 0x52a031
jmp 0x52a035
xor eax, eax
jmp 0x52a038
xor eax, eax
inc eax
cmp eax, 0
je 0x52a056
mov eax, dword [ebp - 0x20]
mov dword [0x583830], eax
mov eax, 1
jmp 0x52a3ff
mov eax, dword [ebp - 0x20]
cmp eax, 0xdc00
jl 0x52a06c
mov eax, dword [ebp - 0x20]
cmp eax, 0xdfff
jg 0x52a06c
jmp 0x52a070
xor eax, eax
jmp 0x52a073
xor eax, eax
inc eax
cmp eax, 0
je 0x52a0b8
mov eax, dword [0x583830]
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 [0x583830], eax
mov eax, dword [0x583830]
mov dword [ebp - 0x20], eax
mov eax, 0
mov dword [ebp - 0x1c], 0
jmp 0x52a0dc
xor eax, eax
inc eax
je 0x52a0ce
mov eax, 0
mov dword [0x583830], 0
jmp 0x52a0dc
call 0x52a0d3
pop eax
push eax
push 0x64
call fcn.00425703
mov eax, dword [ebp - 0x1c]
and eax, 0x10000000
cmp eax, 0
je 0x52a103
mov eax, 0x60
mov edx, dword [ebp - 0x20]
cmp eax, edx
jge 0x52a103
mov eax, dword [ebp - 0x20]
cmp eax, 0x7b
jge 0x52a103
jmp 0x52a107
xor eax, eax
jmp 0x52a10a
xor eax, eax
inc eax
cmp eax, 0
je 0x52a12b
mov eax, dword [ebp - 0x20]
add eax, 0x40
mov dword [ebp - 0x20], eax
mov eax, 0xffffffff
mov dword [0x583828], 0xffffffff
mov eax, dword [0x583b80]
cmp eax, 0
je 0x52a148
mov eax, dword [ebp - 0x1c]
and eax, 0x20000000
cmp eax, 0
je 0x52a148
jmp 0x52a14c
xor eax, eax
jmp 0x52a14f
xor eax, eax
inc eax
cmp eax, 0
jne 0x52a172
mov eax, dword [0x583828]
cmp eax, 0xa4
je 0x52a172
mov eax, dword [0x583828]
cmp eax, 0xa5
je 0x52a172
xor eax, eax
jmp 0x52a175
xor eax, eax
inc eax
cmp eax, 0
je 0x52a18b
mov eax, 0xffffffff
mov dword [0x583828], 0xffffffff
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x58380c]
mov dword [eax + 0xc], edx
jmp 0x52a2bb
push 0
push dword [ebp + 8]
call fcn.0053ca45
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
mov edx, dword [0x582f20]
cmp eax, edx
jne 0x52a1d0
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0053e838
mov eax, dword [ebp + 0xc]
inc eax
and eax, 0xffff
mov edx, eax
mov eax, dword [0x58380c]
mov dword [eax + 0xc], edx
jmp 0x52a2bb
push 0
push dword [ebp + 8]
call fcn.0053ca45
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 [0x582f64]
cmp eax, edx
jne 0x52a229
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov edx, eax
mov eax, dword [0x58380c]
mov dword [eax + 0xc], edx
jmp 0x52a26e
mov eax, 0
mov edx, dword [ebp + 0xc]
cmp eax, edx
sete al
xor ah, ah
cwde
xor al, 1
cmp eax, 0
je 0x52a26e
push 0xb
push dword [ebp + 8]
call fcn.0053ca45
push eax
call fcn.00525872
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
and eax, 0x100000
cmp eax, 0
jne 0x52a26e
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.0053e838
jmp 0x52a2bb
xor eax, eax
push eax
call fcn.00529bf1
mov edx, eax
mov eax, dword [ebp + 0xc]
or eax, edx
mov edx, eax
mov eax, dword [0x58380c]
mov dword [eax + 0xc], edx
jmp 0x52a2bb
xor eax, eax
inc eax
push eax
call fcn.00529bf1
mov edx, eax
mov eax, dword [0x58380c]
mov dword [eax + 0xc], edx
jmp 0x52a2bb
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov edx, eax
mov eax, dword [0x58380c]
mov dword [eax + 0xc], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
push dword [0x571904]
call fcn.00489e72
mov eax, dword [0x577eec]
mov dword [ebp - 0xc], eax
mov eax, dword [0x577f14]
mov dword [ebp - 0x2c], eax
mov dword [0x577f14], 0
mov eax, 0xffffffff
push dword [ebp - 4]
push dword [ebp - 8]
mov dword [ebp - 4], eax
call 0x52a2fb
pop eax
add eax, 0x4c
mov dword [ebp - 8], eax
push dword [0x58279c]
push dword [0x57eef8]
call fcn.00489cf6
push dword [0x58380c]
call fcn.00524a9f
xor eax, eax
push eax
call fcn.0043dd3e
call fcn.0043d83e
push dword [0x58278c]
call fcn.004d4a2e
call fcn.0048a2ac
call fcn.00489e0d
call fcn.0048a275
lea esp, [ebp - 0x34]
pop dword [ebp - 8]
pop dword [ebp - 4]
mov eax, dword [ebp - 0x2c]
mov dword [0x577f14], eax
call fcn.0048adfc
mov eax, dword [0x54902c]
mov eax, dword [eax + 0x24]
cmp eax, 0
je 0x52a380
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 0x52a3fc
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 [0x582fd0]
cmp eax, edx
jne 0x52a3c7
mov eax, 1
mov dword [ebp - 0x18], 1
jmp 0x52a3fc
mov eax, dword [ebp - 0x14]
mov edx, dword [0x582fec]
cmp eax, edx
jne 0x52a3e2
mov eax, 0
mov dword [ebp - 0x18], 0
jmp 0x52a3fc
xor eax, eax
inc eax
je 0x52a3ee
mov eax, 0
jmp 0x52a3fc
call 0x52a3f3
pop eax
push eax
push 0x64
call fcn.00425703
mov eax, dword [ebp - 0x18]
leave
ret 0xc