// File: Alcaro[P]bridges/arlib/test.cpp
// Function: tostringhex_dbg(arrayview<unsigned char> const&)
string tostringhex_dbg(const arrayview<uint8_t>& item)
{
	string ret;
	for (size_t outer=0;outer<item.size();outer+=16)
	{
		ret += tostringhex<8>(outer)+"  ";
		for (size_t inner=0;inner<16;inner++)
		{
			if (inner == 8) ret += " ";
			if (outer+inner >= item.size()) ret += "   ";
			else ret += tostringhex<2>(item[outer+inner])+" ";
		}
		ret += " ";
		for (size_t inner=0;inner<16;inner++)
		{
			if (outer+inner >= item.size()) ret += " ";
			else
			{
				char c = item[outer+inner];
				if (c >= 0x20 && c <= 0x7e) ret += c;
				else ret += '.';
			}
		}
		ret += "\n";
	}
	return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0xa8(%rbp)
movq %rdi, %rax
movq %rax, -0xa0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movb $0x0, -0x11(%rbp)
callq 0x7800
movq $0x0, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0x10(%rbp), %rdi
callq 0x6290
movq %rax, %rcx
movq -0xb0(%rbp), %rax
cmpq %rcx, %rax
jae 0x42763
movq -0x20(%rbp), %rsi
leaq -0x50(%rbp), %rdi
callq 0x42790
leaq -0x40(%rbp), %rdi
leaq -0x50(%rbp), %rsi
leaq 0x2159b(%rip), %rdx     # 0x63ad3
callq 0x5790
movq -0xa8(%rbp), %rdi
movq -0x40(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x30(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x5e00
leaq -0x40(%rbp), %rdi
callq 0x5870
leaq -0x50(%rbp), %rdi
callq 0x5870
movq $0x0, -0x58(%rbp)
cmpq $0x10, -0x58(%rbp)
jae 0x4265f
cmpq $0x8, -0x58(%rbp)
jne 0x425a0
movq -0xa8(%rbp), %rdi
leaq 0x21539(%rip), %rsi     # 0x63ad4
callq 0x5ce0
movq -0x20(%rbp), %rax
addq -0x58(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0x10(%rbp), %rdi
callq 0x6290
movq %rax, %rcx
movq -0xb8(%rbp), %rax
cmpq %rcx, %rax
jb 0x425dc
movq -0xa8(%rbp), %rdi
leaq 0x214fd(%rip), %rsi     # 0x63ad2
callq 0x5ce0
jmp 0x4264c
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
addq -0x58(%rbp), %rsi
callq 0x62e0
leaq -0x88(%rbp), %rdi
movzbl (%rax), %esi
callq 0xbb00
leaq -0x78(%rbp), %rdi
leaq -0x88(%rbp), %rsi
leaq 0x214c6(%rip), %rdx     # 0x63ad4
callq 0x5790
movq -0xa8(%rbp), %rdi
movq -0x78(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x68(%rbp), %rsi
movq -0x60(%rbp), %rdx
callq 0x5e00
leaq -0x78(%rbp), %rdi
callq 0x5870
leaq -0x88(%rbp), %rdi
callq 0x5870
jmp 0x4264e
movq -0x58(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
jmp 0x4257b
movq -0xa8(%rbp), %rdi
leaq 0x21467(%rip), %rsi     # 0x63ad4
callq 0x5ce0
movq $0x0, -0x90(%rbp)
cmpq $0x10, -0x90(%rbp)
jae 0x4273f
movq -0x20(%rbp), %rax
addq -0x90(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0x10(%rbp), %rdi
callq 0x6290
movq %rax, %rcx
movq -0xc0(%rbp), %rax
cmpq %rcx, %rax
jb 0x426ca
movq -0xa8(%rbp), %rdi
leaq 0x21411(%rip), %rsi     # 0x63ad4
callq 0x5ce0
jmp 0x42726
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
addq -0x90(%rbp), %rsi
callq 0x62e0
movb (%rax), %al
movb %al, -0x91(%rbp)
movsbl -0x91(%rbp), %eax
cmpl $0x20, %eax
jl 0x42713
movsbl -0x91(%rbp), %eax
cmpl $0x7e, %eax
jg 0x42713
movq -0xa8(%rbp), %rdi
movsbl -0x91(%rbp), %esi
callq 0x5b40
jmp 0x42724
movq -0xa8(%rbp), %rdi
movl $0x2e, %esi
callq 0x5b40
jmp 0x42726
jmp 0x42728
movq -0x90(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x90(%rbp)
jmp 0x4267d
movq -0xa8(%rbp), %rdi
leaq 0x2119b(%rip), %rsi     # 0x638e8
callq 0x5ce0
movq -0x20(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x20(%rbp)
jmp 0x424f5
movb $0x1, -0x11(%rbp)
testb $0x1, -0x11(%rbp)
jne 0x42779
movq -0xa8(%rbp), %rdi
callq 0x5870
movq -0xa0(%rbp), %rax
addq $0xc0, %rsp
popq %rbp
retq
nopl (%rax)