Function at 0x529a35
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 [0x5826ec]
mov dword [eax + 4], edx
mov eax, dword [ebp + 8]
xchg edx, eax
mov eax, dword [0x5826ec]
mov dword [eax + 8], edx
mov eax, 0
xchg edx, eax
mov eax, dword [0x5826ec]
mov dword [eax + 0xc], edx
mov eax, 1
mov dword [ebp - 0x18], 1
mov eax, dword [ebp + 0x10]
cmp eax, 0xc
je 0x529b37
cmp eax, 0xe
je 0x529b4b
cmp eax, 0xf
je 0x529c16
cmp eax, 0xd
je 0x529ca4
cmp eax, 0x19
je 0x529e45
cmp eax, 0x1a
je 0x529e8b
cmp eax, 0xb
je 0x529f10
cmp eax, 0xa
je 0x529f10
cmp eax, 4
je 0x529f10
cmp eax, 3
je 0x529f10
cmp eax, 6
je 0x529f10
cmp eax, 5
je 0x529f10
cmp eax, 2
je 0x529f10
cmp eax, 1
je 0x529f10
cmp eax, 9
je 0x529f21
cmp eax, 0x1b
je 0x529f39
mov eax, 0
jmp 0x529f4e
mov eax, dword [ebp + 0xc]
xchg edx, eax
mov eax, dword [0x5826ec]
mov dword [eax + 0xc], edx
jmp 0x529f4e
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 0x529b7f
mov eax, 0xffffffff
mov dword [0x582708], 0xffffffff
mov eax, 1
jmp 0x52a092
mov eax, dword [0x582a60]
cmp eax, 0
jne 0x529b9e
push dword [ebp - 0x1c]
call fcn.00529994
cmp eax, 0
jne 0x529b9e
xor eax, eax
jmp 0x529ba1
xor eax, eax
inc eax
cmp eax, 0
je 0x529baf
mov eax, 0xffffffff
jmp 0x529bc1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.005297ee
mov dword [0x582708], eax
mov eax, dword [0x582708]
cmp eax, 0xffffffff
jne 0x529bf5
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 0x529bf5
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.00529891
mov edx, eax
mov eax, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x5826ec]
mov dword [eax + 0xc], edx
jmp 0x529f4e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x1c]
call fcn.00529994
cmp eax, 0
je 0x529c3d
mov eax, 0xffffffff
jmp 0x529c4f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.005297ee
mov dword [0x582708], eax
mov eax, dword [0x582708]
cmp eax, 0xffffffff
jne 0x529c83
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 0x529c83
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.00529891
mov edx, eax
mov eax, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x5826ec]
mov dword [eax + 0xc], edx
jmp 0x529f4e
xor eax, eax
push eax
call fcn.00529891
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 0x529cd1
mov eax, dword [ebp - 0x20]
cmp eax, 0xdbff
jg 0x529cd1
jmp 0x529cd5
xor eax, eax
jmp 0x529cd8
xor eax, eax
inc eax
cmp eax, 0
je 0x529cf6
mov eax, dword [ebp - 0x20]
mov dword [0x582710], eax
mov eax, 1
jmp 0x52a092
mov eax, dword [ebp - 0x20]
cmp eax, 0xdc00
jl 0x529d0c
mov eax, dword [ebp - 0x20]
cmp eax, 0xdfff
jg 0x529d0c
jmp 0x529d10
xor eax, eax
jmp 0x529d13
xor eax, eax
inc eax
cmp eax, 0
je 0x529d58
mov eax, dword [0x582710]
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 [0x582710], eax
mov eax, dword [0x582710]
mov dword [ebp - 0x20], eax
mov eax, 0
mov dword [ebp - 0x1c], 0
jmp 0x529d7c
xor eax, eax
inc eax
je 0x529d6e
mov eax, 0
mov dword [0x582710], 0
jmp 0x529d7c
call 0x529d73
pop eax
push eax
push 0x64
call fcn.00425703
mov eax, dword [ebp - 0x1c]
and eax, 0x10000000
cmp eax, 0
je 0x529da3
mov eax, 0x60
mov edx, dword [ebp - 0x20]
cmp eax, edx
jge 0x529da3
mov eax, dword [ebp - 0x20]
cmp eax, 0x7b
jge 0x529da3
jmp 0x529da7
xor eax, eax
jmp 0x529daa
xor eax, eax
inc eax
cmp eax, 0
je 0x529dcb
mov eax, dword [ebp - 0x20]
add eax, 0x40
mov dword [ebp - 0x20], eax
mov eax, 0xffffffff
mov dword [0x582708], 0xffffffff
mov eax, dword [0x582a60]
cmp eax, 0
je 0x529de8
mov eax, dword [ebp - 0x1c]
and eax, 0x20000000
cmp eax, 0
je 0x529de8
jmp 0x529dec
xor eax, eax
jmp 0x529def
xor eax, eax
inc eax
cmp eax, 0
jne 0x529e12
mov eax, dword [0x582708]
cmp eax, 0xa4
je 0x529e12
mov eax, dword [0x582708]
cmp eax, 0xa5
je 0x529e12
xor eax, eax
jmp 0x529e15
xor eax, eax
inc eax
cmp eax, 0
je 0x529e2b
mov eax, 0xffffffff
mov dword [0x582708], 0xffffffff
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x5826ec]
mov dword [eax + 0xc], edx
jmp 0x529f4e
push 0
push dword [ebp + 8]
call fcn.0053c5e4
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
mov edx, dword [0x581e00]
cmp eax, edx
jne 0x529e70
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0053e3d7
mov eax, dword [ebp + 0xc]
inc eax
and eax, 0xffff
mov edx, eax
mov eax, dword [0x5826ec]
mov dword [eax + 0xc], edx
jmp 0x529f4e
push 0
push dword [ebp + 8]
call fcn.0053c5e4
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 [0x581e44]
cmp eax, edx
jne 0x529ec9
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov edx, eax
mov eax, dword [0x5826ec]
mov dword [eax + 0xc], edx
jmp 0x529f0e
mov eax, 0
mov edx, dword [ebp + 0xc]
cmp eax, edx
sete al
xor ah, ah
cwde
xor al, 1
cmp eax, 0
je 0x529f0e
push 0xb
push dword [ebp + 8]
call fcn.0053c5e4
push eax
call fcn.00525512
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
and eax, 0x100000
cmp eax, 0
jne 0x529f0e
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.0053e3d7
jmp 0x529f4e
mov eax, dword [ebp + 0xc]
xchg edx, eax
mov eax, dword [0x5826ec]
mov dword [eax + 0xc], edx
jmp 0x529f4e
xor eax, eax
inc eax
push eax
call fcn.00529891
mov edx, eax
mov eax, dword [0x5826ec]
mov dword [eax + 0xc], edx
jmp 0x529f4e
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov edx, eax
mov eax, dword [0x5826ec]
mov dword [eax + 0xc], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
push dword [0x57083c]
call fcn.00489f2d
mov eax, dword [0x576dcc]
mov dword [ebp - 0xc], eax
mov eax, dword [0x576df4]
mov dword [ebp - 0x2c], eax
mov dword [0x576df4], 0
mov eax, 0xffffffff
push dword [ebp - 4]
push dword [ebp - 8]
mov dword [ebp - 4], eax
call 0x529f8e
pop eax
add eax, 0x4c
mov dword [ebp - 8], eax
push dword [0x58167c]
push dword [0x57ddd8]
call fcn.00489db1
push dword [0x5826ec]
call fcn.0052473f
xor eax, eax
push eax
call fcn.0043dd3e
call fcn.0043d83e
push dword [0x58166c]
call fcn.004d4a02
call fcn.0048a367
call fcn.00489ec8
call fcn.0048a330
lea esp, [ebp - 0x34]
pop dword [ebp - 8]
pop dword [ebp - 4]
mov eax, dword [ebp - 0x2c]
mov dword [0x576df4], eax
call fcn.0048aeb7
mov eax, dword [0x54802c]
mov eax, dword [eax + 0x24]
cmp eax, 0
je 0x52a013
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 0x52a08f
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 [0x581eb0]
cmp eax, edx
jne 0x52a05a
mov eax, 1
mov dword [ebp - 0x18], 1
jmp 0x52a08f
mov eax, dword [ebp - 0x14]
mov edx, dword [0x581ecc]
cmp eax, edx
jne 0x52a075
mov eax, 0
mov dword [ebp - 0x18], 0
jmp 0x52a08f
xor eax, eax
inc eax
je 0x52a081
mov eax, 0
jmp 0x52a08f
call 0x52a086
pop eax
push eax
push 0x64
call fcn.00425703
mov eax, dword [ebp - 0x18]
leave
ret 0xc