Function at 0x18003f600
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 0x18003f6a6
lea rbx, str.C:UsersSethDesktopcodeStarfield_Console_Replacer_src_settings.cpp
mov sil, 0x43
mov rcx, rbx
cmp sil, 0x5c
je 0x18003f670
cmp sil, 0x2f
jne 0x18003f673
mov rcx, rbx
inc rbx
mov sil, byte [rbx]
test sil, sil
jne 0x18003f664
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.18003d0d0
xor al, al
jmp 0x18003fa76
lea rdx, [rsp + 0xd8]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x18003f70e
lea rbx, str.C:UsersSethDesktopcodeStarfield_Console_Replacer_src_settings.cpp
mov sil, 0x43
mov rcx, rbx
cmp sil, 0x5c
je 0x18003f6d4
cmp sil, 0x2f
jne 0x18003f6d7
mov rcx, rbx
inc rbx
mov sil, byte [rbx]
test sil, sil
jne 0x18003f6c8
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.18003d0d0
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x18003f69f
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 0x18003f783
lea rbx, str.C:UsersSethDesktopcodeStarfield_Console_Replacer_src_settings.cpp
mov al, sil
mov rcx, rbx
mov rdx, rbx
cmp al, 0x5c
je 0x18003f750
cmp al, 0x2f
jne 0x18003f753
mov rdx, rcx
inc rcx
mov al, byte [rcx]
test al, al
jne 0x18003f748
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.18003d0d0
jmp 0x18003fa2d
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 0x18003f9db
mov eax, dword [rsp + 0xc0]
cmp rax, rbp
jne 0x18003f9db
lea rbx, str.C:UsersSethDesktopcodeStarfield_Console_Replacer_src_settings.cpp
mov rdi, r12
test rbp, rbp
je 0x18003f9b1
mov qword [rsp + 0xc8], r12
mov r14, rdi
mov qword [rsp + 0xd0], r12
cmp rdi, rbp
jae 0x18003f81d
lea r15, [r14 + r13]
cmp byte [r15], 0xa
je 0x18003f80a
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 0x18003f80d
mov qword [rsp + 0xc8], r15
mov rdi, r14
jmp 0x18003f820
xor r12d, r12d
inc r14
cmp r14, rbp
jb 0x18003f7e2
mov r14, rdi
mov r15, rdi
jmp 0x18003f82b
xor r12d, r12d
mov r14, rdi
mov r15, rdi
cmp rdi, rbp
jae 0x18003f860
cmp byte [r15 + r13], 0x3d
je 0x18003f83f
inc r15
cmp r15, rbp
jb 0x18003f82b
mov r15, r14
jmp 0x18003f86b
lea rdi, [r13 - 1]
add rdi, r15
jmp 0x18003f84b
dec rdi
movzx ecx, byte [rdi]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
jne 0x18003f848
mov byte [rdi + 1], r12b
lea rdi, [r15 + 1]
mov r14, rdi
mov r15, rdi
cmp rdi, rbp
jae 0x18003f89a
lea r12, [r15 + r13]
cmp byte [r12], 0xa
je 0x18003f885
movzx ecx, byte [r12]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
je 0x18003f88f
inc r15
cmp r15, rbp
jae 0x18003f8a2
jmp 0x18003f86b
mov qword [rsp + 0xd0], r12
mov rdi, r15
mov r14, rdi
cmp rdi, rbp
jae 0x18003f8d5
lea r15, [r14 + r13]
cmp byte [r15], 0xa
je 0x18003f8b6
inc r14
cmp r14, rbp
jb 0x18003f8a2
jmp 0x18003f8d5
mov ecx, 0xa
jmp 0x18003f8c4
dec r15
movzx ecx, byte [r15]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
jne 0x18003f8bd
mov byte [r15 + 1], al
mov rdi, r14
mov r15, qword [rsp + 0xc8]
movabs r14, 0xcbf29ce484222325
mov rcx, r15
mov al, byte [r15]
jmp 0x18003f908
inc rcx
movzx eax, al
xor r14, rax
movabs rdx, 0x100000001b3
imul r14, rdx
mov al, byte [rcx]
test al, al
jne 0x18003f8ef
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.18003ba98
mov rdx, qword [0x180052828]
and qword [rsp + 0x60], 0
cmp rdx, qword [0x180052830]
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x58], r12
je 0x18003f98a
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 [0x180052828]
add rdx, 0x20
mov qword [0x180052828], rdx
jmp 0x18003f99e
lea r8, [rsp + 0x48]
call fcn.180040198
mov rdx, qword [0x180052828]
xor r12d, r12d
inc rdi
cmp rdi, rbp
jb 0x18003f7ca
mov r14, qword [rsp + 0x40]
jmp 0x18003f9b8
mov rdx, qword [0x180052828]
mov rcx, qword [0x180052820]
mov r8, rdx
mov r9b, byte [rsp + 0xc0]
sub r8, rcx
sar r8, 5
mov dil, 1
call fcn.18003fde8
jmp 0x18003fa2d
lea rbx, str.C:UsersSethDesktopcodeStarfield_Console_Replacer_src_settings.cpp
mov al, sil
mov rcx, rbx
mov rdx, rbx
cmp al, 0x5c
je 0x18003f9f3
cmp al, 0x2f
jne 0x18003f9f6
mov rdx, rcx
inc rcx
mov al, byte [rcx]
test al, al
jne 0x18003f9eb
lea rcx, [rdx + 1]
mov r8d, 0x143
lea rdx, str.TurboSettingsParser
lea r9, str._could_not_read_from_settings_registry
call fcn.18003d0d0
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 0x18003fa73
mov rcx, rbx
cmp sil, 0x5c
je 0x18003fa49
cmp sil, 0x2f
jne 0x18003fa4c
mov rcx, rbx
inc rbx
mov sil, byte [rbx]
test sil, sil
jne 0x18003fa3d
inc rcx
lea r9, str._error_while_closing_settings_registry
mov r8d, 0x18d
lea rdx, str.TurboSettingsParser
call fcn.18003d0d0
mov al, dil
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret