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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov dword [rax + 0x20], r9d
mov dword [rax + 0x18], r8d
mov qword [rax + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x3c8]
sub rsp, 0x490
mov eax, dword [0x140005010]
lea rdx, [rbp + 0x3e0]
mov rdi, qword [0x140005008]
mov r14d, ecx
mov dword [rsp + 0x60], eax
xor ebx, ebx
call fcn.1400018a4
test eax, eax
je 0x1400014b3
cmp dword [rbp + 0x3e0], ebx
je 0x1400014b3
mov r8d, r14d
xor edx, edx
mov ecx, 0x43a
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rsi, rax
test rax, rax
je 0x1400014b3
mov r8d, r14d
xor edx, edx
mov ecx, 0x410
mov r15d, ebx
call qword [sym.imp.KERNEL32.dll_OpenProcess]
lea r13d, [rbx + 1]
mov r14, rax
test rax, rax
je 0x1400011f6
mov r9d, 0x104
lea r8, [rsp + 0x70]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_K32GetModuleFileNameExW]
test eax, eax
je 0x1400011ac
lea rcx, [rsp + 0x70]
call qword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov rcx, rax
mov r12, rax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 0x104
ja 0x1400011ac
mov rdx, r12
lea rcx, [rbp + 0x180]
call qword [sym.imp.SHLWAPI.dll_StrCpyW]
mov r15d, r13d
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test r15d, r15d
je 0x1400011f6
lea rax, str.MSBuild.exe
mov r14d, ebx
mov qword [rbp + 0x3d8], rax
lea r15, [rbp + 0x3d8]
mov rdx, qword [r15]
lea rcx, [rbp + 0x180]
call qword [sym.imp.SHLWAPI.dll_StrCmpIW]
test eax, eax
je 0x1400014aa
add r14d, r13d
add r15, 8
cmp r14d, r13d
jb 0x1400011d2
mov r9d, 4
mov qword [rsp + 0x20], rbx
lea r8, [rbp + 0x3d8]
mov rcx, rsi
lea edx, [r9 + 0x19]
call qword [sym.imp.ntdll.dll_NtQueryInformationProcess]
test eax, eax
js 0x1400014aa
cmp dword [rbp + 0x3d8], ebx
jne 0x1400014aa
lea r8, [rsp + 0x68]
mov edx, 8
mov rcx, rsi
mov r12d, ebx
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x1400014aa
mov rcx, qword [rsp + 0x68]
lea rax, [rbp + 0x3e0]
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea r15d, [r9 + 0x19]
mov edx, r15d
call qword [sym.imp.ADVAPI32.dll_GetTokenInformation]
test eax, eax
jne 0x1400012ea
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x1400012ea
mov edx, dword [rbp + 0x3e0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov r14, rax
test rax, rax
je 0x1400012ea
mov r9d, dword [rbp + 0x3e0]
lea rax, [rbp + 0x3e0]
mov rcx, qword [rsp + 0x68]
mov r8, r14
mov edx, r15d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_GetTokenInformation]
test eax, eax
je 0x1400012d8
mov rcx, qword [r14]
call qword [sym.imp.ADVAPI32.dll_GetSidSubAuthorityCount]
mov rcx, qword [r14]
movzx edx, byte [rax]
sub edx, r13d
call qword [sym.imp.ADVAPI32.dll_GetSidSubAuthority]
mov r12d, r13d
mov r15d, dword [rax]
jmp 0x1400012df
mov r15d, dword [rbp + 0x3e0]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x1400012f1
mov r15d, dword [rbp + 0x3e0]
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test r12d, r12d
je 0x1400014aa
cmp r15d, 0x2000
jb 0x1400014aa
movsxd rdx, dword [rdi + 0x3c]
cmp dword [rdx + rdi], 0x4550
jne 0x1400014aa
mov eax, 0x10b
cmp word [rdx + rdi + 0x18], ax
je 0x1400014aa
mov eax, 0x20b
cmp word [rdx + rdi + 0x18], ax
jne 0x1400014aa
mov edx, dword [rdx + rdi + 0x88]
mov rcx, rdi
call fcn.140001ebc
mov r13d, eax
mov rcx, rdi
add r13, rdi
mov edx, dword [r13 + 0x20]
call fcn.140001ebc
mov edx, dword [r13 + 0x24]
mov rcx, rdi
mov r14d, eax
add r14, rdi
call fcn.140001ebc
mov r15d, eax
mov r12d, ebx
add r15, rdi
cmp dword [r13 + 0x18], ebx
jbe 0x1400014aa
mov edx, dword [r14]
mov rcx, rdi
call fcn.140001ebc
mov ecx, eax
lea rdx, [0x140003380]
add rcx, rdi
call qword [sym.imp.SHLWAPI.dll_StrStrA]
test rax, rax
jne 0x1400013c1
add r14, 4
add r15, 2
inc r12d
cmp r12d, dword [r13 + 0x18]
jb 0x140001389
jmp 0x1400014aa
mov edx, dword [r13 + 0x1c]
mov rcx, rdi
call fcn.140001ebc
movzx ecx, word [r15]
mov edx, eax
add rdx, rdi
mov edx, dword [rdx + rcx*4]
mov rcx, rdi
call fcn.140001ebc
mov r12d, eax
test eax, eax
je 0x1400014aa
mov r15d, dword [rsp + 0x60]
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 0x1400014aa
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 0x1400014aa
lea rax, [r14 + r12]
mov qword [rsp + 0x28], r14
mov r9, rsi
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x60], rbx
call fcn.140002114
test eax, eax
js 0x1400014aa
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x1400014aa
cmp dword [rbp + 0x3e8], ebx
je 0x140001471
mov ebx, 1
jmp 0x1400014a4
mov edx, 0x64
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x14000149f
mov rcx, qword [rsp + 0x60]
lea rdx, [rbp + 0x3e0]
call qword [sym.imp.KERNEL32.dll_GetExitCodeThread]
test eax, eax
je 0x14000149f
cmp dword [rbp + 0x3e0], ebx
setne bl
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
mov rbx, qword [rsp + 0x4d0]
add rsp, 0x490
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret