// File: /workspace/github_cpp_makefile_star2_O1/yanniss[P]souffle-num-addon/num256_test.cpp
// Function: test_exp_invoker()
BOOST_AUTO_TEST_CASE(test_exp) {
	BOOST_TEST(
			   exp_256("0x666f",
					   "0x3")
			   ==
			   "0x10666ef0504f");
	BOOST_TEST(
			   exp_256("0x666f",
					   "0x3ff")
			   ==
			   "0x103691d9c197615a89b9b351f6122823614a541f92725975095e5f7f28a3f4f9");
	// no clue if the latter is correct, but at least it has the right number of digits
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1b8, %rsp            # imm = 0x1B8
leaq -0x1e0(%rbp), %rbx
movl $0x198, %edx            # imm = 0x198
movq %rbx, %rdi
xorl %esi, %esi
callq 0xe2d0
movq %rbx, %rdi
callq 0xe6e0
leaq -0x58(%rbp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
leaq -0x48(%rbp), %rsi
movb $0x22, (%rsi)
movl $0x1, %edx
movq %rbx, %rdi
callq 0xe5d0
leaq 0x3a723(%rip), %rsi     # 0x65b8b
leaq -0x1e0(%rbp), %rdi
movl $0x8, %edx
callq 0xe5d0
leaq 0x429a4(%rip), %rsi     # 0x6de24
leaq -0x1e0(%rbp), %rdi
movl $0xe, %edx
callq 0xe5d0
leaq -0x1d8(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0xe830
leaq -0x68(%rbp), %rdi
leaq -0x48(%rbp), %rbx
movq %rbx, %rsi
callq 0xe660
movq (%rbx), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2b4c9
movq -0x38(%rbp), %rsi
incq %rsi
callq 0xe530
movq -0x68(%rbp), %rbx
movq -0x60(%rbp), %r14
callq 0x1f25f
movq 0x673fb(%rip), %rdx     # 0x928d8
leaq 0x673ec(%rip), %rdi     # 0x928d0
xorl %esi, %esi
movq %rbx, %rcx
movq %r14, %r8
callq 0xe800
leaq 0x3a381(%rip), %r13     # 0x65879
movq %r13, 0x673b9(%rip)     # 0x928b8
leaq 0x3a382(%rip), %r12     # 0x65888
movq %r12, 0x673b3(%rip)     # 0x928c0
movq $0x1d, 0x673b0(%rip) # 0x928c8
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b52d
movq -0x58(%rbp), %rsi
incq %rsi
callq 0xe530
movq 0x64a84(%rip), %rsi     # 0x8ffb8
leaq -0x1e0(%rbp), %rdi
callq 0xe2a0
leaq -0x170(%rbp), %rdi
callq 0xe1e0
leaq -0x1e0(%rbp), %rbx
movl $0x198, %edx            # imm = 0x198
movq %rbx, %rdi
xorl %esi, %esi
callq 0xe2d0
movq %rbx, %rdi
callq 0xe6e0
movq %r15, 0x178(%rbx)
movq $0x0, 0x180(%rbx)
movb $0x0, 0x188(%rbx)
leaq -0x48(%rbp), %rsi
movb $0x22, (%rsi)
movl $0x1, %edx
movq %rbx, %rdi
callq 0xe5d0
leaq 0x3a5ed(%rip), %rsi     # 0x65b8b
leaq -0x1e0(%rbp), %rdi
movl $0x8, %edx
callq 0xe5d0
leaq 0x4287d(%rip), %rsi     # 0x6de33
leaq -0x1e0(%rbp), %rdi
movl $0xf, %edx
callq 0xe5d0
leaq -0x1d8(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0xe830
leaq -0x68(%rbp), %rdi
leaq -0x48(%rbp), %rbx
movq %rbx, %rsi
callq 0xe660
movq (%rbx), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2b5ff
movq -0x38(%rbp), %rsi
incq %rsi
callq 0xe530
movq -0x68(%rbp), %rbx
movq -0x60(%rbp), %r14
callq 0x1f25f
movq 0x672c5(%rip), %rdx     # 0x928d8
leaq 0x672b6(%rip), %rdi     # 0x928d0
xorl %esi, %esi
movq %rbx, %rcx
movq %r14, %r8
callq 0xe800
movq %r13, 0x6728a(%rip)     # 0x928b8
movq %r12, 0x6728b(%rip)     # 0x928c0
movq $0x1d, 0x67288(%rip) # 0x928c8
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b655
movq -0x58(%rbp), %rsi
incq %rsi
callq 0xe530
movq 0x6495c(%rip), %rsi     # 0x8ffb8
leaq -0x1e0(%rbp), %rdi
callq 0xe2a0
leaq -0x170(%rbp), %rdi
callq 0xe1e0
leaq -0x1e0(%rbp), %rbx
movl $0x198, %edx            # imm = 0x198
movq %rbx, %rdi
xorl %esi, %esi
callq 0xe2d0
movq %rbx, %rdi
callq 0xe6e0
movq %r15, 0x178(%rbx)
movq $0x0, 0x180(%rbx)
movb $0x0, 0x188(%rbx)
leaq -0x48(%rbp), %rsi
movb $0x22, (%rsi)
movl $0x1, %edx
movq %rbx, %rdi
callq 0xe5d0
leaq 0x3a4c5(%rip), %rsi     # 0x65b8b
leaq -0x1e0(%rbp), %rdi
movl $0x8, %edx
callq 0xe5d0
leaq 0x42765(%rip), %rsi     # 0x6de43
leaq -0x1e0(%rbp), %rdi
movl $0xc, %edx
callq 0xe5d0
leaq -0x1d8(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0xe830
leaq -0x68(%rbp), %rdi
leaq -0x48(%rbp), %rbx
movq %rbx, %rsi
callq 0xe660
movq (%rbx), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2b727
movq -0x38(%rbp), %rsi
incq %rsi
callq 0xe530
movq -0x68(%rbp), %rbx
movq -0x60(%rbp), %r14
callq 0x1f25f
movq 0x6719d(%rip), %rdx     # 0x928d8
leaq 0x6718e(%rip), %rdi     # 0x928d0
xorl %esi, %esi
movq %rbx, %rcx
movq %r14, %r8
callq 0xe800
movq %r13, 0x67162(%rip)     # 0x928b8
movq %r12, 0x67163(%rip)     # 0x928c0
movq $0x1d, 0x67160(%rip) # 0x928c8
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b77d
movq -0x58(%rbp), %rsi
incq %rsi
callq 0xe530
movq 0x64834(%rip), %rsi     # 0x8ffb8
leaq -0x1e0(%rbp), %rdi
callq 0xe2a0
leaq -0x170(%rbp), %rdi
callq 0xe1e0
callq 0x2ba22
leaq -0x1e0(%rbp), %rbx
movl $0x198, %edx            # imm = 0x198
movq %rbx, %rdi
xorl %esi, %esi
callq 0xe2d0
movq %rbx, %rdi
callq 0xe6e0
movq %r15, 0x178(%rbx)
movq $0x0, 0x180(%rbx)
movb $0x0, 0x188(%rbx)
leaq -0x48(%rbp), %rsi
movb $0x22, (%rsi)
movl $0x1, %edx
movq %rbx, %rdi
callq 0xe5d0
leaq 0x3a398(%rip), %rsi     # 0x65b8b
leaq -0x1e0(%rbp), %rdi
movl $0x8, %edx
callq 0xe5d0
leaq 0x42645(%rip), %rsi     # 0x6de50
leaq -0x1e0(%rbp), %rdi
movl $0x12, %edx
callq 0xe5d0
leaq -0x1d8(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0xe830
leaq -0x68(%rbp), %rdi
leaq -0x48(%rbp), %rbx
movq %rbx, %rsi
callq 0xe660
movq (%rbx), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2b854
movq -0x38(%rbp), %rsi
incq %rsi
callq 0xe530
movq -0x68(%rbp), %rbx
movq -0x60(%rbp), %r14
callq 0x1f25f
movq 0x67070(%rip), %rdx     # 0x928d8
leaq 0x67061(%rip), %rdi     # 0x928d0
xorl %esi, %esi
movq %rbx, %rcx
movq %r14, %r8
callq 0xe800
movq %r13, 0x67035(%rip)     # 0x928b8
movq %r12, 0x67036(%rip)     # 0x928c0
movq $0x1d, 0x67033(%rip) # 0x928c8
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b8aa
movq -0x58(%rbp), %rsi
incq %rsi
callq 0xe530
movq 0x64707(%rip), %rsi     # 0x8ffb8
leaq -0x1e0(%rbp), %rdi
callq 0xe2a0
leaq -0x170(%rbp), %rdi
callq 0xe1e0
leaq -0x1e0(%rbp), %rbx
movl $0x198, %edx            # imm = 0x198
movq %rbx, %rdi
xorl %esi, %esi
callq 0xe2d0
movq %rbx, %rdi
callq 0xe6e0
movq %r15, 0x178(%rbx)
movq $0x0, 0x180(%rbx)
movb $0x0, 0x188(%rbx)
leaq -0x48(%rbp), %rsi
movb $0x22, (%rsi)
movl $0x1, %edx
movq %rbx, %rdi
callq 0xe5d0
leaq 0x3a270(%rip), %rsi     # 0x65b8b
leaq -0x1e0(%rbp), %rdi
movl $0x8, %edx
callq 0xe5d0
leaq 0x42530(%rip), %rsi     # 0x6de63
leaq -0x1e0(%rbp), %rdi
movl $0xe, %edx
callq 0xe5d0
leaq -0x1d8(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0xe830
leaq -0x68(%rbp), %rdi
leaq -0x48(%rbp), %rbx
movq %rbx, %rsi
callq 0xe660
movq (%rbx), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2b97c
movq -0x38(%rbp), %rsi
incq %rsi
callq 0xe530
movq -0x68(%rbp), %rbx
movq -0x60(%rbp), %r14
callq 0x1f25f
movq 0x66f48(%rip), %rdx     # 0x928d8
leaq 0x66f39(%rip), %rdi     # 0x928d0
xorl %esi, %esi
movq %rbx, %rcx
movq %r14, %r8
callq 0xe800
movq %r13, 0x66f0d(%rip)     # 0x928b8
movq %r12, 0x66f0e(%rip)     # 0x928c0
movq $0x1d, 0x66f0b(%rip) # 0x928c8
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b9d2
movq -0x58(%rbp), %rsi
incq %rsi
callq 0xe530
movq 0x645df(%rip), %rsi     # 0x8ffb8
leaq -0x1e0(%rbp), %rdi
callq 0xe2a0
leaq -0x170(%rbp), %rdi
callq 0xe1e0
addq $0x1b8, %rsp            # imm = 0x1B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2ba0b
jmp 0x2ba0b
jmp 0x2ba0b
jmp 0x2ba0b
movq %rax, %rbx
leaq -0x1e0(%rbp), %rdi
callq 0x398fa
movq %rbx, %rdi
callq 0xe950