// File: /workspace/github_cpp_makefile_star2_O1/Leeingnyo[P]newPuyoC/game.cpp
// Function: Game::DrawFrame(int, int)
void Game::DrawFrame(int offset_x, int offset_y) {
    std::cout << Console::green;
    std::cout << Console::GotoXY(X(0 + offset_x), Y(0 + offset_y));
    std::cout << "┌──  ───┐┌───┐";
    for (int i = 1; i < 13; i++) {
        std::cout << Console::GotoXY(X( 0 + offset_x), Y(i + offset_y)) << "│";
        std::cout << Console::GotoXY(X( 7 + offset_x), Y(i + offset_y)) << "││";
        std::cout << Console::GotoXY(X(12 + offset_x), Y(i + offset_y)) << "│";
    }
    std::cout << Console::GotoXY(X(0 + offset_x), Y(13 + offset_y));
    std::cout << "└──────┘└───┘";
    std::cout << Console::GotoXY(X( 9 + offset_x), Y( 1 + offset_y)) << " NEXT ";
    std::cout << Console::GotoXY(X( 9 + offset_x), Y( 2 + offset_y)) << "  " << Console::GotoXY(X(11 + offset_x), Y( 2 + offset_y)) << "  ";
    std::cout << Console::GotoXY(X( 9 + offset_x), Y( 3 + offset_y)) << "  " << Console::GotoXY(X(11 + offset_x), Y( 3 + offset_y)) << "  ";
    std::cout << Console::GotoXY(X( 9 + offset_x), Y( 4 + offset_y)) << " Chain";
    std::cout << Console::GotoXY(X( 9 + offset_x), Y( 6 + offset_y)) << "MaxChn";
    std::cout << Console::GotoXY(X( 9 + offset_x), Y( 8 + offset_y)) << " Score";
    std::cout << Console::GotoXY(X( 9 + offset_x), Y(10 + offset_y)) << " BGM  ";
    std::cout << Console::GotoXY(X( 9 + offset_x), Y(11 + offset_y)) << "ObsNum";
    
    /*
        0                   1
        0 1 2 3 4 5 6 7 8 9 0 1 2 
    00  ┌──  ───┐┌───┐ 
     1  │            ││ NEXT │ 
     2  │            ││      │ 
     3  │            ││      │ 
     4  │            ││ Chain│ 
     5  │            ││      │ 
     6  │            ││MaxChn│ 
     7  │            ││      │ 
     8  │            ││ Score│ 
     9  │            ││      │ 
    10  │            ││BGM   │ 
     1  │            ││ObsNum│ 
     2  │            ││      │ 
     3  └──────┘└───┘ 
    */
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movl %esi, %ebx
movl %edi, %r12d
movq 0xd0c7(%rip), %r14      # 0x10fd0
leaq 0xd3a0(%rip), %rsi      # 0x112b0
movq %r14, %rdi
callq 0x3e37
leal (%r12,%r12), %eax
leaq -0x30(%rbp), %r15
movq %rax, -0x40(%rbp)
movl %eax, (%r15)
movq %rbx, -0x48(%rbp)
movl %ebx, 0x4(%r15)
movq %r14, %rdi
movq %r15, %rsi
callq 0x3e7e
leaq 0x822f(%rip), %rsi      # 0xc170
movl $0x26, %edx
movq %r14, %rdi
callq 0x3310
leal 0xe(,%r12,2), %eax
movl %eax, -0x34(%rbp)
leal 0x18(,%r12,2), %eax
movl %eax, -0x38(%rbp)
movl $0x1, %ebx
leaq 0x822a(%rip), %r12      # 0xc19a
movq -0x48(%rbp), %rax
leal (%rax,%rbx), %r13d
movq -0x40(%rbp), %rax
movl %eax, -0x30(%rbp)
movl %r13d, -0x2c(%rbp)
movq %r14, %rdi
movq %r15, %rsi
callq 0x3e7e
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x3310
movl -0x34(%rbp), %eax
movl %eax, -0x30(%rbp)
movl %r13d, -0x2c(%rbp)
movq %r14, %rdi
movq %r15, %rsi
callq 0x3e7e
movl $0x6, %edx
movq %rax, %rdi
leaq 0x81d5(%rip), %rsi      # 0xc197
callq 0x3310
movl -0x38(%rbp), %eax
movl %eax, -0x30(%rbp)
movl %r13d, -0x2c(%rbp)
movq %r14, %rdi
movq %r15, %rsi
callq 0x3e7e
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x3310
incl %ebx
cmpl $0xd, %ebx
jne 0x3f70
movq -0x48(%rbp), %r12
leal 0xd(%r12), %eax
leaq -0x30(%rbp), %r15
movq -0x40(%rbp), %r13
movl %r13d, (%r15)
movl %eax, 0x4(%r15)
movq 0xcfba(%rip), %rbx      # 0x10fd0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3e7e
leaq 0x8176(%rip), %rsi      # 0xc19e
movl $0x27, %edx
movq %rbx, %rdi
callq 0x3310
leal 0x12(%r13), %ecx
leal 0x1(%r12), %eax
movl %ecx, (%r15)
movl %ecx, %r14d
movl %ecx, -0x34(%rbp)
movl %eax, 0x4(%r15)
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3e7e
leaq 0x8169(%rip), %rsi      # 0xc1c6
movl $0x6, %edx
movq %rax, %rdi
callq 0x3310
leal 0x2(%r12), %ebx
movl %r14d, (%r15)
movl %ebx, 0x4(%r15)
leaq -0x30(%rbp), %rsi
movq 0xcf4f(%rip), %rdi      # 0x10fd0
callq 0x3e7e
movq %rax, %r14
leaq 0x85f1(%rip), %rsi      # 0xc681
movl $0x2, %edx
movq %rax, %rdi
callq 0x3310
addl $0x16, %r13d
leaq -0x50(%rbp), %r15
movl %r13d, (%r15)
movl %ebx, 0x4(%r15)
movq %r14, %rdi
movq %r15, %rsi
callq 0x3e7e
movl $0x2, %edx
movq %rax, %rdi
leaq 0x85bb(%rip), %rsi      # 0xc681
callq 0x3310
leal 0x3(%r12), %ebx
movl -0x34(%rbp), %eax
leaq -0x30(%rbp), %rcx
movl %eax, (%rcx)
movl %ebx, 0x4(%rcx)
leaq -0x30(%rbp), %rsi
movq 0xcee9(%rip), %rdi      # 0x10fd0
callq 0x3e7e
movq %rax, %r14
movl $0x2, %edx
movq %rax, %rdi
leaq 0x8583(%rip), %rsi      # 0xc681
callq 0x3310
movl %r13d, (%r15)
movl %ebx, 0x4(%r15)
leaq -0x50(%rbp), %rsi
movq %r14, %rdi
callq 0x3e7e
movl $0x2, %edx
movq %rax, %rdi
leaq 0x855c(%rip), %rsi      # 0xc681
callq 0x3310
leal 0x4(%r12), %eax
movl -0x34(%rbp), %r15d
leaq -0x30(%rbp), %rcx
movl %r15d, (%rcx)
movl %eax, 0x4(%rcx)
leaq -0x30(%rbp), %r14
movq 0xce88(%rip), %rbx      # 0x10fd0
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3e7e
leaq 0x8073(%rip), %rsi      # 0xc1cd
movl $0x6, %edx
movq %rax, %rdi
callq 0x3310
leal 0x6(%r12), %eax
movl %r15d, (%r14)
movl %eax, 0x4(%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3e7e
leaq 0x804f(%rip), %rsi      # 0xc1d4
movl $0x6, %edx
movq %rax, %rdi
callq 0x3310
leal 0x8(%r12), %eax
movl %r15d, (%r14)
movl %eax, 0x4(%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3e7e
leaq 0x802b(%rip), %rsi      # 0xc1db
movl $0x6, %edx
movq %rax, %rdi
callq 0x3310
leal 0xa(%r12), %eax
movl %r15d, (%r14)
movl %eax, 0x4(%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3e7e
leaq 0x8007(%rip), %rsi      # 0xc1e2
movl $0x6, %edx
movq %rax, %rdi
callq 0x3310
addl $0xb, %r12d
movl %r15d, (%r14)
movl %r12d, 0x4(%r14)
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x3e7e
leaq 0x7fe3(%rip), %rsi      # 0xc1e9
movl $0x6, %edx
movq %rax, %rdi
callq 0x3310
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq