// File: IlanPrice[P]Linear-Algebra-Library-in-Cplusplus/Matrix.cpp
// Function: MINRES(Matrix const&, Vector const&)
Vector MINRES(const Matrix& A, const Vector& b)
{
	std::ofstream MINRESres;
	MINRESres.open("MINRESres.txt");
	int n = length(b);
	Vector x(n);
	Vector temp1 = A*x;
	Vector r = b - temp1;
	double norm_r = norm(r);
	MINRESres << std::setprecision(15) << norm_r << "\n";
	double norm_r0 = norm_r;
	Vector v = r/norm_r;
	Matrix V(length(v),n);
	Matrix H(n+1,n);
	Vector r_e1(n+1);
	r_e1(1) = norm_r0;
	Matrix G = eye(n+1);
	V.setElements(1,n,1,1,v);
	double Tol = 1e-15;
	int k=0;
	double gamma = 0;
	while (norm_r > Tol)
		{
			k = k+1;
			Vector v_k = V.getElements(1,n,k,k,"Vector");
			Vector w = A*v_k;
			double delta = v_k*w;
			H(k,k) = delta;
			if (k>1)
			{
				H(k-1,k) = gamma;
				w = w - delta*v_k - gamma*V.getElements(1,n,k-1,k-1,"Vector");
			}
			else
			{
					w = w - delta*v_k;
			}
			gamma = norm(w);
			H(k+1,k) = gamma;
			if (gamma<1e-13)
			{ break;}
			else
			{
				Vector v_kplus1 = w/gamma;
				V.setElements(1,n,k+1,k+1,v_kplus1);
				Matrix Hhat = H.getElements(1,(k+1),1,k);
				Hhat = G.getElements(1,k+1,1,k+1)*Hhat;
				std::pair<double,double> g = givens(Hhat(k,k),Hhat(k+1,k));
				double gcos = g.first; double gsin = g.second;
				G.applygivens(k,k+1,gcos,gsin);
				norm_r = std::abs(norm_r*gsin);
				MINRESres << std::setprecision(15) << norm_r << "\n";
			}

		}

		r_e1.setValues(1,k+1,G.getElements(1,k+1,1,k+1)*r_e1.getValues(1,k+1));
		H.setElements(1,k+1,1,k, G.getElements(1,k+1,1,k+1)*H.getElements(1,(k+1),1,k));
		Vector y = backsubst(H.getElements(1,k,1,k),r_e1.getValues(1,k), 3);
		Vector xfinal = temp1 + V.getElements(1,n,1,k)*y;
		MINRESres.close();
		return xfinal;
}

// Assembly:
subq $0x658, %rsp            # imm = 0x658
movq %rdi, 0x138(%rsp)
movq %rdi, %rax
movq %rax, 0x140(%rsp)
movq %rdi, 0x650(%rsp)
movq %rsi, 0x648(%rsp)
movq %rdx, 0x640(%rsp)
leaq 0x440(%rsp), %rdi
movq %rdi, 0x148(%rsp)
callq 0x2170
movq 0x148(%rsp), %rdi
leaq 0x63bf(%rip), %rsi      # 0x125b5
movl $0x10, %edx
callq 0x2050
jmp 0xc202
movq 0x640(%rsp), %rdi
callq 0x4090
movl %eax, 0x134(%rsp)
jmp 0xc218
movl 0x134(%rsp), %eax
movl %eax, 0x430(%rsp)
movl 0x430(%rsp), %esi
leaq 0x420(%rsp), %rdi
callq 0x2d70
jmp 0xc23c
movq 0x648(%rsp), %rsi
leaq 0x410(%rsp), %rdi
leaq 0x420(%rsp), %rdx
callq 0x6f70
jmp 0xc25b
movq 0x640(%rsp), %rsi
leaq 0x400(%rsp), %rdi
leaq 0x410(%rsp), %rdx
callq 0x31a0
jmp 0xc27a
leaq 0x400(%rsp), %rdi
movl $0x2, %esi
callq 0x3fe0
movsd %xmm0, 0x128(%rsp)
jmp 0xc297
movsd 0x128(%rsp), %xmm0
movsd %xmm0, 0x3f8(%rsp)
movl $0xf, %edi
callq 0x10e10
movl %eax, 0x124(%rsp)
jmp 0xc2bc
movl 0x124(%rsp), %eax
movl %eax, 0x3f4(%rsp)
movl 0x3f4(%rsp), %esi
leaq 0x440(%rsp), %rdi
callq 0x2160
movq %rax, 0x118(%rsp)
jmp 0xc2e8
movq 0x118(%rsp), %rdi
movsd 0x3f8(%rsp), %xmm0
callq 0x21d0
movq %rax, 0x110(%rsp)
jmp 0xc308
movq 0x110(%rsp), %rdi
leaq 0x5f93(%rip), %rsi      # 0x122aa
callq 0x20e0
jmp 0xc31e
movsd 0x3f8(%rsp), %xmm0
movsd %xmm0, 0x3e8(%rsp)
leaq 0x3d8(%rsp), %rdi
leaq 0x400(%rsp), %rsi
leaq 0x3f8(%rsp), %rdx
callq 0x36f0
jmp 0xc34f
leaq 0x3d8(%rsp), %rdi
callq 0x4090
movl %eax, 0x10c(%rsp)
jmp 0xc365
movl 0x10c(%rsp), %esi
movl 0x430(%rsp), %edx
leaq 0x3c8(%rsp), %rdi
callq 0x4e80
jmp 0xc382
movl 0x430(%rsp), %edx
movl %edx, %esi
incl %esi
leaq 0x3b8(%rsp), %rdi
callq 0x4e80
jmp 0xc39c
movl 0x430(%rsp), %esi
incl %esi
leaq 0x3a8(%rsp), %rdi
callq 0x2d70
jmp 0xc3b4
movsd 0x3e8(%rsp), %xmm0
movsd %xmm0, 0xf8(%rsp)
leaq 0x3a8(%rsp), %rdi
movl $0x1, %esi
callq 0x3ee0
movq %rax, 0x100(%rsp)
jmp 0xc3e2
movq 0x100(%rsp), %rax
movsd 0xf8(%rsp), %xmm0
movsd %xmm0, (%rax)
movl 0x430(%rsp), %esi
incl %esi
leaq 0x398(%rsp), %rdi
callq 0xa210
jmp 0xc40f
movl 0x430(%rsp), %eax
movl %eax, 0xf4(%rsp)
leaq 0x388(%rsp), %rdi
leaq 0x3d8(%rsp), %rsi
callq 0x2e00
jmp 0xc434
movl 0xf4(%rsp), %edx
leaq 0x3c8(%rsp), %rdi
movl $0x1, %r8d
leaq 0x388(%rsp), %r9
movl %r8d, %esi
movl %r8d, %ecx
callq 0x6340
jmp 0xc45e
leaq 0x388(%rsp), %rdi
callq 0x2ea0
movsd 0x5e3d(%rip), %xmm0     # 0x122b0
movsd %xmm0, 0x380(%rsp)
movl $0x0, 0x37c(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x370(%rsp)
movsd 0x3f8(%rsp), %xmm0
ucomisd 0x380(%rsp), %xmm0
jbe 0xcf4e
movl 0x37c(%rsp), %eax
incl %eax
movl %eax, 0x37c(%rsp)
movl 0x430(%rsp), %eax
movl %eax, 0xdc(%rsp)
movl 0x37c(%rsp), %eax
movl %eax, 0xe0(%rsp)
movl %eax, 0xe4(%rsp)
leaq 0x33f(%rsp), %rdi
movq %rdi, 0xe8(%rsp)
callq 0x21c0
movq 0xe8(%rsp), %rdx
leaq 0x60ac(%rip), %rsi      # 0x125ae
leaq 0x340(%rsp), %rdi
callq 0x2110
jmp 0xc511
movl 0xe0(%rsp), %r9d
movl 0xe4(%rsp), %r8d
movl 0xdc(%rsp), %ecx
movq %rsp, %rax
leaq 0x340(%rsp), %rdx
movq %rdx, (%rax)
leaq 0x360(%rsp), %rdi
leaq 0x3c8(%rsp), %rsi
movl $0x1, %edx
callq 0x5870
jmp 0xc552
leaq 0x340(%rsp), %rdi
callq 0x2080
leaq 0x33f(%rsp), %rdi
callq 0x20f0
movq 0x648(%rsp), %rsi
leaq 0x328(%rsp), %rdi
leaq 0x360(%rsp), %rdx
callq 0x6f70
jmp 0xc58b
leaq 0x360(%rsp), %rdi
leaq 0x328(%rsp), %rsi
callq 0x3470
movsd %xmm0, 0xd0(%rsp)
jmp 0xc5ab
movsd 0xd0(%rsp), %xmm0
movsd %xmm0, 0x320(%rsp)
movsd 0x320(%rsp), %xmm0
movsd %xmm0, 0xc0(%rsp)
movl 0x37c(%rsp), %edx
leaq 0x3b8(%rsp), %rdi
movl %edx, %esi
callq 0x96e0
movq %rax, 0xc8(%rsp)
jmp 0xc5ef
movq 0xc8(%rsp), %rax
movsd 0xc0(%rsp), %xmm0
movsd %xmm0, (%rax)
cmpl $0x1, 0x37c(%rsp)
jle 0xca51
movsd 0x370(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
movl 0x37c(%rsp), %edx
movl %edx, %esi
decl %esi
leaq 0x3b8(%rsp), %rdi
callq 0x96e0
movq %rax, 0xb8(%rsp)
jmp 0xc646
movq 0xb8(%rsp), %rax
movsd 0xb0(%rsp), %xmm0
movsd %xmm0, (%rax)
leaq 0x2f0(%rsp), %rdi
leaq 0x320(%rsp), %rsi
leaq 0x360(%rsp), %rdx
callq 0x3640
jmp 0xc67a
leaq 0x300(%rsp), %rdi
leaq 0x328(%rsp), %rsi
leaq 0x2f0(%rsp), %rdx
callq 0x31a0
jmp 0xc699
movl 0x430(%rsp), %eax
movl %eax, 0x9c(%rsp)
movl 0x37c(%rsp), %eax
decl %eax
movl %eax, 0xa0(%rsp)
movl %eax, 0xa4(%rsp)
leaq 0x2af(%rsp), %rdi
movq %rdi, 0xa8(%rsp)
callq 0x21c0
movq 0xa8(%rsp), %rdx
leaq 0x5ecc(%rip), %rsi      # 0x125ae
leaq 0x2b0(%rsp), %rdi
callq 0x2110
jmp 0xc6f1
movl 0xa4(%rsp), %r9d
movl 0xa0(%rsp), %r8d
movl 0x9c(%rsp), %ecx
movq %rsp, %rax
leaq 0x2b0(%rsp), %rdx
movq %rdx, (%rax)
leaq 0x2d0(%rsp), %rdi
leaq 0x3c8(%rsp), %rsi
movl $0x1, %edx
callq 0x5870
jmp 0xc732
leaq 0x2e0(%rsp), %rdi
leaq 0x370(%rsp), %rsi
leaq 0x2d0(%rsp), %rdx
callq 0x3640
jmp 0xc751
leaq 0x310(%rsp), %rdi
leaq 0x300(%rsp), %rsi
leaq 0x2e0(%rsp), %rdx
callq 0x31a0
jmp 0xc770
leaq 0x328(%rsp), %rdi
leaq 0x310(%rsp), %rsi
callq 0x39a0
jmp 0xc787
leaq 0x310(%rsp), %rdi
callq 0x2ea0
leaq 0x2e0(%rsp), %rdi
callq 0x2ea0
leaq 0x2d0(%rsp), %rdi
callq 0x2ea0
leaq 0x2b0(%rsp), %rdi
callq 0x2080
leaq 0x2af(%rsp), %rdi
callq 0x20f0
leaq 0x300(%rsp), %rdi
callq 0x2ea0
leaq 0x2f0(%rsp), %rdi
callq 0x2ea0
jmp 0xcb0b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xd4eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xd4de
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xd4d1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xd4c4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xd4b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xd4aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xd49d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xd490
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xd483
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
leaq 0x388(%rsp), %rdi
callq 0x2ea0
jmp 0xd483
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xc925
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
leaq 0x340(%rsp), %rdi
callq 0x2080
leaq 0x33f(%rsp), %rdi
callq 0x20f0
jmp 0xd483
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xcf3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xcf2f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xca3f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xca25
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xca18
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xca0b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xc9fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
leaq 0x310(%rsp), %rdi
callq 0x2ea0
leaq 0x2e0(%rsp), %rdi
callq 0x2ea0
leaq 0x2d0(%rsp), %rdi
callq 0x2ea0
leaq 0x2b0(%rsp), %rdi
callq 0x2080
leaq 0x2af(%rsp), %rdi
callq 0x20f0
leaq 0x300(%rsp), %rdi
callq 0x2ea0
leaq 0x2f0(%rsp), %rdi
callq 0x2ea0
jmp 0xcf2f
leaq 0x288(%rsp), %rdi
leaq 0x320(%rsp), %rsi
leaq 0x360(%rsp), %rdx
callq 0x3640
jmp 0xca70
leaq 0x298(%rsp), %rdi
leaq 0x328(%rsp), %rsi
leaq 0x288(%rsp), %rdx
callq 0x31a0
jmp 0xca8f
leaq 0x328(%rsp), %rdi
leaq 0x298(%rsp), %rsi
callq 0x39a0
jmp 0xcaa6
leaq 0x298(%rsp), %rdi
callq 0x2ea0
leaq 0x288(%rsp), %rdi
callq 0x2ea0
jmp 0xcb0b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xcaf9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
leaq 0x298(%rsp), %rdi
callq 0x2ea0
leaq 0x288(%rsp), %rdi
callq 0x2ea0
jmp 0xcf2f
leaq 0x328(%rsp), %rdi
movl $0x2, %esi
callq 0x3fe0
movsd %xmm0, 0x90(%rsp)
jmp 0xcb28
movsd 0x90(%rsp), %xmm0
movsd %xmm0, 0x370(%rsp)
movsd 0x370(%rsp), %xmm0
movsd %xmm0, 0x80(%rsp)
movl 0x37c(%rsp), %edx
movl %edx, %esi
incl %esi
leaq 0x3b8(%rsp), %rdi
callq 0x96e0
movq %rax, 0x88(%rsp)
jmp 0xcb6e
movq 0x88(%rsp), %rax
movsd 0x80(%rsp), %xmm0
movsd %xmm0, (%rax)
movsd 0x5735(%rip), %xmm0     # 0x122c0
ucomisd 0x370(%rsp), %xmm0
jbe 0xcba6
movl $0x3, 0x284(%rsp)
jmp 0xcf01
leaq 0x270(%rsp), %rdi
leaq 0x328(%rsp), %rsi
leaq 0x370(%rsp), %rdx
callq 0x36f0
jmp 0xcbc5
movl 0x430(%rsp), %eax
movl %eax, 0x74(%rsp)
movl 0x37c(%rsp), %eax
incl %eax
movl %eax, 0x78(%rsp)
movl %eax, 0x7c(%rsp)
leaq 0x260(%rsp), %rdi
leaq 0x270(%rsp), %rsi
callq 0x2e00
jmp 0xcbf8
movl 0x78(%rsp), %r8d
movl 0x7c(%rsp), %ecx
movl 0x74(%rsp), %edx
leaq 0x3c8(%rsp), %rdi
movl $0x1, %esi
leaq 0x260(%rsp), %r9
callq 0x6340
jmp 0xcc21
leaq 0x260(%rsp), %rdi
callq 0x2ea0
movl 0x37c(%rsp), %r9d
movl %r9d, %ecx
incl %ecx
leaq 0x250(%rsp), %rdi
leaq 0x3b8(%rsp), %rsi
movl $0x1, %r8d
movl %r8d, %edx
callq 0x5440
jmp 0xcc5b
movl 0x37c(%rsp), %r9d
incl %r9d
leaq 0x230(%rsp), %rdi
leaq 0x398(%rsp), %rsi
movl $0x1, %r8d
movl %r8d, %edx
movl %r9d, %ecx
callq 0x5440
jmp 0xcc89
leaq 0x240(%rsp), %rdi
leaq 0x230(%rsp), %rsi
leaq 0x250(%rsp), %rdx
callq 0x6cc0
jmp 0xcca8
leaq 0x250(%rsp), %rdi
movq %rdi, 0x60(%rsp)
leaq 0x240(%rsp), %rsi
movq %rsi, 0x58(%rsp)
callq 0x9930
movq 0x58(%rsp), %rdi
callq 0x5230
leaq 0x230(%rsp), %rdi
callq 0x5230
movq 0x60(%rsp), %rdi
movl 0x37c(%rsp), %edx
movl %edx, %esi
callq 0x96e0
movq %rax, 0x68(%rsp)
jmp 0xccf8
movq 0x68(%rsp), %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x48(%rsp)
movl 0x37c(%rsp), %edx
movl %edx, %esi
incl %esi
leaq 0x250(%rsp), %rdi
callq 0x96e0
movq %rax, 0x50(%rsp)
jmp 0xcd26
movsd 0x48(%rsp), %xmm0
movq 0x50(%rsp), %rax
movsd (%rax), %xmm1
callq 0xbf90
movsd %xmm1, 0x38(%rsp)
movsd %xmm0, 0x40(%rsp)
jmp 0xcd48
movsd 0x38(%rsp), %xmm0
movsd 0x40(%rsp), %xmm1
movsd %xmm1, 0x220(%rsp)
movsd %xmm0, 0x228(%rsp)
movsd 0x220(%rsp), %xmm0
movsd %xmm0, 0x218(%rsp)
movsd 0x228(%rsp), %xmm0
movsd %xmm0, 0x210(%rsp)
movl 0x37c(%rsp), %esi
movl %esi, %edx
incl %edx
movsd 0x218(%rsp), %xmm0
movsd 0x210(%rsp), %xmm1
leaq 0x398(%rsp), %rdi
callq 0xc030
jmp 0xcdb6
movsd 0x3f8(%rsp), %xmm0
movsd 0x210(%rsp), %xmm1
mulsd %xmm1, %xmm0
callq 0x10e30
movsd %xmm0, 0x30(%rsp)
jmp 0xcdd9
movsd 0x30(%rsp), %xmm0
movsd %xmm0, 0x3f8(%rsp)
movl $0xf, %edi
callq 0x10e10
movl %eax, 0x2c(%rsp)
jmp 0xcdf8
movl 0x2c(%rsp), %eax
movl %eax, 0x20c(%rsp)
movl 0x20c(%rsp), %esi
leaq 0x440(%rsp), %rdi
callq 0x2160
movq %rax, 0x20(%rsp)
jmp 0xce1e
movq 0x20(%rsp), %rdi
movsd 0x3f8(%rsp), %xmm0
callq 0x21d0
movq %rax, 0x18(%rsp)
jmp 0xce38
movq 0x18(%rsp), %rdi
leaq 0x5466(%rip), %rsi      # 0x122aa
callq 0x20e0
jmp 0xce4b
leaq 0x250(%rsp), %rdi
callq 0x5230
leaq 0x270(%rsp), %rdi
callq 0x2ea0
jmp 0xcef6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xcee7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
leaq 0x260(%rsp), %rdi
callq 0x2ea0
jmp 0xcee7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xceda
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
leaq 0x230(%rsp), %rdi
callq 0x5230
leaq 0x250(%rsp), %rdi
callq 0x5230
leaq 0x270(%rsp), %rdi
callq 0x2ea0
jmp 0xcf2f
movl $0x0, 0x284(%rsp)
leaq 0x328(%rsp), %rdi
callq 0x2ea0
leaq 0x360(%rsp), %rdi
callq 0x2ea0
movl 0x284(%rsp), %eax
testl %eax, %eax
je 0xcf2a
jmp 0xcf28
jmp 0xcf4e
jmp 0xc493
leaq 0x328(%rsp), %rdi
callq 0x2ea0
leaq 0x360(%rsp), %rdi
callq 0x2ea0
jmp 0xd483
movl 0x37c(%rsp), %r9d
incl %r9d
movl %r9d, 0x14(%rsp)
leaq 0x1e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
movl $0x1, %r8d
movl %r8d, %edx
movl %r9d, %ecx
callq 0x5440
jmp 0xcf81
movl 0x37c(%rsp), %ecx
incl %ecx
leaq 0x1d8(%rsp), %rdi
leaq 0x3a8(%rsp), %rsi
movl $0x1, %edx
callq 0x4630
jmp 0xcfa6
leaq 0x1f8(%rsp), %rdi
leaq 0x1e8(%rsp), %rsi
leaq 0x1d8(%rsp), %rdx
callq 0x6f70
jmp 0xcfc5
movl 0x14(%rsp), %edx
leaq 0x3a8(%rsp), %rdi
movl $0x1, %esi
leaq 0x1f8(%rsp), %rcx
callq 0x46f0
jmp 0xcfe5
leaq 0x1f8(%rsp), %rdi
callq 0x2ea0
leaq 0x1d8(%rsp), %rdi
callq 0x2ea0
leaq 0x1e8(%rsp), %rdi
callq 0x5230
movl 0x37c(%rsp), %r9d
movl %r9d, 0xc(%rsp)
incl %r9d
movl %r9d, 0x10(%rsp)
leaq 0x1b8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
movl $0x1, %r8d
movl %r8d, %edx
movl %r9d, %ecx
callq 0x5440
jmp 0xd044
movl 0x37c(%rsp), %r9d
movl %r9d, %ecx
incl %ecx
leaq 0x1a8(%rsp), %rdi
leaq 0x3b8(%rsp), %rsi
movl $0x1, %r8d
movl %r8d, %edx
callq 0x5440
jmp 0xd071
leaq 0x1c8(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
leaq 0x1a8(%rsp), %rdx
callq 0x6cc0
jmp 0xd090
movl 0xc(%rsp), %r8d
movl 0x10(%rsp), %edx
leaq 0x3b8(%rsp), %rdi
movl $0x1, %ecx
leaq 0x1c8(%rsp), %r9
movl %ecx, %esi
callq 0x5f20
jmp 0xd0b7
leaq 0x1c8(%rsp), %rdi
callq 0x5230
leaq 0x1a8(%rsp), %rdi
callq 0x5230
leaq 0x1b8(%rsp), %rdi
callq 0x5230
movl 0x37c(%rsp), %r9d
leaq 0x188(%rsp), %rdi
leaq 0x3b8(%rsp), %rsi
movl $0x1, %r8d
movl %r8d, %edx
movl %r9d, %ecx
callq 0x5440
jmp 0xd109
movl 0x37c(%rsp), %ecx
leaq 0x178(%rsp), %rdi
leaq 0x3a8(%rsp), %rsi
movl $0x1, %edx
callq 0x4630
jmp 0xd12c
leaq 0x198(%rsp), %rdi
leaq 0x188(%rsp), %rsi
leaq 0x178(%rsp), %rdx
movl $0x3, %ecx
callq 0x8dc0
jmp 0xd150
leaq 0x178(%rsp), %rdi
callq 0x2ea0
leaq 0x188(%rsp), %rdi
callq 0x5230
movb $0x0, 0x177(%rsp)
movl 0x430(%rsp), %ecx
movl 0x37c(%rsp), %r9d
leaq 0x150(%rsp), %rdi
leaq 0x3c8(%rsp), %rsi
movl $0x1, %r8d
movl %r8d, %edx
callq 0x5440
jmp 0xd1a1
leaq 0x160(%rsp), %rdi
leaq 0x150(%rsp), %rsi
leaq 0x198(%rsp), %rdx
callq 0x6f70
jmp 0xd1c0
movq 0x138(%rsp), %rdi
leaq 0x410(%rsp), %rsi
leaq 0x160(%rsp), %rdx
callq 0x2ed0
jmp 0xd1df
leaq 0x160(%rsp), %rdi
callq 0x2ea0
leaq 0x150(%rsp), %rdi
callq 0x5230
leaq 0x440(%rsp), %rdi
callq 0x2130
jmp 0xd208
movb $0x1, 0x177(%rsp)
movl $0x1, 0x284(%rsp)
testb $0x1, 0x177(%rsp)
jne 0xd3e4
jmp 0xd3d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xd288
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xd27b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
leaq 0x1f8(%rsp), %rdi
callq 0x2ea0
leaq 0x1d8(%rsp), %rdi
callq 0x2ea0
leaq 0x1e8(%rsp), %rdi
callq 0x5230
jmp 0xd483
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xd2f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xd2e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
leaq 0x1c8(%rsp), %rdi
callq 0x5230
leaq 0x1a8(%rsp), %rdi
callq 0x5230
leaq 0x1b8(%rsp), %rdi
callq 0x5230
jmp 0xd483
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xd33d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
leaq 0x178(%rsp), %rdi
callq 0x2ea0
leaq 0x188(%rsp), %rdi
callq 0x5230
jmp 0xd483
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xd476
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
jmp 0xd39f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
leaq 0x160(%rsp), %rdi
callq 0x2ea0
leaq 0x150(%rsp), %rdi
callq 0x5230
jmp 0xd476
movq 0x138(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x438(%rsp)
movl %eax, 0x434(%rsp)
callq 0x2ea0
jmp 0xd476
movq 0x138(%rsp), %rdi
callq 0x2ea0
leaq 0x198(%rsp), %rdi
callq 0x2ea0
leaq 0x398(%rsp), %rdi
callq 0x5230
leaq 0x3a8(%rsp), %rdi
callq 0x2ea0
leaq 0x3b8(%rsp), %rdi
callq 0x5230
leaq 0x3c8(%rsp), %rdi
callq 0x5230
leaq 0x3d8(%rsp), %rdi
callq 0x2ea0
leaq 0x400(%rsp), %rdi
callq 0x2ea0
leaq 0x410(%rsp), %rdi
callq 0x2ea0
leaq 0x420(%rsp), %rdi
callq 0x2ea0
leaq 0x440(%rsp), %rdi
callq 0x2140
movq 0x140(%rsp), %rax
addq $0x658, %rsp            # imm = 0x658
retq
leaq 0x198(%rsp), %rdi
callq 0x2ea0
leaq 0x398(%rsp), %rdi
callq 0x5230
leaq 0x3a8(%rsp), %rdi
callq 0x2ea0
leaq 0x3b8(%rsp), %rdi
callq 0x5230
leaq 0x3c8(%rsp), %rdi
callq 0x5230
leaq 0x3d8(%rsp), %rdi
callq 0x2ea0
leaq 0x400(%rsp), %rdi
callq 0x2ea0
leaq 0x410(%rsp), %rdi
callq 0x2ea0
leaq 0x420(%rsp), %rdi
callq 0x2ea0
leaq 0x440(%rsp), %rdi
callq 0x2140
movq 0x438(%rsp), %rdi
callq 0x21b0
nopw %cs:(%rax,%rax)