Function at 0x18003f9a4
Capabilities:
Get file size
Hash data using fnv
Read file on windows

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x78
xor r12d, r12d
lea rbp, str..DataSFSEPluginsMiniModMenuRegistry.txt
mov qword [rsp + 0x30], r12
xor r9d, r9d
mov dword [rsp + 0x28], 0x80
mov edx, 0x80000000
mov rcx, rbp
mov dword [rsp + 0x20], 3
lea r8d, [r12 + 1]
mov dil, r12b
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov qword [rsp + 0x40], rax
mov r14, rax
cmp rax, 0xffffffffffffffff
jne 0x18003fa4a
lea rbx, str.C:UsersSethDesktopcodeStarfield_Console_Replacer_src_settings.cpp
mov sil, 0x43
mov rcx, rbx
cmp sil, 0x5c
je 0x18003fa14
cmp sil, 0x2f
jne 0x18003fa17
mov rcx, rbx
inc rbx
mov sil, byte [rbx]
test sil, sil
jne 0x18003fa08
inc rcx
mov qword [rsp + 0x20], rbp
lea r9, str._could_not_open_settings_file:__s
mov r8d, 0x12f
lea rdx, str.TurboSettingsParser
call fcn.18003d2ec
xor al, al
jmp 0x18003fe1a
lea rdx, [rsp + 0xd8]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x18003fab2
lea rbx, str.C:UsersSethDesktopcodeStarfield_Console_Replacer_src_settings.cpp
mov sil, 0x43
mov rcx, rbx
cmp sil, 0x5c
je 0x18003fa78
cmp sil, 0x2f
jne 0x18003fa7b
mov rcx, rbx
inc rbx
mov sil, byte [rbx]
test sil, sil
jne 0x18003fa6c
inc rcx
mov qword [rsp + 0x20], rbp
lea r9, str._could_not_get_size_of_settings_file:__s
mov r8d, 0x135
lea rdx, str.TurboSettingsParser
call fcn.18003d2ec
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x18003fa43
mov rbp, qword [rsp + 0xd8]
mov r9d, 4
mov rdx, rbp
mov r8d, 0x3000
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r13, rax
mov sil, 0x43
test rax, rax
jne 0x18003fb27
lea rbx, str.C:UsersSethDesktopcodeStarfield_Console_Replacer_src_settings.cpp
mov al, sil
mov rcx, rbx
mov rdx, rbx
cmp al, 0x5c
je 0x18003faf4
cmp al, 0x2f
jne 0x18003faf7
mov rdx, rcx
inc rcx
mov al, byte [rcx]
test al, al
jne 0x18003faec
lea rcx, [rdx + 1]
mov qword [rsp + 0x20], rbp
lea rdx, str.TurboSettingsParser
mov r8d, 0x13d
lea r9, str._could_not_allocate_llu_bytes_for_settings_file
call fcn.18003d2ec
jmp 0x18003fdd1
lea r9, [rsp + 0xc0]
mov qword [rsp + 0x20], r12
mov r8d, ebp
mov rdx, r13
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x18003fd7f
mov eax, dword [rsp + 0xc0]
cmp rax, rbp
jne 0x18003fd7f
lea rbx, str.C:UsersSethDesktopcodeStarfield_Console_Replacer_src_settings.cpp
mov rdi, r12
test rbp, rbp
je 0x18003fd55
mov qword [rsp + 0xc8], r12
mov r14, rdi
mov qword [rsp + 0xd0], r12
cmp rdi, rbp
jae 0x18003fbc1
lea r15, [r14 + r13]
cmp byte [r15], 0xa
je 0x18003fbae
movzx ecx, byte [r15]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
xor r12d, r12d
test eax, eax
jne 0x18003fbb1
mov qword [rsp + 0xc8], r15
mov rdi, r14
jmp 0x18003fbc4
xor r12d, r12d
inc r14
cmp r14, rbp
jb 0x18003fb86
mov r14, rdi
mov r15, rdi
jmp 0x18003fbcf
xor r12d, r12d
mov r14, rdi
mov r15, rdi
cmp rdi, rbp
jae 0x18003fc04
cmp byte [r15 + r13], 0x3d
je 0x18003fbe3
inc r15
cmp r15, rbp
jb 0x18003fbcf
mov r15, r14
jmp 0x18003fc0f
lea rdi, [r13 - 1]
add rdi, r15
jmp 0x18003fbef
dec rdi
movzx ecx, byte [rdi]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
jne 0x18003fbec
mov byte [rdi + 1], r12b
lea rdi, [r15 + 1]
mov r14, rdi
mov r15, rdi
cmp rdi, rbp
jae 0x18003fc3e
lea r12, [r15 + r13]
cmp byte [r12], 0xa
je 0x18003fc29
movzx ecx, byte [r12]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
je 0x18003fc33
inc r15
cmp r15, rbp
jb 0x18003fc0f
jmp 0x18003fc46
mov qword [rsp + 0xd0], r12
mov rdi, r15
mov r14, rdi
cmp rdi, rbp
jae 0x18003fc79
lea r15, [r14 + r13]
cmp byte [r15], 0xa
je 0x18003fc5a
inc r14
cmp r14, rbp
jb 0x18003fc46
jmp 0x18003fc79
mov ecx, 0xa
jmp 0x18003fc68
dec r15
movzx ecx, byte [r15]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
jne 0x18003fc61
mov byte [r15 + 1], al
mov rdi, r14
mov r15, qword [rsp + 0xc8]
movabs r14, 0xcbf29ce484222325
mov rcx, r15
mov al, byte [r15]
jmp 0x18003fcac
inc rcx
movzx eax, al
xor r14, rax
movabs rdx, 0x100000001b3
imul r14, rdx
mov al, byte [rcx]
test al, al
jne 0x18003fc93
mov r12, qword [rsp + 0xd0]
lea r9, str._key__s___hash__llx___value__s_
mov qword [rsp + 0x30], r12
lea rdx, str.TurboSettingsParser
mov qword [rsp + 0x28], r14
mov r8d, 0x17d
mov rcx, rbx
mov qword [rsp + 0x20], r15
call fcn.18003bc94
mov rdx, qword [0x180053828]
and qword [rsp + 0x60], 0
cmp rdx, qword [0x180053830]
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x58], r12
je 0x18003fd2e
mov qword [rdx], r14
mov qword [rdx + 8], r15
mov qword [rdx + 0x10], r12
xor r12d, r12d
mov qword [rdx + 0x18], r12
mov rdx, qword [0x180053828]
add rdx, 0x20
mov qword [0x180053828], rdx
jmp 0x18003fd42
lea r8, [rsp + 0x48]
call fcn.180040540
mov rdx, qword [0x180053828]
xor r12d, r12d
inc rdi
cmp rdi, rbp
jb 0x18003fb6e
mov r14, qword [rsp + 0x40]
jmp 0x18003fd5c
mov rdx, qword [0x180053828]
mov rcx, qword [0x180053820]
mov r8, rdx
mov r9b, byte [rsp + 0xc0]
sub r8, rcx
sar r8, 5
mov dil, 1
call fcn.18004018c
jmp 0x18003fdd1
lea rbx, str.C:UsersSethDesktopcodeStarfield_Console_Replacer_src_settings.cpp
mov al, sil
mov rcx, rbx
mov rdx, rbx
cmp al, 0x5c
je 0x18003fd97
cmp al, 0x2f
jne 0x18003fd9a
mov rdx, rcx
inc rcx
mov al, byte [rcx]
test al, al
jne 0x18003fd8f
lea rcx, [rdx + 1]
mov r8d, 0x143
lea rdx, str.TurboSettingsParser
lea r9, str._could_not_read_from_settings_registry
call fcn.18003d2ec
xor edx, edx
mov r8d, 0x8000
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x18003fe17
mov rcx, rbx
cmp sil, 0x5c
je 0x18003fded
cmp sil, 0x2f
jne 0x18003fdf0
mov rcx, rbx
inc rbx
mov sil, byte [rbx]
test sil, sil
jne 0x18003fde1
inc rcx
lea r9, str._error_while_closing_settings_registry
mov r8d, 0x18d
lea rdx, str.TurboSettingsParser
call fcn.18003d2ec
mov al, dil
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret