// File: /workspace/github_cpp_makefile_star2_O1/ALSchwalm[P]entrospy/entrospy/include/output.hpp
// Function: void print_block_bytes<__gnu_cxx::__normal_iterator<unsigned char const*, std::vector<unsigned char, std::allocator<unsigned char>>>>(__gnu_cxx::__normal_iterator<unsigned char const*, std::vector<unsigned char, std::allocator<unsigned char>>>, __gnu_cxx::__normal_iterator<unsigned char const*, std::vector<unsigned char, std::allocator<unsigned char>>>, unsigned long, unsigned long, PrintingPolicy const&)
void print_block_bytes(Iter begin, Iter end, uint64_t offset,
                       uint64_t address_width, const PrintingPolicy& policy) {
    const auto BYTES_PER_LINE = 16;
    auto iter = begin;
    for (auto i = 0; i < std::distance(begin, end) / BYTES_PER_LINE; ++i) {
        auto address = offset + BYTES_PER_LINE * i;
        std::cout << boost::format("%1%  ") %
                         boost::io::group(address_format_modifier(
                                              policy.addr_format),
                                          std::setw(address_width),
                                          std::setfill('0'), address);

        auto byte_iter = iter;
        auto line_end = iter + BYTES_PER_LINE;
        for (; byte_iter < line_end; ++byte_iter) {
            std::cout << boost::format("%02x ") %
                             static_cast<unsigned>(*byte_iter);
        }

        line_end -= 1;
        std::cout << "  |";
        for (; iter < line_end; ++iter) {
            std::cout << byte_to_printable(*iter);
        }
        std::cout << byte_to_printable(*iter++) << "|\n";
    }

    if (iter != end) {
        auto byte_iter = iter;
        auto printed = end - begin - (end - iter);

        std::cout << boost::format("%1%  ") %
                         boost::io::group(address_format_modifier(
                                              policy.addr_format),
                                          std::setw(address_width),
                                          std::setfill('0'), offset + printed);
        for (; byte_iter != end; ++byte_iter) {
            std::cout << boost::format("%02x ") %
                             static_cast<unsigned>(*byte_iter);
        }

        auto spacing = BYTES_PER_LINE - ((end - begin) % BYTES_PER_LINE);
        std::cout << std::string(spacing * 3, ' ') << "  |";
        for (; iter < end; ++iter) {
            std::cout << byte_to_printable(*iter);
        }
        std::cout << std::string(spacing, ' ') << "|\n";
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x168, %rsp            # imm = 0x168
movq %r8, 0x58(%rsp)
movq %rcx, 0x50(%rsp)
movq %rdx, 0x60(%rsp)
movq %rdi, %r14
movq %rsi, 0x28(%rsp)
subq %rdi, %rsi
leaq 0xf(%rsi), %rax
testq %rsi, %rsi
cmovnsq %rsi, %rax
movq %rsi, 0x48(%rsp)
cmpq $0x10, %rsi
movq %rax, 0x150(%rsp)
jl 0x175be
sarq $0x4, %rax
movq %rax, 0x158(%rsp)
leaq 0x70(%rsp), %rbp
leaq 0xd8(%rbp), %rax
movq %rax, 0x8(%rsp)
xorl %ebx, %ebx
movq 0xbc9d(%rip), %r12      # 0x22fb0
movl $0x2e, %r15d
xorl %r13d, %r13d
movq %r13, %rax
shlq $0x4, %rax
addq 0x60(%rsp), %rax
movq %rax, 0x68(%rsp)
movq %rbp, %rdi
leaq 0x2fd7(%rip), %rsi      # 0x1a30e
callq 0xa212
movq 0x58(%rsp), %rax
movl 0x18(%rax), %ecx
leaq -0x569(%rip), %rax      # 0x16de2
testl %ecx, %ecx
je 0x1735f
cmpl $0x1, %ecx
jne 0x17927
leaq -0x56d(%rip), %rax      # 0x16df2
movq %rax, 0x30(%rsp)
movq 0x50(%rsp), %rax
movl %eax, 0x38(%rsp)
movb $0x30, 0x3c(%rsp)
leaq 0x68(%rsp), %rax
movq %rax, 0x40(%rsp)
leaq 0x30(%rsp), %rax
movq %rax, 0x10(%rsp)
leaq -0x58b(%rip), %rax      # 0x16e02
movq %rax, 0x18(%rsp)
leaq -0x537(%rip), %rax      # 0x16e62
movq %rax, 0x20(%rsp)
movq %rbp, %rdi
leaq 0x10(%rsp), %rsi
callq 0x13f9c
movq %r12, %rdi
movq %rax, %rsi
callq 0x16003
cmpb $0x1, 0x140(%rsp)
jne 0x173d2
movq 0x8(%rsp), %rdi
callq 0x8560
movb $0x0, 0x140(%rsp)
leaq 0xe8(%rsp), %rdi
callq 0xa6d4
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x173f9
callq 0x8370
movq %r13, 0x160(%rsp)
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0x17439
callq 0x8370
movq %rbx, 0x88(%rsp)
movl %ebx, 0x90(%rsp)
movq %rbx, 0x98(%rsp)
movl %ebx, 0xa0(%rsp)
movq %rbx, 0xa8(%rsp)
movq %rbp, %rdi
callq 0xa728
xorl %r13d, %r13d
movq %rbp, %rdi
leaq 0x2ec6(%rip), %rsi      # 0x1a314
callq 0xa212
movzbl (%r14,%r13), %eax
movl %eax, 0x30(%rsp)
leaq 0x30(%rsp), %rax
movq %rax, 0x10(%rsp)
leaq 0x803(%rip), %rax       # 0x17c70
movq %rax, 0x18(%rsp)
leaq 0x7f8(%rip), %rax       # 0x17c71
movq %rax, 0x20(%rsp)
movq %rbp, %rdi
leaq 0x10(%rsp), %rsi
callq 0x13f9c
movq %r12, %rdi
movq %rax, %rsi
callq 0x16003
cmpb $0x1, 0x140(%rsp)
jne 0x174b2
movq 0x8(%rsp), %rdi
callq 0x8560
movb $0x0, 0x140(%rsp)
leaq 0xe8(%rsp), %rdi
callq 0xa6d4
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x174d9
callq 0x8370
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0x17511
callq 0x8370
movq %rbx, 0x88(%rsp)
movl %ebx, 0x90(%rsp)
movq %rbx, 0x98(%rsp)
movl %ebx, 0xa0(%rsp)
movq %rbx, 0xa8(%rsp)
movq %rbp, %rdi
callq 0xa728
incq %r13
cmpq $0x10, %r13
jne 0x17444
movl $0x3, %edx
movq %r12, %rdi
leaq 0x2de5(%rip), %rsi      # 0x1a31a
callq 0x8420
movq $-0xf, %r13
movzbl 0xf(%r14,%r13), %eax
leal -0x20(%rax), %ecx
cmpb $0x5f, %cl
cmovael %r15d, %eax
movb %al, 0x70(%rsp)
movl $0x1, %edx
movq %r12, %rdi
movq %rbp, %rsi
callq 0x8420
incq %r13
jne 0x17541
movzbl 0xf(%r14), %eax
addq $0x10, %r14
leal -0x20(%rax), %ecx
cmpb $0x5f, %cl
cmovael %r15d, %eax
movb %al, 0x70(%rsp)
movl $0x1, %edx
movq %r12, %rdi
movq %rbp, %rsi
callq 0x8420
movl $0x2, %edx
movq %rax, %rdi
leaq 0x2d7e(%rip), %rsi      # 0x1a31e
callq 0x8420
movq 0x160(%rsp), %r13
incq %r13
cmpq 0x158(%rsp), %r13
jne 0x1731c
movq 0x28(%rsp), %r15
cmpq %r15, %r14
je 0x17915
leaq 0x2d3b(%rip), %rsi      # 0x1a30e
leaq 0x70(%rsp), %rdi
callq 0xa212
movq 0x58(%rsp), %rax
movl 0x18(%rax), %eax
testl %eax, %eax
je 0x175fb
cmpl $0x1, %eax
jne 0x17927
leaq -0x807(%rip), %rax      # 0x16df2
jmp 0x17602
leaq -0x820(%rip), %rax      # 0x16de2
movq 0x60(%rsp), %rdx
subq %r15, %rdx
addq 0x48(%rsp), %rdx
addq %r14, %rdx
leaq 0x68(%rsp), %rcx
movq %rdx, (%rcx)
leaq 0x30(%rsp), %rdx
movq %rax, (%rdx)
movq 0x50(%rsp), %rax
movl %eax, 0x8(%rdx)
movb $0x30, 0xc(%rdx)
movq %rcx, 0x10(%rdx)
leaq 0x10(%rsp), %rsi
movq %rdx, (%rsi)
leaq 0x637(%rip), %rax       # 0x17c78
movq %rax, 0x8(%rsi)
leaq 0x68c(%rip), %rax       # 0x17cd8
movq %rax, 0x10(%rsi)
leaq 0x70(%rsp), %rdi
callq 0x13f9c
movq 0xb94f(%rip), %rdi      # 0x22fb0
movq %rax, %rsi
callq 0x16003
cmpb $0x1, 0x140(%rsp)
jne 0x17687
leaq 0x148(%rsp), %rbx
movq %rbx, %rdi
callq 0x8560
movb $0x0, -0x8(%rbx)
leaq 0xe8(%rsp), %rbx
movq %rbx, %rdi
callq 0xa6d4
movq -0x28(%rbx), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x176ad
callq 0x8370
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0x176e7
callq 0x8370
xorl %eax, %eax
movq %rax, 0x88(%rsp)
movl %eax, 0x90(%rsp)
movq %rax, 0x98(%rsp)
movl %eax, 0xa0(%rsp)
movq %rax, 0xa8(%rsp)
leaq 0x70(%rsp), %rdi
callq 0xa728
cmpq %r15, %r14
je 0x177f7
leaq 0x70(%rsp), %r13
leaq 0x10(%rsp), %rbp
movq 0xb8a5(%rip), %rbx      # 0x22fb0
xorl %r15d, %r15d
movq %r14, %r12
movq %r13, %rdi
leaq 0x2bf9(%rip), %rsi      # 0x1a314
callq 0xa212
movzbl (%r12), %eax
movl %eax, 0x30(%rsp)
leaq 0x30(%rsp), %rax
movq %rax, 0x10(%rsp)
leaq 0x536(%rip), %rax       # 0x17c70
movq %rax, 0x18(%rsp)
leaq 0x52b(%rip), %rax       # 0x17c71
movq %rax, 0x20(%rsp)
movq %r13, %rdi
movq %rbp, %rsi
callq 0x13f9c
movq %rbx, %rdi
movq %rax, %rsi
callq 0x16003
cmpb $0x1, 0x140(%rsp)
jne 0x17780
leaq 0x148(%rsp), %rdi
callq 0x8560
movb $0x0, 0x140(%rsp)
leaq 0xe8(%rsp), %rdi
callq 0xa6d4
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x177a7
callq 0x8370
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0x177e1
callq 0x8370
movq %r15, 0x88(%rsp)
movl %r15d, 0x90(%rsp)
movq %r15, 0x98(%rsp)
movl %r15d, 0xa0(%rsp)
movq %r15, 0xa8(%rsp)
movq %r13, %rdi
callq 0xa728
incq %r12
cmpq 0x28(%rsp), %r12
jne 0x17711
movq 0x150(%rsp), %rcx
andq $-0x10, %rcx
movq 0x48(%rsp), %rax
subq %rcx, %rax
movl $0x10, %r12d
subq %rax, %r12
leaq (%r12,%r12,2), %rsi
leaq 0x80(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x70(%rsp), %rdi
movl $0x20, %edx
callq 0x8450
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
movq 0xb76c(%rip), %rdi      # 0x22fb0
callq 0x8420
movq 0x28(%rsp), %rbx
leaq 0x2ac5(%rip), %rsi      # 0x1a31a
movl $0x3, %edx
movq %rax, %rdi
callq 0x8420
movq %r12, 0x8(%rsp)
movq 0x70(%rsp), %rdi
cmpq %r15, %rdi
je 0x17876
callq 0x8370
cmpq %rbx, %r14
jae 0x178bd
subq %r14, %rbx
xorl %ebp, %ebp
movl $0x2e, %r13d
movq 0xb723(%rip), %r15      # 0x22fb0
leaq 0x70(%rsp), %r12
movzbl (%r14,%rbp), %eax
leal -0x20(%rax), %ecx
cmpb $0x5f, %cl
cmovael %r13d, %eax
movb %al, 0x70(%rsp)
movl $0x1, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x8420
incq %rbp
cmpq %rbp, %rbx
jne 0x17892
leaq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %r14
movq %r14, (%rdi)
movq 0x8(%rsp), %rsi
movl $0x20, %edx
callq 0x8450
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
movq 0xb6c3(%rip), %rdi      # 0x22fb0
callq 0x8420
leaq 0x2a25(%rip), %rsi      # 0x1a31e
movl $0x2, %edx
movq %rax, %rdi
callq 0x8420
movq 0x70(%rsp), %rdi
cmpq %r14, %rdi
je 0x17915
callq 0x8370
addq $0x168, %rsp            # imm = 0x168
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2505(%rip), %rdi      # 0x19e33
leaq 0x258f(%rip), %rsi      # 0x19ec4
leaq 0x25a4(%rip), %rcx      # 0x19ee0
movl $0x1e, %edx
callq 0x8290
jmp 0x17948
movq %rax, %rbx
jmp 0x17983
movq %rax, %rbx
movq 0x70(%rsp), %rdi
cmpq %r14, %rdi
jne 0x17969
jmp 0x17983
movq %rax, %rbx
movq 0x70(%rsp), %rdi
cmpq %r15, %rdi
je 0x17983
callq 0x8370
jmp 0x17983
jmp 0x17976
jmp 0x17976
jmp 0x17976
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xa47c
movq %rbx, %rdi
callq 0x86a0
nop