// File: AMDmi3[P]testing/./testing.h
// Function: Tester::ExpectNoException(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::function<void ()>&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, int, Tester::DummyArgument)
void ExpectNoException(const std::string& expression_str, std::function<void()>&& func, const std::string& description, int flags, DummyArgument) {
		bool thrown = false;
		bool std_exception = false;

		std::string what;

		try {
			func();
		} catch (std::exception& e) {
			thrown = true;
			std_exception = true;
			what = e.what();
		} catch (...) {
			thrown = true;
		}

		std::string message;

		if (thrown && std_exception)
			message = Stylify(EXPRESSION, expression_str) + " has thrown unexpected exception derived from std::exception (what(): " + Stylify(LITERAL, what) + ")";
		else if (thrown)
			message = Stylify(EXPRESSION, expression_str) + " has thrown unexpected exception not derived from std::exception";
		else
			message = Stylify(EXPRESSION, expression_str) + " hasn't thrown any exceptions as expected";

		RegisterTest(!thrown, flags, message, description);
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1b0, %rsp            # imm = 0x1B0
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movl %r8d, -0x2c(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x1b0(%rbp)
movb $0x0, -0x2d(%rbp)
movb $0x0, -0x2e(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x2280
movq -0x20(%rbp), %rdi
callq 0x6d10
jmp 0x6976
jmp 0x69cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
movl -0x5c(%rbp), %eax
movl $0x2, %ecx
cmpl %ecx, %eax
jne 0x6ad1
movq -0x58(%rbp), %rdi
callq 0x20a0
movq %rax, -0x68(%rbp)
movb $0x1, -0x2d(%rbp)
movb $0x1, -0x2e(%rbp)
movq -0x68(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq %rax, %rsi
leaq -0x50(%rbp), %rdi
callq 0x2270
jmp 0x69c4
callq 0x22c0
jmp 0x69cb
jmp 0x69cd
leaq -0x88(%rbp), %rdi
callq 0x2280
testb $0x1, -0x2d(%rbp)
je 0x6b8f
testb $0x1, -0x2e(%rbp)
je 0x6b8f
movq -0x1b0(%rbp), %rsi
movq -0x18(%rbp), %rcx
leaq -0x108(%rbp), %rdi
movl $0x4, %edx
callq 0x6d50
jmp 0x6a0b
leaq 0x4baf(%rip), %rdx      # 0xb5c1
leaq -0xe8(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x5dc0
jmp 0x6a27
movq -0x1b0(%rbp), %rsi
leaq -0x128(%rbp), %rdi
movl $0x3, %edx
leaq -0x50(%rbp), %rcx
callq 0x6d50
jmp 0x6a45
leaq -0xc8(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
leaq -0x128(%rbp), %rdx
callq 0x5bf0
jmp 0x6a61
leaq 0x470d(%rip), %rdx      # 0xb175
leaq -0xa8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x5dc0
jmp 0x6a7d
leaq -0x88(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x2240
leaq -0xa8(%rbp), %rdi
callq 0x20f0
leaq -0xc8(%rbp), %rdi
callq 0x20f0
leaq -0x128(%rbp), %rdi
callq 0x20f0
leaq -0xe8(%rbp), %rdi
callq 0x20f0
leaq -0x108(%rbp), %rdi
callq 0x20f0
jmp 0x6ca3
movq -0x58(%rbp), %rdi
callq 0x20a0
movb $0x1, -0x2d(%rbp)
callq 0x22c0
jmp 0x6ae5
jmp 0x69cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x6cf4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
callq 0x22c0
jmp 0x6b0e
jmp 0x6cf4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x6ce8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x6b7e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x6b72
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x6b66
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x20f0
leaq -0x128(%rbp), %rdi
callq 0x20f0
leaq -0xe8(%rbp), %rdi
callq 0x20f0
leaq -0x108(%rbp), %rdi
callq 0x20f0
jmp 0x6ce8
testb $0x1, -0x2d(%rbp)
je 0x6c20
movq -0x1b0(%rbp), %rsi
movq -0x18(%rbp), %rcx
leaq -0x168(%rbp), %rdi
movl $0x4, %edx
callq 0x6d50
jmp 0x6bb7
leaq 0x4a4a(%rip), %rdx      # 0xb608
leaq -0x148(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x5dc0
jmp 0x6bd3
leaq -0x88(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x2240
leaq -0x148(%rbp), %rdi
callq 0x20f0
leaq -0x168(%rbp), %rdi
callq 0x20f0
jmp 0x6ca1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x20f0
jmp 0x6ce8
movq -0x1b0(%rbp), %rsi
movq -0x18(%rbp), %rcx
leaq -0x1a8(%rbp), %rdi
movl $0x4, %edx
callq 0x6d50
jmp 0x6c3e
leaq 0x4a04(%rip), %rdx      # 0xb649
leaq -0x188(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x5dc0
jmp 0x6c5a
leaq -0x88(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x2240
leaq -0x188(%rbp), %rdi
callq 0x20f0
leaq -0x1a8(%rbp), %rdi
callq 0x20f0
jmp 0x6ca1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x20f0
jmp 0x6ce8
jmp 0x6ca3
movq -0x1b0(%rbp), %rdi
movb -0x2d(%rbp), %al
notb %al
movl -0x2c(%rbp), %edx
movq -0x28(%rbp), %r8
movzbl %al, %esi
andl $0x1, %esi
leaq -0x88(%rbp), %rcx
callq 0x6f50
jmp 0x6cca
leaq -0x88(%rbp), %rdi
callq 0x20f0
leaq -0x50(%rbp), %rdi
callq 0x20f0
addq $0x1b0, %rsp            # imm = 0x1B0
popq %rbp
retq
leaq -0x88(%rbp), %rdi
callq 0x20f0
leaq -0x50(%rbp), %rdi
callq 0x20f0
movq -0x58(%rbp), %rdi
callq 0x2300
movq %rax, %rdi
callq 0x6820
nop