Function at 0x5299c7
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 [0x5826fc]
mov dword [eax + 4], edx
mov eax, dword [ebp + 8]
xchg edx, eax
mov eax, dword [0x5826fc]
mov dword [eax + 8], edx
mov eax, 0
xchg edx, eax
mov eax, dword [0x5826fc]
mov dword [eax + 0xc], edx
mov eax, 1
mov dword [ebp - 0x18], 1
mov eax, dword [ebp + 0x10]
cmp eax, 0xc
je 0x529ac9
cmp eax, 0xe
je 0x529add
cmp eax, 0xf
je 0x529ba8
cmp eax, 0xd
je 0x529c36
cmp eax, 0x19
je 0x529dd7
cmp eax, 0x1a
je 0x529e1d
cmp eax, 0xb
je 0x529ea2
cmp eax, 0xa
je 0x529ea2
cmp eax, 4
je 0x529ea2
cmp eax, 3
je 0x529ea2
cmp eax, 6
je 0x529ea2
cmp eax, 5
je 0x529ea2
cmp eax, 2
je 0x529ea2
cmp eax, 1
je 0x529ea2
cmp eax, 9
je 0x529ec0
cmp eax, 0x1b
je 0x529ed8
mov eax, 0
jmp 0x529eed
mov eax, dword [ebp + 0xc]
xchg edx, eax
mov eax, dword [0x5826fc]
mov dword [eax + 0xc], edx
jmp 0x529eed
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 0x529b11
mov eax, 0xffffffff
mov dword [0x582718], 0xffffffff
mov eax, 1
jmp 0x52a031
mov eax, dword [0x582a70]
cmp eax, 0
jne 0x529b30
push dword [ebp - 0x1c]
call fcn.00529926
cmp eax, 0
jne 0x529b30
xor eax, eax
jmp 0x529b33
xor eax, eax
inc eax
cmp eax, 0
je 0x529b41
mov eax, 0xffffffff
jmp 0x529b53
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.00529780
mov dword [0x582718], eax
mov eax, dword [0x582718]
cmp eax, 0xffffffff
jne 0x529b87
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 0x529b87
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.00529823
mov edx, eax
mov eax, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x5826fc]
mov dword [eax + 0xc], edx
jmp 0x529eed
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x1c]
call fcn.00529926
cmp eax, 0
je 0x529bcf
mov eax, 0xffffffff
jmp 0x529be1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.00529780
mov dword [0x582718], eax
mov eax, dword [0x582718]
cmp eax, 0xffffffff
jne 0x529c15
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 0x529c15
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.00529823
mov edx, eax
mov eax, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x5826fc]
mov dword [eax + 0xc], edx
jmp 0x529eed
xor eax, eax
push eax
call fcn.00529823
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 0x529c63
mov eax, dword [ebp - 0x20]
cmp eax, 0xdbff
jg 0x529c63
jmp 0x529c67
xor eax, eax
jmp 0x529c6a
xor eax, eax
inc eax
cmp eax, 0
je 0x529c88
mov eax, dword [ebp - 0x20]
mov dword [0x582720], eax
mov eax, 1
jmp 0x52a031
mov eax, dword [ebp - 0x20]
cmp eax, 0xdc00
jl 0x529c9e
mov eax, dword [ebp - 0x20]
cmp eax, 0xdfff
jg 0x529c9e
jmp 0x529ca2
xor eax, eax
jmp 0x529ca5
xor eax, eax
inc eax
cmp eax, 0
je 0x529cea
mov eax, dword [0x582720]
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 [0x582720], eax
mov eax, dword [0x582720]
mov dword [ebp - 0x20], eax
mov eax, 0
mov dword [ebp - 0x1c], 0
jmp 0x529d0e
xor eax, eax
inc eax
je 0x529d00
mov eax, 0
mov dword [0x582720], 0
jmp 0x529d0e
call 0x529d05
pop eax
push eax
push 0x64
call fcn.00425703
mov eax, dword [ebp - 0x1c]
and eax, 0x10000000
cmp eax, 0
je 0x529d35
mov eax, 0x60
mov edx, dword [ebp - 0x20]
cmp eax, edx
jge 0x529d35
mov eax, dword [ebp - 0x20]
cmp eax, 0x7b
jge 0x529d35
jmp 0x529d39
xor eax, eax
jmp 0x529d3c
xor eax, eax
inc eax
cmp eax, 0
je 0x529d5d
mov eax, dword [ebp - 0x20]
add eax, 0x40
mov dword [ebp - 0x20], eax
mov eax, 0xffffffff
mov dword [0x582718], 0xffffffff
mov eax, dword [0x582a70]
cmp eax, 0
je 0x529d7a
mov eax, dword [ebp - 0x1c]
and eax, 0x20000000
cmp eax, 0
je 0x529d7a
jmp 0x529d7e
xor eax, eax
jmp 0x529d81
xor eax, eax
inc eax
cmp eax, 0
jne 0x529da4
mov eax, dword [0x582718]
cmp eax, 0xa4
je 0x529da4
mov eax, dword [0x582718]
cmp eax, 0xa5
je 0x529da4
xor eax, eax
jmp 0x529da7
xor eax, eax
inc eax
cmp eax, 0
je 0x529dbd
mov eax, 0xffffffff
mov dword [0x582718], 0xffffffff
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x5826fc]
mov dword [eax + 0xc], edx
jmp 0x529eed
push 0
push dword [ebp + 8]
call fcn.0053c647
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
mov edx, dword [0x581e10]
cmp eax, edx
jne 0x529e02
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0053e43a
mov eax, dword [ebp + 0xc]
inc eax
and eax, 0xffff
mov edx, eax
mov eax, dword [0x5826fc]
mov dword [eax + 0xc], edx
jmp 0x529eed
push 0
push dword [ebp + 8]
call fcn.0053c647
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 [0x581e54]
cmp eax, edx
jne 0x529e5b
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov edx, eax
mov eax, dword [0x5826fc]
mov dword [eax + 0xc], edx
jmp 0x529ea0
mov eax, 0
mov edx, dword [ebp + 0xc]
cmp eax, edx
sete al
xor ah, ah
cwde
xor al, 1
cmp eax, 0
je 0x529ea0
push 0xb
push dword [ebp + 8]
call fcn.0053c647
push eax
call fcn.005254a4
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
and eax, 0x100000
cmp eax, 0
jne 0x529ea0
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.0053e43a
jmp 0x529eed
xor eax, eax
push eax
call fcn.00529823
mov edx, eax
mov eax, dword [ebp + 0xc]
or eax, edx
mov edx, eax
mov eax, dword [0x5826fc]
mov dword [eax + 0xc], edx
jmp 0x529eed
xor eax, eax
inc eax
push eax
call fcn.00529823
mov edx, eax
mov eax, dword [0x5826fc]
mov dword [eax + 0xc], edx
jmp 0x529eed
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov edx, eax
mov eax, dword [0x5826fc]
mov dword [eax + 0xc], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
push dword [0x57084c]
call fcn.00489f9e
mov eax, dword [0x576ddc]
mov dword [ebp - 0xc], eax
mov eax, dword [0x576e04]
mov dword [ebp - 0x2c], eax
mov dword [0x576e04], 0
mov eax, 0xffffffff
push dword [ebp - 4]
push dword [ebp - 8]
mov dword [ebp - 4], eax
call 0x529f2d
pop eax
add eax, 0x4c
mov dword [ebp - 8], eax
push dword [0x58168c]
push dword [0x57dde8]
call fcn.00489e22
push dword [0x5826fc]
call fcn.005246d1
xor eax, eax
push eax
call fcn.0043dd3e
call fcn.0043d83e
push dword [0x58167c]
call fcn.004d4a8d
call fcn.0048a3d8
call fcn.00489f39
call fcn.0048a3a1
lea esp, [ebp - 0x34]
pop dword [ebp - 8]
pop dword [ebp - 4]
mov eax, dword [ebp - 0x2c]
mov dword [0x576e04], eax
call fcn.0048af28
mov eax, dword [0x54802c]
mov eax, dword [eax + 0x24]
cmp eax, 0
je 0x529fb2
mov eax, 0
xchg edx, eax
mov eax, dword [0x54802c]
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 0x52a02e
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 [0x581ec0]
cmp eax, edx
jne 0x529ff9
mov eax, 1
mov dword [ebp - 0x18], 1
jmp 0x52a02e
mov eax, dword [ebp - 0x14]
mov edx, dword [0x581edc]
cmp eax, edx
jne 0x52a014
mov eax, 0
mov dword [ebp - 0x18], 0
jmp 0x52a02e
xor eax, eax
inc eax
je 0x52a020
mov eax, 0
jmp 0x52a02e
call 0x52a025
pop eax
push eax
push 0x64
call fcn.00425703
mov eax, dword [ebp - 0x18]
leave
ret 0xc