// File: AMDmi3[P]dangling_ptr/tests/testing.h
// Function: Tester::RegisterTest(bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void RegisterTest(bool passed, int flags, const std::string& message, const std::string& description) {
		num_tests_++;

		if (passed) {
			std::cerr << Stylify(PASS_BANNER, "PASS: ");
		} else if ((flags | permanent_flags_) & NON_FATAL) {
			std::cerr << Stylify(WARN_BANNER, "WARN: ");
		} else {
			std::cerr << Stylify(FAIL_BANNER, "FAIL: ");
			num_failures_++;
		}

		if ((flags | permanent_flags_) & HIDE_MESSAGE && !description.empty()) {
			std::cerr << description;
		} else {
			std::cerr << message;
			if (!description.empty())
				std::cerr << " " << Stylify(DESCRIPTION, std::string("// ") + description);
		}
		std::cerr << std::endl;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1a0, %rsp            # imm = 0x1A0
movb %sil, %al
movq %rdi, -0x8(%rbp)
andb $0x1, %al
movb %al, -0x9(%rbp)
movl %edx, -0x10(%rbp)
movq %rcx, -0x18(%rbp)
movq %r8, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x178(%rbp)
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
testb $0x1, -0x9(%rbp)
je 0xee19
leaq -0x61(%rbp), %rdi
movq %rdi, -0x180(%rbp)
callq 0x3370
movq -0x180(%rbp), %rdx
leaq 0x3753(%rip), %rsi      # 0x124cf
leaq -0x60(%rbp), %rdi
callq 0xc830
jmp 0xed87
movq -0x178(%rbp), %rsi
leaq -0x40(%rbp), %rdi
xorl %edx, %edx
leaq -0x60(%rbp), %rcx
callq 0xf1b0
jmp 0xed9f
movq 0x924a(%rip), %rdi      # 0x17ff0
leaq -0x40(%rbp), %rsi
callq 0x31d0
jmp 0xedb1
leaq -0x40(%rbp), %rdi
callq 0x3130
leaq -0x60(%rbp), %rdi
callq 0x3130
leaq -0x61(%rbp), %rdi
callq 0x3240
jmp 0xefff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xee0b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xee02
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x3130
leaq -0x60(%rbp), %rdi
callq 0x3130
leaq -0x61(%rbp), %rdi
callq 0x3240
jmp 0xf1a7
movq -0x178(%rbp), %rcx
movl -0x10(%rbp), %eax
orl 0xc(%rcx), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0xef11
leaq -0xb9(%rbp), %rdi
movq %rdi, -0x188(%rbp)
callq 0x3370
movq -0x188(%rbp), %rdx
leaq 0x3683(%rip), %rsi      # 0x124d6
leaq -0xb8(%rbp), %rdi
callq 0xc830
jmp 0xee61
movq -0x178(%rbp), %rsi
leaq -0x98(%rbp), %rdi
movl $0x2, %edx
leaq -0xb8(%rbp), %rcx
callq 0xf1b0
jmp 0xee82
movq 0x9167(%rip), %rdi      # 0x17ff0
leaq -0x98(%rbp), %rsi
callq 0x31d0
jmp 0xee97
leaq -0x98(%rbp), %rdi
callq 0x3130
leaq -0xb8(%rbp), %rdi
callq 0x3130
leaq -0xb9(%rbp), %rdi
callq 0x3240
jmp 0xeffd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xef00
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xeef4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x3130
leaq -0xb8(%rbp), %rdi
callq 0x3130
leaq -0xb9(%rbp), %rdi
callq 0x3240
jmp 0xf1a7
leaq -0x101(%rbp), %rdi
movq %rdi, -0x190(%rbp)
callq 0x3370
movq -0x190(%rbp), %rdx
leaq 0x35ab(%rip), %rsi      # 0x124dd
leaq -0x100(%rbp), %rdi
callq 0xc830
jmp 0xef40
movq -0x178(%rbp), %rsi
leaq -0xe0(%rbp), %rdi
movl $0x1, %edx
leaq -0x100(%rbp), %rcx
callq 0xf1b0
jmp 0xef61
movq 0x9088(%rip), %rdi      # 0x17ff0
leaq -0xe0(%rbp), %rsi
callq 0x31d0
jmp 0xef76
leaq -0xe0(%rbp), %rdi
callq 0x3130
leaq -0x100(%rbp), %rdi
callq 0x3130
leaq -0x101(%rbp), %rdi
callq 0x3240
movq -0x178(%rbp), %rax
movl 0x4(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x4(%rax)
jmp 0xeffd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xefec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xefe0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x3130
leaq -0x100(%rbp), %rdi
callq 0x3130
leaq -0x101(%rbp), %rdi
callq 0x3240
jmp 0xf1a7
jmp 0xefff
movq -0x178(%rbp), %rcx
movl -0x10(%rbp), %eax
orl 0xc(%rcx), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0xf036
movq -0x20(%rbp), %rdi
callq 0x3330
testb $0x1, %al
jne 0xf036
movq -0x20(%rbp), %rsi
movq 0x8fc4(%rip), %rdi      # 0x17ff0
callq 0x31d0
jmp 0xf18b
movq -0x18(%rbp), %rsi
movq 0x8faf(%rip), %rdi      # 0x17ff0
callq 0x31d0
movq -0x20(%rbp), %rdi
callq 0x3330
testb $0x1, %al
jne 0xf189
movq 0x8f92(%rip), %rdi      # 0x17ff0
leaq 0x3481(%rip), %rsi      # 0x124e6
callq 0x31e0
movq %rax, -0x1a0(%rbp)
leaq -0x169(%rbp), %rdi
movq %rdi, -0x198(%rbp)
callq 0x3370
movq -0x198(%rbp), %rdx
leaq 0x3452(%rip), %rsi      # 0x124e4
leaq -0x168(%rbp), %rdi
callq 0xc830
jmp 0xf0a0
movq -0x20(%rbp), %rdx
leaq -0x148(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0xc7e0
jmp 0xf0b9
movq -0x178(%rbp), %rsi
leaq -0x128(%rbp), %rdi
movl $0x5, %edx
leaq -0x148(%rbp), %rcx
callq 0xf1b0
jmp 0xf0da
movq -0x1a0(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x31d0
jmp 0xf0ef
leaq -0x128(%rbp), %rdi
callq 0x3130
leaq -0x148(%rbp), %rdi
callq 0x3130
leaq -0x168(%rbp), %rdi
callq 0x3130
leaq -0x169(%rbp), %rdi
callq 0x3240
jmp 0xf189
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xf17b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xf16f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xf163
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x128(%rbp), %rdi
callq 0x3130
leaq -0x148(%rbp), %rdi
callq 0x3130
leaq -0x168(%rbp), %rdi
callq 0x3130
leaq -0x169(%rbp), %rdi
callq 0x3240
jmp 0xf1a7
jmp 0xf18b
movq 0x8e5e(%rip), %rdi      # 0x17ff0
movq 0x8e27(%rip), %rsi      # 0x17fc0
callq 0x3220
addq $0x1a0, %rsp            # imm = 0x1A0
popq %rbp
retq
movq -0x70(%rbp), %rdi
callq 0x3360