// File: /workspace/github_c_makefile_star2_O3/phluid61[P]hsf/main.c
// Function: do_sh_list
void do_sh_list() {
	SH_List* list;

	SH_Boolean* obj;
	SH_BareItem* bi;
	SH_Item* item;

	int err = 0;

	list = SH_List__init(&err);
	if ((SH_List*)0 == list || err) {
		printf("* unable to init SH_List: [%llX] 0x%08X\n", (long long)list, err);
	} else {
		printf("+ init SH_List: [%llX]\n", (long long)list);

		_print_list(list);

		obj = SH_Boolean__init(SH_FALSE, &err);
		if ((SH_Boolean*)0 == obj || err) {
			printf("  * unable to create SH_Boolean: [%llX] 0x%08X\n", (long long)obj, err);
		} else {
			bi = SH_BareItem__init_boolean(obj, &err);
			if ((SH_BareItem*)0 == bi || err) {
				printf("  * unable to create SH_BareItem: [%llX] 0x%08X\n", (long long)bi, err);
			} else {
				item = SH_Item__init(bi, (SH_dict*)0, &err);
				if ((SH_Item*)0 == item || err) {
					printf("  * unable to create SH_Item: [%llX] 0x%08X\n", (long long)item, err);
				} else {
					SH_List__add(list, item, &err);
					if (err) {
						printf("  * unable to add: 0x%08X\n", err);
					} else {
						_print_list(list);
					}

					SH_List__add(list, item, &err);
					if (err) {
						printf("  * unable to add: 0x%08X\n", err);
					} else {
						_print_list(list);
					}

					SH_List__add(list, item, &err);
					if (err) {
						printf("  * unable to add: 0x%08X\n", err);
					} else {
						_print_list(list);
					}

					SH_Item__destroy(item, SH_FALSE, 0);
				}
				SH_BareItem__destroy(bi, SH_FALSE, 0);
			}
			SH_Boolean__destroy(obj, 0);
		}
		SH_List__destroy(list, SH_FALSE, 0);
	}
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x10, %rsp
leaq 0xc(%rsp), %r14
movl $0x0, (%r14)
movq %r14, %rdi
callq 0x4ae4
movq %rax, %rbx
testq %rax, %rax
sete %al
movl (%r14), %edx
testl %edx, %edx
setne %cl
orb %al, %cl
cmpb $0x1, %cl
jne 0x23d1
leaq 0x3275(%rip), %rdi      # 0x5637
movq %rbx, %rsi
xorl %eax, %eax
callq 0x1060
jmp 0x256e
leaq 0x3288(%rip), %rdi      # 0x5660
movq %rbx, %rsi
xorl %eax, %eax
callq 0x1060
movq %rbx, %rdi
callq 0x2300
leaq 0xc(%rsp), %r15
xorl %edi, %edi
movq %r15, %rsi
callq 0x3450
movq %rax, %r14
testq %rax, %rax
sete %al
movl (%r15), %edx
testl %edx, %edx
setne %cl
orb %al, %cl
cmpb $0x1, %cl
jne 0x2427
leaq 0x3260(%rip), %rdi      # 0x5678
movq %r14, %rsi
xorl %eax, %eax
callq 0x1060
jmp 0x2562
leaq 0xc(%rsp), %r12
movq %r14, %rdi
movq %r12, %rsi
callq 0x3b38
movq %rax, %r15
testq %rax, %rax
sete %al
movl (%r12), %edx
testl %edx, %edx
setne %cl
orb %al, %cl
cmpb $0x1, %cl
jne 0x2466
leaq 0x3251(%rip), %rdi      # 0x56a8
movq %r15, %rsi
xorl %eax, %eax
callq 0x1060
jmp 0x2558
leaq 0xc(%rsp), %r13
movq %r15, %rdi
xorl %esi, %esi
movq %r13, %rdx
callq 0x3ed0
movq %rax, %r12
testq %rax, %rax
sete %al
movl (%r13), %edx
testl %edx, %edx
setne %cl
orb %al, %cl
cmpb $0x1, %cl
jne 0x24a7
leaq 0x3241(%rip), %rdi      # 0x56d9
movq %r12, %rsi
xorl %eax, %eax
callq 0x1060
jmp 0x254c
leaq 0xc(%rsp), %r13
movq %rbx, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x4bf5
movl (%r13), %esi
testl %esi, %esi
je 0x24d2
leaq 0x323d(%rip), %rdi      # 0x5706
xorl %eax, %eax
callq 0x1060
jmp 0x24da
movq %rbx, %rdi
callq 0x2300
leaq 0xc(%rsp), %r13
movq %rbx, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x4bf5
movl (%r13), %esi
testl %esi, %esi
je 0x2505
leaq 0x320a(%rip), %rdi      # 0x5706
xorl %eax, %eax
callq 0x1060
jmp 0x250d
movq %rbx, %rdi
callq 0x2300
leaq 0xc(%rsp), %r13
movq %rbx, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x4bf5
movl (%r13), %esi
testl %esi, %esi
je 0x2538
leaq 0x31d7(%rip), %rdi      # 0x5706
xorl %eax, %eax
callq 0x1060
jmp 0x2540
movq %rbx, %rdi
callq 0x2300
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3f7a
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3bfc
movq %r14, %rdi
xorl %esi, %esi
callq 0x34a1
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x4b3a
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq