Function at 0x528d4c
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 [0x580234]
mov dword [eax + 4], edx
mov eax, dword [ebp + 8]
xchg edx, eax
mov eax, dword [0x580234]
mov dword [eax + 8], edx
mov eax, 0
xchg edx, eax
mov eax, dword [0x580234]
mov dword [eax + 0xc], edx
mov eax, 1
mov dword [ebp - 0x18], 1
mov eax, dword [ebp + 0x10]
cmp eax, 0xc
je 0x528e4e
cmp eax, 0xe
je 0x528e62
cmp eax, 0xf
je 0x528f2d
cmp eax, 0xd
je 0x528fbb
cmp eax, 0x19
je 0x52915c
cmp eax, 0x1a
je 0x5291a2
cmp eax, 0xb
je 0x529205
cmp eax, 0xa
je 0x529205
cmp eax, 4
je 0x529205
cmp eax, 3
je 0x529205
cmp eax, 6
je 0x529205
cmp eax, 5
je 0x529205
cmp eax, 2
je 0x529205
cmp eax, 1
je 0x529205
cmp eax, 9
je 0x529216
cmp eax, 0x1b
je 0x52922e
mov eax, 0
jmp 0x529243
mov eax, dword [ebp + 0xc]
xchg edx, eax
mov eax, dword [0x580234]
mov dword [eax + 0xc], edx
jmp 0x529243
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 0x528e96
mov eax, 0xffffffff
mov dword [0x580250], 0xffffffff
mov eax, 1
jmp 0x529387
mov eax, dword [0x580560]
cmp eax, 0
jne 0x528eb5
push dword [ebp - 0x1c]
call fcn.00528cab
cmp eax, 0
jne 0x528eb5
xor eax, eax
jmp 0x528eb8
xor eax, eax
inc eax
cmp eax, 0
je 0x528ec6
mov eax, 0xffffffff
jmp 0x528ed8
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.00528b05
mov dword [0x580250], eax
mov eax, dword [0x580250]
cmp eax, 0xffffffff
jne 0x528f0c
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 0x528f0c
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.00528ba8
mov edx, eax
mov eax, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x580234]
mov dword [eax + 0xc], edx
jmp 0x529243
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x1c]
call fcn.00528cab
cmp eax, 0
je 0x528f54
mov eax, 0xffffffff
jmp 0x528f66
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.00528b05
mov dword [0x580250], eax
mov eax, dword [0x580250]
cmp eax, 0xffffffff
jne 0x528f9a
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 0x528f9a
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.00528ba8
mov edx, eax
mov eax, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x580234]
mov dword [eax + 0xc], edx
jmp 0x529243
xor eax, eax
push eax
call fcn.00528ba8
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 0x528fe8
mov eax, dword [ebp - 0x20]
cmp eax, 0xdbff
jg 0x528fe8
jmp 0x528fec
xor eax, eax
jmp 0x528fef
xor eax, eax
inc eax
cmp eax, 0
je 0x52900d
mov eax, dword [ebp - 0x20]
mov dword [0x580258], eax
mov eax, 1
jmp 0x529387
mov eax, dword [ebp - 0x20]
cmp eax, 0xdc00
jl 0x529023
mov eax, dword [ebp - 0x20]
cmp eax, 0xdfff
jg 0x529023
jmp 0x529027
xor eax, eax
jmp 0x52902a
xor eax, eax
inc eax
cmp eax, 0
je 0x52906f
mov eax, dword [0x580258]
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 [0x580258], eax
mov eax, dword [0x580258]
mov dword [ebp - 0x20], eax
mov eax, 0
mov dword [ebp - 0x1c], 0
jmp 0x529093
xor eax, eax
inc eax
je 0x529085
mov eax, 0
mov dword [0x580258], 0
jmp 0x529093
call 0x52908a
pop eax
push eax
push 0x64
call fcn.004255d6
mov eax, dword [ebp - 0x1c]
and eax, 0x10000000
cmp eax, 0
je 0x5290ba
mov eax, 0x60
mov edx, dword [ebp - 0x20]
cmp eax, edx
jge 0x5290ba
mov eax, dword [ebp - 0x20]
cmp eax, 0x7b
jge 0x5290ba
jmp 0x5290be
xor eax, eax
jmp 0x5290c1
xor eax, eax
inc eax
cmp eax, 0
je 0x5290e2
mov eax, dword [ebp - 0x20]
add eax, 0x40
mov dword [ebp - 0x20], eax
mov eax, 0xffffffff
mov dword [0x580250], 0xffffffff
mov eax, dword [0x580560]
cmp eax, 0
je 0x5290ff
mov eax, dword [ebp - 0x1c]
and eax, 0x20000000
cmp eax, 0
je 0x5290ff
jmp 0x529103
xor eax, eax
jmp 0x529106
xor eax, eax
inc eax
cmp eax, 0
jne 0x529129
mov eax, dword [0x580250]
cmp eax, 0xa4
je 0x529129
mov eax, dword [0x580250]
cmp eax, 0xa5
je 0x529129
xor eax, eax
jmp 0x52912c
xor eax, eax
inc eax
cmp eax, 0
je 0x529142
mov eax, 0xffffffff
mov dword [0x580250], 0xffffffff
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x580234]
mov dword [eax + 0xc], edx
jmp 0x529243
push 0
push dword [ebp + 8]
call fcn.0053b311
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
mov edx, dword [0x57f964]
cmp eax, edx
jne 0x529187
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0053cf5c
mov eax, dword [ebp + 0xc]
inc eax
and eax, 0xffff
mov edx, eax
mov eax, dword [0x580234]
mov dword [eax + 0xc], edx
jmp 0x529243
push 0
push dword [ebp + 8]
call fcn.0053b311
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
push eax
call fcn.0044e3f8
mov edx, eax
mov eax, dword [0x57f9a8]
cmp eax, edx
jne 0x5291e0
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov edx, eax
mov eax, dword [0x580234]
mov dword [eax + 0xc], edx
jmp 0x529203
mov eax, 0
mov edx, dword [ebp + 0xc]
cmp eax, edx
sete al
xor ah, ah
cwde
xor al, 1
cmp eax, 0
je 0x529203
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.0053cf5c
jmp 0x529243
mov eax, dword [ebp + 0xc]
xchg edx, eax
mov eax, dword [0x580234]
mov dword [eax + 0xc], edx
jmp 0x529243
xor eax, eax
inc eax
push eax
call fcn.00528ba8
mov edx, eax
mov eax, dword [0x580234]
mov dword [eax + 0xc], edx
jmp 0x529243
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov edx, eax
mov eax, dword [0x580234]
mov dword [eax + 0xc], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
push dword [0x56f734]
call fcn.00489745
mov eax, dword [0x575cc4]
mov dword [ebp - 0xc], eax
mov eax, dword [0x575cec]
mov dword [ebp - 0x28], eax
mov dword [0x575cec], 0
mov eax, 0xffffffff
push dword [ebp - 4]
push dword [ebp - 8]
mov dword [ebp - 4], eax
call 0x529283
pop eax
add eax, 0x4c
mov dword [ebp - 8], eax
push dword [0x57f1e0]
push dword [0x57b970]
call fcn.004895c9
push dword [0x580234]
call fcn.00523a90
xor eax, eax
push eax
call fcn.0043d55a
call fcn.0043d05a
push dword [0x57f1d0]
call fcn.004d4083
call fcn.00489b7f
call fcn.004896e0
call fcn.00489b48
lea esp, [ebp - 0x30]
pop dword [ebp - 8]
pop dword [ebp - 4]
mov eax, dword [ebp - 0x28]
mov dword [0x575cec], eax
call fcn.0048a6cf
mov eax, dword [0x54702c]
mov eax, dword [eax + 0x24]
cmp eax, 0
je 0x529308
mov eax, 0
xchg edx, eax
mov eax, dword [0x54702c]
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 0x529384
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
push eax
call fcn.0044e3f8
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [0x57fa14]
cmp eax, edx
jne 0x52934f
mov eax, 1
mov dword [ebp - 0x18], 1
jmp 0x529384
mov eax, dword [ebp - 0x14]
mov edx, dword [0x57fa30]
cmp eax, edx
jne 0x52936a
mov eax, 0
mov dword [ebp - 0x18], 0
jmp 0x529384
xor eax, eax
inc eax
je 0x529376
mov eax, 0
jmp 0x529384
call 0x52937b
pop eax
push eax
push 0x64
call fcn.004255d6
mov eax, dword [ebp - 0x18]
leave
ret 0xc