// File: lionalion[P]clusterization/clust_w2v.cpp
// Function: postClast(std::vector<std::vector<int, std::allocator<int>>, std::allocator<std::vector<int, std::allocator<int>>>>, std::vector<std::vector<std::map<int, float, std::less<int>, std::allocator<std::pair<int const, float>>>, std::allocator<std::map<int, float, std::less<int>, std::allocator<std::pair<int const, float>>>>>, std::allocator<std::vector<std::map<int, float, std::less<int>, std::allocator<std::pair<int const, float>>>, std::allocator<std::map<int, float, std::less<int>, std::allocator<std::pair<int const, float>>>>>>>, int, float, std::vector<std::vector<int, std::allocator<int>>, std::allocator<std::vector<int, std::allocator<int>>>>&, std::vector<std::vector<std::map<int, float, std::less<int>, std::allocator<std::pair<int const, float>>>, std::allocator<std::map<int, float, std::less<int>, std::allocator<std::pair<int const, float>>>>>, std::allocator<std::vector<std::map<int, float, std::less<int>, std::allocator<std::pair<int const, float>>>, std::allocator<std::map<int, float, std::less<int>, std::allocator<std::pair<int const, float>>>>>>>&)
void postClast (std::vector < std::vector < int > > vIdStr,std::vector < std::vector <std::map<int,float> > > vMapCls, int th3, float th4, std::vector < std::vector < int > > & vOutIdStr, std::vector < std::vector <std::map<int,float> > > & vOutMapCls){
	std::multimap <int,int> SizeMapCls;
	int n=0;
	for (int k=0; k<vMapCls.size(); k++)
		SizeMapCls.insert(std::pair<int,int>( vMapCls[k].size(),k )); 

	std::vector <int> vCheck;			
	for (std::multimap<int,int>::const_reverse_iterator rit = SizeMapCls.rbegin(); rit != SizeMapCls.rend(); ++rit){		
		bool flg_x=false;
		for (int q=0; q<vCheck.size(); q++){
			if (vCheck[q] == (*rit).second)
				flg_x=true;
		}
		if (vIdStr[(*rit).second].size() > th3 && flg_x==false){	
			vOutIdStr.resize( vOutIdStr.size()+1 );
			vOutMapCls.resize( vOutMapCls.size()+1 );
			for (int h=0; h< vIdStr[(*rit).second].size(); h++){							
				vOutIdStr[n].push_back(vIdStr[(*rit).second][h]); 							
				vOutMapCls[n].push_back(vMapCls[(*rit).second][h]); 
			}
			for ( std::multimap<int,int>::const_reverse_iterator tir = rit; tir != SizeMapCls.rend(); ++tir){
				bool flg_y=false;
				for (int q=0; q<vCheck.size(); q++){
					if (vCheck[q] == (*tir).second)
						flg_y=true;
				}
				if ((*rit).second!=(*tir).second && flg_y==false){
					int cnt=0;
					if (vIdStr[(*tir).second].size() > th3){
						for (int w=0; w<vIdStr[(*rit).second].size(); w++){
							for (int z=0; z<vIdStr[(*tir).second].size(); z++){
								if (vIdStr[(*rit).second][w] == vIdStr[(*tir).second][z]) {
									cnt++;
									break;
								}
							}
						}
						if ( cnt > vIdStr[(*tir).second].size()*th4){
							for (int g=0; g< vIdStr[(*tir).second].size(); g++){ 
								bool be=false;
								for (int j=0; j< vOutIdStr[n].size(); j++){
									if(vOutIdStr[n][j] == vIdStr[(*tir).second][g])
										be=true;
								}
								if (be==false){
									vOutIdStr[n].push_back(vIdStr[(*tir).second][g]);
									vOutMapCls[n].push_back(vMapCls[(*tir).second][g]);
								}
							}
							vCheck.push_back((*tir).second);
						}
					}
				}
			}	
			n++;					
		}		
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x280, %rsp            # imm = 0x280
movq %rdi, -0x108(%rbp)
movq %rsi, -0x100(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movss %xmm0, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x56d0
movl $0x0, -0x5c(%rbp)
movl $0x0, -0x60(%rbp)
movq -0x100(%rbp), %rdi
movslq -0x60(%rbp), %rax
movq %rax, -0x110(%rbp)
callq 0x56f0
movq %rax, %rcx
movq -0x110(%rbp), %rax
cmpq %rcx, %rax
jae 0x26c0
movq -0x100(%rbp), %rdi
movslq -0x60(%rbp), %rsi
callq 0x5750
movq %rax, %rdi
callq 0x5770
movq %rax, -0x70(%rbp)
leaq -0x68(%rbp), %rdi
leaq -0x70(%rbp), %rsi
leaq -0x60(%rbp), %rdx
callq 0x57a0
jmp 0x267d
leaq -0x58(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x5720
movq %rax, -0x118(%rbp)
jmp 0x2693
movq -0x118(%rbp), %rax
movq %rax, -0x88(%rbp)
movl -0x60(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x60(%rbp)
jmp 0x2628
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x302e
leaq -0xa0(%rbp), %rdi
callq 0x57d0
leaq -0xb0(%rbp), %rdi
movq %rdi, -0x120(%rbp)
leaq -0x58(%rbp), %rsi
callq 0x57f0
movq -0x120(%rbp), %rsi
leaq -0xa8(%rbp), %rdi
callq 0x5820
jmp 0x26f8
jmp 0x26fa
leaq -0xb8(%rbp), %rdi
movq %rdi, -0x130(%rbp)
leaq -0x58(%rbp), %rsi
callq 0x58a0
movq -0x130(%rbp), %rsi
leaq -0xa8(%rbp), %rdi
callq 0x5850
movb %al, -0x121(%rbp)
jmp 0x272c
movb -0x121(%rbp), %al
testb $0x1, %al
jne 0x273b
jmp 0x3010
movb $0x0, -0xb9(%rbp)
movl $0x0, -0xc0(%rbp)
movslq -0xc0(%rbp), %rax
movq %rax, -0x138(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x58d0
movq %rax, %rcx
movq -0x138(%rbp), %rax
cmpq %rcx, %rax
jae 0x27f3
movslq -0xc0(%rbp), %rsi
leaq -0xa0(%rbp), %rdi
callq 0x58f0
movl (%rax), %eax
movl %eax, -0x144(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x5910
movq %rax, -0x140(%rbp)
jmp 0x27a5
movl -0x144(%rbp), %eax
movq -0x140(%rbp), %rcx
cmpl 0x4(%rcx), %eax
jne 0x27dd
movb $0x1, -0xb9(%rbp)
jmp 0x27dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x5c00
jmp 0x302e
jmp 0x27df
movl -0xc0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc0(%rbp)
jmp 0x274c
leaq -0xa8(%rbp), %rdi
callq 0x5910
movq %rax, -0x150(%rbp)
jmp 0x2808
movq -0x108(%rbp), %rdi
movq -0x150(%rbp), %rax
movslq 0x4(%rax), %rsi
callq 0x5940
movq %rax, %rdi
callq 0x58d0
movslq -0x14(%rbp), %rcx
cmpq %rcx, %rax
jbe 0x2ffb
movb -0xb9(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x2ffb
movq -0x20(%rbp), %rdi
movq %rdi, -0x158(%rbp)
callq 0x59f0
movq -0x158(%rbp), %rdi
movq %rax, %rsi
incq %rsi
callq 0x5960
jmp 0x286c
movq -0x28(%rbp), %rdi
movq %rdi, -0x160(%rbp)
callq 0x56f0
movq -0x160(%rbp), %rdi
movq %rax, %rsi
incq %rsi
callq 0x5a20
jmp 0x2890
movl $0x0, -0xc4(%rbp)
movslq -0xc4(%rbp), %rax
movq %rax, -0x170(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x5910
movq %rax, -0x168(%rbp)
jmp 0x28bd
movq -0x108(%rbp), %rdi
movq -0x168(%rbp), %rax
movslq 0x4(%rax), %rsi
callq 0x5940
movq %rax, %rdi
callq 0x58d0
movq %rax, %rcx
movq -0x170(%rbp), %rax
cmpq %rcx, %rax
jae 0x29c5
movq -0x20(%rbp), %rdi
movslq -0x5c(%rbp), %rsi
callq 0x5940
movq %rax, -0x180(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x5910
movq %rax, -0x178(%rbp)
jmp 0x2918
movq -0x108(%rbp), %rdi
movq -0x178(%rbp), %rax
movslq 0x4(%rax), %rsi
callq 0x5940
movq %rax, %rdi
movslq -0xc4(%rbp), %rsi
callq 0x58f0
movq -0x180(%rbp), %rdi
movq %rax, %rsi
callq 0x5ab0
jmp 0x294f
movq -0x28(%rbp), %rdi
movslq -0x5c(%rbp), %rsi
callq 0x5750
movq %rax, -0x190(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x5910
movq %rax, -0x188(%rbp)
jmp 0x2978
movq -0x100(%rbp), %rdi
movq -0x188(%rbp), %rax
movslq 0x4(%rax), %rsi
callq 0x5750
movq %rax, %rdi
movslq -0xc4(%rbp), %rsi
callq 0x5b90
movq -0x190(%rbp), %rdi
movq %rax, %rsi
callq 0x5b20
jmp 0x29af
jmp 0x29b1
movl -0xc4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc4(%rbp)
jmp 0x289a
leaq -0xd0(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x5bb0
jmp 0x29da
jmp 0x29dc
leaq -0xd8(%rbp), %rdi
movq %rdi, -0x1a0(%rbp)
leaq -0x58(%rbp), %rsi
callq 0x58a0
movq -0x1a0(%rbp), %rsi
leaq -0xd0(%rbp), %rdi
callq 0x5850
movb %al, -0x191(%rbp)
jmp 0x2a0e
movb -0x191(%rbp), %al
testb $0x1, %al
jne 0x2a1d
jmp 0x2ff2
movb $0x0, -0xd9(%rbp)
movl $0x0, -0xe0(%rbp)
movslq -0xe0(%rbp), %rax
movq %rax, -0x1a8(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x58d0
movq %rax, %rcx
movq -0x1a8(%rbp), %rax
cmpq %rcx, %rax
jae 0x2ab6
movslq -0xe0(%rbp), %rsi
leaq -0xa0(%rbp), %rdi
callq 0x58f0
movl (%rax), %eax
movl %eax, -0x1b4(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x5910
movq %rax, -0x1b0(%rbp)
jmp 0x2a87
movl -0x1b4(%rbp), %eax
movq -0x1b0(%rbp), %rcx
cmpl 0x4(%rcx), %eax
jne 0x2aa0
movb $0x1, -0xd9(%rbp)
jmp 0x2aa2
movl -0xe0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xe0(%rbp)
jmp 0x2a2e
leaq -0xa8(%rbp), %rdi
callq 0x5910
movq %rax, -0x1c0(%rbp)
jmp 0x2acb
movq -0x1c0(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x1cc(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x5910
movq %rax, -0x1c8(%rbp)
jmp 0x2af0
movl -0x1cc(%rbp), %eax
movq -0x1c8(%rbp), %rcx
cmpl 0x4(%rcx), %eax
je 0x2fdd
movb -0xd9(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x2fdd
movl $0x0, -0xe4(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x5910
movq %rax, -0x1d8(%rbp)
jmp 0x2b39
movq -0x108(%rbp), %rdi
movq -0x1d8(%rbp), %rax
movslq 0x4(%rax), %rsi
callq 0x5940
movq %rax, %rdi
callq 0x58d0
movslq -0x14(%rbp), %rcx
cmpq %rcx, %rax
jbe 0x2fdb
movl $0x0, -0xe8(%rbp)
movslq -0xe8(%rbp), %rax
movq %rax, -0x1e8(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x5910
movq %rax, -0x1e0(%rbp)
jmp 0x2b92
movq -0x108(%rbp), %rdi
movq -0x1e0(%rbp), %rax
movslq 0x4(%rax), %rsi
callq 0x5940
movq %rax, %rdi
callq 0x58d0
movq %rax, %rcx
movq -0x1e8(%rbp), %rax
cmpq %rcx, %rax
jae 0x2ceb
movl $0x0, -0xec(%rbp)
movslq -0xec(%rbp), %rax
movq %rax, -0x1f8(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x5910
movq %rax, -0x1f0(%rbp)
jmp 0x2bf1
movq -0x108(%rbp), %rdi
movq -0x1f0(%rbp), %rax
movslq 0x4(%rax), %rsi
callq 0x5940
movq %rax, %rdi
callq 0x58d0
movq %rax, %rcx
movq -0x1f8(%rbp), %rax
cmpq %rcx, %rax
jae 0x2cd5
leaq -0xa8(%rbp), %rdi
callq 0x5910
movq %rax, -0x200(%rbp)
jmp 0x2c38
movq -0x108(%rbp), %rdi
movq -0x200(%rbp), %rax
movslq 0x4(%rax), %rsi
callq 0x5940
movq %rax, %rdi
movslq -0xe8(%rbp), %rsi
callq 0x58f0
movl (%rax), %eax
movl %eax, -0x20c(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x5910
movq %rax, -0x208(%rbp)
jmp 0x2c7b
movq -0x108(%rbp), %rdi
movq -0x208(%rbp), %rax
movslq 0x4(%rax), %rsi
callq 0x5940
movq %rax, %rdi
movslq -0xec(%rbp), %rsi
callq 0x58f0
movq %rax, %rcx
movl -0x20c(%rbp), %eax
cmpl (%rcx), %eax
jne 0x2cbf
movl -0xe4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xe4(%rbp)
jmp 0x2cd5
jmp 0x2cc1
movl -0xec(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xec(%rbp)
jmp 0x2bce
jmp 0x2cd7
movl -0xe8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xe8(%rbp)
jmp 0x2b6f
cvtsi2ssl -0xe4(%rbp), %xmm0
movss %xmm0, -0x21c(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x5910
movq %rax, -0x218(%rbp)
jmp 0x2d10
movq -0x108(%rbp), %rdi
movq -0x218(%rbp), %rax
movslq 0x4(%rax), %rsi
callq 0x5940
movq %rax, %rdi
callq 0x58d0
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, -0x224(%rbp)
testq %rax, %rax
movss %xmm0, -0x220(%rbp)
js 0x2d70
movss -0x224(%rbp), %xmm0
movss %xmm0, -0x220(%rbp)
movss -0x21c(%rbp), %xmm0
movss -0x220(%rbp), %xmm1
mulss -0x18(%rbp), %xmm1
ucomiss %xmm1, %xmm0
jbe 0x2fd9
movl $0x0, -0xf0(%rbp)
movslq -0xf0(%rbp), %rax
movq %rax, -0x238(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x5910
movq %rax, -0x230(%rbp)
jmp 0x2dbb
movq -0x108(%rbp), %rdi
movq -0x230(%rbp), %rax
movslq 0x4(%rax), %rsi
callq 0x5940
movq %rax, %rdi
callq 0x58d0
movq %rax, %rcx
movq -0x238(%rbp), %rax
cmpq %rcx, %rax
jae 0x2fa9
movb $0x0, -0xf1(%rbp)
movl $0x0, -0xf8(%rbp)
movslq -0xf8(%rbp), %rax
movq %rax, -0x240(%rbp)
movq -0x20(%rbp), %rdi
movslq -0x5c(%rbp), %rsi
callq 0x5940
movq %rax, %rdi
callq 0x58d0
movq %rax, %rcx
movq -0x240(%rbp), %rax
cmpq %rcx, %rax
jae 0x2ebd
movq -0x20(%rbp), %rdi
movslq -0x5c(%rbp), %rsi
callq 0x5940
movq %rax, %rdi
movslq -0xf8(%rbp), %rsi
callq 0x58f0
movl (%rax), %eax
movl %eax, -0x24c(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x5910
movq %rax, -0x248(%rbp)
jmp 0x2e6d
movq -0x108(%rbp), %rdi
movq -0x248(%rbp), %rax
movslq 0x4(%rax), %rsi
callq 0x5940
movq %rax, %rdi
movslq -0xf0(%rbp), %rsi
callq 0x58f0
movq %rax, %rcx
movl -0x24c(%rbp), %eax
cmpl (%rcx), %eax
jne 0x2ea7
movb $0x1, -0xf1(%rbp)
jmp 0x2ea9
movl -0xf8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xf8(%rbp)
jmp 0x2dfe
movb -0xf1(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x2f93
movq -0x20(%rbp), %rdi
movslq -0x5c(%rbp), %rsi
callq 0x5940
movq %rax, -0x260(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x5910
movq %rax, -0x258(%rbp)
jmp 0x2efa
movq -0x108(%rbp), %rdi
movq -0x258(%rbp), %rax
movslq 0x4(%rax), %rsi
callq 0x5940
movq %rax, %rdi
movslq -0xf0(%rbp), %rsi
callq 0x58f0
movq -0x260(%rbp), %rdi
movq %rax, %rsi
callq 0x5ab0
jmp 0x2f31
movq -0x28(%rbp), %rdi
movslq -0x5c(%rbp), %rsi
callq 0x5750
movq %rax, -0x270(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x5910
movq %rax, -0x268(%rbp)
jmp 0x2f5a
movq -0x100(%rbp), %rdi
movq -0x268(%rbp), %rax
movslq 0x4(%rax), %rsi
callq 0x5750
movq %rax, %rdi
movslq -0xf0(%rbp), %rsi
callq 0x5b90
movq -0x270(%rbp), %rdi
movq %rax, %rsi
callq 0x5b20
jmp 0x2f91
jmp 0x2f93
jmp 0x2f95
movl -0xf0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xf0(%rbp)
jmp 0x2d98
leaq -0xd0(%rbp), %rdi
callq 0x5910
movq %rax, -0x278(%rbp)
jmp 0x2fbe
movq -0x278(%rbp), %rsi
addq $0x4, %rsi
leaq -0xa0(%rbp), %rdi
callq 0x5ab0
jmp 0x2fd7
jmp 0x2fd9
jmp 0x2fdb
jmp 0x2fdd
jmp 0x2fdf
leaq -0xd0(%rbp), %rdi
callq 0x5bd0
jmp 0x2fed
jmp 0x29dc
movl -0x5c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5c(%rbp)
jmp 0x2ffd
leaq -0xa8(%rbp), %rdi
callq 0x5bd0
jmp 0x300b
jmp 0x26fa
leaq -0xa0(%rbp), %rdi
callq 0x5c00
leaq -0x58(%rbp), %rdi
callq 0x5c60
addq $0x280, %rsp            # imm = 0x280
popq %rbp
retq
leaq -0x58(%rbp), %rdi
callq 0x5c60
movq -0x78(%rbp), %rdi
callq 0x23f0