// File: /workspace/github_cpp_makefile_star2_O1/archit-p[P]bulletproofs-demo/src/prover.cpp
// Function: Prover::set_t_coefficients()
bool Prover::set_t_coefficients()
{
    if(x == -1 || z == -1 || y == -1) {
        cout << "Set the x and z values before calling";
        return false;
    }
    vector <int> prod = haderson_product(vector_sum(Prover::ar, k_product_vector(get_k_vector(1, ar.size()), z)), get_k_vector(y, ar.size()));
    prod = vector_sum(prod, k_product_vector(get_k_vector(2, ar.size()), (int)pow(z, 2)));
    vector <int> diff = vector_diff(al, k_product_vector(get_k_vector(1, n), z));
    t[0] = inner_product(prod, diff);
    vector <int> haderson_y = haderson_product(get_k_vector(y, ar.size()), sr);
    t[1] = inner_product(diff, haderson_y) + inner_product(sl, prod);
    t[2] = inner_product(sl, sr);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x248, %rsp            # imm = 0x248
cmpl $-0x1, 0xc(%rdi)
je 0x321b
movq %rdi, %rbx
cmpl $-0x1, 0x14(%rdi)
je 0x321b
cmpl $-0x1, 0x10(%rbx)
jne 0x3244
movq 0x4db6(%rip), %rdi      # 0x7fd8
leaq 0x1e02(%rip), %rsi      # 0x502b
movl $0x25, %edx
callq 0x1110
xorl %eax, %eax
addq $0x248, %rsp            # imm = 0x248
popq %rbx
popq %r12
popq %r14
popq %r15
retq
leaq 0x30(%rbx), %rsi
leaq 0x1d0(%rsp), %rdi
callq 0x3a82
movq 0x38(%rbx), %rdx
subq 0x30(%rbx), %rdx
shrq $0x2, %rdx
leaq 0x1a0(%rsp), %rdi
movl $0x1, %esi
callq 0x1a45
movl 0x14(%rbx), %edx
leaq 0x1b8(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0x1bbd
leaq 0x1e8(%rsp), %rdi
leaq 0x1d0(%rsp), %rsi
leaq 0x1b8(%rsp), %rdx
callq 0x1d15
movl 0x10(%rbx), %esi
movq 0x38(%rbx), %rdx
subq 0x30(%rbx), %rdx
shrq $0x2, %rdx
leaq 0x188(%rsp), %rdi
callq 0x1a45
leaq 0x20(%rsp), %rdi
leaq 0x1e8(%rsp), %rsi
leaq 0x188(%rsp), %rdx
callq 0x14bd
movq 0x188(%rsp), %rdi
testq %rdi, %rdi
je 0x32fb
movq 0x198(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x1e8(%rsp), %rdi
testq %rdi, %rdi
je 0x3318
movq 0x1f8(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x1b8(%rsp), %rdi
testq %rdi, %rdi
je 0x3335
movq 0x1c8(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x1a0(%rsp), %rdi
testq %rdi, %rdi
je 0x3352
movq 0x1b0(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x1d0(%rsp), %rdi
testq %rdi, %rdi
je 0x336f
movq 0x1e0(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
leaq 0x170(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x3a82
movq 0x38(%rbx), %rdx
subq 0x30(%rbx), %rdx
shrq $0x2, %rdx
leaq 0x140(%rsp), %rdi
movl $0x2, %esi
callq 0x1a45
cvtsi2sdl 0x14(%rbx), %xmm0
mulsd %xmm0, %xmm0
cvttsd2si %xmm0, %edx
leaq 0x158(%rsp), %rdi
leaq 0x140(%rsp), %rsi
callq 0x1bbd
movq %rsp, %rdi
leaq 0x170(%rsp), %rsi
leaq 0x158(%rsp), %rdx
callq 0x1d15
movq 0x20(%rsp), %rdi
movq 0x30(%rsp), %rsi
movq (%rsp), %rax
movq %rax, 0x20(%rsp)
movupd 0x8(%rsp), %xmm0
movupd %xmm0, 0x28(%rsp)
xorpd %xmm0, %xmm0
movapd %xmm0, (%rsp)
movq $0x0, 0x10(%rsp)
testq %rdi, %rdi
je 0x3417
subq %rdi, %rsi
callq 0x1100
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x342d
movq 0x10(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x158(%rsp), %rdi
testq %rdi, %rdi
je 0x344a
movq 0x168(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x140(%rsp), %rdi
testq %rdi, %rdi
je 0x3467
movq 0x150(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x170(%rsp), %rdi
testq %rdi, %rdi
je 0x3484
movq 0x180(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
leaq 0x18(%rbx), %rsi
leaq 0x128(%rsp), %rdi
callq 0x3a82
movl (%rbx), %edx
leaq 0xf8(%rsp), %rdi
movl $0x1, %esi
callq 0x1a45
movl 0x14(%rbx), %edx
leaq 0x110(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x1bbd
movq %rsp, %rdi
leaq 0x128(%rsp), %rsi
leaq 0x110(%rsp), %rdx
callq 0x1c6a
movq 0x110(%rsp), %rdi
testq %rdi, %rdi
je 0x34f6
movq 0x120(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0xf8(%rsp), %rdi
testq %rdi, %rdi
je 0x3513
movq 0x108(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x128(%rsp), %rdi
testq %rdi, %rdi
je 0x3530
movq 0x138(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
leaq 0xe0(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x3a82
leaq 0xc8(%rsp), %rdi
movq %rsp, %rsi
callq 0x3a82
leaq 0xe0(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x155b
movl %eax, 0xb8(%rbx)
movq 0xc8(%rsp), %rdi
testq %rdi, %rdi
je 0x358a
movq 0xd8(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x35a7
movq 0xf0(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movl 0x10(%rbx), %esi
movq 0x38(%rbx), %rdx
subq 0x30(%rbx), %rdx
shrq $0x2, %rdx
leaq 0xb0(%rsp), %rdi
callq 0x1a45
leaq 0x60(%rbx), %r14
leaq 0x98(%rsp), %rdi
movq %r14, %rsi
callq 0x3a82
leaq 0x230(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
leaq 0x98(%rsp), %rdx
callq 0x14bd
movq 0x98(%rsp), %rdi
testq %rdi, %rdi
je 0x3611
movq 0xa8(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0xb0(%rsp), %rdi
testq %rdi, %rdi
je 0x362e
movq 0xc0(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
leaq 0x80(%rsp), %rdi
movq %rsp, %rsi
callq 0x3a82
leaq 0x68(%rsp), %rdi
leaq 0x230(%rsp), %rsi
callq 0x3a82
leaq 0x80(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x155b
movq %rax, %r12
leaq 0x48(%rbx), %r15
leaq 0x50(%rsp), %rdi
movq %r15, %rsi
callq 0x3a82
leaq 0x38(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x3a82
leaq 0x50(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x155b
addl %r12d, %eax
movl %eax, 0xbc(%rbx)
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x36b4
movq 0x48(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x36cb
movq 0x60(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x68(%rsp), %rdi
testq %rdi, %rdi
je 0x36e2
movq 0x78(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x36ff
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
leaq 0x218(%rsp), %rdi
movq %r15, %rsi
callq 0x3a82
leaq 0x200(%rsp), %rdi
movq %r14, %rsi
callq 0x3a82
leaq 0x218(%rsp), %rdi
leaq 0x200(%rsp), %rsi
callq 0x155b
movl %eax, 0xc0(%rbx)
leaq 0x200(%rsp), %rdi
callq 0x3a6a
leaq 0x218(%rsp), %rdi
callq 0x3a6a
movq %rax, %rbx
movq 0x200(%rsp), %rdi
testq %rdi, %rdi
je 0x3779
movq 0x210(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x3779
movq %rax, %rbx
movq 0x218(%rsp), %rdi
testq %rdi, %rdi
je 0x380d
movq 0x228(%rsp), %rsi
jmp 0x3800
movq %rax, %rbx
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x37b3
movq 0x48(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x37b3
movq %rax, %rbx
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x37cf
movq 0x60(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x37cf
movq %rax, %rbx
movq 0x68(%rsp), %rdi
testq %rdi, %rdi
je 0x37eb
movq 0x78(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x37eb
movq %rax, %rbx
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x380d
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x380d
movq %rax, %rbx
movq 0x230(%rsp), %rdi
testq %rdi, %rdi
je 0x38ad
movq 0x240(%rsp), %rsi
jmp 0x38a0
movq %rax, %rbx
movq 0x98(%rsp), %rdi
testq %rdi, %rdi
je 0x384d
movq 0xa8(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x384d
movq %rax, %rbx
movq 0xb0(%rsp), %rdi
testq %rdi, %rdi
je 0x38ad
movq 0xc0(%rsp), %rsi
jmp 0x38a0
jmp 0x38aa
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
testq %rdi, %rdi
je 0x388b
movq 0xd8(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x388b
movq %rax, %rbx
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x38ad
movq 0xf0(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x38ad
movq %rax, %rbx
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x398d
movq 0x10(%rsp), %rsi
jmp 0x3980
movq %rax, %rbx
movq 0x110(%rsp), %rdi
testq %rdi, %rdi
je 0x38e9
movq 0x120(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x38e9
movq %rax, %rbx
movq 0xf8(%rsp), %rdi
testq %rdi, %rdi
je 0x390b
movq 0x108(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x390b
movq %rax, %rbx
movq 0x128(%rsp), %rdi
testq %rdi, %rdi
je 0x398d
movq 0x138(%rsp), %rsi
jmp 0x3980
jmp 0x398a
movq %rax, %rbx
movq 0x158(%rsp), %rdi
testq %rdi, %rdi
je 0x3949
movq 0x168(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x3949
movq %rax, %rbx
movq 0x140(%rsp), %rdi
testq %rdi, %rdi
je 0x396b
movq 0x150(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x396b
movq %rax, %rbx
movq 0x170(%rsp), %rdi
testq %rdi, %rdi
je 0x398d
movq 0x180(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x398d
movq %rax, %rbx
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x3a50
leaq 0x30(%rsp), %rax
jmp 0x3a45
movq %rax, %rbx
movq 0x188(%rsp), %rdi
testq %rdi, %rdi
je 0x39ca
movq 0x198(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x39ca
movq %rax, %rbx
movq 0x1e8(%rsp), %rdi
testq %rdi, %rdi
je 0x39ec
movq 0x1f8(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x39ec
movq %rax, %rbx
movq 0x1b8(%rsp), %rdi
testq %rdi, %rdi
je 0x3a0e
movq 0x1c8(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x3a0e
movq %rax, %rbx
movq 0x1a0(%rsp), %rdi
testq %rdi, %rdi
je 0x3a30
movq 0x1b0(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x3a30
movq %rax, %rbx
movq 0x1d0(%rsp), %rdi
testq %rdi, %rdi
je 0x3a50
leaq 0x1e0(%rsp), %rax
movq (%rax), %rsi
subq %rdi, %rsi
callq 0x1100
movq %rbx, %rdi
callq 0x1170