Function at 0x140038290
Capabilities:
Create process on windows
Delete file
Write and execute a file
Write file on windows

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov rsi, rcx
xor r15d, r15d
mov dword [rsp + 0x40], r15d
cmp qword [rcx], r15
jne 0x1400382d8
lea rdi, [rcx + 0x28]
mov rax, qword [rdi]
cmp qword [rax - 0x10], r15
jg 0x1400382cd
xor eax, eax
jmp 0x14003852b
mov r12d, 1
jmp 0x1400384e4
cmp byte [rcx + 0x30], 0
jne 0x1400382e5
xor edx, edx
call fcn.140037970
lea rcx, [rsi + 0x30]
call fcn.1400b6a90
test eax, eax
je 0x1400382fc
lea rcx, [rsi + 0x30]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 2
xor r9d, r9d
mov r12d, 1
mov r8d, r12d
mov edx, 0x40000000
lea rcx, [rsi + 0x30]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov r14, rax
mov r13d, r15d
mov dword [rsp + 0x44], r15d
lea rdx, str._META
mov rcx, qword [rsi]
call fcn.1400b3b50
mov rdi, rax
nop
nop
test rdi, rdi
je 0x1400383d1
lea rdx, [0x1400eefdc]
mov rcx, rdi
call fcn.1400c2e00
mov rbx, rax
test rax, rax
je 0x1400383d1
mov byte [rax], r13b
lea rdx, str.HTTP_EQUIV_Content_Type_
mov rcx, rdi
call fcn.1400b3b50
test rax, rax
jne 0x1400383ae
lea rdx, str.HTTP_EQUIVContent_Type
mov rcx, rdi
call fcn.1400b3b50
test rax, rax
jne 0x1400383ae
mov byte [rbx], 0x3e
lea rdx, str._META
mov rcx, rbx
call fcn.1400b3b50
mov rdi, rax
jmp 0x140038350
lea rdx, [0x1400ef434]
mov rcx, rdi
call fcn.1400b3b50
mov ecx, 0xfde9
test rax, rax
cmovne r13d, ecx
mov dword [rsp + 0x44], r13d
mov byte [rbx], 0x3e
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], r15
or r15, 0xffffffffffffffff
mov r9d, r15d
mov r8, qword [rsi]
xor edx, edx
mov ecx, r13d
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
add eax, r12d
movsxd rdi, eax
mov qword [rsp + 0xa8], rdi
mov eax, 2
mul rdi
cmovo rax, r15
mov rcx, rax
call fcn.14008c4a0
mov rbx, rax
lea r8, [rdi + rdi]
xor edx, edx
mov rcx, rax
call fcn.1400c2840
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rbx
mov r9d, r15d
mov r8, qword [rsi]
xor edx, edx
mov ecx, r13d
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov byte [rsp + 0x98], 0xff
mov byte [rsp + 0x99], 0xfe
lea r9d, [r15 + 3]
xor r8d, r8d
xor edx, edx
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0xa0]
lea r8d, [r15 + 3]
lea rdx, [rsp + 0x98]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
xor eax, eax
mov rcx, r15
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx + rcx - 2]
xor r15d, r15d
mov qword [rsp + 0x20], r15
lea r9, [rsp + 0xa0]
mov rdx, rbx
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, rbx
call fcn.14008c4f0
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdi, [rsi + 0x28]
lea rdx, str.file:___
mov rcx, rdi
call fcn.14002d430
lea rdx, [rsi + 0x30]
mov rcx, rdi
call fcn.14002d580
call fcn.1400b6f40
test eax, eax
je 0x1400384fa
mov rdx, qword [rdi]
mov rcx, rsi
call fcn.140037eb0
jmp 0x14003851c
mov dword [rsp + 0x28], 5
mov qword [rsp + 0x20], r15
xor r9d, r9d
mov r8, qword [rdi]
lea rdx, str.open
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteA]
mov dword [rsp + 0x40], r12d
jmp 0x140038528
mov eax, r12d
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret