Function at 0x526665
Capabilities:
Log keystrokes

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
sub esp, 0x20
mov eax, dword [ebp + 0x10]
xchg edx, eax
mov eax, dword [0x61f5a8]
mov dword [eax + 4], edx
mov eax, dword [ebp + 8]
xchg edx, eax
mov eax, dword [0x61f5a8]
mov dword [eax + 8], edx
mov eax, 0
xchg edx, eax
mov eax, dword [0x61f5a8]
mov dword [eax + 0xc], edx
mov eax, 1
mov dword [ebp - 0x18], 1
mov eax, dword [ebp + 0x10]
cmp eax, 0xc
je 0x526767
cmp eax, 0xe
je 0x52677b
cmp eax, 0xf
je 0x526846
cmp eax, 0xd
je 0x5268d4
cmp eax, 0x19
je 0x526a75
cmp eax, 0x1a
je 0x526abb
cmp eax, 0xb
je 0x526b1e
cmp eax, 0xa
je 0x526b1e
cmp eax, 4
je 0x526b1e
cmp eax, 3
je 0x526b1e
cmp eax, 6
je 0x526b1e
cmp eax, 5
je 0x526b1e
cmp eax, 2
je 0x526b1e
cmp eax, 1
je 0x526b1e
cmp eax, 9
je 0x526b2f
cmp eax, 0x1b
je 0x526b47
mov eax, 0
jmp 0x526b5c
mov eax, dword [ebp + 0xc]
xchg edx, eax
mov eax, dword [0x61f5a8]
mov dword [eax + 0xc], edx
jmp 0x526b5c
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 0x5267af
mov eax, 0xffffffff
mov dword [0x61f5c4], 0xffffffff
mov eax, 1
jmp 0x526ca0
mov eax, dword [0x61f8c8]
cmp eax, 0
jne 0x5267ce
push dword [ebp - 0x1c]
call fcn.005265c4
cmp eax, 0
jne 0x5267ce
xor eax, eax
jmp 0x5267d1
xor eax, eax
inc eax
cmp eax, 0
je 0x5267df
mov eax, 0xffffffff
jmp 0x5267f1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.0052641e
mov dword [0x61f5c4], eax
mov eax, dword [0x61f5c4]
cmp eax, 0xffffffff
jne 0x526825
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 0x526825
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.005264c1
mov edx, eax
mov eax, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x61f5a8]
mov dword [eax + 0xc], edx
jmp 0x526b5c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x1c]
call fcn.005265c4
cmp eax, 0
je 0x52686d
mov eax, 0xffffffff
jmp 0x52687f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.0052641e
mov dword [0x61f5c4], eax
mov eax, dword [0x61f5c4]
cmp eax, 0xffffffff
jne 0x5268b3
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 0x5268b3
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.005264c1
mov edx, eax
mov eax, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x61f5a8]
mov dword [eax + 0xc], edx
jmp 0x526b5c
xor eax, eax
push eax
call fcn.005264c1
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 0x526901
mov eax, dword [ebp - 0x20]
cmp eax, 0xdbff
jg 0x526901
jmp 0x526905
xor eax, eax
jmp 0x526908
xor eax, eax
inc eax
cmp eax, 0
je 0x526926
mov eax, dword [ebp - 0x20]
mov dword [0x61f5cc], eax
mov eax, 1
jmp 0x526ca0
mov eax, dword [ebp - 0x20]
cmp eax, 0xdc00
jl 0x52693c
mov eax, dword [ebp - 0x20]
cmp eax, 0xdfff
jg 0x52693c
jmp 0x526940
xor eax, eax
jmp 0x526943
xor eax, eax
inc eax
cmp eax, 0
je 0x526988
mov eax, dword [0x61f5cc]
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 [0x61f5cc], eax
mov eax, dword [0x61f5cc]
mov dword [ebp - 0x20], eax
mov eax, 0
mov dword [ebp - 0x1c], 0
jmp 0x5269ac
xor eax, eax
inc eax
je 0x52699e
mov eax, 0
mov dword [0x61f5cc], 0
jmp 0x5269ac
call 0x5269a3
pop eax
push eax
push 0x64
call fcn.004252dd
mov eax, dword [ebp - 0x1c]
and eax, 0x10000000
cmp eax, 0
je 0x5269d3
mov eax, 0x60
mov edx, dword [ebp - 0x20]
cmp eax, edx
jge 0x5269d3
mov eax, dword [ebp - 0x20]
cmp eax, 0x7b
jge 0x5269d3
jmp 0x5269d7
xor eax, eax
jmp 0x5269da
xor eax, eax
inc eax
cmp eax, 0
je 0x5269fb
mov eax, dword [ebp - 0x20]
add eax, 0x40
mov dword [ebp - 0x20], eax
mov eax, 0xffffffff
mov dword [0x61f5c4], 0xffffffff
mov eax, dword [0x61f8c8]
cmp eax, 0
je 0x526a18
mov eax, dword [ebp - 0x1c]
and eax, 0x20000000
cmp eax, 0
je 0x526a18
jmp 0x526a1c
xor eax, eax
jmp 0x526a1f
xor eax, eax
inc eax
cmp eax, 0
jne 0x526a42
mov eax, dword [0x61f5c4]
cmp eax, 0xa4
je 0x526a42
mov eax, dword [0x61f5c4]
cmp eax, 0xa5
je 0x526a42
xor eax, eax
jmp 0x526a45
xor eax, eax
inc eax
cmp eax, 0
je 0x526a5b
mov eax, 0xffffffff
mov dword [0x61f5c4], 0xffffffff
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x61f5a8]
mov dword [eax + 0xc], edx
jmp 0x526b5c
push 0
push dword [ebp + 8]
call fcn.00538ab9
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
mov edx, dword [0x61ecdc]
cmp eax, edx
jne 0x526aa0
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0053a71c
mov eax, dword [ebp + 0xc]
inc eax
and eax, 0xffff
mov edx, eax
mov eax, dword [0x61f5a8]
mov dword [eax + 0xc], edx
jmp 0x526b5c
push 0
push dword [ebp + 8]
call fcn.00538ab9
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
push eax
call fcn.0044e050
mov edx, eax
mov eax, dword [0x61ed20]
cmp eax, edx
jne 0x526af9
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov edx, eax
mov eax, dword [0x61f5a8]
mov dword [eax + 0xc], edx
jmp 0x526b1c
mov eax, 0
mov edx, dword [ebp + 0xc]
cmp eax, edx
sete al
xor ah, ah
cwde
xor al, 1
cmp eax, 0
je 0x526b1c
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.0053a71c
jmp 0x526b5c
mov eax, dword [ebp + 0xc]
xchg edx, eax
mov eax, dword [0x61f5a8]
mov dword [eax + 0xc], edx
jmp 0x526b5c
xor eax, eax
inc eax
push eax
call fcn.005264c1
mov edx, eax
mov eax, dword [0x61f5a8]
mov dword [eax + 0xc], edx
jmp 0x526b5c
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov edx, eax
mov eax, dword [0x61f5a8]
mov dword [eax + 0xc], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
push dword [0x60ecdc]
call fcn.00489675
mov eax, dword [0x61526c]
mov dword [ebp - 0xc], eax
mov eax, dword [0x615294]
mov dword [ebp - 0x28], eax
mov dword [0x615294], 0
mov eax, 0xffffffff
push dword [ebp - 4]
push dword [ebp - 8]
mov dword [ebp - 4], eax
call 0x526b9c
pop eax
add eax, 0x4c
mov dword [ebp - 8], eax
push dword [0x61e560]
push dword [0x61ad88]
call fcn.004894f9
push dword [0x61f5a8]
call fcn.005214b8
xor eax, eax
push eax
call fcn.0043d220
call fcn.0043cd20
push dword [0x61e550]
call fcn.004d358d
call fcn.00489aaf
call fcn.00489610
call fcn.00489a78
lea esp, [ebp - 0x30]
pop dword [ebp - 8]
pop dword [ebp - 4]
mov eax, dword [ebp - 0x28]
mov dword [0x615294], eax
call fcn.0048a5ff
mov eax, dword [0x54402c]
mov eax, dword [eax + 0x24]
cmp eax, 0
je 0x526c21
mov eax, 0
xchg edx, eax
mov eax, dword [0x54402c]
mov dword [eax + 0x24], edx
mov eax, dword [ebp - 0x24]
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 0x526c9d
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
push eax
call fcn.0044e050
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [0x61ed8c]
cmp eax, edx
jne 0x526c68
mov eax, 1
mov dword [ebp - 0x18], 1
jmp 0x526c9d
mov eax, dword [ebp - 0x14]
mov edx, dword [0x61eda8]
cmp eax, edx
jne 0x526c83
mov eax, 0
mov dword [ebp - 0x18], 0
jmp 0x526c9d
xor eax, eax
inc eax
je 0x526c8f
mov eax, 0
jmp 0x526c9d
call 0x526c94
pop eax
push eax
push 0x64
call fcn.004252dd
mov eax, dword [ebp - 0x18]
leave
ret 0xc