Function at 0x426651
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
xor ebx, ebx
sub esp, 0x44c
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00426590
mov dword [ebp - 0x420], eax
test eax, eax
je 0x426a74
lea ebx, [ebp - 0x418]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x400
mov dword [esp + 4], 1
mov dword [esp], ebx
call sub.msvcrt.dll_fread
cmp eax, 0x3ff
ja 0x4266aa
mov dword [esp], str.Invalid_loc_file:_the_file_is_too_small_
jmp 0x4266bc
xor eax, eax
cmp byte [ebp - 0x418], 0x80
jbe 0x4266c8
mov dword [esp], str.Invalid_loc_file:_the_file_should_not_have_a_BOM__Byte_Order_Mark_
call fcn.0043d9e0
xor ebx, ebx
jmp 0x426803
mov dl, byte [ebx + eax]
inc eax
cmp dl, 0xd
jne 0x4266db
cmp byte [ebx + eax], 0xa
je 0x426816
cmp eax, 0x3ff
jne 0x4266c8
mov dword [esp], str.Invalid_loc_file:_the_file_MUST_be_saved_in_DOS_mode__CR_LF_
jmp 0x4266bc
mov dword [esp + 4], 0x4a071e
mov dword [esp], esi
inc dword [0x510e70]
call sub.msvcrt.dll_strspn
mov edx, eax
movsx eax, byte [ebp + eax - 0x418]
lea ecx, [eax - 0x61]
cmp cl, 0x15
ja 0x42679b
mov edi, 0xffdff7fe
sar edi, cl
and edi, 1
jne 0x42679b
lea edx, [esi + edx + 1]
call fcn.00425cec
mov esi, eax
test eax, eax
je 0x42694f
mov al, byte [eax]
lea edx, [eax - 2]
cmp dl, 1
ja 0x426865
cmp al, 3
jne 0x426872
test ebx, ebx
jne 0x42687c
mov eax, dword [ebp - 0x420]
mov ebx, esi
mov dword [esp], eax
call sub.msvcrt.dll_ftell
mov edx, dword [0x510e68]
mov dword [esi + 0x20], 0x510e68
mov dword [esi + 8], eax
lea eax, [esi + 0x1c]
mov dword [esi + 0x1c], edx
mov dword [0x510e68], eax
mov dword [edx + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], str.localization:_found_locale__s_n
mov dword [esp + 4], eax
call fcn.0043d9e0
mov dword [ebp - 0x41c], edi
mov eax, dword [ebp - 0x420]
lea esi, [ebp - 0x418]
mov dword [esp], eax
call sub.msvcrt.dll_ftell
mov dword [esp + 4], 0x400
mov dword [ebp - 0x42c], eax
mov eax, dword [ebp - 0x420]
mov dword [esp], esi
mov dword [esp + 8], eax
call sub.msvcrt.dll_fgets
test eax, eax
jne 0x4266eb
test ebx, ebx
jne 0x426a29
xor ebx, ebx
cmp dword [0x510e6c], 0x510e68
setne bl
jne 0x426803
mov eax, dword [ebp + 8]
mov dword [esp], str.localization:__s_contains_no_valid_locale_sections_n
mov dword [esp + 4], eax
call fcn.0043d9e0
mov eax, dword [ebp - 0x420]
mov dword [esp], eax
call sub.msvcrt.dll_fclose
jmp 0x426a74
xor eax, eax
xor ebx, ebx
mov dword [esp + 8], eax
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x420]
mov dword [esp], eax
call sub.msvcrt.dll_fseek
xor edx, edx
mov byte [ebp - 0x418], 0
mov dword [0x510e70], edx
call fcn.00422b2a
xor ecx, ecx
mov dword [ebp - 0x428], 0xffffffff
mov dword [ebp - 0x424], 0xffffffff
mov dword [ebp - 0x41c], ecx
jmp 0x42679b
cmp al, 6
je 0x426744
jmp 0x42694f
cmp al, 6
jne 0x42691d
jmp 0x4268bf
cmp dword [ebp - 0x41c], 0
jne 0x4268b1
mov dword [esp], str.localization:_no_compatible_version_was_found___this_locale_will_be_ignored_n
call fcn.0043d9e0
mov eax, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x20]
mov dword [edx], eax
mov dword [eax + 4], edx
xor eax, eax
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x20], eax
mov dword [esp], ebx
call fcn.0042296d
jmp 0x426754
mov eax, dword [ebp - 0x42c]
mov dword [ebx + 0xc], eax
jmp 0x426754
xor edi, edi
test ebx, ebx
jne 0x4268ec
mov eax, dword [0x510e70]
mov dword [esp], str._s__d_:__a_ttributes_cannot_precede__l_ocale_n
mov dword [esp + 8], eax
mov eax, dword [0x510e64]
mov dword [esp + 4], eax
jmp 0x426996
cmp al, 0x72
jne 0x4268f9
or dword [ebx + 4], 1
inc edi
mov eax, dword [esi + 0x14]
movsx eax, byte [eax + edi]
test al, al
jne 0x4268e3
jmp 0x42694f
mov dword [esp + 0xc], eax
mov eax, dword [0x510e70]
mov dword [esp], str._s__d_:_unknown_attribute__c___ignored_n
mov dword [esp + 8], eax
mov eax, dword [0x510e64]
mov dword [esp + 4], eax
call fcn.0043d9e0
jmp 0x4268eb
cmp dword [ebp - 0x41c], 0
mov edx, dword [0x510e70]
je 0x426962
mov eax, dword [ebp - 0x41c]
mov dword [esp + 8], edx
mov dword [esp], str._s__d_:__v_ersion_was_already_provided_at_line__d_n
mov dword [esp + 0xc], eax
mov eax, dword [0x510e64]
mov dword [esp + 4], eax
call fcn.0043d9e0
mov dword [esp], esi
call fcn.0042296d
mov edi, dword [ebp - 0x41c]
jmp 0x426795
cmp byte [esi + 1], 2
je 0x42697e
mov eax, dword [0x510e64]
mov dword [esp + 8], edx
mov dword [esp], str._s__d_:__v_ersion_format_is_invalid_n
mov dword [esp + 4], eax
jmp 0x426996
test ebx, ebx
jne 0x42699d
mov eax, dword [0x510e64]
mov dword [esp + 8], edx
mov dword [esp], str._s__d_:__v_ersion_cannot_precede__l_ocale_n
mov dword [esp + 4], eax
call fcn.0043d9e0
jmp 0x42694f
mov eax, dword [esi + 0x10]
cmp dword [ebp - 0x424], 0xffffffff
mov ecx, dword [eax]
jne 0x4269c2
mov eax, dword [eax + 4]
mov dword [ebp - 0x424], ecx
mov dword [ebp - 0x41c], edx
mov dword [ebp - 0x428], eax
jmp 0x42694f
mov edi, dword [ebp - 0x424]
cmp ecx, edi
jb 0x4269db
cmp edi, ecx
jne 0x426a19
mov ecx, dword [ebp - 0x428]
cmp dword [eax + 4], ecx
jae 0x426a19
mov ecx, dword [ebp - 0x428]
or dword [ebx + 4], 2
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp - 0x424]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x10], ecx
mov eax, dword [eax]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, dword [0x510e64]
mov dword [esp], 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 [esp + 4], eax
call fcn.0043d9e0
mov eax, dword [0x510e70]
mov dword [ebp - 0x41c], eax
jmp 0x42694f
cmp dword [ebp - 0x41c], 0
jne 0x426a5e
mov dword [esp], str.localization:_no_compatible_version_was_found___this_locale_will_be_ignored_n
xor esi, esi
call fcn.0043d9e0
mov edx, dword [ebx + 0x20]
mov eax, dword [ebx + 0x1c]
mov dword [edx], eax
mov dword [eax + 4], edx
mov dword [ebx + 0x1c], esi
mov dword [ebx + 0x20], esi
mov dword [esp], ebx
call fcn.0042296d
jmp 0x4267df
mov eax, dword [ebp - 0x420]
mov dword [esp], eax
call sub.msvcrt.dll_ftell
mov dword [ebx + 0xc], eax
jmp 0x4267df
add esp, 0x44c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret