Function at 0x140022050
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x458
xor ebx, ebx
mov qword [rsp + 0x4a0], rcx
call fcn.140021f8f
mov qword [rsp + 0x48], rax
test rax, rax
je 0x1400223db
lea r12, [rsp + 0x50]
mov r9, rax
mov r8d, 0x400
mov edx, 1
mov rcx, r12
call sub.msvcrt.dll_fread
lea rcx, str.Invalid_loc_file:_the_file_is_too_small_
cmp rax, 0x3ff
jbe 0x1400220ba
xor eax, eax
cmp byte [rsp + 0x50], 0x80
jbe 0x1400220c6
lea rcx, str.Invalid_loc_file:_the_file_should_not_have_a_BOM__Byte_Order_Mark_
call fcn.140036717
xor ebx, ebx
jmp 0x140022164
mov dl, byte [r12 + rax]
inc rax
cmp dl, 0xd
jne 0x1400220dd
cmp byte [r12 + rax], 0xa
je 0x140022173
cmp rax, 0x3ff
jne 0x1400220c6
lea rcx, str.Invalid_loc_file:_the_file_MUST_be_saved_in_DOS_mode__CR_LF_
jmp 0x1400220ba
lea rdx, [0x14008f7ce]
mov rcx, r12
inc dword [rbp]
call sub.msvcrt.dll_strspn
movsx ecx, byte [rsp + rax + 0x50]
lea edx, [rcx - 0x61]
cmp dl, 0x15
jbe 0x1400221a9
mov rcx, qword [rsp + 0x48]
call sub.msvcrt.dll_ftell
mov r8, qword [rsp + 0x48]
mov edx, 0x400
mov rcx, r12
mov r15d, eax
call sub.msvcrt.dll_fgets
test rax, rax
jne 0x1400220ee
test rbx, rbx
jne 0x140022393
mov rax, qword [0x1400b1b30]
xor ebx, ebx
cmp qword [rax + 8], rax
setne bl
jne 0x140022164
mov rdx, qword [rsp + 0x4a0]
lea rcx, str.localization:__s_contains_no_valid_locale_sections_n
call fcn.140036717
mov rcx, qword [rsp + 0x48]
call sub.msvcrt.dll_fclose
jmp 0x1400223db
mov rcx, qword [rsp + 0x48]
xor r8d, r8d
xor edx, edx
or r14d, 0xffffffff
or r13d, 0xffffffff
xor edi, edi
xor ebx, ebx
call sub.msvcrt.dll_fseek
mov rbp, qword [0x1400b1b20]
xor eax, eax
mov byte [rsp + 0x50], 0
mov dword [rbp], eax
call fcn.14001d2c1
jmp 0x140022111
mov rsi, 0xffffffffffdff7fe
bt rsi, rdx
jb 0x140022111
lea rdx, [r12 + rax + 1]
call fcn.1400216fe
mov rsi, rax
test rax, rax
je 0x140022386
mov al, byte [rax]
lea edx, [rax - 2]
cmp dl, 1
jbe 0x1400221e2
cmp al, 6
jne 0x140022386
cmp al, 3
je 0x1400221f3
cmp al, 6
jne 0x1400222d1
jmp 0x140022273
test rbx, rbx
je 0x14002222f
test edi, edi
jne 0x14002222b
lea rcx, str.localization:_no_compatible_version_was_found___this_locale_will_be_ignored_n
call fcn.140036717
mov rdx, qword [rbx + 0x30]
mov rax, qword [rbx + 0x28]
xor ecx, ecx
mov qword [rdx], rax
mov qword [rax + 8], rdx
mov qword [rbx + 0x28], rcx
mov qword [rbx + 0x30], rcx
mov rcx, rbx
call fcn.14001d0f8
jmp 0x14002222f
mov dword [rbx + 0xc], r15d
mov rcx, qword [rsp + 0x48]
mov rbx, rsi
xor edi, edi
call sub.msvcrt.dll_ftell
lea rdx, [rsi + 0x28]
mov dword [rsi + 8], eax
mov rax, qword [0x1400b1b30]
mov rcx, qword [rax]
mov qword [rsi + 0x30], rax
mov qword [rax], rdx
mov qword [rsi + 0x28], rcx
mov qword [rcx + 8], rdx
mov rdx, qword [rsi + 0x18]
lea rcx, str.localization:_found_locale__s_n
call fcn.140036717
jmp 0x140022111
xor r15d, r15d
test rbx, rbx
jne 0x1400222a2
mov rax, qword [0x1400b1b10]
mov r8d, dword [rbp]
lea rcx, str._s__d_:__a_ttributes_cannot_precede__l_ocale_n
mov rdx, qword [rax]
jmp 0x140022326
cmp r9b, 0x72
jne 0x1400222b5
or dword [rbx + 4], 1
inc r15
mov rdx, qword [rsi + 0x18]
movsx r9d, byte [rdx + r15]
test r9b, r9b
jne 0x140022295
jmp 0x140022386
mov rax, qword [0x1400b1b10]
mov r8d, dword [rbp]
lea rcx, str._s__d_:_unknown_attribute__c___ignored_n
mov rdx, qword [rax]
call fcn.140036717
jmp 0x14002229f
mov r8d, dword [rbp]
test edi, edi
je 0x1400222f7
mov rax, qword [0x1400b1b10]
mov r9d, edi
lea rcx, str._s__d_:__v_ersion_was_already_provided_at_line__d_n
mov rdx, qword [rax]
call fcn.140036717
jmp 0x140022386
cmp byte [rsi + 1], 2
je 0x140022310
mov rax, qword [0x1400b1b10]
lea rcx, str._s__d_:__v_ersion_format_is_invalid_n
mov rdx, qword [rax]
jmp 0x140022326
test rbx, rbx
jne 0x14002232d
mov rax, qword [0x1400b1b10]
lea rcx, str._s__d_:__v_ersion_cannot_precede__l_ocale_n
mov rdx, qword [rax]
call fcn.140036717
jmp 0x140022386
cmp r13d, 0xffffffff
mov rax, qword [rsi + 0x10]
jne 0x140022343
mov r13d, dword [rax]
mov r14d, dword [rax + 4]
mov edi, r8d
jmp 0x140022386
mov edx, dword [rax]
cmp edx, r13d
jb 0x140022355
cmp r13d, edx
jne 0x140022383
cmp dword [rax + 4], r14d
jae 0x140022383
or dword [rbx + 4], 2
lea rcx, str._s__d_:_the_version_of_this_translation_is_older_than_the_base_one_and_may_result_in_some_messages_not_being_properly_translated._nIf_you_are_the_translator__please_update_your_translation_with_the_changes_that_intervened_between_v_d._d_and_v_d._d._nSee_https:__github.com_pbatard_rufus_blob_master_res_loc_ChangeLog.txt_n
mov dword [rsp + 0x30], r14d
mov dword [rsp + 0x28], r13d
mov edx, dword [rax + 4]
mov dword [rsp + 0x20], edx
mov r9d, dword [rax]
mov rax, qword [0x1400b1b10]
mov rdx, qword [rax]
call fcn.140036717
mov edi, dword [rbp]
mov rcx, rsi
call fcn.14001d0f8
jmp 0x140022111
test edi, edi
jne 0x1400223c9
lea rcx, str.localization:_no_compatible_version_was_found___this_locale_will_be_ignored_n
call fcn.140036717
mov rdx, qword [rbx + 0x30]
mov rax, qword [rbx + 0x28]
mov rcx, rbx
mov qword [rdx], rax
mov qword [rax + 8], rdx
xor edx, edx
mov qword [rbx + 0x28], rdx
mov qword [rbx + 0x30], rdx
call fcn.14001d0f8
jmp 0x14002213e
mov rcx, qword [rsp + 0x48]
call sub.msvcrt.dll_ftell
mov dword [rbx + 0xc], eax
jmp 0x14002213e
mov eax, ebx
add rsp, 0x458
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret