// File: mirkat1206[P]Quine-McCluskey-Petrick-Method/Quine_McCluskey.cpp
// Function: Quine_McCluskey::Generate_Prime_Impli()
void Quine_McCluskey::Generate_Prime_Impli() {
	vector<bool> flag;
	int size = Impli.size() ;
	for( int i=0 ; i<size ; i++ )
		flag.push_back( false );
	
	string s;
	vector<string> temp;
	for( int i=0 ; i<size ; i++ ) {
		for( int j=i+1 ; j<size ; j++ ) {
			if( is_GrayCode( Impli[i] , Impli[j] ) ) {
				string s = Merge( Impli[i] , Impli[j] ) ;
				if( find( temp.begin() , temp.end() , s )==temp.end() )
					temp.push_back( s );
				flag[i] = true ;
				flag[j] = true ;
			}
		}
		if( flag[i]==false ) 
			Prime_Impli.push_back( Impli[i] );
	}
	Impli.clear();
	size = temp.size() ;
	for( int i=0 ; i<size ; i++ )
		Impli.push_back( temp[i] );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1e0, %rsp            # imm = 0x1E0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x188(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x4470
movq -0x188(%rbp), %rdi
addq $0x50, %rdi
callq 0x4490
movl %eax, -0x34(%rbp)
movl $0x0, -0x38(%rbp)
movl -0x38(%rbp), %eax
cmpl -0x34(%rbp), %eax
jge 0x36d0
leaq -0x30(%rbp), %rdi
xorl %esi, %esi
callq 0x44b0
jmp 0x36b2
jmp 0x36b4
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0x369d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x3b80
leaq -0x68(%rbp), %rdi
callq 0x22b0
leaq -0x80(%rbp), %rdi
callq 0x4160
movl $0x0, -0x84(%rbp)
movl -0x84(%rbp), %eax
cmpl -0x34(%rbp), %eax
jge 0x3ad3
movl -0x84(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x88(%rbp)
movl -0x88(%rbp), %eax
cmpl -0x34(%rbp), %eax
jge 0x3a33
movq -0x188(%rbp), %rdi
addq $0x50, %rdi
movslq -0x84(%rbp), %rsi
callq 0x4580
movq %rax, %rsi
leaq -0xa8(%rbp), %rdi
callq 0x20b0
jmp 0x3741
movq -0x188(%rbp), %rdi
addq $0x50, %rdi
movslq -0x88(%rbp), %rsi
callq 0x4580
movq %rax, %rsi
leaq -0xc8(%rbp), %rdi
callq 0x20b0
jmp 0x3769
movq -0x188(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
leaq -0xc8(%rbp), %rdx
callq 0x3be0
movb %al, -0x189(%rbp)
jmp 0x378b
leaq -0xc8(%rbp), %rdi
callq 0x2120
leaq -0xa8(%rbp), %rdi
callq 0x2120
movb -0x189(%rbp), %al
testb $0x1, %al
jne 0x37b2
jmp 0x3a1d
movq -0x188(%rbp), %rdi
addq $0x50, %rdi
movslq -0x84(%rbp), %rsi
callq 0x4580
movq %rax, %rsi
leaq -0x108(%rbp), %rdi
callq 0x20b0
jmp 0x37da
movq -0x188(%rbp), %rdi
addq $0x50, %rdi
movslq -0x88(%rbp), %rsi
callq 0x4580
movq %rax, %rsi
leaq -0x128(%rbp), %rdi
callq 0x20b0
jmp 0x3802
movq -0x188(%rbp), %rsi
leaq -0xe8(%rbp), %rdi
leaq -0x108(%rbp), %rdx
leaq -0x128(%rbp), %rcx
callq 0x3c80
jmp 0x3825
leaq -0x128(%rbp), %rdi
callq 0x2120
leaq -0x108(%rbp), %rdi
callq 0x2120
leaq -0x80(%rbp), %rdi
movq %rdi, -0x1a0(%rbp)
callq 0x4290
movq -0x1a0(%rbp), %rdi
movq %rax, -0x138(%rbp)
callq 0x42c0
movq %rax, -0x140(%rbp)
movq -0x138(%rbp), %rdi
movq -0x140(%rbp), %rsi
leaq -0xe8(%rbp), %rdx
callq 0x45e0
movq %rax, -0x198(%rbp)
jmp 0x388a
movq -0x198(%rbp), %rax
movq %rax, -0x130(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x42c0
movq %rax, -0x148(%rbp)
leaq -0x130(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x45a0
testb $0x1, %al
jne 0x38c4
jmp 0x3977
leaq -0x80(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x4630
jmp 0x38d6
jmp 0x3977
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x3b6e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x3912
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x2120
leaq -0xa8(%rbp), %rdi
callq 0x2120
jmp 0x3b6e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x3949
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x128(%rbp), %rdi
callq 0x2120
leaq -0x108(%rbp), %rdi
callq 0x2120
jmp 0x3b6e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x2120
jmp 0x3b6e
movslq -0x84(%rbp), %rsi
leaq -0x30(%rbp), %rdi
callq 0x46a0
movq %rdx, -0x1b0(%rbp)
movq %rax, -0x1a8(%rbp)
jmp 0x3997
movq -0x1b0(%rbp), %rax
movq -0x1a8(%rbp), %rcx
movq %rcx, -0x158(%rbp)
movq %rax, -0x150(%rbp)
leaq -0x158(%rbp), %rdi
movl $0x1, %esi
callq 0x4700
movslq -0x88(%rbp), %rsi
leaq -0x30(%rbp), %rdi
callq 0x46a0
movq %rdx, -0x1c0(%rbp)
movq %rax, -0x1b8(%rbp)
jmp 0x39e4
movq -0x1c0(%rbp), %rax
movq -0x1b8(%rbp), %rcx
movq %rcx, -0x168(%rbp)
movq %rax, -0x160(%rbp)
leaq -0x168(%rbp), %rdi
movl $0x1, %esi
callq 0x4700
leaq -0xe8(%rbp), %rdi
callq 0x2120
jmp 0x3a1f
movl -0x88(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x88(%rbp)
jmp 0x370a
movslq -0x84(%rbp), %rsi
leaq -0x30(%rbp), %rdi
callq 0x46a0
movq %rdx, -0x1d0(%rbp)
movq %rax, -0x1c8(%rbp)
jmp 0x3a53
movq -0x1d0(%rbp), %rax
movq -0x1c8(%rbp), %rcx
movq %rcx, -0x178(%rbp)
movq %rax, -0x170(%rbp)
leaq -0x178(%rbp), %rdi
callq 0x4750
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x3abd
movq -0x188(%rbp), %rdi
movq %rdi, %rax
addq $0x68, %rax
movq %rax, -0x1d8(%rbp)
addq $0x50, %rdi
movslq -0x84(%rbp), %rsi
callq 0x4580
movq -0x1d8(%rbp), %rdi
movq %rax, %rsi
callq 0x4630
jmp 0x3abb
jmp 0x3abd
jmp 0x3abf
movl -0x84(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x84(%rbp)
jmp 0x36ec
movq -0x188(%rbp), %rdi
addq $0x50, %rdi
callq 0x4780
leaq -0x80(%rbp), %rdi
callq 0x4490
movl %eax, -0x34(%rbp)
movl $0x0, -0x17c(%rbp)
movl -0x17c(%rbp), %eax
cmpl -0x34(%rbp), %eax
jge 0x3b4a
movq -0x188(%rbp), %rax
addq $0x50, %rax
movq %rax, -0x1e0(%rbp)
movslq -0x17c(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0x4580
movq -0x1e0(%rbp), %rdi
movq %rax, %rsi
callq 0x4630
jmp 0x3b37
jmp 0x3b39
movl -0x17c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x17c(%rbp)
jmp 0x3af9
leaq -0x80(%rbp), %rdi
callq 0x2bc0
leaq -0x68(%rbp), %rdi
callq 0x2120
leaq -0x30(%rbp), %rdi
callq 0x47a0
addq $0x1e0, %rsp            # imm = 0x1E0
popq %rbp
retq
leaq -0x80(%rbp), %rdi
callq 0x2bc0
leaq -0x68(%rbp), %rdi
callq 0x2120
leaq -0x30(%rbp), %rdi
callq 0x47a0
movq -0x40(%rbp), %rdi
callq 0x2340
nopw %cs:(%rax,%rax)