Function at 0x40b1f0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
mov edx, dword [ebp + 0xc]
fldz
push ebx
fst qword [ebp - 0x50]
mov ebx, eax
fstp qword [ebp - 0x48]
mov eax, dword [0x430d3c]
push esi
mov esi, ebx
imul esi, ebx
push edi
lea edi, [edx + esi*2]
imul edi, esi
add edi, edi
add edi, edi
mov dword [ebp - 4], eax
xor eax, eax
add edi, edi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], eax
cmp edi, eax
jne 0x40b230
mov dword [ebp - 0x10], eax
jmp 0x40b27e
push edi
call dword [sym.imp.MSVCR100.dll_malloc]
add esp, 4
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x40b269
push str._Out_of_memory._Please_run_a_smaller_problem_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
call fcn.00404240
inc dword [0x42fba4]
je 0x40b261
call fcn.00403eb0
push 3
call dword [sym.imp.MSVCR100.dll_exit]
push edi
push 0
push eax
call sub.MSVCR100.dll_memset
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp + 0xc]
add esp, 0xc
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x10]
mov ecx, esi
imul ecx, esi
lea eax, [eax + ecx*8]
mov dword [ebp - 0x24], eax
lea eax, [eax + ecx*8]
mov dword [ebp - 0x30], eax
lea eax, [edx + 1]
imul eax, edx
cdq
sub eax, edx
mov edi, eax
sar edi, 1
add edi, edi
add edi, edi
add edi, edi
mov dword [ebp - 0x2c], ecx
jne 0x40b2af
mov dword [ebp - 0x34], edi
jmp 0x40b2fd
push edi
call dword [sym.imp.MSVCR100.dll_malloc]
add esp, 4
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x40b2e8
push str._Out_of_memory._Please_run_a_smaller_problem_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
call fcn.00404240
inc dword [0x42fba4]
je 0x40b2e0
call fcn.00403eb0
push 3
call dword [sym.imp.MSVCR100.dll_exit]
push edi
push 0
push eax
call sub.MSVCR100.dll_memset
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x2c]
add esp, 0xc
test ecx, ecx
jle 0x40b310
mov edi, dword [ebp - 0x24]
and ecx, 0x1fffffff
add ecx, ecx
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 4]
mov edi, dword [0x42fe70]
mov eax, ecx
imul eax, ecx
test eax, eax
jle 0x40b333
mov ecx, eax
and ecx, 0x1fffffff
add ecx, ecx
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 4]
mov edi, dword [0x42fe60]
test ecx, ecx
jle 0x40b349
and ecx, 0x1fffffff
add ecx, ecx
xor eax, eax
rep stosd dword es:[edi], eax
mov edx, dword [0x42fea0]
lea eax, [esi*8]
mov esi, dword [0x42fee8]
push eax
push edx
push esi
mov dword [ebp - 0x14], eax
call sub.MSVCR100.dll_memcpy
fild dword [0x430bbc]
add esp, 4
mov ecx, ebx
fstp qword [esp]
push esi
mov esi, ebx
mov eax, ebx
call fcn.00403300
xor eax, eax
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [0x430bbc], eax
jle 0x40b5e2
mov edi, dword [0x42fef8]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xc], eax
jmp 0x40b3a4
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x10]
mov esi, dword [ecx + eax*4]
mov ecx, dword [ebp - 4]
mov edx, dword [0x42fef0]
push ecx
push ecx
push ebx
push edx
mov edx, dword [0x42ff34]
push ecx
mov ecx, esi
call fcn.00418990
mov eax, dword [0x42ff3c]
mov edx, dword [0x42fe40]
add esp, 0x14
push ebx
push ebx
push ebx
push eax
mov eax, dword [ebp - 8]
push ebx
mov ecx, esi
call fcn.00418990
mov eax, dword [ebp - 0x18]
add eax, dword [0x42fe6c]
add esp, 0x14
lea ecx, [esi*8]
push ecx
mov ecx, dword [0x42fdf8]
push eax
push ecx
call sub.MSVCR100.dll_memcpy
mov edx, dword [0x42ff3c]
add esp, 0xc
push ebx
push ebx
push ebx
push edx
mov edx, dword [0x42fea0]
push ebx
push esi
mov ecx, edi
mov eax, ebx
call fcn.00402f30
mov eax, dword [0x42ff3c]
mov ecx, dword [0x42fee4]
push ebx
push ebx
push eax
push edi
push ebx
push esi
mov edx, ebx
mov eax, esi
call fcn.00403160
mov ecx, dword [ebp + 0x1c]
mov edx, dword [0x42fee4]
push ebx
push ebx
push ecx
push edi
push edx
push esi
call fcn.004028b0
add esp, 0x48
test eax, eax
jne 0x40b6a3
mov eax, dword [ebp + 0x1c]
fld qword [eax]
call sub.MSVCR100.dll__CIlog
fadd qword [ebp - 0x50]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
mov edi, dword [0x42fef8]
fstp qword [ebp - 0x50]
add eax, dword [0x42fee0]
push ecx
push edi
push eax
call sub.MSVCR100.dll_memcpy
mov eax, dword [ebp - 4]
mov ecx, dword [0x42fef0]
add esp, 0xc
push ebx
push ebx
push eax
push edi
push ecx
mov ecx, dword [0x42fe5c]
push esi
push eax
mov eax, esi
call fcn.00403040
mov edx, dword [0x42ff3c]
mov ecx, dword [0x42fee4]
add esp, 0x1c
push ebx
push ebx
push ebx
push edi
push edx
push esi
push ebx
mov eax, esi
call fcn.00403040
mov eax, dword [0x42fee4]
mov edx, dword [0x42ff3c]
add esp, 0x1c
push ebx
push ebx
push ebx
push eax
push esi
push ebx
mov ecx, edi
mov eax, ebx
call fcn.00402f30
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x10]
push ecx
push edx
push edi
push edi
push ebx
push ebx
mov ecx, ebx
mov eax, ebx
call fcn.00402e20
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov edx, ecx
call fcn.00403640
mov ecx, dword [0x42fea0]
mov eax, dword [0x42fee4]
push ecx
push ebx
push ebx
push ebx
mov edx, edi
call fcn.00403450
mov edx, dword [0x42fee4]
add esp, 0x48
push edx
push ebx
push ebx
mov edx, dword [0x42fea0]
push ebx
mov eax, edi
call fcn.00403450
mov ecx, dword [0x42fee8]
push edi
push ebx
mov edx, ecx
mov eax, ebx
call fcn.004036f0
mov eax, dword [ebp - 4]
mov ecx, dword [0x42fe5c]
mov edx, dword [0x42fef0]
push eax
push eax
push ebx
push ecx
mov ecx, dword [0x42feec]
push esi
push eax
call fcn.00402f30
mov edx, dword [0x42feec]
mov eax, dword [ebp - 4]
mov ecx, dword [0x42fe70]
push edx
push eax
mov edx, ecx
call fcn.00403640
mov eax, dword [0x42fe5c]
mov ecx, dword [ebp - 4]
mov edx, dword [0x42fdf8]
push 1
push 1
push ebx
push eax
push esi
mov esi, dword [0x42fe9c]
push ecx
mov ecx, esi
mov eax, 1
call fcn.00402f30
mov ecx, dword [0x42fe60]
mov eax, dword [ebp - 4]
add esp, 0x50
push esi
push 1
mov edx, ecx
call fcn.00403640
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
add dword [ebp - 0xc], edx
inc eax
lea ecx, [ebx*8]
add dword [ebp - 0x18], ecx
add esp, 8
mov dword [ebp - 8], eax
cmp eax, dword [0x430bbc]
jl 0x40b3a1
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x24]
push esi
push esi
push edi
call fcn.00403540
mov eax, dword [ebp - 0x30]
mov edx, dword [0x42fdfc]
add esp, 0xc
push edi
push edi
push esi
push eax
push esi
mov esi, dword [0x42fe58]
push edi
mov ecx, esi
mov eax, edi
call fcn.00402f30
fld qword [0x42e1a8]
add esp, 0x10
fstp qword [esp]
push esi
mov ecx, edi
mov esi, edi
mov eax, edi
call fcn.00403300
mov ecx, dword [ebp - 0x34]
mov edx, dword [0x42fe04]
mov eax, dword [0x42fe58]
add esp, 0xc
push edi
push edi
push ecx
push edx
push eax
push edi
call fcn.004028b0
add esp, 0x18
xor ecx, ecx
mov dword [ebp - 0xc], eax
test edi, edi
jle 0x40b678
mov edx, dword [0x42fe58]
fldz
lea esi, [edi*8 + 8]
fcom qword [edx]
fnstsw ax
test ah, 0x41
je 0x40b6ac
inc ecx
add edx, esi
cmp ecx, edi
jl 0x40b666
fstp st(0)
mov esi, dword [0x42fe58]
push edi
push esi
push edi
call fcn.00401680
add esp, 0xc
test eax, eax
jne 0x40b6ae
push edi
lea ecx, [ebp - 0x40]
push ecx
push esi
push edi
call fcn.00401760
add esp, 0x10
neg eax
sbb eax, eax
inc eax
jmp 0x40b6b3
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fstp st(0)
mov eax, 1
cmp dword [ebp - 0xc], 0
jne 0x40bb3d
test eax, eax
jne 0x40bb3d
mov dword [ebp - 0x20], 1
cmp dword [ebp + 8], eax
jne 0x40bb3d
mov esi, dword [ebp - 4]
mov edx, dword [ebp + 0x1c]
mov eax, dword [0x42fe4c]
mov ecx, dword [0x42fe70]
push esi
push esi
push edx
push eax
push ecx
push esi
call fcn.004028b0
add esp, 0x18
test eax, eax
je 0x40b704
mov dword [ebp - 0x20], 0
jmp 0x40bb3d
mov edx, dword [0x42fe4c]
mov ecx, dword [0x42fe3c]
push 1
push 1
push esi
push edx
mov edx, dword [0x42fe60]
push esi
push esi
mov eax, 1
call fcn.00402f30
xor eax, eax
add esp, 0x18
mov dword [ebp - 8], eax
cmp dword [0x430bbc], eax
jle 0x40ba1f
mov edx, dword [0x42fee0]
mov ecx, dword [0x42fe98]
mov edi, dword [0x42ff28]
mov dword [ebp - 0x30], edx
mov edx, dword [0x42fe6c]
sub edx, ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x38], edx
jmp 0x40b764
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x10]
mov esi, dword [ecx + eax*4]
mov ecx, dword [ebp - 4]
mov edx, dword [0x42fef0]
push ecx
push ecx
push ebx
push edx
mov edx, dword [0x42ff34]
push ecx
mov ecx, esi
call fcn.00418990
mov eax, dword [0x42ff3c]
mov edx, dword [0x42fe40]
add esp, 0x14
push ebx
push ebx
push ebx
push eax
mov eax, dword [ebp - 8]
push ebx
mov ecx, esi
call fcn.00418990
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x30]
mov eax, dword [0x42fef8]
add esp, 0x14
push ecx
push edx
push eax
call sub.MSVCR100.dll_memcpy
mov edx, dword [ebp - 0x38]
add edx, dword [ebp - 0x18]
add esp, 0xc
lea ecx, [esi*8]
push ecx
mov ecx, dword [0x42fdf8]
push edx
push ecx
call sub.MSVCR100.dll_memcpy
mov edx, dword [0x42fef8]
mov ecx, dword [0x42fe64]
add esp, 0xc
push 1
push 1
push ebx
push edx
mov edx, dword [0x42fdf8]
push esi
push esi
mov eax, 1
call fcn.00402f30
mov eax, dword [ebp - 4]
mov ecx, dword [0x42fef0]
mov edx, dword [0x42fe3c]
push 1
push 1
push eax
push ecx
push eax
push esi
mov ecx, edi
mov eax, 1
call fcn.00402f30
fld qword [ebp - 0x48]
xor ecx, ecx
add esp, 0x30
mov dword [ebp - 0xc], ecx
cmp esi, 4
jl 0x40b8d8
mov ecx, dword [0x42fdf8]
lea edx, [edi + 0x10]
mov dword [ebp - 0x24], edx
mov edx, dword [0x42fe64]
sub edx, ecx
mov dword [ebp - 0x28], edx
lea eax, [ecx + 8]
mov edx, edi
sub edx, ecx
mov ecx, dword [0x42fe64]
sub ecx, edi
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x2c], edx
mov edx, dword [0x42fe64]
fld qword [edx + ecx*8]
mov ecx, dword [ebp - 0x24]
fld qword [eax - 8]
mov edx, dword [ebp - 0x28]
fmul st(1)
add eax, 0x20
faddp st(2)
fmul qword [ecx - 0x10]
fsubp st(1)
fld qword [edx + eax - 0x20]
mov edx, dword [ebp - 0x2c]
fld st(0)
fmul qword [eax - 0x20]
faddp st(2)
fmul qword [edx + eax - 0x20]
mov edx, dword [ebp - 0x3c]
fsubp st(1)
fld qword [edx + ecx]
mov edx, dword [0x42fe64]
fld qword [eax - 0x18]
fmul st(1)
faddp st(2)
fmul qword [ecx]
mov ecx, dword [ebp - 0xc]
add ecx, 4
mov dword [ebp - 0xc], ecx
fsubp st(1)
fld qword [edx + ecx*8 - 8]
mov edx, dword [ebp - 0x24]
fld qword [eax - 0x10]
add edx, 0x20
fmul st(1)
mov dword [ebp - 0x24], edx
faddp st(2)
fmul qword [edx - 0x18]
lea edx, [esi - 3]
fsubp st(1)
cmp ecx, edx
jl 0x40b863
fst qword [ebp - 0x48]
mov eax, dword [0x42fdf8]
cmp ecx, esi
jge 0x40b920
lea edx, [eax + ecx*8]
mov dword [ebp - 0x3c], edx
mov edx, dword [0x42fe64]
sub edx, eax
mov dword [ebp - 0x28], edx
mov edx, edi
sub edx, eax
mov eax, esi
sub eax, ecx
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x28]
fld qword [edx + ecx]
mov edx, dword [ebp - 0x2c]
fld qword [ecx]
add ecx, 8
dec eax
fmul st(1)
faddp st(2)
fmul qword [edx + ecx - 8]
fsubp st(1)
jne 0x40b900
fstp qword [ebp - 0x48]
jmp 0x40b922
fstp st(0)
mov eax, dword [ebp - 4]
mov ecx, dword [0x42fef0]
mov edx, dword [0x42fe3c]
push 1
push 1
push eax
push ecx
push eax
push esi
mov ecx, edi
mov eax, 1
call fcn.00402f30
mov ecx, dword [0x42fdf8]
push edi
push 1
mov edx, ecx
mov eax, esi
call fcn.004036f0
mov edx, dword [0x42ff3c]
mov eax, dword [0x42fea0]
mov ecx, dword [0x42fee4]
push ebx
push ebx
push edx
push eax
push ebx
push ebx
mov edx, ebx
mov eax, esi
call fcn.00403160
mov ecx, dword [0x42fee4]
mov edx, dword [0x42fef8]
push ebx
push ebx
push ebx
push ecx
mov ecx, dword [0x42fe74]
push esi
push ebx
mov eax, esi
call fcn.00402f30
mov edx, dword [0x42fe74]
add esp, 0x50
push 1
push 1
push ebx
push edx
mov edx, dword [0x42fdf8]
push esi
push ebx
mov ecx, edi
mov eax, 1
call fcn.00402f30
mov eax, dword [ebp - 0x18]
lea esi, [ebx*8]
push esi
push edi
push eax
call sub.MSVCR100.dll_memcpy
mov ecx, dword [0x42fef8]
add esp, 0x24
push ebx
push 1
push 1
push edi
push 1
push ebx
mov edx, edi
mov eax, ebx
call fcn.00402f30
mov ecx, dword [0x42fef8]
push ecx
mov ecx, dword [0x42fee8]
push ebx
mov edx, ecx
mov eax, ebx
call fcn.00403640
mov eax, dword [ebp - 8]
add esp, 0x20
inc eax
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x14]
add dword [ebp - 0x30], edx
add dword [ebp - 0x18], esi
cmp eax, dword [0x430bbc]
jl 0x40b761
mov edi, dword [ebp + 0xc]
fild dword [0x430bbc]
mov eax, dword [0x42fee8]
fld1
sub esp, 8
fdivrp st(1)
mov ecx, ebx
mov esi, ebx
fstp qword [esp]
push eax
mov eax, ebx
call fcn.00403300
mov esi, dword [0x42fea0]
mov ecx, dword [0x42fee8]
add esp, 0xc
push esi
push ebx
mov edx, ecx
mov eax, ebx
call fcn.004036f0
mov ecx, dword [ebp + 0x1c]
mov edx, dword [0x42fef8]
push ebx
push ebx
push ecx
push edx
push esi
push ebx
call fcn.004028b0
mov eax, dword [0x42fef8]
mov esi, dword [0x42fee8]
push eax
mov eax, dword [0x42fee4]
push ebx
push ebx
push ebx
mov edx, esi
call fcn.00403450
mov ecx, dword [0x42fee4]
mov edx, dword [0x42fef8]
push ecx
push ebx
push ebx
push ebx
mov eax, esi
call fcn.00403450
fild dword [0x430bbc]
add esp, 0x40
sub esp, 8
fstp qword [esp]
push esi
mov ecx, ebx
mov esi, ebx
mov eax, ebx
call fcn.00403300
mov edx, dword [0x42fee8]
mov eax, dword [0x42fdfc]
mov ecx, dword [ebp - 0x1c]
mov esi, dword [0x42fefc]
add esp, 0xc
push 1
push 1
push edi
push edx
push eax
push ecx
push edi
mov ecx, esi
mov eax, 1
call fcn.00403040
add esp, 0x1c
xor eax, eax
test edi, edi
jle 0x40bb06
fld qword [0x42e1a8]
fld qword [esi + eax*8]
inc eax
fmul st(1)
fstp qword [esi + eax*8 - 8]
cmp eax, edi
jl 0x40baf6
fstp st(0)
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x10]
push edx
push eax
call fcn.0040bb70
add esp, 8
test eax, eax
jne 0x40bb1f
mov dword [ebp - 0x20], eax
jmp 0x40bb3d
mov eax, dword [ebp + 0x14]
fld qword [eax]
mov ecx, dword [ebp + 0x18]
fstp qword [ecx]
fld qword [0x42fe90]
fadd qword [ebp - 0x50]
fadd qword [ebp - 0x48]
fmul qword [0x42e2a8]
fstp qword [eax]
mov eax, dword [ebp - 0x34]
mov esi, dword [sym.imp.MSVCR100.dll_free]
test eax, eax
je 0x40bb50
push eax
call esi
add esp, 4
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x40bb5d
push eax
call esi
add esp, 4
mov eax, dword [ebp - 0x20]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret