Function at 0x40e050
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 esi, 0x64
jne 0x40e083
mov eax, dword [0x448c78]
mov edi, dword [eax + 0x80]
call fcn.00406e80
mov ecx, dword [0x448c78]
mov dword [ecx + 0x84], eax
xor edi, edi
mov dword [0x4531c4], edi
jmp 0x40e090
cmp edi, esi
jl 0x40e0eb
mov eax, dword [0x463b40]
mov ebx, dword [sym.imp.MSVCR100.dll_realloc]
add esi, esi
mov edx, esi
imul edx, dword [ebp + 8]
add edx, edx
add edx, edx
add edx, edx
push edx
push eax
call ebx
add esp, 8
test eax, eax
je 0x40e22d
cmp dword [0x448520], 0
mov dword [0x463b40], eax
je 0x40e0ff
mov edx, dword [0x443ad4]
lea ecx, [esi*8]
push ecx
push edx
call ebx
add esp, 8
test eax, eax
je 0x40e27e
mov dword [0x443ad4], eax
cmp dword [0x448520], 0
je 0x40e11e
mov edx, dword [0x443ad4]
lea eax, [edx + edi*8]
jmp 0x40e129
mov ecx, dword [0x443d30]
mov eax, esi
imul eax, eax, 0xd
push eax
push ecx
call ebx
add esp, 8
test eax, eax
je 0x40e2ce
mov dword [0x443d30], eax
mov eax, edi
imul eax, eax, 0xd
add eax, dword [0x443d30]
imul edi, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov edx, dword [0x463b40]
push ecx
push 0
push eax
push 0
lea edi, [edx + edi*8]
mov ebx, 2
call fcn.004266c0
mov ecx, dword [0x453194]
add esp, 0x10
cmp ecx, 8
jne 0x40e166
mov edx, dword [0x448698]
cmp edx, dword [0x443c00]
jl 0x40e166
inc eax
test eax, eax
jne 0x40e19d
mov edi, dword [0x4531c4]
cmp dword [0x448520], eax
je 0x40e090
mov eax, dword [0x443ad4]
fld qword [eax + edi*8]
fld qword [0x4596d0]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x40e090
inc edi
jmp 0x40e085
cmp eax, 0xa
je 0x40e31e
mov esi, dword [0x448c78]
cmp ecx, 5
jne 0x40e1c5
mov eax, dword [esi + 0x84]
test eax, eax
je 0x40e1c5
push eax
call dword [sym.imp.MSVCR100.dll_free]
add esp, 4
mov ecx, dword [esi + 0x70]
push ecx
call dword [sym.imp.MSVCR100.dll_fclose]
add esp, 4
mov dword [0x443e60], 0
cmp dword [0x453194], ebx
je 0x40e4a2
mov ebx, dword [0x4531c4]
dec ebx
js 0x40e4a2
mov edx, dword [ebp + 8]
fld qword [0x4596d0]
mov ecx, ebx
imul ecx, edx
lea esi, [ebx + 1]
imul esi, edx
mov eax, edx
neg eax
add ecx, ecx
add eax, eax
add esi, esi
add ecx, ecx
add eax, eax
add ecx, ecx
add eax, eax
add esi, esi
add esi, esi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], esi
jmp 0x40e375
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 0x40e276
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 0x40e2c6
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 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 0x40e316
call fcn.00406b90
push 3
call dword [sym.imp.MSVCR100.dll_exit]
mov ecx, dword [0x4531c4]
push ecx
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 0x40e36a
call fcn.00406b90
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
mov ecx, dword [ebp - 8]
add ecx, dword [0x463b40]
xor esi, esi
xor edi, edi
mov dword [ebp - 0x10], ecx
cmp edx, 4
jl 0x40e3dc
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 0x40e3a3
inc edi
fld qword [ecx + 8]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x40e3b2
inc edi
fld qword [ecx + 0x10]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x40e3c1
inc edi
fld qword [ecx + 0x18]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x40e3d0
inc edi
add ecx, 0x20
dec edx
jne 0x40e395
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 8]
cmp esi, edx
jge 0x40e3fc
sub edx, esi
fld qword [ecx]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x40e3f0
inc edi
add ecx, 8
dec edx
jne 0x40e3e2
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 8]
test edi, edi
je 0x40e493
cmp dword [0x448520], 0
fstp st(0)
mov eax, dword [0x4531c4]
je 0x40e43a
mov edx, dword [0x443ad4]
dec eax
lea edi, [edx + ebx*8]
cmp ebx, eax
jge 0x40e433
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 0x40e44b
mov edx, dword [0x443d30]
push edx
mov ecx, ebx
call fcn.00401ef0
add esp, 4
mov eax, dword [0x4531c4]
mov ecx, dword [ebp - 0xc]
add ecx, dword [0x463b40]
sub eax, ebx
mov esi, 1
sub eax, esi
imul eax, dword [ebp + 8]
add eax, eax
add eax, eax
add eax, eax
push eax
mov eax, dword [ebp - 0x10]
push ecx
push eax
call dword [sym.imp.MSVCR100.dll_memmove]
add dword [0x443e60], esi
fld qword [0x4596d0]
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 8]
add esp, 0xc
sub dword [0x4531c4], esi
add dword [ebp - 8], eax
add dword [ebp - 0xc], eax
dec ebx
jns 0x40e372
fstp st(0)
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret