Function at 0x40db50
Capabilities:
Delete file
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
cmp dword [0x453194], 5
push ebx
push esi
push edi
mov dword [ebp - 4], 0x64
jne 0x40db85
mov eax, dword [0x448c78]
mov edi, dword [eax + 0xb8]
call fcn.00406e80
mov ecx, dword [0x448c78]
mov dword [ecx + 0xbc], eax
mov ecx, dword [ebp + 8]
mov esi, dword [0x448520]
mov ebx, dword [0x443e44]
mov eax, ecx
imul eax, eax, 0x320
mov dword [ebp - 0xc], eax
mov eax, ecx
xor edi, edi
imul eax, eax, 0xfa0
mov dword [ebp - 8], 0x514
mov dword [ebp - 0x10], eax
mov dword [0x448698], edi
cmp edi, dword [ebp - 4]
jl 0x40dc1c
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x10]
mov edx, dword [0x448bd0]
add dword [ebp - 4], 0x1f4
add dword [ebp - 8], 0x1964
push eax
push edx
mov dword [ebp - 0xc], eax
call dword [sym.imp.MSVCR100.dll_realloc]
add esp, 8
test eax, eax
je 0x40de95
mov dword [0x448bd0], eax
test esi, esi
je 0x40dc25
mov eax, dword [ebp - 4]
lea ecx, [eax*8]
push ecx
push ebx
call dword [sym.imp.MSVCR100.dll_realloc]
add esp, 8
test eax, eax
je 0x40dee5
mov ebx, eax
mov dword [0x443e44], ebx
test esi, esi
je 0x40dc45
lea eax, [ebx + edi*8]
jmp 0x40dc50
mov edx, dword [ebp - 8]
mov eax, dword [0x443ad0]
push edx
push eax
call dword [sym.imp.MSVCR100.dll_realloc]
add esp, 8
test eax, eax
je 0x40df36
mov dword [0x443ad0], eax
mov eax, edi
imul eax, eax, 0xd
add eax, dword [0x443ad0]
imul edi, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov edx, dword [0x448bd0]
push ecx
push eax
push 0
push 0
lea edi, [edx + edi*8]
mov ebx, 3
call fcn.004266c0
mov ecx, dword [0x453194]
mov edi, dword [0x448698]
add esp, 0x10
cmp ecx, 8
jne 0x40dc8d
cmp edi, dword [0x443c90]
jl 0x40dc8d
inc eax
test eax, eax
jne 0x40dd37
mov esi, dword [0x448520]
mov ebx, dword [0x443e44]
test esi, esi
je 0x40dcbb
fld qword [ebx + edi*8]
fld qword [0x4596d0]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x40dbb9
cmp edi, 1
jle 0x40dd31
test esi, esi
je 0x40dcd8
fld qword [ebx + edi*8 - 8]
fcomp qword [ebx + edi*8]
fnstsw ax
test ah, 0x41
je 0x40dd0f
inc edi
jmp 0x40dbb3
mov eax, edi
imul eax, eax, 0xd
add eax, dword [0x443ad0]
lea ecx, [eax - 0xd]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40dd06
test dl, dl
je 0x40dd02
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40dd06
add eax, 2
add ecx, 2
test dl, dl
jne 0x40dce6
xor eax, eax
jmp 0x40dd0b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jns 0x40dd31
push 3
push str.The_level__d_file_is_not_sorted__n
call dword [sym.imp.MSVCR100.dll_printf]
mov edi, dword [0x448698]
mov esi, dword [0x448520]
mov ebx, dword [0x443e44]
add esp, 8
inc edi
jmp 0x40dbb3
cmp eax, 0xa
je 0x40df86
mov edi, dword [0x448c78]
cmp ecx, 5
jne 0x40dd5f
mov eax, dword [edi + 0xbc]
test eax, eax
je 0x40dd5f
push eax
call dword [sym.imp.MSVCR100.dll_free]
add esp, 4
mov ecx, dword [edi + 0xa8]
push ecx
call dword [sym.imp.MSVCR100.dll_fclose]
add esp, 4
cmp dword [0x453194], 2
mov dword [0x443ab4], 0
je 0x40e043
mov ebx, dword [0x448698]
dec ebx
js 0x40e043
mov edx, dword [ebp + 8]
fld qword [0x4596d0]
mov esi, ebx
imul esi, edx
lea ecx, [ebx + 1]
imul ecx, edx
mov eax, edx
neg eax
add esi, esi
add eax, eax
add ecx, ecx
add esi, esi
add eax, eax
add esi, esi
add eax, eax
add ecx, ecx
add ecx, ecx
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], eax
mov dword [ebp - 4], ecx
mov edx, dword [0x448bd0]
lea ecx, [esi + edx]
mov edx, dword [ebp + 8]
xor esi, esi
xor edi, edi
mov dword [ebp - 0x10], ecx
cmp edx, 4
jl 0x40de33
add edx, 0xfffffffc
shr edx, 2
inc edx
lea esi, [edx*4]
fld qword [ecx]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x40ddfa
inc edi
fld qword [ecx + 8]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x40de09
inc edi
fld qword [ecx + 0x10]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x40de18
inc edi
fld qword [ecx + 0x18]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x40de27
inc edi
add ecx, 0x20
dec edx
jne 0x40ddec
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 8]
cmp esi, edx
jge 0x40de50
sub edx, esi
fld qword [ecx]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x40de47
inc edi
add ecx, 8
dec edx
jne 0x40de39
mov eax, dword [ebp - 8]
test edi, edi
je 0x40e02f
cmp dword [0x448520], 0
fstp st(0)
je 0x40dfd4
mov eax, dword [0x448698]
mov edx, dword [0x443e44]
dec eax
lea edi, [edx + ebx*8]
cmp ebx, eax
jge 0x40de8b
mov ecx, eax
sub ecx, ebx
add ecx, ecx
lea esi, [edi + 8]
and ecx, 0x3ffffffe
rep movsd dword es:[edi], dword [esi]
fldz
fstp qword [edx + eax*8]
jmp 0x40dfe9
push str._Out_of_memory._Please_run_a_smaller_problem_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
call fcn.00406fe0
mov edx, dword [0x4596c4]
mov esi, dword [sym.imp.MSVCR100.dll_remove]
push edx
mov dword [0x443e58], 1
call esi
mov eax, dword [0x448bc8]
add esp, 4
push eax
call esi
add esp, 4
cmp dword [0x443e58], 0
je 0x40dedd
call fcn.00406b90
push 3
call dword [sym.imp.MSVCR100.dll_exit]
push str._Out_of_memory._Please_run_a_smaller_problem_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
call fcn.00406fe0
mov ecx, dword [0x4596c4]
mov esi, dword [sym.imp.MSVCR100.dll_remove]
push ecx
mov dword [0x443e58], 1
call esi
mov edx, dword [0x448bc8]
add esp, 4
push edx
call esi
add esp, 4
cmp dword [0x443e58], 0
je 0x40df2e
call fcn.00406b90
push 3
call dword [sym.imp.MSVCR100.dll_exit]
push str._Out_of_memory._Please_run_a_smaller_problem_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
call fcn.00406fe0
mov eax, dword [0x4596c4]
mov esi, dword [sym.imp.MSVCR100.dll_remove]
push eax
mov dword [0x443e58], 1
call esi
mov ecx, dword [0x448bc8]
add esp, 4
push ecx
call esi
add esp, 4
cmp dword [0x443e58], 0
je 0x40df7e
call fcn.00406b90
push 3
call dword [sym.imp.MSVCR100.dll_exit]
push edi
push str.problem_at_line__ld_n
call dword [sym.imp.MSVCR100.dll_printf]
call fcn.00406fe0
mov edx, dword [0x4596c4]
mov esi, dword [sym.imp.MSVCR100.dll_remove]
push edx
mov dword [0x443e58], 1
call esi
mov eax, dword [0x448bc8]
add esp, 0xc
push eax
call esi
add esp, 4
cmp dword [0x443e58], 0
je 0x40dfcc
call fcn.00406b90
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
mov eax, dword [0x443ad0]
push eax
mov eax, dword [0x448698]
mov ecx, ebx
call fcn.00401ef0
add esp, 4
mov ecx, dword [0x448698]
mov edx, dword [ebp - 4]
add edx, dword [0x448bd0]
sub ecx, ebx
mov esi, 1
sub ecx, esi
imul ecx, dword [ebp + 8]
add ecx, ecx
add ecx, ecx
add ecx, ecx
push ecx
mov ecx, dword [ebp - 0x10]
push edx
push ecx
call dword [sym.imp.MSVCR100.dll_memmove]
add dword [0x443ab4], esi
fld qword [0x4596d0]
mov eax, dword [ebp - 8]
add esp, 0xc
sub dword [0x448698], esi
mov esi, dword [ebp - 0xc]
add dword [ebp - 4], eax
add esi, eax
dec ebx
mov dword [ebp - 0xc], esi
jns 0x40ddc6
fstp st(0)
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret