Function at 0x18003f69c
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 r14d, r14d
lea rsi, str..DataSFSEPluginsMiniModMenuRegistry.txt
mov qword [rsp + 0x30], r14
xor r9d, r9d
mov dword [rsp + 0x28], 0x80
mov edx, 0x80000000
mov rcx, rsi
mov dword [rsp + 0x20], 3
lea r8d, [r14 + 1]
mov dil, r14b
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov qword [rsp + 0x40], rax
mov rbp, rax
cmp rax, 0xffffffffffffffff
jne 0x18003f740
lea rbx, str.C:UsersSethDesktopcodeStarfield_Console_Replacer_src_settings.cpp
mov r12b, 0x43
mov rcx, rbx
cmp r12b, 0x5c
mov rax, rbx
cmovne rax, rcx
inc rbx
mov rcx, rax
mov r12b, byte [rbx]
test r12b, r12b
jne 0x18003f6ff
inc rcx
mov qword [rsp + 0x20], rsi
lea r9, str._could_not_open_settings_file:__s
mov r8d, 0x12f
lea rdx, str.TurboSettingsParser
call fcn.18003d1f8
xor al, al
jmp 0x18003fb0f
lea rdx, [rsp + 0xd8]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x18003f7a7
lea rbx, str.C:UsersSethDesktopcodeStarfield_Console_Replacer_src_settings.cpp
mov r12b, 0x43
mov rcx, rbx
cmp r12b, 0x5c
mov rax, rbx
cmovne rax, rcx
inc rbx
mov rcx, rax
mov r12b, byte [rbx]
test r12b, r12b
jne 0x18003f762
inc rcx
mov qword [rsp + 0x20], rsi
lea r9, str._could_not_get_size_of_settings_file:__s
mov r8d, 0x135
lea rdx, str.TurboSettingsParser
call fcn.18003d1f8
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x18003f739
mov rsi, qword [rsp + 0xd8]
mov r9d, 4
mov rdx, rsi
mov r8d, 0x3000
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r13, rax
mov r12b, 0x43
test rax, rax
jne 0x18003f821
lea rbx, str.C:UsersSethDesktopcodeStarfield_Console_Replacer_src_settings.cpp
mov r8b, r12b
mov rcx, rbx
mov rdx, rbx
cmp r8b, 0x5c
mov rax, rcx
cmovne rax, rdx
inc rcx
mov rdx, rax
mov r8b, byte [rcx]
test r8b, r8b
jne 0x18003f7e1
lea rcx, [rax + 1]
mov qword [rsp + 0x20], rsi
lea r9, str._could_not_allocate_llu_bytes_for_settings_file
mov r8d, 0x13d
lea rdx, str.TurboSettingsParser
call fcn.18003d1f8
jmp 0x18003fac7
lea r9, [rsp + 0xc0]
mov qword [rsp + 0x20], r14
mov r8d, esi
mov rdx, r13
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x18003fa73
mov eax, dword [rsp + 0xc0]
cmp rax, rsi
jne 0x18003fa73
lea rbx, str.C:UsersSethDesktopcodeStarfield_Console_Replacer_src_settings.cpp
mov rdi, r14
test rsi, rsi
je 0x18003fa49
mov qword [rsp + 0xc8], r14
mov qword [rsp + 0xd0], r14
mov r14, rdi
cmp rdi, rsi
jae 0x18003f8b9
lea r15, [r14 + r13]
cmp byte [r15], 0xa
je 0x18003f8a7
movzx ecx, byte [r15]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
xor ebp, ebp
test eax, eax
jne 0x18003f8a9
mov qword [rsp + 0xc8], r15
mov rdi, r14
jmp 0x18003f8bb
xor ebp, ebp
inc r14
cmp r14, rsi
jb 0x18003f880
mov r14, rdi
mov r15, rdi
jmp 0x18003f8c6
xor ebp, ebp
mov r14, rdi
mov r15, rdi
cmp rdi, rsi
jae 0x18003f8fb
cmp byte [r15 + r13], 0x3d
je 0x18003f8da
inc r15
cmp r15, rsi
jb 0x18003f8c6
mov r15, r14
jmp 0x18003f906
lea rdi, [r13 - 1]
add rdi, r15
jmp 0x18003f8e6
dec rdi
movzx ecx, byte [rdi]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
jne 0x18003f8e3
mov byte [rdi + 1], bpl
lea rdi, [r15 + 1]
mov r14, rdi
mov r15, rdi
cmp rdi, rsi
jae 0x18003f933
lea rbp, [r15 + r13]
cmp byte [rbp], 0xa
je 0x18003f91e
movzx ecx, byte [rbp]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
je 0x18003f928
inc r15
cmp r15, rsi
jae 0x18003f93b
jmp 0x18003f906
mov qword [rsp + 0xd0], rbp
mov rdi, r15
mov r14, rdi
cmp rdi, rsi
jae 0x18003f96d
lea rbp, [r14 + r13]
cmp byte [rbp], 0xa
je 0x18003f94f
inc r14
cmp r14, rsi
jb 0x18003f93b
jmp 0x18003f96d
mov ecx, 0xa
jmp 0x18003f95d
dec rbp
movzx ecx, byte [rbp]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
jne 0x18003f956
mov byte [rbp + 1], al
mov rdi, r14
mov r14, qword [rsp + 0xc8]
movabs rbp, 0xcbf29ce484222325
mov rcx, r14
mov al, byte [r14]
jmp 0x18003f9a0
inc rcx
movzx eax, al
xor rbp, rax
movabs rdx, 0x100000001b3
imul rbp, rdx
mov al, byte [rcx]
test al, al
jne 0x18003f987
mov r15, qword [rsp + 0xd0]
lea r9, str._key__s___hash__llx___value__s_
mov qword [rsp + 0x30], r15
lea rdx, str.TurboSettingsParser
mov qword [rsp + 0x28], rbp
mov r8d, 0x17d
mov rcx, rbx
mov qword [rsp + 0x20], r14
call fcn.18003bbc0
mov rdx, qword [0x180052828]
and qword [rsp + 0x60], 0
cmp rdx, qword [0x180052830]
mov qword [rsp + 0x48], rbp
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x58], r15
je 0x18003fa22
mov qword [rdx], rbp
mov qword [rdx + 8], r14
xor r14d, r14d
mov qword [rdx + 0x10], r15
mov qword [rdx + 0x18], r14
mov rdx, qword [0x180052828]
add rdx, 0x20
mov qword [0x180052828], rdx
jmp 0x18003fa36
lea r8, [rsp + 0x48]
call fcn.180040230
mov rdx, qword [0x180052828]
xor r14d, r14d
inc rdi
cmp rdi, rsi
jb 0x18003f868
mov rbp, qword [rsp + 0x40]
jmp 0x18003fa50
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.18003fe80
jmp 0x18003fac7
lea rbx, str.C:UsersSethDesktopcodeStarfield_Console_Replacer_src_settings.cpp
mov dl, r12b
mov rcx, rbx
mov r8, rbx
cmp dl, 0x5c
mov rax, rcx
cmovne rax, r8
inc rcx
mov r8, rax
mov dl, byte [rcx]
test dl, dl
jne 0x18003fa83
lea rcx, [rax + 1]
mov r8d, 0x143
lea r9, str._could_not_read_from_settings_registry
lea rdx, str.TurboSettingsParser
call fcn.18003d1f8
xor edx, edx
mov r8d, 0x8000
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x18003fb0c
mov rcx, rbx
cmp r12b, 0x5c
mov rax, rbx
cmovne rax, rcx
inc rbx
mov rcx, rax
mov r12b, byte [rbx]
test r12b, r12b
jne 0x18003fad7
inc rcx
lea r9, str._error_while_closing_settings_registry
mov r8d, 0x18d
lea rdx, str.TurboSettingsParser
call fcn.18003d1f8
mov al, dil
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret