Function at 0x18003f52c
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 0x18003f5d2
lea rbx, str.C:UsersSethDesktopcodeStarfield_Console_Replacer_src_settings.cpp
mov sil, 0x43
mov rcx, rbx
cmp sil, 0x5c
je 0x18003f59c
cmp sil, 0x2f
jne 0x18003f59f
mov rcx, rbx
inc rbx
mov sil, byte [rbx]
test sil, sil
jne 0x18003f590
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.18003cf14
xor al, al
jmp 0x18003f9a2
lea rdx, [rsp + 0xd8]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x18003f63a
lea rbx, str.C:UsersSethDesktopcodeStarfield_Console_Replacer_src_settings.cpp
mov sil, 0x43
mov rcx, rbx
cmp sil, 0x5c
je 0x18003f600
cmp sil, 0x2f
jne 0x18003f603
mov rcx, rbx
inc rbx
mov sil, byte [rbx]
test sil, sil
jne 0x18003f5f4
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.18003cf14
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x18003f5cb
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 0x18003f6af
lea rbx, str.C:UsersSethDesktopcodeStarfield_Console_Replacer_src_settings.cpp
mov al, sil
mov rcx, rbx
mov rdx, rbx
cmp al, 0x5c
je 0x18003f67c
cmp al, 0x2f
jne 0x18003f67f
mov rdx, rcx
inc rcx
mov al, byte [rcx]
test al, al
jne 0x18003f674
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.18003cf14
jmp 0x18003f959
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 0x18003f907
mov eax, dword [rsp + 0xc0]
cmp rax, rbp
jne 0x18003f907
lea rbx, str.C:UsersSethDesktopcodeStarfield_Console_Replacer_src_settings.cpp
mov rdi, r12
test rbp, rbp
je 0x18003f8dd
mov qword [rsp + 0xc8], r12
mov r14, rdi
mov qword [rsp + 0xd0], r12
cmp rdi, rbp
jae 0x18003f749
lea r15, [r14 + r13]
cmp byte [r15], 0xa
je 0x18003f736
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 0x18003f739
mov qword [rsp + 0xc8], r15
mov rdi, r14
jmp 0x18003f74c
xor r12d, r12d
inc r14
cmp r14, rbp
jb 0x18003f70e
mov r14, rdi
mov r15, rdi
jmp 0x18003f757
xor r12d, r12d
mov r14, rdi
mov r15, rdi
cmp rdi, rbp
jae 0x18003f78c
cmp byte [r15 + r13], 0x3d
je 0x18003f76b
inc r15
cmp r15, rbp
jb 0x18003f757
mov r15, r14
jmp 0x18003f797
lea rdi, [r13 - 1]
add rdi, r15
jmp 0x18003f777
dec rdi
movzx ecx, byte [rdi]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
jne 0x18003f774
mov byte [rdi + 1], r12b
lea rdi, [r15 + 1]
mov r14, rdi
mov r15, rdi
cmp rdi, rbp
jae 0x18003f7c6
lea r12, [r15 + r13]
cmp byte [r12], 0xa
je 0x18003f7b1
movzx ecx, byte [r12]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
je 0x18003f7bb
inc r15
cmp r15, rbp
jb 0x18003f797
jmp 0x18003f7ce
mov qword [rsp + 0xd0], r12
mov rdi, r15
mov r14, rdi
cmp rdi, rbp
jae 0x18003f801
lea r15, [r14 + r13]
cmp byte [r15], 0xa
je 0x18003f7e2
inc r14
cmp r14, rbp
jb 0x18003f7ce
jmp 0x18003f801
mov ecx, 0xa
jmp 0x18003f7f0
dec r15
movzx ecx, byte [r15]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
jne 0x18003f7e9
mov byte [r15 + 1], al
mov rdi, r14
mov r15, qword [rsp + 0xc8]
movabs r14, 0xcbf29ce484222325
mov rcx, r15
mov al, byte [r15]
jmp 0x18003f834
inc rcx
movzx eax, al
xor r14, rax
movabs rdx, 0x100000001b3
imul r14, rdx
mov al, byte [rcx]
test al, al
jne 0x18003f81b
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.18003b8bc
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 0x18003f8b6
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 0x18003f8ca
lea r8, [rsp + 0x48]
call fcn.1800400c8
mov rdx, qword [0x180052828]
xor r12d, r12d
inc rdi
cmp rdi, rbp
jb 0x18003f6f6
mov r14, qword [rsp + 0x40]
jmp 0x18003f8e4
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.18003fd14
jmp 0x18003f959
lea rbx, str.C:UsersSethDesktopcodeStarfield_Console_Replacer_src_settings.cpp
mov al, sil
mov rcx, rbx
mov rdx, rbx
cmp al, 0x5c
je 0x18003f91f
cmp al, 0x2f
jne 0x18003f922
mov rdx, rcx
inc rcx
mov al, byte [rcx]
test al, al
jne 0x18003f917
lea rcx, [rdx + 1]
mov r8d, 0x143
lea rdx, str.TurboSettingsParser
lea r9, str._could_not_read_from_settings_registry
call fcn.18003cf14
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 0x18003f99f
mov rcx, rbx
cmp sil, 0x5c
je 0x18003f975
cmp sil, 0x2f
jne 0x18003f978
mov rcx, rbx
inc rbx
mov sil, byte [rbx]
test sil, sil
jne 0x18003f969
inc rcx
lea r9, str._error_while_closing_settings_registry
mov r8d, 0x18d
lea rdx, str.TurboSettingsParser
call fcn.18003cf14
mov al, dil
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret