Function at 0x14016ca20
Capabilities:
Manipulate boot configuration
Read .ini file

Disassembly:
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x9d0
mov qword [rsp + 0x8f8], 0xfffffffffffffffe
mov rax, qword [0x1402a15c0]
xor rax, rsp
mov qword [rsp + 0x9c0], rax
mov rcx, qword [rsp + 0x9e0]
call fcn.1400f4cc0
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x850], 0
xor eax, eax
mov word [rsp + 0x50], ax
lea rdi, [rsp + 0x52]
xor eax, eax
mov ecx, 0x7fe
rep stosb byte [rdi], al
lea rcx, [rsp + 0x858]
call fcn.140001000
mov qword [rsp + 0x900], rax
mov rax, qword [rsp + 0x900]
mov qword [rsp + 0x908], rax
lea r8, [0x14023a3d8]
mov rdx, qword [rsp + 0x908]
lea rcx, [rsp + 0x860]
call fcn.1400010b0
mov qword [rsp + 0x910], rax
mov rcx, qword [rsp + 0x910]
call fcn.140023510
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x400
lea r9, [rsp + 0x50]
lea r8, [0x14023a3f0]
lea rdx, [0x14023a400]
lea rcx, [0x14023a418]
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x860]
call fcn.140001490
nop
lea rcx, [rsp + 0x858]
call fcn.140001490
mov rcx, qword [rsp + 0x9e0]
add rcx, 0x210
lea rdx, [rsp + 0x50]
call fcn.1400020a0
mov rcx, qword [rsp + 0x9e0]
add rcx, 0x210
lea r9, [rsp + 0x850]
lea r8, [0x14023a0dc]
lea rdx, [rsp + 0x868]
call fcn.1400065a0
mov qword [rsp + 0x918], rax
mov rcx, qword [rsp + 0x918]
call fcn.140023510
mov rcx, rax
call fcn.1400a948c
mov dword [rsp + 0x38], eax
lea rcx, [rsp + 0x868]
call fcn.140001490
mov rcx, qword [rsp + 0x9e0]
add rcx, 0x210
lea r9, [rsp + 0x850]
lea r8, [0x14023a134]
lea rdx, [rsp + 0x870]
call fcn.1400065a0
mov qword [rsp + 0x920], rax
mov rcx, qword [rsp + 0x920]
call fcn.140023510
mov rcx, rax
call fcn.1400a948c
mov dword [rsp + 0x34], eax
lea rcx, [rsp + 0x870]
call fcn.140001490
mov rcx, qword [rsp + 0x9e0]
add rcx, 0x210
lea r9, [rsp + 0x850]
lea r8, [0x14023a2d4]
lea rdx, [rsp + 0x878]
call fcn.1400065a0
mov qword [rsp + 0x928], rax
mov rcx, qword [rsp + 0x928]
call fcn.140023510
mov rcx, rax
call fcn.1400a948c
mov dword [rsp + 0x30], eax
lea rcx, [rsp + 0x878]
call fcn.140001490
movzx ecx, byte [rsp + 0x38]
movzx eax, byte [rsp + 0x34]
shl eax, 8
or ecx, eax
movzx eax, byte [rsp + 0x30]
shl eax, 0x10
or ecx, eax
mov rax, qword [rsp + 0x9e0]
mov dword [rax + 0x230], ecx
mov dword [rsp + 0x850], 0
lea rcx, [rsp + 0x880]
call fcn.140001000
mov qword [rsp + 0x930], rax
mov rax, qword [rsp + 0x930]
mov qword [rsp + 0x938], rax
lea r8, [0x14023a438]
mov rdx, qword [rsp + 0x938]
lea rcx, [rsp + 0x888]
call fcn.1400010b0
mov qword [rsp + 0x940], rax
mov rcx, qword [rsp + 0x940]
call fcn.140023510
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x400
lea r9, [rsp + 0x50]
lea r8, [0x14023a450]
lea rdx, [0x14023a468]
lea rcx, [0x14023a480]
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x888]
call fcn.140001490
nop
lea rcx, [rsp + 0x880]
call fcn.140001490
mov rcx, qword [rsp + 0x9e0]
add rcx, 0x218
lea rdx, [rsp + 0x50]
call fcn.1400020a0
mov rcx, qword [rsp + 0x9e0]
add rcx, 0x218
lea r9, [rsp + 0x850]
lea r8, [0x14023a30c]
lea rdx, [rsp + 0x890]
call fcn.1400065a0
mov qword [rsp + 0x948], rax
mov rcx, qword [rsp + 0x948]
call fcn.140023510
mov rcx, rax
call fcn.1400a948c
mov dword [rsp + 0x38], eax
lea rcx, [rsp + 0x890]
call fcn.140001490
mov rcx, qword [rsp + 0x9e0]
add rcx, 0x218
lea r9, [rsp + 0x850]
lea r8, [0x14023a364]
lea rdx, [rsp + 0x898]
call fcn.1400065a0
mov qword [rsp + 0x950], rax
mov rcx, qword [rsp + 0x950]
call fcn.140023510
mov rcx, rax
call fcn.1400a948c
mov dword [rsp + 0x34], eax
lea rcx, [rsp + 0x898]
call fcn.140001490
mov rcx, qword [rsp + 0x9e0]
add rcx, 0x218
lea r9, [rsp + 0x850]
lea r8, [0x14023a464]
lea rdx, [rsp + 0x8a0]
call fcn.1400065a0
mov qword [rsp + 0x958], rax
mov rcx, qword [rsp + 0x958]
call fcn.140023510
mov rcx, rax
call fcn.1400a948c
mov dword [rsp + 0x30], eax
lea rcx, [rsp + 0x8a0]
call fcn.140001490
movzx ecx, byte [rsp + 0x38]
movzx eax, byte [rsp + 0x34]
shl eax, 8
or ecx, eax
movzx eax, byte [rsp + 0x30]
shl eax, 0x10
or ecx, eax
mov rax, qword [rsp + 0x9e0]
mov dword [rax + 0x234], ecx
mov dword [rsp + 0x850], 0
lea rcx, [rsp + 0x8a8]
call fcn.140001000
mov qword [rsp + 0x960], rax
mov rax, qword [rsp + 0x960]
mov qword [rsp + 0x968], rax
lea r8, [0x14023a4a0]
mov rdx, qword [rsp + 0x968]
lea rcx, [rsp + 0x8b0]
call fcn.1400010b0
mov qword [rsp + 0x970], rax
mov rcx, qword [rsp + 0x970]
call fcn.140023510
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x400
lea r9, [rsp + 0x50]
lea r8, [0x14023a4b8]
lea rdx, [0x14023a4c8]
lea rcx, [0x14023a4e0]
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x8b0]
call fcn.140001490
nop
lea rcx, [rsp + 0x8a8]
call fcn.140001490
mov rcx, qword [rsp + 0x9e0]
add rcx, 0x220
lea rdx, [rsp + 0x50]
call fcn.1400020a0
mov rcx, qword [rsp + 0x9e0]
add rcx, 0x220
lea r9, [rsp + 0x850]
lea r8, [0x14023a4dc]
lea rdx, [rsp + 0x8b8]
call fcn.1400065a0
mov qword [rsp + 0x978], rax
mov rcx, qword [rsp + 0x978]
call fcn.140023510
mov rcx, rax
call fcn.1400a948c
mov dword [rsp + 0x38], eax
lea rcx, [rsp + 0x8b8]
call fcn.140001490
mov rcx, qword [rsp + 0x9e0]
add rcx, 0x220
lea r9, [rsp + 0x850]
lea r8, [0x14023a4fc]
lea rdx, [rsp + 0x8c0]
call fcn.1400065a0
mov qword [rsp + 0x980], rax
mov rcx, qword [rsp + 0x980]
call fcn.140023510
mov rcx, rax
call fcn.1400a948c
mov dword [rsp + 0x34], eax
lea rcx, [rsp + 0x8c0]
call fcn.140001490
mov rcx, qword [rsp + 0x9e0]
add rcx, 0x220
lea r9, [rsp + 0x850]
lea r8, [0x14023a500]
lea rdx, [rsp + 0x8c8]
call fcn.1400065a0
mov qword [rsp + 0x988], rax
mov rcx, qword [rsp + 0x988]
call fcn.140023510
mov rcx, rax
call fcn.1400a948c
mov dword [rsp + 0x30], eax
lea rcx, [rsp + 0x8c8]
call fcn.140001490
movzx ecx, byte [rsp + 0x38]
movzx eax, byte [rsp + 0x34]
shl eax, 8
or ecx, eax
movzx eax, byte [rsp + 0x30]
shl eax, 0x10
or ecx, eax
mov rax, qword [rsp + 0x9e0]
mov dword [rax + 0x238], ecx
mov dword [rsp + 0x850], 0
lea rcx, [rsp + 0x8d0]
call fcn.140001000
mov qword [rsp + 0x990], rax
mov rax, qword [rsp + 0x990]
mov qword [rsp + 0x998], rax
lea r8, [0x14023a508]
mov rdx, qword [rsp + 0x998]
lea rcx, [rsp + 0x8d8]
call fcn.1400010b0
mov qword [rsp + 0x9a0], rax
mov rcx, qword [rsp + 0x9a0]
call fcn.140023510
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x400
lea r9, [rsp + 0x50]
lea r8, [0x14023a520]
lea rdx, [0x14023a538]
lea rcx, [0x14023a550]
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x8d8]
call fcn.140001490
nop
lea rcx, [rsp + 0x8d0]
call fcn.140001490
mov rcx, qword [rsp + 0x9e0]
add rcx, 0x228
lea rdx, [rsp + 0x50]
call fcn.1400020a0
mov rcx, qword [rsp + 0x9e0]
add rcx, 0x228
lea r9, [rsp + 0x850]
lea r8, [0x14023a504]
lea rdx, [rsp + 0x8e0]
call fcn.1400065a0
mov qword [rsp + 0x9a8], rax
mov rcx, qword [rsp + 0x9a8]
call fcn.140023510
mov rcx, rax
call fcn.1400a948c
mov dword [rsp + 0x38], eax
lea rcx, [rsp + 0x8e0]
call fcn.140001490
mov rcx, qword [rsp + 0x9e0]
add rcx, 0x228
lea r9, [rsp + 0x850]
lea r8, [0x14023a534]
lea rdx, [rsp + 0x8e8]
call fcn.1400065a0
mov qword [rsp + 0x9b0], rax
mov rcx, qword [rsp + 0x9b0]
call fcn.140023510
mov rcx, rax
call fcn.1400a948c
mov dword [rsp + 0x34], eax
lea rcx, [rsp + 0x8e8]
call fcn.140001490
mov rcx, qword [rsp + 0x9e0]
add rcx, 0x228
lea r9, [rsp + 0x850]
lea r8, [0x14023a54c]
lea rdx, [rsp + 0x8f0]
call fcn.1400065a0
mov qword [rsp + 0x9b8], rax
mov rcx, qword [rsp + 0x9b8]
call fcn.140023510
mov rcx, rax
call fcn.1400a948c
mov dword [rsp + 0x30], eax
lea rcx, [rsp + 0x8f0]
call fcn.140001490
movzx ecx, byte [rsp + 0x38]
movzx eax, byte [rsp + 0x34]
shl eax, 8
or ecx, eax
movzx eax, byte [rsp + 0x30]
shl eax, 0x10
or ecx, eax
mov rax, qword [rsp + 0x9e0]
mov dword [rax + 0x23c], ecx
xor edx, edx
mov rcx, qword [rsp + 0x9e0]
call fcn.14007bfac
mov eax, 1
mov rcx, qword [rsp + 0x9c0]
xor rcx, rsp
call fcn.1400a8050
add rsp, 0x9d0
pop rdi
ret