Function at 0x1800013a0
Capabilities:
Log keystrokes via polling
Set environment variable

Disassembly:
sub rsp, 0x68
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x30], 0
mov eax, 1
mov word [rsp + 0x24], ax
mov eax, 1
mov word [rsp + 0x28], ax
mov dword [rsp + 0x20], 3
jmp 0x1800013e4
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
cmp dword [rsp + 0x20], 0x100
jge 0x1800014c1
mov ecx, dword [rsp + 0x20]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
mov dword [rsp + 0x30], eax
movsxd rax, dword [rsp + 0x20]
lea rcx, [0x180022630]
movzx eax, byte [rcx + rax]
test eax, eax
jne 0x180001451
mov eax, dword [rsp + 0x30]
and eax, 0x8000
test eax, eax
je 0x180001451
movsxd rax, dword [rsp + 0x20]
lea rcx, [0x180021820]
movzx eax, byte [rcx + rax]
cmp eax, 0xff
je 0x180001451
movsxd rax, dword [rsp + 0x20]
lea rcx, [0x180022630]
mov byte [rcx + rax], 1
mov dword [rsp + 0x34], 1
movsxd rax, dword [rsp + 0x20]
lea rcx, [0x180022630]
movzx eax, byte [rcx + rax]
test eax, eax
je 0x1800014a0
cmp dword [rsp + 0x30], 0
jne 0x1800014a0
movsxd rax, dword [rsp + 0x20]
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], 0x100
jae 0x180001483
jmp 0x180001488
call fcn.180003328
lea rax, [0x180022630]
mov rcx, qword [rsp + 0x48]
mov byte [rax + rcx], 0
mov dword [rsp + 0x34], 1
movsxd rax, dword [rsp + 0x20]
lea rcx, [0x180022630]
movzx eax, byte [rcx + rax]
mov ecx, dword [rsp + 0x38]
or ecx, eax
mov eax, ecx
mov dword [rsp + 0x38], eax
jmp 0x1800013da
cmp dword [rsp + 0x34], 0
jne 0x1800014cd
jmp 0x180001660
cmp dword [rsp + 0x38], 0
jne 0x1800014e8
xor edx, edx
lea rcx, [0x1800160f0]
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
jmp 0x180001660
mov r8d, 0x1a1
xor edx, edx
lea rcx, [0x180022730]
call fcn.1800134b0
mov r8d, 0xfe02
xor edx, edx
lea rcx, [0x1800228e0]
call fcn.1800134b0
mov eax, 1
imul rax, rax, 0
lea rcx, [0x180022730]
mov byte [rcx + rax], 0x2d
mov eax, 1
imul rax, rax, 0
lea rcx, [0x1800228e0]
mov byte [rcx + rax], 0x2d
mov dword [rsp + 0x2c], 0
jmp 0x18000154c
mov eax, dword [rsp + 0x2c]
inc eax
mov dword [rsp + 0x2c], eax
cmp dword [rsp + 0x2c], 0x100
jge 0x180001638
movsxd rax, dword [rsp + 0x2c]
lea rcx, [0x180022630]
movzx eax, byte [rcx + rax]
test eax, eax
jne 0x180001570
jmp 0x180001542
movsxd rax, dword [rsp + 0x2c]
lea rcx, [0x180021820]
movzx eax, byte [rcx + rax]
test eax, eax
je 0x18000159a
movsxd rax, dword [rsp + 0x2c]
lea rcx, [0x180021820]
movzx eax, byte [rcx + rax]
mov dword [rsp + 0x40], eax
jmp 0x1800015a2
mov eax, dword [rsp + 0x2c]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0xff
jne 0x1800015b6
jmp 0x180001542
movzx eax, word [rsp + 0x24]
lea rcx, [0x180022730]
add rcx, rax
mov rax, rcx
mov r8d, dword [rsp + 0x3c]
lea rdx, [0x1800160fc]
mov rcx, rax
call fcn.1800031b0
movzx ecx, word [rsp + 0x24]
add ecx, eax
mov eax, ecx
mov word [rsp + 0x24], ax
movsxd rax, dword [rsp + 0x3c]
lea rcx, [0x180021010]
movzx edx, word [rsp + 0x28]
lea r8, [0x1800228e0]
add r8, rdx
mov rdx, r8
mov qword [rsp + 0x50], rdx
mov r8, qword [rcx + rax*8]
lea rdx, [0x180016100]
mov rax, qword [rsp + 0x50]
mov rcx, rax
call fcn.1800031b0
movzx ecx, word [rsp + 0x28]
add ecx, eax
mov eax, ecx
mov word [rsp + 0x28], ax
jmp 0x180001542
lea rdx, [0x180022730]
lea rcx, str.keyspressed
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
lea rdx, [0x1800228e0]
lea rcx, str.keyspressed_str
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
add rsp, 0x68
ret