// File: IlanPrice[P]Linear-Algebra-Library-in-Cplusplus/Matrix.cpp
// Function: hess(Matrix const&)
Matrix hess(const Matrix& A)
{

	int n = A.mRows;
	Matrix Ahes = A;
	disp(A);
	Vector u = Ahes.getElements(2,n,1,1,"Vector");
	std::cout<< "u=\n"<< u <<"\n";
	Vector v(length(u));
	v(1) = norm(u,2);
	std::cout<< "v=\n"<< v <<"\n";
	Vector w = u-v;
	Matrix H = eye(n);
	Matrix K = eye(n-1);
	if (norm(w)>1e-14)
	{
		Matrix temp = outer(w,w);
		K = K - (2/(w*w))*temp;
	}
	std::cout<< "H=\n"<< H <<"\n";
	H.setElements(2,n,2,n,K);
	disp(H);
	Ahes = H*Ahes*H;
	disp(Ahes);
	for (int i=2;i<n-1;i++)
	{
		Matrix B = Ahes.getElements(i,n,i, n);
		Vector u2 = B.getElements(2,B.mRows,1,1,"Vector");
		std::cout<< "B=\n"<< B <<"\n";
		std::cout<< "u2=\n"<< u2 <<"\n";
		Vector v2(length(u2));
		v2(1) = norm(u2,2);;
		std::cout<< "v2=\n"<< v2 <<"\n";
		Vector w2 = u2-v2;
		std::cout<<"w2=\n" << w2<<"\n";
		Matrix Hhat = eye(B.mRows-1);
		if (norm(w2)>1e-14)
		{
		Matrix temp2 = outer(w2,w2);
		std::cout<< temp2 <<"\n\n";
		Hhat = Hhat - (2/(w2*w2))*temp2;
		}
		std::cout<< "Hhat=\n"<< Hhat <<"\n\n";
		Matrix H2 = eye(n);
		H2.setElements(i+1,n,i+1,n,Hhat);
		std::cout<< "H2=\n"<< H2 <<"\n\n";
		Ahes = H2*Ahes*H2;
	}

	for (int i=1;i<=n;i++)
		{
			for(int j=1;j<=n;j++)
			{
				if (std::abs(Ahes(i,j)) < 1e-12)
					Ahes(i,j) = 0;
			}
		}
	return Ahes;
}

// Assembly:
subq $0x398, %rsp            # imm = 0x398
movq %rdi, 0x150(%rsp)
movq %rdi, %rax
movq %rax, 0x158(%rsp)
movq %rdi, 0x390(%rsp)
movq %rsi, 0x388(%rsp)
movq 0x388(%rsp), %rax
movl 0x8(%rax), %eax
movl %eax, 0x384(%rsp)
movb $0x0, 0x383(%rsp)
movq 0x388(%rsp), %rsi
callq 0x50f0
movq 0x388(%rsp), %rdi
callq 0x5410
jmp 0xe9c0
movl 0x384(%rsp), %eax
movl %eax, 0x144(%rsp)
leaq 0x33f(%rsp), %rdi
movq %rdi, 0x148(%rsp)
callq 0x21c0
movq 0x148(%rsp), %rdx
leaq 0x3bbc(%rip), %rsi      # 0x125ae
leaq 0x340(%rsp), %rdi
callq 0x2110
jmp 0xea01
movl 0x144(%rsp), %ecx
movq 0x150(%rsp), %rsi
movq %rsp, %rax
leaq 0x340(%rsp), %rdx
movq %rdx, (%rax)
leaq 0x360(%rsp), %rdi
movl $0x2, %edx
movl $0x1, %r9d
movl %r9d, %r8d
callq 0x5870
jmp 0xea3b
leaq 0x340(%rsp), %rdi
callq 0x2080
leaq 0x33f(%rsp), %rdi
callq 0x20f0
movq 0x7574(%rip), %rdi      # 0x15fd0
leaq 0x3b94(%rip), %rsi      # 0x125f7
callq 0x20e0
movq %rax, 0x138(%rsp)
jmp 0xea72
movq 0x138(%rsp), %rdi
leaq 0x360(%rsp), %rsi
callq 0x3f00
movq %rax, 0x130(%rsp)
jmp 0xea91
movq 0x130(%rsp), %rdi
leaq 0x380a(%rip), %rsi      # 0x122aa
callq 0x20e0
jmp 0xeaa7
leaq 0x360(%rsp), %rdi
callq 0x4090
movl %eax, 0x12c(%rsp)
jmp 0xeabd
movl 0x12c(%rsp), %esi
leaq 0x328(%rsp), %rdi
callq 0x2d70
jmp 0xead3
leaq 0x360(%rsp), %rdi
movl $0x2, %esi
callq 0x3fe0
movsd %xmm0, 0x120(%rsp)
jmp 0xeaf0
leaq 0x328(%rsp), %rdi
movl $0x1, %esi
callq 0x3ee0
movq %rax, 0x118(%rsp)
jmp 0xeb0c
movq 0x118(%rsp), %rax
movsd 0x120(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x74a8(%rip), %rdi      # 0x15fd0
leaq 0x3acc(%rip), %rsi      # 0x125fb
callq 0x20e0
movq %rax, 0x110(%rsp)
jmp 0xeb3e
movq 0x110(%rsp), %rdi
leaq 0x328(%rsp), %rsi
callq 0x3f00
movq %rax, 0x108(%rsp)
jmp 0xeb5d
movq 0x108(%rsp), %rdi
leaq 0x373e(%rip), %rsi      # 0x122aa
callq 0x20e0
jmp 0xeb73
leaq 0x318(%rsp), %rdi
leaq 0x360(%rsp), %rsi
leaq 0x328(%rsp), %rdx
callq 0x31a0
jmp 0xeb92
movl 0x384(%rsp), %esi
leaq 0x308(%rsp), %rdi
callq 0xa210
jmp 0xeba8
movl 0x384(%rsp), %esi
decl %esi
leaq 0x2f8(%rsp), %rdi
callq 0xa210
jmp 0xebc0
leaq 0x318(%rsp), %rdi
movl $0x2, %esi
callq 0x3fe0
movsd %xmm0, 0x100(%rsp)
jmp 0xebdd
movsd 0x100(%rsp), %xmm0
movsd 0x36ca(%rip), %xmm1     # 0x122b8
ucomisd %xmm1, %xmm0
jbe 0xee77
leaq 0x2d8(%rsp), %rdi
leaq 0x318(%rsp), %rsi
callq 0x2e00
jmp 0xec0f
leaq 0x2c8(%rsp), %rdi
leaq 0x318(%rsp), %rsi
callq 0x2e00
jmp 0xec26
leaq 0x2e8(%rsp), %rdi
leaq 0x2d8(%rsp), %rsi
leaq 0x2c8(%rsp), %rdx
callq 0x9b50
jmp 0xec45
leaq 0x2c8(%rsp), %rdi
callq 0x2ea0
leaq 0x2d8(%rsp), %rdi
callq 0x2ea0
leaq 0x318(%rsp), %rsi
movq %rsi, %rdi
callq 0x3470
movsd %xmm0, 0xf8(%rsp)
jmp 0xec7a
movsd 0xf8(%rsp), %xmm1
movsd 0x363d(%rip), %xmm0     # 0x122c8
divsd %xmm1, %xmm0
leaq 0x2a8(%rsp), %rdi
leaq 0x2e8(%rsp), %rsi
callq 0x6ba0
jmp 0xeca6
leaq 0x2b8(%rsp), %rdi
leaq 0x2f8(%rsp), %rsi
leaq 0x2a8(%rsp), %rdx
callq 0x6a60
jmp 0xecc5
leaq 0x2f8(%rsp), %rdi
leaq 0x2b8(%rsp), %rsi
callq 0x9930
leaq 0x2b8(%rsp), %rdi
callq 0x5230
leaq 0x2a8(%rsp), %rdi
callq 0x5230
leaq 0x2e8(%rsp), %rdi
callq 0x5230
jmp 0xee77
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
jmp 0xf9b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
jmp 0xed56
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
leaq 0x340(%rsp), %rdi
callq 0x2080
leaq 0x33f(%rsp), %rdi
callq 0x20f0
jmp 0xf9b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
jmp 0xf985
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
jmp 0xf978
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
jmp 0xf96b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
jmp 0xf95e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
jmp 0xf951
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
jmp 0xee1c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
leaq 0x2c8(%rsp), %rdi
callq 0x2ea0
leaq 0x2d8(%rsp), %rdi
callq 0x2ea0
jmp 0xf951
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
jmp 0xee65
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
leaq 0x2a8(%rsp), %rdi
callq 0x5230
leaq 0x2e8(%rsp), %rdi
callq 0x5230
jmp 0xf951
movq 0x7152(%rip), %rdi      # 0x15fd0
leaq 0x377a(%rip), %rsi      # 0x125ff
callq 0x20e0
movq %rax, 0xf0(%rsp)
jmp 0xee94
movq 0xf0(%rsp), %rdi
leaq 0x308(%rsp), %rsi
callq 0x5330
movq %rax, 0xe8(%rsp)
jmp 0xeeb3
movq 0xe8(%rsp), %rdi
leaq 0x33e8(%rip), %rsi      # 0x122aa
callq 0x20e0
jmp 0xeec9
movl 0x384(%rsp), %eax
movl %eax, 0xe0(%rsp)
movl %eax, 0xe4(%rsp)
leaq 0x298(%rsp), %rdi
leaq 0x2f8(%rsp), %rsi
callq 0x50f0
jmp 0xeef5
movl 0xe0(%rsp), %r8d
movl 0xe4(%rsp), %edx
leaq 0x308(%rsp), %rdi
movl $0x2, %ecx
leaq 0x298(%rsp), %r9
movl %ecx, %esi
callq 0x5f20
jmp 0xef22
leaq 0x298(%rsp), %rdi
callq 0x5230
leaq 0x308(%rsp), %rdi
callq 0x5410
jmp 0xef3e
movq 0x150(%rsp), %rdx
leaq 0x278(%rsp), %rdi
leaq 0x308(%rsp), %rsi
callq 0x6cc0
jmp 0xef5d
leaq 0x288(%rsp), %rdi
leaq 0x278(%rsp), %rsi
leaq 0x308(%rsp), %rdx
callq 0x6cc0
jmp 0xef7c
movq 0x150(%rsp), %rdi
leaq 0x288(%rsp), %rsi
movq %rsi, 0xd8(%rsp)
callq 0x9930
movq 0xd8(%rsp), %rdi
callq 0x5230
leaq 0x278(%rsp), %rdi
callq 0x5230
movq 0x150(%rsp), %rdi
callq 0x5410
jmp 0xefc2
movl $0x2, 0x274(%rsp)
movl 0x274(%rsp), %eax
movl 0x384(%rsp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0xf814
movq 0x150(%rsp), %rsi
movl 0x274(%rsp), %r8d
movl 0x384(%rsp), %r9d
leaq 0x260(%rsp), %rdi
movl %r8d, %edx
movl %r9d, %ecx
callq 0x5440
jmp 0xf013
movl 0x268(%rsp), %eax
movl %eax, 0xcc(%rsp)
leaq 0x22f(%rsp), %rdi
movq %rdi, 0xd0(%rsp)
callq 0x21c0
movq 0xd0(%rsp), %rdx
leaq 0x3569(%rip), %rsi      # 0x125ae
leaq 0x230(%rsp), %rdi
callq 0x2110
jmp 0xf054
movl 0xcc(%rsp), %ecx
movq %rsp, %rax
leaq 0x230(%rsp), %rdx
movq %rdx, (%rax)
leaq 0x250(%rsp), %rdi
leaq 0x260(%rsp), %rsi
movl $0x2, %edx
movl $0x1, %r9d
movl %r9d, %r8d
callq 0x5870
jmp 0xf08e
leaq 0x230(%rsp), %rdi
callq 0x2080
leaq 0x22f(%rsp), %rdi
callq 0x20f0
movq 0x6f21(%rip), %rdi      # 0x15fd0
leaq 0x354d(%rip), %rsi      # 0x12603
callq 0x20e0
movq %rax, 0xc0(%rsp)
jmp 0xf0c5
movq 0xc0(%rsp), %rdi
leaq 0x260(%rsp), %rsi
callq 0x5330
movq %rax, 0xb8(%rsp)
jmp 0xf0e4
movq 0xb8(%rsp), %rdi
leaq 0x31b7(%rip), %rsi      # 0x122aa
callq 0x20e0
jmp 0xf0fa
movq 0x6ecf(%rip), %rdi      # 0x15fd0
leaq 0x34ff(%rip), %rsi      # 0x12607
callq 0x20e0
movq %rax, 0xb0(%rsp)
jmp 0xf117
movq 0xb0(%rsp), %rdi
leaq 0x250(%rsp), %rsi
callq 0x3f00
movq %rax, 0xa8(%rsp)
jmp 0xf136
movq 0xa8(%rsp), %rdi
leaq 0x3165(%rip), %rsi      # 0x122aa
callq 0x20e0
jmp 0xf14c
leaq 0x250(%rsp), %rdi
callq 0x4090
movl %eax, 0xa4(%rsp)
jmp 0xf162
movl 0xa4(%rsp), %esi
leaq 0x218(%rsp), %rdi
callq 0x2d70
jmp 0xf178
leaq 0x250(%rsp), %rdi
movl $0x2, %esi
callq 0x3fe0
movsd %xmm0, 0x98(%rsp)
jmp 0xf195
leaq 0x218(%rsp), %rdi
movl $0x1, %esi
callq 0x3ee0
movq %rax, 0x90(%rsp)
jmp 0xf1b1
movq 0x90(%rsp), %rax
movsd 0x98(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x6e03(%rip), %rdi      # 0x15fd0
leaq 0x3438(%rip), %rsi      # 0x1260c
callq 0x20e0
movq %rax, 0x88(%rsp)
jmp 0xf1e3
movq 0x88(%rsp), %rdi
leaq 0x218(%rsp), %rsi
callq 0x3f00
movq %rax, 0x80(%rsp)
jmp 0xf202
movq 0x80(%rsp), %rdi
leaq 0x3099(%rip), %rsi      # 0x122aa
callq 0x20e0
jmp 0xf218
leaq 0x208(%rsp), %rdi
leaq 0x250(%rsp), %rsi
leaq 0x218(%rsp), %rdx
callq 0x31a0
jmp 0xf237
movq 0x6d92(%rip), %rdi      # 0x15fd0
leaq 0x33cc(%rip), %rsi      # 0x12611
callq 0x20e0
movq %rax, 0x78(%rsp)
jmp 0xf251
movq 0x78(%rsp), %rdi
leaq 0x208(%rsp), %rsi
callq 0x3f00
movq %rax, 0x70(%rsp)
jmp 0xf26a
movq 0x70(%rsp), %rdi
leaq 0x3034(%rip), %rsi      # 0x122aa
callq 0x20e0
jmp 0xf27d
movl 0x268(%rsp), %esi
decl %esi
leaq 0x1f8(%rsp), %rdi
callq 0xa210
jmp 0xf295
leaq 0x208(%rsp), %rdi
movl $0x2, %esi
callq 0x3fe0
movsd %xmm0, 0x68(%rsp)
jmp 0xf2af
movsd 0x68(%rsp), %xmm0
movsd 0x2ffb(%rip), %xmm1     # 0x122b8
ucomisd %xmm1, %xmm0
jbe 0xf588
leaq 0x1d8(%rsp), %rdi
leaq 0x208(%rsp), %rsi
callq 0x2e00
jmp 0xf2de
leaq 0x1c8(%rsp), %rdi
leaq 0x208(%rsp), %rsi
callq 0x2e00
jmp 0xf2f5
leaq 0x1e8(%rsp), %rdi
leaq 0x1d8(%rsp), %rsi
leaq 0x1c8(%rsp), %rdx
callq 0x9b50
jmp 0xf314
leaq 0x1c8(%rsp), %rdi
callq 0x2ea0
leaq 0x1d8(%rsp), %rdi
callq 0x2ea0
movq 0x6c9b(%rip), %rdi      # 0x15fd0
leaq 0x1e8(%rsp), %rsi
callq 0x5330
movq %rax, 0x60(%rsp)
jmp 0xf349
movq 0x60(%rsp), %rdi
leaq 0x2f54(%rip), %rsi      # 0x122a9
callq 0x20e0
jmp 0xf35c
leaq 0x208(%rsp), %rsi
movq %rsi, %rdi
callq 0x3470
movsd %xmm0, 0x58(%rsp)
jmp 0xf374
movsd 0x58(%rsp), %xmm1
movsd 0x2f46(%rip), %xmm0     # 0x122c8
divsd %xmm1, %xmm0
leaq 0x1a8(%rsp), %rdi
leaq 0x1e8(%rsp), %rsi
callq 0x6ba0
jmp 0xf39d
leaq 0x1b8(%rsp), %rdi
leaq 0x1f8(%rsp), %rsi
leaq 0x1a8(%rsp), %rdx
callq 0x6a60
jmp 0xf3bc
leaq 0x1f8(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x9930
leaq 0x1b8(%rsp), %rdi
callq 0x5230
leaq 0x1a8(%rsp), %rdi
callq 0x5230
leaq 0x1e8(%rsp), %rdi
callq 0x5230
jmp 0xf588
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
leaq 0x298(%rsp), %rdi
callq 0x5230
jmp 0xf951
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
leaq 0x278(%rsp), %rdi
callq 0x5230
jmp 0xf951
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
jmp 0xf480
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
leaq 0x230(%rsp), %rdi
callq 0x2080
leaq 0x22f(%rsp), %rdi
callq 0x20f0
jmp 0xf802
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
jmp 0xf7f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
jmp 0xf7e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
jmp 0xf7db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
jmp 0xf7ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
jmp 0xf52d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
leaq 0x1c8(%rsp), %rdi
callq 0x2ea0
leaq 0x1d8(%rsp), %rdi
callq 0x2ea0
jmp 0xf7ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
jmp 0xf576
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
leaq 0x1a8(%rsp), %rdi
callq 0x5230
leaq 0x1e8(%rsp), %rdi
callq 0x5230
jmp 0xf7ce
movq 0x6a41(%rip), %rdi      # 0x15fd0
leaq 0x3080(%rip), %rsi      # 0x12616
callq 0x20e0
movq %rax, 0x50(%rsp)
jmp 0xf5a2
movq 0x50(%rsp), %rdi
leaq 0x1f8(%rsp), %rsi
callq 0x5330
movq %rax, 0x48(%rsp)
jmp 0xf5bb
movq 0x48(%rsp), %rdi
leaq 0x2ce2(%rip), %rsi      # 0x122a9
callq 0x20e0
jmp 0xf5ce
movl 0x384(%rsp), %esi
leaq 0x198(%rsp), %rdi
callq 0xa210
jmp 0xf5e4
movl 0x274(%rsp), %eax
incl %eax
movl %eax, 0x38(%rsp)
movl %eax, 0x3c(%rsp)
movl 0x384(%rsp), %eax
movl %eax, 0x40(%rsp)
movl %eax, 0x44(%rsp)
leaq 0x188(%rsp), %rdi
leaq 0x1f8(%rsp), %rsi
callq 0x50f0
jmp 0xf61b
movl 0x40(%rsp), %r8d
movl 0x38(%rsp), %ecx
movl 0x44(%rsp), %edx
movl 0x3c(%rsp), %esi
leaq 0x198(%rsp), %rdi
leaq 0x188(%rsp), %r9
callq 0x5f20
jmp 0xf643
leaq 0x188(%rsp), %rdi
callq 0x5230
movq 0x6979(%rip), %rdi      # 0x15fd0
leaq 0x2fbf(%rip), %rsi      # 0x1261d
callq 0x20e0
movq %rax, 0x30(%rsp)
jmp 0xf66a
movq 0x30(%rsp), %rdi
leaq 0x198(%rsp), %rsi
callq 0x5330
movq %rax, 0x28(%rsp)
jmp 0xf683
movq 0x28(%rsp), %rdi
leaq 0x2c1a(%rip), %rsi      # 0x122a9
callq 0x20e0
jmp 0xf696
movq 0x150(%rsp), %rdx
leaq 0x168(%rsp), %rdi
leaq 0x198(%rsp), %rsi
callq 0x6cc0
jmp 0xf6b5
leaq 0x178(%rsp), %rdi
leaq 0x168(%rsp), %rsi
leaq 0x198(%rsp), %rdx
callq 0x6cc0
jmp 0xf6d4
movq 0x150(%rsp), %rdi
leaq 0x178(%rsp), %rsi
callq 0x9930
leaq 0x178(%rsp), %rdi
callq 0x5230
leaq 0x168(%rsp), %rdi
callq 0x5230
leaq 0x198(%rsp), %rdi
callq 0x5230
leaq 0x1f8(%rsp), %rdi
callq 0x5230
leaq 0x208(%rsp), %rdi
callq 0x2ea0
leaq 0x218(%rsp), %rdi
callq 0x2ea0
leaq 0x250(%rsp), %rdi
callq 0x2ea0
leaq 0x260(%rsp), %rdi
callq 0x5230
movl 0x274(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x274(%rsp)
jmp 0xefcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
jmp 0xf7c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
leaq 0x188(%rsp), %rdi
callq 0x5230
jmp 0xf7c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x378(%rsp)
movl %eax, 0x374(%rsp)
leaq 0x168(%rsp), %rdi
callq 0x5230
leaq 0x198(%rsp), %rdi
callq 0x5230
leaq 0x1f8(%rsp), %rdi
callq 0x5230
leaq 0x208(%rsp), %rdi
callq 0x2ea0
leaq 0x218(%rsp), %rdi
callq 0x2ea0
leaq 0x250(%rsp), %rdi
callq 0x2ea0
leaq 0x260(%rsp), %rdi
callq 0x5230
jmp 0xf951
movl $0x1, 0x164(%rsp)
movl 0x164(%rsp), %eax
cmpl 0x384(%rsp), %eax
jg 0xf8fc
movl $0x1, 0x160(%rsp)
movl 0x160(%rsp), %eax
cmpl 0x384(%rsp), %eax
jg 0xf8e4
movq 0x150(%rsp), %rdi
movl 0x164(%rsp), %esi
movl 0x160(%rsp), %edx
callq 0x96e0
movq %rax, 0x20(%rsp)
jmp 0xf874
movq 0x20(%rsp), %rax
movsd (%rax), %xmm0
callq 0x10e30
movsd %xmm0, 0x18(%rsp)
jmp 0xf88a
movsd 0x18(%rsp), %xmm1
movsd 0x2a38(%rip), %xmm0     # 0x122d0
ucomisd %xmm1, %xmm0
jbe 0xf8cc
movq 0x150(%rsp), %rdi
movl 0x164(%rsp), %esi
movl 0x160(%rsp), %edx
callq 0x96e0
movq %rax, 0x10(%rsp)
jmp 0xf8c0
movq 0x10(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, (%rax)
jmp 0xf8ce
movl 0x160(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x160(%rsp)
jmp 0xf83e
jmp 0xf8e6
movl 0x164(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x164(%rsp)
jmp 0xf81f
movb $0x1, 0x383(%rsp)
leaq 0x2f8(%rsp), %rdi
callq 0x5230
leaq 0x308(%rsp), %rdi
callq 0x5230
leaq 0x318(%rsp), %rdi
callq 0x2ea0
leaq 0x328(%rsp), %rdi
callq 0x2ea0
leaq 0x360(%rsp), %rdi
callq 0x2ea0
testb $0x1, 0x383(%rsp)
jne 0xf9a1
jmp 0xf994
leaq 0x2f8(%rsp), %rdi
callq 0x5230
leaq 0x308(%rsp), %rdi
callq 0x5230
leaq 0x318(%rsp), %rdi
callq 0x2ea0
leaq 0x328(%rsp), %rdi
callq 0x2ea0
leaq 0x360(%rsp), %rdi
callq 0x2ea0
jmp 0xf9b1
movq 0x150(%rsp), %rdi
callq 0x5230
movq 0x158(%rsp), %rax
addq $0x398, %rsp            # imm = 0x398
retq
movq 0x150(%rsp), %rdi
callq 0x5230
movq 0x378(%rsp), %rdi
callq 0x21b0
nopl (%rax,%rax)