// File: /workspace/github_cpp_makefile_star2_O3/DivyanshuSaxena[P]green-vrp/Main.cpp
// Function: fillGlobalVariables()
void fillGlobalVariables() {
	// Call certain file from here which will scan .csv(excel) file
	// and fill customerpool accordingly.

	//reading vehicle type below
	ifstream infile;
	infile.open("input_vehicle_type.csv");

		string temp;
		getline(infile,temp,'\n');

	    getline(infile,temp,',');//id
	    getline(infile,temp,',');//type
	    getline(infile,temp,',');//vol max
		capVolType1=stod(temp);
	    getline(infile,temp,',');//max weight
		capVolType1=stod(temp);	

	    getline(infile,temp,',');//driving cnt--unlimited

	    getline(infile,temp,',');//driving range--per full charge
		distanceType1=stod(temp);
		
	    getline(infile,temp,',');//charging time--sae for both
		chargeTime1=stod(temp)*60;
		
	    getline(infile,temp,',');//unit cost--per distance
		unitTransCost1=stod(temp);
		
	    getline(infile,temp,'\n');//fixed cost
		fixedCost1=stod(temp);
		

	    getline(infile,temp,',');
	    getline(infile,temp,',');
	    getline(infile,temp,',');
		capVolType2=stod(temp);
	    getline(infile,temp,',');
		capVolType2=stod(temp);	

	    getline(infile,temp,',');

	    getline(infile,temp,',');
		distanceType2=stod(temp);
		
	    getline(infile,temp,',');
		chargeTime2=stod(temp)*60;
		
	    getline(infile,temp,',');
		unitTransCost2=stod(temp);
		
	    getline(infile,temp,'\n');
		fixedCost2=stod(temp);
		//readingn vehicle info end
		//input of distance_time begins

		std::string file_path= "input_distance-time.txt";
		// std::cout<<"hi"<<std::endl;
		std::ifstream fin(file_path.c_str());
		// std::cout<<"hi"<<std::endl;
		
		getline(fin, temp);//ignoring the first line with heading
		for(long i=0;i<=1211099;i++)
		{
			long fromNode,toNode;
			getline(fin,temp,',');
			fromNode=stoi(temp);
			getline(fin,temp,',');
			toNode=stoi(temp);
			getline(fin,temp,',');

			travelDistance[fromNode][toNode]=stod(temp);
			getline(fin,temp,',');
			travelTimes[fromNode][toNode]=stod(temp);
		}
		//distance-time input end between nodes
		//reading the input_node file below

		numChargingStations=100;
		numCustomers=1000;

		for (int k=1;k<=numCustomers;k++){
			customerPool.push_back(k);
		}//1-1000

		numNodes=1101;
		infile.open("input_vehicle_type.csv");
		string s_temp;
		getline(infile,s_temp,'\n');//enter heading lines
		//importing depot info

		Customer depot;
		getline(infile,s_temp,',');//id
		depot.id=stoi(s_temp);
		getline(infile,s_temp,',');//type
		getline(infile,s_temp,',');//lng
		// depot.lng=stod(s_temp);
		getline(infile,s_temp,',');//lat
		// depot.lat=stod(s_temp);
		getline(infile,s_temp,',');
		getline(infile,s_temp,',');
		getline(infile,s_temp,':');//start time:hour
			double depothour=stod(s_temp)*60;
		getline(infile,s_temp,',');//start time:minute
			depot.timeWindowStarts=stod(s_temp)+depothour;
		getline(infile,s_temp,'\n');//end time
			depot.timeWindowEnds=1440;
		
		customers.push_back(depot);
		
		getline(infile,s_temp,',');
		
		for(int i=1;i<=1000;i++)
		{
			string s_temp;
			Customer tempNode;
			getline(infile,s_temp,',');//id
			tempNode.id=stoi(s_temp);
			getline(infile,s_temp,',');//type
			getline(infile,s_temp,',');//lng
			// tempNode.lng=stod(s_temp);
			getline(infile,s_temp,',');//lat
			// tempNode.lat=stod(s_temp);
			getline(infile,s_temp,',');//weight
			tempNode.demandWeight=stod(s_temp);
			getline(infile,s_temp,',');//volume
			tempNode.demandVol=stod(s_temp);			
			getline(infile,s_temp,':');//start time:hour
					double customerstarthour=stod(s_temp)*60;
			getline(infile,s_temp,',');//start time:minute		
					tempNode.timeWindowStarts=customerstarthour + stod(s_temp);
			getline(infile,s_temp,':');//end time:hour
					double customerendhour=stod(s_temp)*60;
			getline(infile,s_temp,'\n');//end time
					tempNode.timeWindowEnds=customerendhour +stod(s_temp);
			
			customers.push_back(tempNode);
		}
		for(int i=1001;i<=1100;i++)
		{
			string s_temp;
			Customer csNode;
			getline(infile,s_temp,',');//id
			csNode.id=stoi(s_temp);
			getline(infile,s_temp,',');//type
			getline(infile,s_temp,',');//lng
			// csNode.lng=stod(s_temp);
			getline(infile,s_temp,',');//lat
			// csNode.lat=stod(s_temp);
			getline(infile,s_temp,',');//weight
			getline(infile,s_temp,',');//volume
			getline(infile,s_temp,',');//start time
			getline(infile,s_temp,'\n');//end time
			
			customers.push_back(csNode);

		}
//reading input node end




	    // getline(infile,capVolType1,',');

		// getline(infile,capWeightType1,',');
	    // getline(infile,temp,',');
	    // getline(infile,distanceType1,',');
	    // getline(infile,chargeTime1,',');
	    // getline(infile,unitTransCost1,',');
	    // getline(infile,fixedCost1,'\n');

	    // getline(infile,temp,',');
	    // getline(infile,temp,',');
	    // getline(infile,capVolType2,',');
	    // getline(infile,capWeightType2,',');
	    // getline(infile,temp,',');
	    // getline(infile,capVolType2,',');
	    // getline(infile,chargeTime2,',');
	    // getline(infile,unitTransCost2,',');
	    // getline(infile,fixedCost2,'\n');
		


		
		


    // vector<char*> values;
    // const int MAXSIZE = 4;
    // char thisVal[MAXSIZE];
    // while(in.getline(thisVal,MAXSIZE,',')) {
    //     values.resize(values.size() + 1);
    //     values.back() = new char[MAXSIZE];
    //     strcpy(values.back(), thisVal);
    // }
    // in.close();
    // for (char* cp: values) cout<<*cp<<endl;


	
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x518, %rsp            # imm = 0x518
leaq 0x108(%rsp), %rbx
movq %rbx, %rdi
callq 0x2170
leaq 0x20f8(%rip), %rsi      # 0x6192
movq %rbx, %rdi
movl $0x8, %edx
callq 0x20c0
leaq 0x20(%rsp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x108(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0xa, %edx
callq 0x2280
leaq 0x108(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
leaq 0x108(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
leaq 0x108(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
movq 0x10(%rsp), %r14
callq 0x2030
movq %rax, %rbx
movl (%rax), %ebp
movl $0x0, (%rax)
leaq 0x310(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x20e0
cmpq %r14, (%r15)
je 0x521f
movl (%rbx), %eax
testl %eax, %eax
je 0x415f
cmpl $0x22, %eax
jne 0x4161
leaq 0x2067(%rip), %rdi      # 0x61c1
callq 0x21b0
movl %ebp, (%rbx)
movsd %xmm0, 0x50bf(%rip)     # 0x9228
leaq 0x108(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
movq 0x10(%rsp), %r14
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x310(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x20e0
cmpq %r14, (%r15)
je 0x522b
movl (%rbx), %eax
testl %eax, %eax
je 0x41c0
cmpl $0x22, %eax
jne 0x41c2
leaq 0x2006(%rip), %rdi      # 0x61c1
callq 0x21b0
movl %ebp, (%rbx)
movsd %xmm0, 0x505e(%rip)     # 0x9228
leaq 0x108(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
leaq 0x108(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
movq 0x10(%rsp), %r14
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x310(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x20e0
cmpq %r14, (%r15)
je 0x5237
movl (%rbx), %eax
testl %eax, %eax
je 0x4238
cmpl $0x22, %eax
jne 0x423a
leaq 0x1f8e(%rip), %rdi      # 0x61c1
callq 0x21b0
movl %ebp, (%rbx)
movsd %xmm0, 0x5006(%rip)     # 0x9248
leaq 0x108(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
movq 0x10(%rsp), %r14
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x310(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x20e0
cmpq %r14, (%r15)
je 0x5243
movl (%rbx), %eax
testl %eax, %eax
je 0x4299
cmpl $0x22, %eax
jne 0x429b
leaq 0x1f2d(%rip), %rdi      # 0x61c1
callq 0x21b0
movl %ebp, (%rbx)
mulsd 0x1e05(%rip), %xmm0     # 0x60a8
movsd %xmm0, 0x4fcd(%rip)     # 0x9278
leaq 0x108(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
movq 0x10(%rsp), %r14
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x310(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x20e0
cmpq %r14, (%r15)
je 0x524f
movl (%rbx), %eax
testl %eax, %eax
je 0x4302
cmpl $0x22, %eax
jne 0x4304
leaq 0x1ec4(%rip), %rdi      # 0x61c1
callq 0x21b0
movl %ebp, (%rbx)
movsd %xmm0, 0x4f5c(%rip)     # 0x9268
leaq 0x108(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0xa, %edx
callq 0x2280
movq 0x10(%rsp), %r14
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x310(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x20e0
cmpq %r14, (%r15)
je 0x525b
movl (%rbx), %eax
testl %eax, %eax
je 0x4363
cmpl $0x22, %eax
jne 0x4365
leaq 0x1e63(%rip), %rdi      # 0x61c1
callq 0x21b0
movl %ebp, (%rbx)
movsd %xmm0, 0x4eeb(%rip)     # 0x9258
leaq 0x108(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
leaq 0x108(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
leaq 0x108(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
movq 0x10(%rsp), %r14
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x310(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x20e0
cmpq %r14, (%r15)
je 0x5267
movl (%rbx), %eax
testl %eax, %eax
je 0x43f2
cmpl $0x22, %eax
jne 0x43f4
leaq 0x1dd4(%rip), %rdi      # 0x61c1
callq 0x21b0
movl %ebp, (%rbx)
movsd %xmm0, 0x4e34(%rip)     # 0x9230
leaq 0x108(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
movq 0x10(%rsp), %r14
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x310(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x20e0
cmpq %r14, (%r15)
je 0x5273
movl (%rbx), %eax
testl %eax, %eax
je 0x4453
cmpl $0x22, %eax
jne 0x4455
leaq 0x1d73(%rip), %rdi      # 0x61c1
callq 0x21b0
movl %ebp, (%rbx)
movsd %xmm0, 0x4dd3(%rip)     # 0x9230
leaq 0x108(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
leaq 0x108(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
movq 0x10(%rsp), %r14
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x310(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x20e0
cmpq %r14, (%r15)
je 0x527f
movl (%rbx), %eax
testl %eax, %eax
je 0x44cb
cmpl $0x22, %eax
jne 0x44cd
leaq 0x1cfb(%rip), %rdi      # 0x61c1
callq 0x21b0
movl %ebp, (%rbx)
movsd %xmm0, 0x4d7b(%rip)     # 0x9250
leaq 0x108(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
movq 0x10(%rsp), %r14
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x310(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x20e0
cmpq %r14, (%r15)
je 0x528b
movl (%rbx), %eax
testl %eax, %eax
je 0x452c
cmpl $0x22, %eax
jne 0x452e
leaq 0x1c9a(%rip), %rdi      # 0x61c1
callq 0x21b0
movl %ebp, (%rbx)
mulsd 0x1b72(%rip), %xmm0     # 0x60a8
movsd %xmm0, 0x4d42(%rip)     # 0x9280
leaq 0x108(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
movq 0x10(%rsp), %r14
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x310(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x20e0
cmpq %r14, (%r15)
je 0x5297
movl (%rbx), %eax
testl %eax, %eax
je 0x4595
cmpl $0x22, %eax
jne 0x4597
leaq 0x1c31(%rip), %rdi      # 0x61c1
callq 0x21b0
movl %ebp, (%rbx)
movsd %xmm0, 0x4cd1(%rip)     # 0x9270
leaq 0x108(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0xa, %edx
callq 0x2280
movq 0x10(%rsp), %r14
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x310(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x20e0
cmpq %r14, (%r15)
je 0x52a3
movl (%rbx), %eax
testl %eax, %eax
je 0x45f6
cmpl $0x22, %eax
jne 0x45f8
leaq 0x1bd0(%rip), %rdi      # 0x61c1
callq 0x21b0
movl %ebp, (%rbx)
movsd %xmm0, 0x4c60(%rip)     # 0x9260
leaq 0xf8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1b96(%rip), %rsi      # 0x61a9
leaq 0x1ba6(%rip), %rdx      # 0x61c0
leaq 0xe8(%rsp), %rdi
callq 0x598a
movq 0xe8(%rsp), %rsi
leaq 0x310(%rsp), %r14
movq %r14, %rdi
movl $0x8, %edx
callq 0x2270
movq 0x310(%rsp), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %edx
leaq 0x310(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x2280
movl $0x127adc, %r15d        # imm = 0x127ADC
leaq 0x310(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
movq 0x10(%rsp), %rbp
movl (%rbx), %r14d
movl $0x0, (%rbx)
movq %rbp, %rdi
leaq 0xb0(%rsp), %rsi
movl $0xa, %edx
callq 0x21a0
cmpq %rbp, 0xb0(%rsp)
je 0x5123
movq %rax, %r13
addq $-0x80000000, %rax      # imm = 0x80000000
movabsq $-0x100000000, %rcx     # imm = 0xFFFFFFFF00000000
cmpq %rcx, %rax
jb 0x512f
movl (%rbx), %eax
cmpl $0x22, %eax
je 0x512f
testl %eax, %eax
jne 0x46ee
movl %r14d, (%rbx)
leaq 0x310(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
movq 0x10(%rsp), %r14
movl (%rbx), %r12d
movl $0x0, (%rbx)
movq %r14, %rdi
leaq 0xb0(%rsp), %rsi
movl $0xa, %edx
callq 0x21a0
cmpq %r14, 0xb0(%rsp)
je 0x510b
movq %rax, %rbp
addq $-0x80000000, %rax      # imm = 0x80000000
movabsq $-0x100000000, %rcx     # imm = 0xFFFFFFFF00000000
cmpq %rcx, %rax
jb 0x5117
movl (%rbx), %eax
cmpl $0x22, %eax
je 0x5117
testl %eax, %eax
jne 0x4764
movl %r12d, (%rbx)
leaq 0x310(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
movq 0x10(%rsp), %r14
movl (%rbx), %r12d
movl $0x0, (%rbx)
movq %r14, %rdi
leaq 0xb0(%rsp), %rsi
callq 0x20e0
cmpq %r14, 0xb0(%rsp)
je 0x50ff
movl (%rbx), %eax
testl %eax, %eax
je 0x47b7
cmpl $0x22, %eax
jne 0x47ba
jmp 0x51cb
movl %r12d, (%rbx)
movq 0x49ef(%rip), %rax      # 0x91b0
leaq (%r13,%r13,2), %r13
movq (%rax,%r13,8), %rax
movsd %xmm0, (%rax,%rbp,8)
leaq 0x310(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
movq 0x10(%rsp), %r14
movl (%rbx), %r12d
movl $0x0, (%rbx)
movq %r14, %rdi
leaq 0xb0(%rsp), %rsi
callq 0x20e0
cmpq %r14, 0xb0(%rsp)
je 0x513b
movl (%rbx), %eax
testl %eax, %eax
je 0x4822
cmpl $0x22, %eax
jne 0x4825
jmp 0x51bf
movl %r12d, (%rbx)
movq 0x499c(%rip), %rax      # 0x91c8
movq (%rax,%r13,8), %rax
movsd %xmm0, (%rax,%rbp,8)
decq %r15
jne 0x4678
movl $0x64, 0x492c(%rip)     # 0x9174
movl $0x3e8, 0x4926(%rip)    # imm = 0x3E8
leaq 0xb0(%rsp), %r14
movl $0x1, (%r14)
movl $0x1, %eax
leaq 0x4973(%rip), %r15      # 0x91e0
movq 0x4974(%rip), %rsi      # 0x91e8
cmpq 0x4975(%rip), %rsi      # 0x91f0
je 0x488c
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x495e(%rip)      # 0x91e8
jmp 0x4897
movq %r15, %rdi
movq %r14, %rdx
callq 0x5a20
movl 0xb0(%rsp), %ecx
leal 0x1(%rcx), %eax
movl %eax, 0xb0(%rsp)
cmpl 0x48ca(%rip), %ecx      # 0x9178
jl 0x486d
movl $0x44d, 0x48c2(%rip)    # imm = 0x44D
leaq 0x18d1(%rip), %rsi      # 0x6192
leaq 0x108(%rsp), %rdi
movl $0x8, %edx
callq 0x20c0
leaq 0x68(%rsp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x108(%rsp), %rdi
leaq 0x58(%rsp), %rsi
movl $0xa, %edx
callq 0x2280
movl $0x0, 0xb0(%rsp)
xorpd %xmm0, %xmm0
movupd %xmm0, 0xb8(%rsp)
leaq 0x108(%rsp), %rdi
leaq 0x58(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
movq 0x58(%rsp), %r14
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x78(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
movl $0xa, %edx
callq 0x21a0
cmpq %r14, (%r15)
je 0x52af
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x52bb
movl (%rbx), %ecx
cmpl $0x22, %ecx
je 0x52bb
testl %ecx, %ecx
jne 0x4983
movl %ebp, (%rbx)
movl %eax, 0xb0(%rsp)
leaq 0x108(%rsp), %rdi
leaq 0x58(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
leaq 0x108(%rsp), %rdi
leaq 0x58(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
leaq 0x108(%rsp), %rdi
leaq 0x58(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
leaq 0x108(%rsp), %rdi
leaq 0x58(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
leaq 0x108(%rsp), %rdi
leaq 0x58(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
leaq 0x108(%rsp), %rdi
leaq 0x58(%rsp), %rsi
movl $0x3a, %edx
callq 0x2280
movq 0x58(%rsp), %r14
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x78(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x20e0
movsd %xmm0, 0x50(%rsp)
cmpq %r14, (%r15)
je 0x52c7
movl (%rbx), %eax
testl %eax, %eax
je 0x4a57
cmpl $0x22, %eax
jne 0x4a59
leaq 0x176f(%rip), %rdi      # 0x61c1
callq 0x21b0
movl %ebp, (%rbx)
leaq 0x108(%rsp), %rdi
leaq 0x58(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
movq 0x58(%rsp), %r14
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x78(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x20e0
cmpq %r14, (%r15)
je 0x52d3
movl (%rbx), %eax
testl %eax, %eax
je 0x4aad
cmpl $0x22, %eax
jne 0x4aaf
leaq 0x1719(%rip), %rdi      # 0x61c1
callq 0x21b0
movl %ebp, (%rbx)
movsd 0x50(%rsp), %xmm1
mulsd 0x15eb(%rip), %xmm1     # 0x60a8
addsd %xmm0, %xmm1
movsd %xmm1, 0xd8(%rsp)
leaq 0x108(%rsp), %rdi
leaq 0x58(%rsp), %rsi
movl $0xa, %edx
callq 0x2280
movabsq $0x4096800000000000, %rax # imm = 0x4096800000000000
movq %rax, 0xe0(%rsp)
movq 0x4706(%rip), %rsi      # 0x9200
cmpq 0x4707(%rip), %rsi      # 0x9208
je 0x4b43
movq 0xe0(%rsp), %rax
movq %rax, 0x30(%rsi)
movupd 0xb0(%rsp), %xmm0
movupd 0xc0(%rsp), %xmm1
movups 0xd0(%rsp), %xmm2
movups %xmm2, 0x20(%rsi)
movupd %xmm1, 0x10(%rsi)
movupd %xmm0, (%rsi)
addq $0x38, %rsi
movq %rsi, 0x46bf(%rip)      # 0x9200
jmp 0x4b57
leaq 0x46ae(%rip), %rdi      # 0x91f8
leaq 0xb0(%rsp), %rdx
callq 0x5b5c
leaq 0x108(%rsp), %rdi
leaq 0x58(%rsp), %rsi
movl $0x2c, %edx
callq 0x2280
movl $0x3e8, %ebp            # imm = 0x3E8
leaq 0x108(%rsp), %r14
leaq 0x30(%rsp), %r15
leaq 0x40(%rsp), %rax
movq %rax, 0x30(%rsp)
movq $0x0, 0x38(%rsp)
movb $0x0, 0x40(%rsp)
movl $0x0, 0x78(%rsp)
leaq 0x80(%rsp), %rax
xorpd %xmm0, %xmm0
movupd %xmm0, (%rax)
movq %r14, %rdi
movq %r15, %rsi
movl $0x2c, %edx
callq 0x2280
movq 0x30(%rsp), %r13
movl (%rbx), %r12d
movl $0x0, (%rbx)
movq %r13, %rdi
leaq 0x8(%rsp), %rsi
movl $0xa, %edx
callq 0x21a0
cmpq %r13, 0x8(%rsp)
je 0x516b
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x5177
movl (%rbx), %ecx
cmpl $0x22, %ecx
je 0x5177
testl %ecx, %ecx
jne 0x4c17
movl %r12d, (%rbx)
movl %eax, 0x78(%rsp)
movq %r14, %rdi
movq %r15, %rsi
movl $0x2c, %edx
callq 0x2280
movq %r14, %rdi
movq %r15, %rsi
movl $0x2c, %edx
callq 0x2280
movq %r14, %rdi
movq %r15, %rsi
movl $0x2c, %edx
callq 0x2280
movq %r14, %rdi
movq %r15, %rsi
movl $0x2c, %edx
callq 0x2280
movq 0x30(%rsp), %r13
movl (%rbx), %r12d
movl $0x0, (%rbx)
movq %r13, %rdi
leaq 0x8(%rsp), %rsi
callq 0x20e0
cmpq %r13, 0x8(%rsp)
je 0x5153
movl (%rbx), %eax
testl %eax, %eax
je 0x4c91
cmpl $0x22, %eax
jne 0x4c94
jmp 0x5213
movl %r12d, (%rbx)
movsd %xmm0, 0x80(%rsp)
movq %r14, %rdi
movq %r15, %rsi
movl $0x2c, %edx
callq 0x2280
movq 0x30(%rsp), %r13
movl (%rbx), %r12d
movl $0x0, (%rbx)
movq %r13, %rdi
leaq 0x8(%rsp), %rsi
callq 0x20e0
cmpq %r13, 0x8(%rsp)
je 0x515f
movl (%rbx), %eax
testl %eax, %eax
je 0x4ce3
cmpl $0x22, %eax
jne 0x4ce6
jmp 0x51ef
movl %r12d, (%rbx)
movsd %xmm0, 0x88(%rsp)
movq %r14, %rdi
movq %r15, %rsi
movl $0x3a, %edx
callq 0x2280
movq 0x30(%rsp), %r13
movl (%rbx), %r12d
movl $0x0, (%rbx)
movq %r13, %rdi
leaq 0x8(%rsp), %rsi
callq 0x20e0
cmpq %r13, 0x8(%rsp)
je 0x5147
movl (%rbx), %eax
testl %eax, %eax
je 0x4d35
cmpl $0x22, %eax
jne 0x4d38
jmp 0x5207
movl %r12d, (%rbx)
mulsd 0x1368(%rip), %xmm0     # 0x60a8
movsd %xmm0, 0x50(%rsp)
movq %r14, %rdi
movq %r15, %rsi
movl $0x2c, %edx
callq 0x2280
movq 0x30(%rsp), %r13
movl (%rbx), %r12d
movl $0x0, (%rbx)
movq %r13, %rdi
leaq 0x8(%rsp), %rsi
callq 0x20e0
cmpq %r13, 0x8(%rsp)
je 0x5183
movl (%rbx), %eax
testl %eax, %eax
je 0x4d8c
cmpl $0x22, %eax
jne 0x4d8f
jmp 0x51e3
movl %r12d, (%rbx)
movsd 0x50(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0xa0(%rsp)
movq %r14, %rdi
movq %r15, %rsi
movl $0x3a, %edx
callq 0x2280
movq 0x30(%rsp), %r13
movl (%rbx), %r12d
movl $0x0, (%rbx)
movq %r13, %rdi
leaq 0x8(%rsp), %rsi
callq 0x20e0
cmpq %r13, 0x8(%rsp)
je 0x519b
movl (%rbx), %eax
testl %eax, %eax
je 0x4de8
cmpl $0x22, %eax
jne 0x4deb
jmp 0x51fb
movl %r12d, (%rbx)
mulsd 0x12b5(%rip), %xmm0     # 0x60a8
movsd %xmm0, 0x50(%rsp)
movq %r14, %rdi
movq %r15, %rsi
movl $0xa, %edx
callq 0x2280
movq 0x30(%rsp), %r13
movl (%rbx), %r12d
movl $0x0, (%rbx)
movq %r13, %rdi
leaq 0x8(%rsp), %rsi
callq 0x20e0
cmpq %r13, 0x8(%rsp)
je 0x518f
movl (%rbx), %eax
testl %eax, %eax
je 0x4e3f
cmpl $0x22, %eax
jne 0x4e42
jmp 0x51d7
movl %r12d, (%rbx)
movsd 0x50(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0xa8(%rsp)
movq 0x43a4(%rip), %rsi      # 0x9200
cmpq 0x43a5(%rip), %rsi      # 0x9208
je 0x4ea2
movq 0xa8(%rsp), %rax
movq %rax, 0x30(%rsi)
movupd 0x78(%rsp), %xmm0
movupd 0x88(%rsp), %xmm1
movups 0x98(%rsp), %xmm2
movups %xmm2, 0x20(%rsi)
movupd %xmm1, 0x10(%rsi)
movupd %xmm0, (%rsi)
addq $0x38, %rsi
movq %rsi, 0x4360(%rip)      # 0x9200
jmp 0x4eb3
leaq 0x434f(%rip), %rdi      # 0x91f8
leaq 0x78(%rsp), %rdx
callq 0x5b5c
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x4ecf
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x2160
decl %ebp
jne 0x4b80
movl $0x64, %ebp
leaq 0x108(%rsp), %r14
leaq 0x30(%rsp), %r15
leaq 0x40(%rsp), %rax
movq %rax, 0x30(%rsp)
movq $0x0, 0x38(%rsp)
movb $0x0, 0x40(%rsp)
movl $0x0, 0x78(%rsp)
leaq 0x80(%rsp), %rax
xorpd %xmm0, %xmm0
movupd %xmm0, (%rax)
movq %r14, %rdi
movq %r15, %rsi
movl $0x2c, %edx
callq 0x2280
movq 0x30(%rsp), %r13
movl (%rbx), %r12d
movl $0x0, (%rbx)
movq %r13, %rdi
leaq 0x8(%rsp), %rsi
movl $0xa, %edx
callq 0x21a0
cmpq %r13, 0x8(%rsp)
je 0x51a7
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x51b3
movl (%rbx), %ecx
cmpl $0x22, %ecx
je 0x51b3
testl %ecx, %ecx
jne 0x4f80
movl %r12d, (%rbx)
movl %eax, 0x78(%rsp)
movq %r14, %rdi
movq %r15, %rsi
movl $0x2c, %edx
callq 0x2280
movq %r14, %rdi
movq %r15, %rsi
movl $0x2c, %edx
callq 0x2280
movq %r14, %rdi
movq %r15, %rsi
movl $0x2c, %edx
callq 0x2280
movq %r14, %rdi
movq %r15, %rsi
movl $0x2c, %edx
callq 0x2280
movq %r14, %rdi
movq %r15, %rsi
movl $0x2c, %edx
callq 0x2280
movq %r14, %rdi
movq %r15, %rsi
movl $0x2c, %edx
callq 0x2280
movq %r14, %rdi
movq %r15, %rsi
movl $0xa, %edx
callq 0x2280
movq 0x4205(%rip), %rsi      # 0x9200
cmpq 0x4206(%rip), %rsi      # 0x9208
je 0x5041
movq 0xa8(%rsp), %rax
movq %rax, 0x30(%rsi)
movupd 0x78(%rsp), %xmm0
movupd 0x88(%rsp), %xmm1
movups 0x98(%rsp), %xmm2
movups %xmm2, 0x20(%rsi)
movupd %xmm1, 0x10(%rsi)
movupd %xmm0, (%rsi)
addq $0x38, %rsi
movq %rsi, 0x41c1(%rip)      # 0x9200
jmp 0x5052
leaq 0x41b0(%rip), %rdi      # 0x91f8
leaq 0x78(%rsp), %rdx
callq 0x5b5c
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x506e
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x2160
decl %ebp
jne 0x4ee9
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0x5092
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x2160
leaq 0x310(%rsp), %rdi
callq 0x2050
movq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x50c4
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x2160
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x50e0
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x2160
leaq 0x108(%rsp), %rdi
callq 0x2050
addq $0x518, %rsp            # imm = 0x518
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x10bb(%rip), %rdi      # 0x61c1
callq 0x20b0
leaq 0x10b4(%rip), %rdi      # 0x61c6
callq 0x20b0
leaq 0x10a8(%rip), %rdi      # 0x61c6
callq 0x21b0
leaq 0x109c(%rip), %rdi      # 0x61c6
callq 0x20b0
leaq 0x1090(%rip), %rdi      # 0x61c6
callq 0x21b0
leaq 0x107f(%rip), %rdi      # 0x61c1
callq 0x20b0
leaq 0x1073(%rip), %rdi      # 0x61c1
callq 0x20b0
leaq 0x1067(%rip), %rdi      # 0x61c1
callq 0x20b0
leaq 0x105b(%rip), %rdi      # 0x61c1
callq 0x20b0
leaq 0x1054(%rip), %rdi      # 0x61c6
callq 0x20b0
leaq 0x1048(%rip), %rdi      # 0x61c6
callq 0x21b0
leaq 0x1037(%rip), %rdi      # 0x61c1
callq 0x20b0
leaq 0x102b(%rip), %rdi      # 0x61c1
callq 0x20b0
leaq 0x101f(%rip), %rdi      # 0x61c1
callq 0x20b0
leaq 0x1018(%rip), %rdi      # 0x61c6
callq 0x20b0
leaq 0x100c(%rip), %rdi      # 0x61c6
callq 0x21b0
leaq 0xffb(%rip), %rdi       # 0x61c1
callq 0x21b0
leaq 0xfef(%rip), %rdi       # 0x61c1
callq 0x21b0
leaq 0xfe3(%rip), %rdi       # 0x61c1
callq 0x21b0
leaq 0xfd7(%rip), %rdi       # 0x61c1
callq 0x21b0
leaq 0xfcb(%rip), %rdi       # 0x61c1
callq 0x21b0
leaq 0xfbf(%rip), %rdi       # 0x61c1
callq 0x21b0
leaq 0xfb3(%rip), %rdi       # 0x61c1
callq 0x21b0
leaq 0xfa7(%rip), %rdi       # 0x61c1
callq 0x21b0
leaq 0xf9b(%rip), %rdi       # 0x61c1
callq 0x20b0
leaq 0xf8f(%rip), %rdi       # 0x61c1
callq 0x20b0
leaq 0xf83(%rip), %rdi       # 0x61c1
callq 0x20b0
leaq 0xf77(%rip), %rdi       # 0x61c1
callq 0x20b0
leaq 0xf6b(%rip), %rdi       # 0x61c1
callq 0x20b0
leaq 0xf5f(%rip), %rdi       # 0x61c1
callq 0x20b0
leaq 0xf53(%rip), %rdi       # 0x61c1
callq 0x20b0
leaq 0xf47(%rip), %rdi       # 0x61c1
callq 0x20b0
leaq 0xf3b(%rip), %rdi       # 0x61c1
callq 0x20b0
leaq 0xf2f(%rip), %rdi       # 0x61c1
callq 0x20b0
leaq 0xf23(%rip), %rdi       # 0x61c1
callq 0x20b0
leaq 0xf17(%rip), %rdi       # 0x61c1
callq 0x20b0
leaq 0xf10(%rip), %rdi       # 0x61c6
callq 0x20b0
leaq 0xf04(%rip), %rdi       # 0x61c6
callq 0x21b0
leaq 0xef3(%rip), %rdi       # 0x61c1
callq 0x20b0
leaq 0xee7(%rip), %rdi       # 0x61c1
callq 0x20b0
jmp 0x5330
movq %rax, %r15
jmp 0x53cb
jmp 0x5337
movq %rax, %r15
jmp 0x540c
jmp 0x5320
jmp 0x5320
jmp 0x530d
jmp 0x530d
jmp 0x530d
jmp 0x530d
jmp 0x530d
jmp 0x530d
jmp 0x530d
jmp 0x530d
jmp 0x530d
jmp 0x530d
jmp 0x530d
movq %rax, %r15
cmpl $0x0, (%rbx)
jne 0x53f0
movl %ebp, (%rbx)
jmp 0x53f0
movq %rax, %r15
cmpl $0x0, (%rbx)
jne 0x53a2
movl %ebp, (%rbx)
jmp 0x53a2
jmp 0x537c
jmp 0x5330
movq %rax, %r15
jmp 0x53a2
jmp 0x537c
movq %rax, %r15
jmp 0x53f0
jmp 0x5383
jmp 0x5355
jmp 0x5355
jmp 0x5355
jmp 0x5355
jmp 0x5355
jmp 0x5355
jmp 0x536f
jmp 0x536f
jmp 0x5355
jmp 0x5383
movq %rax, %r15
cmpl $0x0, (%rbx)
jne 0x5386
movl %r12d, (%rbx)
jmp 0x5386
movq %rax, %r15
cmpl $0x0, (%rbx)
jne 0x53be
movl %r14d, (%rbx)
jmp 0x53be
movq %rax, %r15
cmpl $0x0, (%rbx)
jne 0x53be
movl %r12d, (%rbx)
jmp 0x53be
movq %rax, %r15
jmp 0x53be
jmp 0x5383
movq %rax, %r15
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x53a2
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x2160
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0x53be
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x2160
leaq 0x310(%rsp), %rdi
callq 0x2050
movq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x53f0
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x2160
leaq 0x20(%rsp), %rax
movq 0x10(%rsp), %rdi
cmpq %rax, %rdi
je 0x540c
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x2160
leaq 0x108(%rsp), %rdi
callq 0x2050
movq %r15, %rdi
callq 0x2250