// File: iZhangHui[P]CppPrimer/CH06_Functions/examples/errMsg_initList.cc
// Function: functionX[abi:cxx11]()
vector<string> functionX()
{
	string expected = "description", actual = "some other case";
	// . . .
	if (expected.empty())
		return {};  // return an empty vector
	else if (expected == actual)
		return {"functionX", "okay"}; // return list-initialized vector
	else 
		return {"functionX", expected, actual}; 
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x230, %rsp            # imm = 0x230
movq %rdi, -0x160(%rbp)
movq %rdi, %rax
movq %rax, -0x158(%rbp)
movq %rdi, -0x8(%rbp)
leaq -0x29(%rbp), %rdi
movq %rdi, -0x150(%rbp)
callq 0x21f0
movq -0x150(%rbp), %rdx
leaq 0x2b09(%rip), %rsi      # 0x5007
leaq -0x28(%rbp), %rdi
callq 0x2180
jmp 0x2509
leaq -0x29(%rbp), %rdi
callq 0x2150
leaq -0x61(%rbp), %rdi
movq %rdi, -0x168(%rbp)
callq 0x21f0
movq -0x168(%rbp), %rdx
leaq 0x2ae3(%rip), %rsi      # 0x5013
leaq -0x60(%rbp), %rdi
callq 0x2180
jmp 0x253b
leaq -0x61(%rbp), %rdi
callq 0x2150
leaq -0x28(%rbp), %rdi
callq 0x21c0
testb $0x1, %al
jne 0x2553
jmp 0x25b2
movq -0x160(%rbp), %rdi
xorl %esi, %esi
movl $0x18, %edx
callq 0x20a0
movq -0x160(%rbp), %rdi
callq 0x3650
movl $0x1, -0x68(%rbp)
jmp 0x2a29
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x29(%rbp), %rdi
callq 0x2150
jmp 0x2a5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x61(%rbp), %rdi
callq 0x2150
jmp 0x2a54
leaq -0x28(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x3670
testb $0x1, %al
jne 0x25c8
jmp 0x2810
movb $0x1, -0xc3(%rbp)
leaq -0xb8(%rbp), %rax
movq %rax, -0x178(%rbp)
movq %rax, -0xc0(%rbp)
leaq -0xc1(%rbp), %rdi
movq %rdi, -0x170(%rbp)
callq 0x21f0
movq -0x178(%rbp), %rdi
movq -0x170(%rbp), %rdx
leaq 0x2a17(%rip), %rsi      # 0x5023
callq 0x2180
jmp 0x2613
leaq -0x98(%rbp), %rax
movq %rax, -0x188(%rbp)
movq %rax, -0xc0(%rbp)
leaq -0xc2(%rbp), %rdi
movq %rdi, -0x180(%rbp)
callq 0x21f0
movq -0x188(%rbp), %rdi
movq -0x180(%rbp), %rdx
leaq 0x29dd(%rip), %rsi      # 0x502d
callq 0x2180
jmp 0x2657
movb $0x0, -0xc3(%rbp)
leaq -0xb8(%rbp), %rax
movq %rax, -0x78(%rbp)
movq $0x2, -0x70(%rbp)
leaq -0xc4(%rbp), %rdi
movq %rdi, -0x190(%rbp)
callq 0x3700
movq -0x160(%rbp), %rdi
movq -0x190(%rbp), %rcx
movq -0x78(%rbp), %rsi
movq -0x70(%rbp), %rdx
callq 0x3720
jmp 0x26a1
leaq -0xc4(%rbp), %rdi
callq 0x37a0
leaq -0xb8(%rbp), %rax
movq %rax, -0x1a0(%rbp)
addq $0x40, %rax
movq %rax, -0x198(%rbp)
movq -0x198(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x1a8(%rbp)
callq 0x20b0
movq -0x1a0(%rbp), %rcx
movq -0x1a8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x198(%rbp)
jne 0x26c6
leaq -0xc2(%rbp), %rdi
callq 0x2150
leaq -0xc1(%rbp), %rdi
callq 0x2150
movl $0x1, -0x68(%rbp)
jmp 0x2a29
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x27a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x279b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xc4(%rbp), %rdi
callq 0x37a0
leaq -0xb8(%rbp), %rax
movq %rax, -0x1b8(%rbp)
addq $0x40, %rax
movq %rax, -0x1b0(%rbp)
movq -0x1b0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x1c0(%rbp)
callq 0x20b0
movq -0x1b8(%rbp), %rcx
movq -0x1c0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x1b0(%rbp)
jne 0x2768
jmp 0x279b
leaq -0xc2(%rbp), %rdi
callq 0x2150
leaq -0xc1(%rbp), %rdi
callq 0x2150
testb $0x1, -0xc3(%rbp)
jne 0x27be
jmp 0x280b
movq -0xc0(%rbp), %rax
leaq -0xb8(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x1c8(%rbp)
je 0x2809
movq -0x1c8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x1d0(%rbp)
callq 0x20b0
movq -0x1d0(%rbp), %rax
leaq -0xb8(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x1c8(%rbp)
jne 0x27d8
jmp 0x280b
jmp 0x2a4b
movb $0x1, -0x142(%rbp)
leaq -0x138(%rbp), %rax
movq %rax, -0x1e0(%rbp)
movq %rax, -0x140(%rbp)
leaq -0x141(%rbp), %rdi
movq %rdi, -0x1d8(%rbp)
callq 0x21f0
movq -0x1e0(%rbp), %rdi
movq -0x1d8(%rbp), %rdx
leaq 0x27cf(%rip), %rsi      # 0x5023
callq 0x2180
jmp 0x285b
leaq -0x118(%rbp), %rdi
movq %rdi, -0x140(%rbp)
leaq -0x28(%rbp), %rsi
callq 0x2070
jmp 0x2874
leaq -0xf8(%rbp), %rdi
movq %rdi, -0x140(%rbp)
leaq -0x60(%rbp), %rsi
callq 0x2070
jmp 0x288d
movb $0x0, -0x142(%rbp)
leaq -0x138(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq $0x3, -0xd0(%rbp)
leaq -0x143(%rbp), %rdi
movq %rdi, -0x1e8(%rbp)
callq 0x3700
movq -0x160(%rbp), %rdi
movq -0x1e8(%rbp), %rcx
movq -0xd8(%rbp), %rsi
movq -0xd0(%rbp), %rdx
callq 0x3720
jmp 0x28e3
leaq -0x143(%rbp), %rdi
callq 0x37a0
leaq -0x138(%rbp), %rax
movq %rax, -0x1f8(%rbp)
addq $0x60, %rax
movq %rax, -0x1f0(%rbp)
movq -0x1f0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x200(%rbp)
callq 0x20b0
movq -0x1f8(%rbp), %rcx
movq -0x200(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x1f0(%rbp)
jne 0x2908
leaq -0x141(%rbp), %rdi
callq 0x2150
movl $0x1, -0x68(%rbp)
jmp 0x2a29
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x29c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x143(%rbp), %rdi
callq 0x37a0
leaq -0x138(%rbp), %rax
movq %rax, -0x210(%rbp)
addq $0x60, %rax
movq %rax, -0x208(%rbp)
movq -0x208(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x218(%rbp)
callq 0x20b0
movq -0x210(%rbp), %rcx
movq -0x218(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x208(%rbp)
jne 0x2990
jmp 0x29c3
leaq -0x141(%rbp), %rdi
callq 0x2150
testb $0x1, -0x142(%rbp)
jne 0x29da
jmp 0x2a27
movq -0x140(%rbp), %rax
leaq -0x138(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x220(%rbp)
je 0x2a25
movq -0x220(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x228(%rbp)
callq 0x20b0
movq -0x228(%rbp), %rax
leaq -0x138(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x220(%rbp)
jne 0x29f4
jmp 0x2a27
jmp 0x2a4b
leaq -0x60(%rbp), %rdi
callq 0x20b0
leaq -0x28(%rbp), %rdi
callq 0x20b0
movq -0x158(%rbp), %rax
addq $0x230, %rsp            # imm = 0x230
popq %rbp
retq
leaq -0x60(%rbp), %rdi
callq 0x20b0
leaq -0x28(%rbp), %rdi
callq 0x20b0
movq -0x38(%rbp), %rdi
callq 0x21e0
nopw %cs:(%rax,%rax)