// File: /workspace/github_cpp_makefile_star2_O2/IdelCoder[P]PTransE-ag/Test_TransE_path.cpp
// Function: prepare()
void prepare()
{
	ifstream ip("../../data/degree/estat.csv");
    if(!ip.is_open()) cout << "ERROR: estat not exists" << endl;
    string eName, eId, eDeg;
    while(ip.good()) {
        getline(ip, eName, ',');
        if(eName == "") break;
        getline(ip, eId, ',');
        getline(ip, eDeg, '\n');
        entity_degree[atoi(eId.c_str())] = atoi(eDeg.c_str());
    }

    FILE* f1 = fopen("../../data/entity2id.txt","r");
	FILE* f2 = fopen("../../data/relation2id.txt","r");
	int x;
	while (fscanf(f1,"%s%d",buf,&x)==2)
	{
		string st=buf;
		entity2id[st]=x;
		id2entity[x]=st;
		entity_num++;
	}
	while (fscanf(f2,"%s%d",buf,&x)==2)
	{
		string st=buf;
		relation2id[st]=x;
		id2relation[x]=st;
		relation_num++;
	}
    FILE* f_kb = fopen("../../data/path2/test_pra.txt","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;
		fscanf(f_kb,"%d",&rel);
		fscanf(f_kb,"%d",&x);
		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();
			fscanf(f_kb,"%d",&y);
			for (int j=0; j<y; j++)
			{
				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;
		b.clear();
        test.add(e1,e2,rel,b);
    }
    fclose(f_kb);
	cout<<415<<endl;
    FILE* f_path = fopen("../../data/path2/path2.txt","r");
	while (fscanf(f_path,"%s",buf)==1)
    {
        string s1=buf;
        fscanf(f_path,"%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];
		fscanf(f_path,"%d",&x);
		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();
			fscanf(f_path,"%d",&y);
			for (int j=0; j<y; j++)
			{
				fscanf(f_path,"%d",&z);
				rel_path.push_back(z);
			}
			double pr;
			fscanf(f_path,"%lf",&pr);
			b.push_back(make_pair(rel_path,pr));
		}
		//cout<<e1<<' '<<e2<<' '<<rel<<' '<<b.size()<<endl;
		//b.clear();
        test.add(e1,e2,-1,b);
    }
	cout<<454<<endl;
	fclose(f_path);
    FILE* f_kb1 = fopen("../../data/train.txt","r");
	while (fscanf(f_kb1,"%s",buf)==1)
    {
        string s1=buf;
        fscanf(f_kb1,"%s",buf);
        string s2=buf;
        fscanf(f_kb1,"%s",buf);
        string s3=buf;
        if (entity2id.count(s1)==0)
        {
            cout<<"miss entity:"<<s1<<endl;
        }
        if (entity2id.count(s2)==0)
        {
            cout<<"miss entity:"<<s2<<endl;
        }
        if (relation2id.count(s3)==0)
        {
            relation2id[s3] = relation_num;
            relation_num++;
        }
        entity2num[relation2id[s3]][entity2id[s1]]+=1;
        entity2num[relation2id[s3]][entity2id[s2]]+=1;
        e2num[entity2id[s1]]+=1;
        e2num[entity2id[s2]]+=1;
        test.add(entity2id[s1],entity2id[s2],relation2id[s3],false);
    }
    fclose(f_kb1);
    FILE* f_kb2 = fopen("../../data/valid.txt","r");
	while (fscanf(f_kb2,"%s",buf)==1)
    {
        string s1=buf;
        fscanf(f_kb2,"%s",buf);
        string s2=buf;
        fscanf(f_kb2,"%s",buf);
        string s3=buf;
        if (entity2id.count(s1)==0)
        {
            cout<<"miss entity:"<<s1<<endl;
        }
        if (entity2id.count(s2)==0)
        {
            cout<<"miss entity:"<<s2<<endl;
        }
        if (relation2id.count(s3)==0)
        {
            relation2id[s3] = relation_num;
            relation_num++;
        }
        test.add(entity2id[s1],entity2id[s2],relation2id[s3],false);
    }
    fclose(f_kb2);
	FILE* f_confidence = fopen("../../data/path2/confidence.txt","r");
	while (fscanf(f_confidence,"%d",&x)==1)
	{
		string s = "";
		for (int i=0; i<x; i++)
		{
			fscanf(f_confidence,"%s",buf);
			s = s + string(buf)+" ";
		}
		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;
			path_confidence[make_pair(s,y)] = pr;
		}
	}
	fclose(f_confidence);
    FILE* f7 = fopen("../../data/n2n.txt","r");
    {
        double x,y;
        while (fscanf(f7,"%lf%lf",&x,&y)==2)
        {
            //cout<<x<<' '<<y<<endl;
            if (x<1.5)
            {
                if (y<1.5)
                    rel_type.push_back(0);
                else
                    rel_type.push_back(1);

            }
            else
                if (y<1.5)
                    rel_type.push_back(2);
                else
                    rel_type.push_back(3);
        }
    }
    fclose(f7);
	
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x378, %rsp            # imm = 0x378
leaq 0x7750(%rip), %rsi      # 0xa0b3
leaq 0x170(%rsp), %rdi
pushq $0x8
popq %rdx
callq 0x2300
leaq 0x1e8(%rsp), %rdi
callq 0x2060
testb %al, %al
jne 0x299f
movq 0xd64d(%rip), %rdi      # 0xffd8
leaq 0x773d(%rip), %rsi      # 0xa0cf
callq 0x2190
movq %rax, %rdi
callq 0x20f0
leaq 0x148(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
xorl %ecx, %ecx
leaq 0x110(%rsp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
leaq 0xf0(%rsp), %rsi
movq %rsi, -0x10(%rsi)
andq $0x0, -0x8(%rsi)
movb %cl, (%rax)
movb %cl, (%rdx)
movb %cl, (%rsi)
leaq 0x170(%rsp), %rbx
leaq 0x138(%rsp), %r14
pushq $0x2c
popq %rbp
leaq 0xda34(%rip), %r13      # 0x10428
leaq 0x38(%rsp), %r12
movq 0x170(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x190(%rsp,%rax)
jne 0x2a88
movq %rbx, %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x2320
movq %r14, %rdi
leaq 0x7672(%rip), %rsi      # 0xa098
callq 0x3ae6
testb %al, %al
jne 0x2a88
movq %rbx, %rdi
leaq 0x100(%rsp), %rsi
movl %ebp, %edx
callq 0x2320
movq %rbx, %rdi
leaq 0xe0(%rsp), %rsi
pushq $0xa
popq %rdx
callq 0x2320
movq 0xe0(%rsp), %rdi
callq 0x2260
movl %eax, %r15d
movq 0x100(%rsp), %rdi
callq 0x2260
movl %eax, 0x38(%rsp)
movq %r13, %rdi
movq %r12, %rsi
callq 0x3af4
movl %r15d, (%rax)
jmp 0x29f9
leaq 0x7658(%rip), %rdi      # 0xa0e7
leaq 0x766a(%rip), %rbx      # 0xa100
movq %rbx, %rsi
callq 0x21e0
movq %rax, %r14
leaq 0x765a(%rip), %rdi      # 0xa102
movq %rbx, %rsi
callq 0x21e0
movq %rax, %rbx
leaq 0xd9a6(%rip), %r12      # 0x10460
leaq 0xc(%rsp), %r13
leaq 0x38(%rsp), %rbp
movq %r14, %rdi
leaq 0x764f(%rip), %rsi      # 0xa11d
movq %r12, %rdx
movq %r13, %rcx
xorl %eax, %eax
callq 0x2310
cmpl $0x2, %eax
jne 0x2b31
movq %rbp, %rdi
movq %r12, %rsi
leaq 0x10(%rsp), %rdx
callq 0x20c0
movl 0xc(%rsp), %r15d
leaq 0xd7c4(%rip), %rdi      # 0x102c0
movq %rbp, %rsi
callq 0x3b42
movl %r15d, (%rax)
leaq 0xd7e2(%rip), %rdi      # 0x102f0
movq %r13, %rsi
callq 0x3ba8
movq %rax, %rdi
movq %rbp, %rsi
callq 0x2110
incl 0xd935(%rip)            # 0x1045c
movq %rbp, %rdi
callq 0x2368
jmp 0x2ac4
leaq 0xd928(%rip), %r15      # 0x10460
leaq 0xc(%rsp), %r12
leaq 0x38(%rsp), %r13
leaq 0xd7d7(%rip), %rbp      # 0x10320
movq %rbx, %rdi
leaq 0x75ca(%rip), %rsi      # 0xa11d
movq %r15, %rdx
movq %r12, %rcx
xorl %eax, %eax
callq 0x2310
cmpl $0x2, %eax
jne 0x2bb2
movq %r13, %rdi
movq %r15, %rsi
leaq 0x10(%rsp), %rdx
callq 0x20c0
movl 0xc(%rsp), %r14d
leaq 0xd70f(%rip), %rdi      # 0x10290
movq %r13, %rsi
callq 0x3b42
movl %r14d, (%rax)
movq %rbp, %rdi
movq %r12, %rsi
callq 0x3ba8
movq %rax, %rdi
movq %r13, %rsi
callq 0x2110
incl 0xd8b0(%rip)            # 0x10458
movq %r13, %rdi
callq 0x2368
jmp 0x2b49
leaq 0x7569(%rip), %rdi      # 0xa122
leaq 0x7540(%rip), %rsi      # 0xa100
callq 0x21e0
movq %rax, %rbx
leaq 0xd891(%rip), %rdx      # 0x10460
leaq 0xd6ea(%rip), %rbp      # 0x102c0
leaq 0x7542(%rip), %r15      # 0xa11f
leaq 0xdc(%rsp), %r13
leaq 0xc0(%rsp), %r12
movq %rbx, %rdi
leaq 0x7549(%rip), %rsi      # 0xa140
xorl %eax, %eax
callq 0x2310
cmpl $0x1, %eax
jne 0x2e62
leaq 0x38(%rsp), %rdi
leaq 0xd84d(%rip), %r14      # 0x10460
movq %r14, %rsi
leaq 0x10(%rsp), %rdx
callq 0x20c0
movq %rbx, %rdi
leaq 0x7516(%rip), %rsi      # 0xa140
movq %r14, %rdx
xorl %eax, %eax
callq 0x2310
leaq 0x10(%rsp), %rdi
movq %r14, %rsi
leaq 0x98(%rsp), %rdx
callq 0x20c0
movq %rbp, %rdi
leaq 0x38(%rsp), %rsi
callq 0x3bf6
testq %rax, %rax
jne 0x2c83
movq 0xd376(%rip), %rdi      # 0xffd8
leaq 0x74da(%rip), %rsi      # 0xa143
callq 0x2190
movq %rax, %rdi
leaq 0x38(%rsp), %rsi
callq 0x2170
movq %rax, %rdi
callq 0x20f0
movq %rbp, %rdi
leaq 0x10(%rsp), %rsi
callq 0x3bf6
testq %rax, %rax
jne 0x2cbd
movq 0xd33c(%rip), %rdi      # 0xffd8
leaq 0x74a0(%rip), %rsi      # 0xa143
callq 0x2190
movq %rax, %rdi
leaq 0x10(%rsp), %rsi
callq 0x2170
movq %rax, %rdi
callq 0x20f0
movq %rbp, %rdi
leaq 0x38(%rsp), %rsi
callq 0x3b42
movl (%rax), %r14d
movq %rbp, %rdi
leaq 0x10(%rsp), %rsi
callq 0x3b42
movl %r14d, 0x60(%rsp)
movl (%rax), %eax
movl %eax, 0x30(%rsp)
movq %rbx, %rdi
movq %r15, %rsi
leaq 0x34(%rsp), %rdx
xorl %eax, %eax
callq 0x2310
movq %rbx, %rdi
movq %r15, %rsi
leaq 0xc(%rsp), %rdx
xorl %eax, %eax
callq 0x2310
xorpd %xmm0, %xmm0
movapd %xmm0, 0x70(%rsp)
andq $0x0, 0x80(%rsp)
leaq 0x70(%rsp), %rdi
callq 0x3c10
xorl %r14d, %r14d
cmpl 0xc(%rsp), %r14d
jge 0x2ded
xorpd %xmm0, %xmm0
movapd %xmm0, 0xc0(%rsp)
andq $0x0, 0xd0(%rsp)
movq %rbx, %rdi
movq %r15, %rsi
leaq 0x6c(%rsp), %rdx
xorl %eax, %eax
callq 0x2310
xorl %ebp, %ebp
cmpl 0x6c(%rsp), %ebp
jge 0x2d83
movq %rbx, %rdi
movq %r15, %rsi
movq %r13, %rdx
xorl %eax, %eax
callq 0x2310
movq %r12, %rdi
movq %r13, %rsi
callq 0x3c18
incl %ebp
jmp 0x2d5e
movq %rbx, %rdi
leaq 0x742c(%rip), %rsi      # 0xa1b9
leaq 0xb8(%rsp), %rdx
xorl %eax, %eax
callq 0x2310
leaq 0x98(%rsp), %rbp
movq %rbp, %rdi
movq %r12, %rsi
callq 0x5ef8
movsd 0xb8(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
leaq 0x70(%rsp), %rdi
movq %rbp, %rsi
callq 0x9a50
movq %rbp, %rdi
callq 0x5f46
movq %r12, %rdi
callq 0x5f46
incl %r14d
leaq 0xd4d8(%rip), %rbp      # 0x102c0
jmp 0x2d29
leaq 0x70(%rsp), %rdi
callq 0x3c10
movl 0x34(%rsp), %r14d
leaq 0x120(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x3d0e
leaq 0x3e38b(%rip), %rdi     # 0x411a0
movl 0x60(%rsp), %esi
movl 0x30(%rsp), %edx
movl %r14d, %ecx
leaq 0x120(%rsp), %r14
movq %r14, %r8
callq 0x3c36
movq %r14, %rdi
callq 0x3d62
leaq 0x70(%rsp), %rdi
callq 0x3d62
leaq 0x10(%rsp), %rdi
callq 0x2368
leaq 0x38(%rsp), %rdi
callq 0x2368
leaq 0xd603(%rip), %rdx      # 0x10460
jmp 0x2bed
movq %rbx, %rdi
callq 0x21a0
movq 0xd167(%rip), %rdi      # 0xffd8
movl $0x19f, %esi            # imm = 0x19F
callq 0x22d0
movq %rax, %rdi
callq 0x20f0
leaq 0x72c6(%rip), %rdi      # 0xa150
leaq 0x726f(%rip), %rsi      # 0xa100
callq 0x21e0
movq %rax, %rbx
leaq 0x72a0(%rip), %r14      # 0xa140
leaq 0x7278(%rip), %r15      # 0xa11f
leaq 0x6c(%rsp), %r13
leaq 0xc0(%rsp), %r12
movq %rbx, %rdi
movq %r14, %rsi
leaq 0xd59f(%rip), %rdx      # 0x10460
xorl %eax, %eax
callq 0x2310
cmpl $0x1, %eax
jne 0x3108
leaq 0x38(%rsp), %rdi
leaq 0xd583(%rip), %rbp      # 0x10460
movq %rbp, %rsi
leaq 0x10(%rsp), %rdx
callq 0x20c0
movq %rbx, %rdi
movq %r14, %rsi
movq %rbp, %rdx
xorl %eax, %eax
callq 0x2310
leaq 0x10(%rsp), %rdi
movq %rbp, %rsi
leaq 0x98(%rsp), %rdx
callq 0x20c0
leaq 0xd3aa(%rip), %rdi      # 0x102c0
leaq 0x38(%rsp), %rsi
callq 0x3bf6
testq %rax, %rax
jne 0x2f4d
movq 0xd0ac(%rip), %rdi      # 0xffd8
leaq 0x7210(%rip), %rsi      # 0xa143
callq 0x2190
movq %rax, %rdi
leaq 0x38(%rsp), %rsi
callq 0x2170
movq %rax, %rdi
callq 0x20f0
leaq 0xd36c(%rip), %rdi      # 0x102c0
leaq 0x10(%rsp), %rsi
callq 0x3bf6
testq %rax, %rax
jne 0x2f8b
movq 0xd06e(%rip), %rdi      # 0xffd8
leaq 0x71d2(%rip), %rsi      # 0xa143
callq 0x2190
movq %rax, %rdi
leaq 0x10(%rsp), %rsi
callq 0x2170
movq %rax, %rdi
callq 0x20f0
leaq 0xd32e(%rip), %r14      # 0x102c0
movq %r14, %rdi
leaq 0x38(%rsp), %rsi
callq 0x3b42
movl (%rax), %eax
movl %eax, 0x60(%rsp)
movq %r14, %rdi
leaq 0x10(%rsp), %rsi
callq 0x3b42
movl (%rax), %eax
movl %eax, 0x30(%rsp)
movq %rbx, %rdi
movq %r15, %rsi
leaq 0xc(%rsp), %rdx
xorl %eax, %eax
callq 0x2310
xorpd %xmm0, %xmm0
movapd %xmm0, 0x70(%rsp)
andq $0x0, 0x80(%rsp)
leaq 0x70(%rsp), %rdi
callq 0x3c10
xorl %r14d, %r14d
cmpl 0xc(%rsp), %r14d
jge 0x30a7
xorpd %xmm0, %xmm0
movapd %xmm0, 0xc0(%rsp)
andq $0x0, 0xd0(%rsp)
movq %rbx, %rdi
movq %r15, %rsi
leaq 0x34(%rsp), %rdx
xorl %eax, %eax
callq 0x2310
xorl %ebp, %ebp
cmpl 0x34(%rsp), %ebp
jge 0x3044
movq %rbx, %rdi
movq %r15, %rsi
movq %r13, %rdx
xorl %eax, %eax
callq 0x2310
movq %r12, %rdi
movq %r13, %rsi
callq 0x3c18
incl %ebp
jmp 0x301f
movq %rbx, %rdi
leaq 0x716b(%rip), %rsi      # 0xa1b9
leaq 0xb8(%rsp), %rdx
xorl %eax, %eax
callq 0x2310
leaq 0x98(%rsp), %rbp
movq %rbp, %rdi
movq %r12, %rsi
callq 0x5ef8
movsd 0xb8(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
leaq 0x70(%rsp), %rdi
movq %rbp, %rsi
callq 0x9a50
movq %rbp, %rdi
callq 0x5f46
movq %r12, %rdi
callq 0x5f46
incl %r14d
jmp 0x2fea
leaq 0x158(%rsp), %r14
movq %r14, %rdi
leaq 0x70(%rsp), %rsi
callq 0x3d0e
leaq 0x3e0dd(%rip), %rdi     # 0x411a0
movl 0x60(%rsp), %esi
movl 0x30(%rsp), %edx
pushq $-0x1
popq %rcx
movq %r14, %r8
callq 0x3c36
movq %r14, %rdi
leaq 0x7060(%rip), %r14      # 0xa140
callq 0x3d62
leaq 0x70(%rsp), %rdi
callq 0x3d62
leaq 0x10(%rsp), %rdi
callq 0x2368
leaq 0x38(%rsp), %rdi
callq 0x2368
jmp 0x2eb4
movq 0xcec9(%rip), %rdi      # 0xffd8
movl $0x1c6, %esi            # imm = 0x1C6
callq 0x22d0
movq %rax, %rdi
callq 0x20f0
movq %rbx, %rdi
callq 0x21a0
leaq 0x703b(%rip), %rdi      # 0xa16b
leaq 0x6fc9(%rip), %rsi      # 0xa100
callq 0x21e0
movq %rax, %r12
leaq 0xd31a(%rip), %r15      # 0x10460
leaq 0x98(%rsp), %rbp
leaq 0xd16b(%rip), %r14      # 0x102c0
movq %r12, %rdi
leaq 0x6fe1(%rip), %rsi      # 0xa140
movq %r15, %rdx
xorl %eax, %eax
callq 0x2310
cmpl $0x1, %eax
jne 0x338e
leaq 0x38(%rsp), %rdi
movq %r15, %rsi
leaq 0x10(%rsp), %rdx
callq 0x20c0
movq %r12, %rdi
leaq 0x6fb2(%rip), %rsi      # 0xa140
movq %r15, %rdx
xorl %eax, %eax
callq 0x2310
leaq 0x10(%rsp), %rdi
movq %r15, %rsi
movq %rbp, %rdx
callq 0x20c0
movq %r12, %rdi
leaq 0x6f8e(%rip), %rsi      # 0xa140
movq %r15, %rdx
xorl %eax, %eax
callq 0x2310
movq %rbp, %rdi
movq %r15, %r13
movq %r15, %rsi
leaq 0x70(%rsp), %rdx
callq 0x20c0
movq %r14, %rdi
leaq 0x38(%rsp), %rsi
callq 0x3bf6
testq %rax, %rax
jne 0x3209
movq 0xcdf0(%rip), %rdi      # 0xffd8
leaq 0x6f54(%rip), %rsi      # 0xa143
callq 0x2190
movq %rax, %rdi
leaq 0x38(%rsp), %rsi
callq 0x2170
movq %rax, %rdi
callq 0x20f0
movq %r14, %rdi
leaq 0x10(%rsp), %rsi
callq 0x3bf6
testq %rax, %rax
jne 0x3243
movq 0xcdb6(%rip), %rdi      # 0xffd8
leaq 0x6f1a(%rip), %rsi      # 0xa143
callq 0x2190
movq %rax, %rdi
leaq 0x10(%rsp), %rsi
callq 0x2170
movq %rax, %rdi
callq 0x20f0
leaq 0xd046(%rip), %rdi      # 0x10290
movq %rbp, %rsi
callq 0x3bf6
testq %rax, %rax
jne 0x3274
movl 0xd1fb(%rip), %ebx      # 0x10458
leaq 0xd02c(%rip), %rdi      # 0x10290
movq %rbp, %rsi
callq 0x3b42
movl %ebx, (%rax)
incl 0xd1e4(%rip)            # 0x10458
leaq 0xd015(%rip), %rdi      # 0x10290
movq %rbp, %rsi
callq 0x3b42
leaq 0xd0c6(%rip), %rdi      # 0x10350
movq %rax, %rsi
callq 0x3d84
movq %rax, %r15
movq %r14, %rdi
leaq 0x38(%rsp), %rsi
callq 0x3b42
movq %r15, %rdi
movq %rax, %rsi
callq 0x3dd2
incl (%rax)
leaq 0xcfda(%rip), %rdi      # 0x10290
movq %rbp, %rsi
callq 0x3b42
leaq 0xd08b(%rip), %rdi      # 0x10350
movq %rax, %rsi
callq 0x3d84
movq %rax, %r15
movq %r14, %rdi
leaq 0x10(%rsp), %rsi
callq 0x3b42
movq %r15, %rdi
movq %rax, %rsi
callq 0x3dd2
incl (%rax)
movq %r14, %rdi
leaq 0x38(%rsp), %rsi
callq 0x3b42
leaq 0xd082(%rip), %rdi      # 0x10380
movq %rax, %rsi
callq 0x3dd2
incl (%rax)
movq %r14, %rdi
leaq 0x10(%rsp), %rsi
callq 0x3b42
leaq 0xd064(%rip), %rdi      # 0x10380
movq %rax, %rsi
callq 0x3dd2
incl (%rax)
movq %r14, %rdi
leaq 0x38(%rsp), %rsi
callq 0x3b42
movl (%rax), %r15d
movq %r14, %rdi
leaq 0x10(%rsp), %rsi
callq 0x3b42
movl (%rax), %ebx
leaq 0xcf44(%rip), %rdi      # 0x10290
movq %rbp, %rsi
callq 0x3b42
movl (%rax), %ecx
leaq 0x3de43(%rip), %rdi     # 0x411a0
movl %r15d, %esi
movl %ebx, %edx
xorl %r8d, %r8d
callq 0x3e20
movq %rbp, %rdi
callq 0x2368
leaq 0x10(%rsp), %rdi
callq 0x2368
leaq 0x38(%rsp), %rdi
callq 0x2368
movq %r13, %r15
jmp 0x3155
movq %r12, %rdi
callq 0x21a0
leaq 0x6de3(%rip), %rdi      # 0xa180
leaq 0x6d5c(%rip), %rsi      # 0xa100
callq 0x21e0
movq %rax, %rbx
leaq 0x6d8d(%rip), %r13      # 0xa140
leaq 0xd0a6(%rip), %r15      # 0x10460
leaq 0x98(%rsp), %rbp
movq %rbx, %rdi
movq %r13, %rsi
movq %r15, %rdx
xorl %eax, %eax
callq 0x2310
cmpl $0x1, %eax
jne 0x354b
leaq 0x38(%rsp), %rdi
movq %r15, %rsi
leaq 0x10(%rsp), %rdx
callq 0x20c0
movq %rbx, %rdi
movq %r13, %rsi
movq %r15, %rdx
xorl %eax, %eax
callq 0x2310
leaq 0x10(%rsp), %rdi
movq %r15, %rsi
movq %rbp, %rdx
callq 0x20c0
movq %rbx, %rdi
movq %r13, %rsi
movq %r15, %rdx
xorl %eax, %eax
callq 0x2310
movq %rbp, %rdi
movq %r15, %rsi
leaq 0x70(%rsp), %rdx
callq 0x20c0
leaq 0xce8c(%rip), %rdi      # 0x102c0
leaq 0x38(%rsp), %rsi
callq 0x3bf6
testq %rax, %rax
jne 0x346b
movq 0xcb8e(%rip), %rdi      # 0xffd8
leaq 0x6cf2(%rip), %rsi      # 0xa143
callq 0x2190
movq %rax, %rdi
leaq 0x38(%rsp), %rsi
callq 0x2170
movq %rax, %rdi
callq 0x20f0
leaq 0xce4e(%rip), %rdi      # 0x102c0
leaq 0x10(%rsp), %rsi
callq 0x3bf6
testq %rax, %rax
jne 0x34a9
movq 0xcb50(%rip), %rdi      # 0xffd8
leaq 0x6cb4(%rip), %rsi      # 0xa143
callq 0x2190
movq %rax, %rdi
leaq 0x10(%rsp), %rsi
callq 0x2170
movq %rax, %rdi
callq 0x20f0
leaq 0xcde0(%rip), %rdi      # 0x10290
movq %rbp, %rsi
callq 0x3bf6
testq %rax, %rax
jne 0x34dc
movl 0xcf94(%rip), %r14d     # 0x10458
leaq 0xcdc5(%rip), %rdi      # 0x10290
movq %rbp, %rsi
callq 0x3b42
movl %r14d, (%rax)
incl 0xcf7c(%rip)            # 0x10458
leaq 0xcddd(%rip), %rdi      # 0x102c0
leaq 0x38(%rsp), %rsi
callq 0x3b42
movl (%rax), %r14d
leaq 0xcdc9(%rip), %rdi      # 0x102c0
leaq 0x10(%rsp), %rsi
callq 0x3b42
movl (%rax), %r12d
leaq 0xcd85(%rip), %rdi      # 0x10290
movq %rbp, %rsi
callq 0x3b42
movl (%rax), %ecx
leaq 0x3dc84(%rip), %rdi     # 0x411a0
movl %r14d, %esi
movl %r12d, %edx
xorl %r8d, %r8d
callq 0x3e20
movq %rbp, %rdi
callq 0x2368
leaq 0x10(%rsp), %rdi
callq 0x2368
leaq 0x38(%rsp), %rdi
callq 0x2368
jmp 0x33c2
movq %rbx, %rdi
callq 0x21a0
leaq 0x6c3b(%rip), %rdi      # 0xa195
leaq 0x6b9f(%rip), %rsi      # 0xa100
callq 0x21e0
movq %rax, %rbx
leaq 0x38(%rsp), %rbp
leaq 0x70(%rsp), %r15
leaq 0x98(%rsp), %r12
movq %rbx, %rdi
leaq 0x6b9a(%rip), %rsi      # 0xa11f
leaq 0xc(%rsp), %rdx
xorl %eax, %eax
callq 0x2310
cmpl $0x1, %eax
jne 0x36c5
leaq 0x10(%rsp), %rdi
leaq 0x6af2(%rip), %rsi      # 0xa098
movq %rbp, %rdx
callq 0x20c0
xorl %r14d, %r14d
cmpl 0xc(%rsp), %r14d
jge 0x3635
movq %rbx, %rdi
leaq 0x6b7e(%rip), %rsi      # 0xa140
leaq 0xce97(%rip), %r13      # 0x10460
movq %r13, %rdx
xorl %eax, %eax
callq 0x2310
movq %r15, %rdi
movq %r13, %rsi
leaq 0xc0(%rsp), %rdx
callq 0x20c0
movq %r12, %rdi
leaq 0x10(%rsp), %rsi
movq %r15, %rdx
callq 0x3ed5
movq %rbp, %rdi
movq %r12, %rsi
leaq 0x6bb2(%rip), %rdx      # 0xa1b5
callq 0x3eb6
leaq 0x10(%rsp), %rdi
movq %rbp, %rsi
callq 0x21f0
movq %rbp, %rdi
callq 0x2368
movq %r12, %rdi
callq 0x2368
movq %r15, %rdi
callq 0x2368
incl %r14d
jmp 0x35b1
movq %rbx, %rdi
leaq 0x6ae0(%rip), %rsi      # 0xa11f
leaq 0xc(%rsp), %rdx
xorl %eax, %eax
callq 0x2310
xorl %r14d, %r14d
cmpl 0xc(%rsp), %r14d
jge 0x36b6
movq %rbx, %rdi
leaq 0x6b58(%rip), %rsi      # 0xa1b7
movq %r15, %rdx
movq %r12, %rcx
xorl %eax, %eax
callq 0x2310
movsd 0x98(%rsp), %xmm0
movsd %xmm0, 0x60(%rsp)
movq %rbp, %rdi
leaq 0x10(%rsp), %rsi
callq 0x2220
movl 0x70(%rsp), %eax
movl %eax, 0x58(%rsp)
leaq 0xcb71(%rip), %rdi      # 0x10208
movq %rbp, %rsi
callq 0x3efa
movsd 0x60(%rsp), %xmm0
movsd %xmm0, (%rax)
movq %rbp, %rdi
callq 0x2368
incl %r14d
jmp 0x364e
leaq 0x10(%rsp), %rdi
callq 0x2368
jmp 0x357b
movq %rbx, %rdi
callq 0x21a0
leaq 0x6ae9(%rip), %rdi      # 0xa1bd
leaq 0x6a25(%rip), %rsi      # 0xa100
callq 0x21e0
movq %rax, %rbx
leaq 0x6ae6(%rip), %r14      # 0xa1d0
leaq 0x38(%rsp), %r15
leaq 0x10(%rsp), %r12
leaq 0xcb3d(%rip), %r13      # 0x10238
leaq 0x98(%rsp), %rbp
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %r12, %rcx
xorl %eax, %eax
callq 0x2310
cmpl $0x2, %eax
jne 0x37a4
movsd 0x6941(%rip), %xmm1     # 0xa068
ucomisd 0x38(%rsp), %xmm1
movsd 0x10(%rsp), %xmm0
jbe 0x3750
ucomisd %xmm0, %xmm1
jbe 0x376e
andl $0x0, 0x98(%rsp)
movq %r13, %rdi
movq %rbp, %rsi
callq 0x9e6e
jmp 0x3703
ucomisd %xmm0, %xmm1
jbe 0x3789
movl $0x2, 0x98(%rsp)
movq %r13, %rdi
movq %rbp, %rsi
callq 0x9e6e
jmp 0x3703
movl $0x1, 0x98(%rsp)
movq %r13, %rdi
movq %rbp, %rsi
callq 0x9e6e
jmp 0x3703
movl $0x3, 0x98(%rsp)
movq %r13, %rdi
movq %rbp, %rsi
callq 0x9e6e
jmp 0x3703
movq %rbx, %rdi
callq 0x21a0
leaq 0xe0(%rsp), %rdi
callq 0x2368
leaq 0x100(%rsp), %rdi
callq 0x2368
leaq 0x138(%rsp), %rdi
callq 0x2368
leaq 0x170(%rsp), %rdi
callq 0x2080
addq $0x378, %rsp            # imm = 0x378
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0x395b
jmp 0x3875
jmp 0x3875
jmp 0x3875
jmp 0x3875
jmp 0x3875
jmp 0x3875
jmp 0x3875
jmp 0x38da
jmp 0x3875
movq %rax, %rbx
leaq 0x158(%rsp), %rdi
jmp 0x384f
jmp 0x3859
jmp 0x388d
jmp 0x388d
jmp 0x3883
jmp 0x3883
jmp 0x3875
jmp 0x388d
jmp 0x388d
jmp 0x3883
jmp 0x3883
jmp 0x3875
jmp 0x388d
jmp 0x3875
jmp 0x3883
jmp 0x3883
jmp 0x3875
jmp 0x3875
jmp 0x3875
jmp 0x3875
jmp 0x3875
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0x3d62
jmp 0x3916
movq %rax, %rbx
jmp 0x3916
jmp 0x388d
jmp 0x3883
jmp 0x388d
jmp 0x3875
jmp 0x3883
jmp 0x3875
jmp 0x3875
jmp 0x3875
jmp 0x3875
jmp 0x3875
movq %rax, %rbx
jmp 0x3934
jmp 0x388d
jmp 0x388d
jmp 0x3883
movq %rax, %rbx
jmp 0x392a
jmp 0x388d
movq %rax, %rbx
jmp 0x3920
jmp 0x3897
movq %rax, %rbx
leaq 0x98(%rsp), %rdi
callq 0x2368
jmp 0x3920
jmp 0x38da
jmp 0x38da
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
jmp 0x38d1
movq %rax, %rbx
leaq 0x98(%rsp), %rdi
callq 0x2368
jmp 0x38cc
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x2368
jmp 0x38dd
jmp 0x38da
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
jmp 0x392f
jmp 0x3906
jmp 0x3906
jmp 0x38ec
jmp 0x3906
movq %rax, %rbx
leaq 0x98(%rsp), %rdi
callq 0x5f46
jmp 0x3909
jmp 0x3906
jmp 0x3906
jmp 0x3906
jmp 0x3906
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0x5f46
leaq 0x70(%rsp), %rdi
callq 0x3d62
leaq 0x10(%rsp), %rdi
callq 0x2368
leaq 0x38(%rsp), %rdi
callq 0x2368
leaq 0xe0(%rsp), %rdi
callq 0x2368
leaq 0x100(%rsp), %rdi
callq 0x2368
leaq 0x138(%rsp), %rdi
callq 0x2368
leaq 0x170(%rsp), %rdi
callq 0x2080
movq %rbx, %rdi
callq 0x22e0