Function at 0x475d54
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x3c
mov ebx, dword [ebp + 8]
mov dword [esp + 0xc], str.InitSoftfusesBin
mov dword [esp + 8], 0x52f704
mov dword [esp + 4], 0x400
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call fcn.004508c4
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call fcn.00453150
mov dword [ebp - 0x1c], eax
mov dword [esp], eax
call fcn.0050963c
mov dword [ebx + 0x24], eax
mov dword [esp + 4], 0x52f71b
mov eax, dword [ebx + 8]
mov dword [esp], eax
call sub.msvcrt.dll_fopen
mov esi, eax
test eax, eax
je 0x475f3e
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov eax, dword [ebp - 0x1c]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x24]
mov dword [esp], eax
call sub.msvcrt.dll_fread
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], esi
call sub.msvcrt.dll_fseek
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [esp], ebx
call fcn.00475a30
mov dword [esp], ebx
call fcn.00475c30
test al, al
je 0x475f14
mov eax, dword [ebx + 0x1c]
inc eax
mov edi, dword [ebx + 0x28]
cmp eax, edi
jae 0x475e55
mov edx, 4
xor ecx, ecx
lea esi, [esi]
add edx, 1
adc ecx, 0
inc eax
cmp edi, eax
ja 0x475e30
mov edi, edx
xor edi, 0x20
or edi, ecx
je 0x475f34
mov eax, edx
xor eax, 0x24
or eax, ecx
je 0x475f08
mov eax, 0x10
mov dword [ebx + 0xc], eax
mov dword [esp], eax
call fcn.0050963c
mov dword [ebx + 0x10], eax
test eax, eax
je 0x476003
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call fcn.00453150
sub eax, dword [ebx + 0xc]
sub eax, 0x300
mov dword [ebx], eax
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebx + 0xc]
mov dword [ebx + 4], eax
mov dword [ebx + 0x18], eax
mov dword [esp], eax
call fcn.0050963c
mov dword [ebx + 0x14], eax
test eax, eax
je 0x475fd9
mov dword [esp + 0xc], esi
mov edx, dword [ebx + 0x18]
mov dword [esp + 8], edx
mov dword [esp + 4], 1
mov dword [esp], eax
call sub.msvcrt.dll_fread
cmp eax, dword [ebx + 0x18]
jne 0x47602d
mov dword [esp + 0xc], esi
mov eax, dword [ebx + 0xc]
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call sub.msvcrt.dll_fread
cmp eax, dword [ebx + 0xc]
jne 0x475faf
mov dword [esp], esi
call sub.msvcrt.dll_fclose
mov al, 1
add esp, 0x3c
pop ebx
pop esi
pop edi
leave
ret
mov eax, 0x24
jmp 0x475e5a
mov dword [esp + 8], str.Unable_to_find_SUP_header
mov dword [esp + 4], 0x800
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call fcn.004508c4
jmp 0x475e1b
mov eax, 0x20
jmp 0x475e5a
mov dword [esp], 4
call fcn.0050981c
mov dword [eax], 8
mov dword [esp + 8], 0
mov dword [esp + 4], 0x5373fc
mov dword [esp], eax
call fcn.0050a02c
cmp edx, 3
je 0x4760a6
cmp edx, 2
je 0x47606a
mov dword [esp], eax
call fcn.005099c0
mov dword [esp + 0xc], str.InitSoftfusesBin
mov dword [esp + 8], 0x52f7a5
mov dword [esp + 4], 8
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call fcn.004508c4
call fcn.00509b8c
jmp 0x475efe
mov dword [esp], 4
call fcn.0050981c
mov dword [eax], 6
mov dword [esp + 8], 0
mov dword [esp + 4], 0x5373fc
mov dword [esp], eax
call fcn.0050a02c
mov dword [esp], 4
call fcn.0050981c
mov dword [eax], 5
mov dword [esp + 8], 0
mov dword [esp + 4], 0x5373fc
mov dword [esp], eax
call fcn.0050a02c
mov dword [esp], 4
call fcn.0050981c
mov dword [eax], 5
mov dword [esp + 8], 0
mov dword [esp + 4], 0x5373fc
mov dword [esp], eax
call fcn.0050a02c
mov dword [esp], 4
call fcn.0050981c
mov dword [eax], 6
mov dword [esp + 8], 0
mov dword [esp + 4], 0x5373fc
mov dword [esp], eax
call fcn.0050a02c
mov dword [ebp - 0x20], eax
call fcn.00509b8c
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
call sub.libgcc_s_dw2_1.dll__Unwind_Resume
mov dword [esp], eax
call fcn.005099c0
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.InitSoftfusesBin
mov dword [esp + 8], 0x52f78e
mov dword [esp + 4], 8
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call fcn.004508c4
jmp 0x475fa5
mov dword [esp], eax
call fcn.005099c0
mov esi, dword [eax]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.InitSoftfusesBin
mov dword [esp + 8], 0x52f76c
mov dword [esp + 4], 8
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call fcn.004508c4
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.00475b18
jmp 0x475fa5