Function at 0x7158d0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push r13
push rdi
push rsi
push rbx
sub rsp, 0x190
mov rbp, rsp
mov qword [rbp + 0x28], rcx
mov qword [rbp + 0x38], 0
mov qword [rbp + 0x58], 0
mov qword [rbp + 0x168], 0
mov qword [rbp + 0x160], 0
mov byte [rbp + 0x1c8], dl
nop
mov dword [0x007e9fec], 0x7fffffff
xor eax, eax
mov byte [rbp + 0x36], al
mov byte [rbp + 0x18d], 0
mov byte [rbp + 0x18c], 0
mov byte [rbp + 0x18b], 0
mov byte [rbp + 0x18a], 0
xor ebx, ebx
mov rcx, qword [rbp + 0x28]
call fcn.00410550
mov esi, eax
cmp esi, dword [0x007e9fec]
jle 0x715957
mov esi, dword [0x007e9fec]
test esi, esi
je 0x715d4f
cmp ebx, esi
jge 0x715d40
movsxd rax, ebx
mov rcx, qword [rbp + 0x28]
movzx rax, word [rcx + rax*2]
movzx ecx, ax
cmp ecx, 0x2b
jg 0x71599f
cmp ecx, 0x2b
je 0x715a0c
sub ecx, 0x25
test ecx, ecx
je 0x7159eb
sub ecx, 3
test ecx, ecx
je 0x7159c5
sub ecx, 1
test ecx, ecx
jne 0x715cec
jmp 0x7159d4
sub ecx, 0x5e
test ecx, ecx
je 0x715a2d
sub ecx, 0x1d
test ecx, ecx
je 0x715a4e
sub ecx, 3
test ecx, ecx
jne 0x715cec
jmp 0x715ccd
mov byte [rbp + 0x18d], 1
add ebx, 1
jmp 0x715d38
mov byte [rbp + 0x18d], 0
mov rcx, rbp
call fcn.00715860
add ebx, 1
jmp 0x715d38
mov byte [rbp + 0x18a], 1
mov rcx, rbp
mov dl, 0x12
mov r8w, 1
xor r9, r9
call fcn.00715480
add ebx, 1
jmp 0x715d38
mov byte [rbp + 0x18c], 1
mov rcx, rbp
mov dl, 0x10
mov r8w, 1
xor r9, r9
call fcn.00715480
add ebx, 1
jmp 0x715d38
mov byte [rbp + 0x18b], 1
mov rcx, rbp
mov dl, 0x11
mov r8w, 1
xor r9, r9
call fcn.00715480
add ebx, 1
jmp 0x715d38
mov di, 1
mov eax, ebx
add eax, 1
movsxd rax, eax
mov rcx, qword [rbp + 0x28]
cmp word [rcx + rax*2], 0x7b
jne 0x715aa8
mov word [rbp + 0x18e], 0xdb
mov rcx, rbp
lea rdx, [rbp + 0x18f]
mov r8b, 1
call fcn.00715400
mov rcx, rbp
movzx rdx, word [rbp + 0x18e]
mov r8w, 1
mov r9b, 1
call fcn.007155f0
mov rcx, rbp
call fcn.00715860
add ebx, 3
jmp 0x715d38
mov byte [rbp + 0x175], 0
xor eax, eax
mov byte [rbp + 0x37], al
cmp ebx, esi
jg 0x715b63
add ebx, 1
movsxd rax, ebx
mov rcx, qword [rbp + 0x28]
cmp word [rcx + rax*2], 0x7d
jne 0x715ada
mov al, 1
mov byte [rbp + 0x37], al
add ebx, 1
jmp 0x715b63
movsxd rax, ebx
mov rcx, qword [rbp + 0x28]
movzx rax, word [rcx + rax*2]
mov r13d, eax
mov ecx, eax
sub cx, 0x61
cmp cx, 0x1a
jae 0x715afd
mov r13d, eax
and r13w, 0xffdf
lea rcx, [rbp + 0x168]
lea rdx, [rbp + 0x175]
call fcn.004115d0
lea rcx, [rbp + 0x160]
mov edx, r13d
call fcn.004113b0
lea rcx, [rbp + 0x168]
mov rdx, qword [rbp + 0x160]
call fcn.00411700
lea rcx, [rbp + 0x60]
mov rdx, qword [rbp + 0x168]
mov r8d, 0xff
call fcn.00411540
lea rcx, [rbp + 0x175]
lea rdx, [rbp + 0x60]
mov r8b, 0x14
call fcn.00410850
cmp ebx, esi
jle 0x715abc
nop
movzx rax, byte [rbp + 0x37]
test al, al
jne 0x715b81
mov rcx, rbp
lea rdx, [0x00715dc8]
call fcn.007153c0
jmp 0x715d4f
movsxd rax, ebx
mov rcx, qword [rbp + 0x28]
cmp word [rcx + rax*2], 0x7d
jne 0x715bd2
mov word [rbp + 0x18e], 0xdd
mov rcx, rbp
lea rdx, [rbp + 0x18f]
mov r8b, 1
call fcn.00715400
mov rcx, rbp
movzx rdx, word [rbp + 0x18e]
mov r8w, 1
mov r9b, 1
call fcn.007155f0
mov rcx, rbp
call fcn.00715860
add ebx, 1
jmp 0x715d38
lea rcx, [rbp + 0x58]
lea rdx, [rbp + 0x175]
call fcn.004115d0
lea rcx, [0x00715de8]
mov rdx, qword [rbp + 0x58]
mov r8d, 1
call fcn.00411c00
test al, al
je 0x715c6a
movzx r13, al
lea rcx, [rbp + 0x40]
lea rdx, [rbp + 0x175]
mov r8d, r13d
add r8d, 1
movzx r9, byte [rbp + 0x175]
sub r9d, r13d
call fcn.00410890
lea rcx, [rbp + 0x38]
lea rdx, [rbp + 0x40]
call fcn.004115d0
mov rcx, qword [rbp + 0x38]
call fcn.00432e50
mov edi, eax
lea rcx, [rbp + 0x40]
lea rdx, [rbp + 0x175]
mov r8d, 1
mov r9d, r13d
sub r9d, 1
call fcn.00410890
lea rcx, [rbp + 0x175]
lea rdx, [rbp + 0x40]
mov r8b, 0x14
call fcn.00410850
cmp byte [rbp + 0x175], 1
jne 0x715c89
movzx rcx, byte [rbp + 0x176]
call sub.user32.dll_VkKeyScanA
mov word [rbp + 0x18e], ax
jmp 0x715c9f
mov rcx, rbp
lea rdx, [rbp + 0x175]
call fcn.00715700
mov word [rbp + 0x18e], ax
cmp word [rbp + 0x18e], 0xffff
je 0x715d38
mov rcx, rbp
movzx rdx, word [rbp + 0x18e]
mov r8d, edi
mov r9b, 1
call fcn.007155f0
mov rcx, rbp
call fcn.00715860
jmp 0x715d38
mov rcx, rbp
mov dl, 0xd
mov r8w, 1
mov r9b, 1
call fcn.00715480
mov rcx, rbp
call fcn.00715860
add ebx, 1
jmp 0x715d38
mov ecx, eax
call sub.user32.dll_VkKeyScanW
mov word [rbp + 0x18e], ax
cmp word [rbp + 0x18e], 0xffff
je 0x715d26
mov rcx, rbp
movzx rdx, word [rbp + 0x18e]
mov r8w, 1
mov r9b, 1
call fcn.007155f0
mov rcx, rbp
call fcn.00715860
jmp 0x715d35
mov rcx, rbp
lea rdx, [0x00715dec]
call fcn.007153c0
add ebx, 1
cmp ebx, esi
jl 0x715967
nop
mov al, 1
mov byte [rbp + 0x36], al
mov rcx, rbp
call fcn.00715860
nop
lea rcx, [rbp + 0x38]
call fcn.0040fd60
lea rcx, [rbp + 0x58]
call fcn.0040fd60
lea rcx, [rbp + 0x160]
mov edx, 2
call fcn.0040fe40
movzx rax, byte [rbp + 0x36]
lea rsp, [rbp + 0x190]
pop rbx
pop rsi
pop rdi
pop r13
pop rbp
ret