Function at 0x529c2f
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 [0x5837e4]
mov dword [eax + 4], edx
mov eax, dword [ebp + 8]
xchg edx, eax
mov eax, dword [0x5837e4]
mov dword [eax + 8], edx
mov eax, 0
xchg edx, eax
mov eax, dword [0x5837e4]
mov dword [eax + 0xc], edx
mov eax, 1
mov dword [ebp - 0x18], 1
mov eax, dword [ebp + 0x10]
cmp eax, 0xc
je 0x529d31
cmp eax, 0xe
je 0x529d45
cmp eax, 0xf
je 0x529e10
cmp eax, 0xd
je 0x529e9e
cmp eax, 0x19
je 0x52a03f
cmp eax, 0x1a
je 0x52a085
cmp eax, 0xb
je 0x52a10a
cmp eax, 0xa
je 0x52a10a
cmp eax, 4
je 0x52a10a
cmp eax, 3
je 0x52a10a
cmp eax, 6
je 0x52a10a
cmp eax, 5
je 0x52a10a
cmp eax, 2
je 0x52a10a
cmp eax, 1
je 0x52a10a
cmp eax, 9
je 0x52a128
cmp eax, 0x1b
je 0x52a140
mov eax, 0
jmp 0x52a155
mov eax, dword [ebp + 0xc]
xchg edx, eax
mov eax, dword [0x5837e4]
mov dword [eax + 0xc], edx
jmp 0x52a155
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 0x529d79
mov eax, 0xffffffff
mov dword [0x583800], 0xffffffff
mov eax, 1
jmp 0x52a299
mov eax, dword [0x583b58]
cmp eax, 0
jne 0x529d98
push dword [ebp - 0x1c]
call fcn.00529b8e
cmp eax, 0
jne 0x529d98
xor eax, eax
jmp 0x529d9b
xor eax, eax
inc eax
cmp eax, 0
je 0x529da9
mov eax, 0xffffffff
jmp 0x529dbb
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.005299e8
mov dword [0x583800], eax
mov eax, dword [0x583800]
cmp eax, 0xffffffff
jne 0x529def
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 0x529def
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.00529a8b
mov edx, eax
mov eax, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x5837e4]
mov dword [eax + 0xc], edx
jmp 0x52a155
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x1c]
call fcn.00529b8e
cmp eax, 0
je 0x529e37
mov eax, 0xffffffff
jmp 0x529e49
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.005299e8
mov dword [0x583800], eax
mov eax, dword [0x583800]
cmp eax, 0xffffffff
jne 0x529e7d
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 0x529e7d
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.00529a8b
mov edx, eax
mov eax, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x5837e4]
mov dword [eax + 0xc], edx
jmp 0x52a155
xor eax, eax
push eax
call fcn.00529a8b
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 0x529ecb
mov eax, dword [ebp - 0x20]
cmp eax, 0xdbff
jg 0x529ecb
jmp 0x529ecf
xor eax, eax
jmp 0x529ed2
xor eax, eax
inc eax
cmp eax, 0
je 0x529ef0
mov eax, dword [ebp - 0x20]
mov dword [0x583808], eax
mov eax, 1
jmp 0x52a299
mov eax, dword [ebp - 0x20]
cmp eax, 0xdc00
jl 0x529f06
mov eax, dword [ebp - 0x20]
cmp eax, 0xdfff
jg 0x529f06
jmp 0x529f0a
xor eax, eax
jmp 0x529f0d
xor eax, eax
inc eax
cmp eax, 0
je 0x529f52
mov eax, dword [0x583808]
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 [0x583808], eax
mov eax, dword [0x583808]
mov dword [ebp - 0x20], eax
mov eax, 0
mov dword [ebp - 0x1c], 0
jmp 0x529f76
xor eax, eax
inc eax
je 0x529f68
mov eax, 0
mov dword [0x583808], 0
jmp 0x529f76
call 0x529f6d
pop eax
push eax
push 0x64
call fcn.00425703
mov eax, dword [ebp - 0x1c]
and eax, 0x10000000
cmp eax, 0
je 0x529f9d
mov eax, 0x60
mov edx, dword [ebp - 0x20]
cmp eax, edx
jge 0x529f9d
mov eax, dword [ebp - 0x20]
cmp eax, 0x7b
jge 0x529f9d
jmp 0x529fa1
xor eax, eax
jmp 0x529fa4
xor eax, eax
inc eax
cmp eax, 0
je 0x529fc5
mov eax, dword [ebp - 0x20]
add eax, 0x40
mov dword [ebp - 0x20], eax
mov eax, 0xffffffff
mov dword [0x583800], 0xffffffff
mov eax, dword [0x583b58]
cmp eax, 0
je 0x529fe2
mov eax, dword [ebp - 0x1c]
and eax, 0x20000000
cmp eax, 0
je 0x529fe2
jmp 0x529fe6
xor eax, eax
jmp 0x529fe9
xor eax, eax
inc eax
cmp eax, 0
jne 0x52a00c
mov eax, dword [0x583800]
cmp eax, 0xa4
je 0x52a00c
mov eax, dword [0x583800]
cmp eax, 0xa5
je 0x52a00c
xor eax, eax
jmp 0x52a00f
xor eax, eax
inc eax
cmp eax, 0
je 0x52a025
mov eax, 0xffffffff
mov dword [0x583800], 0xffffffff
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x5837e4]
mov dword [eax + 0xc], edx
jmp 0x52a155
push 0
push dword [ebp + 8]
call fcn.0053c8af
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
mov edx, dword [0x582ef8]
cmp eax, edx
jne 0x52a06a
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0053e6a2
mov eax, dword [ebp + 0xc]
inc eax
and eax, 0xffff
mov edx, eax
mov eax, dword [0x5837e4]
mov dword [eax + 0xc], edx
jmp 0x52a155
push 0
push dword [ebp + 8]
call fcn.0053c8af
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 [0x582f3c]
cmp eax, edx
jne 0x52a0c3
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov edx, eax
mov eax, dword [0x5837e4]
mov dword [eax + 0xc], edx
jmp 0x52a108
mov eax, 0
mov edx, dword [ebp + 0xc]
cmp eax, edx
sete al
xor ah, ah
cwde
xor al, 1
cmp eax, 0
je 0x52a108
push 0xb
push dword [ebp + 8]
call fcn.0053c8af
push eax
call fcn.0052570c
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
and eax, 0x100000
cmp eax, 0
jne 0x52a108
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.0053e6a2
jmp 0x52a155
xor eax, eax
push eax
call fcn.00529a8b
mov edx, eax
mov eax, dword [ebp + 0xc]
or eax, edx
mov edx, eax
mov eax, dword [0x5837e4]
mov dword [eax + 0xc], edx
jmp 0x52a155
xor eax, eax
inc eax
push eax
call fcn.00529a8b
mov edx, eax
mov eax, dword [0x5837e4]
mov dword [eax + 0xc], edx
jmp 0x52a155
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov edx, eax
mov eax, dword [0x5837e4]
mov dword [eax + 0xc], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
push dword [0x5718dc]
call fcn.00489e39
mov eax, dword [0x577ec4]
mov dword [ebp - 0xc], eax
mov eax, dword [0x577eec]
mov dword [ebp - 0x2c], eax
mov dword [0x577eec], 0
mov eax, 0xffffffff
push dword [ebp - 4]
push dword [ebp - 8]
mov dword [ebp - 4], eax
call 0x52a195
pop eax
add eax, 0x4c
mov dword [ebp - 8], eax
push dword [0x582774]
push dword [0x57eed0]
call fcn.00489cbd
push dword [0x5837e4]
call fcn.00524939
xor eax, eax
push eax
call fcn.0043dd3e
call fcn.0043d83e
push dword [0x582764]
call fcn.004d4928
call fcn.0048a273
call fcn.00489dd4
call fcn.0048a23c
lea esp, [ebp - 0x34]
pop dword [ebp - 8]
pop dword [ebp - 4]
mov eax, dword [ebp - 0x2c]
mov dword [0x577eec], eax
call fcn.0048adc3
mov eax, dword [0x54902c]
mov eax, dword [eax + 0x24]
cmp eax, 0
je 0x52a21a
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 0x52a296
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 [0x582fa8]
cmp eax, edx
jne 0x52a261
mov eax, 1
mov dword [ebp - 0x18], 1
jmp 0x52a296
mov eax, dword [ebp - 0x14]
mov edx, dword [0x582fc4]
cmp eax, edx
jne 0x52a27c
mov eax, 0
mov dword [ebp - 0x18], 0
jmp 0x52a296
xor eax, eax
inc eax
je 0x52a288
mov eax, 0
jmp 0x52a296
call 0x52a28d
pop eax
push eax
push 0x64
call fcn.00425703
mov eax, dword [ebp - 0x18]
leave
ret 0xc