// File: /workspace/github_cpp_makefile_star2_O1/IdelCoder[P]PTransE-ag/Test_TransE_path.cpp
// Function: Test::run()
void run()
    {
		// 读取关系和实体的向量
        FILE* f1 = fopen(("relation2vec.txt"+version).c_str(),"r");
        FILE* f3 = fopen(("entity2vec.txt"+version).c_str(),"r");
        cout<<relation_num<<' '<<entity_num<<endl;
        int relation_num_fb=relation_num;
        relation_vec.resize(relation_num_fb*2);
        for (int i=0; i<relation_num_fb*2;i++)
        {
        //	int tmp;
        //	fscanf(f1,"%d",&tmp);
            relation_vec[i].resize(n);
            for (int ii=0; ii<n; ii++)
                fscanf(f1,"%lf",&relation_vec[i][ii]);
        }
        entity_vec.resize(entity_num);
        for (int i=0; i<entity_num;i++)
        {
        //	int tmp;
        	//fscanf(f3,"%d",&tmp);
            entity_vec[i].resize(n);
            for (int ii=0; ii<n; ii++)
                fscanf(f3,"%lf",&entity_vec[i][ii]);
            if (vec_len(entity_vec[i])-1>1e-3)
            	cout<<"wrong_entity"<<i<<' '<<vec_len(entity_vec[i])<<endl;
        }
        fclose(f1);
        fclose(f3);
		
		
		
		double lsum=0 ,lsum_filter= 0;
		double rsum = 0,rsum_filter=0;
		double mid_sum = 0,mid_sum_filter=0;
		double lp_n=0,lp_n_filter = 0;
		double rp_n=0,rp_n_filter = 0;
		double mid_p_n=0,mid_p_n_filter = 0;
		map<int,double> lsum_r,lsum_filter_r;
		map<int,double> rsum_r,rsum_filter_r;
		map<int,double> mid_sum_r,mid_sum_filter_r;
		map<int,double> lp_n_r,lp_n_filter_r;
		map<int,double> rp_n_r,rp_n_filter_r;
		map<int,double> mid_p_n_r,mid_p_n_filter_r;
		map<int,int> rel_num;

		// 各度结点的头实体预测表现
		// map<度数, tuple<累计排名，累计Hits@N数，总数> >
		map<int, tuple<long, int, int> > hd_raw;
		map<int, tuple<long, int, int> > td_raw;
		map<int, tuple<long, int, int> > hd_filter;
		map<int, tuple<long, int, int> > td_filter;
		
		
		double l_one2one=0,r_one2one=0,one2one_num=0;
        double l_n2one=0,r_n2one=0,n2one_num=0;
        double l_one2n=0,r_one2n=0,one2n_num=0;
        double l_n2n=0,r_n2n=0,n2n_num=0;
		

		int hit_n = 1;
		// e1_e2是top500的实体对（这是测试结果）
		//FILE* f_e1_e2 = fopen("../e1_e2.txt","w");
		map<pair<int,int>,int> e1_e2;
		for (int testid = 0; testid<fb_l.size()/2; testid+=1)
		{
			int h = fb_h[testid*2];
			int l = fb_l[testid*2];
			int rel = fb_r[testid*2];
			rel_num[rel]+=1;
			// 存储候选实体得分
			vector<pair<int,double> > a;
			
            if (rel_type[rel]==0)
                one2one_num+=1;
            else
            if (rel_type[rel]==1)
                n2one_num+=1;
            else
            if (rel_type[rel]==2)
                one2n_num+=1;
            else
                n2n_num+=1;
			

			double ttt=0;
			int filter = 0;
			// 头实体预测  
			used = "0";
			for (int i=0; i<entity_num; i++)
			{
				// 计算损失值（使用TransE的能量函数）(head prediction)
				double sum = calc_sum(i,l,rel);
				a.push_back(make_pair(i,sum));
			}

			int rerank_num = 500;
			// 递减排序
			sort(a.begin(),a.end(),cmp);
			used = "1";
			for (int i=a.size()-1; i>=a.size()-rerank_num; i--)
			{
				// 计算损失值（PTransE的能量函数）(head prediction)
				double sum = calc_sum(a[i].first,l,rel);
				a[i].second = sum;
			}
			
			sort(a.begin(),a.end(),cmp);
			for (int i=a.size()-1; i>=0; i--)
			{
				if (a.size()-i<=rerank_num)
				    //保存top 500的实体，实际没啥用
					e1_e2[make_pair(a[i].first,l)] = 1;
				if (ok[make_pair(a[i].first,rel)].count(l)>0)
				    // 无效的变量
					ttt++;
			    if (ok[make_pair(a[i].first,rel)].count(l)==0)
			    	// filter rank
					filter+=1;
				
				if (a[i].first ==h)
				{
					// 当前答案是正确答案
					lsum+=a.size()-i;
					lsum_filter+=filter+1;
					// 作用未知
					lsum_r[rel]+=a.size()-i;
					lsum_filter_r[rel]+=filter+1;

					// 答案的度
					int ans_degree = entity_degree[h];
					if(hd_raw.count(ans_degree) == 0) {
						auto tup_raw = make_tuple(a.size()-i, 0, 1);
						auto tup_filter = make_tuple(filter+1, 0, 1);
						hd_raw[ans_degree] = tup_raw;
						hd_filter[ans_degree] = tup_filter;
					} else {
						get<0>(hd_raw[ans_degree]) += a.size()-i;
						get<0>(hd_filter[ans_degree]) += filter+1;
						get<2>(hd_raw[ans_degree]) ++;
						get<2>(hd_filter[ans_degree])++;
					}
					if (a.size()-i<=hit_n)
					{
						// 排名小于hit_n
						lp_n+=1;
						lp_n_r[rel]+=1;
						get<1>(hd_raw[ans_degree]) ++;
					}
					if (filter<hit_n)
					{
						get<1>(hd_filter[ans_degree]) ++;
						// 关系类型细分的情况
						// 考虑的是filter过后的
						lp_n_filter+=1;
						lp_n_filter_r[rel]+=1;
						if (rel_type[rel]==0)
                            l_one2one+=1;
                        else
                        if (rel_type[rel]==1)
                            l_n2one+=1;
                        else
                        if (rel_type[rel]==2)
                            l_one2n+=1;
                        else
                            l_n2n+=1;
						
					}
					//if (a.size()-i>20)
					//	break;
				}
			}
			a.clear();
			// tail prediction
			used = "0";
			for (int i=0; i<entity_num; i++)
			{
				double sum = calc_sum(h,i,rel);
				a.push_back(make_pair(i,sum));
			}
			sort(a.begin(),a.end(),cmp);
			used = "1";
			sort(a.begin(),a.end(),cmp);
			for (int i=a.size()-1; i>=a.size()-rerank_num; i--)
			{
				double sum = calc_sum(h,a[i].first,rel);
				a[i].second = sum;
			}

			sort(a.begin(),a.end(),cmp);
			ttt=0;
			filter=0;
			for (int i=a.size()-1; i>=0; i--)
			{
				if (a.size()-i<=rerank_num)
					e1_e2[make_pair(h,a[i].first)] = 1;
				if (ok[make_pair(h,rel)].count(a[i].first)>0)
					ttt++;
				if (ok[make_pair(h,rel)].count(a[i].first)==0)
			    	filter+=1;
				if (a[i].first==l)
				{
					rsum+=a.size()-i;
					rsum_filter+=filter+1;
					rsum_r[rel]+=a.size()-i;
					rsum_filter_r[rel]+=filter+1;
					// 答案的度
					int ans_degree = entity_degree[l];
					if(td_raw.count(ans_degree) == 0) {
						auto tup_raw = make_tuple(a.size()-i, 0, 1);
						auto tup_filter = make_tuple(filter+1, 0, 1);
						td_raw[ans_degree] = tup_raw;
						td_filter[ans_degree] = tup_filter;
					} else {
						get<0>(td_raw[ans_degree]) += a.size()-i;
						get<0>(td_filter[ans_degree]) += filter+1;
						get<2>(td_raw[ans_degree]) ++;
						get<2>(td_filter[ans_degree])++;
					}
					if (a.size()-i<=hit_n)
					{
						rp_n+=1;
						rp_n_r[rel]+=1;
						get<1>(td_raw[ans_degree])++;
					}
					if (filter<hit_n)
					{
						get<1>(td_filter[ans_degree])++;
						rp_n_filter+=1;
						rp_n_filter_r[rel]+=1;
						;
												if (rel_type[rel]==0)
						                            r_one2one+=1;
						                        else
						                        if (rel_type[rel]==1)
						                            r_n2one+=1;
						                        else
						                        if (rel_type[rel]==2)
						                            r_one2n+=1;
						                        else
						                            r_n2n+=1;
						
					}
					//if (a.size()-i>20)
					//	break;
				}
			}
			a.clear();
			// relation prediction
			for (int i=0; i<relation_num; i++)
			{
				double sum = 0;
				sum+=calc_sum(h,l,i);
				a.push_back(make_pair(i,sum));
			}
			sort(a.begin(),a.end(),cmp);
			ttt=0;
			filter=0;
			for (int i=a.size()-1; i>=0; i--)
			{
				if (ok[make_pair(h,a[i].first)].count(l)>0)
					ttt++;
				if (ok[make_pair(h,a[i].first)].count(l)==0)
			    	filter+=1;
				if (a[i].first==rel)
				{
					mid_sum+=a.size()-i;
					mid_sum_filter+=filter+1;
					mid_sum_r[rel]+=a.size()-i;
					mid_sum_filter_r[rel]+=filter+1;
					if (a.size()-i<=hit_n)
					{
						mid_p_n+=1;
						mid_p_n_r[rel]+=1;
					}
					if (filter<hit_n)
					{
						mid_p_n_filter+=1;
						mid_p_n_filter_r[rel]+=1;
					}
					break;
				}
			}
			if (testid%100==0)
			{
				// testid head预测平均排名 head预测hits@n平均值 tail预测平均排名 tail预测hits@n平均值
				// filter版本对应的结果
				cout<<testid<<":"<<"\t"<<lsum/(testid+1)<<' '<<lp_n/(testid+1)<<' '
				<<rsum/(testid+1)<<' '<<rp_n/(testid+1)<<"\t"
				<<lsum_filter/(testid+1)<<' '<<lp_n_filter/(testid+1)<<' '
				<<rsum_filter/(testid+1)<<' '<<rp_n_filter/(testid+1)<<endl;
				// relation预测平均排名 relation预测平均hits （filter）relation预测平均排名 （filter）relation预测平均hits
				cout<<"\t"<<mid_sum/(testid+1)<<' '<<mid_p_n/(testid+1)<<"\t"<<mid_sum_filter/(testid+1)<<' '<<mid_p_n_filter/(testid+1)<<endl;
				// head预测的关系类型数量
               cout<<l_one2one<<" "<<l_one2n<<" "<<l_n2one<<' '<<l_n2n<<endl;
			   // tail预测的关系类型数量
               cout<<r_one2one<<" "<<r_one2n<<" "<<r_n2one<<' '<<r_n2n<<endl;
			   // 各个类型的关系数量
               cout<<one2one_num<<" "<<one2n_num<<" "<<n2one_num<<' '<<n2n_num<<endl;
			   // head prediction和tail prediction的各类细分关系的hits@n
               cout<<l_one2one/one2one_num<<" "<<l_one2n/one2n_num<<" "<<l_n2one/n2one_num<<' '<<l_n2n/n2n_num<<endl;
               cout<<r_one2one/one2one_num<<" "<<r_one2n/one2n_num<<" "<<r_n2one/n2one_num<<' '<<r_n2n/n2n_num<<endl;
				
			}
		}
	//	for (map<pair<int,int>,int>::iterator it = e1_e2.begin(); it!=e1_e2.end(); it++)
	//		fprintf(f_e1_e2,"%d %d\n",it->first.first,it->first.second);
	//	fclose(f_e1_e2);
	//	cout<<"\t"<<mid_sum/(fb_l.size()/2+1)<<' '<<mid_p_n/(fb_l.size()/2+1)<<"\t"<<mid_sum_filter/(fb_l.size()/2+1)<<' '<<mid_p_n_filter/(fb_l.size()/2+1)<<endl;
	//	cout<<"left:"<<lsum/fb_l.size()<<'\t'<<lp_n/fb_l.size()<<"\t"<<lsum_filter/fb_l.size()<<'\t'<<lp_n_filter/fb_l.size()<<endl;
	//	cout<<"right:"<<rsum/fb_r.size()<<'\t'<<rp_n/fb_r.size()<<'\t'<<rsum_filter/fb_r.size()<<'\t'<<rp_n_filter/fb_r.size()<<endl;
		/*for (int rel=0; rel<relation_num; rel++)
		{
			int num = rel_num[rel];
			cout<<"rel:"<<id2relation[rel]<<' '<<num<<endl;
			cout<<"left:"<<lsum_r[rel]/num<<'\t'<<lp_n_r[rel]/num<<"\t"<<lsum_filter_r[rel]/num<<'\t'<<lp_n_filter_r[rel]/num<<endl;
			cout<<"right:"<<rsum_r[rel]/num<<'\t'<<rp_n_r[rel]/num<<'\t'<<rsum_filter_r[rel]/num<<'\t'<<rp_n_filter_r[rel]/num<<endl;
			cout<<"mid:"<<mid_sum_r[rel]/num<<'\t'<<mid_p_n_r[rel]/num<<'\t'<<mid_sum_filter_r[rel]/num<<'\t'<<mid_p_n_filter_r[rel]/num<<endl;
		}*/
		// 保存各度的运行结果
		// 分别是hd_raw, hd_filter, td_raw, td_filter
		FILE* f_hd_raw = fopen("hd_raw.csv","w");
		for(auto iter = hd_raw.begin(); iter != hd_raw.end(); iter++) {
			fprintf(f_hd_raw, "%d,%ld,%ld,%d\n", iter->first,get<0>(iter->second),get<1>(iter->second),get<2>(iter->second));
		}
		fclose(f_hd_raw);
		FILE* f_hd_filter = fopen("hd_filter.csv","w");
		for(auto iter = hd_filter.begin(); iter != hd_filter.end(); iter++) {
			fprintf(f_hd_filter, "%d,%ld,%ld,%d\n", iter->first,get<0>(iter->second),get<1>(iter->second),get<2>(iter->second));
		}
		fclose(f_hd_filter);
		FILE* f_td_raw = fopen("td_raw.csv","w");
		for(auto iter = td_raw.begin(); iter != td_raw.end(); iter++) {
			fprintf(f_td_raw, "%d,%ld,%ld,%d\n", iter->first,get<0>(iter->second),get<1>(iter->second),get<2>(iter->second));
		}
		fclose(f_td_raw);
		FILE* f_td_filter = fopen("td_filter.csv","w");
		for(auto iter = td_filter.begin(); iter != td_filter.end(); iter++) {
			fprintf(f_td_filter, "%d,%ld,%ld,%d\n", iter->first,get<0>(iter->second),get<1>(iter->second),get<2>(iter->second));
		}
		fclose(f_td_filter);
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x4c8, %rsp            # imm = 0x4C8
movq %rdi, 0x68(%rsp)
leaq 0x6913(%rip), %rsi      # 0xb1fc
leaq 0xa970(%rip), %rdx      # 0xf260
leaq 0x198(%rsp), %rbx
movq %rbx, %rdi
callq 0x7a42
movq (%rbx), %rdi
leaq 0x67f1(%rip), %rsi      # 0xb0fb
callq 0x2220
movq %rax, %r14
movq (%rbx), %rdi
leaq 0x1a8(%rsp), %r12
cmpq %r12, %rdi
je 0x4927
callq 0x21b0
movq %r14, 0x70(%rsp)
leaq 0x68da(%rip), %rsi      # 0xb20d
leaq 0xa926(%rip), %rdx      # 0xf260
leaq 0x198(%rsp), %rbx
movq %rbx, %rdi
callq 0x7a42
movq (%rbx), %rdi
leaq 0x67a7(%rip), %rsi      # 0xb0fb
callq 0x2220
movq %rax, 0xa0(%rsp)
movq (%rbx), %rdi
cmpq %r12, %rdi
je 0x496e
callq 0x21b0
movl 0xaaf4(%rip), %esi      # 0xf468
movq 0xa65d(%rip), %rdi      # 0xefd8
callq 0x22f0
leaq 0x198(%rsp), %rsi
movb $0x20, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x2210
movl 0xaace(%rip), %esi      # 0xf46c
movq %rax, %rdi
callq 0x22f0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movslq 0xaa91(%rip), %r14      # 0xf468
leaq (%r14,%r14), %rbx
movq 0x68(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x7ac4
testq %r14, %r14
jle 0x4a7a
cmpl $0x2, %ebx
movl $0x1, %eax
cmovgel %ebx, %eax
movq %rax, 0x60(%rsp)
leaq 0x67a9(%rip), %rbx      # 0xb1b4
xorl %eax, %eax
movq 0x70(%rsp), %r13
movq %rax, 0x48(%rsp)
leaq (%rax,%rax,2), %rbp
leaq (,%rbp,8), %rdi
addq (%r15), %rdi
movslq 0xa79f(%rip), %rsi      # 0xf1cc
callq 0x7b46
cmpl $0x0, 0xa793(%rip)      # 0xf1cc
jle 0x4a6b
xorl %r12d, %r12d
xorl %r14d, %r14d
movq (%r15), %rax
movq (%rax,%rbp,8), %rdx
addq %r12, %rdx
movq %r13, %rdi
movq %rbx, %rsi
xorl %eax, %eax
callq 0x2340
incq %r14
movslq 0xa76a(%rip), %rax      # 0xf1cc
addq $0x8, %r12
cmpq %rax, %r14
jl 0x4a41
movq 0x48(%rsp), %rax
incq %rax
cmpq 0x60(%rsp), %rax
jne 0x4a12
leaq 0x18(%r15), %r12
movslq 0xa9e7(%rip), %rsi      # 0xf46c
movq %r12, %rdi
callq 0x7ac4
cmpl $0x0, 0xa9d8(%rip)      # 0xf46c
movq 0xa0(%rsp), %r15
jle 0x4cbf
leaq 0x670b(%rip), %r13      # 0xb1b4
xorl %r14d, %r14d
movq %r14, 0x48(%rsp)
leaq (%r14,%r14,2), %rbx
leaq (,%rbx,8), %rax
movq (%r12), %rdi
movq %rax, 0x60(%rsp)
addq %rax, %rdi
movslq 0xa6fc(%rip), %rsi      # 0xf1cc
callq 0x7b46
cmpl $0x0, 0xa6f0(%rip)      # 0xf1cc
jle 0x4b0e
xorl %ebp, %ebp
xorl %r14d, %r14d
movq (%r12), %rax
movq (%rax,%rbx,8), %rdx
addq %rbp, %rdx
movq %r15, %rdi
movq %r13, %rsi
xorl %eax, %eax
callq 0x2340
incq %r14
movslq 0xa6c7(%rip), %rax      # 0xf1cc
addq $0x8, %rbp
cmpq %rax, %r14
jl 0x4ae3
movq (%r12), %rsi
movq 0x60(%rsp), %rbp
addq %rbp, %rsi
leaq 0x240(%rsp), %rdi
callq 0x7b78
movq 0x240(%rsp), %rax
movq 0x248(%rsp), %rcx
subq %rax, %rcx
je 0x4b65
sarq $0x3, %rcx
cmpq $0x1, %rcx
adcq $0x0, %rcx
xorpd %xmm0, %xmm0
xorl %edx, %edx
movsd (%rax,%rdx,8), %xmm1
mulsd %xmm1, %xmm1
addsd %xmm1, %xmm0
incq %rdx
cmpq %rdx, %rcx
jne 0x4b4e
jmp 0x4b69
xorpd %xmm0, %xmm0
ucomisd 0x650f(%rip), %xmm0     # 0xb080
jb 0x4b79
sqrtsd %xmm0, %xmm0
jmp 0x4b7e
callq 0x2180
movq 0x48(%rsp), %r14
addsd 0x64e5(%rip), %xmm0     # 0xb070
movq 0x240(%rsp), %rdi
testq %rdi, %rdi
je 0x4ba9
movsd %xmm0, 0x48(%rsp)
callq 0x21b0
movsd 0x48(%rsp), %xmm0
ucomisd 0x64c7(%rip), %xmm0     # 0xb078
jbe 0x4cac
movl $0xc, %edx
movq 0xa415(%rip), %rbx      # 0xefd8
movq %rbx, %rdi
leaq 0x664f(%rip), %rsi      # 0xb21c
callq 0x2210
movq %rbx, %rdi
movl %r14d, %esi
callq 0x22f0
movb $0x20, 0x198(%rsp)
movl $0x1, %edx
movq %rax, %rdi
leaq 0x198(%rsp), %rsi
callq 0x2210
movq %rax, %rbx
addq (%r12), %rbp
leaq 0x1c8(%rsp), %rdi
movq %rbp, %rsi
callq 0x7b78
movq 0x1c8(%rsp), %rax
movq 0x1d0(%rsp), %rcx
subq %rax, %rcx
je 0x4c4f
sarq $0x3, %rcx
cmpq $0x1, %rcx
adcq $0x0, %rcx
xorpd %xmm0, %xmm0
xorl %edx, %edx
movsd (%rax,%rdx,8), %xmm1
mulsd %xmm1, %xmm1
addsd %xmm1, %xmm0
incq %rdx
cmpq %rdx, %rcx
jne 0x4c38
jmp 0x4c53
xorpd %xmm0, %xmm0
ucomisd 0x6425(%rip), %xmm0     # 0xb080
jb 0x4c63
sqrtsd %xmm0, %xmm0
jmp 0x4c68
callq 0x2180
movq %rbx, %rdi
callq 0x22c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq 0x1c8(%rsp), %rdi
testq %rdi, %rdi
je 0x4cac
callq 0x21b0
incq %r14
movslq 0xa7b6(%rip), %rax      # 0xf46c
cmpq %rax, %r14
jl 0x4aac
movq 0x70(%rsp), %rdi
callq 0x21d0
movq %r15, %rdi
callq 0x21d0
leaq 0x1a0(%rsp), %rcx
xorl %eax, %eax
movl %eax, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq 0x4a0(%rsp), %rcx
movl %eax, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq 0x470(%rsp), %rcx
movl %eax, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq 0x440(%rsp), %rcx
movl %eax, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq 0x410(%rsp), %rcx
movl %eax, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq 0x3e0(%rsp), %rcx
movl %eax, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq 0x3b0(%rsp), %rcx
movl %eax, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq 0x380(%rsp), %rcx
movl %eax, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq 0x350(%rsp), %rcx
movl %eax, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq 0x320(%rsp), %rcx
movl %eax, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq 0x2f0(%rsp), %rcx
movl %eax, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq 0x2c0(%rsp), %rcx
movl %eax, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq 0x290(%rsp), %rcx
movl %eax, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq 0x170(%rsp), %rcx
movl %eax, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq 0x140(%rsp), %rcx
movl %eax, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq 0x218(%rsp), %rcx
movl %eax, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq 0x1e8(%rsp), %rcx
movl %eax, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq 0x260(%rsp), %rcx
movl %eax, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
movq 0x68(%rsp), %r14
movq 0x90(%r14), %rax
movq 0x98(%r14), %rcx
subq %rax, %rcx
cmpq $0x5, %rcx
jb 0x66d5
leaq 0xf0(%r14), %rbp
xorl %r15d, %r15d
leaq 0x20(%rsp), %r12
leaq 0x10(%rsp), %r13
xorpd %xmm0, %xmm0
movsd %xmm0, 0x60(%rsp)
movsd %xmm0, 0x70(%rsp)
movsd %xmm0, 0xa0(%rsp)
movsd %xmm0, 0x128(%rsp)
movsd %xmm0, 0x100(%rsp)
movsd %xmm0, 0xf8(%rsp)
movsd %xmm0, 0x120(%rsp)
movsd %xmm0, 0x110(%rsp)
movsd %xmm0, 0x118(%rsp)
movsd %xmm0, 0x108(%rsp)
movsd %xmm0, 0xf0(%rsp)
movsd %xmm0, 0xe8(%rsp)
movsd %xmm0, 0xe0(%rsp)
movsd %xmm0, 0xc0(%rsp)
movsd %xmm0, 0x90(%rsp)
movsd %xmm0, 0xd0(%rsp)
movsd %xmm0, 0xb0(%rsp)
movsd %xmm0, 0x78(%rsp)
movsd %xmm0, 0xa8(%rsp)
movsd %xmm0, 0xc8(%rsp)
movsd %xmm0, 0x88(%rsp)
movsd %xmm0, 0xb8(%rsp)
movsd %xmm0, 0xd8(%rsp)
movsd %xmm0, 0x80(%rsp)
movq %rbp, 0x48(%rsp)
movq 0x78(%r14), %rcx
movl (%rcx,%r15,8), %ecx
movl %ecx, 0x44(%rsp)
movl (%rax,%r15,8), %eax
movl %eax, 0x40(%rsp)
movq 0xa8(%r14), %rax
movl (%rax,%r15,8), %eax
movl %eax, 0xc(%rsp)
leaq 0x288(%rsp), %rdi
leaq 0xc(%rsp), %rsi
callq 0x46da
incl (%rax)
xorpd %xmm0, %xmm0
movapd %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
movslq 0xc(%rsp), %rax
movq 0xa23f(%rip), %rcx      # 0xf248
movl (%rcx,%rax,4), %eax
cmpl $0x2, %eax
je 0x5052
cmpl $0x1, %eax
je 0x5036
testl %eax, %eax
jne 0x506e
movsd 0x90(%rsp), %xmm0
addsd 0x6035(%rip), %xmm0     # 0xb060
movsd %xmm0, 0x90(%rsp)
jmp 0x5082
movsd 0x80(%rsp), %xmm0
addsd 0x6019(%rip), %xmm0     # 0xb060
movsd %xmm0, 0x80(%rsp)
jmp 0x5082
movsd 0x88(%rsp), %xmm0
addsd 0x5ffd(%rip), %xmm0     # 0xb060
movsd %xmm0, 0x88(%rsp)
jmp 0x5082
movsd 0x78(%rsp), %xmm0
addsd 0x5fe4(%rip), %xmm0     # 0xb060
movsd %xmm0, 0x78(%rsp)
movq 0xa177(%rip), %rdx      # 0xf200
movl $0x1, %r8d
leaq 0xa162(%rip), %rdi      # 0xf1f8
xorl %esi, %esi
leaq 0x618a(%rip), %rcx      # 0xb229
callq 0x2280
cmpl $0x0, 0xa3c1(%rip)      # 0xf46c
jle 0x50fe
xorl %ebx, %ebx
movl 0x40(%rsp), %edx
movl 0xc(%rsp), %ecx
movq %r14, %rdi
movl %ebx, %esi
callq 0x7bf8
movl %ebx, 0x10(%rsp)
movsd %xmm0, 0x18(%rsp)
movq 0x28(%rsp), %rsi
cmpq 0x30(%rsp), %rsi
je 0x50e9
movupd 0x10(%rsp), %xmm0
movupd %xmm0, (%rsi)
addq $0x10, 0x28(%rsp)
jmp 0x50f4
movq %r12, %rdi
movq %r13, %rdx
callq 0x8a52
incl %ebx
cmpl 0xa370(%rip), %ebx      # 0xf46c
jl 0x50af
movq 0x20(%rsp), %rbx
movq 0x28(%rsp), %r12
cmpq %r12, %rbx
je 0x5148
movq %r12, %rax
subq %rbx, %rax
sarq $0x4, %rax
bsrq %rax, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
movq %rbx, %rdi
movq %r12, %rsi
leaq -0x26d5(%rip), %rcx     # 0x2a5c
callq 0x8b89
movq %rbx, %rdi
movq %r12, %rsi
leaq -0x26e7(%rip), %rdx     # 0x2a5c
callq 0x8c54
movq 0xa0b1(%rip), %rdx      # 0xf200
movl $0x1, %r8d
leaq 0xa09c(%rip), %rdi      # 0xf1f8
xorl %esi, %esi
leaq 0x5f2b(%rip), %rcx      # 0xb090
callq 0x2280
movq %r15, 0x130(%rsp)
movq 0x20(%rsp), %rbx
movq 0x28(%rsp), %r12
movq %r12, %rax
subq %rbx, %rax
movq %rax, %r13
shrq $0x4, %r13
leal -0x1(%r13), %ecx
movslq %ecx, %r15
sarq $0x4, %rax
leaq -0x1f4(%rax), %rcx
cmpq %r15, %rcx
ja 0x51ec
addl $-0x2, %r13d
shlq $0x4, %r15
movl (%rbx,%r15), %esi
movl 0x40(%rsp), %edx
movl 0xc(%rsp), %ecx
movq 0x68(%rsp), %rdi
callq 0x7bf8
movq 0x20(%rsp), %rbx
movsd %xmm0, 0x8(%rbx,%r15)
movslq %r13d, %r15
movq 0x28(%rsp), %r12
movq %r12, %rax
subq %rbx, %rax
sarq $0x4, %rax
leaq -0x1f4(%rax), %rcx
leal -0x1(%r15), %r13d
cmpq %r15, %rcx
jbe 0x51a4
cmpq %r12, %rbx
movq 0x48(%rsp), %r14
leaq 0x10(%rsp), %r13
je 0x522c
bsrq %rax, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
movq %rbx, %rdi
movq %r12, %rsi
leaq -0x27b9(%rip), %rcx     # 0x2a5c
callq 0x8b89
movq %rbx, %rdi
movq %r12, %rsi
leaq -0x27cb(%rip), %rdx     # 0x2a5c
callq 0x8c54
movq 0x28(%rsp), %rax
subq 0x20(%rsp), %rax
shrq $0x4, %rax
decl %eax
js 0x56a0
movl %eax, %r12d
xorl %ebx, %ebx
movq 0x20(%rsp), %rax
movq 0x28(%rsp), %rcx
subq %rax, %rcx
sarq $0x4, %rcx
subq %r12, %rcx
cmpq $0x1f4, %rcx            # imm = 0x1F4
ja 0x5294
movq %r12, %rcx
shlq $0x4, %rcx
movl (%rax,%rcx), %eax
movl 0x40(%rsp), %ecx
shlq $0x20, %rcx
orq %rax, %rcx
movq %rcx, 0x10(%rsp)
leaq 0x258(%rsp), %rdi
movq %r13, %rsi
callq 0x8448
movl $0x1, (%rax)
movq 0x20(%rsp), %rax
movq %r12, %r15
shlq $0x4, %r15
movl (%rax,%r15), %eax
movl 0xc(%rsp), %ecx
shlq $0x20, %rcx
orq %rax, %rcx
movq %rcx, 0x10(%rsp)
movq %r14, %rdi
movq %r13, %rsi
callq 0x6f4c
movq 0x20(%rsp), %rax
movl (%rax,%r15), %eax
movl 0xc(%rsp), %ecx
shlq $0x20, %rcx
orq %rax, %rcx
movq %rcx, 0x10(%rsp)
movq %r14, %rdi
movq %r13, %rsi
callq 0x6f4c
movq 0x10(%rax), %rdx
addq $0x8, %rax
movq %rax, %rcx
testq %rdx, %rdx
je 0x5311
movl 0x40(%rsp), %esi
movq %rax, %rcx
xorl %edi, %edi
cmpl %esi, 0x20(%rdx)
setl %dil
cmovgeq %rdx, %rcx
movq 0x10(%rdx,%rdi,8), %rdx
testq %rdx, %rdx
jne 0x52fa
movq %rax, %rdx
cmpq %rax, %rcx
je 0x5327
movl 0x40(%rsp), %edx
cmpl 0x20(%rcx), %edx
cmovlq %rax, %rcx
movq %rcx, %rdx
xorl %ecx, %ecx
cmpq %rax, %rdx
sete %cl
addl %ecx, %ebx
movq 0x20(%rsp), %rax
movl (%rax,%r15), %ecx
cmpl 0x44(%rsp), %ecx
jne 0x5418
movq 0x28(%rsp), %rcx
subq %rax, %rcx
sarq $0x4, %rcx
subq %r12, %rcx
movq %rcx, %xmm0
punpckldq 0x5cd0(%rip), %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x5cd8(%rip), %xmm0     # 0xb040
movapd %xmm0, 0x50(%rsp)
leaq 0x198(%rsp), %rdi
leaq 0xc(%rsp), %r14
movq %r14, %rsi
callq 0x8520
movapd 0x50(%rsp), %xmm0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movsd (%rax), %xmm0
movapd %xmm1, 0x50(%rsp)
addsd %xmm1, %xmm0
movsd %xmm0, (%rax)
leaq 0x498(%rsp), %rdi
movq %r14, %rsi
callq 0x8520
leal 0x1(%rbx), %r15d
xorps %xmm1, %xmm1
cvtsi2sd %r15d, %xmm1
movsd (%rax), %xmm0
movsd %xmm1, 0x98(%rsp)
addsd %xmm1, %xmm0
movsd %xmm0, (%rax)
leaq 0xa059(%rip), %rdi      # 0xf438
leaq 0x44(%rsp), %rsi
callq 0x46da
movl (%rax), %eax
movl %eax, 0x10(%rsp)
movq 0x178(%rsp), %rdx
leaq 0x170(%rsp), %rcx
testq %rdx, %rdx
je 0x5422
xorl %esi, %esi
cmpl %eax, 0x20(%rdx)
setl %sil
cmovgeq %rdx, %rcx
movq 0x10(%rdx,%rsi,8), %rdx
jmp 0x53ff
movq 0x48(%rsp), %r14
jmp 0x5593
leaq 0x170(%rsp), %rsi
movq %rsi, %rdx
cmpq %rsi, %rcx
je 0x543c
cmpl 0x20(%rcx), %eax
cmovlq %rsi, %rcx
movq %rcx, %rdx
movq 0x20(%rsp), %r14
movq 0x28(%rsp), %r13
cmpq %rsi, %rdx
je 0x54ae
leaq 0x168(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x8584
subq %r14, %r13
sarq $0x4, %r13
subq %r12, %r13
addq %r13, 0x8(%rax)
leaq 0x210(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x8584
movl %r15d, %ecx
addq %rcx, 0x8(%rax)
leaq 0x168(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x8584
incl (%rax)
leaq 0x210(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x8584
incl (%rax)
jmp 0x54f6
leaq 0x168(%rsp), %rdi
leaq 0x10(%rsp), %rbp
movq %rbp, %rsi
callq 0x8584
subq %r14, %r13
sarq $0x4, %r13
subq %r12, %r13
movq %r13, 0x8(%rax)
movq $0x1, (%rax)
leaq 0x210(%rsp), %rdi
movq %rbp, %rsi
callq 0x8584
movl %r15d, %ecx
movq %rcx, 0x8(%rax)
movq $0x1, (%rax)
movq 0x28(%rsp), %rax
subq 0x20(%rsp), %rax
sarq $0x4, %rax
subq %r12, %rax
cmpq $0x1, %rax
ja 0x555e
movsd 0x120(%rsp), %xmm0
addsd 0x5b42(%rip), %xmm0     # 0xb060
movsd %xmm0, 0x120(%rsp)
leaq 0x3a8(%rsp), %rdi
leaq 0xc(%rsp), %rsi
callq 0x8520
movsd (%rax), %xmm0
addsd 0x5b1b(%rip), %xmm0     # 0xb060
movsd %xmm0, (%rax)
leaq 0x168(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x8584
incl 0x4(%rax)
movq 0x48(%rsp), %r14
leaq 0x10(%rsp), %r13
testl %ebx, %ebx
je 0x55a9
movsd 0x60(%rsp), %xmm0
addsd 0x50(%rsp), %xmm0
movsd %xmm0, 0x60(%rsp)
movsd 0x70(%rsp), %xmm0
addsd 0x98(%rsp), %xmm0
movsd %xmm0, 0x70(%rsp)
leaq -0x1(%r12), %rax
testq %r12, %r12
movq %rax, %r12
jg 0x5247
jmp 0x56a0
leaq 0x210(%rsp), %rdi
movq %r13, %rsi
callq 0x8584
incl 0x4(%rax)
movsd 0x110(%rsp), %xmm0
addsd 0x5a93(%rip), %xmm0     # 0xb060
movsd %xmm0, 0x110(%rsp)
leaq 0x378(%rsp), %rdi
leaq 0xc(%rsp), %rsi
callq 0x8520
movsd (%rax), %xmm0
addsd 0x5a6c(%rip), %xmm0     # 0xb060
movsd %xmm0, (%rax)
movslq 0xc(%rsp), %rax
movq 0x9c44(%rip), %rcx      # 0xf248
movl (%rcx,%rax,4), %eax
cmpl $0x2, %eax
movq 0x48(%rsp), %r14
je 0x565d
cmpl $0x1, %eax
leaq 0x10(%rsp), %r13
je 0x563e
testl %eax, %eax
jne 0x5681
movsd 0xe0(%rsp), %xmm0
addsd 0x5a30(%rip), %xmm0     # 0xb060
movsd %xmm0, 0xe0(%rsp)
jmp 0x556c
movsd 0xd0(%rsp), %xmm0
addsd 0x5a11(%rip), %xmm0     # 0xb060
movsd %xmm0, 0xd0(%rsp)
jmp 0x556c
movsd 0xd8(%rsp), %xmm0
addsd 0x59f2(%rip), %xmm0     # 0xb060
movsd %xmm0, 0xd8(%rsp)
leaq 0x10(%rsp), %r13
jmp 0x556c
movsd 0xc8(%rsp), %xmm0
addsd 0x59ce(%rip), %xmm0     # 0xb060
movsd %xmm0, 0xc8(%rsp)
jmp 0x556c
movq 0x20(%rsp), %rax
cmpq %rax, 0x28(%rsp)
je 0x56b1
movq %rax, 0x28(%rsp)
movq 0x9b48(%rip), %rdx      # 0xf200
movl $0x1, %r8d
leaq 0x9b33(%rip), %rdi      # 0xf1f8
xorl %esi, %esi
leaq 0x5b5b(%rip), %rcx      # 0xb229
callq 0x2280
cmpl $0x0, 0x9d92(%rip)      # 0xf46c
movq 0x68(%rsp), %r14
leaq 0x20(%rsp), %r15
jle 0x5737
xorl %ebx, %ebx
movl 0x44(%rsp), %esi
movl 0xc(%rsp), %ecx
movq %r14, %rdi
movl %ebx, %edx
callq 0x7bf8
movl %ebx, 0x10(%rsp)
movsd %xmm0, 0x18(%rsp)
movq 0x28(%rsp), %rsi
cmpq 0x30(%rsp), %rsi
je 0x5722
movupd 0x10(%rsp), %xmm0
movupd %xmm0, (%rsi)
addq $0x10, 0x28(%rsp)
jmp 0x572d
movq %r15, %rdi
movq %r13, %rdx
callq 0x8a52
incl %ebx
cmpl 0x9d37(%rip), %ebx      # 0xf46c
jl 0x56e8
movq 0x20(%rsp), %rbx
movq 0x28(%rsp), %r12
cmpq %r12, %rbx
je 0x5781
movq %r12, %rax
subq %rbx, %rax
sarq $0x4, %rax
bsrq %rax, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
movq %rbx, %rdi
movq %r12, %rsi
leaq -0x2d0e(%rip), %rcx     # 0x2a5c
callq 0x8b89
movq %rbx, %rdi
movq %r12, %rsi
leaq -0x2d20(%rip), %rdx     # 0x2a5c
callq 0x8c54
movq 0x9a78(%rip), %rdx      # 0xf200
movl $0x1, %r8d
leaq 0x9a63(%rip), %rdi      # 0xf1f8
xorl %esi, %esi
leaq 0x58f2(%rip), %rcx      # 0xb090
callq 0x2280
movq 0x20(%rsp), %rbx
movq 0x28(%rsp), %r12
cmpq %r12, %rbx
je 0x57ed
movq %r12, %rax
subq %rbx, %rax
sarq $0x4, %rax
bsrq %rax, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
movq %rbx, %rdi
movq %r12, %rsi
leaq -0x2d7a(%rip), %rcx     # 0x2a5c
callq 0x8b89
movq %rbx, %rdi
movq %r12, %rsi
leaq -0x2d8c(%rip), %rdx     # 0x2a5c
callq 0x8c54
movq 0x20(%rsp), %rbx
movq 0x28(%rsp), %r12
movq %r12, %rax
subq %rbx, %rax
movq %rax, %r13
shrq $0x4, %r13
leal -0x1(%r13), %ecx
movslq %ecx, %r15
sarq $0x4, %rax
leaq -0x1f4(%rax), %rcx
cmpq %r15, %rcx
ja 0x5867
addl $-0x2, %r13d
movl 0x44(%rsp), %esi
shlq $0x4, %r15
movl (%rbx,%r15), %edx
movl 0xc(%rsp), %ecx
movq 0x68(%rsp), %rdi
callq 0x7bf8
movq 0x20(%rsp), %rbx
movsd %xmm0, 0x8(%rbx,%r15)
movslq %r13d, %r15
movq 0x28(%rsp), %r12
movq %r12, %rax
subq %rbx, %rax
sarq $0x4, %rax
leaq -0x1f4(%rax), %rcx
leal -0x1(%r15), %r13d
cmpq %r15, %rcx
jbe 0x581f
cmpq %r12, %rbx
movq 0x48(%rsp), %r14
leaq 0x10(%rsp), %r13
je 0x58a7
bsrq %rax, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
movq %rbx, %rdi
movq %r12, %rsi
leaq -0x2e34(%rip), %rcx     # 0x2a5c
callq 0x8b89
movq %rbx, %rdi
movq %r12, %rsi
leaq -0x2e46(%rip), %rdx     # 0x2a5c
callq 0x8c54
movq 0x28(%rsp), %rax
subq 0x20(%rsp), %rax
shrq $0x4, %rax
decl %eax
js 0x5cf8
movl %eax, %r12d
xorl %ebx, %ebx
movq 0x20(%rsp), %rax
movq 0x28(%rsp), %rcx
subq %rax, %rcx
sarq $0x4, %rcx
subq %r12, %rcx
cmpq $0x1f4, %rcx            # imm = 0x1F4
ja 0x590f
movq %r12, %rcx
shlq $0x4, %rcx
movl 0x44(%rsp), %edx
movl (%rax,%rcx), %eax
shlq $0x20, %rax
orq %rdx, %rax
movq %rax, 0x10(%rsp)
leaq 0x258(%rsp), %rdi
movq %r13, %rsi
callq 0x8448
movl $0x1, (%rax)
movl 0x44(%rsp), %eax
movl 0xc(%rsp), %ecx
shlq $0x20, %rcx
orq %rax, %rcx
movq %rcx, 0x10(%rsp)
movq %r14, %rdi
movq %r13, %rsi
callq 0x6f4c
movq %r12, %r15
shlq $0x4, %r15
movq 0x20(%rsp), %rsi
addq %r15, %rsi
movq %rax, %rdi
callq 0x84d6
movl 0x44(%rsp), %eax
movl 0xc(%rsp), %ecx
shlq $0x20, %rcx
orq %rax, %rcx
movq %rcx, 0x10(%rsp)
movq 0x48(%rsp), %rdi
movq %r13, %rsi
callq 0x6f4c
movq 0x20(%rsp), %rsi
addq %r15, %rsi
movq %rax, %rdi
callq 0x84d6
cmpq $0x1, %rax
adcl $0x0, %ebx
movq 0x20(%rsp), %rax
movl (%rax,%r15), %ecx
cmpl 0x40(%rsp), %ecx
jne 0x5a64
movq 0x28(%rsp), %rcx
subq %rax, %rcx
sarq $0x4, %rcx
subq %r12, %rcx
movq %rcx, %xmm0
punpckldq 0x5684(%rip), %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x568c(%rip), %xmm0     # 0xb040
movapd %xmm0, 0x50(%rsp)
leaq 0x468(%rsp), %rdi
leaq 0xc(%rsp), %r14
movq %r14, %rsi
callq 0x8520
movapd 0x50(%rsp), %xmm0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movsd (%rax), %xmm0
movapd %xmm1, 0x50(%rsp)
addsd %xmm1, %xmm0
movsd %xmm0, (%rax)
leaq 0x438(%rsp), %rdi
movq %r14, %rsi
callq 0x8520
leal 0x1(%rbx), %r15d
xorps %xmm1, %xmm1
cvtsi2sd %r15d, %xmm1
movsd (%rax), %xmm0
movsd %xmm1, 0x98(%rsp)
addsd %xmm1, %xmm0
movsd %xmm0, (%rax)
leaq 0x9a0d(%rip), %rdi      # 0xf438
leaq 0x40(%rsp), %rsi
callq 0x46da
movl (%rax), %eax
movl %eax, 0x10(%rsp)
movq 0x148(%rsp), %rdx
leaq 0x140(%rsp), %rcx
testq %rdx, %rdx
je 0x5a6e
xorl %esi, %esi
cmpl %eax, 0x20(%rdx)
setl %sil
cmovgeq %rdx, %rcx
movq 0x10(%rdx,%rsi,8), %rdx
jmp 0x5a4b
movq 0x48(%rsp), %r14
jmp 0x5beb
leaq 0x140(%rsp), %rsi
movq %rsi, %rdx
cmpq %rsi, %rcx
je 0x5a88
cmpl 0x20(%rcx), %eax
cmovlq %rsi, %rcx
movq %rcx, %rdx
movq 0x20(%rsp), %r14
movq 0x28(%rsp), %r13
cmpq %rsi, %rdx
je 0x5afa
leaq 0x138(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x8584
subq %r14, %r13
sarq $0x4, %r13
subq %r12, %r13
addq %r13, 0x8(%rax)
leaq 0x1e0(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x8584
movl %r15d, %ecx
addq %rcx, 0x8(%rax)
leaq 0x138(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x8584
incl (%rax)
leaq 0x1e0(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x8584
incl (%rax)
jmp 0x5b42
leaq 0x138(%rsp), %rdi
leaq 0x10(%rsp), %rbp
movq %rbp, %rsi
callq 0x8584
subq %r14, %r13
sarq $0x4, %r13
subq %r12, %r13
movq %r13, 0x8(%rax)
movq $0x1, (%rax)
leaq 0x1e0(%rsp), %rdi
movq %rbp, %rsi
callq 0x8584
movl %r15d, %ecx
movq %rcx, 0x8(%rax)
movq $0x1, (%rax)
movq 0x28(%rsp), %rax
subq 0x20(%rsp), %rax
sarq $0x4, %rax
subq %r12, %rax
cmpq $0x1, %rax
ja 0x5baa
movsd 0x118(%rsp), %xmm0
addsd 0x54f6(%rip), %xmm0     # 0xb060
movsd %xmm0, 0x118(%rsp)
leaq 0x348(%rsp), %rdi
leaq 0xc(%rsp), %rsi
callq 0x8520
movsd (%rax), %xmm0
addsd 0x54cf(%rip), %xmm0     # 0xb060
movsd %xmm0, (%rax)
leaq 0x138(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x8584
incl 0x4(%rax)
movq 0x48(%rsp), %r14
leaq 0x10(%rsp), %r13
testl %ebx, %ebx
je 0x5c01
movsd 0xa0(%rsp), %xmm0
addsd 0x50(%rsp), %xmm0
movsd %xmm0, 0xa0(%rsp)
movsd 0x128(%rsp), %xmm0
addsd 0x98(%rsp), %xmm0
movsd %xmm0, 0x128(%rsp)
leaq -0x1(%r12), %rax
testq %r12, %r12
movq %rax, %r12
jg 0x58c2
jmp 0x5cf8
leaq 0x1e0(%rsp), %rdi
movq %r13, %rsi
callq 0x8584
incl 0x4(%rax)
movsd 0x108(%rsp), %xmm0
addsd 0x543b(%rip), %xmm0     # 0xb060
movsd %xmm0, 0x108(%rsp)
leaq 0x318(%rsp), %rdi
leaq 0xc(%rsp), %rsi
callq 0x8520
movsd (%rax), %xmm0
addsd 0x5414(%rip), %xmm0     # 0xb060
movsd %xmm0, (%rax)
movslq 0xc(%rsp), %rax
movq 0x95ec(%rip), %rcx      # 0xf248
movl (%rcx,%rax,4), %eax
cmpl $0x2, %eax
movq 0x48(%rsp), %r14
je 0x5cb5
cmpl $0x1, %eax
leaq 0x10(%rsp), %r13
je 0x5c96
testl %eax, %eax
jne 0x5cd9
movsd 0xc0(%rsp), %xmm0
addsd 0x53d8(%rip), %xmm0     # 0xb060
movsd %xmm0, 0xc0(%rsp)
jmp 0x5bb8
movsd 0xb0(%rsp), %xmm0
addsd 0x53b9(%rip), %xmm0     # 0xb060
movsd %xmm0, 0xb0(%rsp)
jmp 0x5bb8
movsd 0xb8(%rsp), %xmm0
addsd 0x539a(%rip), %xmm0     # 0xb060
movsd %xmm0, 0xb8(%rsp)
leaq 0x10(%rsp), %r13
jmp 0x5bb8
movsd 0xa8(%rsp), %xmm0
addsd 0x5376(%rip), %xmm0     # 0xb060
movsd %xmm0, 0xa8(%rsp)
jmp 0x5bb8
movq 0x20(%rsp), %rax
cmpq %rax, 0x28(%rsp)
je 0x5d09
movq %rax, 0x28(%rsp)
cmpl $0x0, 0x9758(%rip)      # 0xf468
movq 0x68(%rsp), %r14
leaq 0x20(%rsp), %r15
jle 0x5d75
xorl %ebx, %ebx
movl 0x44(%rsp), %esi
movl 0x40(%rsp), %edx
movq %r14, %rdi
movl %ebx, %ecx
callq 0x7bf8
addsd 0x5348(%rip), %xmm0     # 0xb080
movl %ebx, 0x10(%rsp)
movsd %xmm0, 0x18(%rsp)
movq 0x28(%rsp), %rsi
cmpq 0x30(%rsp), %rsi
je 0x5d60
movupd 0x10(%rsp), %xmm0
movupd %xmm0, (%rsi)
addq $0x10, 0x28(%rsp)
jmp 0x5d6b
movq %r15, %rdi
movq %r13, %rdx
callq 0x8a52
incl %ebx
cmpl 0x96f5(%rip), %ebx      # 0xf468
jl 0x5d1e
movq 0x20(%rsp), %rbx
movq 0x28(%rsp), %r12
cmpq %r12, %rbx
je 0x5dbf
movq %r12, %rax
subq %rbx, %rax
sarq $0x4, %rax
bsrq %rax, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
movq %rbx, %rdi
movq %r12, %rsi
leaq -0x334c(%rip), %rcx     # 0x2a5c
callq 0x8b89
movq %rbx, %rdi
movq %r12, %rsi
leaq -0x335e(%rip), %rdx     # 0x2a5c
callq 0x8c54
movq 0x28(%rsp), %rax
subq 0x20(%rsp), %rax
shrq $0x4, %rax
movl %eax, %r15d
xorl %ebx, %ebx
decq %r15
testl %r15d, %r15d
js 0x5f97
movl %r15d, %r13d
andl $0x7fffffff, %r13d      # imm = 0x7FFFFFFF
movq 0x20(%rsp), %rax
movq %r13, %r12
shlq $0x4, %r12
movl 0x44(%rsp), %ecx
movl (%rax,%r12), %eax
shlq $0x20, %rax
orq %rcx, %rax
movq %rax, 0x10(%rsp)
movq 0x48(%rsp), %r14
movq %r14, %rdi
leaq 0x10(%rsp), %rbp
movq %rbp, %rsi
callq 0x6f4c
movq 0x20(%rsp), %rax
movl 0x44(%rsp), %ecx
movl (%rax,%r12), %eax
shlq $0x20, %rax
orq %rcx, %rax
movq %rax, 0x10(%rsp)
movq %r14, %rdi
movq %rbp, %rsi
callq 0x6f4c
movq 0x10(%rax), %rdx
addq $0x8, %rax
movq %rax, %rcx
testq %rdx, %rdx
je 0x5e6f
movl 0x40(%rsp), %esi
movq %rax, %rcx
xorl %edi, %edi
cmpl %esi, 0x20(%rdx)
setl %dil
cmovgeq %rdx, %rcx
movq 0x10(%rdx,%rdi,8), %rdx
testq %rdx, %rdx
jne 0x5e58
movq %rax, %rdx
cmpq %rax, %rcx
je 0x5e85
movl 0x40(%rsp), %edx
cmpl 0x20(%rcx), %edx
cmovlq %rax, %rcx
movq %rcx, %rdx
xorl %ecx, %ecx
cmpq %rax, %rdx
sete %cl
addl %ecx, %ebx
movq 0x20(%rsp), %rax
movl (%rax,%r12), %ecx
cmpl 0xc(%rsp), %ecx
jne 0x5dd2
movq 0x28(%rsp), %rcx
subq %rax, %rcx
sarq $0x4, %rcx
subq %r13, %rcx
movq %rcx, %xmm0
punpckldq 0x5172(%rip), %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x517a(%rip), %xmm0     # 0xb040
movapd %xmm0, 0x50(%rsp)
leaq 0x408(%rsp), %rdi
leaq 0xc(%rsp), %r14
movq %r14, %rsi
callq 0x8520
movq 0x130(%rsp), %r15
movapd 0x50(%rsp), %xmm0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movsd (%rax), %xmm0
movapd %xmm1, 0x50(%rsp)
addsd %xmm1, %xmm0
movsd %xmm0, (%rax)
leaq 0x3d8(%rsp), %rdi
movq %r14, %rsi
callq 0x8520
leal 0x1(%rbx), %ecx
xorps %xmm1, %xmm1
cvtsi2sd %ecx, %xmm1
movsd (%rax), %xmm0
movsd %xmm1, 0x98(%rsp)
addsd %xmm1, %xmm0
movsd %xmm0, (%rax)
movq 0x28(%rsp), %rax
subq 0x20(%rsp), %rax
sarq $0x4, %rax
subq %r13, %rax
cmpq $0x1, %rax
ja 0x5fa1
leaq 0x2e8(%rsp), %rdi
leaq 0xc(%rsp), %r14
movq %r14, %rsi
callq 0x8520
movsd 0x50f0(%rip), %xmm1     # 0xb060
movsd 0xf0(%rsp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0xf0(%rsp)
movsd (%rax), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax)
movq %r14, %rsi
jmp 0x5fa6
movq 0x130(%rsp), %r15
jmp 0x6019
leaq 0xc(%rsp), %rsi
movsd 0x100(%rsp), %xmm0
addsd 0x50(%rsp), %xmm0
movsd %xmm0, 0x100(%rsp)
movsd 0xf8(%rsp), %xmm0
addsd 0x98(%rsp), %xmm0
movsd %xmm0, 0xf8(%rsp)
testl %ebx, %ebx
leaq 0x10(%rsp), %r13
jne 0x601e
leaq 0x2b8(%rsp), %rdi
callq 0x8520
movsd 0x5069(%rip), %xmm1     # 0xb060
movsd 0xe8(%rsp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0xe8(%rsp)
movsd (%rax), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax)
leaq 0x10(%rsp), %r13
imull $0xc28f5c29, %r15d, %eax # imm = 0xC28F5C29
rorl $0x2, %eax
cmpl $0x28f5c28, %eax        # imm = 0x28F5C28
ja 0x6698
movq 0x8f9e(%rip), %rdi      # 0xefd8
movl %r15d, %esi
callq 0x22f0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x50f5(%rip), %rsi      # 0xb149
callq 0x2210
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x502a(%rip), %rsi      # 0xb092
callq 0x2210
leal 0x1(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movsd 0x60(%rsp), %xmm0
movsd %xmm1, 0x50(%rsp)
divsd %xmm1, %xmm0
movq %rbx, %rdi
callq 0x22c0
movb $0x20, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x2210
movsd 0x120(%rsp), %xmm0
divsd 0x50(%rsp), %xmm0
movq %rax, %rdi
callq 0x22c0
movb $0x20, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x2210
movsd 0xa0(%rsp), %xmm0
divsd 0x50(%rsp), %xmm0
movq %rax, %rdi
callq 0x22c0
movb $0x20, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x2210
movsd 0x118(%rsp), %xmm0
divsd 0x50(%rsp), %xmm0
movq %rax, %rdi
callq 0x22c0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x4f6c(%rip), %rsi      # 0xb092
callq 0x2210
movsd 0x70(%rsp), %xmm0
divsd 0x50(%rsp), %xmm0
movq %rbx, %rdi
callq 0x22c0
movb $0x20, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x2210
movsd 0x110(%rsp), %xmm0
divsd 0x50(%rsp), %xmm0
movq %rax, %rdi
callq 0x22c0
movb $0x20, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x2210
movsd 0x128(%rsp), %xmm0
divsd 0x50(%rsp), %xmm0
movq %rax, %rdi
callq 0x22c0
movb $0x20, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x2210
movsd 0x108(%rsp), %xmm0
divsd 0x50(%rsp), %xmm0
movq %rax, %rdi
callq 0x22c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movl $0x1, %edx
movq 0x8ddf(%rip), %rdi      # 0xefd8
leaq 0x4e92(%rip), %rsi      # 0xb092
callq 0x2210
movsd 0x100(%rsp), %xmm0
divsd 0x50(%rsp), %xmm0
movq 0x8dbd(%rip), %rdi      # 0xefd8
callq 0x22c0
movb $0x20, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x2210
movsd 0xf0(%rsp), %xmm0
divsd 0x50(%rsp), %xmm0
movq %rax, %rdi
callq 0x22c0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x4e34(%rip), %rsi      # 0xb092
callq 0x2210
movsd 0xf8(%rsp), %xmm0
divsd 0x50(%rsp), %xmm0
movq %rbx, %rdi
callq 0x22c0
movb $0x20, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x2210
movsd 0xe8(%rsp), %xmm0
divsd 0x50(%rsp), %xmm0
movq %rax, %rdi
callq 0x22c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq 0x8d01(%rip), %rdi      # 0xefd8
movsd 0xe0(%rsp), %xmm0
callq 0x22c0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x4eb9(%rip), %rsi      # 0xb1b0
callq 0x2210
movq %rbx, %rdi
movsd 0xd8(%rsp), %xmm0
callq 0x22c0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x4e91(%rip), %rsi      # 0xb1b0
callq 0x2210
movq %rbx, %rdi
movsd 0xd0(%rsp), %xmm0
callq 0x22c0
movb $0x20, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x2210
movq %rax, %rdi
movsd 0xc8(%rsp), %xmm0
callq 0x22c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq 0x8c4c(%rip), %rdi      # 0xefd8
movsd 0xc0(%rsp), %xmm0
callq 0x22c0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x4e04(%rip), %rsi      # 0xb1b0
callq 0x2210
movq %rbx, %rdi
movsd 0xb8(%rsp), %xmm0
callq 0x22c0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x4ddc(%rip), %rsi      # 0xb1b0
callq 0x2210
movq %rbx, %rdi
movsd 0xb0(%rsp), %xmm0
callq 0x22c0
movb $0x20, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x2210
movq %rax, %rdi
movsd 0xa8(%rsp), %xmm0
callq 0x22c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq 0x8b97(%rip), %rdi      # 0xefd8
movsd 0x90(%rsp), %xmm0
callq 0x22c0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x4d4f(%rip), %rsi      # 0xb1b0
callq 0x2210
movq %rbx, %rdi
movsd 0x88(%rsp), %xmm0
callq 0x22c0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x4d27(%rip), %rsi      # 0xb1b0
callq 0x2210
movq %rbx, %rdi
movsd 0x80(%rsp), %xmm0
callq 0x22c0
movb $0x20, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x2210
movq %rax, %rdi
movsd 0x78(%rsp), %xmm0
callq 0x22c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movsd 0xe0(%rsp), %xmm0
divsd 0x90(%rsp), %xmm0
movq 0x8ad3(%rip), %rdi      # 0xefd8
callq 0x22c0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x4c94(%rip), %rsi      # 0xb1b0
callq 0x2210
movsd 0xd8(%rsp), %xmm0
divsd 0x88(%rsp), %xmm0
movq %rbx, %rdi
callq 0x22c0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x4c63(%rip), %rsi      # 0xb1b0
callq 0x2210
movsd 0xd0(%rsp), %xmm0
divsd 0x80(%rsp), %xmm0
movq %rbx, %rdi
callq 0x22c0
movb $0x20, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x2210
movsd 0xc8(%rsp), %xmm0
divsd 0x78(%rsp), %xmm0
movq %rax, %rdi
callq 0x22c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movsd 0xc0(%rsp), %xmm0
divsd 0x90(%rsp), %xmm0
movq 0x89fd(%rip), %rdi      # 0xefd8
callq 0x22c0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x4bbe(%rip), %rsi      # 0xb1b0
callq 0x2210
movsd 0xb8(%rsp), %xmm0
divsd 0x88(%rsp), %xmm0
movq %rbx, %rdi
callq 0x22c0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x4b8d(%rip), %rsi      # 0xb1b0
callq 0x2210
movsd 0xb0(%rsp), %xmm0
divsd 0x80(%rsp), %xmm0
movq %rbx, %rdi
callq 0x22c0
movb $0x20, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x2210
movsd 0xa8(%rsp), %xmm0
divsd 0x78(%rsp), %xmm0
movq %rax, %rdi
callq 0x22c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
leaq 0x20(%rsp), %r12
je 0x66ac
callq 0x21b0
incq %r15
movq 0x68(%rsp), %r14
movq 0x90(%r14), %rax
movq 0x98(%r14), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
shrq %rcx
cmpq %r15, %rcx
ja 0x4fb3
leaq 0x4b4f(%rip), %rdi      # 0xb22b
leaq 0x4b53(%rip), %rsi      # 0xb236
callq 0x2220
movq %rax, %rbx
movq 0x180(%rsp), %r14
leaq 0x170(%rsp), %r12
cmpq %r12, %r14
je 0x6734
leaq 0x4b31(%rip), %r15      # 0xb238
movq 0x30(%r14), %rcx
movl 0x2c(%r14), %r8d
movl 0x20(%r14), %edx
movl 0x28(%r14), %r9d
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x2250
movq %r14, %rdi
callq 0x2150
movq %rax, %r14
cmpq %r12, %rax
jne 0x6707
movq %rbx, %rdi
callq 0x21d0
leaq 0x4b04(%rip), %rdi      # 0xb247
leaq 0x4aec(%rip), %rsi      # 0xb236
callq 0x2220
movq %rax, %rbx
movq 0x228(%rsp), %r14
leaq 0x218(%rsp), %r12
cmpq %r12, %r14
leaq 0x140(%rsp), %r13
je 0x67a3
leaq 0x4ac2(%rip), %r15      # 0xb238
movq 0x30(%r14), %rcx
movl 0x2c(%r14), %r8d
movl 0x20(%r14), %edx
movl 0x28(%r14), %r9d
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x2250
movq %r14, %rdi
callq 0x2150
movq %rax, %r14
cmpq %r12, %rax
jne 0x6776
movq %rbx, %rdi
callq 0x21d0
leaq 0x4aa3(%rip), %rdi      # 0xb255
leaq 0x4a7d(%rip), %rsi      # 0xb236
callq 0x2220
movq %rax, %rbx
movq 0x150(%rsp), %r14
cmpq %r13, %r14
leaq 0x1e8(%rsp), %r12
je 0x680a
leaq 0x4a5b(%rip), %r15      # 0xb238
movq 0x30(%r14), %rcx
movl 0x2c(%r14), %r8d
movl 0x20(%r14), %edx
movl 0x28(%r14), %r9d
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x2250
movq %r14, %rdi
callq 0x2150
movq %rax, %r14
cmpq %r13, %rax
jne 0x67dd
movq %rbx, %rdi
callq 0x21d0
leaq 0x4a47(%rip), %rdi      # 0xb260
leaq 0x4a16(%rip), %rsi      # 0xb236
callq 0x2220
movq %rax, %rbx
movq 0x1f8(%rsp), %r14
cmpq %r12, %r14
je 0x6869
leaq 0x49fc(%rip), %r15      # 0xb238
movq 0x30(%r14), %rcx
movl 0x2c(%r14), %r8d
movl 0x20(%r14), %edx
movl 0x28(%r14), %r9d
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x2250
movq %r14, %rdi
callq 0x2150
movq %rax, %r14
cmpq %r12, %rax
jne 0x683c
movq %rbx, %rdi
callq 0x21d0
leaq 0x258(%rsp), %rdi
callq 0x9922
leaq 0x1e0(%rsp), %rdi
callq 0x996c
leaq 0x210(%rsp), %rdi
callq 0x996c
leaq 0x138(%rsp), %rdi
callq 0x996c
leaq 0x168(%rsp), %rdi
callq 0x996c
leaq 0x288(%rsp), %rdi
callq 0x6c98
leaq 0x2b8(%rsp), %rdi
callq 0x99b6
leaq 0x2e8(%rsp), %rdi
callq 0x99b6
leaq 0x318(%rsp), %rdi
callq 0x99b6
leaq 0x348(%rsp), %rdi
callq 0x99b6
leaq 0x378(%rsp), %rdi
callq 0x99b6
leaq 0x3a8(%rsp), %rdi
callq 0x99b6
leaq 0x3d8(%rsp), %rdi
callq 0x99b6
leaq 0x408(%rsp), %rdi
callq 0x99b6
leaq 0x438(%rsp), %rdi
callq 0x99b6
leaq 0x468(%rsp), %rdi
callq 0x99b6
leaq 0x498(%rsp), %rdi
callq 0x99b6
leaq 0x198(%rsp), %rdi
callq 0x99b6
addq $0x4c8, %rsp            # imm = 0x4C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0x69d2
jmp 0x69c0
jmp 0x69c0
movq %rax, %rbx
movq 0x1c8(%rsp), %rdi
testq %rdi, %rdi
je 0x6abc
callq 0x21b0
jmp 0x6abc
jmp 0x69c0
jmp 0x69c0
jmp 0x69c0
jmp 0x69c0
jmp 0x69c0
jmp 0x69c0
jmp 0x69c0
jmp 0x69c0
jmp 0x69c0
jmp 0x69c0
jmp 0x69c0
jmp 0x69c0
jmp 0x69c0
jmp 0x69c0
jmp 0x69c0
jmp 0x69c0
jmp 0x69c0
jmp 0x69c0
jmp 0x69c0
jmp 0x69c0
jmp 0x69c0
jmp 0x69c0
movq %rax, %rbx
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x69d2
callq 0x21b0
leaq 0x258(%rsp), %rdi
callq 0x9922
leaq 0x1e0(%rsp), %rdi
callq 0x996c
leaq 0x210(%rsp), %rdi
callq 0x996c
leaq 0x138(%rsp), %rdi
callq 0x996c
leaq 0x168(%rsp), %rdi
callq 0x996c
leaq 0x288(%rsp), %rdi
callq 0x6c98
leaq 0x2b8(%rsp), %rdi
callq 0x99b6
leaq 0x2e8(%rsp), %rdi
callq 0x99b6
leaq 0x318(%rsp), %rdi
callq 0x99b6
leaq 0x348(%rsp), %rdi
callq 0x99b6
leaq 0x378(%rsp), %rdi
callq 0x99b6
leaq 0x3a8(%rsp), %rdi
callq 0x99b6
leaq 0x3d8(%rsp), %rdi
callq 0x99b6
leaq 0x408(%rsp), %rdi
callq 0x99b6
leaq 0x438(%rsp), %rdi
callq 0x99b6
leaq 0x468(%rsp), %rdi
callq 0x99b6
leaq 0x498(%rsp), %rdi
callq 0x99b6
leaq 0x198(%rsp), %rdi
callq 0x99b6
movq %rbx, %rdi
callq 0x2300