// File: lukasz-wiecaszek[P]h264iframedecoder/./scaling_matrices.hpp
// Function: ymn::h264::scaling_matrices::to_string[abi:cxx11]() const
inline std::string scaling_matrices::to_string() const
{
    std::ostringstream stream;

    stream << "  scaling_matrices:" << std::endl;

    stream << "    scaling matrix 4x4 intra Y:" << std::endl;
    stream << scaling_matrices_4x4[SL_4x4_INTRA_Y].to_string();

    stream << "    scaling matrix 4x4 intra Cb:" << std::endl;
    stream << scaling_matrices_4x4[SL_4x4_INTRA_Cb].to_string();

    stream << "    scaling matrix 4x4 intra Cr:" << std::endl;
    stream << scaling_matrices_4x4[SL_4x4_INTRA_Cr].to_string();

    stream << "    scaling matrix 4x4 inter Y:" << std::endl;
    stream << scaling_matrices_4x4[SL_4x4_INTER_Y].to_string();

    stream << "    scaling matrix 4x4 inter Cb:" << std::endl;
    stream << scaling_matrices_4x4[SL_4x4_INTER_Cb].to_string();

    stream << "    scaling matrix 4x4 inter Cr:" << std::endl;
    stream << scaling_matrices_4x4[SL_4x4_INTER_Cr].to_string();

    stream << "    scaling matrix 8x8 intra Y:" << std::endl;
    stream << scaling_matrices_8x8[SL_8x8_INTRA_Y].to_string();

    stream << "    scaling matrix 8x8 inter Y:" << std::endl;
    stream << scaling_matrices_8x8[SL_8x8_INTER_Y].to_string();

    stream << "    scaling matrix 8x8 intra Cb:" << std::endl;
    stream << scaling_matrices_8x8[SL_8x8_INTRA_Cb].to_string();

    stream << "    scaling matrix 8x8 inter Cb:" << std::endl;
    stream << scaling_matrices_8x8[SL_8x8_INTER_Cb].to_string();

    stream << "    scaling matrix 8x8 intra Cr:" << std::endl;
    stream << scaling_matrices_8x8[SL_8x8_INTRA_Cr].to_string();

    stream << "    scaling matrix 8x8 inter Cr:" << std::endl;
    stream << scaling_matrices_8x8[SL_8x8_INTER_Cr].to_string();

    return stream.str();
}

// Assembly:
subq $0x328, %rsp            # imm = 0x328
movq %rdi, 0x10(%rsp)
movq %rdi, %rax
movq %rax, 0x18(%rsp)
movq %rdi, 0x320(%rsp)
movq %rsi, 0x318(%rsp)
movq 0x318(%rsp), %rax
movq %rax, 0x8(%rsp)
leaq 0x1a0(%rsp), %rdi
callq 0x2230
leaq 0x1a0(%rsp), %rdi
leaq 0x1eb86(%rip), %rsi     # 0x23243
callq 0x2140
movq %rax, %rdi
movq 0x298dc(%rip), %rsi     # 0x2dfa8
callq 0x2180
leaq 0x1a0(%rsp), %rdi
leaq 0x1eb77(%rip), %rsi     # 0x23257
callq 0x2140
movq %rax, %rdi
movq 0x298b9(%rip), %rsi     # 0x2dfa8
callq 0x2180
movq 0x8(%rsp), %rax
movq %rax, %rsi
addq $0x10, %rsi
movq 0x10(%rax), %rax
leaq 0x180(%rsp), %rdi
callq *(%rax)
leaq 0x1a0(%rsp), %rdi
leaq 0x180(%rsp), %rsi
callq 0x2130
leaq 0x180(%rsp), %rdi
callq 0x20e0
leaq 0x1a0(%rsp), %rdi
leaq 0x1eb38(%rip), %rsi     # 0x23277
callq 0x2140
movq %rax, %rdi
movq 0x2985a(%rip), %rsi     # 0x2dfa8
callq 0x2180
movq 0x8(%rsp), %rax
movq %rax, %rsi
addq $0x10, %rsi
addq $0x20, %rsi
movq 0x30(%rax), %rax
leaq 0x160(%rsp), %rdi
callq *(%rax)
leaq 0x1a0(%rsp), %rdi
leaq 0x160(%rsp), %rsi
callq 0x2130
leaq 0x160(%rsp), %rdi
callq 0x20e0
leaq 0x1a0(%rsp), %rdi
leaq 0x1eaf6(%rip), %rsi     # 0x23298
callq 0x2140
movq %rax, %rdi
movq 0x297f7(%rip), %rsi     # 0x2dfa8
callq 0x2180
movq 0x8(%rsp), %rax
movq %rax, %rsi
addq $0x10, %rsi
addq $0x40, %rsi
movq 0x50(%rax), %rax
leaq 0x140(%rsp), %rdi
callq *(%rax)
leaq 0x1a0(%rsp), %rdi
leaq 0x140(%rsp), %rsi
callq 0x2130
leaq 0x140(%rsp), %rdi
callq 0x20e0
leaq 0x1a0(%rsp), %rdi
leaq 0x1eab4(%rip), %rsi     # 0x232b9
callq 0x2140
movq %rax, %rdi
movq 0x29794(%rip), %rsi     # 0x2dfa8
callq 0x2180
movq 0x8(%rsp), %rax
movq %rax, %rsi
addq $0x10, %rsi
addq $0x60, %rsi
movq 0x70(%rax), %rax
leaq 0x120(%rsp), %rdi
callq *(%rax)
leaq 0x1a0(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0x2130
leaq 0x120(%rsp), %rdi
callq 0x20e0
leaq 0x1a0(%rsp), %rdi
leaq 0x1ea71(%rip), %rsi     # 0x232d9
callq 0x2140
movq %rax, %rdi
movq 0x29731(%rip), %rsi     # 0x2dfa8
callq 0x2180
movq 0x8(%rsp), %rax
movq %rax, %rsi
addq $0x10, %rsi
addq $0x80, %rsi
movq 0x90(%rax), %rax
leaq 0x100(%rsp), %rdi
callq *(%rax)
leaq 0x1a0(%rsp), %rdi
leaq 0x100(%rsp), %rsi
callq 0x2130
leaq 0x100(%rsp), %rdi
callq 0x20e0
leaq 0x1a0(%rsp), %rdi
leaq 0x1ea29(%rip), %rsi     # 0x232fa
callq 0x2140
movq %rax, %rdi
movq 0x296c8(%rip), %rsi     # 0x2dfa8
callq 0x2180
movq 0x8(%rsp), %rax
movq %rax, %rsi
addq $0x10, %rsi
addq $0xa0, %rsi
movq 0xb0(%rax), %rax
leaq 0xe0(%rsp), %rdi
callq *(%rax)
leaq 0x1a0(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x2130
leaq 0xe0(%rsp), %rdi
callq 0x20e0
leaq 0x1a0(%rsp), %rdi
leaq 0x1e9e1(%rip), %rsi     # 0x2331b
callq 0x2140
movq %rax, %rdi
movq 0x2965f(%rip), %rsi     # 0x2dfa8
callq 0x2180
movq 0x8(%rsp), %rax
movq %rax, %rsi
addq $0xd0, %rsi
movq 0xd0(%rax), %rax
leaq 0xc0(%rsp), %rdi
callq *(%rax)
leaq 0x1a0(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x2130
leaq 0xc0(%rsp), %rdi
callq 0x20e0
leaq 0x1a0(%rsp), %rdi
leaq 0x1e99c(%rip), %rsi     # 0x2333b
callq 0x2140
movq %rax, %rdi
movq 0x295fa(%rip), %rsi     # 0x2dfa8
callq 0x2180
movq 0x8(%rsp), %rax
movq %rax, %rsi
addq $0xd0, %rsi
addq $0x50, %rsi
movq 0x120(%rax), %rax
leaq 0xa0(%rsp), %rdi
callq *(%rax)
leaq 0x1a0(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x2130
leaq 0xa0(%rsp), %rdi
callq 0x20e0
leaq 0x1a0(%rsp), %rdi
leaq 0x1e953(%rip), %rsi     # 0x2335b
callq 0x2140
movq %rax, %rdi
movq 0x29591(%rip), %rsi     # 0x2dfa8
callq 0x2180
movq 0x8(%rsp), %rax
movq %rax, %rsi
addq $0xd0, %rsi
addq $0xa0, %rsi
movq 0x170(%rax), %rax
leaq 0x80(%rsp), %rdi
callq *(%rax)
leaq 0x1a0(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x2130
leaq 0x80(%rsp), %rdi
callq 0x20e0
leaq 0x1a0(%rsp), %rdi
leaq 0x1e908(%rip), %rsi     # 0x2337c
callq 0x2140
movq %rax, %rdi
movq 0x29525(%rip), %rsi     # 0x2dfa8
callq 0x2180
movq 0x8(%rsp), %rax
movq %rax, %rsi
addq $0xd0, %rsi
addq $0xf0, %rsi
movq 0x1c0(%rax), %rax
leaq 0x60(%rsp), %rdi
callq *(%rax)
leaq 0x1a0(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x2130
leaq 0x60(%rsp), %rdi
callq 0x20e0
leaq 0x1a0(%rsp), %rdi
leaq 0x1e8c6(%rip), %rsi     # 0x2339d
callq 0x2140
movq %rax, %rdi
movq 0x294c2(%rip), %rsi     # 0x2dfa8
callq 0x2180
movq 0x8(%rsp), %rax
movq %rax, %rsi
addq $0xd0, %rsi
addq $0x140, %rsi            # imm = 0x140
movq 0x210(%rax), %rax
leaq 0x40(%rsp), %rdi
callq *(%rax)
leaq 0x1a0(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x2130
leaq 0x40(%rsp), %rdi
callq 0x20e0
leaq 0x1a0(%rsp), %rdi
leaq 0x1e884(%rip), %rsi     # 0x233be
callq 0x2140
movq %rax, %rdi
movq 0x2945f(%rip), %rsi     # 0x2dfa8
callq 0x2180
movq 0x8(%rsp), %rax
movq %rax, %rsi
addq $0xd0, %rsi
addq $0x190, %rsi            # imm = 0x190
movq 0x260(%rax), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
leaq 0x1a0(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x2130
leaq 0x20(%rsp), %rdi
callq 0x20e0
movq 0x10(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0x2170
leaq 0x1a0(%rsp), %rdi
callq 0x2080
movq 0x18(%rsp), %rax
addq $0x328, %rsp            # imm = 0x328
retq
nopw (%rax,%rax)