// File: /workspace/github_cpp_makefile_star2_O3/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 0x3351
movq %rdi, %rbx
cmpl $-0x1, 0x14(%rdi)
je 0x3351
cmpl $-0x1, 0x10(%rbx)
jne 0x337a
movq 0x4c80(%rip), %rdi      # 0x7fd8
leaq 0x1cd8(%rip), %rsi      # 0x5037
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 0x3bb8
movq 0x38(%rbx), %rdx
subq 0x30(%rbx), %rdx
shrq $0x2, %rdx
leaq 0x1a0(%rsp), %rdi
movl $0x1, %esi
callq 0x1a25
movl 0x14(%rbx), %edx
leaq 0x1b8(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0x1ba1
leaq 0x1e8(%rsp), %rdi
leaq 0x1d0(%rsp), %rsi
leaq 0x1b8(%rsp), %rdx
callq 0x1cff
movl 0x10(%rbx), %esi
movq 0x38(%rbx), %rdx
subq 0x30(%rbx), %rdx
shrq $0x2, %rdx
leaq 0x188(%rsp), %rdi
callq 0x1a25
leaq 0x20(%rsp), %rdi
leaq 0x1e8(%rsp), %rsi
leaq 0x188(%rsp), %rdx
callq 0x1499
movq 0x188(%rsp), %rdi
testq %rdi, %rdi
je 0x3431
movq 0x198(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x1e8(%rsp), %rdi
testq %rdi, %rdi
je 0x344e
movq 0x1f8(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x1b8(%rsp), %rdi
testq %rdi, %rdi
je 0x346b
movq 0x1c8(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x1a0(%rsp), %rdi
testq %rdi, %rdi
je 0x3488
movq 0x1b0(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x1d0(%rsp), %rdi
testq %rdi, %rdi
je 0x34a5
movq 0x1e0(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
leaq 0x170(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x3bb8
movq 0x38(%rbx), %rdx
subq 0x30(%rbx), %rdx
shrq $0x2, %rdx
leaq 0x140(%rsp), %rdi
movl $0x2, %esi
callq 0x1a25
cvtsi2sdl 0x14(%rbx), %xmm0
mulsd %xmm0, %xmm0
cvttsd2si %xmm0, %edx
leaq 0x158(%rsp), %rdi
leaq 0x140(%rsp), %rsi
callq 0x1ba1
movq %rsp, %rdi
leaq 0x170(%rsp), %rsi
leaq 0x158(%rsp), %rdx
callq 0x1cff
movq 0x20(%rsp), %rdi
movq 0x30(%rsp), %rsi
movapd (%rsp), %xmm0
movapd %xmm0, 0x20(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x30(%rsp)
xorpd %xmm0, %xmm0
movapd %xmm0, (%rsp)
movq $0x0, 0x10(%rsp)
testq %rdi, %rdi
je 0x3563
subq %rdi, %rsi
callq 0x1100
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x3563
movq 0x10(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x158(%rsp), %rdi
testq %rdi, %rdi
je 0x3580
movq 0x168(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x140(%rsp), %rdi
testq %rdi, %rdi
je 0x359d
movq 0x150(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x170(%rsp), %rdi
testq %rdi, %rdi
je 0x35ba
movq 0x180(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
leaq 0x18(%rbx), %rsi
leaq 0x128(%rsp), %rdi
callq 0x3bb8
movl (%rbx), %edx
leaq 0xf8(%rsp), %rdi
movl $0x1, %esi
callq 0x1a25
movl 0x14(%rbx), %edx
leaq 0x110(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x1ba1
movq %rsp, %rdi
leaq 0x128(%rsp), %rsi
leaq 0x110(%rsp), %rdx
callq 0x1c4e
movq 0x110(%rsp), %rdi
testq %rdi, %rdi
je 0x362c
movq 0x120(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0xf8(%rsp), %rdi
testq %rdi, %rdi
je 0x3649
movq 0x108(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x128(%rsp), %rdi
testq %rdi, %rdi
je 0x3666
movq 0x138(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
leaq 0xe0(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x3bb8
leaq 0xc8(%rsp), %rdi
movq %rsp, %rsi
callq 0x3bb8
leaq 0xe0(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x153d
movl %eax, 0xb8(%rbx)
movq 0xc8(%rsp), %rdi
testq %rdi, %rdi
je 0x36c0
movq 0xd8(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x36dd
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 0x1a25
leaq 0x60(%rbx), %r14
leaq 0x98(%rsp), %rdi
movq %r14, %rsi
callq 0x3bb8
leaq 0x230(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
leaq 0x98(%rsp), %rdx
callq 0x1499
movq 0x98(%rsp), %rdi
testq %rdi, %rdi
je 0x3747
movq 0xa8(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0xb0(%rsp), %rdi
testq %rdi, %rdi
je 0x3764
movq 0xc0(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
leaq 0x80(%rsp), %rdi
movq %rsp, %rsi
callq 0x3bb8
leaq 0x68(%rsp), %rdi
leaq 0x230(%rsp), %rsi
callq 0x3bb8
leaq 0x80(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x153d
movq %rax, %r12
leaq 0x48(%rbx), %r15
leaq 0x50(%rsp), %rdi
movq %r15, %rsi
callq 0x3bb8
leaq 0x38(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x3bb8
leaq 0x50(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x153d
addl %r12d, %eax
movl %eax, 0xbc(%rbx)
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x37ea
movq 0x48(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x3801
movq 0x60(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x68(%rsp), %rdi
testq %rdi, %rdi
je 0x3818
movq 0x78(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x3835
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
leaq 0x218(%rsp), %rdi
movq %r15, %rsi
callq 0x3bb8
leaq 0x200(%rsp), %rdi
movq %r14, %rsi
callq 0x3bb8
leaq 0x218(%rsp), %rdi
leaq 0x200(%rsp), %rsi
callq 0x153d
movl %eax, 0xc0(%rbx)
leaq 0x200(%rsp), %rdi
callq 0x3ba0
leaq 0x218(%rsp), %rdi
callq 0x3ba0
movq %rax, %rbx
movq 0x200(%rsp), %rdi
testq %rdi, %rdi
je 0x38af
movq 0x210(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x38af
movq %rax, %rbx
movq 0x218(%rsp), %rdi
testq %rdi, %rdi
je 0x3943
movq 0x228(%rsp), %rsi
jmp 0x3936
movq %rax, %rbx
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x38e9
movq 0x48(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x38e9
movq %rax, %rbx
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x3905
movq 0x60(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x3905
movq %rax, %rbx
movq 0x68(%rsp), %rdi
testq %rdi, %rdi
je 0x3921
movq 0x78(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x3921
movq %rax, %rbx
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x3943
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x3943
movq %rax, %rbx
movq 0x230(%rsp), %rdi
testq %rdi, %rdi
je 0x39e3
movq 0x240(%rsp), %rsi
jmp 0x39d6
movq %rax, %rbx
movq 0x98(%rsp), %rdi
testq %rdi, %rdi
je 0x3983
movq 0xa8(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x3983
movq %rax, %rbx
movq 0xb0(%rsp), %rdi
testq %rdi, %rdi
je 0x39e3
movq 0xc0(%rsp), %rsi
jmp 0x39d6
jmp 0x39e0
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
testq %rdi, %rdi
je 0x39c1
movq 0xd8(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x39c1
movq %rax, %rbx
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x39e3
movq 0xf0(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x39e3
movq %rax, %rbx
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x3ac3
movq 0x10(%rsp), %rsi
jmp 0x3ab6
movq %rax, %rbx
movq 0x110(%rsp), %rdi
testq %rdi, %rdi
je 0x3a1f
movq 0x120(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x3a1f
movq %rax, %rbx
movq 0xf8(%rsp), %rdi
testq %rdi, %rdi
je 0x3a41
movq 0x108(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x3a41
movq %rax, %rbx
movq 0x128(%rsp), %rdi
testq %rdi, %rdi
je 0x3ac3
movq 0x138(%rsp), %rsi
jmp 0x3ab6
jmp 0x3ac0
movq %rax, %rbx
movq 0x158(%rsp), %rdi
testq %rdi, %rdi
je 0x3a7f
movq 0x168(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x3a7f
movq %rax, %rbx
movq 0x140(%rsp), %rdi
testq %rdi, %rdi
je 0x3aa1
movq 0x150(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x3aa1
movq %rax, %rbx
movq 0x170(%rsp), %rdi
testq %rdi, %rdi
je 0x3ac3
movq 0x180(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x3ac3
movq %rax, %rbx
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x3b86
leaq 0x30(%rsp), %rax
jmp 0x3b7b
movq %rax, %rbx
movq 0x188(%rsp), %rdi
testq %rdi, %rdi
je 0x3b00
movq 0x198(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x3b00
movq %rax, %rbx
movq 0x1e8(%rsp), %rdi
testq %rdi, %rdi
je 0x3b22
movq 0x1f8(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x3b22
movq %rax, %rbx
movq 0x1b8(%rsp), %rdi
testq %rdi, %rdi
je 0x3b44
movq 0x1c8(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x3b44
movq %rax, %rbx
movq 0x1a0(%rsp), %rdi
testq %rdi, %rdi
je 0x3b66
movq 0x1b0(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x3b66
movq %rax, %rbx
movq 0x1d0(%rsp), %rdi
testq %rdi, %rdi
je 0x3b86
leaq 0x1e0(%rsp), %rax
movq (%rax), %rsi
subq %rdi, %rsi
callq 0x1100
movq %rbx, %rdi
callq 0x1170