Function at 0x48b1b8
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
xor esi, esi
mov ebx, ecx
push str.FlashUpgParsingFile__n
mov dword [ebp - 4], esi
call fcn.0042e448
pop ecx
mov ecx, ebx
call fcn.0048d3a1
test al, al
jne 0x48b1ee
push str.USB_disconnected__n
call fcn.0042e448
pop ecx
push 3
pop eax
jmp 0x48b414
push 0x50d57c
push dword [ebp + 8]
mov byte [ebx + 0x844], 1
mov dword [ebx + 0xa8c], 0x20
call fcn.004bfca0
mov dword [ebx + 0x834], eax
pop ecx
pop ecx
test eax, eax
jne 0x48b21e
inc eax
jmp 0x48b414
push dword [ebp + 8]
push str.Open_file__s_success__n
call fcn.0042e448
push 2
push esi
push dword [ebx + 0x834]
call fcn.004c053c
push dword [ebx + 0x834]
call fcn.004c0b72
push esi
push esi
push dword [ebx + 0x834]
mov dword [ebx + 0x800], eax
call fcn.004c053c
mov ecx, dword [ebx + 0x800]
add esp, 0x24
cmp ecx, 0x100000
jbe 0x48b281
push dword [ebx + 0x834]
call fcn.004bfde9
pop ecx
mov dword [ebx + 0x834], esi
push 2
jmp 0x48b1e8
push edi
push ecx
push dword [ebp + 8]
mov dword [ebx + 0x6c], esi
push str._ls_file_size_is__ld_n
mov dword [ebx + 0x70], esi
call fcn.0042e448
add dword [ebx + 0x800], 0xfffffff2
push dword [ebx + 0x800]
call fcn.004bfa2b
push dword [ebx + 0x834]
xor esi, esi
mov dword [ebx + 0x840], eax
inc esi
lea edi, [ebx + 0x847]
push esi
push esi
push edi
call fcn.004c00a1
push dword [ebx + 0x834]
lea eax, [ebx + 0x846]
push esi
push esi
push eax
call fcn.004c00a1
push dword [ebx + 0x834]
lea esi, [ebx + 0x850]
push 1
push 4
push esi
call fcn.004c00a1
movzx eax, byte [ebx + 0x852]
add esp, 0x40
movzx ecx, byte [ebx + 0x853]
add ecx, eax
movzx eax, byte [ebx + 0x851]
add ecx, eax
movzx eax, byte [esi]
push dword [ebx + 0x834]
add ecx, eax
movzx eax, byte [ebx + 0x846]
push dword [ebx + 0x800]
add ecx, eax
movzx eax, byte [edi]
push 1
push dword [ebx + 0x840]
add ecx, eax
mov dword [ebp + 8], ecx
call fcn.004c00a1
mov edi, dword [ebx + 0x800]
add esp, 0x10
mov esi, dword [ebp + 8]
xor ecx, ecx
test edi, edi
je 0x48b35d
mov edx, dword [ebx + 0x840]
movzx eax, byte [edx + ecx]
add esi, eax
inc ecx
cmp ecx, edi
jb 0x48b352
push dword [ebx + 0x834]
lea eax, [ebp - 4]
push 1
push 4
push eax
call fcn.004c00a1
mov eax, dword [ebp - 4]
movzx edi, byte [ebp - 1]
movzx ecx, al
add edi, esi
movzx eax, ah
add ecx, eax
movzx eax, byte [ebp - 2]
add ecx, eax
add edi, ecx
push edi
push str.cal_FLASH_checksum0x_x__n
call fcn.0042e448
push dword [ebx + 0x834]
lea eax, [ebp - 4]
push 1
push 4
push eax
call fcn.004c00a1
mov eax, dword [ebp - 4]
movzx esi, al
shl esi, 8
movzx eax, ah
or esi, eax
movzx eax, byte [ebp - 2]
shl esi, 8
or esi, eax
movzx eax, byte [ebp - 1]
shl esi, 8
or esi, eax
push esi
push str.encrypt_checksum0x_x__n
call fcn.0042e448
push dword [ebx + 0x834]
call fcn.004bfde9
add esp, 0x34
cmp byte [ebx + 0xa80], 1
jne 0x48b41a
cmp edi, esi
je 0x48b42a
mov eax, dword [ebx + 0x840]
test eax, eax
je 0x48b405
push eax
call fcn.004a45f7
and dword [ebx + 0x840], 0
pop ecx
push str.UPG_FILE_INVALIE__n
call fcn.0042e448
pop ecx
push 2
pop eax
pop edi
pop esi
pop ebx
leave
ret 4
mov al, byte [ebx + 0x846]
cmp al, byte [ebx + 0x845]
jne 0x48b3ed
jmp 0x48b3e9
xor eax, eax
jmp 0x48b413