// File: /workspace/github_cpp_makefile_star2_O2/nmmmnu[P]HM3/test/test_stringimploder.cc
// Function: main
static int test_stringimploder(){
	StringImploder imploder;

	using container = std::vector<std::string>;

	assert(imploder(container{ "hello", "world" },	' ') == "hello world"	);
	assert(imploder(container{ "how", "are", "u" },	' ') == "how are u"	);
	assert(imploder(container{ "I", "am", "OK" },	'.') == "I.am.OK"	);

	return 0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0xa0, %rsp
leaq 0xd85(%rip), %rsi       # 0x2004
leaq 0x40(%rsp), %rdi
leaq 0x5(%rsp), %rdx
callq 0x1070
leaq 0x60(%rsp), %r14
leaq 0xd76(%rip), %rsi       # 0x2010
leaq 0x4(%rsp), %rdx
movq %r14, %rdi
callq 0x1070
leaq 0x8(%rsp), %rdi
leaq 0x40(%rsp), %rsi
pushq $0x2
popq %rdx
leaq 0x3(%rsp), %rcx
callq 0x1682
leaq 0x20(%rsp), %rdi
leaq 0x6(%rsp), %rsi
leaq 0x8(%rsp), %rdx
pushq $0x20
popq %rcx
callq 0x15e8
leaq 0xd2e(%rip), %rsi       # 0x200a
leaq 0x20(%rsp), %rdi
callq 0x15db
testb %al, %al
je 0x14a8
leaq 0x20(%rsp), %rdi
callq 0x1090
leaq 0x8(%rsp), %rdi
callq 0x16bc
pushq $0x20
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x40, %rdi
callq 0x1090
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x1305
leaq 0xd67(%rip), %rsi       # 0x208a
leaq 0x40(%rsp), %r15
leaq 0x5(%rsp), %rdx
movq %r15, %rdi
callq 0x1070
leaq 0xd52(%rip), %rsi       # 0x208e
leaq 0x4(%rsp), %rdx
movq %r14, %rdi
callq 0x1070
leaq 0x80(%rsp), %r14
leaq 0xd42(%rip), %rsi       # 0x209a
leaq 0x3(%rsp), %rdx
movq %r14, %rdi
callq 0x1070
leaq 0x8(%rsp), %rdi
leaq 0x40(%rsp), %rsi
pushq $0x3
popq %rdx
leaq 0x7(%rsp), %rcx
callq 0x1682
leaq 0x20(%rsp), %rdi
leaq 0x6(%rsp), %rsi
leaq 0x8(%rsp), %rdx
pushq $0x20
popq %rcx
callq 0x15e8
leaq 0xcf8(%rip), %rsi       # 0x2092
leaq 0x20(%rsp), %rdi
callq 0x15db
testb %al, %al
je 0x14c1
leaq 0x20(%rsp), %rdi
callq 0x1090
leaq 0x8(%rsp), %rdi
callq 0x16bc
pushq $0x40
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x40, %rdi
callq 0x1090
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x13c3
leaq 0xcf8(%rip), %rsi       # 0x20d9
leaq 0x40(%rsp), %r14
leaq 0x5(%rsp), %rdx
movq %r14, %rdi
callq 0x1070
leaq 0x60(%rsp), %r15
leaq 0xcdc(%rip), %rsi       # 0x20db
leaq 0x4(%rsp), %rdx
movq %r15, %rdi
callq 0x1070
leaq 0x80(%rsp), %r15
leaq 0xcc8(%rip), %rsi       # 0x20e3
leaq 0x3(%rsp), %rdx
movq %r15, %rdi
callq 0x1070
leaq 0x8(%rsp), %rdi
leaq 0x40(%rsp), %rsi
pushq $0x3
popq %rdx
leaq 0x7(%rsp), %rcx
callq 0x1682
leaq 0x20(%rsp), %rdi
leaq 0x6(%rsp), %rsi
leaq 0x8(%rsp), %rdx
pushq $0x2e
popq %rcx
callq 0x15e8
leaq 0xc81(%rip), %rsi       # 0x20de
leaq 0x20(%rsp), %rdi
callq 0x15db
testb %al, %al
je 0x14da
leaq 0x20(%rsp), %rdi
callq 0x1090
leaq 0x8(%rsp), %rdi
callq 0x16bc
pushq $0x40
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x40, %rdi
callq 0x1090
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x1482
xorl %eax, %eax
addq $0xa0, %rsp
popq %rbx
popq %r14
popq %r15
retq
leaq 0xb67(%rip), %rdi       # 0x2016
leaq 0xb9e(%rip), %rsi       # 0x2054
leaq 0xbb3(%rip), %rcx       # 0x2070
pushq $0xc
jmp 0x14f1
leaq 0xbd4(%rip), %rdi       # 0x209c
leaq 0xb85(%rip), %rsi       # 0x2054
leaq 0xb9a(%rip), %rcx       # 0x2070
pushq $0xd
jmp 0x14f1
leaq 0xc05(%rip), %rdi       # 0x20e6
leaq 0xb6c(%rip), %rsi       # 0x2054
leaq 0xb81(%rip), %rcx       # 0x2070
pushq $0xe
popq %rdx
callq 0x10b0
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x16bc
jmp 0x1509
movq %rax, %rbx
pushq $0x40
popq %r14
leaq (%rsp,%r14), %rdi
addq $0x40, %rdi
callq 0x1090
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0x150d
jmp 0x15d3
jmp 0x152b
movq %rax, %rbx
addq $-0x20, %r15
movq %r15, %rdi
callq 0x1090
cmpq %r14, %r15
jne 0x152e
jmp 0x15d3
jmp 0x15d0
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x16bc
jmp 0x155b
movq %rax, %rbx
pushq $0x40
popq %r14
leaq (%rsp,%r14), %rdi
addq $0x40, %rdi
callq 0x1090
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0x155f
jmp 0x15d3
jmp 0x157a
movq %rax, %rbx
addq $-0x20, %r14
movq %r14, %rdi
callq 0x1090
cmpq %r15, %r14
jne 0x157d
jmp 0x15d3
jmp 0x15d0
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x16bc
jmp 0x15a4
movq %rax, %rbx
pushq $0x20
popq %r14
leaq (%rsp,%r14), %rdi
addq $0x40, %rdi
callq 0x1090
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0x15a8
jmp 0x15d3
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x1090
jmp 0x15d3
movq %rax, %rbx
movq %rbx, %rdi
callq 0x1160