Function at 0x454a50
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x510
mov eax, dword [0x4d3100]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [0x56c604]
push esi
mov esi, dword [0x56c5f4]
push edi
test esi, esi
je 0x454abd
cmp dword [esi + 0xc], 0
jne 0x454abd
mov ecx, dword [esi + 0x34]
mov eax, dword [esi + 0x38]
test ecx, ecx
je 0x454a8b
mov dword [ecx + 0x38], eax
jmp 0x454a90
mov dword [0x53c124], eax
mov ecx, dword [esi + 0x38]
test ecx, ecx
je 0x454a9d
mov eax, dword [esi + 0x34]
mov dword [ecx + 0x34], eax
call dword [sym.imp.GDI32.dll_GdiFlush]
push dword [esi + 0x30]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esi + 0x24]
call fcn.00494034
push esi
call fcn.00494034
add esp, 8
mov dword [0x56c5f4], 0
test ebx, ebx
js 0x454b6e
cmp ebx, 0x2711
je 0x454b6e
cmp ebx, 0x2710
jge 0x454aeb
push ebx
mov ecx, str.save_cnmajiro__04d.sav
jmp 0x454b57
call fcn.00456860
mov edi, eax
call fcn.00456810
push 0
mov esi, eax
lea eax, [ebp - 0x508]
push 0x4c3c38
push eax
call fcn.00493964
push 0x200
lea eax, [ebp - 0x308]
mov edx, edi
push eax
lea eax, [ebp - 0x508]
mov ecx, esi
push eax
push str.QuickNum
call fcn.0047e280
lea eax, [ebp - 0x308]
push eax
call fcn.00494176
mov ecx, 0x271b
add esp, 0x20
sub ecx, ebx
add eax, ecx
and eax, 0x80000007
jns 0x454b51
dec eax
or eax, 0xfffffff8
inc eax
push eax
mov ecx, str.save_cnmajiro_quick_d.sav
call fcn.0045e940
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00493964
add esp, 0xc
jmp 0x454b8d
mov ecx, str.save_cnmajiro_last.sav
call fcn.0045e940
lea edx, [ebp - 0x108]
sub edx, eax
mov cl, byte [eax]
lea eax, [eax + 1]
mov byte [edx + eax - 1], cl
test cl, cl
jne 0x454b80
lea eax, [ebp - 0x108]
push 0x4c3d40
push eax
call fcn.00494396
add esp, 8
mov dword [ebp - 0x50c], eax
test eax, eax
je 0x454cab
push 0xa5a0
call fcn.00497cab
mov ebx, eax
add esp, 4
mov dword [ebp - 0x510], ebx
test ebx, ebx
jne 0x454bdb
push 0x10
push str.malloc
push 0x4c9a90
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
push dword [ebp - 0x50c]
push 1
push 0xa560
push ebx
call fcn.00495739
add esp, 0x10
mov ecx, str.MajiroSavV1.105
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x454c18
test dl, dl
je 0x454c14
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x454c18
add eax, 2
add ecx, 2
test dl, dl
jne 0x454bf8
xor eax, eax
jmp 0x454c1d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x454c90
mov ecx, dword [ebx + 0x214]
test ecx, ecx
je 0x454c90
mov edx, dword [ebx + 0x218]
push eax
push 0x20
call fcn.00486160
mov esi, eax
mov ecx, dword [esi + 8]
imul ecx, dword [esi + 4]
push ecx
push 0
push dword [esi + 0x2c]
call fcn.0049cbc0
xor edi, edi
mov dword [0x56c5f4], esi
add esp, 0x14
cmp dword [esi + 4], edi
jle 0x454c90
mov ebx, dword [ebp - 0x50c]
mov eax, dword [esi]
push ebx
shl eax, 2
push 1
push eax
mov eax, dword [esi + 8]
imul eax, edi
add eax, dword [esi + 0x2c]
push eax
call fcn.00495739
mov esi, dword [0x56c5f4]
inc edi
add esp, 0x10
cmp edi, dword [esi + 4]
jl 0x454c63
mov ebx, dword [ebp - 0x510]
push dword [ebp - 0x50c]
call fcn.00494b54
add esp, 4
test ebx, ebx
je 0x454cab
push ebx
call fcn.00494034
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00493955
mov esp, ebp
pop ebp
ret