// File: suhasjains[P]AMR-Solver/src/input.cpp
// Function: std::read_vector_field_Bc(std::basic_ifstream<char, std::char_traits<char>>&, int)
void read_vector_field_Bc(ifstream& file, int number) {

	int blocknumber;	
	string line, str;
	string eastbc, westbc, northbc, southbc, topbc, bottombc;
	
	myOctree::FieldBc **xbc;
	myOctree::FieldBc **ybc;
	myOctree::FieldBc **zbc;
	double **xbcval;
	double **ybcval;
	double **zbcval;
	xbc = new myOctree::FieldBc* [3];
	ybc = new myOctree::FieldBc* [3];
	zbc = new myOctree::FieldBc* [3];
	xbcval = new double* [3];
	ybcval = new double* [3];
	zbcval = new double* [3];
	for(int i = 0; i < 3; i++) {
     		xbc[i] = new myOctree::FieldBc [2];	
     		ybc[i] = new myOctree::FieldBc [2];	
     		zbc[i] = new myOctree::FieldBc [2];	
     		xbcval[i] = new double [2];	
     		ybcval[i] = new double [2];	
     		zbcval[i] = new double [2];	
	}

	myOctree::FieldBc east_bc, west_bc, north_bc, south_bc, top_bc, bottom_bc;
	double eastbcval, westbcval, northbcval, southbcval, topbcval, bottombcval;
	
	//Skips if a line is empty		
	getline(file, line);
	while(line.empty()) {
		getline(file, line);
	}

	if(line=="vector_field_boundary_conditions") {

		file >> str;
	        if(str != "{") {
	                cerr << "Expected an opening bracket" <<endl;
	                exit(1);
	        }
		
		cerr << "\nSetting vector field boundary conditions " << endl;

		while(file) { 
	
		
			if(file >> str && str == "}") break;
	                //else    myOctree::vector_fields.push_back(str);
			cerr << str << endl;	
			
			for(int i = 0; i < number ; ++i) {
		
				file >> blocknumber; 
			
			
				file >> eastbc >> westbc >> northbc >> southbc >> topbc >> bottombc;
				file >> xbcval[0][0] >> xbcval[0][1] >> xbcval[1][0] >> xbcval[1][1] >> xbcval[2][0] >> xbcval[2][1];
				
				xbc[myOctree::XDIR][myOctree::RIGHT] = string_to_FieldBc(eastbc);		
				xbc[myOctree::XDIR][myOctree::LEFT] = string_to_FieldBc(westbc);		
				xbc[myOctree::YDIR][myOctree::RIGHT] = string_to_FieldBc(northbc);		
				xbc[myOctree::YDIR][myOctree::LEFT] = string_to_FieldBc(southbc);		
				xbc[myOctree::ZDIR][myOctree::RIGHT] = string_to_FieldBc(topbc);		
				xbc[myOctree::ZDIR][myOctree::LEFT] = string_to_FieldBc(bottombc);		

				//cerr << blocknumber << eastbc << westbc << northbc << southbc << topbc << bottombc << endl;

				file >> eastbc >> westbc >> northbc >> southbc >> topbc >> bottombc;
				file >> ybcval[0][0] >> ybcval[0][1] >> ybcval[1][0] >> ybcval[1][1] >> ybcval[2][0] >> ybcval[2][1];
				
				ybc[myOctree::XDIR][myOctree::RIGHT] = string_to_FieldBc(eastbc);		
				ybc[myOctree::XDIR][myOctree::LEFT] = string_to_FieldBc(westbc);		
				ybc[myOctree::YDIR][myOctree::RIGHT] = string_to_FieldBc(northbc);		
				ybc[myOctree::YDIR][myOctree::LEFT] = string_to_FieldBc(southbc);		
				ybc[myOctree::ZDIR][myOctree::RIGHT] = string_to_FieldBc(topbc);		
				ybc[myOctree::ZDIR][myOctree::LEFT] = string_to_FieldBc(bottombc);		

				//cerr << blocknumber << eastbc << westbc << northbc << southbc << topbc << bottombc << endl;

				file >> eastbc >> westbc >> northbc >> southbc >> topbc >> bottombc;
				file >> zbcval[0][0] >> zbcval[0][1] >> zbcval[1][0] >> zbcval[1][1] >> zbcval[2][0] >> zbcval[2][1];
				
				zbc[myOctree::XDIR][myOctree::RIGHT] = string_to_FieldBc(eastbc);		
				zbc[myOctree::XDIR][myOctree::LEFT] = string_to_FieldBc(westbc);		
				zbc[myOctree::YDIR][myOctree::RIGHT] = string_to_FieldBc(northbc);		
				zbc[myOctree::YDIR][myOctree::LEFT] = string_to_FieldBc(southbc);		
				zbc[myOctree::ZDIR][myOctree::RIGHT] = string_to_FieldBc(topbc);		
				zbc[myOctree::ZDIR][myOctree::LEFT] = string_to_FieldBc(bottombc);		

				//cerr << blocknumber << eastbc << westbc << northbc << southbc << topbc << bottombc << endl;


				/*add a function here which sets boundary condition and boundary values*/
				myOctree::set_VecFieldBc_VecFieldBcVal(blocknumber, str, xbc, ybc, zbc, xbcval, ybcval, zbcval);
			}
		}	
	}

	delete 	[] xbc;
      	delete	[] ybc;
      	delete	[] zbc;
	delete 	[] xbcval;
	delete 	[] ybcval;
	delete 	[] zbcval;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x620, %rsp            # imm = 0x620
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x3360
leaq -0x50(%rbp), %rdi
callq 0x3360
leaq -0x70(%rbp), %rdi
callq 0x3360
leaq -0x90(%rbp), %rdi
callq 0x3360
leaq -0xb0(%rbp), %rdi
callq 0x3360
leaq -0xd0(%rbp), %rdi
callq 0x3360
leaq -0xf0(%rbp), %rdi
callq 0x3360
leaq -0x110(%rbp), %rdi
callq 0x3360
movl $0x18, %edi
callq 0x3040
movq %rax, -0x408(%rbp)
jmp 0x1556c
movq -0x408(%rbp), %rax
movq %rax, -0x118(%rbp)
movl $0x18, %edi
callq 0x3040
movq %rax, -0x410(%rbp)
jmp 0x1558d
movq -0x410(%rbp), %rax
movq %rax, -0x120(%rbp)
movl $0x18, %edi
callq 0x3040
movq %rax, -0x418(%rbp)
jmp 0x155ae
movq -0x418(%rbp), %rax
movq %rax, -0x128(%rbp)
movl $0x18, %edi
callq 0x3040
movq %rax, -0x420(%rbp)
jmp 0x155cf
movq -0x420(%rbp), %rax
movq %rax, -0x130(%rbp)
movl $0x18, %edi
callq 0x3040
movq %rax, -0x428(%rbp)
jmp 0x155f0
movq -0x428(%rbp), %rax
movq %rax, -0x138(%rbp)
movl $0x18, %edi
callq 0x3040
movq %rax, -0x430(%rbp)
jmp 0x15611
movq -0x430(%rbp), %rax
movq %rax, -0x140(%rbp)
movl $0x0, -0x150(%rbp)
cmpl $0x3, -0x150(%rbp)
jge 0x15769
movl $0x8, %edi
callq 0x3040
movq %rax, -0x438(%rbp)
jmp 0x15649
movq -0x438(%rbp), %rdx
movq -0x118(%rbp), %rax
movslq -0x150(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movl $0x8, %edi
callq 0x3040
movq %rax, -0x440(%rbp)
jmp 0x15675
movq -0x440(%rbp), %rdx
movq -0x120(%rbp), %rax
movslq -0x150(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movl $0x8, %edi
callq 0x3040
movq %rax, -0x448(%rbp)
jmp 0x156a1
movq -0x448(%rbp), %rdx
movq -0x128(%rbp), %rax
movslq -0x150(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movl $0x10, %edi
callq 0x3040
movq %rax, -0x450(%rbp)
jmp 0x156cd
movq -0x450(%rbp), %rdx
movq -0x130(%rbp), %rax
movslq -0x150(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movl $0x10, %edi
callq 0x3040
movq %rax, -0x458(%rbp)
jmp 0x156f9
movq -0x458(%rbp), %rdx
movq -0x138(%rbp), %rax
movslq -0x150(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movl $0x10, %edi
callq 0x3040
movq %rax, -0x460(%rbp)
jmp 0x15725
movq -0x460(%rbp), %rdx
movq -0x140(%rbp), %rax
movslq -0x150(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x150(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x150(%rbp)
jmp 0x15629
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
jmp 0x166a9
movq -0x8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x3090
jmp 0x15778
jmp 0x1577a
leaq -0x30(%rbp), %rdi
callq 0x33f0
testb $0x1, %al
jne 0x15789
jmp 0x1579a
movq -0x8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x3090
jmp 0x15798
jmp 0x1577a
leaq 0xbd20(%rip), %rsi      # 0x214c1
leaq -0x30(%rbp), %rdi
callq 0x169d0
movb %al, -0x461(%rbp)
jmp 0x157b2
movb -0x461(%rbp), %al
testb $0x1, %al
jne 0x157c1
jmp 0x16589
movq -0x8(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x3320
jmp 0x157d0
leaq 0xbc39(%rip), %rsi      # 0x21410
leaq -0x50(%rbp), %rdi
callq 0x16a00
movb %al, -0x462(%rbp)
jmp 0x157e8
movb -0x462(%rbp), %al
testb $0x1, %al
jne 0x157f4
jmp 0x1582f
movq 0x107f5(%rip), %rdi     # 0x25ff0
leaq 0xbc10(%rip), %rsi      # 0x21412
callq 0x3240
movq %rax, -0x470(%rbp)
jmp 0x15810
movq -0x470(%rbp), %rdi
movq 0x107a2(%rip), %rsi     # 0x25fc0
callq 0x3270
jmp 0x15825
movl $0x1, %edi
callq 0x32e0
movq 0x107ba(%rip), %rdi     # 0x25ff0
leaq 0xbca5(%rip), %rsi      # 0x214e2
callq 0x3240
movq %rax, -0x478(%rbp)
jmp 0x1584b
movq -0x478(%rbp), %rdi
movq 0x10767(%rip), %rsi     # 0x25fc0
callq 0x3270
jmp 0x15860
jmp 0x15862
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x3310
movb %al, -0x479(%rbp)
jmp 0x1587d
movb -0x479(%rbp), %al
testb $0x1, %al
jne 0x1588c
jmp 0x16587
movq -0x8(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x3320
movq %rax, -0x488(%rbp)
jmp 0x158a2
movq -0x488(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x3310
movb %al, -0x489(%rbp)
jmp 0x158c0
movb -0x489(%rbp), %al
testb $0x1, %al
jne 0x158cc
jmp 0x158f5
leaq 0xbb77(%rip), %rsi      # 0x2144a
leaq -0x50(%rbp), %rdi
callq 0x169d0
movb %al, -0x48a(%rbp)
jmp 0x158e4
movb -0x48a(%rbp), %al
testb $0x1, %al
jne 0x158f0
jmp 0x158f5
jmp 0x16587
movq 0x106f4(%rip), %rdi     # 0x25ff0
leaq -0x50(%rbp), %rsi
callq 0x3220
movq %rax, -0x498(%rbp)
jmp 0x1590e
movq -0x498(%rbp), %rdi
movq 0x106a4(%rip), %rsi     # 0x25fc0
callq 0x3270
jmp 0x15923
movl $0x0, -0x19c(%rbp)
movl -0x19c(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x16582
movq -0x8(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x3170
jmp 0x1594b
movq -0x8(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x3320
movq %rax, -0x4a0(%rbp)
jmp 0x15961
movq -0x4a0(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x3320
movq %rax, -0x4a8(%rbp)
jmp 0x1597d
movq -0x4a8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x3320
movq %rax, -0x4b0(%rbp)
jmp 0x15999
movq -0x4b0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x3320
movq %rax, -0x4b8(%rbp)
jmp 0x159b5
movq -0x4b8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x3320
movq %rax, -0x4c0(%rbp)
jmp 0x159d1
movq -0x4c0(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x3320
jmp 0x159e6
movq -0x8(%rbp), %rdi
movq -0x130(%rbp), %rax
movq (%rax), %rsi
callq 0x31e0
movq %rax, -0x4c8(%rbp)
jmp 0x15a02
movq -0x4c8(%rbp), %rdi
movq -0x130(%rbp), %rax
movq (%rax), %rsi
addq $0x8, %rsi
callq 0x31e0
movq %rax, -0x4d0(%rbp)
jmp 0x15a25
movq -0x4d0(%rbp), %rdi
movq -0x130(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x31e0
movq %rax, -0x4d8(%rbp)
jmp 0x15a45
movq -0x4d8(%rbp), %rdi
movq -0x130(%rbp), %rax
movq 0x8(%rax), %rsi
addq $0x8, %rsi
callq 0x31e0
movq %rax, -0x4e0(%rbp)
jmp 0x15a69
movq -0x4e0(%rbp), %rdi
movq -0x130(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x31e0
movq %rax, -0x4e8(%rbp)
jmp 0x15a89
movq -0x4e8(%rbp), %rdi
movq -0x130(%rbp), %rax
movq 0x10(%rax), %rsi
addq $0x8, %rsi
callq 0x31e0
jmp 0x15aa6
leaq -0x1c0(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x3120
jmp 0x15ab8
leaq -0x1c0(%rbp), %rdi
callq 0x14040
movl %eax, -0x4ec(%rbp)
jmp 0x15acc
movl -0x4ec(%rbp), %ecx
movq -0x118(%rbp), %rax
movq (%rax), %rax
movl %ecx, (%rax)
leaq -0x1c0(%rbp), %rdi
callq 0x3180
leaq -0x1e0(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x3120
jmp 0x15aff
leaq -0x1e0(%rbp), %rdi
callq 0x14040
movl %eax, -0x4f0(%rbp)
jmp 0x15b13
movl -0x4f0(%rbp), %ecx
movq -0x118(%rbp), %rax
movq (%rax), %rax
movl %ecx, 0x4(%rax)
leaq -0x1e0(%rbp), %rdi
callq 0x3180
leaq -0x200(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x3120
jmp 0x15b47
leaq -0x200(%rbp), %rdi
callq 0x14040
movl %eax, -0x4f4(%rbp)
jmp 0x15b5b
movl -0x4f4(%rbp), %ecx
movq -0x118(%rbp), %rax
movq 0x8(%rax), %rax
movl %ecx, (%rax)
leaq -0x200(%rbp), %rdi
callq 0x3180
leaq -0x220(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x3120
jmp 0x15b8f
leaq -0x220(%rbp), %rdi
callq 0x14040
movl %eax, -0x4f8(%rbp)
jmp 0x15ba3
movl -0x4f8(%rbp), %ecx
movq -0x118(%rbp), %rax
movq 0x8(%rax), %rax
movl %ecx, 0x4(%rax)
leaq -0x220(%rbp), %rdi
callq 0x3180
leaq -0x240(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x3120
jmp 0x15bd8
leaq -0x240(%rbp), %rdi
callq 0x14040
movl %eax, -0x4fc(%rbp)
jmp 0x15bec
movl -0x4fc(%rbp), %ecx
movq -0x118(%rbp), %rax
movq 0x10(%rax), %rax
movl %ecx, (%rax)
leaq -0x240(%rbp), %rdi
callq 0x3180
leaq -0x260(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x3120
jmp 0x15c20
leaq -0x260(%rbp), %rdi
callq 0x14040
movl %eax, -0x500(%rbp)
jmp 0x15c34
movl -0x500(%rbp), %ecx
movq -0x118(%rbp), %rax
movq 0x10(%rax), %rax
movl %ecx, 0x4(%rax)
leaq -0x260(%rbp), %rdi
callq 0x3180
movq -0x8(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x3320
movq %rax, -0x508(%rbp)
jmp 0x15c6a
movq -0x508(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x3320
movq %rax, -0x510(%rbp)
jmp 0x15c86
movq -0x510(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x3320
movq %rax, -0x518(%rbp)
jmp 0x15ca2
movq -0x518(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x3320
movq %rax, -0x520(%rbp)
jmp 0x15cbe
movq -0x520(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x3320
movq %rax, -0x528(%rbp)
jmp 0x15cda
movq -0x528(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x3320
jmp 0x15cef
movq -0x8(%rbp), %rdi
movq -0x138(%rbp), %rax
movq (%rax), %rsi
callq 0x31e0
movq %rax, -0x530(%rbp)
jmp 0x15d0b
movq -0x530(%rbp), %rdi
movq -0x138(%rbp), %rax
movq (%rax), %rsi
addq $0x8, %rsi
callq 0x31e0
movq %rax, -0x538(%rbp)
jmp 0x15d2e
movq -0x538(%rbp), %rdi
movq -0x138(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x31e0
movq %rax, -0x540(%rbp)
jmp 0x15d4e
movq -0x540(%rbp), %rdi
movq -0x138(%rbp), %rax
movq 0x8(%rax), %rsi
addq $0x8, %rsi
callq 0x31e0
movq %rax, -0x548(%rbp)
jmp 0x15d72
movq -0x548(%rbp), %rdi
movq -0x138(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x31e0
movq %rax, -0x550(%rbp)
jmp 0x15d92
movq -0x550(%rbp), %rdi
movq -0x138(%rbp), %rax
movq 0x10(%rax), %rsi
addq $0x8, %rsi
callq 0x31e0
jmp 0x15daf
leaq -0x280(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x3120
jmp 0x15dc1
leaq -0x280(%rbp), %rdi
callq 0x14040
movl %eax, -0x554(%rbp)
jmp 0x15dd5
movl -0x554(%rbp), %ecx
movq -0x120(%rbp), %rax
movq (%rax), %rax
movl %ecx, (%rax)
leaq -0x280(%rbp), %rdi
callq 0x3180
leaq -0x2a0(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x3120
jmp 0x15e08
leaq -0x2a0(%rbp), %rdi
callq 0x14040
movl %eax, -0x558(%rbp)
jmp 0x15e1c
movl -0x558(%rbp), %ecx
movq -0x120(%rbp), %rax
movq (%rax), %rax
movl %ecx, 0x4(%rax)
leaq -0x2a0(%rbp), %rdi
callq 0x3180
leaq -0x2c0(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x3120
jmp 0x15e50
leaq -0x2c0(%rbp), %rdi
callq 0x14040
movl %eax, -0x55c(%rbp)
jmp 0x15e64
movl -0x55c(%rbp), %ecx
movq -0x120(%rbp), %rax
movq 0x8(%rax), %rax
movl %ecx, (%rax)
leaq -0x2c0(%rbp), %rdi
callq 0x3180
leaq -0x2e0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x3120
jmp 0x15e98
leaq -0x2e0(%rbp), %rdi
callq 0x14040
movl %eax, -0x560(%rbp)
jmp 0x15eac
movl -0x560(%rbp), %ecx
movq -0x120(%rbp), %rax
movq 0x8(%rax), %rax
movl %ecx, 0x4(%rax)
leaq -0x2e0(%rbp), %rdi
callq 0x3180
leaq -0x300(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x3120
jmp 0x15ee1
leaq -0x300(%rbp), %rdi
callq 0x14040
movl %eax, -0x564(%rbp)
jmp 0x15ef5
movl -0x564(%rbp), %ecx
movq -0x120(%rbp), %rax
movq 0x10(%rax), %rax
movl %ecx, (%rax)
leaq -0x300(%rbp), %rdi
callq 0x3180
leaq -0x320(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x3120
jmp 0x15f29
leaq -0x320(%rbp), %rdi
callq 0x14040
movl %eax, -0x568(%rbp)
jmp 0x15f3d
movl -0x568(%rbp), %ecx
movq -0x120(%rbp), %rax
movq 0x10(%rax), %rax
movl %ecx, 0x4(%rax)
leaq -0x320(%rbp), %rdi
callq 0x3180
movq -0x8(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x3320
movq %rax, -0x570(%rbp)
jmp 0x15f73
movq -0x570(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x3320
movq %rax, -0x578(%rbp)
jmp 0x15f8f
movq -0x578(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x3320
movq %rax, -0x580(%rbp)
jmp 0x15fab
movq -0x580(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x3320
movq %rax, -0x588(%rbp)
jmp 0x15fc7
movq -0x588(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x3320
movq %rax, -0x590(%rbp)
jmp 0x15fe3
movq -0x590(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x3320
jmp 0x15ff8
movq -0x8(%rbp), %rdi
movq -0x140(%rbp), %rax
movq (%rax), %rsi
callq 0x31e0
movq %rax, -0x598(%rbp)
jmp 0x16014
movq -0x598(%rbp), %rdi
movq -0x140(%rbp), %rax
movq (%rax), %rsi
addq $0x8, %rsi
callq 0x31e0
movq %rax, -0x5a0(%rbp)
jmp 0x16037
movq -0x5a0(%rbp), %rdi
movq -0x140(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x31e0
movq %rax, -0x5a8(%rbp)
jmp 0x16057
movq -0x5a8(%rbp), %rdi
movq -0x140(%rbp), %rax
movq 0x8(%rax), %rsi
addq $0x8, %rsi
callq 0x31e0
movq %rax, -0x5b0(%rbp)
jmp 0x1607b
movq -0x5b0(%rbp), %rdi
movq -0x140(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x31e0
movq %rax, -0x5b8(%rbp)
jmp 0x1609b
movq -0x5b8(%rbp), %rdi
movq -0x140(%rbp), %rax
movq 0x10(%rax), %rsi
addq $0x8, %rsi
callq 0x31e0
jmp 0x160b8
leaq -0x340(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x3120
jmp 0x160ca
leaq -0x340(%rbp), %rdi
callq 0x14040
movl %eax, -0x5bc(%rbp)
jmp 0x160de
movl -0x5bc(%rbp), %ecx
movq -0x128(%rbp), %rax
movq (%rax), %rax
movl %ecx, (%rax)
leaq -0x340(%rbp), %rdi
callq 0x3180
leaq -0x360(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x3120
jmp 0x16111
leaq -0x360(%rbp), %rdi
callq 0x14040
movl %eax, -0x5c0(%rbp)
jmp 0x16125
movl -0x5c0(%rbp), %ecx
movq -0x128(%rbp), %rax
movq (%rax), %rax
movl %ecx, 0x4(%rax)
leaq -0x360(%rbp), %rdi
callq 0x3180
leaq -0x380(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x3120
jmp 0x16159
leaq -0x380(%rbp), %rdi
callq 0x14040
movl %eax, -0x5c4(%rbp)
jmp 0x1616d
movl -0x5c4(%rbp), %ecx
movq -0x128(%rbp), %rax
movq 0x8(%rax), %rax
movl %ecx, (%rax)
leaq -0x380(%rbp), %rdi
callq 0x3180
leaq -0x3a0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x3120
jmp 0x161a1
leaq -0x3a0(%rbp), %rdi
callq 0x14040
movl %eax, -0x5c8(%rbp)
jmp 0x161b5
movl -0x5c8(%rbp), %ecx
movq -0x128(%rbp), %rax
movq 0x8(%rax), %rax
movl %ecx, 0x4(%rax)
leaq -0x3a0(%rbp), %rdi
callq 0x3180
leaq -0x3c0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x3120
jmp 0x161ea
leaq -0x3c0(%rbp), %rdi
callq 0x14040
movl %eax, -0x5cc(%rbp)
jmp 0x161fe
movl -0x5cc(%rbp), %ecx
movq -0x128(%rbp), %rax
movq 0x10(%rax), %rax
movl %ecx, (%rax)
leaq -0x3c0(%rbp), %rdi
callq 0x3180
leaq -0x3e0(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x3120
jmp 0x16232
leaq -0x3e0(%rbp), %rdi
callq 0x14040
movl %eax, -0x5d0(%rbp)
jmp 0x16246
movl -0x5d0(%rbp), %ecx
movq -0x128(%rbp), %rax
movq 0x10(%rax), %rax
movl %ecx, 0x4(%rax)
leaq -0x3e0(%rbp), %rdi
callq 0x3180
movl -0x10(%rbp), %eax
movl %eax, -0x5d4(%rbp)
leaq -0x400(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x3120
jmp 0x16281
movl -0x5d4(%rbp), %edi
movq -0x118(%rbp), %rdx
movq -0x120(%rbp), %rcx
movq -0x128(%rbp), %r8
movq -0x130(%rbp), %r9
movq -0x138(%rbp), %rsi
movq -0x140(%rbp), %r10
movq %rsp, %rax
movq %r10, 0x8(%rax)
movq %rsi, (%rax)
leaq -0x400(%rbp), %rsi
callq 0xcac0
jmp 0x162c9
leaq -0x400(%rbp), %rdi
callq 0x3180
movl -0x19c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x19c(%rbp)
jmp 0x1592d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x1c0(%rbp), %rdi
callq 0x3180
jmp 0x166a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x3180
jmp 0x166a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x200(%rbp), %rdi
callq 0x3180
jmp 0x166a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x220(%rbp), %rdi
callq 0x3180
jmp 0x166a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x240(%rbp), %rdi
callq 0x3180
jmp 0x166a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x260(%rbp), %rdi
callq 0x3180
jmp 0x166a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x280(%rbp), %rdi
callq 0x3180
jmp 0x166a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x2a0(%rbp), %rdi
callq 0x3180
jmp 0x166a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x2c0(%rbp), %rdi
callq 0x3180
jmp 0x166a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x2e0(%rbp), %rdi
callq 0x3180
jmp 0x166a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x300(%rbp), %rdi
callq 0x3180
jmp 0x166a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x320(%rbp), %rdi
callq 0x3180
jmp 0x166a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x340(%rbp), %rdi
callq 0x3180
jmp 0x166a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x360(%rbp), %rdi
callq 0x3180
jmp 0x166a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x380(%rbp), %rdi
callq 0x3180
jmp 0x166a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x3a0(%rbp), %rdi
callq 0x3180
jmp 0x166a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x3c0(%rbp), %rdi
callq 0x3180
jmp 0x166a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x3e0(%rbp), %rdi
callq 0x3180
jmp 0x166a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x400(%rbp), %rdi
callq 0x3180
jmp 0x166a9
jmp 0x15862
jmp 0x16589
movq -0x118(%rbp), %rax
movq %rax, -0x5e0(%rbp)
cmpq $0x0, %rax
je 0x165a9
movq -0x5e0(%rbp), %rdi
callq 0x3330
movq -0x120(%rbp), %rax
movq %rax, -0x5e8(%rbp)
cmpq $0x0, %rax
je 0x165c9
movq -0x5e8(%rbp), %rdi
callq 0x3330
movq -0x128(%rbp), %rax
movq %rax, -0x5f0(%rbp)
cmpq $0x0, %rax
je 0x165e9
movq -0x5f0(%rbp), %rdi
callq 0x3330
movq -0x130(%rbp), %rax
movq %rax, -0x5f8(%rbp)
cmpq $0x0, %rax
je 0x16609
movq -0x5f8(%rbp), %rdi
callq 0x3330
movq -0x138(%rbp), %rax
movq %rax, -0x600(%rbp)
cmpq $0x0, %rax
je 0x16629
movq -0x600(%rbp), %rdi
callq 0x3330
movq -0x140(%rbp), %rax
movq %rax, -0x608(%rbp)
cmpq $0x0, %rax
je 0x16649
movq -0x608(%rbp), %rdi
callq 0x3330
leaq -0x110(%rbp), %rdi
callq 0x3180
leaq -0xf0(%rbp), %rdi
callq 0x3180
leaq -0xd0(%rbp), %rdi
callq 0x3180
leaq -0xb0(%rbp), %rdi
callq 0x3180
leaq -0x90(%rbp), %rdi
callq 0x3180
leaq -0x70(%rbp), %rdi
callq 0x3180
leaq -0x50(%rbp), %rdi
callq 0x3180
leaq -0x30(%rbp), %rdi
callq 0x3180
addq $0x620, %rsp            # imm = 0x620
popq %rbp
retq
leaq -0x110(%rbp), %rdi
callq 0x3180
leaq -0xf0(%rbp), %rdi
callq 0x3180
leaq -0xd0(%rbp), %rdi
callq 0x3180
leaq -0xb0(%rbp), %rdi
callq 0x3180
leaq -0x90(%rbp), %rdi
callq 0x3180
leaq -0x70(%rbp), %rdi
callq 0x3180
leaq -0x50(%rbp), %rdi
callq 0x3180
leaq -0x30(%rbp), %rdi
callq 0x3180
movq -0x148(%rbp), %rdi
callq 0x3420
nopl (%rax)