Function at 0x401460
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
and esp, 0xfffffff0
sub esp, 0x50
call sym.___main
mov dword [esp + 4], str.Portuguese_Brazil.1252
mov dword [esp], 2
call sym._setlocale
mov dword [esp + 4], 0x40607b
mov dword [esp], str.disciplinas.dat
call sym._fopen
mov dword [esp + 0x34], eax
mov dword [esp + 4], 0x40607b
mov dword [esp], str.alunos.dat
call sym._fopen
mov dword [esp + 0x30], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x28], 0
mov dword [esp], 4
call sym._malloc
mov dword [esp + 0x44], eax
mov dword [esp], 4
call sym._malloc
mov dword [esp + 0x40], eax
mov dword [esp], 0xbc
call sym._malloc
mov dword [esp + 0x3c], eax
jmp 0x401541
add dword [esp + 0x48], 1
mov eax, dword [esp + 0x48]
shl eax, 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call sym._realloc
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x48]
add eax, 0x3fffffff
lea edx, [eax*4]
mov eax, dword [esp + 0x44]
add edx, eax
mov eax, dword [esp + 0x3c]
mov dword [edx], eax
mov dword [esp], 0xbc
call sym._malloc
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov dword [esp + 4], 0xbc
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call sym._fread
cmp eax, 1
je 0x4014f5
mov dword [esp], 0x88
call sym._malloc
mov dword [esp + 0x38], eax
jmp 0x4015ce
mov eax, dword [esp + 0x28]
add eax, 1
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
shl eax, 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call sym._realloc
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x28]
add eax, 0x3fffffff
lea edx, [eax*4]
mov eax, dword [esp + 0x40]
add edx, eax
mov eax, dword [esp + 0x38]
mov dword [edx], eax
mov dword [esp], 0x88
call sym._malloc
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov dword [esp + 4], 0x88
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call sym._fread
cmp eax, 1
je 0x40157c
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call sym._free
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call sym._free
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call sym._fclose
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call sym._fclose
mov dword [esp], str.Escolha_dentro_dessas_opes:__n
call sym._puts
mov dword [esp], str.1__Adicionar_disciplina_
call sym._puts
mov dword [esp], str.2__Inserir_aluno_e_notas_
call sym._puts
mov dword [esp], str.3__Exibir_disciplinas_
call sym._puts
mov dword [esp], str.4__Exibir_alunos_
call sym._puts
mov dword [esp], str.5__Exibir_alunos_aprovados_
call sym._puts
mov dword [esp], str.6__Exibir_alunos_reprovados_
call sym._puts
mov dword [esp], str.7__Alterar_notas_de_aluno_
call sym._puts
mov dword [esp], str.8__Salvar_dados_em_disco_
call sym._puts
mov dword [esp], str.9__Sair._n
call sym._puts
mov dword [esp], str.Digite_aqui__1_2_3_4_5_6_7_8_ou_9_:
call sym._printf
lea eax, [esp + 0x2c]
mov dword [esp + 4], eax
mov dword [esp], 0x4061b9
call sym._scanf
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], eax
mov dword [esp + 4], 2
mov dword [esp], 0x408070
call sym._fgets
mov eax, dword [esp + 0x2c]
cmp eax, 9
ja case.0x4016f0.0
mov eax, dword [eax*4 + 0x4062bc]
jmp eax
add dword [esp + 0x48], 1
mov eax, dword [esp + 0x48]
shl eax, 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call sym._realloc
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x48]
add eax, 0x3fffffff
lea edx, [eax*4]
mov eax, dword [esp + 0x44]
lea ebx, [edx + eax]
call sym._inserir_disciplina
mov dword [ebx], eax
mov dword [esp], str.Disciplina_adicionada_com_sucesso_
call sym._puts
mov eax, dword [esp + 0x48]
add eax, 0x3fffffff
lea edx, [eax*4]
mov eax, dword [esp + 0x44]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], str._nCdigo:__s
call sym._printf
mov eax, dword [esp + 0x48]
add eax, 0x3fffffff
lea edx, [eax*4]
mov eax, dword [esp + 0x44]
add eax, edx
mov eax, dword [eax]
add eax, 0x15
mov dword [esp + 4], eax
mov dword [esp], str.Nome:__s
call sym._printf
mov eax, dword [esp + 0x48]
add eax, 0x3fffffff
lea edx, [eax*4]
mov eax, dword [esp + 0x44]
add eax, edx
mov eax, dword [eax]
add eax, 0x48
mov dword [esp + 4], eax
mov dword [esp], str.Professor:__s
call sym._printf
mov eax, dword [esp + 0x48]
add eax, 0x3fffffff
lea edx, [eax*4]
mov eax, dword [esp + 0x44]
add eax, edx
mov eax, dword [eax]
movzx eax, word [eax + 0xae]
movzx eax, ax
mov dword [esp + 4], eax
mov dword [esp], str.Quantidade_de_alunos:__hd_n
call sym._printf
mov eax, dword [esp + 0x48]
add eax, 0x3fffffff
lea edx, [eax*4]
mov eax, dword [esp + 0x44]
add eax, edx
mov eax, dword [eax]
movzx eax, word [eax + 0xb0]
movzx eax, ax
mov dword [esp + 4], eax
mov dword [esp], str.Nmero_da_sala:__hd_n
call sym._printf
mov eax, dword [esp + 0x48]
add eax, 0x3fffffff
lea edx, [eax*4]
mov eax, dword [esp + 0x44]
add eax, edx
mov eax, dword [eax]
movzx eax, word [eax + 0xb2]
movzx eax, ax
mov dword [esp + 4], eax
mov dword [esp], str.Carga_horria:__hd_n
call sym._printf
mov eax, dword [esp + 0x48]
add eax, 0x3fffffff
lea edx, [eax*4]
mov eax, dword [esp + 0x44]
add eax, edx
mov eax, dword [eax]
fld dword [eax + 0xb4]
fstp qword [esp + 4]
mov dword [esp], str.Hora_de_incio:__2.2f_n
call sym._printf
mov eax, dword [esp + 0x48]
add eax, 0x3fffffff
lea edx, [eax*4]
mov eax, dword [esp + 0x44]
add eax, edx
mov eax, dword [eax]
fld dword [eax + 0xb8]
fstp qword [esp + 4]
mov dword [esp], str.Hora_de_finalizao:__2.2f_n
call sym._printf
jmp 0x401a62
lea eax, [esp + 0x28]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call sym._inserir_aluno
test eax, eax
jne 0x4018e9
mov eax, dword [esp + 0x28]
sub eax, 1
mov dword [esp + 0x28], eax
jmp 0x401a62
mov dword [esp], str._nAluno_adicionado_com_sucesso_
call sym._puts
mov eax, dword [esp + 0x28]
add eax, 0x3fffffff
lea edx, [eax*4]
mov eax, dword [esp + 0x40]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], str._nCdigo__s
call sym._printf
mov eax, dword [esp + 0x28]
add eax, 0x3fffffff
lea edx, [eax*4]
mov eax, dword [esp + 0x40]
add eax, edx
mov eax, dword [eax]
add eax, 0x15
mov dword [esp + 4], eax
mov dword [esp], str.Nome:__s
call sym._printf
mov dword [esp + 0x4c], 0
jmp 0x401995
mov eax, dword [esp + 0x28]
add eax, 0x3fffffff
lea edx, [eax*4]
mov eax, dword [esp + 0x40]
add eax, edx
mov eax, dword [eax]
mov edx, dword [esp + 0x4c]
add edx, 0x1c
fld dword [eax + edx*4 + 0xc]
mov eax, dword [esp + 0x4c]
add eax, 1
fstp qword [esp + 8]
mov dword [esp + 4], eax
mov dword [esp], str._d_nota:__.2f_n
call sym._printf
add dword [esp + 0x4c], 1
cmp dword [esp + 0x4c], 2
jle 0x401952
jmp 0x401a62
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call sym._exibir_disciplinas
jmp 0x401a62
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call sym._exibir_alunos
jmp 0x401a62
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call sym._exibir_aprovados
jmp 0x401a62
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call sym._exibir_reprovados
jmp 0x401a62
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call sym._alterar_nota
jmp 0x401a62
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call sym._salvar
jmp 0x401a62
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call sym._finalizar
jmp 0x401a62
nop
mov eax, dword [esp + 0x2c]
cmp eax, 9
jne 0x401627
mov eax, 0
mov ebx, dword [ebp - 4]
leave
ret