// File: /workspace/github_cpp_makefile_star2_O1/IdelCoder[P]PTransE-ag/Train_PTransE-pos.cpp
// Function: Train::bfgs()
void bfgs()
    {
        // margin是损失函数L(h,r,t)使用的，margin_rel是损失函数L(p,r)使用的
        double margin = 1,margin_rel = 1;
        cout<<"margin="<<' '<<margin<<"margin_rel="<<margin_rel<<endl;
        cout <<"positive_margin="<< " " << positive_margin <<endl;
        res=0;
        // mini-batch中每一批的样本量
        int nbatches=100;
        // 可能等同于nepoch，迭代的轮数
        int neval = 500;
        int batchsize = fb_h.size()/nbatches;
 		relation_tmp=relation_vec;
		entity_tmp = entity_vec;
		map<string, int> fb_count;
        for (int eval=0; eval<neval; eval++)
        {
            // 每轮迭代
        	res=0;
            positive_margin_count = 0;
         	for (int batch = 0; batch<nbatches; batch++)
         	{
                // 每一批次，都随机选择一个头结点（似乎没有使用）
				int e1 = rand_max(entity_num);
         		for (int k=0; k<batchsize; k++)
         		{
                    // 每个样本
					int j=rand_max(entity_num);
					int i=rand_max(fb_h.size());
                    // fb_h，fb_r，fb_l的索引都是三元组的索引，相同索引，就是同一个三元组
					int e1 = fb_h[i], rel = fb_r[i], e2  = fb_l[i];


					int rand_tmp = rand()%100;
					if (rand_tmp<25)
					{
                        // ok的类型是map<pair<int,int>, map<int,int> >
						while (ok[make_pair(e1,rel)].count(j)>0)
                            j=rand_max(entity_num);
                        train_kb(e1,e2,rel,e1,j,rel,margin);
                        // 替换尾实体
                        int candidate_size = givenHeadRel[to_string(e1) + "_" + to_string(rel)].size();
                        if(candidate_size > 1) {
                            j = givenHeadRel[to_string(e1) + "_" + to_string(rel)][rand() % candidate_size];
                            while (j == e2) {
                                j = givenHeadRel[to_string(e1) + "_" + to_string(rel)][rand() % candidate_size];
                            }

                            train_pos(e1, e2, rel, e1, j, rel, margin);
                        }


                        // 固定头结点和关系，随机出训练集中不存在的三元组来训练


					}
					else
					if (rand_tmp<50)
					{
						while (ok[make_pair(j,rel)].count(e2)>0)
                            j=rand_max(entity_num);
                        train_kb(e1,e2,rel,j,e2,rel,margin);
                        // 替换头实体
                        int candidate_size = givenTailRel[to_string(e2) + "_" + to_string(rel)].size();
                        if(candidate_size > 1) {
                            j = givenTailRel[to_string(e2) + "_" + to_string(rel)][rand() % candidate_size];
                            while (j == e1) {
                                j = givenTailRel[to_string(e2) + "_" + to_string(rel)][rand() % candidate_size];
                            }


                            train_pos(e1,e2,rel,j,e2,rel,margin);
                        }



					}
					else
					{
                        // rand_tmp [50, 100)
						int rel_neg = rand_max(relation_num);
						while (ok[make_pair(e1,rel_neg)].count(e2)>0)
                            rel_neg = rand_max(relation_num);
                        train_kb(e1,e2,rel,e1,e2,rel_neg,margin);

					}
                    // fb_path的类型vector<vector<pair<vector<int>,double> > >
					if (fb_path[i].size()>0)
					{
                        // 这个三元组存在其他路径
                        // relation_num包括了逆关系
						int rel_neg = rand_max(relation_num);
						while (ok[make_pair(e1,rel_neg)].count(e2)>0)
							rel_neg = rand_max(relation_num);
                        // 随机出一个不存在的三元组
						for (int path_id = 0; path_id<fb_path[i].size(); path_id++)
						{
                            // 遍历第i个三元组对应的每一条路径
                            // fb_path类型vector<vector<pair<vector<int>,double> > >
                            // rel_path 就是某条路径所组成的关系的数组
							vector<int> rel_path = fb_path[i][path_id].first;
							string  s = "";
                            // path2s的类型是map<vector<int>,string>
							if (path2s.count(rel_path)==0)
							{
							    ostringstream oss;//创建一个流
                                // 将这些数组组合成一个路径的字符串
								for (int ii=0; ii<rel_path.size(); ii++)
								{
									oss<<rel_path[ii]<<" ";
								}
							    s=oss.str();//
                                // path2s的key是路径的关系数组，value是关系数组转成的字符串
								path2s[rel_path] = s;
							}
                            // s是路径的字符串
							s = path2s[rel_path];
                            // pr是每条路径的概率
							double pr = fb_path[i][path_id].second;
                            // pr_path是路径的置信度
							double pr_path = 0;
							if (path_confidence.count(make_pair(s,rel))>0)
								pr_path = path_confidence[make_pair(s,rel)];
							pr_path = 0.99*pr_path + 0.01;
                            // rel是三元组实际存在的关系，rel_neg是这个三元组两个实体间不存在的关系
                            // rel_path是这个关系对应的一个路径
							train_path(rel,rel_neg,rel_path,2*margin,pr*pr_path);
						}
					}
                    // e1,e2,rel组成了这个三元组，j则是用来替换头或者尾的实体，构成一个corrupted triplets
					norm(relation_tmp[rel]);
            		norm(entity_tmp[e1]);
            		norm(entity_tmp[e2]);
            		norm(entity_tmp[j]);
                    // 这句话也没有效果
					e1 = e2;
         		}
                // 每一批迭代过后，更新relation_vec和entity_vec
	            relation_vec = relation_tmp;
	            entity_vec = entity_tmp;
         	}
            // 每一轮迭代过后，记录实体和关系的向量
            cout<<"eval:"<<eval<<' '<<res<<' '<<positive_margin_count<<endl;
            FILE* f2 = fopen(("relation2vec.txt"+version).c_str(),"w");
            FILE* f3 = fopen(("entity2vec.txt"+version).c_str(),"w");
            // 每一行对应一个关系的向量
            for (int i=0; i<relation_num; i++)
            {
                for (int ii=0; ii<n; ii++)
                    fprintf(f2,"%.6lf\t",relation_vec[i][ii]);
                fprintf(f2,"\n");
            }
            for (int i=0; i<entity_num; i++)
            {
                for (int ii=0; ii<n; ii++)
                    fprintf(f3,"%.6lf\t",entity_vec[i][ii]);
                fprintf(f3,"\n");
            }
            fclose(f2);
            fclose(f3);
        }//所有epoch结束
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2a8, %rsp            # imm = 0x2A8
movq %rdi, %rbx
movq 0x9039(%rip), %r15      # 0xefd8
leaq 0x5208(%rip), %rsi      # 0xb1ae
movl $0x7, %edx
movq %r15, %rdi
callq 0x2210
leaq 0xc0(%rsp), %rsi
movb $0x20, (%rsi)
movl $0x1, %edx
movq %r15, %rdi
callq 0x2210
movsd 0x5045(%rip), %xmm0     # 0xb018
movq %rax, %rdi
callq 0x22e0
movq %rax, %r14
leaq 0x51b4(%rip), %rsi      # 0xb199
movl $0xb, %edx
movq %rax, %rdi
callq 0x2210
movq %r14, %rdi
movsd 0x501b(%rip), %xmm0     # 0xb018
callq 0x22e0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2120
leaq 0x5172(%rip), %rsi      # 0xb1a5
movl $0x10, %edx
movq %r15, %rdi
callq 0x2210
leaq 0x50e6(%rip), %rsi      # 0xb12d
movl $0x1, %edx
movq %r15, %rdi
callq 0x2210
movsd 0x92cc(%rip), %xmm0     # 0xf328
movq %r15, %rdi
callq 0x22e0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %r14, %rdi
movq %rbx, %r14
callq 0x2030
movq %rax, %rdi
callq 0x2120
xorl %ebx, %ebx
movq %rbx, 0x38(%r14)
movq 0x70(%r14), %rax
subq 0x68(%r14), %rax
sarq $0x2, %rax
shrq $0x2, %rax
movabsq $0x28f5c28f5c28f5c3, %rcx # imm = 0x28F5C28F5C28F5C3
mulq %rcx
shrq $0x2, %rdx
movq %rdx, 0xb0(%rsp)
leaq 0xe0(%r14), %rsi
leaq 0x110(%r14), %rdi
movq %rdi, 0x248(%rsp)
movq %rsi, 0x250(%rsp)
callq 0x804c
leaq 0xf8(%r14), %rsi
leaq 0x128(%r14), %rdi
movq %rdi, 0x238(%rsp)
movq %rsi, 0x240(%rsp)
callq 0x804c
leaq 0x280(%rsp), %rax
movl $0x0, (%rax)
movq %rbx, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
movq %rbx, 0x20(%rax)
leaq 0x88(%rsp), %r15
movq %r14, 0x50(%rsp)
movq %rbx, 0xa8(%rsp)
movq $0x0, 0x38(%r14)
movl $0x0, 0x40(%r14)
xorl %ebx, %ebx
movl %ebx, 0xa0(%rsp)
movl 0x525bc(%rip), %esi     # 0x58714
movq %r14, %rdi
callq 0x81ae
cmpl $0x0, 0xb0(%rsp)
jle 0x7901
xorl %eax, %eax
movl %eax, 0xa4(%rsp)
movl 0x52597(%rip), %esi     # 0x58714
movq %r14, %rdi
callq 0x81ae
movl %eax, %ebp
movq 0x70(%r14), %rsi
subq 0x68(%r14), %rsi
shrq $0x2, %rsi
movq %r14, %rdi
callq 0x81ae
movslq %eax, %rdx
movq 0x68(%r14), %rax
movq 0x80(%r14), %rcx
movl (%rax,%rdx,4), %ebx
movq 0x98(%r14), %rax
movl (%rax,%rdx,4), %r12d
movq %rdx, 0x258(%rsp)
movl (%rcx,%rdx,4), %r13d
callq 0x2070
cltq
imulq $0x51eb851f, %rax, %rcx # imm = 0x51EB851F
movq %rcx, %rdx
shrq $0x3f, %rdx
sarq $0x25, %rcx
addl %edx, %ecx
imull $0x64, %ecx, %ecx
subl %ecx, %eax
cmpl $0x18, %eax
movq %rbx, 0x48(%rsp)
movq %r12, 0x58(%rsp)
jg 0x626e
movq %rbx, %rax
movq %r12, %rbx
shlq $0x20, %rbx
orq %rax, %rbx
movq %rbx, 0xc0(%rsp)
movq %r14, %rdi
leaq 0xc0(%rsp), %rsi
callq 0x569a
movq 0x10(%rax), %rdx
addq $0x8, %rax
movq %rax, %rcx
testq %rdx, %rdx
je 0x6241
movq %rax, %rcx
xorl %esi, %esi
cmpl %ebp, 0x20(%rdx)
setl %sil
cmovgeq %rdx, %rcx
movq 0x10(%rdx,%rsi,8), %rdx
testq %rdx, %rdx
jne 0x622a
movq %rax, %rdx
cmpq %rax, %rcx
je 0x6253
cmpl 0x20(%rcx), %ebp
cmovlq %rax, %rcx
movq %rcx, %rdx
cmpq %rax, %rdx
je 0x6391
movl 0x524b2(%rip), %esi     # 0x58714
movq %r14, %rdi
callq 0x81ae
movl %eax, %ebp
jmp 0x61ff
cmpl $0x31, %eax
jg 0x62f2
movq 0x58(%rsp), %rbx
shlq $0x20, %rbx
movl %ebp, %eax
orq %rbx, %rax
movq %rax, 0xc0(%rsp)
movq %r14, %rdi
leaq 0xc0(%rsp), %rsi
callq 0x569a
movq 0x10(%rax), %rdx
addq $0x8, %rax
movq %rax, %rcx
testq %rdx, %rdx
je 0x62c4
movq %rax, %rcx
xorl %esi, %esi
cmpl %r13d, 0x20(%rdx)
setl %sil
cmovgeq %rdx, %rcx
movq 0x10(%rdx,%rsi,8), %rdx
testq %rdx, %rdx
jne 0x62ac
movq %rax, %rdx
cmpq %rax, %rcx
je 0x62d7
cmpl 0x20(%rcx), %r13d
cmovlq %rax, %rcx
movq %rcx, %rdx
cmpq %rax, %rdx
je 0x6421
movl 0x5242e(%rip), %esi     # 0x58714
movq %r14, %rdi
callq 0x81ae
movl %eax, %ebp
jmp 0x627c
movl 0x52418(%rip), %esi     # 0x58710
movq %r14, %rdi
callq 0x81ae
movl %eax, %r12d
movq %r12, %rax
shlq $0x20, %rax
orq %rbx, %rax
movq %rax, 0xc0(%rsp)
movq %r14, %rdi
leaq 0xc0(%rsp), %rsi
callq 0x569a
movq 0x10(%rax), %rdx
addq $0x8, %rax
movq %rax, %rcx
testq %rdx, %rdx
je 0x6350
movq %rax, %rcx
xorl %esi, %esi
cmpl %r13d, 0x20(%rdx)
setl %sil
cmovgeq %rdx, %rcx
movq 0x10(%rdx,%rsi,8), %rdx
testq %rdx, %rdx
jne 0x6338
movq %rax, %rdx
cmpq %rax, %rcx
je 0x6363
cmpl 0x20(%rcx), %r13d
cmovlq %rax, %rcx
movq %rcx, %rdx
cmpq %rax, %rdx
jne 0x62f2
movl %r12d, (%rsp)
movq %r14, %rdi
movl %ebx, %esi
movl %r13d, %edx
movq 0x58(%rsp), %rcx
movl %ebx, %r8d
movl %r13d, %r9d
movsd 0x4c91(%rip), %xmm0     # 0xb018
callq 0x81f2
jmp 0x747e
movq 0x58(%rsp), %rcx
movl %ecx, (%rsp)
movq %r14, %rdi
movq 0x48(%rsp), %rbx
movl %ebx, %esi
movl %r13d, %edx
movl %ebx, %r8d
movl %ebp, %r9d
movsd 0x4c64(%rip), %xmm0     # 0xb018
callq 0x81f2
movl %ebx, %eax
negl %eax
cmovsl %ebx, %eax
movl $0x1, %r12d
movl %eax, 0x60(%rsp)
cmpl $0xa, %eax
jb 0x64ba
movl $0x4, %r12d
movl 0x60(%rsp), %eax
cmpl $0x63, %eax
jbe 0x64b1
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x64b7
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x64ba
movl %eax, %ecx
movl $0xd1b71759, %edx       # imm = 0xD1B71759
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r12d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x63dd
addl $-0x3, %r12d
jmp 0x64ba
movq 0x58(%rsp), %rcx
movl %ecx, (%rsp)
movq %r14, %rdi
movq 0x48(%rsp), %rsi
movl %r13d, %edx
movl %ebp, %r8d
movl %r13d, %r9d
movsd 0x4bd6(%rip), %xmm0     # 0xb018
callq 0x81f2
movl %r13d, %eax
negl %eax
cmovsl %r13d, %eax
movl $0x1, %r14d
movl %eax, 0x60(%rsp)
cmpl $0xa, %eax
jb 0x6793
movl $0x4, %r14d
movl 0x60(%rsp), %eax
cmpl $0x63, %eax
jbe 0x6781
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x6790
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x6793
movl %eax, %ecx
movl $0xd1b71759, %edx       # imm = 0xD1B71759
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r14d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x646d
addl $-0x3, %r14d
jmp 0x6793
addl $-0x2, %r12d
jmp 0x64ba
decl %r12d
movl %ebx, %r14d
shrl $0x1f, %r14d
leal (%r12,%r14), %esi
movq %r15, 0x78(%rsp)
leaq 0x78(%rsp), %rbx
movq %rbx, %rdi
movl $0x2d, %edx
callq 0x2220
movq 0x78(%rsp), %rdi
addq %r14, %rdi
movl %r12d, %esi
movl 0x60(%rsp), %edx
callq 0x54d4
movq %rbx, %rdi
leaq 0x4beb(%rip), %rsi      # 0xb0e5
callq 0x2360
leaq 0x18(%rsp), %rsi
movq %rsi, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movq %r14, 0x70(%rsp)
je 0x652c
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x6532
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x58(%rsp), %r12
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl %r12d, %ebx
negl %ebx
cmovsl %r12d, %ebx
movl $0x1, %r14d
cmpl $0xa, %ebx
jb 0x65a9
movl $0x4, %r14d
movl %ebx, %eax
cmpl $0x63, %eax
jbe 0x65a0
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x65a6
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x65a9
movl %eax, %ecx
movl $0xd1b71759, %edx       # imm = 0xD1B71759
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r14d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x656b
addl $-0x3, %r14d
jmp 0x65a9
addl $-0x2, %r14d
jmp 0x65a9
decl %r14d
shrl $0x1f, %r12d
leal (%r14,%r12), %esi
leaq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
leaq 0x28(%rsp), %rdi
movl $0x2d, %edx
callq 0x2220
movq 0x28(%rsp), %rdi
addq %r12, %rdi
movl %r14d, %esi
movl %ebx, %edx
callq 0x54d4
movq 0x8(%rsp), %rcx
movl $0xf, %esi
leaq 0x18(%rsp), %rax
cmpq %rax, %rcx
je 0x65f5
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %r8
movq 0x30(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
movq 0x50(%rsp), %r14
jbe 0x6628
movl $0xf, %esi
leaq 0x38(%rsp), %rdi
cmpq %rdi, 0x28(%rsp)
je 0x6623
movq 0x38(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x6639
movq 0x28(%rsp), %rsi
leaq 0x8(%rsp), %rdi
callq 0x2090
jmp 0x6647
leaq 0x28(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2200
leaq 0xd0(%rsp), %rsi
movq %rsi, 0xc0(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x6678
movq %rdx, 0xc0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xd0(%rsp)
jmp 0x667e
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0xc8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x8bb3(%rip), %rdi      # 0xf258
leaq 0xc0(%rsp), %rsi
callq 0x82b4
movl %ebx, 0x68(%rsp)
movq 0x8(%rax), %rbx
subq (%rax), %rbx
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x66d7
callq 0x21a0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x66eb
callq 0x21a0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x66ff
callq 0x21a0
movq 0x78(%rsp), %rdi
cmpq %r15, %rdi
je 0x670e
callq 0x21a0
shrq $0x2, %rbx
movq %rbx, 0x98(%rsp)
cmpl $0x2, %ebx
jl 0x747e
movl $0x1, %r14d
movl 0x60(%rsp), %r15d
cmpl $0xa, %r15d
jb 0x6a5e
movl $0x4, %r14d
movl %r15d, %eax
cmpl $0x63, %eax
jbe 0x6787
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x6a5b
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x6a5e
movl %eax, %ecx
movl $0xd1b71759, %edx       # imm = 0xD1B71759
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r14d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x6741
addl $-0x3, %r14d
jmp 0x6a5e
addl $-0x2, %r14d
jmp 0x6793
addl $-0x2, %r14d
jmp 0x6a5e
decl %r14d
movl %r13d, %r12d
shrl $0x1f, %r12d
leal (%r14,%r12), %esi
movq %r15, 0x78(%rsp)
leaq 0x78(%rsp), %rbx
movq %rbx, %rdi
movl $0x2d, %edx
callq 0x2220
movq 0x78(%rsp), %rdi
addq %r12, %rdi
movl %r14d, %esi
movl 0x60(%rsp), %edx
callq 0x54d4
movq %rbx, %rdi
leaq 0x4912(%rip), %rsi      # 0xb0e5
callq 0x2360
movq %r12, 0x70(%rsp)
leaq 0x18(%rsp), %rsi
movq %rsi, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x6805
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x680b
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x58(%rsp), %r12
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl %r12d, %ebx
negl %ebx
cmovsl %r12d, %ebx
movl $0x1, %r14d
cmpl $0xa, %ebx
jb 0x6882
movl $0x4, %r14d
movl %ebx, %eax
cmpl $0x63, %eax
jbe 0x6879
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x687f
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x6882
movl %eax, %ecx
movl $0xd1b71759, %edx       # imm = 0xD1B71759
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r14d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x6844
addl $-0x3, %r14d
jmp 0x6882
addl $-0x2, %r14d
jmp 0x6882
decl %r14d
shrl $0x1f, %r12d
leal (%r14,%r12), %esi
leaq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
leaq 0x28(%rsp), %rdi
movl $0x2d, %edx
callq 0x2220
movq 0x28(%rsp), %rdi
addq %r12, %rdi
movl %r14d, %esi
movl %ebx, %edx
callq 0x54d4
movq 0x8(%rsp), %rcx
movl $0xf, %esi
leaq 0x18(%rsp), %rax
cmpq %rax, %rcx
je 0x68ce
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %r8
movq 0x30(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
movq 0x50(%rsp), %r14
jbe 0x6901
movl $0xf, %esi
leaq 0x38(%rsp), %rdi
cmpq %rdi, 0x28(%rsp)
je 0x68fc
movq 0x38(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x6912
movq 0x28(%rsp), %rsi
leaq 0x8(%rsp), %rdi
callq 0x2090
jmp 0x6920
leaq 0x28(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2200
leaq 0xd0(%rsp), %rsi
movq %rsi, 0xc0(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x6951
movq %rdx, 0xc0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xd0(%rsp)
jmp 0x6957
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0xc8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x890a(%rip), %rdi      # 0xf288
leaq 0xc0(%rsp), %rsi
callq 0x82b4
movl %ebx, 0x68(%rsp)
movq 0x8(%rax), %rbx
subq (%rax), %rbx
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x69b0
callq 0x21a0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x69c4
callq 0x21a0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x69d8
callq 0x21a0
movq 0x78(%rsp), %rdi
cmpq %r15, %rdi
je 0x69e7
callq 0x21a0
shrq $0x2, %rbx
movq %rbx, 0x98(%rsp)
cmpl $0x2, %ebx
jl 0x747e
movl $0x1, %r14d
movl 0x60(%rsp), %esi
cmpl $0xa, %esi
jb 0x6fb0
movl $0x4, %r14d
movl %esi, %eax
cmpl $0x63, %eax
jbe 0x6fa7
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x6fad
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x6fb0
movl %eax, %ecx
movl $0xd1b71759, %edx       # imm = 0xD1B71759
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r14d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x6a17
addl $-0x3, %r14d
jmp 0x6fb0
decl %r14d
movq 0x70(%rsp), %rbp
leal (%r14,%rbp), %esi
leaq 0x88(%rsp), %rax
movq %rax, 0x78(%rsp)
leaq 0x78(%rsp), %rbx
movq %rbx, %rdi
movl $0x2d, %edx
callq 0x2220
movq 0x78(%rsp), %rdi
addq %rbp, %rdi
movl %r14d, %esi
movl %r15d, %edx
callq 0x54d4
movq %rbx, %rdi
leaq 0x4642(%rip), %rsi      # 0xb0e5
callq 0x2360
leaq 0x18(%rsp), %rsi
movq %rsi, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq 0x88(%rsp), %r15
je 0x6ad8
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x6ade
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movl 0x68(%rsp), %ebx
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %r14d
cmpl $0xa, %ebx
jb 0x6b4b
movl $0x4, %r14d
movl %ebx, %eax
cmpl $0x63, %eax
jbe 0x6b42
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x6b48
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x6b4b
movl %eax, %ecx
movl $0xd1b71759, %edx       # imm = 0xD1B71759
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r14d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x6b0d
addl $-0x3, %r14d
jmp 0x6b4b
addl $-0x2, %r14d
jmp 0x6b4b
decl %r14d
leal (%r14,%r12), %esi
leaq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
leaq 0x28(%rsp), %rdi
movl $0x2d, %edx
callq 0x2220
movq 0x28(%rsp), %rdi
addq %r12, %rdi
movl %r14d, %esi
movl %ebx, %edx
callq 0x54d4
movq 0x8(%rsp), %rcx
movl $0xf, %esi
leaq 0x18(%rsp), %rax
cmpq %rax, %rcx
je 0x6b93
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %r8
movq 0x30(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
leaq 0xd0(%rsp), %rbx
jbe 0x6bc9
movl $0xf, %esi
leaq 0x38(%rsp), %rdi
cmpq %rdi, 0x28(%rsp)
je 0x6bc4
movq 0x38(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x6bda
movq 0x28(%rsp), %rsi
leaq 0x8(%rsp), %rdi
callq 0x2090
jmp 0x6be8
leaq 0x28(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2200
movq %rbx, 0xc0(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x6c11
movq %rdx, 0xc0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xd0(%rsp)
jmp 0x6c17
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x48(%rsp), %rbx
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0xc8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x8615(%rip), %rdi      # 0xf258
leaq 0xc0(%rsp), %rsi
callq 0x82b4
movq %rax, %r14
callq 0x2070
cltd
idivl 0x98(%rsp)
movslq %edx, %rax
movq (%r14), %rcx
movl (%rcx,%rax,4), %ebp
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x6c83
callq 0x21a0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
movq 0x50(%rsp), %r14
je 0x6c9c
callq 0x21a0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x6cb0
callq 0x21a0
movq 0x78(%rsp), %rdi
cmpq %r15, %rdi
je 0x6cbf
callq 0x21a0
cmpl %r13d, %ebp
jne 0x6f8c
movq %r12, 0xb8(%rsp)
movq %r15, %r12
movl $0x1, %r14d
movl 0x60(%rsp), %ebp
cmpl $0xa, %ebp
jb 0x6d28
movl $0x4, %r14d
movl %ebp, %eax
cmpl $0x63, %eax
jbe 0x6d1f
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x6d25
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x6d28
movl %eax, %ecx
movl $0xd1b71759, %edx       # imm = 0xD1B71759
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r14d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x6cea
addl $-0x3, %r14d
jmp 0x6d28
addl $-0x2, %r14d
jmp 0x6d28
decl %r14d
movq 0x70(%rsp), %r15
leal (%r14,%r15), %esi
movq %r12, 0x78(%rsp)
leaq 0x78(%rsp), %rbx
movq %rbx, %rdi
movl $0x2d, %edx
callq 0x2220
movq 0x78(%rsp), %rdi
addq %r15, %rdi
movl %r14d, %esi
movl %ebp, %edx
callq 0x54d4
movq %rbx, %rdi
leaq 0x4381(%rip), %rsi      # 0xb0e5
callq 0x2360
leaq 0x18(%rsp), %rsi
movq %rsi, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movq %r12, %r15
je 0x6d94
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x6d9a
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movl 0x68(%rsp), %ebx
movq 0xb8(%rsp), %r12
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %r14d
cmpl $0xa, %ebx
jb 0x6e0f
movl $0x4, %r14d
movl %ebx, %eax
cmpl $0x63, %eax
jbe 0x6e06
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x6e0c
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x6e0f
movl %eax, %ecx
movl $0xd1b71759, %edx       # imm = 0xD1B71759
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r14d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x6dd1
addl $-0x3, %r14d
jmp 0x6e0f
addl $-0x2, %r14d
jmp 0x6e0f
decl %r14d
leal (%r14,%r12), %esi
leaq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
leaq 0x28(%rsp), %rdi
movl $0x2d, %edx
callq 0x2220
movq 0x28(%rsp), %rdi
addq %r12, %rdi
movl %r14d, %esi
movl %ebx, %edx
callq 0x54d4
movq 0x8(%rsp), %rcx
movl $0xf, %esi
leaq 0x18(%rsp), %rax
cmpq %rax, %rcx
je 0x6e57
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %r8
movq 0x30(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
leaq 0xd0(%rsp), %rbx
jbe 0x6e8d
movl $0xf, %esi
leaq 0x38(%rsp), %rdi
cmpq %rdi, 0x28(%rsp)
je 0x6e88
movq 0x38(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x6e9e
movq 0x28(%rsp), %rsi
leaq 0x8(%rsp), %rdi
callq 0x2090
jmp 0x6eac
leaq 0x28(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2200
movq %rbx, 0xc0(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x6ed5
movq %rdx, 0xc0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xd0(%rsp)
jmp 0x6edb
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x48(%rsp), %rbx
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0xc8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x8351(%rip), %rdi      # 0xf258
leaq 0xc0(%rsp), %rsi
callq 0x82b4
movq %rax, %r14
callq 0x2070
cltd
idivl 0x98(%rsp)
movslq %edx, %rax
movq (%r14), %rcx
movl (%rcx,%rax,4), %ebp
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x6f47
callq 0x21a0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
movq 0x50(%rsp), %r14
je 0x6f60
callq 0x21a0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x6f74
callq 0x21a0
movq 0x78(%rsp), %rdi
cmpq %r15, %rdi
je 0x6f83
callq 0x21a0
cmpl %r13d, %ebp
je 0x6cd0
movq 0x58(%rsp), %rcx
movl %ecx, (%rsp)
movq %r14, %rdi
movl %ebx, %esi
movl %r13d, %edx
movl %ebx, %r8d
movl %ebp, %r9d
jmp 0x7471
addl $-0x2, %r14d
jmp 0x6fb0
decl %r14d
movq 0x70(%rsp), %rbp
leal (%r14,%rbp), %esi
movq %r15, 0x78(%rsp)
leaq 0x78(%rsp), %rbx
movq %rbx, %rdi
movl $0x2d, %edx
callq 0x2220
movq 0x78(%rsp), %rdi
addq %rbp, %rdi
movl %r14d, %esi
movl 0x60(%rsp), %edx
callq 0x54d4
movq %rbx, %rdi
leaq 0x40f7(%rip), %rsi      # 0xb0e5
callq 0x2360
leaq 0x18(%rsp), %rsi
movq %rsi, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x701b
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x7021
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movl 0x68(%rsp), %ebx
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %r14d
cmpl $0xa, %ebx
jb 0x708e
movl $0x4, %r14d
movl %ebx, %eax
cmpl $0x63, %eax
jbe 0x7085
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x708b
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x708e
movl %eax, %ecx
movl $0xd1b71759, %edx       # imm = 0xD1B71759
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r14d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x7050
addl $-0x3, %r14d
jmp 0x708e
addl $-0x2, %r14d
jmp 0x708e
decl %r14d
leal (%r14,%r12), %esi
leaq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
leaq 0x28(%rsp), %rdi
movl $0x2d, %edx
callq 0x2220
movq 0x28(%rsp), %rdi
addq %r12, %rdi
movl %r14d, %esi
movl %ebx, %edx
callq 0x54d4
movq 0x8(%rsp), %rcx
movl $0xf, %esi
leaq 0x18(%rsp), %rax
cmpq %rax, %rcx
je 0x70d6
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %r8
movq 0x30(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
leaq 0xd0(%rsp), %rbx
jbe 0x710c
movl $0xf, %esi
leaq 0x38(%rsp), %rdi
cmpq %rdi, 0x28(%rsp)
je 0x7107
movq 0x38(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x711d
movq 0x28(%rsp), %rsi
leaq 0x8(%rsp), %rdi
callq 0x2090
jmp 0x712b
leaq 0x28(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2200
movq %rbx, 0xc0(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x7154
movq %rdx, 0xc0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xd0(%rsp)
jmp 0x715a
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x48(%rsp), %rbx
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0xc8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x8102(%rip), %rdi      # 0xf288
leaq 0xc0(%rsp), %rsi
callq 0x82b4
movq %rax, %r14
callq 0x2070
cltd
idivl 0x98(%rsp)
movslq %edx, %rax
movq (%r14), %rcx
movl (%rcx,%rax,4), %ebp
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x71c6
callq 0x21a0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
movq 0x50(%rsp), %r14
je 0x71df
callq 0x21a0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x71f3
callq 0x21a0
movq 0x78(%rsp), %rdi
cmpq %r15, %rdi
je 0x7202
callq 0x21a0
cmpl %ebx, %ebp
jne 0x745b
movl $0x1, %r14d
movl 0x60(%rsp), %ebp
cmpl $0xa, %ebp
jb 0x725f
movl $0x4, %r14d
movl %ebp, %eax
cmpl $0x63, %eax
jbe 0x7256
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x725c
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x725f
movl %eax, %ecx
movl $0xd1b71759, %edx       # imm = 0xD1B71759
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r14d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x7221
addl $-0x3, %r14d
jmp 0x725f
addl $-0x2, %r14d
jmp 0x725f
decl %r14d
movq %r12, %r15
movq 0x70(%rsp), %r12
leal (%r14,%r12), %esi
leaq 0x88(%rsp), %rax
movq %rax, 0x78(%rsp)
leaq 0x78(%rsp), %rbx
movq %rbx, %rdi
movl $0x2d, %edx
callq 0x2220
movq 0x78(%rsp), %rdi
addq %r12, %rdi
movl %r14d, %esi
movl %ebp, %edx
callq 0x54d4
movq %rbx, %rdi
leaq 0x3e3f(%rip), %rsi      # 0xb0e5
callq 0x2360
leaq 0x18(%rsp), %rsi
movq %rsi, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x72d3
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x72d9
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movl 0x68(%rsp), %ebx
movq %r15, %r12
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %r14d
cmpl $0xa, %ebx
leaq 0x88(%rsp), %r15
jb 0x7351
movl $0x4, %r14d
movl %ebx, %eax
cmpl $0x63, %eax
jbe 0x7348
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x734e
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x7351
movl %eax, %ecx
movl $0xd1b71759, %edx       # imm = 0xD1B71759
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r14d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x7313
addl $-0x3, %r14d
jmp 0x7351
addl $-0x2, %r14d
jmp 0x7351
decl %r14d
leal (%r14,%r12), %esi
leaq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
leaq 0x28(%rsp), %rdi
movl $0x2d, %edx
callq 0x2220
movq 0x28(%rsp), %rdi
addq %r12, %rdi
movl %r14d, %esi
movl %ebx, %edx
callq 0x54d4
movq 0x8(%rsp), %rcx
movl $0xf, %esi
leaq 0x18(%rsp), %rax
cmpq %rax, %rcx
je 0x7399
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %r8
movq 0x30(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
leaq 0xd0(%rsp), %rbx
jbe 0x73cf
movl $0xf, %esi
leaq 0x38(%rsp), %rdi
cmpq %rdi, 0x28(%rsp)
je 0x73ca
movq 0x38(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x73e0
movq 0x28(%rsp), %rsi
leaq 0x8(%rsp), %rdi
callq 0x2090
jmp 0x73ee
leaq 0x28(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2200
movq %rbx, 0xc0(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x7417
movq %rdx, 0xc0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xd0(%rsp)
jmp 0x741d
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x48(%rsp), %rbx
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0xc8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x7e3f(%rip), %rdi      # 0xf288
leaq 0xc0(%rsp), %rsi
callq 0x82b4
jmp 0x7193
movq 0x58(%rsp), %rcx
movl %ecx, (%rsp)
movq %r14, %rdi
movl %ebx, %esi
movl %r13d, %edx
movl %ebp, %r8d
movl %r13d, %r9d
movsd 0x3b9f(%rip), %xmm0     # 0xb018
callq 0x8330
movq 0xb0(%r14), %rax
movq 0x258(%rsp), %rcx
leaq (%rcx,%rcx,2), %rdx
movq 0x8(%rax,%rdx,8), %rcx
movq %rdx, 0x70(%rsp)
cmpq (%rax,%rdx,8), %rcx
je 0x786c
movl 0x51265(%rip), %esi     # 0x58710
movq %r14, %rdi
callq 0x81ae
movq 0x48(%rsp), %rbx
movq %rax, 0x60(%rsp)
shlq $0x20, %rax
orq %rbx, %rax
movq %rax, 0xc0(%rsp)
movq %r14, %rdi
leaq 0xc0(%rsp), %rsi
callq 0x569a
movq 0x10(%rax), %rdx
addq $0x8, %rax
movq %rax, %rcx
testq %rdx, %rdx
je 0x7507
movq %rax, %rcx
xorl %esi, %esi
cmpl %r13d, 0x20(%rdx)
setl %sil
cmovgeq %rdx, %rcx
movq 0x10(%rdx,%rsi,8), %rdx
testq %rdx, %rdx
jne 0x74ef
movq %rax, %rdx
cmpq %rax, %rcx
je 0x751a
cmpl 0x20(%rcx), %r13d
cmovlq %rax, %rcx
movq %rcx, %rdx
cmpq %rax, %rdx
je 0x752f
movl 0x511eb(%rip), %esi     # 0x58710
movq %r14, %rdi
callq 0x81ae
jmp 0x74b8
movq 0xb0(%r14), %rax
movq 0x70(%rsp), %rdx
movq 0x8(%rax,%rdx,8), %rcx
cmpq (%rax,%rdx,8), %rcx
je 0x786c
movq 0x70(%rsp), %rcx
leaq (%rax,%rcx,8), %rax
xorl %ebx, %ebx
movq %rbx, %r14
shlq $0x5, %r14
movq (%rax), %rsi
addq %r14, %rsi
leaq 0x28(%rsp), %rdi
callq 0x5542
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
leaq 0x8(%rsp), %rdi
leaq 0x3c62(%rip), %rdx      # 0xb1e4
movq %rdx, %rsi
callq 0x9642
leaq 0x7c67(%rip), %rdi      # 0xf1f8
leaq 0x28(%rsp), %rsi
callq 0x8d9c
leaq 0x7c5e(%rip), %rcx      # 0xf200
cmpq %rcx, %rax
jne 0x767d
leaq 0xc0(%rsp), %rdi
callq 0x2270
movq 0x28(%rsp), %rax
cmpq %rax, 0x30(%rsp)
je 0x7605
xorl %r15d, %r15d
movl (%rax,%r15,4), %esi
leaq 0xc0(%rsp), %rdi
callq 0x2310
movl $0x1, %edx
movq %rax, %rdi
leaq 0x3b46(%rip), %rsi      # 0xb12d
callq 0x2210
incq %r15
movq 0x28(%rsp), %rax
movq 0x30(%rsp), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq %r15, %rcx
ja 0x75c7
leaq 0x78(%rsp), %r15
movq %r15, %rdi
leaq 0xc8(%rsp), %rsi
callq 0x22d0
leaq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0x2240
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %r15
cmpq %r15, %rdi
je 0x763e
callq 0x21a0
leaq 0x7bb3(%rip), %rdi      # 0xf1f8
leaq 0x28(%rsp), %rsi
callq 0x8430
movq %rax, %rdi
leaq 0x8(%rsp), %rsi
callq 0x2100
leaq 0xc0(%rsp), %rdi
movq 0x7965(%rip), %rsi      # 0xefd0
callq 0x20f0
leaq 0x130(%rsp), %rdi
callq 0x20a0
leaq 0x7b74(%rip), %rdi      # 0xf1f8
leaq 0x28(%rsp), %rsi
callq 0x8430
leaq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x2100
movq 0x50(%rsp), %rax
movq 0xb0(%rax), %rax
movq 0x70(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movsd 0x18(%rax,%r14), %xmm0
movsd %xmm0, 0x68(%rsp)
leaq 0xd0(%rsp), %rax
movq %rax, 0xc0(%rsp)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
addq %rsi, %rdx
leaq 0xc0(%rsp), %r14
movq %r14, %rdi
callq 0x55c2
movq 0x58(%rsp), %rax
movl %eax, 0xe0(%rsp)
leaq 0x7b2b(%rip), %rdi      # 0xf228
movq %r14, %rsi
callq 0x93dc
movq %rax, %r14
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x7722
callq 0x21a0
leaq 0x7b07(%rip), %rax      # 0xf230
cmpq %rax, %r14
je 0x77aa
movq %r15, %r12
leaq 0xd0(%rsp), %rax
movq %rax, 0xc0(%rsp)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
addq %rsi, %rdx
leaq 0xc0(%rsp), %r15
movq %r15, %rdi
callq 0x55c2
movq 0x50(%rsp), %r14
movq 0x58(%rsp), %rax
movl %eax, 0xe0(%rsp)
leaq 0x7ab2(%rip), %rdi      # 0xf228
movq %r15, %rsi
callq 0x4c74
movsd (%rax), %xmm0
movsd %xmm0, 0x98(%rsp)
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x77a5
callq 0x21a0
movq %r12, %r15
jmp 0x77bb
xorps %xmm0, %xmm0
movsd %xmm0, 0x98(%rsp)
movq 0x50(%rsp), %r14
leaq 0x260(%rsp), %r12
movq %r12, %rdi
leaq 0x28(%rsp), %rsi
callq 0x5542
movsd 0x98(%rsp), %xmm0
mulsd 0x3857(%rip), %xmm0     # 0xb038
addsd 0x3857(%rip), %xmm0     # 0xb040
movsd 0x68(%rsp), %xmm1
mulsd %xmm0, %xmm1
movq %r14, %rdi
movq 0x58(%rsp), %rsi
movq 0x60(%rsp), %rdx
movq %r12, %rcx
movsd 0x383d(%rip), %xmm0     # 0xb048
callq 0x84d6
movq 0x260(%rsp), %rdi
testq %rdi, %rdi
je 0x7822
callq 0x21a0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x7836
callq 0x21a0
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x7845
callq 0x21a0
incq %rbx
movq 0xb0(%r14), %rax
movq 0x70(%rsp), %rcx
leaq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rcx
subq (%rax), %rcx
sarq $0x5, %rcx
cmpq %rbx, %rcx
ja 0x7555
movslq 0x48(%rsp), %rbx
movslq 0x58(%rsp), %rax
movslq %r13d, %r14
leaq (%rax,%rax,2), %rsi
shlq $0x3, %rsi
movq 0x50(%rsp), %rax
addq 0x110(%rax), %rsi
movq 0x50(%rsp), %rdi
callq 0x5ef8
leaq (%rbx,%rbx,2), %rsi
shlq $0x3, %rsi
movq 0x50(%rsp), %rax
addq 0x128(%rax), %rsi
movq 0x50(%rsp), %rdi
callq 0x5ef8
leaq (%r14,%r14,2), %rsi
movq 0x50(%rsp), %r14
shlq $0x3, %rsi
addq 0x128(%r14), %rsi
movq %r14, %rdi
callq 0x5ef8
movslq %ebp, %rax
leaq (%rax,%rax,2), %rsi
shlq $0x3, %rsi
addq 0x128(%r14), %rsi
movq %r14, %rdi
callq 0x5ef8
movl 0xa4(%rsp), %eax
incl %eax
cmpl 0xb0(%rsp), %eax
jne 0x6170
movq 0x250(%rsp), %rdi
movq 0x248(%rsp), %rsi
callq 0x804c
movl 0xa0(%rsp), %ebx
movq 0x240(%rsp), %rdi
movq 0x238(%rsp), %rsi
callq 0x804c
incl %ebx
cmpl $0x64, %ebx
jne 0x614b
movl $0x5, %edx
movq 0x768f(%rip), %rbx      # 0xefd8
movq %rbx, %rdi
leaq 0x3863(%rip), %rsi      # 0xb1b6
callq 0x2210
leaq 0xc0(%rsp), %r15
movq 0xa8(%rsp), %r12
movq %rbx, %rdi
movl %r12d, %esi
callq 0x2310
movb $0x20, 0xc0(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x2210
movq 0x50(%rsp), %rcx
movsd 0x38(%rcx), %xmm0
movq %rax, %rdi
callq 0x22e0
movb $0x20, 0xc0(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x2210
movq 0x50(%rsp), %rcx
movl 0x40(%rcx), %esi
movq %rax, %rdi
callq 0x2310
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2120
movq %r15, %rdi
leaq 0x37c3(%rip), %rsi      # 0xb1bc
leaq 0x7908(%rip), %rbx      # 0xf308
movq %rbx, %rdx
callq 0x4887
movq 0xc0(%rsp), %rdi
leaq 0x37b6(%rip), %rsi      # 0xb1cd
callq 0x2230
movq %rax, %r14
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x7a39
callq 0x21a0
movq %r15, %rdi
leaq 0x378c(%rip), %rsi      # 0xb1cf
movq %rbx, %rdx
callq 0x4887
movq 0xc0(%rsp), %rdi
leaq 0x3773(%rip), %rsi      # 0xb1cd
callq 0x2230
movq %rax, %r12
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x7a7c
callq 0x21a0
cmpl $0x0, 0x50c8d(%rip)     # 0x58710
jle 0x7ae7
xorl %ebx, %ebx
movq 0x50(%rsp), %r13
cmpl $0x0, 0x30(%r13)
leaq 0x3746(%rip), %rbp      # 0xb1de
jle 0x7acb
xorl %r15d, %r15d
movq 0xe0(%r13), %rax
leaq (%rbx,%rbx,2), %rcx
movq (%rax,%rcx,8), %rax
movsd (%rax,%r15,8), %xmm0
movq %r14, %rdi
movq %rbp, %rsi
movb $0x1, %al
callq 0x2280
incq %r15
movslq 0x30(%r13), %rax
cmpq %rax, %r15
jl 0x7a9d
movl $0xa, %edi
movq %r14, %rsi
callq 0x2260
incq %rbx
movslq 0x50c2e(%rip), %rax     # 0x58710
cmpq %rax, %rbx
jl 0x7a87
cmpl $0x0, 0x50c26(%rip)     # 0x58714
jle 0x7b52
xorl %ebx, %ebx
movq 0x50(%rsp), %r13
cmpl $0x0, 0x30(%r13)
leaq 0x36db(%rip), %rbp      # 0xb1de
jle 0x7b36
xorl %r15d, %r15d
movq 0xf8(%r13), %rax
leaq (%rbx,%rbx,2), %rcx
movq (%rax,%rcx,8), %rax
movsd (%rax,%r15,8), %xmm0
movq %r12, %rdi
movq %rbp, %rsi
movb $0x1, %al
callq 0x2280
incq %r15
movslq 0x30(%r13), %rax
cmpq %rax, %r15
jl 0x7b08
movl $0xa, %edi
movq %r12, %rsi
callq 0x2260
incq %rbx
movslq 0x50bc7(%rip), %rax     # 0x58714
cmpq %rax, %rbx
jl 0x7af2
movq %r14, %rdi
callq 0x21d0
movq %r12, %rdi
callq 0x21d0
movq 0xa8(%rsp), %rbx
incl %ebx
cmpl $0x1f4, %ebx            # imm = 0x1F4
leaq 0x88(%rsp), %r15
movq 0x50(%rsp), %r14
jne 0x6131
leaq 0x278(%rsp), %rdi
callq 0x5284
addq $0x2a8, %rsp            # imm = 0x2A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x7cd8
jmp 0x7cd8
jmp 0x7cd8
jmp 0x7cd8
jmp 0x7c25
jmp 0x7c49
jmp 0x7cd8
jmp 0x7c62
jmp 0x7bfb
jmp 0x7c25
jmp 0x7c49
jmp 0x7c25
jmp 0x7c62
jmp 0x7c0a
jmp 0x7c49
jmp 0x7c62
jmp 0x7bfb
jmp 0x7cd8
jmp 0x7cd8
jmp 0x7cd8
jmp 0x7cd8
jmp 0x7c25
jmp 0x7c62
jmp 0x7c49
movq %rax, %rbx
jmp 0x7c79
jmp 0x7cd8
jmp 0x7cd8
movq %rax, %rbx
leaq 0x88(%rsp), %r15
jmp 0x7c79
jmp 0x7c62
jmp 0x7c49
jmp 0x7c25
movq %rax, %rbx
movq %r12, %r15
jmp 0x7c79
movq %rax, %rbx
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x7c4c
callq 0x21a0
jmp 0x7c4c
jmp 0x7cd8
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x7c65
callq 0x21a0
jmp 0x7c65
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x7c79
callq 0x21a0
movq 0x78(%rsp), %rdi
cmpq %r15, %rdi
jne 0x7d24
jmp 0x7d29
jmp 0x7ce2
jmp 0x7cdd
jmp 0x7cdd
jmp 0x7c9a
jmp 0x7cd8
jmp 0x7cd8
jmp 0x7ce2
movq %rax, %rbx
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
jne 0x7cc8
jmp 0x7d06
jmp 0x7cdd
jmp 0x7cdd
movq %rax, %rbx
movq 0x260(%rsp), %rdi
testq %rdi, %rdi
je 0x7d06
callq 0x21a0
jmp 0x7d06
movq %rax, %rbx
jmp 0x7d1a
jmp 0x7cd8
jmp 0x7cd8
movq %rax, %rbx
jmp 0x7d29
movq %rax, %rbx
jmp 0x7d06
movq %rax, %rbx
movq 0x72e4(%rip), %rsi      # 0xefd0
leaq 0xc0(%rsp), %rdi
callq 0x20f0
leaq 0x130(%rsp), %rdi
callq 0x20a0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x7d1a
callq 0x21a0
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x7d29
callq 0x21a0
leaq 0x278(%rsp), %rdi
callq 0x5284
movq %rbx, %rdi
callq 0x2320