Function at 0x72a0d350
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x1c
push ebx
push ebp
push esi
push edi
call fcn.72946557
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
xor edi, edi
mov dword [esp + 0x10], eax
xor esi, esi
lea eax, [eax + ecx*2]
mov dword [0x72a4f894], edi
mov dword [0x72a4f88c], edi
mov dword [0x72a4f898], edi
mov dword [0x72a4f890], edi
mov dword [esp + 0x18], esi
mov dword [0x72a4f89c], 1
mov dword [esp + 0x28], eax
mov ebp, 0x100
push 0xa
pop ebx
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x10], eax
jae 0x72a0d5a8
mov eax, dword [esp + 0x10]
add dword [esp + 0x10], 2
mov dword [esp + 0x30], 1
mov ax, word [eax]
push eax
mov dword [esp + 0x18], eax
push dword [esp + 0x20]
call fcn.72a21b21
mov dword [esp + 0x34], eax
movzx eax, ax
cmp eax, 0x28
jg 0x72a0d46f
je 0x72a0d42e
cmp eax, 0x25
jne 0x72a0d608
cmp dword [0x72a4f88c], edi
jne 0x72a0d5b0
mov eax, dword [0x72a4f898]
push dword [0x72a4f89c]
neg eax
sbb eax, eax
push 0x12
and al, 0xfc
add eax, 0x104
movzx eax, ax
push eax
call fcn.72a0d94f
mov dword [0x72a4f89c], edi
mov dword [0x72a4f88c], ebx
jmp 0x72a0d3a5
inc esi
cmp esi, 3
mov dword [esp + 0x18], esi
jg 0x72a0d5b0
cmp dword [0x72a4f890], ebx
jne 0x72a0d44a
mov dword [0x72a4f890], esi
cmp dword [0x72a4f898], ebx
jne 0x72a0d458
mov dword [0x72a4f898], esi
cmp dword [0x72a4f88c], ebx
jne 0x72a0d3a5
mov dword [0x72a4f88c], esi
jmp 0x72a0d3a5
sub eax, 0x29
je 0x72a0d570
dec eax
dec eax
je 0x72a0d549
sub eax, 0x33
je 0x72a0d51e
sub eax, 0x1d
je 0x72a0d5b7
dec eax
dec eax
je 0x72a0d5b0
dec eax
jne 0x72a0d608
push 0xd
pop esi
dec dword [esp + 0x30]
js 0x72a0d8a2
mov eax, dword [esp + 0x30]
movzx esi, si
lea ebx, [eax + 1]
cmp dword [0x72a4f88c], edi
je 0x72a0d917
mov eax, dword [0x72a4f898]
neg eax
sbb eax, eax
and al, 0xfc
add eax, 0x104
push dword [0x72a4f89c]
movzx eax, ax
push esi
push eax
call fcn.72a0d94f
cmp dword [0x72a4f88c], edi
mov dword [0x72a4f89c], edi
je 0x72a0d921
mov eax, dword [0x72a4f898]
neg eax
sbb eax, eax
and al, 0xfc
add eax, 0x105
movzx eax, ax
push edi
push esi
push eax
call fcn.72a0d94f
dec dword [esp + 0x30]
dec ebx
je 0x72a0d8a2
jmp 0x72a0d4b8
cmp dword [0x72a4f898], edi
jne 0x72a0d5b0
push dword [0x72a4f89c]
push 0x11
push ebp
call fcn.72a0d94f
mov dword [0x72a4f89c], edi
mov dword [0x72a4f898], ebx
jmp 0x72a0d3a5
cmp dword [0x72a4f890], edi
jne 0x72a0d5b0
push dword [0x72a4f89c]
push 0x10
push ebp
call fcn.72a0d94f
mov dword [0x72a4f89c], edi
mov dword [0x72a4f890], ebx
jmp 0x72a0d3a5
cmp esi, edi
jle 0x72a0d5b0
push esi
push 0x72a4f894
push 0x72a4f88c
push 0x72a4f898
push 0x72a4f890
call fcn.72a0db0f
dec esi
mov dword [esp + 0x18], esi
jne 0x72a0d3a5
mov dword [0x72a4f89c], 1
jmp 0x72a0d3a5
cmp esi, edi
je 0x72a0d92b
push 5
call fcn.72a0e22c
push dword [esp + 0x28]
push 0x7d
push dword [esp + 0x18]
call fcn.72a0d9de
mov ebx, eax
cmp ebx, edi
je 0x72a0d5b0
mov eax, dword [esp + 0x10]
push ebx
push 0x20
lea ebp, [eax + 2]
push ebp
call fcn.72a0d9de
mov esi, eax
cmp esi, edi
jne 0x72a0d756
mov eax, ebx
cmp ebp, eax
jne 0x72a0d8e5
mov eax, dword [esp + 0x10]
add ebx, 2
mov dword [esp + 0x10], ebx
mov ebp, 0x100
mov ax, word [eax]
mov word [esp + 0x14], ax
cmp dword [0x72a4ee5c], edi
je 0x72a0d7fc
push edi
push edi
lea eax, [esp + 0x28]
push 2
push eax
lea eax, [esp + 0x24]
push 1
push eax
push edi
push edi
mov dword [esp + 0x40], edi
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
cmp eax, 1
jne 0x72a0d7f4
push dword [esp + 0x20]
call dword [sym.imp.USER32.dll_VkKeyScanA]
movsx ebx, ax
cmp ebx, 0xffffffff
je 0x72a0d7f4
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
cmp ebx, 0xffffffff
je 0x72a0d80e
cmp dword [0x72a4ee5c], edi
je 0x72a0d675
cmp word [esp + 0x14], 0xff
ja 0x72a0d80e
mov esi, ebx
and esi, 0xff
cmp dword [0x72a4f890], edi
jne 0x72a0d6a7
test ebp, ebx
je 0x72a0d6a7
push dword [0x72a4f89c]
push 0x10
push ebp
call fcn.72a0d94f
mov dword [0x72a4f89c], edi
mov dword [0x72a4f890], 0xa
cmp dword [0x72a4f898], edi
jne 0x72a0d6d2
test bh, 2
je 0x72a0d6d2
push dword [0x72a4f89c]
push 0x11
push ebp
call fcn.72a0d94f
mov dword [0x72a4f89c], edi
mov dword [0x72a4f898], 0xa
cmp dword [0x72a4f88c], edi
jne 0x72a0d6fd
test bh, 4
je 0x72a0d6fd
push dword [0x72a4f89c]
push 0x12
push ebp
call fcn.72a0d94f
mov dword [0x72a4f89c], edi
mov dword [0x72a4f88c], 0xa
mov ax, word [0x72a4f0c4]
and ax, 0x3ff
cmp ax, 0x11
jne 0x72a0d4a4
cmp dword [0x72a4f894], edi
jne 0x72a0d4a4
test bh, 8
je 0x72a0d4a4
push dword [0x72a4f89c]
push 0x15
push ebp
call fcn.72a0d94f
push edi
push 0x15
push 0x101
mov dword [0x72a4f89c], edi
call fcn.72a0d94f
mov dword [0x72a4f894], 0xa
jmp 0x72a0d4a4
mov dword [esp + 0x20], esi
mov ax, word [esi]
cmp ax, di
je 0x72a0d77f
push eax
push dword [esp + 0x20]
call fcn.72a21b21
push eax
mov dword [esp + 0x38], eax
call fcn.72a2c95a
test eax, eax
pop ecx
je 0x72a0d77f
inc esi
inc esi
jmp 0x72a0d75a
cmp word [esi], di
je 0x72a0d796
push dword [esp + 0x34]
call fcn.72a2c94a
test eax, eax
pop ecx
je 0x72a0d5b0
mov dword [esp + 0x30], edi
cmp word [esi], di
je 0x72a0d7e3
push dword [esp + 0x34]
call fcn.72a2c94a
test eax, eax
pop ecx
je 0x72a0d7e3
mov eax, dword [esp + 0x30]
inc esi
movzx ecx, word [esp + 0x34]
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
mov dword [esp + 0x30], eax
mov ax, word [esi]
push eax
push dword [esp + 0x20]
call fcn.72a21b21
cmp dword [esp + 0x30], 0x1ff0
mov dword [esp + 0x34], eax
jl 0x72a0d79a
jmp 0x72a0d5b0
cmp esi, ebx
jne 0x72a0d5b0
mov eax, dword [esp + 0x20]
jmp 0x72a0d5e8
or ebx, 0xffffffff
jmp 0x72a0d657
push dword [esp + 0x14]
call dword [sym.imp.USER32.dll_VkKeyScanW]
movsx ebx, ax
jmp 0x72a0d657
dec dword [esp + 0x30]
js 0x72a0d8a2
mov eax, dword [esp + 0x30]
mov ebx, 0xff
mov esi, 0x102
lea ebp, [eax + 1]
cmp dword [0x72a4ee5c], edi
je 0x72a0d8d8
push edi
push edi
lea eax, [esp + 0x2c]
push 2
push eax
lea eax, [esp + 0x24]
push 1
push eax
push edi
push edi
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
cmp eax, 2
jl 0x72a0d87d
mov eax, dword [esp + 0x24]
push dword [0x72a4f89c]
and eax, ebx
push eax
push esi
call fcn.72a0d94f
mov dword [0x72a4f89c], edi
push edi
movzx eax, word [esp + 0x28]
shr eax, 8
push eax
push esi
call fcn.72a0d94f
jmp 0x72a0d89b
cmp eax, 1
jl 0x72a0d89b
mov eax, dword [esp + 0x24]
push dword [0x72a4f89c]
and eax, ebx
push eax
push esi
call fcn.72a0d94f
mov dword [0x72a4f89c], edi
dec dword [esp + 0x30]
dec ebp
jne 0x72a0d829
push 0xa
push 0x72a4f894
push 0x72a4f88c
push 0x72a4f898
push 0x72a4f890
call fcn.72a0db0f
mov esi, dword [esp + 0x18]
cmp esi, edi
jne 0x72a0d39d
mov dword [0x72a4f89c], 1
jmp 0x72a0d39d
push dword [0x72a4f89c]
movzx eax, word [esp + 0x18]
jmp 0x72a0d874
push eax
push dword [esp + 0x14]
call fcn.72a0da25
mov esi, eax
cmp esi, 0xffffffff
je 0x72a0d5b0
add ebx, 2
cmp esi, edi
mov dword [esp + 0x10], ebx
jne 0x72a0d4a4
mov esi, dword [esp + 0x18]
mov ebp, 0x100
jmp 0x72a0d3a2
mov eax, 0x100
jmp 0x72a0d4d4
mov eax, 0x101
jmp 0x72a0d506
push ebx
push 0x72a4f894
push 0x72a4f88c
push 0x72a4f898
push 0x72a4f890
call fcn.72a0db0f
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 8