Function at 0x14000a820
Capabilities:
Map section object

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
push rbp
push r14
push r15
lea rbp, [rax - 0xe8]
sub rsp, 0x1d0
mov rax, qword [0x1400246e0]
xor rax, rsp
mov qword [rbp + 0xc0], rax
xor edi, edi
mov dword [rbp - 0x58], 0x11
lea r8, [0x140025b18]
mov dword [rbp - 0x40], edi
lea rdx, [0x140008730]
mov qword [rbp - 0x48], r8
lea rax, [0x1400088a0]
mov qword [rbp - 0x28], rdx
mov qword [rbp - 0x60], rax
lea ecx, [rdi + 0x10]
lea rax, str.SubSystems
mov dword [rbp - 0x20], ecx
mov qword [rbp - 0x50], rax
lea r14d, [rdi + 2]
lea rax, str.Required
mov qword [rbp - 0x10], r8
mov qword [rbp - 0x18], rax
lea rsi, [0x140025b20]
lea rax, str.Optional
mov qword [rbp + 0x10], rdx
mov qword [rbp + 0x20], rax
lea r15, [0x140025b40]
lea rax, [0x140014680]
mov dword [rbp + 0x18], ecx
mov qword [rbp + 0x48], rax
lea rdx, str.Session_Manager
lea rax, str.Execute
mov qword [rbp + 0x28], r8
mov qword [rbp + 0x58], rax
xorps xmm0, xmm0
lea rax, [0x140025b30]
mov qword [rbp + 0x60], r8
xor r9d, r9d
mov qword [0x140025b38], rax
lea r8, [rbp - 0x60]
mov qword [0x140025b30], rax
mov ecx, r14d
mov qword [rbp - 0x38], rdi
mov dword [rbp - 0x30], edi
mov dword [rbp - 8], edi
mov qword [rbp], rdi
mov dword [rbp + 8], edi
mov dword [rbp + 0x30], edi
mov qword [rbp + 0x38], rdi
mov dword [rbp + 0x40], edi
mov dword [rbp + 0x50], r14d
mov dword [rbp + 0x68], edi
mov qword [rbp + 0x70], rdi
mov dword [rbp + 0x78], edi
mov qword [rbp + 0x80], rdi
mov dword [rbp + 0x88], edi
movdqa xmmword [rbp + 0x90], xmm0
mov dword [rbp + 0xa0], edi
mov qword [rbp + 0xa8], rdi
mov dword [rbp + 0xb0], edi
mov qword [0x140025b28], rsi
mov qword [0x140025b20], rsi
mov qword [0x140025b48], r15
mov qword [0x140025b40], r15
mov qword [rsp + 0x20], rdi
call qword [sym.imp.ntdll.dll_RtlQueryRegistryValuesEx]
nop dword [rax + rax]
test eax, eax
js 0x14000acf1
mov rbx, qword [0x140025b20]
cmp rbx, rsi
je 0x14000a9cf
mov rax, qword [rbx]
mov rcx, rbx
mov rbx, rax
cmp qword [rax + 8], rcx
jne 0x14001070a
mov rdx, qword [rcx + 8]
cmp qword [rdx], rcx
jne 0x14001070a
mov qword [rdx], rax
mov qword [rax + 8], rdx
call fcn.140009300
jmp 0x14000a99c
cmp qword [0x140025b40], r15
jne 0x140010694
mov rax, rdi
mov ebx, dword [0x140025b18]
shl rbx, 4
add rbx, 0x69
mov qword [0x1400252c8], rax
and rbx, 0xfffffffffffffffe
test rax, rax
jne 0x1400106b8
mov r8, rdi
mov ecx, dword [0x140025b1c]
lea r9, [rsp + 0x68]
movzx edx, word [section..data]
mov esi, 4
movzx eax, word [0x140025a30]
add rdx, r8
add rdx, rcx
mov qword [rsp + 0x30], rdi
add rax, 6
mov dword [rsp + 0x28], 0x8400000
add rax, rdx
mov dword [rsp + 0x70], 0x30
add rax, rbx
mov qword [rsp + 0x78], rdi
xorps xmm0, xmm0
mov qword [rsp + 0x68], rax
lea r8, [rsp + 0x70]
mov dword [rbp - 0x78], r14d
lea edx, [rsi + 2]
mov qword [rbp - 0x80], rdi
lea rcx, [0x140024d98]
mov dword [rsp + 0x20], esi
movdqu xmmword [rbp - 0x70], xmm0
call qword [sym.imp.ntdll.dll_NtCreateSection]
nop dword [rax + rax]
test eax, eax
js 0x14000acf1
mov rcx, qword [0x140024d98]
lea rax, [rsp + 0x60]
mov dword [rsp + 0x48], esi
lea r8, [0x140025b00]
mov dword [rsp + 0x40], edi
or r12, 0xffffffffffffffff
mov dword [rsp + 0x38], r14d
xor r9d, r9d
mov qword [rsp + 0x30], rax
mov rdx, r12
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x60], rdi
call qword [sym.imp.ntdll.dll_NtMapViewOfSection]
nop dword [rax + rax]
test eax, eax
js 0x14000acf1
cmp dword [0x1400252d0], edi
mov rax, qword [0x140025b00]
mov dword [rax], edi
jne 0x1400106c2
mov rcx, qword [0x140025b00]
add rbx, rcx
mov rax, rbx
sub rax, rcx
mov qword [rcx + 8], rax
movzx ecx, word [0x140025a30]
mov rax, qword [0x140025b00]
mov word [rax + 0x10], cx
mov rcx, rbx
movzx r8d, word [0x140025a30]
mov rdx, qword [0x140025a38]
call sub.ntdll.dll_memcpy
movzx eax, word [0x140025a30]
mov word [rax + rbx], di
add rax, r14
add rbx, rax
mov rax, qword [0x140025b00]
mov rcx, rbx
sub rcx, rax
mov qword [rax + 0x18], rcx
movzx ecx, word [section..data]
mov rax, qword [0x140025b00]
mov word [rax + 0x20], cx
mov rcx, rbx
movzx r8d, word [section..data]
mov rdx, qword [str.wininit.exe]
call sub.ntdll.dll_memcpy
movzx eax, word [section..data]
mov word [rax + rbx], di
lea rsi, [rax + 2]
mov rax, qword [0x140025b00]
add rsi, rbx
mov rbx, qword [0x1400252c8]
mov rcx, rsi
sub rcx, rax
mov qword [rax + 0x28], rcx
test rbx, rbx
jne 0x1400106d1
mov rax, qword [0x140025b00]
mov word [rax + 0x30], di
mov rax, rsi
add rax, r14
mov word [rsi], di
mov qword [rsp + 0x50], rax
lea rcx, [0x140025b30]
mov rax, qword [0x140025b00]
xor r9d, r9d
add rax, 0x68
xor edx, edx
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x58]
lea r8d, [r9 + 1]
mov qword [rsp + 0x20], rax
call fcn.14000ad28
lea rax, [rsp + 0x50]
mov r9d, 1
mov qword [rsp + 0x28], rax
lea rcx, [0x1400252a0]
lea rax, [rsp + 0x58]
xor r8d, r8d
mov edx, r9d
mov qword [rsp + 0x20], rax
call fcn.14000ad28
xor edx, edx
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
mov r9d, r14d
lea rax, [rsp + 0x58]
mov rcx, r15
mov qword [rsp + 0x20], rax
lea r8d, [rdx + 1]
call fcn.14000ad28
mov rdx, qword [0x140025b00]
mov rcx, r12
call qword [sym.imp.ntdll.dll_NtUnmapViewOfSection]
nop dword [rax + rax]
mov rdx, qword [0x140024d98]
lea r9, [0x140024d98]
mov dword [rsp + 0x30], 9
mov r8, r12
mov dword [rsp + 0x28], r14d
mov rcx, r12
mov dword [rsp + 0x20], 4
call qword [sym.imp.ntdll.dll_NtDuplicateObject]
nop dword [rax + rax]
test eax, eax
js 0x14000acf1
mov rcx, qword [0x140024d98]
lea rax, [rsp + 0x60]
mov dword [rsp + 0x48], r14d
lea r8, [0x140025b00]
mov dword [rsp + 0x40], edi
xor r9d, r9d
mov dword [rsp + 0x38], r14d
mov rdx, r12
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x60], rdi
mov qword [0x140025b00], rdi
call qword [sym.imp.ntdll.dll_NtMapViewOfSection]
nop dword [rax + rax]
test eax, eax
cmovs edi, eax
mov eax, edi
mov rcx, qword [rbp + 0xc0]
xor rcx, rsp
call fcn.14000e710
lea r11, [rsp + 0x1d0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
mov rax, qword [0x140025b48]
mov rcx, qword [rax + 8]
cmp qword [rax], r15
jne 0x14001070a
cmp qword [rcx], rax
jne 0x14001070a
mov qword [0x140025b48], rcx
mov qword [rcx], r15
jmp 0x14000a9df
movzx r8d, word [rax + 0x10]
jmp 0x14000aa04
mov rax, qword [0x140025b00]
or dword [rax], 1
jmp 0x14000aaef
cmp qword [rbx + 0x18], rdi
je 0x14000abaa
movzx ecx, word [rbx + 0x10]
mov rax, qword [0x140025b00]
mov word [rax + 0x30], cx
mov rcx, rsi
movzx r8d, word [rbx + 0x10]
mov rdx, qword [rbx + 0x18]
call sub.ntdll.dll_memcpy
movzx eax, word [rbx + 0x10]
add rax, rsi
mov rsi, rax
jmp 0x14000abb8
mov ecx, 3
int 0x29
int3