Function at 0x403b60
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x118
mov eax, dword [0x433a78]
mov cl, byte [0x433a78]
mov dx, word [esp + 0x124]
push ebx
mov ebx, dword [esp + 0x120]
and eax, 0xff
push ebp
push esi
lea esi, [eax + eax*2]
mov eax, dword [esp + 0x12c]
shl esi, 2
cmp cl, 0x14
push edi
mov dword [esi + 0x433a84], eax
mov dword [esp + 0x20], 0
mov byte [esp + 0x1b], cl
mov dword [esp + 0x1c], esi
mov word [esi + 0x433a82], dx
mov dword [0x4727f4], ebx
jb 0x403bdb
push str._r_n_MenuPro_Menu_Level_Over_Err
call fcn.00402880
add esp, 4
mov eax, 0xfffffc0c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
mov al, byte [0x4339b8]
and al, 0x7f
cmp al, 1
jne 0x403c06
push 4
push 4
call fcn.00404c30
add esp, 8
test eax, eax
mov al, byte [0x4339b8]
je 0x403bff
or al, 0x80
jmp 0x403c01
and al, 0x7f
mov byte [0x4339b8], al
mov edx, dword [esi + 0x433a84]
mov cl, byte [0x4339b8]
push 0
push edx
push ebx
mov byte [esp + 0x1f], cl
call dword [sym.imp.MSVCRT.dll_fseek]
mov esi, dword [sym.imp.MSVCRT.dll_fgetc]
push ebx
call esi
mov ebp, eax
push ebx
and ebp, 0xff
call esi
xor ecx, ecx
push ebx
mov ch, al
or ebp, ecx
call esi
and eax, 0xff
push ebx
shl eax, 0x10
or ebp, eax
call esi
shl eax, 0x18
or ebp, eax
add esp, 0x1c
cmp ebp, 0x23
jge 0x403c74
push str._r_n_MenuPro_Menu_Size_Err
call fcn.00402880
add esp, 4
mov eax, 0xfffffc10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
push ebp
call dword [sym.imp.MSVCRT.dll_malloc]
mov esi, eax
add esp, 4
test esi, esi
jne 0x403ca1
push str._r_n_MenuPro_Memory_Over_Err
call fcn.00402880
add esp, 4
mov eax, 0xfffffc0f
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
mov ecx, ebp
xor eax, eax
mov edx, ecx
mov edi, esi
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
push ebx
and ecx, 3
rep stosb byte es:[edi], al
lea eax, [ebp - 2]
push eax
push 1
push esi
call dword [sym.imp.MSVCRT.dll_fread]
add ebp, 0xfffffffe
add esp, 0x10
cmp eax, ebp
mov dword [esp + 0x14], eax
je 0x403cfb
push esi
mov esi, dword [sym.imp.MSVCRT.dll_free]
call esi
push str._r_n_MenuPro__fread_Fail
call fcn.00402880
push 0
call esi
add esp, 0xc
mov eax, 0xfffffc16
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
mov cl, byte [esi + 0x1c]
and cl, 1
cmp cl, 1
jne 0x403d7e
mov ecx, 0x400
xor eax, eax
mov edi, 0x433b70
mov dword [0x433a74], 0
rep stosd dword es:[edi], eax
cmp byte [esp + 0x1b], 1
jae 0x403d49
push str._r_n_MenuPro_Para_Err_Level___0
call fcn.00402880
push esi
call dword [sym.imp.MSVCRT.dll_free]
add esp, 8
mov eax, 0xfffffc0d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
mov edi, dword [esp + 0x1c]
mov dx, word [edi + 0x433a76]
mov eax, dword [edi + 0x433a78]
inc edx
and edx, 0xfff
push edx
push eax
push ebx
call fcn.00404090
mov ecx, dword [edi + 0x433a84]
push 0
push ecx
push ebx
call dword [sym.imp.MSVCRT.dll_fseek]
add esp, 0x18
jmp 0x403d82
mov edi, dword [esp + 0x1c]
xor edx, edx
mov dh, byte [esi + 0x1f]
mov dl, byte [esi + 0x1e]
test edx, edx
je 0x403f02
cmp edx, 0xffff
ja 0x403f02
cmp edx, 0xff00
jbe 0x403ecc
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x25]
mov byte [esp + 0x24], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, dword [esp + 0x138]
push 0x4319f8
stosb byte es:[edi], al
mov eax, 0x10000
sub eax, edx
lea edx, [esp + 0x28]
push eax
push ecx
push str._s__d._s
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
lea eax, [esp + 0x38]
push 0x4319ec
push eax
call dword [0x472ec4]
mov edi, eax
add esp, 0x1c
test edi, edi
jne 0x403e21
push str._r_n_MenuPro______fopen_Fail
call fcn.00402880
push esi
call dword [sym.imp.MSVCRT.dll_free]
add esp, 8
mov eax, 0xfffffc17
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
mov ebp, dword [sym.imp.MSVCRT.dll_fgetc]
push edi
call ebp
and eax, 0xff
push edi
mov dword [esp + 0x1c], eax
call ebp
xor ecx, ecx
push edi
mov cl, al
mov ch, byte [esp + 0x20]
mov ebp, ecx
call dword [sym.imp.MSVCRT.dll_fgetc]
and ebp, 0xffff
and eax, 0xff
shl ebp, 8
or eax, ebp
add esp, 0xc
cmp eax, 0xfffeff
je 0x403e71
pop edi
pop esi
pop ebp
mov eax, 0xfffffc04
pop ebx
add esp, 0x118
ret
push edi
call dword [sym.imp.MSVCRT.dll_fgetc]
add esp, 4
cmp al, 1
je 0x403e8f
pop edi
pop esi
pop ebp
mov eax, 0xfffffc03
pop ebx
add esp, 0x118
ret
mov edx, dword [esp + 0x138]
push edx
push 0xffffffffffffffff
push 4
push edi
call fcn.00403b60
mov ebp, eax
push edi
mov dword [esp + 0x28], ebp
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 0x14
test ebp, ebp
jge 0x403efe
push esi
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
push edx
call fcn.004026a0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jge 0x403f02
push str._r_n_MenuPro_DoDownTask_Fail
call fcn.00402880
push esi
call dword [sym.imp.MSVCRT.dll_free]
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
mov edi, dword [esp + 0x1c]
xor eax, eax
mov word [edi + 0x433a80], 0
mov ah, byte [esi + 0x21]
mov al, byte [esi + 0x20]
mov ebp, eax
test ebp, ebp
jle 0x40405c
jmp 0x403f23
mov edi, dword [esp + 0x1c]
mov cl, byte [esp + 0x13]
cmp word [0x4339d0], 0
mov byte [0x4339b8], cl
je 0x403f4d
movzx dx, byte [0x433a78]
push edx
call fcn.00403ad0
add esp, 4
cmp eax, 0xffffffff
jne 0x403f71
mov dx, word [edi + 0x433a82]
mov ax, word [edi + 0x433a80]
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], eax
push ecx
push edx
push ebx
push esi
call fcn.004041f0
add esp, 0x10
jmp 0x403f78
cmp ebp, eax
jge 0x403f78
or eax, 0xffffffff
mov cx, word [esp + 0x20]
mov word [edi + 0x433a82], ax
mov word [edi + 0x433a80], cx
cmp word [edi + 0x433a82], 0
jl 0x404020
xor edx, edx
xor ecx, ecx
mov dl, byte [esi + eax*4 + 0x24]
mov cl, byte [esi + eax*4 + 0x23]
mov dh, byte [esi + eax*4 + 0x25]
shl edx, 8
or edx, ecx
xor ecx, ecx
mov cl, byte [esi + eax*4 + 0x22]
shl edx, 8
or edx, ecx
mov cl, byte [0x433a78]
mov eax, edx
mov edx, dword [esp + 0x138]
push edx
push 0xffffffffffffffff
inc cl
push eax
push ebx
mov byte [0x433a78], cl
call fcn.00403b60
mov cl, byte [0x433a78]
add esp, 0x10
mov edi, eax
dec cl
test edi, edi
mov dword [esp + 0x14], edi
mov byte [0x433a78], cl
jl 0x404034
jne 0x403f1f
cmp word [0x4339d0], 0
je 0x403f1f
movzx ax, cl
push eax
call fcn.00403ad0
add esp, 4
cmp eax, 0xffffffff
jne 0x40404b
jmp 0x403f1f
cmp eax, 0xffffffff
je 0x40405c
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
push esi
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
cmp word [0x4339d0], 0
jbe 0x40405c
dec word [0x4339d0]
xor eax, eax
mov al, byte [esi + 0x1d]
test eax, eax
je 0x40406e
push eax
call fcn.00402880
add esp, 4
push esi
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret