Function at 0x52933d
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 [0x5812fc]
mov dword [eax + 4], edx
mov eax, dword [ebp + 8]
xchg edx, eax
mov eax, dword [0x5812fc]
mov dword [eax + 8], edx
mov eax, 0
xchg edx, eax
mov eax, dword [0x5812fc]
mov dword [eax + 0xc], edx
mov eax, 1
mov dword [ebp - 0x18], 1
mov eax, dword [ebp + 0x10]
cmp eax, 0xc
je 0x52943f
cmp eax, 0xe
je 0x529453
cmp eax, 0xf
je 0x52951e
cmp eax, 0xd
je 0x5295ac
cmp eax, 0x19
je 0x52974d
cmp eax, 0x1a
je 0x529793
cmp eax, 0xb
je 0x529818
cmp eax, 0xa
je 0x529818
cmp eax, 4
je 0x529818
cmp eax, 3
je 0x529818
cmp eax, 6
je 0x529818
cmp eax, 5
je 0x529818
cmp eax, 2
je 0x529818
cmp eax, 1
je 0x529818
cmp eax, 9
je 0x529829
cmp eax, 0x1b
je 0x529841
mov eax, 0
jmp 0x529856
mov eax, dword [ebp + 0xc]
xchg edx, eax
mov eax, dword [0x5812fc]
mov dword [eax + 0xc], edx
jmp 0x529856
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 0x529487
mov eax, 0xffffffff
mov dword [0x581318], 0xffffffff
mov eax, 1
jmp 0x52999a
mov eax, dword [0x581668]
cmp eax, 0
jne 0x5294a6
push dword [ebp - 0x1c]
call fcn.0052929c
cmp eax, 0
jne 0x5294a6
xor eax, eax
jmp 0x5294a9
xor eax, eax
inc eax
cmp eax, 0
je 0x5294b7
mov eax, 0xffffffff
jmp 0x5294c9
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.005290f6
mov dword [0x581318], eax
mov eax, dword [0x581318]
cmp eax, 0xffffffff
jne 0x5294fd
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 0x5294fd
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.00529199
mov edx, eax
mov eax, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x5812fc]
mov dword [eax + 0xc], edx
jmp 0x529856
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x1c]
call fcn.0052929c
cmp eax, 0
je 0x529545
mov eax, 0xffffffff
jmp 0x529557
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.005290f6
mov dword [0x581318], eax
mov eax, dword [0x581318]
cmp eax, 0xffffffff
jne 0x52958b
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 0x52958b
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.00529199
mov edx, eax
mov eax, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x5812fc]
mov dword [eax + 0xc], edx
jmp 0x529856
xor eax, eax
push eax
call fcn.00529199
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 0x5295d9
mov eax, dword [ebp - 0x20]
cmp eax, 0xdbff
jg 0x5295d9
jmp 0x5295dd
xor eax, eax
jmp 0x5295e0
xor eax, eax
inc eax
cmp eax, 0
je 0x5295fe
mov eax, dword [ebp - 0x20]
mov dword [0x581320], eax
mov eax, 1
jmp 0x52999a
mov eax, dword [ebp - 0x20]
cmp eax, 0xdc00
jl 0x529614
mov eax, dword [ebp - 0x20]
cmp eax, 0xdfff
jg 0x529614
jmp 0x529618
xor eax, eax
jmp 0x52961b
xor eax, eax
inc eax
cmp eax, 0
je 0x529660
mov eax, dword [0x581320]
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 [0x581320], eax
mov eax, dword [0x581320]
mov dword [ebp - 0x20], eax
mov eax, 0
mov dword [ebp - 0x1c], 0
jmp 0x529684
xor eax, eax
inc eax
je 0x529676
mov eax, 0
mov dword [0x581320], 0
jmp 0x529684
call 0x52967b
pop eax
push eax
push 0x64
call fcn.00425689
mov eax, dword [ebp - 0x1c]
and eax, 0x10000000
cmp eax, 0
je 0x5296ab
mov eax, 0x60
mov edx, dword [ebp - 0x20]
cmp eax, edx
jge 0x5296ab
mov eax, dword [ebp - 0x20]
cmp eax, 0x7b
jge 0x5296ab
jmp 0x5296af
xor eax, eax
jmp 0x5296b2
xor eax, eax
inc eax
cmp eax, 0
je 0x5296d3
mov eax, dword [ebp - 0x20]
add eax, 0x40
mov dword [ebp - 0x20], eax
mov eax, 0xffffffff
mov dword [0x581318], 0xffffffff
mov eax, dword [0x581668]
cmp eax, 0
je 0x5296f0
mov eax, dword [ebp - 0x1c]
and eax, 0x20000000
cmp eax, 0
je 0x5296f0
jmp 0x5296f4
xor eax, eax
jmp 0x5296f7
xor eax, eax
inc eax
cmp eax, 0
jne 0x52971a
mov eax, dword [0x581318]
cmp eax, 0xa4
je 0x52971a
mov eax, dword [0x581318]
cmp eax, 0xa5
je 0x52971a
xor eax, eax
jmp 0x52971d
xor eax, eax
inc eax
cmp eax, 0
je 0x529733
mov eax, 0xffffffff
mov dword [0x581318], 0xffffffff
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x5812fc]
mov dword [eax + 0xc], edx
jmp 0x529856
push 0
push dword [ebp + 8]
call fcn.0053beaa
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
mov edx, dword [0x580a20]
cmp eax, edx
jne 0x529778
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0053dc9d
mov eax, dword [ebp + 0xc]
inc eax
and eax, 0xffff
mov edx, eax
mov eax, dword [0x5812fc]
mov dword [eax + 0xc], edx
jmp 0x529856
push 0
push dword [ebp + 8]
call fcn.0053beaa
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
push eax
call fcn.0044e8d0
mov edx, eax
mov eax, dword [0x580a64]
cmp eax, edx
jne 0x5297d1
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov edx, eax
mov eax, dword [0x5812fc]
mov dword [eax + 0xc], edx
jmp 0x529816
mov eax, 0
mov edx, dword [ebp + 0xc]
cmp eax, edx
sete al
xor ah, ah
cwde
xor al, 1
cmp eax, 0
je 0x529816
push 0xb
push dword [ebp + 8]
call fcn.0053beaa
push eax
call fcn.00524e37
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
and eax, 0x100000
cmp eax, 0
jne 0x529816
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.0053dc9d
jmp 0x529856
mov eax, dword [ebp + 0xc]
xchg edx, eax
mov eax, dword [0x5812fc]
mov dword [eax + 0xc], edx
jmp 0x529856
xor eax, eax
inc eax
push eax
call fcn.00529199
mov edx, eax
mov eax, dword [0x5812fc]
mov dword [eax + 0xc], edx
jmp 0x529856
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov edx, eax
mov eax, dword [0x5812fc]
mov dword [eax + 0xc], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
push dword [0x5707c4]
call fcn.00489c21
mov eax, dword [0x576d54]
mov dword [ebp - 0xc], eax
mov eax, dword [0x576d7c]
mov dword [ebp - 0x2c], eax
mov dword [0x576d7c], 0
mov eax, 0xffffffff
push dword [ebp - 4]
push dword [ebp - 8]
mov dword [ebp - 4], eax
call 0x529896
pop eax
add eax, 0x4c
mov dword [ebp - 8], eax
push dword [0x58029c]
push dword [0x57ca00]
call fcn.00489aa5
push dword [0x5812fc]
call fcn.00524064
xor eax, eax
push eax
call fcn.0043da32
call fcn.0043d532
push dword [0x58028c]
call fcn.004d455f
call fcn.0048a05b
call fcn.00489bbc
call fcn.0048a024
lea esp, [ebp - 0x34]
pop dword [ebp - 8]
pop dword [ebp - 4]
mov eax, dword [ebp - 0x2c]
mov dword [0x576d7c], eax
call fcn.0048abab
mov eax, dword [0x54802c]
mov eax, dword [eax + 0x24]
cmp eax, 0
je 0x52991b
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 0x529997
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
push eax
call fcn.0044e8d0
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [0x580ad0]
cmp eax, edx
jne 0x529962
mov eax, 1
mov dword [ebp - 0x18], 1
jmp 0x529997
mov eax, dword [ebp - 0x14]
mov edx, dword [0x580aec]
cmp eax, edx
jne 0x52997d
mov eax, 0
mov dword [ebp - 0x18], 0
jmp 0x529997
xor eax, eax
inc eax
je 0x529989
mov eax, 0
jmp 0x529997
call 0x52998e
pop eax
push eax
push 0x64
call fcn.00425689
mov eax, dword [ebp - 0x18]
leave
ret 0xc