Function at 0x52a33b
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 [0x583928]
mov dword [eax + 4], edx
mov eax, dword [ebp + 8]
xchg edx, eax
mov eax, dword [0x583928]
mov dword [eax + 8], edx
mov eax, 0
xchg edx, eax
mov eax, dword [0x583928]
mov dword [eax + 0xc], edx
mov eax, 1
mov dword [ebp - 0x18], 1
mov eax, dword [ebp + 0x10]
cmp eax, 0xc
je 0x52a43d
cmp eax, 0xe
je 0x52a451
cmp eax, 0xf
je 0x52a51c
cmp eax, 0xd
je 0x52a5aa
cmp eax, 0x19
je 0x52a74b
cmp eax, 0x1a
je 0x52a791
cmp eax, 0xb
je 0x52a816
cmp eax, 0xa
je 0x52a816
cmp eax, 4
je 0x52a816
cmp eax, 3
je 0x52a816
cmp eax, 6
je 0x52a816
cmp eax, 5
je 0x52a816
cmp eax, 2
je 0x52a816
cmp eax, 1
je 0x52a816
cmp eax, 9
je 0x52a834
cmp eax, 0x1b
je 0x52a84c
mov eax, 0
jmp 0x52a861
mov eax, dword [ebp + 0xc]
xchg edx, eax
mov eax, dword [0x583928]
mov dword [eax + 0xc], edx
jmp 0x52a861
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 0x52a485
mov eax, 0xffffffff
mov dword [0x583944], 0xffffffff
mov eax, 1
jmp 0x52a9a5
mov eax, dword [0x583c98]
cmp eax, 0
jne 0x52a4a4
push dword [ebp - 0x1c]
call fcn.0052a29a
cmp eax, 0
jne 0x52a4a4
xor eax, eax
jmp 0x52a4a7
xor eax, eax
inc eax
cmp eax, 0
je 0x52a4b5
mov eax, 0xffffffff
jmp 0x52a4c7
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.0052a0f4
mov dword [0x583944], eax
mov eax, dword [0x583944]
cmp eax, 0xffffffff
jne 0x52a4fb
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 0x52a4fb
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.0052a197
mov edx, eax
mov eax, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x583928]
mov dword [eax + 0xc], edx
jmp 0x52a861
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x1c]
call fcn.0052a29a
cmp eax, 0
je 0x52a543
mov eax, 0xffffffff
jmp 0x52a555
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.0052a0f4
mov dword [0x583944], eax
mov eax, dword [0x583944]
cmp eax, 0xffffffff
jne 0x52a589
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 0x52a589
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xor eax, eax
push eax
call fcn.0052a197
mov edx, eax
mov eax, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x583928]
mov dword [eax + 0xc], edx
jmp 0x52a861
xor eax, eax
push eax
call fcn.0052a197
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 0x52a5d7
mov eax, dword [ebp - 0x20]
cmp eax, 0xdbff
jg 0x52a5d7
jmp 0x52a5db
xor eax, eax
jmp 0x52a5de
xor eax, eax
inc eax
cmp eax, 0
je 0x52a5fc
mov eax, dword [ebp - 0x20]
mov dword [0x58394c], eax
mov eax, 1
jmp 0x52a9a5
mov eax, dword [ebp - 0x20]
cmp eax, 0xdc00
jl 0x52a612
mov eax, dword [ebp - 0x20]
cmp eax, 0xdfff
jg 0x52a612
jmp 0x52a616
xor eax, eax
jmp 0x52a619
xor eax, eax
inc eax
cmp eax, 0
je 0x52a65e
mov eax, dword [0x58394c]
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 [0x58394c], eax
mov eax, dword [0x58394c]
mov dword [ebp - 0x20], eax
mov eax, 0
mov dword [ebp - 0x1c], 0
jmp 0x52a682
xor eax, eax
inc eax
je 0x52a674
mov eax, 0
mov dword [0x58394c], 0
jmp 0x52a682
call 0x52a679
pop eax
push eax
push 0x64
call fcn.00425796
mov eax, dword [ebp - 0x1c]
and eax, 0x10000000
cmp eax, 0
je 0x52a6a9
mov eax, 0x60
mov edx, dword [ebp - 0x20]
cmp eax, edx
jge 0x52a6a9
mov eax, dword [ebp - 0x20]
cmp eax, 0x7b
jge 0x52a6a9
jmp 0x52a6ad
xor eax, eax
jmp 0x52a6b0
xor eax, eax
inc eax
cmp eax, 0
je 0x52a6d1
mov eax, dword [ebp - 0x20]
add eax, 0x40
mov dword [ebp - 0x20], eax
mov eax, 0xffffffff
mov dword [0x583944], 0xffffffff
mov eax, dword [0x583c98]
cmp eax, 0
je 0x52a6ee
mov eax, dword [ebp - 0x1c]
and eax, 0x20000000
cmp eax, 0
je 0x52a6ee
jmp 0x52a6f2
xor eax, eax
jmp 0x52a6f5
xor eax, eax
inc eax
cmp eax, 0
jne 0x52a718
mov eax, dword [0x583944]
cmp eax, 0xa4
je 0x52a718
mov eax, dword [0x583944]
cmp eax, 0xa5
je 0x52a718
xor eax, eax
jmp 0x52a71b
xor eax, eax
inc eax
cmp eax, 0
je 0x52a731
mov eax, 0xffffffff
mov dword [0x583944], 0xffffffff
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
or eax, edx
mov edx, eax
mov eax, dword [0x583928]
mov dword [eax + 0xc], edx
jmp 0x52a861
push 0
push dword [ebp + 8]
call fcn.0053cfeb
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
mov edx, dword [0x58303c]
cmp eax, edx
jne 0x52a776
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0053edde
mov eax, dword [ebp + 0xc]
inc eax
and eax, 0xffff
mov edx, eax
mov eax, dword [0x583928]
mov dword [eax + 0xc], edx
jmp 0x52a861
push 0
push dword [ebp + 8]
call fcn.0053cfeb
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
push eax
call fcn.0044ec5c
mov edx, eax
mov eax, dword [0x583080]
cmp eax, edx
jne 0x52a7cf
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov edx, eax
mov eax, dword [0x583928]
mov dword [eax + 0xc], edx
jmp 0x52a814
mov eax, 0
mov edx, dword [ebp + 0xc]
cmp eax, edx
sete al
xor ah, ah
cwde
xor al, 1
cmp eax, 0
je 0x52a814
push 0xb
push dword [ebp + 8]
call fcn.0053cfeb
push eax
call fcn.00525e18
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
and eax, 0x100000
cmp eax, 0
jne 0x52a814
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.0053edde
jmp 0x52a861
xor eax, eax
push eax
call fcn.0052a197
mov edx, eax
mov eax, dword [ebp + 0xc]
or eax, edx
mov edx, eax
mov eax, dword [0x583928]
mov dword [eax + 0xc], edx
jmp 0x52a861
xor eax, eax
inc eax
push eax
call fcn.0052a197
mov edx, eax
mov eax, dword [0x583928]
mov dword [eax + 0xc], edx
jmp 0x52a861
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov edx, eax
mov eax, dword [0x583928]
mov dword [eax + 0xc], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
push dword [0x5719f0]
call fcn.0048a1a7
mov eax, dword [0x577fdc]
mov dword [ebp - 0xc], eax
mov eax, dword [0x578004]
mov dword [ebp - 0x2c], eax
mov dword [0x578004], 0
mov eax, 0xffffffff
push dword [ebp - 4]
push dword [ebp - 8]
mov dword [ebp - 4], eax
call 0x52a8a1
pop eax
add eax, 0x4c
mov dword [ebp - 8], eax
push dword [0x5828b8]
push dword [0x57f008]
call fcn.0048a02b
push dword [0x583928]
call fcn.00525045
xor eax, eax
push eax
call fcn.0043de01
call fcn.0043d901
push dword [0x5828a8]
call fcn.004d4fbd
call fcn.0048a5e1
call fcn.0048a142
call fcn.0048a5aa
lea esp, [ebp - 0x34]
pop dword [ebp - 8]
pop dword [ebp - 4]
mov eax, dword [ebp - 0x2c]
mov dword [0x578004], eax
call fcn.0048b131
mov eax, dword [0x54902c]
mov eax, dword [eax + 0x24]
cmp eax, 0
je 0x52a926
mov eax, 0
xchg edx, eax
mov eax, dword [0x54902c]
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 0x52a9a2
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
push eax
call fcn.0044ec5c
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [0x5830ec]
cmp eax, edx
jne 0x52a96d
mov eax, 1
mov dword [ebp - 0x18], 1
jmp 0x52a9a2
mov eax, dword [ebp - 0x14]
mov edx, dword [0x583108]
cmp eax, edx
jne 0x52a988
mov eax, 0
mov dword [ebp - 0x18], 0
jmp 0x52a9a2
xor eax, eax
inc eax
je 0x52a994
mov eax, 0
jmp 0x52a9a2
call 0x52a999
pop eax
push eax
push 0x64
call fcn.00425796
mov eax, dword [ebp - 0x18]
leave
ret 0xc