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

	for (int j=15; j<=50; j+=1){

		/* format of output is
		# format    0 kappa , 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
		*/

		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;
    i = pow(1.09,j)+8;
		outfile<<i<<",";



		// for loop to average measurements
	  for (int k=0;k<=10 ;k++){
			////VERSION Diff  KAPPA same size
			clock_t begin = clock();
			Vector x(100);
			x = randv(x);
			Matrix Q(100,100);
			Q = rand_basis_gs(Q);
			Matrix QT=Q.T();
			Matrix A(100,100);
			A = Q;
			double k0 = i;
			for (int jj=1; jj<=i;  jj++){
				double x = ((k0-1)/float(i-1))*float(jj) + 1.;
				for (int h =1; h<=i; h++){
					A.set_val(jj,h, A(jj,h)*x);
				}
			}
			A = A*QT;
			Vector b = A*x;

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

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

			begin = clock();
			count = 0;
			x1 = CG_pre(A,b, 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<200){
				//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<<"QRs"<<flush<<endl;
      if (i<100){
				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<<"done"<<flush<<endl;
		outfile.open("vary_kappa_N100.txt", fstream::app);
		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<<endl;
		outfile.flush();
		outfile.close();
	}

  return 1;
}

// Assembly:
subq $0x4c8, %rsp            # imm = 0x4C8
movl $0x0, 0x4c4(%rsp)
leaq 0x2c0(%rsp), %rdi
callq 0x21a0
movl $0x1, 0x2bc(%rsp)
movl $0xf, 0x2b8(%rsp)
cmpl $0x32, 0x2b8(%rsp)
jg 0x354e
movq $0x0, 0x2b0(%rsp)
movq $0x0, 0x2a8(%rsp)
movq $0x0, 0x2a0(%rsp)
movq $0x0, 0x298(%rsp)
movq $0x0, 0x290(%rsp)
movq $0x0, 0x288(%rsp)
movq $0x0, 0x280(%rsp)
movq $0x0, 0x278(%rsp)
movq $0x0, 0x270(%rsp)
movq $0x0, 0x268(%rsp)
movq $0x0, 0x260(%rsp)
movq $0x0, 0x258(%rsp)
movl 0x2b8(%rsp), %edi
movsd 0xcb06(%rip), %xmm0     # 0xf008
callq 0x3590
movsd %xmm0, 0xe8(%rsp)
jmp 0x2512
movsd 0xe8(%rsp), %xmm0
movsd 0xcaed(%rip), %xmm1     # 0xf010
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, 0x2bc(%rsp)
movl 0x2bc(%rsp), %esi
leaq 0x2c0(%rsp), %rdi
callq 0x21c0
movq %rax, 0xe0(%rsp)
jmp 0x2550
movq 0xe0(%rsp), %rdi
leaq 0xcad1(%rip), %rsi      # 0xf030
callq 0x2110
jmp 0x2566
movl $0x0, 0x248(%rsp)
cmpl $0xa, 0x248(%rsp)
jg 0x31f9
callq 0x20a0
movq %rax, 0x240(%rsp)
leaq 0x230(%rsp), %rdi
movl $0x64, %esi
callq 0xd0a0
jmp 0x25a0
leaq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rsi
callq 0xe510
jmp 0x25b7
leaq 0x230(%rsp), %rdi
leaq 0x220(%rsp), %rsi
callq 0xdcd0
jmp 0x25ce
leaq 0x220(%rsp), %rdi
callq 0xd1d0
leaq 0x210(%rsp), %rdi
movl $0x64, %edx
movl %edx, %esi
callq 0x35c0
jmp 0x25f1
leaq 0x200(%rsp), %rdi
leaq 0x210(%rsp), %rsi
callq 0x5270
jmp 0x2608
leaq 0x210(%rsp), %rdi
leaq 0x200(%rsp), %rsi
callq 0x4240
jmp 0x261f
leaq 0x200(%rsp), %rdi
callq 0x36c0
leaq 0x1f0(%rsp), %rdi
leaq 0x210(%rsp), %rsi
callq 0x3a50
jmp 0x2643
leaq 0x1e0(%rsp), %rdi
movl $0x64, %edx
movl %edx, %esi
callq 0x35c0
jmp 0x2659
leaq 0x1e0(%rsp), %rdi
leaq 0x210(%rsp), %rsi
callq 0x4240
jmp 0x2670
cvtsi2sdl 0x2bc(%rsp), %xmm0
movsd %xmm0, 0x1d8(%rsp)
movl $0x1, 0x1d4(%rsp)
movl 0x1d4(%rsp), %eax
cmpl 0x2bc(%rsp), %eax
jg 0x2873
movsd 0x1d8(%rsp), %xmm0
movsd 0xc976(%rip), %xmm1     # 0xf028
subsd %xmm1, %xmm0
movl 0x2bc(%rsp), %eax
subl $0x1, %eax
cvtsi2ss %eax, %xmm1
cvtss2sd %xmm1, %xmm1
divsd %xmm1, %xmm0
cvtsi2ssl 0x1d4(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm1, %xmm0
movsd 0xc943(%rip), %xmm1     # 0xf028
addsd %xmm1, %xmm0
movsd %xmm0, 0x1c8(%rsp)
movl $0x1, 0x1c4(%rsp)
movl 0x1c4(%rsp), %eax
cmpl 0x2bc(%rsp), %eax
jg 0x285b
movl 0x1d4(%rsp), %esi
movl %esi, 0xd0(%rsp)
movl 0x1c4(%rsp), %edx
movl %edx, 0xd4(%rsp)
leaq 0x1e0(%rsp), %rdi
callq 0x3740
movq %rax, 0xd8(%rsp)
jmp 0x2744
movl 0xd4(%rsp), %edx
movl 0xd0(%rsp), %esi
movq 0xd8(%rsp), %rax
movsd (%rax), %xmm0
movsd 0x1c8(%rsp), %xmm1
mulsd %xmm1, %xmm0
leaq 0x1e0(%rsp), %rdi
callq 0x4820
jmp 0x277a
jmp 0x277c
movl 0x1c4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1c4(%rsp)
jmp 0x26fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
jmp 0x3575
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
jmp 0x31e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
leaq 0x220(%rsp), %rdi
callq 0xd1d0
jmp 0x31e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
jmp 0x31da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
leaq 0x200(%rsp), %rdi
callq 0x36c0
jmp 0x31da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
jmp 0x31cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
jmp 0x31c0
jmp 0x285d
movl 0x1d4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1d4(%rsp)
jmp 0x268d
leaq 0x1b0(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
leaq 0x1f0(%rsp), %rdx
callq 0x4610
jmp 0x2892
leaq 0x1e0(%rsp), %rdi
leaq 0x1b0(%rsp), %rsi
callq 0x4240
jmp 0x28a9
leaq 0x1b0(%rsp), %rdi
callq 0x36c0
leaq 0x1a0(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
leaq 0x230(%rsp), %rdx
callq 0x4860
jmp 0x28d5
callq 0x20a0
movq %rax, 0x198(%rsp)
movq 0x198(%rsp), %rax
movq 0x240(%rsp), %rcx
subq %rcx, %rax
cvtsi2sd %rax, %xmm0
movsd 0xc71e(%rip), %xmm1     # 0xf020
divsd %xmm1, %xmm0
movsd %xmm0, 0x190(%rsp)
movq 0xf6b2(%rip), %rdi      # 0x11fc8
leaq 0xc715(%rip), %rsi      # 0xf032
callq 0x2110
movq %rax, 0xc8(%rsp)
jmp 0x292c
movq 0xc8(%rsp), %rdi
movl 0x2bc(%rsp), %esi
callq 0x21c0
movq %rax, 0xc0(%rsp)
jmp 0x294a
movq 0xc0(%rsp), %rdi
leaq 0xc6e1(%rip), %rsi      # 0xf03a
callq 0x2110
movq %rax, 0xb8(%rsp)
jmp 0x2968
movq 0xb8(%rsp), %rdi
movsd 0x190(%rsp), %xmm0
callq 0x2210
movq %rax, 0xb0(%rsp)
jmp 0x2988
movq 0xb0(%rsp), %rdi
movq 0xf621(%rip), %rsi      # 0x11fb8
callq 0x2120
jmp 0x299e
movl $0x0, 0x18c(%rsp)
callq 0x20a0
movq %rax, 0x240(%rsp)
movl $0x0, 0x18c(%rsp)
leaq 0x178(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
leaq 0x1a0(%rsp), %rdx
leaq 0x18c(%rsp), %rcx
callq 0xaf80
jmp 0x29e8
callq 0x20a0
movq %rax, 0x198(%rsp)
movq 0x198(%rsp), %rax
movq 0x240(%rsp), %rcx
subq %rcx, %rax
cvtsi2sd %rax, %xmm0
movsd 0xc60b(%rip), %xmm1     # 0xf020
divsd %xmm1, %xmm0
movsd %xmm0, 0x190(%rsp)
movsd 0x190(%rsp), %xmm1
movsd 0x2a8(%rsp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x2a8(%rsp)
cvtsi2sdl 0x18c(%rsp), %xmm1
movsd 0x2b0(%rsp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x2b0(%rsp)
callq 0x20a0
movq %rax, 0x240(%rsp)
movl $0x0, 0x18c(%rsp)
leaq 0x168(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
leaq 0x1a0(%rsp), %rdx
leaq 0x18c(%rsp), %rcx
callq 0xb470
jmp 0x2a9f
leaq 0x178(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0xdcd0
jmp 0x2ab6
leaq 0x168(%rsp), %rdi
callq 0xd1d0
callq 0x20a0
movq %rax, 0x198(%rsp)
movq 0x198(%rsp), %rax
movq 0x240(%rsp), %rcx
subq %rcx, %rax
cvtsi2sd %rax, %xmm0
movsd 0xc530(%rip), %xmm1     # 0xf020
divsd %xmm1, %xmm0
movsd %xmm0, 0x190(%rsp)
movsd 0x190(%rsp), %xmm1
movsd 0x298(%rsp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x298(%rsp)
cvtsi2sdl 0x18c(%rsp), %xmm1
movsd 0x2a0(%rsp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x2a0(%rsp)
callq 0x20a0
movq %rax, 0x240(%rsp)
movl $0x0, 0x18c(%rsp)
leaq 0x158(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
leaq 0x1a0(%rsp), %rdx
leaq 0x18c(%rsp), %rcx
callq 0xbf20
jmp 0x2b7a
leaq 0x178(%rsp), %rdi
leaq 0x158(%rsp), %rsi
callq 0xdcd0
jmp 0x2b91
leaq 0x158(%rsp), %rdi
callq 0xd1d0
callq 0x20a0
movq %rax, 0x198(%rsp)
movq 0x198(%rsp), %rax
movq 0x240(%rsp), %rcx
subq %rcx, %rax
cvtsi2sd %rax, %xmm0
movsd 0xc455(%rip), %xmm1     # 0xf020
divsd %xmm1, %xmm0
movsd %xmm0, 0x190(%rsp)
movsd 0x190(%rsp), %xmm1
movsd 0x288(%rsp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x288(%rsp)
cvtsi2sdl 0x18c(%rsp), %xmm1
movsd 0x290(%rsp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x290(%rsp)
callq 0x20a0
movq %rax, 0x240(%rsp)
leaq 0x148(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
leaq 0x1a0(%rsp), %rdx
callq 0x6710
jmp 0x2c42
leaq 0x178(%rsp), %rdi
leaq 0x148(%rsp), %rsi
callq 0xdcd0
jmp 0x2c59
leaq 0x148(%rsp), %rdi
callq 0xd1d0
callq 0x20a0
movq %rax, 0x198(%rsp)
movq 0x198(%rsp), %rax
movq 0x240(%rsp), %rcx
subq %rcx, %rax
cvtsi2sd %rax, %xmm0
movsd 0xc38d(%rip), %xmm1     # 0xf020
divsd %xmm1, %xmm0
movsd %xmm0, 0x190(%rsp)
leaq 0x130(%rsp), %rdi
leaq 0x178(%rsp), %rsi
leaq 0x230(%rsp), %rdx
callq 0xd4d0
jmp 0x2cbf
leaq 0x130(%rsp), %rdi
movl $0x2, %esi
callq 0xe380
movsd %xmm0, 0xa8(%rsp)
jmp 0x2cdc
leaq 0x130(%rsp), %rdi
callq 0xd1d0
movsd 0xa8(%rsp), %xmm0
movsd %xmm0, 0x140(%rsp)
movsd 0x190(%rsp), %xmm0
addsd 0x280(%rsp), %xmm0
movsd %xmm0, 0x280(%rsp)
movsd 0x140(%rsp), %xmm0
addsd 0x278(%rsp), %xmm0
movsd %xmm0, 0x278(%rsp)
cmpl $0xc8, 0x2bc(%rsp)
jge 0x2f9e
callq 0x20a0
movq %rax, 0x240(%rsp)
leaq 0x120(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
leaq 0x1a0(%rsp), %rdx
callq 0x80a0
jmp 0x2d6e
leaq 0x178(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0xdcd0
jmp 0x2d85
leaq 0x120(%rsp), %rdi
callq 0xd1d0
callq 0x20a0
movq %rax, 0x198(%rsp)
movq 0x198(%rsp), %rax
movq 0x240(%rsp), %rcx
subq %rcx, %rax
cvtsi2sd %rax, %xmm0
movsd 0xc261(%rip), %xmm1     # 0xf020
divsd %xmm1, %xmm0
movsd %xmm0, 0x190(%rsp)
leaq 0x110(%rsp), %rdi
leaq 0x178(%rsp), %rsi
leaq 0x230(%rsp), %rdx
callq 0xd4d0
jmp 0x2deb
leaq 0x110(%rsp), %rdi
movl $0x2, %esi
callq 0xe380
movsd %xmm0, 0xa0(%rsp)
jmp 0x2e08
movsd 0xa0(%rsp), %xmm0
movsd %xmm0, 0x140(%rsp)
leaq 0x110(%rsp), %rdi
callq 0xd1d0
movsd 0x190(%rsp), %xmm0
addsd 0x270(%rsp), %xmm0
movsd %xmm0, 0x270(%rsp)
movsd 0x140(%rsp), %xmm0
addsd 0x268(%rsp), %xmm0
movsd %xmm0, 0x268(%rsp)
jmp 0x2fb6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
leaq 0x1b0(%rsp), %rdi
callq 0x36c0
jmp 0x31c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
jmp 0x31b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
jmp 0x31a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
leaq 0x168(%rsp), %rdi
callq 0xd1d0
jmp 0x31a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
leaq 0x158(%rsp), %rdi
callq 0xd1d0
jmp 0x31a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
leaq 0x148(%rsp), %rdi
callq 0xd1d0
jmp 0x31a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
leaq 0x130(%rsp), %rdi
callq 0xd1d0
jmp 0x31a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
leaq 0x120(%rsp), %rdi
callq 0xd1d0
jmp 0x31a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
leaq 0x110(%rsp), %rdi
callq 0xd1d0
jmp 0x31a6
xorps %xmm0, %xmm0
movsd %xmm0, 0x270(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x268(%rsp)
cmpl $0x64, 0x2bc(%rsp)
jge 0x312a
callq 0x20a0
movq %rax, 0x240(%rsp)
leaq 0x100(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
leaq 0x1a0(%rsp), %rdx
callq 0x6f70
jmp 0x2ff0
leaq 0x178(%rsp), %rdi
leaq 0x100(%rsp), %rsi
callq 0xdcd0
jmp 0x3007
leaq 0x100(%rsp), %rdi
callq 0xd1d0
callq 0x20a0
movq %rax, 0x198(%rsp)
movq 0x198(%rsp), %rax
movq 0x240(%rsp), %rcx
subq %rcx, %rax
cvtsi2sd %rax, %xmm0
movsd 0xbfdf(%rip), %xmm1     # 0xf020
divsd %xmm1, %xmm0
movsd %xmm0, 0x190(%rsp)
leaq 0xf0(%rsp), %rdi
leaq 0x178(%rsp), %rsi
leaq 0x230(%rsp), %rdx
callq 0xd4d0
jmp 0x306d
leaq 0xf0(%rsp), %rdi
movl $0x2, %esi
callq 0xe380
movsd %xmm0, 0x98(%rsp)
jmp 0x308a
movsd 0x98(%rsp), %xmm0
movsd %xmm0, 0x140(%rsp)
leaq 0xf0(%rsp), %rdi
callq 0xd1d0
movsd 0x190(%rsp), %xmm0
addsd 0x260(%rsp), %xmm0
movsd %xmm0, 0x260(%rsp)
movsd 0x140(%rsp), %xmm0
addsd 0x258(%rsp), %xmm0
movsd %xmm0, 0x258(%rsp)
jmp 0x3142
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
leaq 0x100(%rsp), %rdi
callq 0xd1d0
jmp 0x31a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
leaq 0xf0(%rsp), %rdi
callq 0xd1d0
jmp 0x31a6
xorps %xmm0, %xmm0
movsd %xmm0, 0x260(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x258(%rsp)
leaq 0x178(%rsp), %rdi
callq 0xd1d0
leaq 0x1a0(%rsp), %rdi
callq 0xd1d0
leaq 0x1e0(%rsp), %rdi
callq 0x36c0
leaq 0x1f0(%rsp), %rdi
callq 0x36c0
leaq 0x210(%rsp), %rdi
callq 0x36c0
leaq 0x230(%rsp), %rdi
callq 0xd1d0
movl 0x248(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x248(%rsp)
jmp 0x2571
leaq 0x178(%rsp), %rdi
callq 0xd1d0
leaq 0x1a0(%rsp), %rdi
callq 0xd1d0
leaq 0x1e0(%rsp), %rdi
callq 0x36c0
leaq 0x1f0(%rsp), %rdi
callq 0x36c0
leaq 0x210(%rsp), %rdi
callq 0x36c0
leaq 0x230(%rsp), %rdi
callq 0xd1d0
jmp 0x3575
leaq 0xbe4b(%rip), %rsi      # 0xf04b
leaq 0x2c0(%rsp), %rdi
movl $0x1, %edx
callq 0x2050
jmp 0x3214
movsd 0x2b0(%rsp), %xmm0
movsd 0xbdf3(%rip), %xmm1     # 0xf018
divsd %xmm1, %xmm0
leaq 0x2c0(%rsp), %rdi
callq 0x2210
movq %rax, 0x90(%rsp)
jmp 0x3240
movq 0x90(%rsp), %rdi
leaq 0xbde1(%rip), %rsi      # 0xf030
callq 0x2110
movq %rax, 0x88(%rsp)
jmp 0x325e
movq 0x88(%rsp), %rdi
movsd 0x2a8(%rsp), %xmm0
movsd 0xbda1(%rip), %xmm1     # 0xf018
divsd %xmm1, %xmm0
callq 0x2210
movq %rax, 0x80(%rsp)
jmp 0x328a
movq 0x80(%rsp), %rdi
leaq 0xbd97(%rip), %rsi      # 0xf030
callq 0x2110
jmp 0x32a0
movsd 0x2a0(%rsp), %xmm0
movsd 0xbd67(%rip), %xmm1     # 0xf018
divsd %xmm1, %xmm0
leaq 0x2c0(%rsp), %rdi
callq 0x2210
movq %rax, 0x78(%rsp)
jmp 0x32c9
movq 0x78(%rsp), %rdi
leaq 0xbd5b(%rip), %rsi      # 0xf030
callq 0x2110
movq %rax, 0x70(%rsp)
jmp 0x32e1
movq 0x70(%rsp), %rdi
movsd 0x298(%rsp), %xmm0
movsd 0xbd21(%rip), %xmm1     # 0xf018
divsd %xmm1, %xmm0
callq 0x2210
movq %rax, 0x68(%rsp)
jmp 0x3307
movq 0x68(%rsp), %rdi
leaq 0xbd1d(%rip), %rsi      # 0xf030
callq 0x2110
jmp 0x331a
movsd 0x290(%rsp), %xmm0
movsd 0xbced(%rip), %xmm1     # 0xf018
divsd %xmm1, %xmm0
leaq 0x2c0(%rsp), %rdi
callq 0x2210
movq %rax, 0x60(%rsp)
jmp 0x3343
movq 0x60(%rsp), %rdi
leaq 0xbce1(%rip), %rsi      # 0xf030
callq 0x2110
movq %rax, 0x58(%rsp)
jmp 0x335b
movq 0x58(%rsp), %rdi
movsd 0x288(%rsp), %xmm0
movsd 0xbca7(%rip), %xmm1     # 0xf018
divsd %xmm1, %xmm0
callq 0x2210
movq %rax, 0x50(%rsp)
jmp 0x3381
movq 0x50(%rsp), %rdi
leaq 0xbca3(%rip), %rsi      # 0xf030
callq 0x2110
jmp 0x3394
movsd 0x280(%rsp), %xmm0
movsd 0xbc73(%rip), %xmm1     # 0xf018
divsd %xmm1, %xmm0
leaq 0x2c0(%rsp), %rdi
callq 0x2210
movq %rax, 0x48(%rsp)
jmp 0x33bd
movq 0x48(%rsp), %rdi
leaq 0xbc67(%rip), %rsi      # 0xf030
callq 0x2110
movq %rax, 0x40(%rsp)
jmp 0x33d5
movq 0x40(%rsp), %rdi
movsd 0x278(%rsp), %xmm0
movsd 0xbc2d(%rip), %xmm1     # 0xf018
divsd %xmm1, %xmm0
callq 0x2210
movq %rax, 0x38(%rsp)
jmp 0x33fb
movq 0x38(%rsp), %rdi
leaq 0xbc29(%rip), %rsi      # 0xf030
callq 0x2110
jmp 0x340e
movsd 0x270(%rsp), %xmm0
movsd 0xbbf9(%rip), %xmm1     # 0xf018
divsd %xmm1, %xmm0
leaq 0x2c0(%rsp), %rdi
callq 0x2210
movq %rax, 0x30(%rsp)
jmp 0x3437
movq 0x30(%rsp), %rdi
leaq 0xbbed(%rip), %rsi      # 0xf030
callq 0x2110
movq %rax, 0x28(%rsp)
jmp 0x344f
movq 0x28(%rsp), %rdi
movsd 0x268(%rsp), %xmm0
movsd 0xbbb3(%rip), %xmm1     # 0xf018
divsd %xmm1, %xmm0
callq 0x2210
movq %rax, 0x20(%rsp)
jmp 0x3475
movq 0x20(%rsp), %rdi
leaq 0xbbaf(%rip), %rsi      # 0xf030
callq 0x2110
jmp 0x3488
movsd 0x260(%rsp), %xmm0
movsd 0xbb7f(%rip), %xmm1     # 0xf018
divsd %xmm1, %xmm0
leaq 0x2c0(%rsp), %rdi
callq 0x2210
movq %rax, 0x18(%rsp)
jmp 0x34b1
movq 0x18(%rsp), %rdi
leaq 0xbb73(%rip), %rsi      # 0xf030
callq 0x2110
movq %rax, 0x10(%rsp)
jmp 0x34c9
movq 0x10(%rsp), %rdi
movsd 0x258(%rsp), %xmm0
movsd 0xbb39(%rip), %xmm1     # 0xf018
divsd %xmm1, %xmm0
callq 0x2210
movq %rax, 0x8(%rsp)
jmp 0x34ef
movq 0x8(%rsp), %rdi
leaq 0xbb35(%rip), %rsi      # 0xf030
callq 0x2110
jmp 0x3502
movq 0xeaaf(%rip), %rsi      # 0x11fb8
leaq 0x2c0(%rsp), %rdi
callq 0x2120
jmp 0x3518
leaq 0x2c0(%rsp), %rdi
callq 0x20b0
jmp 0x3527
leaq 0x2c0(%rsp), %rdi
callq 0x2170
jmp 0x3536
jmp 0x3538
movl 0x2b8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x2b8(%rsp)
jmp 0x2455
movl $0x1, 0x4c4(%rsp)
leaq 0x2c0(%rsp), %rdi
callq 0x2180
movl 0x4c4(%rsp), %eax
addq $0x4c8, %rsp            # imm = 0x4C8
retq
leaq 0x2c0(%rsp), %rdi
callq 0x2180
movq 0x250(%rsp), %rdi
callq 0x21e0
nop