Function at 0x465bc0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x460
mov eax, dword [0xc18374]
xor eax, esp
mov dword [esp + 0x45c], eax
push ebx
mov ebx, dword [esp + 0x46c]
push ebp
mov ebp, dword [esp + 0x46c]
cmp dword [ebp + 0x18], 0x10
push esi
push edi
lea esi, [ebp + 4]
jb 0x465bf3
mov eax, dword [esi]
jmp 0x465bf5
mov eax, esi
push 0x4e01e0
push eax
call dword [sym.imp.MSVCR90.dll_fopen]
mov edi, eax
add esp, 8
test edi, edi
jne 0x465c4c
cmp dword [ebp + 0x18], 0x10
jb 0x465c12
mov esi, dword [esi]
push esi
lea eax, [esp + 0x20]
push str.file_open_failed:__s.
push eax
mov dword [esp + 0x28], 1
mov dword [esp + 0x2c], str.FileUtils::ComputeCloneCheckSum
mov dword [esp + 0x30], str....._flashtoolUtilityFileUtils.cpp
mov dword [esp + 0x34], 0x193
call fcn.0040b750
add esp, 0xc
xor al, al
jmp 0x465dd2
cmp dword [ebp + 0x18], 0x10
jb 0x465c54
mov esi, dword [esi]
mov ecx, dword [ebx + 8]
push esi
push 0
call ecx
push 0x38
lea edx, [esp + 0x38]
push 0
push edx
mov dword [ebx + 4], 0
call sub.MSVCR90.dll_memset
add esp, 0xc
lea eax, [esp + 0x34]
push eax
push edi
call dword [sym.imp.MSVCR90.dll__fileno]
add esp, 4
push eax
call dword [sym.imp.MSVCR90.dll__fstat64]
add esp, 8
test eax, eax
jne 0x465c45
mov eax, dword [esp + 0x4c]
mov esi, eax
mov dword [esp + 0x30], esi
test eax, eax
jbe 0x465c45
push edi
call dword [sym.imp.MSVCR90.dll_feof]
add esp, 4
test eax, eax
jne 0x465d85
mov dword [esp + 0x18], esi
fild dword [esp + 0x18]
test esi, esi
jge 0x465cc3
fadd dword [0x4ee7ac]
mov ebp, dword [sym.imp.MSVCR90.dll_fread]
fstp dword [esp + 0x2c]
lea ecx, [ecx]
push edi
push 0x400
lea ecx, [esp + 0x74]
push 1
push ecx
call ebp
push edi
mov esi, eax
call dword [sym.imp.MSVCR90.dll_ftell]
mov ecx, eax
mov edx, ecx
add esp, 0x14
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
test edx, edx
jge 0x465d01
fadd dword [0x4ee7ac]
fdiv dword [esp + 0x2c]
fmul qword [0x4ee760]
fnstcw word [esp + 0x12]
movzx eax, word [esp + 0x12]
or eax, 0xc00
mov dword [esp + 0x14], eax
fldcw word [esp + 0x14]
fistp dword [esp + 0x14]
mov al, byte [esp + 0x14]
mov byte [esp + 0x18], al
fldcw word [esp + 0x12]
cmp byte [0xc198cc], al
je 0x465d52
mov edx, dword [ebx + 0x10]
mov byte [0xc198cc], al
mov eax, dword [ebx + 0x14]
push eax
push 0
push esi
push 0
push ecx
mov ecx, dword [esp + 0x2c]
push ecx
call edx
xor eax, eax
test esi, esi
jbe 0x465d6f
mov ecx, dword [ebx + 4]
jmp 0x465d60
movzx edx, byte [esp + eax + 0x6c]
inc eax
add ecx, edx
cmp eax, esi
jb 0x465d60
mov dword [ebx + 4], ecx
push edi
call dword [sym.imp.MSVCR90.dll_feof]
add esp, 4
test eax, eax
je 0x465cd0
mov esi, dword [esp + 0x30]
xor eax, eax
push eax
push eax
push esi
push eax
mov eax, dword [ebx + 0x10]
push esi
push 0x64
call eax
mov ecx, dword [ebx + 4]
push ecx
lea edx, [esp + 0x20]
push str.check_sum_result__u_.
push edx
mov dword [esp + 0x28], 1
mov dword [esp + 0x2c], str.FileUtils::ComputeCloneCheckSum
mov dword [esp + 0x30], str....._flashtoolUtilityFileUtils.cpp
mov dword [esp + 0x34], 0x1c4
call fcn.0040b750
push edi
call dword [sym.imp.MSVCR90.dll_fclose]
add esp, 0x10
mov al, 1
mov ecx, dword [esp + 0x46c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004ac9a4
add esp, 0x460
ret