Function at 0x529d7d
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 0x529e7f
cmp eax, 0xe
je 0x529e93
cmp eax, 0xf
je 0x529f5e
cmp eax, 0xd
je 0x529fec
cmp eax, 0x19
je 0x52a18d
cmp eax, 0x1a
je 0x52a1d3
cmp eax, 0xb
je 0x52a258
cmp eax, 0xa
je 0x52a258
cmp eax, 4
je 0x52a258
cmp eax, 3
je 0x52a258
cmp eax, 6
je 0x52a258
cmp eax, 5
je 0x52a258
cmp eax, 2
je 0x52a258
cmp eax, 1
je 0x52a258
cmp eax, 9
je 0x52a276
cmp eax, 0x1b
je 0x52a28e
mov eax, 0
jmp 0x52a2a3
mov eax, dword [ebp + 0xc]
xchg edx, eax
mov eax, dword [0x583814]
mov dword [eax + 0xc], edx
jmp 0x52a2a3
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 0x529ec7
mov eax, 0xffffffff
mov dword [0x583830], 0xffffffff
mov eax, 1
jmp 0x52a3e7
mov eax, dword [0x583b88]
cmp eax, 0
jne 0x529ee6
push dword [ebp - 0x1c]
call fcn.00529cdc
cmp eax, 0
jne 0x529ee6
xor eax, eax
jmp 0x529ee9
xor eax, eax
inc eax
cmp eax, 0
je 0x529ef7
mov eax, 0xffffffff
jmp 0x529f09
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.00529b36
mov dword [0x583830], eax
mov eax, dword [0x583830]
cmp eax, 0xffffffff
jne 0x529f3d
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 0x529f3d
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.00529bd9
mov edx, eax
mov eax, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x583814]
mov dword [eax + 0xc], edx
jmp 0x52a2a3
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x1c]
call fcn.00529cdc
cmp eax, 0
je 0x529f85
mov eax, 0xffffffff
jmp 0x529f97
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.00529b36
mov dword [0x583830], eax
mov eax, dword [0x583830]
cmp eax, 0xffffffff
jne 0x529fcb
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 0x529fcb
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.00529bd9
mov edx, eax
mov eax, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x583814]
mov dword [eax + 0xc], edx
jmp 0x52a2a3
xor eax, eax
push eax
call fcn.00529bd9
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 0x52a019
mov eax, dword [ebp - 0x20]
cmp eax, 0xdbff
jg 0x52a019
jmp 0x52a01d
xor eax, eax
jmp 0x52a020
xor eax, eax
inc eax
cmp eax, 0
je 0x52a03e
mov eax, dword [ebp - 0x20]
mov dword [0x583838], eax
mov eax, 1
jmp 0x52a3e7
mov eax, dword [ebp - 0x20]
cmp eax, 0xdc00
jl 0x52a054
mov eax, dword [ebp - 0x20]
cmp eax, 0xdfff
jg 0x52a054
jmp 0x52a058
xor eax, eax
jmp 0x52a05b
xor eax, eax
inc eax
cmp eax, 0
je 0x52a0a0
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 0x52a0c4
xor eax, eax
inc eax
je 0x52a0b6
mov eax, 0
mov dword [0x583838], 0
jmp 0x52a0c4
call 0x52a0bb
pop eax
push eax
push 0x64
call fcn.00425703
mov eax, dword [ebp - 0x1c]
and eax, 0x10000000
cmp eax, 0
je 0x52a0eb
mov eax, 0x60
mov edx, dword [ebp - 0x20]
cmp eax, edx
jge 0x52a0eb
mov eax, dword [ebp - 0x20]
cmp eax, 0x7b
jge 0x52a0eb
jmp 0x52a0ef
xor eax, eax
jmp 0x52a0f2
xor eax, eax
inc eax
cmp eax, 0
je 0x52a113
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 0x52a130
mov eax, dword [ebp - 0x1c]
and eax, 0x20000000
cmp eax, 0
je 0x52a130
jmp 0x52a134
xor eax, eax
jmp 0x52a137
xor eax, eax
inc eax
cmp eax, 0
jne 0x52a15a
mov eax, dword [0x583830]
cmp eax, 0xa4
je 0x52a15a
mov eax, dword [0x583830]
cmp eax, 0xa5
je 0x52a15a
xor eax, eax
jmp 0x52a15d
xor eax, eax
inc eax
cmp eax, 0
je 0x52a173
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 0x52a2a3
push 0
push dword [ebp + 8]
call fcn.0053ca2d
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
mov edx, dword [0x582f28]
cmp eax, edx
jne 0x52a1b8
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0053e820
mov eax, dword [ebp + 0xc]
inc eax
and eax, 0xffff
mov edx, eax
mov eax, dword [0x583814]
mov dword [eax + 0xc], edx
jmp 0x52a2a3
push 0
push dword [ebp + 8]
call fcn.0053ca2d
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 0x52a211
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov edx, eax
mov eax, dword [0x583814]
mov dword [eax + 0xc], edx
jmp 0x52a256
mov eax, 0
mov edx, dword [ebp + 0xc]
cmp eax, edx
sete al
xor ah, ah
cwde
xor al, 1
cmp eax, 0
je 0x52a256
push 0xb
push dword [ebp + 8]
call fcn.0053ca2d
push eax
call fcn.0052585a
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
and eax, 0x100000
cmp eax, 0
jne 0x52a256
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.0053e820
jmp 0x52a2a3
xor eax, eax
push eax
call fcn.00529bd9
mov edx, eax
mov eax, dword [ebp + 0xc]
or eax, edx
mov edx, eax
mov eax, dword [0x583814]
mov dword [eax + 0xc], edx
jmp 0x52a2a3
xor eax, eax
inc eax
push eax
call fcn.00529bd9
mov edx, eax
mov eax, dword [0x583814]
mov dword [eax + 0xc], edx
jmp 0x52a2a3
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.00489e5a
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 0x52a2e3
pop eax
add eax, 0x4c
mov dword [ebp - 8], eax
push dword [0x5827a4]
push dword [0x57ef00]
call fcn.00489cde
push dword [0x583814]
call fcn.00524a87
xor eax, eax
push eax
call fcn.0043dd3e
call fcn.0043d83e
push dword [0x582794]
call fcn.004d4a16
call fcn.0048a294
call fcn.00489df5
call fcn.0048a25d
lea esp, [ebp - 0x34]
pop dword [ebp - 8]
pop dword [ebp - 4]
mov eax, dword [ebp - 0x2c]
mov dword [0x577f1c], eax
call fcn.0048ade4
mov eax, dword [0x54902c]
mov eax, dword [eax + 0x24]
cmp eax, 0
je 0x52a368
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 0x52a3e4
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 0x52a3af
mov eax, 1
mov dword [ebp - 0x18], 1
jmp 0x52a3e4
mov eax, dword [ebp - 0x14]
mov edx, dword [0x582ff4]
cmp eax, edx
jne 0x52a3ca
mov eax, 0
mov dword [ebp - 0x18], 0
jmp 0x52a3e4
xor eax, eax
inc eax
je 0x52a3d6
mov eax, 0
jmp 0x52a3e4
call 0x52a3db
pop eax
push eax
push 0x64
call fcn.00425703
mov eax, dword [ebp - 0x18]
leave
ret 0xc