// File: IdelCoder[P]PTransE-ag/Train_PTransE-pos.cpp
// Function: prepare()
void prepare()
{

    FILE* f1 = fopen(("../" + dir + "/entity2id.txt").c_str(),"r");
	FILE* f2 = fopen(("../" + dir + "/relation2id.txt").c_str(),"r");
	int x;

	while (fscanf(f1,"%s%d",buf,&x)==2)
	{
		string st=buf;
        // map<string,int> key是实体名，value是实体id。
		entity2id[st]=x;
        // map<int,string> key是id，value是实体名
		id2entity[x]=st;
		entity_num++;
	}
	while (fscanf(f2,"%s%d",buf,&x)==2)
	{
		string st=buf;
		relation2id[st]=x;
        // key是id,value是关系名
		id2relation[x]=st;
        // id加上1345，对应到“-关系名”，1345表示有1345个关系（应该是针对于数据集FB15k的）
		id2relation[x+1345] = "-"+st;
		relation_num++;
	}
    FILE* f_train = fopen(("../" + dir + "/train.txt").c_str(), "r");
    //cout << "getting train data" << endl;
    while (fscanf(f_train, "%s", buf) == 1) {
         string head = buf;
         //cout << "start: " << buf << endl;
         fscanf(f_train,"%s",buf);
         string tail = buf;
          fscanf(f_train,"%s",buf);
          string rel = buf;
        // 头结点和关系组合
        string headRel = to_string(entity2id[head]) + "_" + to_string(relation2id[rel]);
       // cout << headRel << endl;
        map<string, vector<int> >::iterator iter = givenHeadRel.find(headRel);
        if(iter == givenHeadRel.end()) {
            // key不存在
            vector<int> value = vector<int>();
            value.push_back(entity2id[tail]);
            givenHeadRel.insert(pair<string, vector<int> >(headRel, value));
        } else {
            iter->second.push_back(entity2id[tail]);
        }

        // 尾节点和关系组合

        string tailRel = to_string(entity2id[tail]) + "_" + to_string(relation2id[rel]);
        //cout << tailRel << endl;
        iter = givenTailRel.find(tailRel);
        if(iter == givenTailRel.end()) {
            // key不存在
            vector<int> value = vector<int>();
            value.push_back(entity2id[head]);
            givenTailRel.insert(pair<string, vector<int> >(tailRel, value));
        } else {
            iter->second.push_back(entity2id[head]);
        }

        // 头结点和尾节点组合
        string headTail = to_string(entity2id[head]) + "_" + to_string(entity2id[tail]);
        //cout << headTail << endl;
        iter = givenHeadTail.find(headTail);
        if(iter == givenHeadTail.end()) {
            // key不存在
            vector<int> value = vector<int>();
            value.push_back(relation2id[rel]);
            givenHeadTail.insert(pair<string, vector<int> >(headTail, value));
        } else {
            iter->second.push_back(relation2id[rel]);
        }

    }

    FILE* f_kb = fopen(("../" + dir + "/train_pra.txt").c_str(),"r");
	while (fscanf(f_kb,"%s",buf)==1)
    {
        string s1=buf;
        fscanf(f_kb,"%s",buf);
        string s2=buf;
        if (entity2id.count(s1)==0)
        {
            cout<<"miss entity:"<<s1<<endl;
        }
        if (entity2id.count(s2)==0)
        {
            cout<<"miss entity:"<<s2<<endl;
        }
        int e1 = entity2id[s1];
        int e2 = entity2id[s2];
        int rel;
        // rel是关系id
		fscanf(f_kb,"%d",&rel);
        // 就是实体之间的路径的数目
		fscanf(f_kb,"%d",&x);
        // pair<路径，精度>
		vector<pair<vector<int>,double> > b;
		b.clear();
		for (int i = 0; i<x; i++)
		{
			int y,z;
			vector<int> rel_path;
			rel_path.clear();
            // y是某条路径的长度（关系数）
			fscanf(f_kb,"%d",&y);
			for (int j=0; j<y; j++)
			{
                // 读取y所指的路径的关系，
				fscanf(f_kb,"%d",&z);
				rel_path.push_back(z);
			}
			double pr;
            // 读取这条路径的精度
			fscanf(f_kb,"%lf",&pr);
			b.push_back(make_pair(rel_path,pr));
		}
		//cout<<e1<<' '<<e2<<' '<<rel<<' '<<b.size()<<endl;
        // 训练需要的参数：头实体，尾实体，直连关系，（路径加精度）
        train.add(e1,e2,rel,b);
    }
    // 以上就是训练过程
    // 关系数目，包括了逆关系
	relation_num*=2;

    cout<<"relation_num="<<relation_num<<endl;
    cout<<"entity_num="<<entity_num<<endl;
	// confidence存放的是每条路径对于每个关系的置信度。比如e1-r1-e2，直连的关系是r1，e3-r2-e4的直连关系是r2。
    // 假设图中只有e1-e2和e3-e4之间存在路径r3-r4。那么，r3-r4只对r1和r2存在置信度，且均是0.5。
	FILE* f_confidence = fopen(("../" + dir + "/confidence.txt").c_str(),"r");
	while (fscanf(f_confidence,"%d",&x)==1)
	{
        // x是路径的长度
		string s = "";
		for (int i=0; i<x; i++)
		{
            // 读取路径中的关系
			fscanf(f_confidence,"%s",buf);
            // 拼接各个关系，组成路径字符串（每个关系是用id表示的）
			s = s + string(buf)+" ";
		}
        // 涉及到的关系数（如上注释的情况，就会是2）
		fscanf(f_confidence,"%d",&x);
		for (int i=0; i<x; i++)
		{
			int y;
			double pr;
            // 读取涉及到的关系以及其置信度
			fscanf(f_confidence,"%d%lf",&y,&pr);
		//	cout<<s<<' '<<y<<' '<<pr<<endl;
            // map<pair<string,int>,double> map<pair<路径字符串，涉及关系id>, 置信度>
			path_confidence[make_pair(s,y)] = pr;
		}
	}
	fclose(f_confidence);
    fclose(f_kb);
}

// Assembly:
subq $0x8f8, %rsp            # imm = 0x8F8
leaq 0x175ec(%rip), %rsi     # 0x1a08a
leaq 0x22883(%rip), %rdx     # 0x25328
leaq 0x8b0(%rsp), %rdi
movq %rdi, 0x208(%rsp)
callq 0x4b30
movq 0x208(%rsp), %rsi
leaq 0x175c5(%rip), %rdx     # 0x1a08e
leaq 0x8d0(%rsp), %rdi
callq 0x4ae0
jmp 0x2ad8
leaq 0x8d0(%rsp), %rdi
callq 0x20e0
movq %rax, %rdi
leaq 0x175ae(%rip), %rsi     # 0x1a09d
callq 0x2270
movq %rax, 0x200(%rsp)
jmp 0x2afe
leaq 0x8d0(%rsp), %rdi
callq 0x23f8
leaq 0x8b0(%rsp), %rdi
callq 0x23f8
movq 0x200(%rsp), %rax
movq %rax, 0x8f0(%rsp)
leaq 0x1755b(%rip), %rsi     # 0x1a08a
leaq 0x227f2(%rip), %rdx     # 0x25328
leaq 0x858(%rsp), %rdi
movq %rdi, 0x1f8(%rsp)
callq 0x4b30
movq 0x1f8(%rsp), %rsi
leaq 0x17545(%rip), %rdx     # 0x1a09f
leaq 0x878(%rsp), %rdi
callq 0x4ae0
jmp 0x2b69
leaq 0x878(%rsp), %rdi
callq 0x20e0
movq %rax, %rdi
leaq 0x1751d(%rip), %rsi     # 0x1a09d
callq 0x2270
movq %rax, 0x1f0(%rsp)
jmp 0x2b8f
leaq 0x878(%rsp), %rdi
callq 0x23f8
leaq 0x858(%rsp), %rdi
callq 0x23f8
movq 0x1f0(%rsp), %rax
movq %rax, 0x898(%rsp)
movq 0x8f0(%rsp), %rdi
leaq 0x174e8(%rip), %rsi     # 0x1a0b0
leaq 0x227a1(%rip), %rdx     # 0x25370
leaq 0x854(%rsp), %rcx
movb $0x0, %al
callq 0x23a0
cmpl $0x2, %eax
jne 0x2d98
leaq 0x82f(%rsp), %rdi
movq %rdi, 0x1e8(%rsp)
callq 0x2380
movq 0x1e8(%rsp), %rdx
leaq 0x22765(%rip), %rsi     # 0x25370
leaq 0x830(%rsp), %rdi
callq 0x22c0
jmp 0x2c1a
leaq 0x82f(%rsp), %rdi
callq 0x2250
movl 0x854(%rsp), %eax
movl %eax, 0x1dc(%rsp)
leaq 0x6bb4c(%rip), %rdi     # 0x6e788
leaq 0x830(%rsp), %rsi
callq 0x4c60
movq %rax, 0x1e0(%rsp)
jmp 0x2c53
movq 0x1e0(%rsp), %rax
movl 0x1dc(%rsp), %ecx
movl %ecx, (%rax)
leaq 0x6bb4d(%rip), %rdi     # 0x6e7b8
leaq 0x854(%rsp), %rsi
callq 0x4d50
movq %rax, 0x1d0(%rsp)
jmp 0x2c82
movq 0x1d0(%rsp), %rdi
leaq 0x830(%rsp), %rsi
callq 0x2050
jmp 0x2c99
movl 0x6bab5(%rip), %eax     # 0x6e754
addl $0x1, %eax
movl %eax, 0x6baac(%rip)     # 0x6e754
leaq 0x830(%rsp), %rdi
callq 0x23f8
jmp 0x2bb9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x2cf1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x8d0(%rsp), %rdi
callq 0x23f8
leaq 0x8b0(%rsp), %rdi
callq 0x23f8
jmp 0x4765
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x2d3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x878(%rsp), %rdi
callq 0x23f8
leaq 0x858(%rsp), %rdi
callq 0x23f8
jmp 0x4765
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x82f(%rsp), %rdi
callq 0x2250
jmp 0x4765
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x830(%rsp), %rdi
callq 0x23f8
jmp 0x4765
jmp 0x2d9a
movq 0x898(%rsp), %rdi
leaq 0x17307(%rip), %rsi     # 0x1a0b0
leaq 0x225c0(%rip), %rdx     # 0x25370
leaq 0x854(%rsp), %rcx
movb $0x0, %al
callq 0x23a0
cmpl $0x2, %eax
jne 0x2f7b
leaq 0x807(%rsp), %rdi
movq %rdi, 0x1c8(%rsp)
callq 0x2380
movq 0x1c8(%rsp), %rdx
leaq 0x22584(%rip), %rsi     # 0x25370
leaq 0x808(%rsp), %rdi
callq 0x22c0
jmp 0x2dfb
leaq 0x807(%rsp), %rdi
callq 0x2250
movl 0x854(%rsp), %eax
movl %eax, 0x1bc(%rsp)
leaq 0x6b93b(%rip), %rdi     # 0x6e758
leaq 0x808(%rsp), %rsi
callq 0x4c60
movq %rax, 0x1c0(%rsp)
jmp 0x2e34
movq 0x1c0(%rsp), %rax
movl 0x1bc(%rsp), %ecx
movl %ecx, (%rax)
leaq 0x6b99c(%rip), %rdi     # 0x6e7e8
leaq 0x854(%rsp), %rsi
callq 0x4d50
movq %rax, 0x1b0(%rsp)
jmp 0x2e63
movq 0x1b0(%rsp), %rdi
leaq 0x808(%rsp), %rsi
callq 0x2050
jmp 0x2e7a
leaq 0x17234(%rip), %rsi     # 0x1a0b5
leaq 0x7e0(%rsp), %rdi
leaq 0x808(%rsp), %rdx
callq 0x4b30
jmp 0x2e98
movl 0x854(%rsp), %eax
addl $0x541, %eax            # imm = 0x541
movl %eax, 0x7dc(%rsp)
leaq 0x6b936(%rip), %rdi     # 0x6e7e8
leaq 0x7dc(%rsp), %rsi
callq 0x4e40
movq %rax, 0x1a8(%rsp)
jmp 0x2ec9
movq 0x1a8(%rsp), %rdi
leaq 0x7e0(%rsp), %rsi
callq 0x2280
leaq 0x7e0(%rsp), %rdi
callq 0x23f8
movl 0x6b85f(%rip), %eax     # 0x6e750
addl $0x1, %eax
movl %eax, 0x6b856(%rip)     # 0x6e750
leaq 0x808(%rsp), %rdi
callq 0x23f8
jmp 0x2d9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x807(%rsp), %rdi
callq 0x2250
jmp 0x4765
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x2f69
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x7e0(%rsp), %rdi
callq 0x23f8
leaq 0x808(%rsp), %rdi
callq 0x23f8
jmp 0x4765
leaq 0x17108(%rip), %rsi     # 0x1a08a
leaq 0x2239f(%rip), %rdx     # 0x25328
leaq 0x790(%rsp), %rdi
movq %rdi, 0x1a0(%rsp)
callq 0x4b30
movq 0x1a0(%rsp), %rsi
leaq 0x1710a(%rip), %rdx     # 0x1a0b7
leaq 0x7b0(%rsp), %rdi
callq 0x4ae0
jmp 0x2fbc
leaq 0x7b0(%rsp), %rdi
callq 0x20e0
movq %rax, %rdi
leaq 0x170ca(%rip), %rsi     # 0x1a09d
callq 0x2270
movq %rax, 0x198(%rsp)
jmp 0x2fe2
leaq 0x7b0(%rsp), %rdi
callq 0x23f8
leaq 0x790(%rsp), %rdi
callq 0x23f8
movq 0x198(%rsp), %rax
movq %rax, 0x7d0(%rsp)
movq 0x7d0(%rsp), %rdi
leaq 0x170a7(%rip), %rsi     # 0x1a0c2
leaq 0x2234e(%rip), %rdx     # 0x25370
movb $0x0, %al
callq 0x23a0
cmpl $0x1, %eax
jne 0x3c7a
leaq 0x76f(%rsp), %rdi
movq %rdi, 0x190(%rsp)
callq 0x2380
movq 0x190(%rsp), %rdx
leaq 0x2231a(%rip), %rsi     # 0x25370
leaq 0x770(%rsp), %rdi
callq 0x22c0
jmp 0x3065
leaq 0x76f(%rsp), %rdi
callq 0x2250
movq 0x7d0(%rsp), %rdi
leaq 0x17041(%rip), %rsi     # 0x1a0c2
leaq 0x222e8(%rip), %rdx     # 0x25370
xorl %eax, %eax
callq 0x23a0
jmp 0x3091
leaq 0x747(%rsp), %rdi
movq %rdi, 0x188(%rsp)
callq 0x2380
movq 0x188(%rsp), %rdx
leaq 0x222bb(%rip), %rsi     # 0x25370
leaq 0x748(%rsp), %rdi
callq 0x22c0
jmp 0x30c4
leaq 0x747(%rsp), %rdi
callq 0x2250
movq 0x7d0(%rsp), %rdi
leaq 0x16fe2(%rip), %rsi     # 0x1a0c2
leaq 0x22289(%rip), %rdx     # 0x25370
xorl %eax, %eax
callq 0x23a0
jmp 0x30f0
leaq 0x71f(%rsp), %rdi
movq %rdi, 0x180(%rsp)
callq 0x2380
movq 0x180(%rsp), %rdx
leaq 0x2225c(%rip), %rsi     # 0x25370
leaq 0x720(%rsp), %rdi
callq 0x22c0
jmp 0x3123
leaq 0x71f(%rsp), %rdi
callq 0x2250
leaq 0x6b651(%rip), %rdi     # 0x6e788
leaq 0x770(%rsp), %rsi
callq 0x4c60
movq %rax, 0x178(%rsp)
jmp 0x314e
movq 0x178(%rsp), %rax
movl (%rax), %esi
leaq 0x6b8(%rsp), %rdi
callq 0x5020
jmp 0x3167
leaq 0x16f57(%rip), %rdx     # 0x1a0c5
leaq 0x6d8(%rsp), %rdi
leaq 0x6b8(%rsp), %rsi
callq 0x4ae0
jmp 0x3185
leaq 0x6b5cc(%rip), %rdi     # 0x6e758
leaq 0x720(%rsp), %rsi
callq 0x4c60
movq %rax, 0x170(%rsp)
jmp 0x31a3
movq 0x170(%rsp), %rax
movl (%rax), %esi
leaq 0x698(%rsp), %rdi
callq 0x5020
jmp 0x31bc
leaq 0x6f8(%rsp), %rdi
leaq 0x6d8(%rsp), %rsi
leaq 0x698(%rsp), %rdx
callq 0x4f30
jmp 0x31db
leaq 0x698(%rsp), %rdi
callq 0x23f8
leaq 0x6d8(%rsp), %rdi
callq 0x23f8
leaq 0x6b8(%rsp), %rdi
callq 0x23f8
leaq 0x2208f(%rip), %rdi     # 0x25298
leaq 0x6f8(%rsp), %rsi
callq 0x5160
movq %rax, 0x168(%rsp)
jmp 0x3220
movq 0x168(%rsp), %rax
movq %rax, 0x690(%rsp)
leaq 0x22061(%rip), %rdi     # 0x25298
callq 0x51b0
movq %rax, 0x688(%rsp)
leaq 0x690(%rsp), %rdi
leaq 0x688(%rsp), %rsi
callq 0x5190
testb $0x1, %al
jne 0x3262
jmp 0x3510
xorps %xmm0, %xmm0
movaps %xmm0, 0x670(%rsp)
movq $0x0, 0x680(%rsp)
leaq 0x670(%rsp), %rdi
callq 0x51e0
leaq 0x6b4fb(%rip), %rdi     # 0x6e788
leaq 0x748(%rsp), %rsi
callq 0x4c60
movq %rax, 0x160(%rsp)
jmp 0x32a4
movq 0x160(%rsp), %rsi
leaq 0x670(%rsp), %rdi
callq 0x51f0
jmp 0x32bb
leaq 0x638(%rsp), %rdi
leaq 0x6f8(%rsp), %rsi
leaq 0x670(%rsp), %rdx
callq 0x52b0
jmp 0x32da
leaq 0x21fb7(%rip), %rdi     # 0x25298
leaq 0x638(%rsp), %rsi
callq 0x5260
movb %dl, 0x157(%rsp)
movq %rax, 0x158(%rsp)
jmp 0x32ff
movb 0x157(%rsp), %al
movq 0x158(%rsp), %rcx
movq %rcx, 0x628(%rsp)
movb %al, 0x630(%rsp)
leaq 0x638(%rsp), %rdi
callq 0x5320
leaq 0x670(%rsp), %rdi
callq 0x5350
jmp 0x3560
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x3373
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x7b0(%rsp), %rdi
callq 0x23f8
leaq 0x790(%rsp), %rdi
callq 0x23f8
jmp 0x4765
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x76f(%rsp), %rdi
callq 0x2250
jmp 0x4765
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x3c68
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x747(%rsp), %rdi
callq 0x2250
jmp 0x3c68
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x3c5b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x71f(%rsp), %rdi
callq 0x2250
jmp 0x3c5b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x3c4e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x349c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x348f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x698(%rsp), %rdi
callq 0x23f8
leaq 0x6d8(%rsp), %rdi
callq 0x23f8
leaq 0x6b8(%rsp), %rdi
callq 0x23f8
jmp 0x3c4e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x3c41
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x34fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x638(%rsp), %rdi
callq 0x5320
leaq 0x670(%rsp), %rdi
callq 0x5350
jmp 0x3c41
leaq 0x690(%rsp), %rdi
callq 0x53b0
addq $0x20, %rax
movq %rax, 0x140(%rsp)
leaq 0x6b258(%rip), %rdi     # 0x6e788
leaq 0x748(%rsp), %rsi
callq 0x4c60
movq %rax, 0x148(%rsp)
jmp 0x3547
movq 0x148(%rsp), %rsi
movq 0x140(%rsp), %rdi
callq 0x51f0
jmp 0x355e
jmp 0x3560
leaq 0x6b221(%rip), %rdi     # 0x6e788
leaq 0x748(%rsp), %rsi
callq 0x4c60
movq %rax, 0x138(%rsp)
jmp 0x357e
movq 0x138(%rsp), %rax
movl (%rax), %esi
leaq 0x5c8(%rsp), %rdi
callq 0x5020
jmp 0x3597
leaq 0x16b27(%rip), %rdx     # 0x1a0c5
leaq 0x5e8(%rsp), %rdi
leaq 0x5c8(%rsp), %rsi
callq 0x4ae0
jmp 0x35b5
leaq 0x6b19c(%rip), %rdi     # 0x6e758
leaq 0x720(%rsp), %rsi
callq 0x4c60
movq %rax, 0x130(%rsp)
jmp 0x35d3
movq 0x130(%rsp), %rax
movl (%rax), %esi
leaq 0x5a8(%rsp), %rdi
callq 0x5020
jmp 0x35ec
leaq 0x608(%rsp), %rdi
leaq 0x5e8(%rsp), %rsi
leaq 0x5a8(%rsp), %rdx
callq 0x4f30
jmp 0x360b
leaq 0x5a8(%rsp), %rdi
callq 0x23f8
leaq 0x5e8(%rsp), %rdi
callq 0x23f8
leaq 0x5c8(%rsp), %rdi
callq 0x23f8
leaq 0x21c8f(%rip), %rdi     # 0x252c8
leaq 0x608(%rsp), %rsi
callq 0x5160
movq %rax, 0x128(%rsp)
jmp 0x3650
movq 0x128(%rsp), %rax
movq %rax, 0x5a0(%rsp)
movq 0x5a0(%rsp), %rax
movq %rax, 0x690(%rsp)
leaq 0x21c51(%rip), %rdi     # 0x252c8
callq 0x51b0
movq %rax, 0x598(%rsp)
leaq 0x690(%rsp), %rdi
leaq 0x598(%rsp), %rsi
callq 0x5190
testb $0x1, %al
jne 0x36a2
jmp 0x384a
xorps %xmm0, %xmm0
movaps %xmm0, 0x580(%rsp)
movq $0x0, 0x590(%rsp)
leaq 0x580(%rsp), %rdi
callq 0x51e0
leaq 0x6b0bb(%rip), %rdi     # 0x6e788
leaq 0x770(%rsp), %rsi
callq 0x4c60
movq %rax, 0x120(%rsp)
jmp 0x36e4
movq 0x120(%rsp), %rsi
leaq 0x580(%rsp), %rdi
callq 0x51f0
jmp 0x36fb
leaq 0x548(%rsp), %rdi
leaq 0x608(%rsp), %rsi
leaq 0x580(%rsp), %rdx
callq 0x52b0
jmp 0x371a
leaq 0x21ba7(%rip), %rdi     # 0x252c8
leaq 0x548(%rsp), %rsi
callq 0x5260
movb %dl, 0x117(%rsp)
movq %rax, 0x118(%rsp)
jmp 0x373f
movb 0x117(%rsp), %al
movq 0x118(%rsp), %rcx
movq %rcx, 0x538(%rsp)
movb %al, 0x540(%rsp)
leaq 0x548(%rsp), %rdi
callq 0x5320
leaq 0x580(%rsp), %rdi
callq 0x5350
jmp 0x389a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x37d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x37c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x5a8(%rsp), %rdi
callq 0x23f8
leaq 0x5e8(%rsp), %rdi
callq 0x23f8
leaq 0x5c8(%rsp), %rdi
callq 0x23f8
jmp 0x3c41
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x3c34
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x3838
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x548(%rsp), %rdi
callq 0x5320
leaq 0x580(%rsp), %rdi
callq 0x5350
jmp 0x3c34
leaq 0x690(%rsp), %rdi
callq 0x53b0
addq $0x20, %rax
movq %rax, 0x100(%rsp)
leaq 0x6af1e(%rip), %rdi     # 0x6e788
leaq 0x770(%rsp), %rsi
callq 0x4c60
movq %rax, 0x108(%rsp)
jmp 0x3881
movq 0x108(%rsp), %rsi
movq 0x100(%rsp), %rdi
callq 0x51f0
jmp 0x3898
jmp 0x389a
leaq 0x6aee7(%rip), %rdi     # 0x6e788
leaq 0x770(%rsp), %rsi
callq 0x4c60
movq %rax, 0xf8(%rsp)
jmp 0x38b8
movq 0xf8(%rsp), %rax
movl (%rax), %esi
leaq 0x4d8(%rsp), %rdi
callq 0x5020
jmp 0x38d1
leaq 0x167ed(%rip), %rdx     # 0x1a0c5
leaq 0x4f8(%rsp), %rdi
leaq 0x4d8(%rsp), %rsi
callq 0x4ae0
jmp 0x38ef
leaq 0x6ae92(%rip), %rdi     # 0x6e788
leaq 0x748(%rsp), %rsi
callq 0x4c60
movq %rax, 0xf0(%rsp)
jmp 0x390d
movq 0xf0(%rsp), %rax
movl (%rax), %esi
leaq 0x4b8(%rsp), %rdi
callq 0x5020
jmp 0x3926
leaq 0x518(%rsp), %rdi
leaq 0x4f8(%rsp), %rsi
leaq 0x4b8(%rsp), %rdx
callq 0x4f30
jmp 0x3945
leaq 0x4b8(%rsp), %rdi
callq 0x23f8
leaq 0x4f8(%rsp), %rdi
callq 0x23f8
leaq 0x4d8(%rsp), %rdi
callq 0x23f8
leaq 0x21985(%rip), %rdi     # 0x252f8
leaq 0x518(%rsp), %rsi
callq 0x5160
movq %rax, 0xe8(%rsp)
jmp 0x398a
movq 0xe8(%rsp), %rax
movq %rax, 0x4b0(%rsp)
movq 0x4b0(%rsp), %rax
movq %rax, 0x690(%rsp)
leaq 0x21947(%rip), %rdi     # 0x252f8
callq 0x51b0
movq %rax, 0x4a8(%rsp)
leaq 0x690(%rsp), %rdi
leaq 0x4a8(%rsp), %rsi
callq 0x5190
testb $0x1, %al
jne 0x39dc
jmp 0x3b84
xorps %xmm0, %xmm0
movaps %xmm0, 0x490(%rsp)
movq $0x0, 0x4a0(%rsp)
leaq 0x490(%rsp), %rdi
callq 0x51e0
leaq 0x6ad51(%rip), %rdi     # 0x6e758
leaq 0x720(%rsp), %rsi
callq 0x4c60
movq %rax, 0xe0(%rsp)
jmp 0x3a1e
movq 0xe0(%rsp), %rsi
leaq 0x490(%rsp), %rdi
callq 0x51f0
jmp 0x3a35
leaq 0x458(%rsp), %rdi
leaq 0x518(%rsp), %rsi
leaq 0x490(%rsp), %rdx
callq 0x52b0
jmp 0x3a54
leaq 0x2189d(%rip), %rdi     # 0x252f8
leaq 0x458(%rsp), %rsi
callq 0x5260
movb %dl, 0xd7(%rsp)
movq %rax, 0xd8(%rsp)
jmp 0x3a79
movb 0xd7(%rsp), %al
movq 0xd8(%rsp), %rcx
movq %rcx, 0x448(%rsp)
movb %al, 0x450(%rsp)
leaq 0x458(%rsp), %rdi
callq 0x5320
leaq 0x490(%rsp), %rdi
callq 0x5350
jmp 0x3bd4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x3b10
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x3b03
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x4b8(%rsp), %rdi
callq 0x23f8
leaq 0x4f8(%rsp), %rdi
callq 0x23f8
leaq 0x4d8(%rsp), %rdi
callq 0x23f8
jmp 0x3c34
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x3c27
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x3b72
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x458(%rsp), %rdi
callq 0x5320
leaq 0x490(%rsp), %rdi
callq 0x5350
jmp 0x3c27
leaq 0x690(%rsp), %rdi
callq 0x53b0
addq $0x20, %rax
movq %rax, 0xc0(%rsp)
leaq 0x6abb4(%rip), %rdi     # 0x6e758
leaq 0x720(%rsp), %rsi
callq 0x4c60
movq %rax, 0xc8(%rsp)
jmp 0x3bbb
movq 0xc8(%rsp), %rsi
movq 0xc0(%rsp), %rdi
callq 0x51f0
jmp 0x3bd2
jmp 0x3bd4
leaq 0x518(%rsp), %rdi
callq 0x23f8
leaq 0x608(%rsp), %rdi
callq 0x23f8
leaq 0x6f8(%rsp), %rdi
callq 0x23f8
leaq 0x720(%rsp), %rdi
callq 0x23f8
leaq 0x748(%rsp), %rdi
callq 0x23f8
leaq 0x770(%rsp), %rdi
callq 0x23f8
jmp 0x300c
leaq 0x518(%rsp), %rdi
callq 0x23f8
leaq 0x608(%rsp), %rdi
callq 0x23f8
leaq 0x6f8(%rsp), %rdi
callq 0x23f8
leaq 0x720(%rsp), %rdi
callq 0x23f8
leaq 0x748(%rsp), %rdi
callq 0x23f8
leaq 0x770(%rsp), %rdi
callq 0x23f8
jmp 0x4765
leaq 0x16409(%rip), %rsi     # 0x1a08a
leaq 0x216a0(%rip), %rdx     # 0x25328
leaq 0x400(%rsp), %rdi
movq %rdi, 0xb8(%rsp)
callq 0x4b30
movq 0xb8(%rsp), %rsi
leaq 0x1641b(%rip), %rdx     # 0x1a0c7
leaq 0x420(%rsp), %rdi
callq 0x4ae0
jmp 0x3cbb
leaq 0x420(%rsp), %rdi
callq 0x20e0
movq %rax, %rdi
leaq 0x163cb(%rip), %rsi     # 0x1a09d
callq 0x2270
movq %rax, 0xb0(%rsp)
jmp 0x3ce1
leaq 0x420(%rsp), %rdi
callq 0x23f8
leaq 0x400(%rsp), %rdi
callq 0x23f8
movq 0xb0(%rsp), %rax
movq %rax, 0x440(%rsp)
movq 0x440(%rsp), %rdi
leaq 0x163a8(%rip), %rsi     # 0x1a0c2
leaq 0x2164f(%rip), %rdx     # 0x25370
movb $0x0, %al
callq 0x23a0
cmpl $0x1, %eax
jne 0x42c8
leaq 0x3df(%rsp), %rdi
movq %rdi, 0xa8(%rsp)
callq 0x2380
movq 0xa8(%rsp), %rdx
leaq 0x2161b(%rip), %rsi     # 0x25370
leaq 0x3e0(%rsp), %rdi
callq 0x22c0
jmp 0x3d64
leaq 0x3df(%rsp), %rdi
callq 0x2250
movq 0x440(%rsp), %rdi
leaq 0x16342(%rip), %rsi     # 0x1a0c2
leaq 0x215e9(%rip), %rdx     # 0x25370
xorl %eax, %eax
callq 0x23a0
jmp 0x3d90
leaq 0x3b7(%rsp), %rdi
movq %rdi, 0xa0(%rsp)
callq 0x2380
movq 0xa0(%rsp), %rdx
leaq 0x215bc(%rip), %rsi     # 0x25370
leaq 0x3b8(%rsp), %rdi
callq 0x22c0
jmp 0x3dc3
leaq 0x3b7(%rsp), %rdi
callq 0x2250
leaq 0x6a9b1(%rip), %rdi     # 0x6e788
leaq 0x3e0(%rsp), %rsi
callq 0x53d0
movq %rax, 0x98(%rsp)
jmp 0x3dee
movq 0x98(%rsp), %rax
cmpq $0x0, %rax
jne 0x3f1e
movq 0x211d1(%rip), %rdi     # 0x24fd8
leaq 0x162c8(%rip), %rsi     # 0x1a0d6
callq 0x21f0
movq %rax, 0x90(%rsp)
jmp 0x3e1d
movq 0x90(%rsp), %rdi
leaq 0x3e0(%rsp), %rsi
callq 0x21b0
movq %rax, 0x88(%rsp)
jmp 0x3e3c
movq 0x88(%rsp), %rdi
movq 0x21175(%rip), %rsi     # 0x24fc0
callq 0x2240
jmp 0x3e52
jmp 0x3f1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x3e8e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x420(%rsp), %rdi
callq 0x23f8
leaq 0x400(%rsp), %rdi
callq 0x23f8
jmp 0x4765
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x3df(%rsp), %rdi
callq 0x2250
jmp 0x4765
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x42b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x3b7(%rsp), %rdi
callq 0x2250
jmp 0x42b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x42a9
leaq 0x6a863(%rip), %rdi     # 0x6e788
leaq 0x3b8(%rsp), %rsi
callq 0x53d0
movq %rax, 0x80(%rsp)
jmp 0x3f3c
movq 0x80(%rsp), %rax
cmpq $0x0, %rax
jne 0x3f92
movq 0x21087(%rip), %rdi     # 0x24fd8
leaq 0x1617e(%rip), %rsi     # 0x1a0d6
callq 0x21f0
movq %rax, 0x78(%rsp)
jmp 0x3f64
movq 0x78(%rsp), %rdi
leaq 0x3b8(%rsp), %rsi
callq 0x21b0
movq %rax, 0x70(%rsp)
jmp 0x3f7d
movq 0x70(%rsp), %rdi
movq 0x21037(%rip), %rsi     # 0x24fc0
callq 0x2240
jmp 0x3f90
jmp 0x3f92
leaq 0x6a7ef(%rip), %rdi     # 0x6e788
leaq 0x3e0(%rsp), %rsi
callq 0x4c60
movq %rax, 0x68(%rsp)
jmp 0x3fad
movq 0x68(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x3b0(%rsp)
leaq 0x6a7c6(%rip), %rdi     # 0x6e788
leaq 0x3b8(%rsp), %rsi
callq 0x4c60
movq %rax, 0x60(%rsp)
jmp 0x3fd6
movq 0x60(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x3ac(%rsp)
movq 0x440(%rsp), %rdi
leaq 0x160bf(%rip), %rsi     # 0x1a0b2
xorl %eax, %eax
leaq 0x3a8(%rsp), %rdx
callq 0x23a0
jmp 0x4004
movq 0x440(%rsp), %rdi
leaq 0x1609f(%rip), %rsi     # 0x1a0b2
xorl %eax, %eax
leaq 0x854(%rsp), %rdx
callq 0x23a0
jmp 0x4024
leaq 0x390(%rsp), %rdi
callq 0x5430
leaq 0x390(%rsp), %rdi
callq 0x5440
movl $0x0, 0x38c(%rsp)
movl 0x38c(%rsp), %eax
cmpl 0x854(%rsp), %eax
jge 0x41d2
leaq 0x368(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0x51e0
movq 0x58(%rsp), %rdi
callq 0x5460
movq 0x440(%rsp), %rdi
leaq 0x1602a(%rip), %rsi     # 0x1a0b2
xorl %eax, %eax
leaq 0x388(%rsp), %rdx
callq 0x23a0
jmp 0x4099
movl $0x0, 0x364(%rsp)
movl 0x364(%rsp), %eax
cmpl 0x388(%rsp), %eax
jge 0x4119
movq 0x440(%rsp), %rdi
leaq 0x15fef(%rip), %rsi     # 0x1a0b2
xorl %eax, %eax
leaq 0x384(%rsp), %rdx
callq 0x23a0
jmp 0x40d4
leaq 0x368(%rsp), %rdi
leaq 0x384(%rsp), %rsi
callq 0x51f0
jmp 0x40eb
jmp 0x40ed
movl 0x364(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x364(%rsp)
jmp 0x40a4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x41c0
movq 0x440(%rsp), %rdi
leaq 0x15fe9(%rip), %rsi     # 0x1a111
xorl %eax, %eax
leaq 0x358(%rsp), %rdx
callq 0x23a0
jmp 0x4139
leaq 0x338(%rsp), %rdi
leaq 0x368(%rsp), %rsi
leaq 0x358(%rsp), %rdx
callq 0x54b0
jmp 0x4158
leaq 0x390(%rsp), %rdi
leaq 0x338(%rsp), %rsi
callq 0x5480
jmp 0x416f
leaq 0x338(%rsp), %rdi
callq 0x54f0
leaq 0x368(%rsp), %rdi
callq 0x5350
movl 0x38c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x38c(%rsp)
jmp 0x4049
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x338(%rsp), %rdi
callq 0x54f0
leaq 0x368(%rsp), %rdi
callq 0x5350
jmp 0x429c
movl 0x3b0(%rsp), %eax
movl %eax, 0x4c(%rsp)
movl 0x3ac(%rsp), %eax
movl %eax, 0x50(%rsp)
movl 0x3a8(%rsp), %eax
movl %eax, 0x54(%rsp)
leaq 0x320(%rsp), %rdi
leaq 0x390(%rsp), %rsi
callq 0x55c0
jmp 0x420a
movl 0x54(%rsp), %ecx
movl 0x50(%rsp), %edx
movl 0x4c(%rsp), %esi
leaq 0x6a613(%rip), %rdi     # 0x6e830
leaq 0x320(%rsp), %r8
callq 0x5500
jmp 0x422c
leaq 0x320(%rsp), %rdi
callq 0x56c0
leaq 0x390(%rsp), %rdi
callq 0x56c0
leaq 0x3b8(%rsp), %rdi
callq 0x23f8
leaq 0x3e0(%rsp), %rdi
callq 0x23f8
jmp 0x3d0b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x429c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x320(%rsp), %rdi
callq 0x56c0
leaq 0x390(%rsp), %rdi
callq 0x56c0
leaq 0x3b8(%rsp), %rdi
callq 0x23f8
leaq 0x3e0(%rsp), %rdi
callq 0x23f8
jmp 0x4765
movl 0x6a482(%rip), %eax     # 0x6e750
addl %eax, %eax
movl %eax, 0x6a47a(%rip)     # 0x6e750
movq 0x20cfb(%rip), %rdi     # 0x24fd8
movq %rdi, 0x30(%rsp)
leaq 0x15dfa(%rip), %rsi     # 0x1a0e3
callq 0x21f0
movq %rax, %rdi
movl 0x6a459(%rip), %esi     # 0x6e750
callq 0x2360
movq %rax, %rdi
movq 0x20cba(%rip), %rsi     # 0x24fc0
movq %rsi, 0x38(%rsp)
callq 0x2240
movq 0x30(%rsp), %rdi
leaq 0x15dd5(%rip), %rsi     # 0x1a0f1
callq 0x21f0
movq %rax, %rdi
movl 0x6a42a(%rip), %esi     # 0x6e754
callq 0x2360
movq 0x38(%rsp), %rsi
movq %rax, %rdi
callq 0x2240
leaq 0x15d47(%rip), %rsi     # 0x1a08a
leaq 0x20fde(%rip), %rdx     # 0x25328
leaq 0x2d8(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0x4b30
movq 0x40(%rsp), %rsi
leaq 0x15d95(%rip), %rdx     # 0x1a0fd
leaq 0x2f8(%rsp), %rdi
callq 0x4ae0
jmp 0x4377
leaq 0x2f8(%rsp), %rdi
callq 0x20e0
movq %rax, %rdi
leaq 0x15d0f(%rip), %rsi     # 0x1a09d
callq 0x2270
movq %rax, 0x28(%rsp)
jmp 0x439a
leaq 0x2f8(%rsp), %rdi
callq 0x23f8
leaq 0x2d8(%rsp), %rdi
callq 0x23f8
movq 0x28(%rsp), %rax
movq %rax, 0x318(%rsp)
movq 0x318(%rsp), %rdi
leaq 0x15ce2(%rip), %rsi     # 0x1a0b2
leaq 0x854(%rsp), %rdx
movb $0x0, %al
callq 0x23a0
cmpl $0x1, %eax
jne 0x4743
leaq 0x2b7(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x2380
movq 0x20(%rsp), %rdx
leaq 0x15d94(%rip), %rsi     # 0x1a19a
leaq 0x2b8(%rsp), %rdi
callq 0x22c0
jmp 0x4415
leaq 0x2b7(%rsp), %rdi
callq 0x2250
movl $0x0, 0x2b0(%rsp)
movl 0x2b0(%rsp), %eax
cmpl 0x854(%rsp), %eax
jge 0x461d
movq 0x318(%rsp), %rdi
leaq 0x15c72(%rip), %rsi     # 0x1a0c2
leaq 0x20f19(%rip), %rdx     # 0x25370
xorl %eax, %eax
callq 0x23a0
jmp 0x4460
leaq 0x24f(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x2380
movq 0x18(%rsp), %rdx
leaq 0x20ef2(%rip), %rsi     # 0x25370
leaq 0x250(%rsp), %rdi
callq 0x22c0
jmp 0x448d
leaq 0x270(%rsp), %rdi
leaq 0x2b8(%rsp), %rsi
leaq 0x250(%rsp), %rdx
callq 0x5720
jmp 0x44ac
leaq 0x15c5a(%rip), %rdx     # 0x1a10d
leaq 0x290(%rsp), %rdi
leaq 0x270(%rsp), %rsi
callq 0x4ae0
jmp 0x44ca
leaq 0x2b8(%rsp), %rdi
leaq 0x290(%rsp), %rsi
callq 0x2280
leaq 0x290(%rsp), %rdi
callq 0x23f8
leaq 0x270(%rsp), %rdi
callq 0x23f8
leaq 0x250(%rsp), %rdi
callq 0x23f8
leaq 0x24f(%rsp), %rdi
callq 0x2250
movl 0x2b0(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x2b0(%rsp)
jmp 0x442d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x4560
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x2f8(%rsp), %rdi
callq 0x23f8
leaq 0x2d8(%rsp), %rdi
callq 0x23f8
jmp 0x4765
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x2b7(%rsp), %rdi
callq 0x2250
jmp 0x4765
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x4734
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x460b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
jmp 0x45fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x270(%rsp), %rdi
callq 0x23f8
leaq 0x250(%rsp), %rdi
callq 0x23f8
leaq 0x24f(%rsp), %rdi
callq 0x2250
jmp 0x4734
movq 0x318(%rsp), %rdi
leaq 0x15a86(%rip), %rsi     # 0x1a0b2
xorl %eax, %eax
leaq 0x854(%rsp), %rdx
callq 0x23a0
jmp 0x463d
movl $0x0, 0x248(%rsp)
movl 0x248(%rsp), %eax
cmpl 0x854(%rsp), %eax
jge 0x4722
movq 0x318(%rsp), %rdi
leaq 0x15aa4(%rip), %rsi     # 0x1a10f
xorl %eax, %eax
leaq 0x244(%rsp), %rdx
leaq 0x238(%rsp), %rcx
callq 0x23a0
jmp 0x4684
movsd 0x238(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
leaq 0x210(%rsp), %rdi
leaq 0x2b8(%rsp), %rsi
leaq 0x244(%rsp), %rdx
callq 0x5860
jmp 0x46b2
leaq 0x20baf(%rip), %rdi     # 0x25268
leaq 0x210(%rsp), %rsi
callq 0x5770
movq %rax, 0x8(%rsp)
jmp 0x46cd
movq 0x8(%rsp), %rax
movsd 0x10(%rsp), %xmm0
movsd %xmm0, (%rax)
leaq 0x210(%rsp), %rdi
callq 0x58a0
movl 0x248(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x248(%rsp)
jmp 0x4648
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x8a8(%rsp)
movl %eax, 0x8a4(%rsp)
leaq 0x210(%rsp), %rdi
callq 0x58a0
jmp 0x4734
leaq 0x2b8(%rsp), %rdi
callq 0x23f8
jmp 0x43c1
leaq 0x2b8(%rsp), %rdi
callq 0x23f8
jmp 0x4765
movq 0x318(%rsp), %rdi
callq 0x2200
movq 0x440(%rsp), %rdi
callq 0x2200
addq $0x8f8, %rsp            # imm = 0x8F8
retq
movq 0x8a8(%rsp), %rdi
callq 0x2370
nopw %cs:(%rax,%rax)