Function at 0x427767
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.004276a6
mov dword [ebp - 0x420], eax
test eax, eax
je 0x427b8a
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 0x4277c0
mov dword [esp], str.Invalid_loc_file:_the_file_is_too_small_
jmp 0x4277d2
xor eax, eax
cmp byte [ebp - 0x418], 0x80
jbe 0x4277de
mov dword [esp], str.Invalid_loc_file:_the_file_should_not_have_a_BOM__Byte_Order_Mark_
call fcn.0043efa9
xor ebx, ebx
jmp 0x427919
mov dl, byte [ebx + eax]
inc eax
cmp dl, 0xd
jne 0x4277f1
cmp byte [ebx + eax], 0xa
je 0x42792c
cmp eax, 0x3ff
jne 0x4277de
mov dword [esp], str.Invalid_loc_file:_the_file_MUST_be_saved_in_DOS_mode__CR_LF_
jmp 0x4277d2
mov dword [esp + 4], 0x4a33be
mov dword [esp], esi
inc dword [0x5139f0]
call sub.msvcrt.dll_strspn
mov edx, eax
movsx eax, byte [ebp + eax - 0x418]
lea ecx, [eax - 0x61]
cmp cl, 0x15
ja 0x4278b1
mov edi, 0xffdff7fe
sar edi, cl
and edi, 1
jne 0x4278b1
lea edx, [esi + edx + 1]
call fcn.00426e1c
mov esi, eax
test eax, eax
je 0x427a65
mov al, byte [eax]
lea edx, [eax - 2]
cmp dl, 1
ja 0x42797b
cmp al, 3
jne 0x427988
test ebx, ebx
jne 0x427992
mov eax, dword [ebp - 0x420]
mov ebx, esi
mov dword [esp], eax
call sub.msvcrt.dll_ftell
mov edx, dword [0x5139e8]
mov dword [esi + 0x20], 0x5139e8
mov dword [esi + 8], eax
lea eax, [esi + 0x1c]
mov dword [esi + 0x1c], edx
mov dword [0x5139e8], 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.0043efa9
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 0x427801
test ebx, ebx
jne 0x427b3f
xor ebx, ebx
cmp dword [0x5139ec], 0x5139e8
setne bl
jne 0x427919
mov eax, dword [ebp + 8]
mov dword [esp], str.localization:__s_contains_no_valid_locale_sections_n
mov dword [esp + 4], eax
call fcn.0043efa9
mov eax, dword [ebp - 0x420]
mov dword [esp], eax
call sub.msvcrt.dll_fclose
jmp 0x427b8a
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 [0x5139f0], edx
call fcn.00422658
xor ecx, ecx
mov dword [ebp - 0x428], 0xffffffff
mov dword [ebp - 0x424], 0xffffffff
mov dword [ebp - 0x41c], ecx
jmp 0x4278b1
cmp al, 6
je 0x42785a
jmp 0x427a65
cmp al, 6
jne 0x427a33
jmp 0x4279d5
cmp dword [ebp - 0x41c], 0
jne 0x4279c7
mov dword [esp], str.localization:_no_compatible_version_was_found___this_locale_will_be_ignored_n
call fcn.0043efa9
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.00422499
jmp 0x42786a
mov eax, dword [ebp - 0x42c]
mov dword [ebx + 0xc], eax
jmp 0x42786a
xor edi, edi
test ebx, ebx
jne 0x427a02
mov eax, dword [0x5139f0]
mov dword [esp], str._s__d_:__a_ttributes_cannot_precede__l_ocale_n
mov dword [esp + 8], eax
mov eax, dword [0x5139e4]
mov dword [esp + 4], eax
jmp 0x427aac
cmp al, 0x72
jne 0x427a0f
or dword [ebx + 4], 1
inc edi
mov eax, dword [esi + 0x14]
movsx eax, byte [eax + edi]
test al, al
jne 0x4279f9
jmp 0x427a65
mov dword [esp + 0xc], eax
mov eax, dword [0x5139f0]
mov dword [esp], str._s__d_:_unknown_attribute__c___ignored_n
mov dword [esp + 8], eax
mov eax, dword [0x5139e4]
mov dword [esp + 4], eax
call fcn.0043efa9
jmp 0x427a01
cmp dword [ebp - 0x41c], 0
mov edx, dword [0x5139f0]
je 0x427a78
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 [0x5139e4]
mov dword [esp + 4], eax
call fcn.0043efa9
mov dword [esp], esi
call fcn.00422499
mov edi, dword [ebp - 0x41c]
jmp 0x4278ab
cmp byte [esi + 1], 2
je 0x427a94
mov eax, dword [0x5139e4]
mov dword [esp + 8], edx
mov dword [esp], str._s__d_:__v_ersion_format_is_invalid_n
mov dword [esp + 4], eax
jmp 0x427aac
test ebx, ebx
jne 0x427ab3
mov eax, dword [0x5139e4]
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.0043efa9
jmp 0x427a65
mov eax, dword [esi + 0x10]
cmp dword [ebp - 0x424], 0xffffffff
mov ecx, dword [eax]
jne 0x427ad8
mov eax, dword [eax + 4]
mov dword [ebp - 0x424], ecx
mov dword [ebp - 0x41c], edx
mov dword [ebp - 0x428], eax
jmp 0x427a65
mov edi, dword [ebp - 0x424]
cmp ecx, edi
jb 0x427af1
cmp edi, ecx
jne 0x427b2f
mov ecx, dword [ebp - 0x428]
cmp dword [eax + 4], ecx
jae 0x427b2f
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 [0x5139e4]
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.0043efa9
mov eax, dword [0x5139f0]
mov dword [ebp - 0x41c], eax
jmp 0x427a65
cmp dword [ebp - 0x41c], 0
jne 0x427b74
mov dword [esp], str.localization:_no_compatible_version_was_found___this_locale_will_be_ignored_n
xor esi, esi
call fcn.0043efa9
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.00422499
jmp 0x4278f5
mov eax, dword [ebp - 0x420]
mov dword [esp], eax
call sub.msvcrt.dll_ftell
mov dword [ebx + 0xc], eax
jmp 0x4278f5
add esp, 0x44c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret