// File: /workspace/github_c_makefile_star2_O0/phluid61[P]hsf/main.c
// Function: do_sh_integer
void do_sh_integer(sh_int_t value) {
	SH_Integer* obj;
	SH_BareItem* bi;

	sh_int_t i;
	sh_bool_t b;
	sh_char_t* s;

	int err = 0;

	obj = SH_Integer__init(value, &err);
	if ((SH_Integer*)0 == obj || err) {
		printf("* unable to init SH_Integer(%lld): [%llX] 0x%08X\n", (long long)value, (long long)obj, err);
	} else {
		printf("+ init SH_Integer(%lld): [%llX]\n", (long long)value, (long long)obj);

		i = SH_Integer__int(obj, 0);
		printf("  - int =: %lld\n", (long long)i);

		b = SH_Integer__negative(obj, 0);
		printf("  - negative =: %hhu\n", (unsigned char)b);

		i = SH_Integer__abs(obj, 0);
		printf("  - abs =: %lld\n", (long long)i);

		s = SH_Integer__to_s(obj, &err);
		if ((sh_char_t*)0 == s || err) {
			printf("  * unable to to_s: [%llX] 0x%08X\n", (long long)s, err);
		} else {
			printf("  - to_s =:\n");
			hexdump_string(s);
			free(s);
		}

		bi = SH_BareItem__init_integer(obj, &err);
		if ((SH_BareItem*)0 == bi || err) {
			printf("  * unable to init SH_BareItem: [%llX] 0x%08X\n", (long long)bi, err);
		} else {
			printf("  + init SH_BareItem: [%llX]\n", (long long)bi);
			do_sh_bareitem(bi);
			SH_BareItem__destroy(bi, SH_FALSE, 0);
		}

		SH_Integer__destroy(obj, 0);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movl $0x0, -0x34(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x34(%rbp), %rsi
callq 0x2b80
movq %rax, -0x10(%rbp)
xorl %eax, %eax
cmpq -0x10(%rbp), %rax
je 0x1602
cmpl $0x0, -0x34(%rbp)
je 0x1620
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
movl -0x34(%rbp), %ecx
leaq 0x6b86(%rip), %rdi      # 0x819a
movb $0x0, %al
callq 0x1050
jmp 0x1761
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
leaq 0x6b9d(%rip), %rdi      # 0x81cc
movb $0x0, %al
callq 0x1050
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x2ca0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rsi
leaq 0x6b9b(%rip), %rdi      # 0x81ed
movb $0x0, %al
callq 0x1050
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x2cf0
movb %al, -0x21(%rbp)
movzbl -0x21(%rbp), %esi
leaq 0x6b8a(%rip), %rdi      # 0x81fe
movb $0x0, %al
callq 0x1050
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x2d40
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rsi
leaq 0x6b7d(%rip), %rdi      # 0x8214
movb $0x0, %al
callq 0x1050
movq -0x10(%rbp), %rdi
leaq -0x34(%rbp), %rsi
callq 0x2dd0
movq %rax, -0x30(%rbp)
xorl %eax, %eax
cmpq -0x30(%rbp), %rax
je 0x16bd
cmpl $0x0, -0x34(%rbp)
je 0x16d4
movq -0x30(%rbp), %rsi
movl -0x34(%rbp), %edx
leaq 0x6a43(%rip), %rdi      # 0x810e
movb $0x0, %al
callq 0x1050
jmp 0x16f4
leaq 0x6a58(%rip), %rdi      # 0x8133
movb $0x0, %al
callq 0x1050
movq -0x30(%rbp), %rdi
callq 0x1380
movq -0x30(%rbp), %rdi
callq 0x1030
movq -0x10(%rbp), %rdi
leaq -0x34(%rbp), %rsi
callq 0x4a50
movq %rax, -0x18(%rbp)
xorl %eax, %eax
cmpq -0x18(%rbp), %rax
je 0x1713
cmpl $0x0, -0x34(%rbp)
je 0x172a
movq -0x18(%rbp), %rsi
movl -0x34(%rbp), %edx
leaq 0x6a2c(%rip), %rdi      # 0x814d
movb $0x0, %al
callq 0x1050
jmp 0x1754
movq -0x18(%rbp), %rsi
leaq 0x6a47(%rip), %rdi      # 0x817c
movb $0x0, %al
callq 0x1050
movq -0x18(%rbp), %rdi
callq 0x11e0
movq -0x18(%rbp), %rdi
xorl %esi, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x4eb0
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x2c50
addq $0x40, %rsp
popq %rbp
retq
nopw (%rax,%rax)