// File: /workspace/github_cpp_makefile_star2_O2/yukimasano[P]cpp_matrix/SRDD.cpp
// Function: main
int main()
{
	ofstream outfile;
	int i = 1;

	for (int j=16; j<=110; j+=1){
		/* format of output is
		# format    0 kappa=size , 1 SD Count, 2 SD Time, 3 CG Count, 4 CG time,
		#           5 CG_pre count 6 CG_pre time
		#           7 LU time, 8 LU delx, 9 QR time, 10 QR delx
		#						11 full QR time 12 full QR delx
		#						13 Jacobi count 14 Jacobi Time
		#						15 SOR1 "-" 16
		#						17 SOR1.5 "-" 18
		#						19 SOR0.5 "-" 20
		*/
		double sd_co =0.0;
		double sd_ti =0.0;
		double cg_co =0.0;
		double cg_ti =0.0;
		double cgp_co =0.0;
		double cgp_ti =0.0;
		double lu_ti =0.0;
		double lu_dx =0.0;
		double qr_ti =0.0;
		double qr_dx =0.0;
		double qre_ti =0.0;
		double qre_dx =0.0;
		double jac_co =0.0;
		double jac_ti =0.0;
		double sor1_co =0.0;
		double sor1_ti =0.0;
		double sor15_co =0.0;
		double sor15_ti =0.0;
		double sor05_co =0.0;
		double sor05_ti =0.0;
    i = pow(1.09,j)+8;




		// for loop to average measurements
	  for (int k=0;k<=10 ;k++){
			//VERSION ITERATIVE
			clock_t begin = clock();
			Vector x(i);
			x= randv(x);
			Matrix A(i,i);
			A = randm(A);
			for (int o=1; o<=i;  o++){
				A.set_val(o,o,o+i);
			}
			Vector b = A*x;
			Matrix AA = A;

			clock_t end = clock();
			double elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;
			cout<<"dim = "<<i<<" time for prep: "<<elapsed_secs<<endl;
			// /////////////////////////////
			int count = 0;
	    //// code starts here /////////////////////////////////////
			Vector x1(i);
			begin = clock();
			count = 0;
			x1 = SD(A,b, count);
			end = clock();
			elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;
      sd_ti += elapsed_secs;
			sd_co += count;
			cout<<"SD"<<flush<<endl;

			// else{
			// 	sd_ti = 0;
			// 	sd_co = 0;
			// }

			// begin = clock();
			// count = 0;
			// x1 = CG(AA,b2, count);
			// end = clock();
			// elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;
			// cg_ti += elapsed_secs;
			// cg_co += count;

			// cout<<"CG"<<flush<<endl;
      //
			// begin = clock();
			// count = 0;
			// x1 = CG_pre(AA,b2, count);
			// end = clock();
			// elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;
			// cgp_ti += elapsed_secs;
			// cgp_co += count;


			////////////////// non-iterative solvers

			begin = clock();
			x1 = LUsolve(A,b);
			end = clock();
			elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;
			double delx = (x1 - x).norm();
			lu_ti += elapsed_secs;
			lu_dx += delx;
      //
			// if (i<150){
			// 	//cout<<"QR2"<<flush<<endl;
			// 	cout<<"QR2"<<flush<<endl;
      //
			//   begin = clock();
			// 	x1 = QRsolve2(A,b);
			// 	end = clock();
			// 	elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;
			// 	delx = (x1 - x).norm();
			// 	qr_ti += elapsed_secs;
			// 	qr_dx += delx;
			// }
			// else{
			// 	qr_ti = 0;
			// 	qr_dx = 0;
			// }
      //
			// cout<<"QR"<<flush<<endl;
      // if (i<200){
			// 	begin = clock();
			// 	x1 = QRsolve(A,b);
			// 	end = clock();
			// 	elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;
			// 	delx = (x1 - x).norm();
			// 	qre_ti += elapsed_secs;
			// 	qre_dx += delx;
			// }
			// else{
			// 	qre_ti = 0;
			// 	qre_dx = 0;
			// }
			cout<<"Jac"<<flush<<endl;

			count = 0;
			begin = clock();
			x1 = Jacobi(A,b,count);
			end = clock();
			elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;
			jac_ti += elapsed_secs;
			jac_co += count;

			cout<<"SOR1"<<flush<<endl;

			begin = clock();
			if (i<140){
				x1 = SOR(A,b,1.0 , count);
				end = clock();
				elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;
				sor1_ti += elapsed_secs;
				sor1_co += count;
				cout<<"SOR15"<<flush<<endl;

				begin = clock();
				count = 0;
				x1 = SOR(A,b,1.5 , count);
		    end = clock();
		    elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;
				sor15_ti += elapsed_secs;
				sor15_co += count;
			}
			if (i<100){
				cout<<"SOR5"<<flush<<endl;
				begin = clock();
				count = 0;
				x1 = SOR(A,b,0.5 , count);
				end = clock();
				elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;
				sor05_ti += elapsed_secs;
				sor05_co += count;
		  }

		}
		//cout<<"done"<<flush<<endl;
		outfile.open("SRDD.txt", fstream::app);
		outfile<<i<<",";
		outfile<< sd_co/10<<","<< sd_ti/10 << ",";
		outfile<< cg_co/10<<","<< cg_ti/10 << ",";
		outfile<< cgp_co/10<<","<< cgp_ti/10 << ",";
		outfile<< lu_ti/10<<","<< lu_dx/10 << ",";
		outfile<< qr_ti/10<<","<< qr_dx/10 << ",";
		outfile<< qre_ti/10<<","<< qre_dx/10<<",";
		outfile<< jac_co/10<<","<< jac_ti/10 << ",";
		outfile<< sor1_co/10<<","<< sor1_ti/10 << ",";
		outfile<< sor15_co/10<<","<< sor15_ti/10 << ",";
		outfile<< sor05_co/10<<","<< sor05_ti/10;
		outfile<<endl;
		outfile.flush();
		outfile.close();
	}

  return 1;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x318, %rsp            # imm = 0x318
leaq 0x118(%rsp), %rdi
callq 0x2190
pushq $0x10
popq %rbx
leaq 0x108(%rsp), %r13
cmpl $0x6f, %ebx
je 0x2cfd
cvtsi2sd %ebx, %xmm1
movsd 0x6c3e(%rip), %xmm0     # 0x9008
callq 0x21c0
addsd 0x6c39(%rip), %xmm0     # 0x9010
cvttsd2si %xmm0, %r15d
xorl %eax, %eax
testl %r15d, %r15d
movl $0x0, %r14d
cmovgl %r15d, %r14d
negl %r14d
xorpd %xmm0, %xmm0
movsd %xmm0, 0xa0(%rsp)
movsd %xmm0, 0x88(%rsp)
movsd %xmm0, 0x90(%rsp)
movsd %xmm0, 0x98(%rsp)
movsd %xmm0, 0x80(%rsp)
movsd %xmm0, 0x78(%rsp)
movsd %xmm0, 0x68(%rsp)
movsd %xmm0, 0x60(%rsp)
movsd %xmm0, 0x58(%rsp)
movsd %xmm0, 0x50(%rsp)
movsd %xmm0, 0x48(%rsp)
movsd %xmm0, 0x40(%rsp)
movl %ebx, 0xa8(%rsp)
cmpl $0xb, %eax
je 0x2a16
movl %eax, 0xac(%rsp)
callq 0x20c0
movq %rax, %r12
leaq 0xb0(%rsp), %rbp
movq %rbp, %rdi
movl %r15d, %esi
callq 0x80f4
movq %r13, %rdi
movq %rbp, %rsi
callq 0x8a6d
movq %rbp, %rdi
movq %r13, %rsi
callq 0x8628
movq %r13, %rdi
callq 0x8190
movq %r13, %rdi
movl %r15d, %esi
movl %r15d, %edx
callq 0x2de4
leaq 0x30(%rsp), %rbp
movq %rbp, %rdi
movq %r13, %rsi
callq 0x3cbd
movq %r13, %rdi
movq %rbp, %rsi
callq 0x345a
movq %rbp, %rdi
callq 0x2e76
pushq $0x1
popq %rax
movl %eax, %ebp
leal (%r14,%rbp), %eax
cmpl $0x1, %eax
je 0x24f0
leal (%r15,%rbp), %eax
cvtsi2sd %eax, %xmm0
movq %r13, %rdi
movl %ebp, %esi
movl %ebp, %edx
callq 0x37a6
incl %ebp
jmp 0x24cf
leaq 0x30(%rsp), %rbp
movq %rbp, %rdi
movq %r13, %rsi
leaq 0xb0(%rsp), %rdx
callq 0x37bb
leaq 0xf8(%rsp), %rdi
movq %r13, %rsi
callq 0x3c0c
callq 0x20c0
subq %r12, %rax
cvtsi2sd %rax, %xmm0
divsd 0x6aeb(%rip), %xmm0     # 0x9018
movsd %xmm0, 0x70(%rsp)
movq 0xaa96(%rip), %rdi      # 0xcfd0
leaq 0x6aff(%rip), %rsi      # 0x9040
callq 0x2130
movq %rax, %rdi
movl %r15d, %esi
callq 0x21b0
movq %rax, %rdi
leaq 0x6aec(%rip), %rsi      # 0x9047
callq 0x2130
movq %rax, %rdi
movsd 0x70(%rsp), %xmm0
callq 0x2180
movq %rax, %rdi
callq 0x2080
andl $0x0, 0xc(%rsp)
leaq 0x20(%rsp), %rdi
movl %r15d, %esi
callq 0x80f4
callq 0x20c0
movq %rax, %r12
andl $0x0, 0xc(%rsp)
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
movq %r13, %rsi
movq %rbp, %rdx
leaq 0xc(%rsp), %rcx
callq 0x70db
leaq 0x20(%rsp), %rdi
movq %rbx, %rsi
callq 0x8628
movq %rbx, %rdi
callq 0x8190
callq 0x20c0
subq %r12, %rax
cvtsi2sd %rax, %xmm0
divsd 0x6a41(%rip), %xmm0     # 0x9018
movsd %xmm0, 0x70(%rsp)
cvtsi2sdl 0xc(%rsp), %xmm0
movsd %xmm0, 0xf0(%rsp)
movq 0xa9dd(%rip), %rdi      # 0xcfd0
leaq 0x6a5e(%rip), %rsi      # 0x9058
callq 0x2130
movq %rax, %rdi
callq 0x20d0
movq %rax, %rdi
callq 0x2080
callq 0x20c0
movq %rax, %r12
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
movq %r13, %rsi
movq %rbp, %rdx
callq 0x47d6
leaq 0x20(%rsp), %rbp
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x8628
movq %rbx, %rdi
callq 0x8190
callq 0x20c0
subq %r12, %rax
cvtsi2sd %rax, %xmm0
divsd 0x69c1(%rip), %xmm0     # 0x9018
movsd %xmm0, 0xe8(%rsp)
movq %rbx, %rdi
movq %rbp, %rsi
leaq 0xb0(%rsp), %rdx
callq 0x82c4
movq %rbx, %rdi
pushq $0x2
popq %rsi
callq 0x89a6
movsd %xmm0, 0xe0(%rsp)
movq %rbx, %rdi
callq 0x8190
movq 0xa93a(%rip), %rdi      # 0xcfd0
leaq 0x69be(%rip), %rsi      # 0x905b
callq 0x2130
leaq 0xb0(%rsp), %rbx
movq %rax, %rdi
callq 0x20d0
movq %rax, %rdi
callq 0x2080
andl $0x0, 0xc(%rsp)
callq 0x20c0
movq %rax, %r12
leaq 0x10(%rsp), %rbp
movq %rbp, %rdi
movq %r13, %rsi
leaq 0x30(%rsp), %rdx
leaq 0xc(%rsp), %rcx
callq 0x5e60
leaq 0x20(%rsp), %rdi
movq %rbp, %rsi
callq 0x8628
movq %rbp, %rdi
callq 0x8190
callq 0x20c0
subq %r12, %rax
cvtsi2sd %rax, %xmm0
divsd 0x690d(%rip), %xmm0     # 0x9018
movsd %xmm0, 0xd8(%rsp)
cvtsi2sdl 0xc(%rsp), %xmm0
movsd %xmm0, 0xd0(%rsp)
movq 0xa8a6(%rip), %rdi      # 0xcfd0
leaq 0x692e(%rip), %rsi      # 0x905f
callq 0x2130
movq %rax, %rdi
callq 0x20d0
movq %rax, %rdi
callq 0x2080
callq 0x20c0
cmpl $0x8b, %r15d
jg 0x2937
movq %rax, %r12
leaq 0x10(%rsp), %rbp
movq %rbp, %rdi
movq %r13, %rsi
leaq 0x30(%rsp), %rdx
movsd 0x68ad(%rip), %xmm0     # 0x9020
leaq 0xc(%rsp), %rcx
callq 0x613d
leaq 0x20(%rsp), %rdi
movq %rbp, %rsi
callq 0x8628
movq %rbp, %rdi
callq 0x8190
callq 0x20c0
subq %r12, %rax
cvtsi2sd %rax, %xmm0
divsd 0x6871(%rip), %xmm0     # 0x9018
movsd %xmm0, 0xc8(%rsp)
cvtsi2sdl 0xc(%rsp), %xmm0
movsd %xmm0, 0xc0(%rsp)
movq 0xa80a(%rip), %rdi      # 0xcfd0
leaq 0x6897(%rip), %rsi      # 0x9064
callq 0x2130
movq %rax, %rdi
callq 0x20d0
movq %rax, %rdi
callq 0x2080
callq 0x20c0
movq %rax, %r12
andl $0x0, 0xc(%rsp)
leaq 0x10(%rsp), %rbp
movq %rbp, %rdi
movq %r13, %rsi
leaq 0x30(%rsp), %rdx
movsd 0x6821(%rip), %xmm0     # 0x9028
leaq 0xc(%rsp), %rcx
callq 0x613d
leaq 0x20(%rsp), %rdi
movq %rbp, %rsi
callq 0x8628
movsd 0x60(%rsp), %xmm0
addsd 0xc8(%rsp), %xmm0
movsd %xmm0, 0x60(%rsp)
movsd 0x68(%rsp), %xmm0
addsd 0xc0(%rsp), %xmm0
movsd %xmm0, 0x68(%rsp)
movq %rbp, %rdi
callq 0x8190
callq 0x20c0
subq %r12, %rax
cvtsi2sd %rax, %xmm0
divsd 0x67b3(%rip), %xmm0     # 0x9018
movsd 0x50(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x50(%rsp)
cvtsi2sdl 0xc(%rsp), %xmm0
movsd 0x58(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x58(%rsp)
cmpl $0x63, %r15d
jg 0x2937
movq 0xa734(%rip), %rdi      # 0xcfd0
leaq 0x67c7(%rip), %rsi      # 0x906a
callq 0x2130
movq %rax, %rdi
callq 0x20d0
movq %rax, %rdi
callq 0x2080
callq 0x20c0
movq %rax, %r12
andl $0x0, 0xc(%rsp)
leaq 0x10(%rsp), %rbp
movq %rbp, %rdi
movq %r13, %rsi
leaq 0x30(%rsp), %rdx
movsd 0x6753(%rip), %xmm0     # 0x9030
leaq 0xc(%rsp), %rcx
callq 0x613d
leaq 0x20(%rsp), %rdi
movq %rbp, %rsi
callq 0x8628
movq %rbp, %rdi
callq 0x8190
callq 0x20c0
subq %r12, %rax
cvtsi2sd %rax, %xmm0
divsd 0x6707(%rip), %xmm0     # 0x9018
movsd 0x40(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x40(%rsp)
cvtsi2sdl 0xc(%rsp), %xmm0
movsd 0x48(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x48(%rsp)
movsd 0xa0(%rsp), %xmm0
addsd 0x70(%rsp), %xmm0
movsd %xmm0, 0xa0(%rsp)
movsd 0x98(%rsp), %xmm0
addsd 0xf0(%rsp), %xmm0
movsd %xmm0, 0x98(%rsp)
movsd 0x88(%rsp), %xmm0
addsd 0xe8(%rsp), %xmm0
movsd %xmm0, 0x88(%rsp)
movsd 0x90(%rsp), %xmm0
addsd 0xe0(%rsp), %xmm0
movsd %xmm0, 0x90(%rsp)
movsd 0x78(%rsp), %xmm0
addsd 0xd8(%rsp), %xmm0
movsd %xmm0, 0x78(%rsp)
movsd 0x80(%rsp), %xmm0
addsd 0xd0(%rsp), %xmm0
movsd %xmm0, 0x80(%rsp)
leaq 0x20(%rsp), %rdi
callq 0x8190
leaq 0xf8(%rsp), %rdi
callq 0x2e76
leaq 0x30(%rsp), %rdi
callq 0x8190
movq %r13, %rdi
callq 0x2e76
movq %rbx, %rdi
callq 0x8190
movl 0xac(%rsp), %eax
incl %eax
movl 0xa8(%rsp), %ebx
jmp 0x2450
leaq 0x118(%rsp), %r14
movq %r14, %rdi
leaq 0x6647(%rip), %rsi      # 0x906f
pushq $0x1
popq %rdx
callq 0x2040
movq %r14, %rdi
movl %r15d, %esi
callq 0x21b0
movq %rax, %rdi
leaq 0x6633(%rip), %rsi      # 0x9078
callq 0x2130
movsd 0x98(%rsp), %xmm0
divsd 0x65dd(%rip), %xmm0     # 0x9038
movq %r14, %rdi
callq 0x2180
movq %rax, %rdi
leaq 0x660b(%rip), %rsi      # 0x9078
callq 0x2130
movsd 0xa0(%rsp), %xmm0
divsd 0x65b5(%rip), %xmm0     # 0x9038
movq %rax, %rdi
callq 0x2180
movq %rax, %rdi
leaq 0x65e3(%rip), %rsi      # 0x9078
callq 0x2130
xorpd %xmm0, %xmm0
movq %r14, %rdi
callq 0x2180
movq %rax, %rdi
leaq 0x65c8(%rip), %rsi      # 0x9078
callq 0x2130
xorpd %xmm0, %xmm0
movq %rax, %rdi
callq 0x2180
movq %rax, %rdi
leaq 0x65ad(%rip), %rsi      # 0x9078
callq 0x2130
xorpd %xmm0, %xmm0
movq %r14, %rdi
callq 0x2180
movq %rax, %rdi
leaq 0x6592(%rip), %rsi      # 0x9078
callq 0x2130
xorpd %xmm0, %xmm0
movq %rax, %rdi
callq 0x2180
movq %rax, %rdi
leaq 0x6577(%rip), %rsi      # 0x9078
callq 0x2130
movsd 0x88(%rsp), %xmm0
divsd 0x6521(%rip), %xmm0     # 0x9038
movq %r14, %rdi
callq 0x2180
movq %rax, %rdi
leaq 0x654f(%rip), %rsi      # 0x9078
callq 0x2130
movsd 0x90(%rsp), %xmm0
divsd 0x64f9(%rip), %xmm0     # 0x9038
movq %rax, %rdi
callq 0x2180
movq %rax, %rdi
leaq 0x6527(%rip), %rsi      # 0x9078
callq 0x2130
xorpd %xmm0, %xmm0
movq %r14, %rdi
callq 0x2180
movq %rax, %rdi
leaq 0x650c(%rip), %rsi      # 0x9078
callq 0x2130
xorpd %xmm0, %xmm0
movq %rax, %rdi
callq 0x2180
movq %rax, %rdi
leaq 0x64f1(%rip), %rsi      # 0x9078
callq 0x2130
xorpd %xmm0, %xmm0
movq %r14, %rdi
callq 0x2180
movq %rax, %rdi
leaq 0x64d6(%rip), %rsi      # 0x9078
callq 0x2130
xorpd %xmm0, %xmm0
movq %rax, %rdi
callq 0x2180
movq %rax, %rdi
leaq 0x64bb(%rip), %rsi      # 0x9078
callq 0x2130
movsd 0x80(%rsp), %xmm0
divsd 0x6465(%rip), %xmm0     # 0x9038
movq %r14, %rdi
callq 0x2180
movq %rax, %rdi
leaq 0x6493(%rip), %rsi      # 0x9078
callq 0x2130
movsd 0x78(%rsp), %xmm0
divsd 0x6440(%rip), %xmm0     # 0x9038
movq %rax, %rdi
callq 0x2180
movq %rax, %rdi
leaq 0x646e(%rip), %rsi      # 0x9078
callq 0x2130
movsd 0x68(%rsp), %xmm0
divsd 0x641b(%rip), %xmm0     # 0x9038
movq %r14, %rdi
callq 0x2180
movq %rax, %rdi
leaq 0x6449(%rip), %rsi      # 0x9078
callq 0x2130
movsd 0x60(%rsp), %xmm0
divsd 0x63f6(%rip), %xmm0     # 0x9038
movq %rax, %rdi
callq 0x2180
movq %rax, %rdi
leaq 0x6424(%rip), %rsi      # 0x9078
callq 0x2130
movsd 0x58(%rsp), %xmm0
divsd 0x63d1(%rip), %xmm0     # 0x9038
movq %r14, %rdi
callq 0x2180
movq %rax, %rdi
leaq 0x63ff(%rip), %rsi      # 0x9078
callq 0x2130
movsd 0x50(%rsp), %xmm0
divsd 0x63ac(%rip), %xmm0     # 0x9038
movq %rax, %rdi
callq 0x2180
movq %rax, %rdi
leaq 0x63da(%rip), %rsi      # 0x9078
callq 0x2130
movsd 0x48(%rsp), %xmm0
divsd 0x6387(%rip), %xmm0     # 0x9038
movq %r14, %rdi
callq 0x2180
movq %rax, %rdi
leaq 0x63b5(%rip), %rsi      # 0x9078
callq 0x2130
movsd 0x40(%rsp), %xmm0
divsd 0x6362(%rip), %xmm0     # 0x9038
movq %rax, %rdi
callq 0x2180
movq %r14, %rdi
callq 0x2080
movq %r14, %rdi
callq 0x20d0
movq %r14, %rdi
callq 0x2150
incl %ebx
jmp 0x23b5
leaq 0x118(%rsp), %rdi
callq 0x2160
pushq $0x1
popq %rax
addq $0x318, %rsp            # imm = 0x318
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2d42
jmp 0x2d89
jmp 0x2d42
jmp 0x2d42
jmp 0x2d89
jmp 0x2d89
jmp 0x2d42
jmp 0x2d89
jmp 0x2d42
jmp 0x2d89
jmp 0x2d42
jmp 0x2d89
jmp 0x2d84
jmp 0x2daf
jmp 0x2d89
movq %rax, %rbx
jmp 0x2da3
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x8190
jmp 0x2d8c
jmp 0x2daf
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x2e76
jmp 0x2db2
jmp 0x2d7d
jmp 0x2d78
movq %rax, %rbx
leaq 0x108(%rsp), %rdi
callq 0x8190
jmp 0x2dbf
movq %rax, %rbx
jmp 0x2dbf
movq %rax, %rbx
jmp 0x2dcc
jmp 0x2d89
movq %rax, %rbx
jmp 0x2d96
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x8190
leaq 0xf8(%rsp), %rdi
callq 0x2e76
leaq 0x30(%rsp), %rdi
callq 0x8190
jmp 0x2db2
movq %rax, %rbx
leaq 0x108(%rsp), %rdi
callq 0x2e76
leaq 0xb0(%rsp), %rdi
callq 0x8190
leaq 0x118(%rsp), %rdi
callq 0x2160
movq %rbx, %rdi
callq 0x21d0
nopl (%rax)