Function at 0x44796c
Capabilities:
Read file on windows

Disassembly:
mov edx, dword [0x56ac20]
push ebx
push esi
push edi
mov al, byte [edx + 0x3f]
xor ebx, ebx
xor edi, edi
cmp al, 1
jbe 0x4478c0
movzx ecx, al
mov eax, ecx
sub eax, 2
je 0x447800
sub eax, 6
je 0x4477f9
push ecx
push str.error_in_update_pif_write_:__x_n
call fcn.00403a40
add esp, 8
pop edi
pop esi
pop ebx
ret
pop edi
pop esi
mov byte [edx + 0x3f], bl
pop ebx
ret
push ebp
mov ebp, dword [0x56ac20]
xor edi, edi
mov ebx, 0x56ac28
nop
lea ecx, [ebp + 0x30]
mov edx, ebx
mov esi, 0xc
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x447848
add ecx, 4
add edx, 4
sub esi, 4
jae 0x447820
shl edi, 5
add edi, 0x56ac38
vmovdqu xmm0, xmmword [edi]
vmovdqu xmmword [ebp + 0x30], xmm0
pop ebp
pop edi
pop esi
pop ebx
ret
inc edi
add ebx, 0x20
cmp edi, 0x10d
jb 0x447810
push str.unknown_pif2_code:_n
call fcn.00403a40
add esp, 4
mov esi, 0x30
nop word [eax + eax]
mov ecx, dword [0x56ac20]
add ecx, esi
movzx eax, byte [ecx + 7]
push eax
movzx eax, byte [ecx + 6]
push eax
movzx eax, byte [ecx + 5]
push eax
movzx eax, byte [ecx + 4]
push eax
movzx eax, byte [ecx + 3]
push eax
movzx eax, byte [ecx + 2]
push eax
movzx eax, byte [ecx + 1]
push eax
movzx eax, byte [ecx]
push eax
push str._x__x__x__x___x__x__x__x_n
call fcn.00403a40
add esi, 8
add esp, 0x24
cmp esi, 0x40
jl 0x447870
pop ebp
pop edi
pop esi
pop ebx
ret
mov esi, dword [0x56ac20]
add esi, ebx
mov al, byte [esi]
test al, al
je 0x447a5b
cmp al, 0xff
je 0x447a61
test al, 0xc0
jne 0x447a6b
cmp edi, 4
jge 0x44791c
lea eax, [edi + edi*2]
cmp dword [eax*4 + 0x22c3080], 0
je 0x44790e
cmp dword [eax*4 + 0x22c3084], 0
je 0x44790e
push esi
push edi
call dword [0x56ce54]
add esp, 8
jmp 0x447a40
mov edx, esi
mov ecx, edi
call fcn.00447470
jmp 0x447a40
jne 0x447a33
movzx ecx, byte [esi + 2]
mov eax, ecx
sub eax, 0
je 0x447a01
sub eax, 4
je 0x4479be
sub eax, 1
je 0x447952
push ecx
push str.unknown_command_in_EepromCommand_:__x_n
call fcn.00403a40
add esp, 8
jmp 0x447a40
push 0
push 0
push dword [0x27c3270]
call fcn.004e014e
push dword [0x27c3270]
push 0x800
push 1
push 0x6dd640
call fcn.004e3264
movzx edx, byte [esi + 3]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
push 0
push 0
push dword [0x27c3270]
mov dword [edx*8 + 0x6dd640], eax
mov dword [edx*8 + 0x6dd644], ecx
call fcn.004e014e
push dword [0x27c3270]
push 0x800
push 1
push 0x6dd640
call fcn.004e3051
add esp, 0x38
jmp 0x447a40
push 0
push 0
push dword [0x27c3270]
call fcn.004e014e
push dword [0x27c3270]
push 0x800
push 1
push 0x6dd640
call fcn.004e3264
movzx ecx, byte [esi + 3]
add esp, 0x1c
mov eax, dword [ecx*8 + 0x6dd640]
mov ecx, dword [ecx*8 + 0x6dd644]
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
jmp 0x447a40
mov al, byte [esi + 1]
cmp al, 3
je 0x447a27
or al, 0x40
mov byte [esi + 1], al
and al, 3
jbe 0x447a15
mov byte [esi + 3], 0
cmp al, 1
jbe 0x447a1d
mov byte [esi + 4], 0x80
cmp al, 2
jbe 0x447a40
mov byte [esi + 5], 0
jmp 0x447a40
mov word [esi + 3], 0x8000
mov byte [esi + 5], 0
jmp 0x447a40
push str.channel___4_in_update_pif_write_n
call fcn.00403a40
add esp, 4
mov eax, dword [0x56ac20]
movzx ecx, byte [eax + ebx + 1]
movzx eax, byte [eax + ebx]
and ecx, 0x3f
add eax, ebx
lea ebx, [ecx + 1]
add ebx, eax
inc edi
jmp 0x447a61
inc edi
cmp edi, 6
jg 0x447a6b
inc ebx
cmp ebx, 0x40
jl 0x4478c0
push 0
push 0xffffffffffffffff
call dword [0x56ce54]
add esp, 8
pop edi
pop esi
pop ebx
ret