// File: /workspace/github_c_makefile_star2_O2/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
movl %esi, %ebx
movq %rdi, 0x18(%rsp)
movslq %esi, %r12
leaq 0x2cdf(%rip), %rbp      # 0x7510
xorl %r13d, %r13d
movq %r12, 0x30(%rsp)
cmpq %r12, %r13
jge 0x4fd0
xorl %eax, %eax
callq 0x24d9
movl (%rax), %eax
leal -0x1(%rbx), %ecx
cmpl $0x6, %ecx
ja 0x4b3a
movslq (%rbp,%rcx,4), %rcx
addq %rbp, %rcx
jmpq *%rcx
cmpl $0x8, %eax
jl 0x4fc4
movq 0x18(%rsp), %rax
movzbl (%rax,%r13), %r10d
leal -0x7f(%r10), %eax
cmpb $-0x5f, %al
movl %r10d, %r11d
pushq $0x3f
popq %rax
cmovbl %eax, %r11d
cmpl $0x20, %r10d
pushq $0x2e
popq %rax
cmovel %eax, %r11d
pushq $0x8
popq %rdi
leaq 0x2c93(%rip), %rsi      # 0x752c
leaq 0x2c99(%rip), %rdx      # 0x7539
movl $0x168, %ecx            # imm = 0x168
leaq 0x2c95(%rip), %r8       # 0x7541
movl %r13d, %r9d
xorl %eax, %eax
pushq %r11
pushq %r10
callq 0x2512
popq %rax
popq %rcx
jmp 0x4fc4
cmpl $0x8, %eax
jl 0x4fc4
movq 0x18(%rsp), %rcx
movzbl (%rcx,%r13), %esi
movq %rsi, 0x8(%rsp)
leal -0x7f(%rsi), %eax
cmpb $-0x5f, %al
movl %esi, %r15d
pushq $0x3f
popq %rdx
cmovbl %edx, %r15d
cmpl $0x20, %esi
movzbl 0x1(%rcx,%r13), %edi
pushq $0x2e
popq %rsi
cmovel %esi, %r15d
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movq %rdi, 0x28(%rsp)
movl %edi, %r14d
cmovbl %edx, %r14d
cmpl $0x20, %edi
cmovel %esi, %r14d
movzbl 0x2(%rcx,%r13), %edi
movq %rdi, 0x20(%rsp)
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movl %edi, %r12d
cmovbl %edx, %r12d
cmpl $0x20, %edi
movzbl 0x3(%rcx,%r13), %r10d
cmovel %esi, %r12d
leal -0x7f(%r10), %eax
cmpb $-0x5f, %al
movl %r10d, %ebp
cmovbl %edx, %ebp
cmpl $0x20, %r10d
movzbl 0x4(%rcx,%r13), %r11d
cmovel %esi, %ebp
leal -0x7f(%r11), %eax
cmpb $-0x5f, %al
movq %rbx, 0x10(%rsp)
movl %r11d, %ebx
cmovbl %edx, %ebx
cmpl $0x20, %r11d
cmovel %esi, %ebx
pushq $0x8
popq %rdi
leaq 0x2bbd(%rip), %rsi      # 0x752c
leaq 0x2bc3(%rip), %rdx      # 0x7539
movl $0x190, %ecx            # imm = 0x190
leaq 0x2c6b(%rip), %r8       # 0x75ed
movl %r13d, %r9d
xorl %eax, %eax
pushq %rbx
movq 0x18(%rsp), %rbx
pushq %rbp
leaq 0x2b7b(%rip), %rbp      # 0x7510
pushq %r12
movq 0x48(%rsp), %r12
pushq %r14
pushq %r15
pushq %r11
pushq %r10
pushq 0x58(%rsp)
pushq 0x68(%rsp)
pushq 0x50(%rsp)
callq 0x2512
addq $0x50, %rsp
jmp 0x4fc4
cmpl $0x8, %eax
jl 0x4fc4
movq 0x18(%rsp), %rcx
movzbl (%rcx,%r13), %r10d
leal -0x7f(%r10), %eax
cmpb $-0x5f, %al
movl %r10d, %r14d
pushq $0x3f
popq %rdx
cmovbl %edx, %r14d
cmpl $0x20, %r10d
movzbl 0x1(%rcx,%r13), %r11d
pushq $0x2e
popq %rsi
cmovel %esi, %r14d
leal -0x7f(%r11), %eax
cmpb $-0x5f, %al
movl %r11d, %r12d
cmovbl %edx, %r12d
cmpl $0x20, %r11d
movzbl 0x2(%rcx,%r13), %r15d
cmovel %esi, %r12d
leal -0x7f(%r15), %eax
cmpb $-0x5f, %al
movl %r15d, %ebp
cmovbl %edx, %ebp
cmpl $0x20, %r15d
cmovel %esi, %ebp
pushq $0x8
popq %rdi
leaq 0x2b02(%rip), %rsi      # 0x752c
leaq 0x2b08(%rip), %rdx      # 0x7539
movl $0x178, %ecx            # imm = 0x178
leaq 0x2b52(%rip), %r8       # 0x758f
movl %r13d, %r9d
xorl %eax, %eax
pushq %rbp
leaq 0x2ac6(%rip), %rbp      # 0x7510
pushq %r12
movq 0x40(%rsp), %r12
pushq %r14
pushq %r15
pushq %r11
pushq %r10
callq 0x2512
addq $0x30, %rsp
jmp 0x4fc4
cmpl $0x8, %eax
jl 0x4fc4
movq 0x18(%rsp), %rcx
movzbl (%rcx,%r13), %esi
movq %rsi, 0x8(%rsp)
leal -0x7f(%rsi), %eax
cmpb $-0x5f, %al
movl %esi, %r14d
pushq $0x3f
popq %rdx
cmovbl %edx, %r14d
cmpl $0x20, %esi
pushq $0x2e
popq %rsi
cmovel %esi, %r14d
movzbl 0x1(%rcx,%r13), %r11d
leal -0x7f(%r11), %eax
cmpb $-0x5f, %al
movl %r11d, %r12d
cmovbl %edx, %r12d
cmpl $0x20, %r11d
movzbl 0x2(%rcx,%r13), %r10d
cmovel %esi, %r12d
leal -0x7f(%r10), %eax
cmpb $-0x5f, %al
movl %r10d, %r15d
cmovbl %edx, %r15d
cmpl $0x20, %r10d
movq %rbx, 0x10(%rsp)
movzbl 0x3(%rcx,%r13), %ebx
cmovel %esi, %r15d
leal -0x7f(%rbx), %eax
cmpb $-0x5f, %al
movl %ebx, %ebp
cmovbl %edx, %ebp
cmpl $0x20, %ebx
cmovel %esi, %ebp
pushq $0x8
popq %rdi
leaq 0x2a39(%rip), %rsi      # 0x752c
leaq 0x2a3f(%rip), %rdx      # 0x7539
movl $0x183, %ecx            # imm = 0x183
leaq 0x2ab6(%rip), %r8       # 0x75bc
movl %r13d, %r9d
xorl %eax, %eax
pushq %rbp
leaq 0x29fd(%rip), %rbp      # 0x7510
pushq %r15
pushq %r12
movq 0x48(%rsp), %r12
pushq %r14
pushq %rbx
movq 0x38(%rsp), %rbx
pushq %r10
pushq %r11
pushq 0x40(%rsp)
callq 0x2512
addq $0x40, %rsp
jmp 0x4fc4
cmpl $0x8, %eax
jl 0x4fc4
movq 0x18(%rsp), %rcx
movzbl (%rcx,%r13), %esi
movq %rsi, 0x8(%rsp)
leal -0x7f(%rsi), %eax
cmpb $-0x5f, %al
movl %esi, %eax
pushq $0x3f
popq %rdx
cmovbl %edx, %eax
cmpl $0x20, %esi
movzbl 0x1(%rcx,%r13), %edi
pushq $0x2e
popq %rsi
cmovel %esi, %eax
movq %rax, 0x20(%rsp)
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movq %rdi, 0x28(%rsp)
movl %edi, %eax
cmovbl %edx, %eax
cmpl $0x20, %edi
cmovel %esi, %eax
movq %rax, 0x38(%rsp)
movzbl 0x2(%rcx,%r13), %edi
movq %rdi, 0x40(%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, 0x48(%rsp)
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movq %rdi, 0x50(%rsp)
movl %edi, %ebp
cmovbl %edx, %ebp
cmpl $0x20, %edi
movzbl 0x4(%rcx,%r13), %edi
cmovel %esi, %ebp
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movq %rdi, 0x60(%rsp)
movl %edi, %r15d
cmovbl %edx, %r15d
cmpl $0x20, %edi
cmovel %esi, %r15d
movzbl 0x5(%rcx,%r13), %edi
movq %rdi, 0x58(%rsp)
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movl %edi, %r10d
cmovbl %edx, %r10d
cmpl $0x20, %edi
movzbl 0x6(%rcx,%r13), %r12d
cmovel %esi, %r10d
leal -0x7f(%r12), %eax
cmpb $-0x5f, %al
movl %r12d, %r14d
cmovbl %edx, %r14d
cmpl $0x20, %r12d
movzbl 0x7(%rcx,%r13), %r11d
cmovel %esi, %r14d
leal -0x7f(%r11), %eax
cmpb $-0x5f, %al
movq %rbx, 0x10(%rsp)
movl %r11d, %ebx
cmovbl %edx, %ebx
cmpl $0x20, %r11d
cmovel %esi, %ebx
pushq $0x8
popq %rdi
leaq 0x28e4(%rip), %rsi      # 0x752c
leaq 0x28ea(%rip), %rdx      # 0x7539
movl $0x1c3, %ecx            # imm = 0x1C3
leaq 0x2a3d(%rip), %r8       # 0x7698
movl %r13d, %r9d
xorl %eax, %eax
pushq %rbx
movq 0x18(%rsp), %rbx
pushq %r14
pushq %r10
pushq %r15
pushq %rbp
leaq 0x289c(%rip), %rbp      # 0x7510
pushq 0x70(%rsp)
pushq 0x68(%rsp)
pushq 0x58(%rsp)
pushq %r11
pushq %r12
movq 0x80(%rsp), %r12
pushq 0xa8(%rsp)
pushq 0xb8(%rsp)
pushq 0xb0(%rsp)
pushq 0xa8(%rsp)
pushq 0x98(%rsp)
pushq 0x80(%rsp)
callq 0x2512
addq $0x80, %rsp
jmp 0x4fc4
cmpl $0x8, %eax
jl 0x4fc4
movq 0x18(%rsp), %rcx
movzbl (%rcx,%r13), %r10d
leal -0x7f(%r10), %eax
cmpb $-0x5f, %al
movl %r10d, %r11d
pushq $0x3f
popq %rdx
cmovbl %edx, %r11d
cmpl $0x20, %r10d
movzbl 0x1(%rcx,%r13), %r14d
pushq $0x2e
popq %rcx
cmovel %ecx, %r11d
leal -0x7f(%r14), %eax
cmpb $-0x5f, %al
movl %r14d, %r15d
cmovbl %edx, %r15d
cmpl $0x20, %r14d
cmovel %ecx, %r15d
pushq $0x8
popq %rdi
leaq 0x2812(%rip), %rsi      # 0x752c
leaq 0x2818(%rip), %rdx      # 0x7539
movl $0x16f, %ecx            # imm = 0x16F
leaq 0x2839(%rip), %r8       # 0x7566
movl %r13d, %r9d
xorl %eax, %eax
pushq %r15
pushq %r11
pushq %r14
pushq %r10
callq 0x2512
addq $0x20, %rsp
jmp 0x4fc4
cmpl $0x8, %eax
jl 0x4fc4
movq 0x18(%rsp), %rcx
movzbl (%rcx,%r13), %esi
movq %rsi, 0x8(%rsp)
leal -0x7f(%rsi), %eax
cmpb $-0x5f, %al
movl %esi, %eax
pushq $0x3f
popq %rdx
cmovbl %edx, %eax
cmpl $0x20, %esi
movzbl 0x1(%rcx,%r13), %edi
pushq $0x2e
popq %rsi
cmovel %esi, %eax
movq %rax, 0x20(%rsp)
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movq %rdi, 0x28(%rsp)
movl %edi, %ebp
cmovbl %edx, %ebp
cmpl $0x20, %edi
movzbl 0x2(%rcx,%r13), %edi
cmovel %esi, %ebp
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movq %rdi, 0x40(%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), %r12d
cmovel %esi, %r10d
leal -0x7f(%r12), %eax
cmpb $-0x5f, %al
movl %r12d, %r11d
cmovbl %edx, %r11d
cmpl $0x20, %r12d
movzbl 0x5(%rcx,%r13), %r15d
cmovel %esi, %r11d
leal -0x7f(%r15), %eax
cmpb $-0x5f, %al
movq %rbx, 0x10(%rsp)
movl %r15d, %ebx
cmovbl %edx, %ebx
cmpl $0x20, %r15d
cmovel %esi, %ebx
pushq $0x8
popq %rdi
leaq 0x2716(%rip), %rsi      # 0x752c
leaq 0x271c(%rip), %rdx      # 0x7539
movl $0x19f, %ecx            # imm = 0x19F
leaq 0x27f9(%rip), %r8       # 0x7622
movl %r13d, %r9d
xorl %eax, %eax
pushq %rbx
movq 0x18(%rsp), %rbx
pushq %r11
pushq %r10
pushq %r14
pushq %rbp
leaq 0x26ce(%rip), %rbp      # 0x7510
pushq 0x48(%rsp)
pushq %r15
pushq %r12
movq 0x70(%rsp), %r12
pushq 0x78(%rsp)
pushq 0x88(%rsp)
pushq 0x78(%rsp)
pushq 0x60(%rsp)
callq 0x2512
addq $0x60, %rsp
jmp 0x4fc4
cmpl $0x8, %eax
jl 0x4fc4
movq 0x18(%rsp), %rcx
movzbl (%rcx,%r13), %esi
movq %rsi, 0x8(%rsp)
leal -0x7f(%rsi), %eax
cmpb $-0x5f, %al
movl %esi, %eax
pushq $0x3f
popq %rdx
cmovbl %edx, %eax
cmpl $0x20, %esi
pushq $0x2e
popq %rsi
cmovel %esi, %eax
movq %rax, 0x20(%rsp)
movzbl 0x1(%rcx,%r13), %edi
movq %rdi, 0x28(%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, 0x38(%rsp)
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movq %rdi, 0x40(%rsp)
movl %edi, %r12d
cmovbl %edx, %r12d
cmpl $0x20, %edi
movzbl 0x3(%rcx,%r13), %edi
cmovel %esi, %r12d
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movq %rdi, 0x50(%rsp)
movl %edi, %r14d
cmovbl %edx, %r14d
cmpl $0x20, %edi
cmovel %esi, %r14d
movzbl 0x4(%rcx,%r13), %edi
movq %rdi, 0x48(%rsp)
leal -0x7f(%rdi), %eax
cmpb $-0x5f, %al
movl %edi, %r11d
cmovbl %edx, %r11d
cmpl $0x20, %edi
movzbl 0x5(%rcx,%r13), %ebp
cmovel %esi, %r11d
leal -0x7f(%rbp), %eax
cmpb $-0x5f, %al
movl %ebp, %r10d
cmovbl %edx, %r10d
cmpl $0x20, %ebp
movzbl 0x6(%rcx,%r13), %r15d
cmovel %esi, %r10d
leal -0x7f(%r15), %eax
cmpb $-0x5f, %al
movq %rbx, 0x10(%rsp)
movl %r15d, %ebx
cmovbl %edx, %ebx
cmpl $0x20, %r15d
cmovel %esi, %ebx
pushq $0x8
popq %rdi
leaq 0x25ce(%rip), %rsi      # 0x752c
leaq 0x25d4(%rip), %rdx      # 0x7539
movl $0x1b0, %ecx            # imm = 0x1B0
leaq 0x26ea(%rip), %r8       # 0x765b
movl %r13d, %r9d
xorl %eax, %eax
pushq %rbx
movq 0x18(%rsp), %rbx
pushq %r10
pushq %r11
pushq %r14
pushq %r12
movq 0x58(%rsp), %r12
pushq 0x60(%rsp)
pushq 0x50(%rsp)
pushq %r15
pushq %rbp
leaq 0x2575(%rip), %rbp      # 0x7510
pushq 0x90(%rsp)
pushq 0xa0(%rsp)
pushq 0x98(%rsp)
pushq 0x88(%rsp)
pushq 0x70(%rsp)
callq 0x2512
addq $0x70, %rsp
addq $0x8, %r13
addl $-0x8, %ebx
jmp 0x4839
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop