// File: /workspace/github_cpp_makefile_star2_O2/ushitora-anqou[P]aqtfhe2/main.cpp
// Function: main
int main()
{
#ifndef NDEBUG
    test_nd_array();
    test_tlwe_lvl0();
    test_trlwe_lvl1();
    test_trgswfft_external_product();
    test_bootstrapping();
    test_nand();
#else
    std::cerr << "Old parameter [CGGI16]:\t";
    test_performance<aqtfhe2::params::CGGI16>();
    std::cerr << "New parameter [CGGI19]:\t";
    test_performance<aqtfhe2::params::CGGI19>();
#endif

    return 0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x3f90, %rsp           # imm = 0x3F90
movq 0x9c8d(%rip), %rdi      # 0xbff0
leaq 0x5da2(%rip), %rsi      # 0x810c
callq 0x2170
leaq 0x850(%rsp), %rbx
movq %rbx, %rdi
callq 0x286e
leaq 0x25b8(%rsp), %rdi
movq %rbx, %rsi
callq 0x28c4
leaq 0x60(%rsp), %rdi
leaq 0x850(%rsp), %rsi
leaq 0x25b8(%rsp), %rdx
callq 0x2978
leaq 0x468(%rsp), %rdi
leaq 0x850(%rsp), %rsi
callq 0x2817
leaq 0x80(%rsp), %rdi
leaq 0x850(%rsp), %rsi
callq 0x2817
leaq 0x40(%rsp), %rbx
andq $0x0, 0x30(%rsp)
andq $0x0, 0x10(%rsp)
vxorps %xmm0, %xmm0, %xmm0
leaq 0x1bdc(%rsp), %r14
leaq 0x850(%rsp), %r15
leaq 0x25b8(%rsp), %r12
xorl %r13d, %r13d
andq $0x0, 0x10(%rbx)
vmovaps %xmm0, (%rbx)
vmovaps %xmm0, 0x20(%rsp)
vmovaps %xmm0, (%rsp)
cmpq $0x3e8, %r13            # imm = 0x3E8
je 0x2447
movzbl 0x468(%rsp,%r13), %ecx
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x57f2
movq %rbx, %rdi
movq %r14, %rsi
callq 0x55da
incq %r13
jmp 0x2417
leaq 0x1bdc(%rsp), %rbx
leaq 0x850(%rsp), %r14
leaq 0x25b8(%rsp), %r15
leaq 0x20(%rsp), %r12
xorl %r13d, %r13d
cmpq $0x3e8, %r13            # imm = 0x3E8
je 0x2497
movzbl 0x80(%rsp,%r13), %ecx
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x57f2
movq %r12, %rdi
movq %rbx, %rsi
callq 0x55da
incq %r13
jmp 0x2467
movl $0x3e8, %esi            # imm = 0x3E8
movq %rsp, %rdi
callq 0x298e
xorl %r13d, %r13d
callq 0x2030
leaq 0x1bdc(%rsp), %r14
leaq 0x60(%rsp), %r15
movq %rax, %rbx
movq %rsp, %r12
cmpq $0x1e9420, %r13         # imm = 0x1E9420
je 0x24f7
movq 0x40(%rsp), %rdx
movq 0x20(%rsp), %rcx
addq %r13, %rdx
addq %r13, %rcx
movq %r14, %rdi
movq %r15, %rsi
callq 0x2a76
movq %r12, %rdi
movq %r14, %rsi
callq 0x55da
addq $0x7d4, %r13            # imm = 0x7D4
jmp 0x24bf
callq 0x2030
subq %rbx, %rax
movl $0x3e8, %ecx            # imm = 0x3E8
cqto
idivq %rcx
xorl %edx, %edx
divq %rcx
movq 0x9adb(%rip), %rdi      # 0xbff0
movq %rax, %rsi
callq 0x20e0
leaq 0x5c1a(%rip), %rsi      # 0x813e
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
callq 0x20a0
movq %rsp, %rdi
callq 0x5f7a
leaq 0x20(%rsp), %rdi
callq 0x5f7a
leaq 0x40(%rsp), %rdi
callq 0x5f7a
leaq 0x60(%rsp), %rdi
callq 0x2a94
leaq 0x850(%rsp), %rdi
callq 0x2aaa
movq 0x9a82(%rip), %rdi      # 0xbff0
leaq 0x5bb0(%rip), %rsi      # 0x8125
callq 0x2170
leaq 0x850(%rsp), %rbx
movq %rbx, %rdi
callq 0x286e
leaq 0x25b8(%rsp), %rdi
movq %rbx, %rsi
callq 0x5fa2
leaq 0x60(%rsp), %rdi
leaq 0x850(%rsp), %rsi
leaq 0x25b8(%rsp), %rdx
callq 0x6052
leaq 0x468(%rsp), %rdi
leaq 0x850(%rsp), %rsi
callq 0x2817
leaq 0x80(%rsp), %rdi
leaq 0x850(%rsp), %rsi
callq 0x2817
leaq 0x40(%rsp), %rbx
andq $0x0, 0x30(%rsp)
andq $0x0, 0x10(%rsp)
vxorps %xmm0, %xmm0, %xmm0
leaq 0x1bdc(%rsp), %r14
leaq 0x850(%rsp), %r15
leaq 0x25b8(%rsp), %r12
xorl %r13d, %r13d
andq $0x0, 0x10(%rbx)
vmovaps %xmm0, (%rbx)
vmovaps %xmm0, 0x20(%rsp)
vmovaps %xmm0, (%rsp)
cmpq $0x3e8, %r13            # imm = 0x3E8
je 0x2652
movzbl 0x468(%rsp,%r13), %ecx
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x6f50
movq %rbx, %rdi
movq %r14, %rsi
callq 0x6d38
incq %r13
jmp 0x2622
leaq 0x1bdc(%rsp), %rbx
leaq 0x850(%rsp), %r14
leaq 0x25b8(%rsp), %r15
leaq 0x20(%rsp), %r12
xorl %r13d, %r13d
cmpq $0x3e8, %r13            # imm = 0x3E8
je 0x26a2
movzbl 0x80(%rsp,%r13), %ecx
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x6f50
movq %r12, %rdi
movq %rbx, %rsi
callq 0x6d38
incq %r13
jmp 0x2672
movl $0x3e8, %esi            # imm = 0x3E8
movq %rsp, %rdi
callq 0x6068
xorl %r13d, %r13d
callq 0x2030
leaq 0x1bdc(%rsp), %r14
leaq 0x60(%rsp), %r15
movq %rax, %rbx
movq %rsp, %r12
cmpq $0x268360, %r13         # imm = 0x268360
je 0x2702
movq 0x40(%rsp), %rdx
movq 0x20(%rsp), %rcx
addq %r13, %rdx
addq %r13, %rcx
movq %r14, %rdi
movq %r15, %rsi
callq 0x6150
movq %r12, %rdi
movq %r14, %rsi
callq 0x6d38
addq $0x9dc, %r13            # imm = 0x9DC
jmp 0x26ca
callq 0x2030
subq %rbx, %rax
movl $0x3e8, %ecx            # imm = 0x3E8
cqto
idivq %rcx
xorl %edx, %edx
divq %rcx
movq 0x98d0(%rip), %rdi      # 0xbff0
movq %rax, %rsi
callq 0x20e0
leaq 0x5a0f(%rip), %rsi      # 0x813e
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
callq 0x20a0
movq %rsp, %rdi
callq 0x7632
leaq 0x20(%rsp), %rdi
callq 0x7632
leaq 0x40(%rsp), %rdi
callq 0x7632
leaq 0x60(%rsp), %rdi
callq 0x616e
leaq 0x850(%rsp), %rdi
callq 0x2aaa
xorl %eax, %eax
addq $0x3f90, %rsp           # imm = 0x3F90
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0x27aa
jmp 0x2789
movq %rax, %rbx
jmp 0x27c9
jmp 0x279d
jmp 0x279d
jmp 0x27d9
jmp 0x2796
movq %rax, %rbx
jmp 0x27f8
jmp 0x279d
movq %rax, %rbx
jmp 0x2802
jmp 0x27aa
jmp 0x27d9
jmp 0x27aa
jmp 0x27aa
movq %rsp, %rdi
movq %rax, %rbx
callq 0x7632
leaq 0x20(%rsp), %rdi
callq 0x7632
leaq 0x40(%rsp), %rdi
callq 0x7632
leaq 0x60(%rsp), %rdi
callq 0x616e
jmp 0x2802
jmp 0x27d9
jmp 0x27d9
movq %rsp, %rdi
movq %rax, %rbx
callq 0x5f7a
leaq 0x20(%rsp), %rdi
callq 0x5f7a
leaq 0x40(%rsp), %rdi
callq 0x5f7a
leaq 0x60(%rsp), %rdi
callq 0x2a94
leaq 0x850(%rsp), %rdi
callq 0x2aaa
movq %rbx, %rdi
callq 0x21d0