// File: /workspace/github_c_makefile_star2_O3/GangZhuo[P]dohclient/src/stream.c
// Function: bprint
void _bprint(char *data, int len)
{
	int i;

	for (i = 0; i < len; i += 8) {
		switch (len - i) {
		case 1:
			logv("%04x: %02x                       %c\n", i,
				(unsigned int)(data[i + 0] & 0xFF),
				get_ch(data, i + 0));
			break;
		case 2:
			logv("%04x: %02x %02x                    %c%c\n", i,
				(unsigned int)(data[i + 0] & 0xFF),
				(unsigned int)(data[i + 1] & 0xFF),
				get_ch(data, i + 0),
				get_ch(data, i + 1));
			break;
		case 3:
			logv("%04x: %02x %02x %02x                 %c%c%c\n", i,
				(unsigned int)(data[i + 0] & 0xFF),
				(unsigned int)(data[i + 1] & 0xFF),
				(unsigned int)(data[i + 2] & 0xFF),
				get_ch(data, i + 0),
				get_ch(data, i + 1),
				get_ch(data, i + 2));
			break;
		case 4:
			logv("%04x: %02x %02x %02x %02x              %c%c%c%c\n", i,
				(unsigned int)(data[i + 0] & 0xFF),
				(unsigned int)(data[i + 1] & 0xFF),
				(unsigned int)(data[i + 2] & 0xFF),
				(unsigned int)(data[i + 3] & 0xFF),
				get_ch(data, i + 0),
				get_ch(data, i + 1),
				get_ch(data, i + 2),
				get_ch(data, i + 3));
			break;
		case 5:
			logv("%04x: %02x %02x %02x %02x %02x           %c%c%c%c%c\n", i,
				(unsigned int)(data[i + 0] & 0xFF),
				(unsigned int)(data[i + 1] & 0xFF),
				(unsigned int)(data[i + 2] & 0xFF),
				(unsigned int)(data[i + 3] & 0xFF),
				(unsigned int)(data[i + 4] & 0xFF),
				get_ch(data, i + 0),
				get_ch(data, i + 1),
				get_ch(data, i + 2),
				get_ch(data, i + 3),
				get_ch(data, i + 4));
			break;
		case 6:
			logv("%04x: %02x %02x %02x %02x %02x %02x        %c%c%c%c%c%c\n", i,
				(unsigned int)(data[i + 0] & 0xFF),
				(unsigned int)(data[i + 1] & 0xFF),
				(unsigned int)(data[i + 2] & 0xFF),
				(unsigned int)(data[i + 3] & 0xFF),
				(unsigned int)(data[i + 4] & 0xFF),
				(unsigned int)(data[i + 5] & 0xFF),
				get_ch(data, i + 0),
				get_ch(data, i + 1),
				get_ch(data, i + 2),
				get_ch(data, i + 3),
				get_ch(data, i + 4),
				get_ch(data, i + 5));
			break;
		case 7:
			logv("%04x: %02x %02x %02x %02x %02x %02x %02x     %c%c%c%c%c%c%c\n", i,
				(unsigned int)(data[i + 0] & 0xFF),
				(unsigned int)(data[i + 1] & 0xFF),
				(unsigned int)(data[i + 2] & 0xFF),
				(unsigned int)(data[i + 3] & 0xFF),
				(unsigned int)(data[i + 4] & 0xFF),
				(unsigned int)(data[i + 5] & 0xFF),
				(unsigned int)(data[i + 6] & 0xFF),
				get_ch(data, i + 0),
				get_ch(data, i + 1),
				get_ch(data, i + 2),
				get_ch(data, i + 3),
				get_ch(data, i + 4),
				get_ch(data, i + 5),
				get_ch(data, i + 6));
			break;
		default:
			logv("%04x: %02x %02x %02x %02x %02x %02x %02x %02x  %c%c%c%c%c%c%c%c\n", i,
				(unsigned int)(data[i + 0] & 0xFF),
				(unsigned int)(data[i + 1] & 0xFF),
				(unsigned int)(data[i + 2] & 0xFF),
				(unsigned int)(data[i + 3] & 0xFF),
				(unsigned int)(data[i + 4] & 0xFF),
				(unsigned int)(data[i + 5] & 0xFF),
				(unsigned int)(data[i + 6] & 0xFF),
				(unsigned int)(data[i + 7] & 0xFF),
				get_ch(data, i + 0),
				get_ch(data, i + 1),
				get_ch(data, i + 2),
				get_ch(data, i + 3),
				get_ch(data, i + 4),
				get_ch(data, i + 5),
				get_ch(data, i + 6),
				get_ch(data, i + 7));
			break;
		}
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rdi, 0x20(%rsp)
testl %esi, %esi
jle 0x5b2c
movl %esi, %ebp
leaq 0x216a(%rip), %r15      # 0x74f0
movl %esi, %r12d
xorl %r13d, %r13d
movl %esi, 0xc(%rsp)
xorl %eax, %eax
callq 0x2e49
movl (%rax), %eax
leal -0x1(%r12), %ecx
cmpl $0x6, %ecx
ja 0x5692
movslq (%r15,%rcx,4), %rcx
addq %r15, %rcx
jmpq *%rcx
cmpl $0x8, %eax
jl 0x5b1b
movq 0x20(%rsp), %rax
movzbl (%rax,%r13), %r10d
leal -0x7f(%r10), %eax
cmpb $-0x5f, %al
movl %r10d, %r11d
movl $0x3f, %eax
cmovbl %eax, %r11d
cmpl $0x20, %r10d
movl $0x2e, %eax
cmovel %eax, %r11d
movl $0x8, %edi
leaq 0x211e(%rip), %rsi      # 0x750c
leaq 0x2124(%rip), %rdx      # 0x7519
movl $0x168, %ecx            # imm = 0x168
leaq 0x2120(%rip), %r8       # 0x7521
movl %r13d, %r9d
xorl %eax, %eax
pushq %r11
pushq %r10
callq 0x2e82
addq $0x10, %rsp
jmp 0x5b1b
cmpl $0x8, %eax
jl 0x5b1b
movq 0x20(%rsp), %rcx
movzbl (%rcx,%r13), %esi
movq %rsi, 0x18(%rsp)
leal -0x7f(%rsi), %eax
cmpb $-0x5f, %al
movl %esi, %eax
movl $0x3f, %edx
cmovbl %edx, %eax
cmpl $0x20, %esi
movzbl 0x1(%rcx,%r13), %edi
movl $0x2e, %esi
cmovel %esi, %eax
movq %rax, 0x30(%rsp)
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movq %rdi, 0x10(%rsp)
movl %edi, %r14d
cmovbl %edx, %r14d
cmpl $0x20, %edi
cmovel %esi, %r14d
movzbl 0x2(%rcx,%r13), %edi
movq %rdi, 0x28(%rsp)
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movl %edi, %r15d
cmovbl %edx, %r15d
cmpl $0x20, %edi
movzbl 0x3(%rcx,%r13), %r10d
cmovel %esi, %r15d
leal -0x7f(%r10), %eax
cmpb $-0x5f, %al
movl %r10d, %ebp
cmovbl %edx, %ebp
cmpl $0x20, %r10d
movzbl 0x4(%rcx,%r13), %ebx
cmovel %esi, %ebp
leal -0x7f(%rbx), %eax
cmpb $-0x5f, %al
movl %ebx, %r11d
cmovbl %edx, %r11d
cmpl $0x20, %ebx
cmovel %esi, %r11d
movl $0x8, %edi
leaq 0x2043(%rip), %rsi      # 0x750c
leaq 0x2049(%rip), %rdx      # 0x7519
movl $0x190, %ecx            # imm = 0x190
leaq 0x20f1(%rip), %r8       # 0x75cd
movl %r13d, %r9d
xorl %eax, %eax
pushq %r11
pushq %rbp
movl 0x1c(%rsp), %ebp
pushq %r15
leaq 0x1fff(%rip), %r15      # 0x74f0
pushq %r14
pushq 0x50(%rsp)
pushq %rbx
pushq %r10
pushq 0x60(%rsp)
pushq 0x50(%rsp)
pushq 0x60(%rsp)
callq 0x2e82
addq $0x50, %rsp
jmp 0x5b1b
cmpl $0x8, %eax
jl 0x5b1b
movq 0x20(%rsp), %rcx
movzbl (%rcx,%r13), %r10d
leal -0x7f(%r10), %eax
cmpb $-0x5f, %al
movl %r10d, %ebx
movl $0x3f, %edx
cmovbl %edx, %ebx
cmpl $0x20, %r10d
movzbl 0x1(%rcx,%r13), %r11d
movl $0x2e, %esi
cmovel %esi, %ebx
leal -0x7f(%r11), %eax
cmpb $-0x5f, %al
movl %r11d, %r15d
cmovbl %edx, %r15d
cmpl $0x20, %r11d
movzbl 0x2(%rcx,%r13), %r14d
cmovel %esi, %r15d
leal -0x7f(%r14), %eax
cmpb $-0x5f, %al
movl %r14d, %ebp
cmovbl %edx, %ebp
cmpl $0x20, %r14d
cmovel %esi, %ebp
movl $0x8, %edi
leaq 0x1f88(%rip), %rsi      # 0x750c
leaq 0x1f8e(%rip), %rdx      # 0x7519
movl $0x178, %ecx            # imm = 0x178
leaq 0x1fd8(%rip), %r8       # 0x756f
movl %r13d, %r9d
xorl %eax, %eax
pushq %rbp
movl 0x14(%rsp), %ebp
pushq %r15
leaq 0x1f46(%rip), %r15      # 0x74f0
pushq %rbx
pushq %r14
pushq %r11
pushq %r10
callq 0x2e82
addq $0x30, %rsp
jmp 0x5b1b
cmpl $0x8, %eax
jl 0x5b1b
movq 0x20(%rsp), %rcx
movzbl (%rcx,%r13), %esi
movq %rsi, 0x18(%rsp)
leal -0x7f(%rsi), %eax
cmpb $-0x5f, %al
movl %esi, %ebx
movl $0x3f, %edx
cmovbl %edx, %ebx
cmpl $0x20, %esi
movl $0x2e, %esi
cmovel %esi, %ebx
movzbl 0x1(%rcx,%r13), %edi
movq %rdi, 0x10(%rsp)
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movl %edi, %r15d
cmovbl %edx, %r15d
cmpl $0x20, %edi
movzbl 0x2(%rcx,%r13), %r10d
cmovel %esi, %r15d
leal -0x7f(%r10), %eax
cmpb $-0x5f, %al
movl %r10d, %r14d
cmovbl %edx, %r14d
cmpl $0x20, %r10d
movzbl 0x3(%rcx,%r13), %r11d
cmovel %esi, %r14d
leal -0x7f(%r11), %eax
cmpb $-0x5f, %al
movl %r11d, %ebp
cmovbl %edx, %ebp
cmpl $0x20, %r11d
cmovel %esi, %ebp
movl $0x8, %edi
leaq 0x1ebd(%rip), %rsi      # 0x750c
leaq 0x1ec3(%rip), %rdx      # 0x7519
movl $0x183, %ecx            # imm = 0x183
leaq 0x1f3a(%rip), %r8       # 0x759c
movl %r13d, %r9d
xorl %eax, %eax
pushq %rbp
movl 0x14(%rsp), %ebp
pushq %r14
pushq %r15
leaq 0x1e79(%rip), %r15      # 0x74f0
pushq %rbx
pushq %r11
pushq %r10
pushq 0x40(%rsp)
pushq 0x50(%rsp)
callq 0x2e82
addq $0x40, %rsp
jmp 0x5b1b
cmpl $0x8, %eax
jl 0x5b1b
movq 0x20(%rsp), %rcx
movzbl (%rcx,%r13), %esi
movq %rsi, 0x18(%rsp)
leal -0x7f(%rsi), %eax
cmpb $-0x5f, %al
movl %esi, %eax
movl $0x3f, %edx
cmovbl %edx, %eax
cmpl $0x20, %esi
movzbl 0x1(%rcx,%r13), %edi
movl $0x2e, %esi
cmovel %esi, %eax
movq %rax, 0x30(%rsp)
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movq %rdi, 0x10(%rsp)
movl %edi, %eax
cmovbl %edx, %eax
cmpl $0x20, %edi
cmovel %esi, %eax
movq %rax, 0x40(%rsp)
movzbl 0x2(%rcx,%r13), %edi
movq %rdi, 0x28(%rsp)
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movl %edi, %eax
cmovbl %edx, %eax
cmpl $0x20, %edi
movzbl 0x3(%rcx,%r13), %edi
cmovel %esi, %eax
movq %rax, 0x50(%rsp)
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movq %rdi, 0x38(%rsp)
movl %edi, %r15d
cmovbl %edx, %r15d
cmpl $0x20, %edi
movzbl 0x4(%rcx,%r13), %edi
cmovel %esi, %r15d
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movq %rdi, 0x48(%rsp)
movl %edi, %ebx
cmovbl %edx, %ebx
cmpl $0x20, %edi
cmovel %esi, %ebx
movzbl 0x5(%rcx,%r13), %edi
movq %rdi, 0x60(%rsp)
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movl %edi, %r10d
cmovbl %edx, %r10d
cmpl $0x20, %edi
movzbl 0x6(%rcx,%r13), %edi
cmovel %esi, %r10d
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movq %rdi, 0x58(%rsp)
movl %edi, %r14d
cmovbl %edx, %r14d
cmpl $0x20, %edi
movzbl 0x7(%rcx,%r13), %ebp
cmovel %esi, %r14d
leal -0x7f(%rbp), %eax
cmpb $-0x5f, %al
movl %ebp, %r11d
cmovbl %edx, %r11d
cmpl $0x20, %ebp
cmovel %esi, %r11d
movl $0x8, %edi
leaq 0x1d69(%rip), %rsi      # 0x750c
leaq 0x1d6f(%rip), %rdx      # 0x7519
movl $0x1c3, %ecx            # imm = 0x1C3
leaq 0x1ec2(%rip), %r8       # 0x7678
movl %r13d, %r9d
xorl %eax, %eax
pushq %r11
pushq %r14
pushq %r10
pushq %rbx
pushq %r15
leaq 0x1d25(%rip), %r15      # 0x74f0
pushq 0x78(%rsp)
pushq 0x70(%rsp)
pushq 0x68(%rsp)
pushq %rbp
movl 0x54(%rsp), %ebp
pushq 0xa0(%rsp)
pushq 0xb0(%rsp)
pushq 0xa0(%rsp)
pushq 0x98(%rsp)
pushq 0x90(%rsp)
pushq 0x80(%rsp)
pushq 0x90(%rsp)
callq 0x2e82
addq $0x80, %rsp
jmp 0x5b1b
cmpl $0x8, %eax
jl 0x5b1b
movq 0x20(%rsp), %rcx
movzbl (%rcx,%r13), %r10d
leal -0x7f(%r10), %eax
cmpb $-0x5f, %al
movl %r10d, %r11d
movl $0x3f, %edx
cmovbl %edx, %r11d
cmpl $0x20, %r10d
movzbl 0x1(%rcx,%r13), %ebx
movl $0x2e, %ecx
cmovel %ecx, %r11d
leal -0x7f(%rbx), %eax
cmpb $-0x5f, %al
movl %ebx, %r14d
cmovbl %edx, %r14d
cmpl $0x20, %ebx
cmovel %ecx, %r14d
movl $0x8, %edi
leaq 0x1c97(%rip), %rsi      # 0x750c
leaq 0x1c9d(%rip), %rdx      # 0x7519
movl $0x16f, %ecx            # imm = 0x16F
leaq 0x1cbe(%rip), %r8       # 0x7546
movl %r13d, %r9d
xorl %eax, %eax
pushq %r14
pushq %r11
pushq %rbx
pushq %r10
callq 0x2e82
addq $0x20, %rsp
jmp 0x5b1b
cmpl $0x8, %eax
jl 0x5b1b
movq 0x20(%rsp), %rcx
movzbl (%rcx,%r13), %esi
movq %rsi, 0x18(%rsp)
leal -0x7f(%rsi), %eax
cmpb $-0x5f, %al
movl %esi, %eax
movl $0x3f, %edx
cmovbl %edx, %eax
cmpl $0x20, %esi
movzbl 0x1(%rcx,%r13), %edi
movl $0x2e, %esi
cmovel %esi, %eax
movq %rax, 0x30(%rsp)
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movq %rdi, 0x10(%rsp)
movl %edi, %eax
cmovbl %edx, %eax
cmpl $0x20, %edi
movzbl 0x2(%rcx,%r13), %edi
cmovel %esi, %eax
movq %rax, 0x40(%rsp)
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movq %rdi, 0x28(%rsp)
movl %edi, %r14d
cmovbl %edx, %r14d
cmpl $0x20, %edi
cmovel %esi, %r14d
movzbl 0x3(%rcx,%r13), %edi
movq %rdi, 0x38(%rsp)
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movl %edi, %r10d
cmovbl %edx, %r10d
cmpl $0x20, %edi
movzbl 0x4(%rcx,%r13), %r15d
cmovel %esi, %r10d
leal -0x7f(%r15), %eax
cmpb $-0x5f, %al
movl %r15d, %r11d
cmovbl %edx, %r11d
cmpl $0x20, %r15d
movzbl 0x5(%rcx,%r13), %ebp
cmovel %esi, %r11d
leal -0x7f(%rbp), %eax
cmpb $-0x5f, %al
movl %ebp, %ebx
cmovbl %edx, %ebx
cmpl $0x20, %ebp
cmovel %esi, %ebx
movl $0x8, %edi
leaq 0x1b9a(%rip), %rsi      # 0x750c
leaq 0x1ba0(%rip), %rdx      # 0x7519
movl $0x19f, %ecx            # imm = 0x19F
leaq 0x1c7d(%rip), %r8       # 0x7602
movl %r13d, %r9d
xorl %eax, %eax
pushq %rbx
pushq %r11
pushq %r10
pushq %r14
pushq 0x60(%rsp)
pushq 0x58(%rsp)
pushq %rbp
movl 0x44(%rsp), %ebp
pushq %r15
leaq 0x1b49(%rip), %r15      # 0x74f0
pushq 0x78(%rsp)
pushq 0x70(%rsp)
pushq 0x60(%rsp)
pushq 0x70(%rsp)
callq 0x2e82
addq $0x60, %rsp
jmp 0x5b1b
cmpl $0x8, %eax
jl 0x5b1b
movq 0x20(%rsp), %rcx
movzbl (%rcx,%r13), %esi
movq %rsi, 0x18(%rsp)
leal -0x7f(%rsi), %eax
cmpb $-0x5f, %al
movl %esi, %eax
movl $0x3f, %edx
cmovbl %edx, %eax
cmpl $0x20, %esi
movl $0x2e, %esi
cmovel %esi, %eax
movq %rax, 0x30(%rsp)
movzbl 0x1(%rcx,%r13), %edi
movq %rdi, 0x10(%rsp)
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movl %edi, %eax
cmovbl %edx, %eax
cmpl $0x20, %edi
movzbl 0x2(%rcx,%r13), %edi
cmovel %esi, %eax
movq %rax, 0x40(%rsp)
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movq %rdi, 0x28(%rsp)
movl %edi, %r15d
cmovbl %edx, %r15d
cmpl $0x20, %edi
movzbl 0x3(%rcx,%r13), %edi
cmovel %esi, %r15d
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movq %rdi, 0x38(%rsp)
movl %edi, %r14d
cmovbl %edx, %r14d
cmpl $0x20, %edi
cmovel %esi, %r14d
movzbl 0x4(%rcx,%r13), %edi
movq %rdi, 0x50(%rsp)
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movl %edi, %r11d
cmovbl %edx, %r11d
cmpl $0x20, %edi
movzbl 0x5(%rcx,%r13), %edi
cmovel %esi, %r11d
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movq %rdi, 0x48(%rsp)
movl %edi, %r10d
cmovbl %edx, %r10d
cmpl $0x20, %edi
movzbl 0x6(%rcx,%r13), %ebp
cmovel %esi, %r10d
leal -0x7f(%rbp), %eax
cmpb $-0x5f, %al
movl %ebp, %ebx
cmovbl %edx, %ebx
cmpl $0x20, %ebp
cmovel %esi, %ebx
movl $0x8, %edi
leaq 0x1a56(%rip), %rsi      # 0x750c
leaq 0x1a5c(%rip), %rdx      # 0x7519
movl $0x1b0, %ecx            # imm = 0x1B0
leaq 0x1b72(%rip), %r8       # 0x763b
movl %r13d, %r9d
xorl %eax, %eax
pushq %rbx
pushq %r10
pushq %r11
pushq %r14
pushq %r15
leaq 0x1a12(%rip), %r15      # 0x74f0
pushq 0x68(%rsp)
pushq 0x60(%rsp)
pushq %rbp
movl 0x4c(%rsp), %ebp
pushq 0x88(%rsp)
pushq 0x98(%rsp)
pushq 0x88(%rsp)
pushq 0x80(%rsp)
pushq 0x70(%rsp)
pushq 0x80(%rsp)
callq 0x2e82
addq $0x70, %rsp
addq $0x8, %r13
addl $-0x8, %r12d
cmpl %ebp, %r13d
jl 0x5390
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop