Function at 0x14000e790
Capabilities:
Check if file exists
Get file attributes
Read .ini file

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x290
mov rax, qword [0x14003f0b8]
xor rax, rsp
mov qword [rsp + 0x280], rax
xor esi, esi
lea rdx, str.Servicing_debugger_files
mov rbx, rcx
mov ebp, esi
mov r15d, esi
lea ecx, [rsi + 2]
lea edi, [rsi + 1]
call fcn.14000f424
lea rdx, str.SYSPARTDEST
mov rcx, rbx
call fcn.1400107a4
mov r13, rax
test rax, rax
je 0x14000eb02
lea rdx, str.SOURCEBootDebuggerFiles.ini
mov rcx, rbx
call fcn.1400107a4
mov qword [rsp + 0x60], rax
mov r12, rax
test rax, rax
je 0x14000ea98
lea rdx, str.SYSROOT
mov rcx, rbx
call fcn.1400107a4
mov r15, rax
test rax, rax
je 0x14000ea78
lea rdx, str.FWTYPE
mov rcx, rbx
call fcn.1400109f4
lea r14d, [rsi + 4]
mov rcx, rax
mov r8d, r14d
lea rdx, [0x14002ff18]
call qword [sym.imp.msvcrt.dll_wcsncmp]
nop dword [rax + rax]
lea rdx, str.ACLS
mov rcx, rbx
test eax, eax
cmovne edi, esi
call fcn.1400109f4
test rax, rax
mov ecx, esi
lea eax, [rsi + 1]
cmovne ecx, eax
mov dword [rsp + 0x50], ecx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
nop dword [rax + rax]
cmp eax, 0xffffffff
je 0x14000ea5f
test al, 0x50
jne 0x14000ea5f
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
lea edx, [rsi + 8]
mov r8d, 0x4000
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
nop dword [rax + rax]
mov qword [rsp + 0x58], rax
mov rbp, rax
test rax, rax
jne 0x14000e8e7
lea rdx, str.ServiceDebuggerFiles:_Failed_to_allocate_config_buffer
mov ecx, r14d
call fcn.14000f424
jmp 0x14000ea73
lea rax, str.BootDebuggerFiles.PCAT
test edi, edi
lea rcx, str.BootDebuggerFiles.UEFI
mov r9, r12
cmove rcx, rax
mov r8d, 0x2000
mov rdx, rbp
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
nop dword [rax + rax]
mov r14d, eax
test eax, eax
jne 0x14000e928
lea rdx, str.List_of_debugger_files_is_empty
mov ecx, 2
jmp 0x14000e8dd
cmp r14d, 0x1ffe
jb 0x14000e942
lea rdx, str.ServiceDebuggerFiles:_ConfigBuffer_is_too_small
mov ecx, 4
call fcn.14000f424
mov rdi, rbp
test r14d, r14d
je 0x14000ea53
mov r12d, dword [rsp + 0x50]
mov ebp, 1
cmp word [rdi], si
je 0x14000ea49
or rbx, 0xffffffffffffffff
inc rbx
cmp word [rdi + rbx*2], si
jne 0x14000e965
mov r8, r15
lea rcx, [rsp + 0x70]
mov edx, 0x104
call fcn.140004c70
mov edx, 0x5c
mov rcx, rdi
call qword [sym.imp.msvcrt.dll_wcsrchr]
nop dword [rax + rax]
xor ecx, ecx
mov rsi, rax
test rax, rax
je 0x14000e9b9
mov word [rax], cx
add rsi, 2
lea rcx, [rsp + 0x70]
mov r8, rdi
mov edx, 0x104
call fcn.140004cf8
jmp 0x14000e9bc
mov rsi, rdi
mov r9, r13
mov qword [rsp + 0x20], rsi
lea r8, [rsp + 0x70]
mov ecx, 2
lea rdx, str.Copying_boot_debugging_files_from__ws_to__ws___ws_
call fcn.14000f424
xor eax, eax
lea rcx, [rsp + 0x70]
mov dword [rsp + 0x40], eax
mov r9, rsi
mov dword [rsp + 0x38], eax
mov r8, r13
mov dword [rsp + 0x30], eax
xor edx, edx
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], eax
call fcn.14000d528
test eax, eax
jne 0x14000ea35
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov dword [rsp + 0x28], eax
mov r9, r13
lea r8, [rsp + 0x70]
mov qword [rsp + 0x20], rsi
lea rdx, str.Error_copying_boot_debugging_files_from__ws_to__ws___ws_._Last_Error___x
mov ecx, 4
call fcn.14000f424
add ebx, ebp
mov esi, 0
lea rdi, [rdi + rbx*2]
sub r14d, ebx
jne 0x14000e958
mov rbp, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
lea rdx, str.Done_servicing_debugger_files.
jmp 0x14000e921
mov r8, r12
lea rdx, str.ServiceDebuggerFiles:__ws_does_not_exist
mov ecx, 3
call fcn.14000f424
mov edi, 1
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, r12
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, r13
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
test rbp, rbp
je 0x14000eadd
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rbp
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
test r15, r15
je 0x14000eb02
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
mov eax, edi
mov rcx, qword [rsp + 0x280]
xor rcx, rsp
call fcn.140026f10
lea r11, [rsp + 0x290]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret