// File: /workspace/github_c_makefile_star2_O0/phluid61[P]hsf/main.c
// Function: hexdump_string
void hexdump_string(const sh_char_t* str) {
	sh_char_t* ptr = (sh_char_t*)str;
	int n = 0;
	int i, j;
	char line[HEXDUMP_LEN];

	if ((sh_char_t*)0 == ptr) {
		printf("NULL\n");
		return;
	}
	if (SH_CHAR_C(0) == *ptr) {
		printf("\"\"\n");
		return;
	}

	printf("%s\n", hexdump_rule);

	while (SH_CHAR_C(0) != *ptr) {
		if (n == 0) {
			memcpy((void*)line, (const void*)hexdump_line, sizeof(char)*74);
			i = 2;
			j = 54;
		}
		if (n == 8) {
			i += 2;
			j ++;
		}

		line[i++] = hexdump_char[((*ptr) & 0xF0) >> 4];
		line[i++] = hexdump_char[ (*ptr) & 0x0F];
		i++;

		if (*ptr >= SH_CHAR_C(0x20) && *ptr < SH_CHAR_C(0x7F)) {
			line[j++] = (char)(*ptr);
		} else {
			line[j++] = '.';
		}

		ptr++;
		n++;
		if (n == 16) {
			printf("%s\n", line);
			n = 0;
		}
	}

	if (n != 0) {
		printf("%s\n", line);
	}

	printf("%s\n", hexdump_rule);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
xorl %eax, %eax
cmpq -0x10(%rbp), %rax
jne 0x13b6
leaq 0x74bf(%rip), %rdi      # 0x8869
movb $0x0, %al
callq 0x1050
jmp 0x1544
movq -0x10(%rbp), %rax
movzbl (%rax), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x13d6
leaq 0x74a5(%rip), %rdi      # 0x886f
movb $0x0, %al
callq 0x1050
jmp 0x1544
leaq 0x7099(%rip), %rdi      # 0x8476
leaq 0x749c(%rip), %rsi      # 0x8880
movb $0x0, %al
callq 0x1050
movq -0x10(%rbp), %rax
movzbl (%rax), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x1517
cmpl $0x0, -0x14(%rbp)
jne 0x1425
leaq -0x70(%rbp), %rdi
leaq 0x74c3(%rip), %rsi      # 0x88d0
movl $0x4a, %edx
callq 0x1080
movl $0x2, -0x18(%rbp)
movl $0x36, -0x1c(%rbp)
cmpl $0x8, -0x14(%rbp)
jne 0x143d
movl -0x18(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x18(%rbp)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movzbl (%rax), %eax
andl $0xf0, %eax
sarl $0x4, %eax
movslq %eax, %rcx
leaq 0x74ca(%rip), %rax      # 0x8920
movb (%rax,%rcx), %cl
movl -0x18(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x18(%rbp)
cltq
movb %cl, -0x70(%rbp,%rax)
movq -0x10(%rbp), %rax
movzbl (%rax), %eax
andl $0xf, %eax
movslq %eax, %rcx
leaq 0x74a2(%rip), %rax      # 0x8920
movb (%rax,%rcx), %cl
movl -0x18(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x18(%rbp)
cltq
movb %cl, -0x70(%rbp,%rax)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x20, %eax
jl 0x14cc
movq -0x10(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x7f, %eax
jge 0x14cc
movq -0x10(%rbp), %rax
movb (%rax), %cl
movl -0x1c(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x1c(%rbp)
cltq
movb %cl, -0x70(%rbp,%rax)
jmp 0x14de
movl -0x1c(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x1c(%rbp)
cltq
movb $0x2e, -0x70(%rbp,%rax)
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
cmpl $0x10, -0x14(%rbp)
jne 0x1512
leaq -0x70(%rbp), %rsi
leaq 0x6f72(%rip), %rdi      # 0x8476
movb $0x0, %al
callq 0x1050
movl $0x0, -0x14(%rbp)
jmp 0x13eb
cmpl $0x0, -0x14(%rbp)
je 0x152f
leaq -0x70(%rbp), %rsi
leaq 0x6f4e(%rip), %rdi      # 0x8476
movb $0x0, %al
callq 0x1050
leaq 0x6f40(%rip), %rdi      # 0x8476
leaq 0x7343(%rip), %rsi      # 0x8880
movb $0x0, %al
callq 0x1050
addq $0x70, %rsp
popq %rbp
retq
nopw (%rax,%rax)