// File: 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
subq $0xa0, %rsp
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movq 0x22c20(%rip), %rdi     # 0x27fc8
leaq 0x22f51(%rip), %rsi     # 0x28300
callq 0x52b0
movl -0x4(%rbp), %esi
addl $0x0, %esi
shll %esi
movl -0x8(%rbp), %edx
addl $0x0, %edx
leaq -0x10(%rbp), %rdi
callq 0x8790
movq 0x22bf6(%rip), %rdi     # 0x27fc8
leaq -0x10(%rbp), %rsi
callq 0x5300
movq 0x22be6(%rip), %rdi     # 0x27fc8
leaq 0x14cf7(%rip), %rsi     # 0x1a0e0
callq 0x42d0
movl $0x1, -0x14(%rbp)
cmpl $0xd, -0x14(%rbp)
jge 0x54af
movl -0x4(%rbp), %esi
addl $0x0, %esi
shll %esi
movl -0x14(%rbp), %edx
addl -0x8(%rbp), %edx
leaq -0x1c(%rbp), %rdi
callq 0x8790
movq 0x22bab(%rip), %rdi     # 0x27fc8
leaq -0x1c(%rbp), %rsi
callq 0x5300
movq %rax, %rdi
leaq 0x14cda(%rip), %rsi     # 0x1a10a
callq 0x42d0
movl -0x4(%rbp), %esi
addl $0x7, %esi
shll %esi
movl -0x14(%rbp), %edx
addl -0x8(%rbp), %edx
leaq -0x24(%rbp), %rdi
callq 0x8790
movq 0x22b75(%rip), %rdi     # 0x27fc8
leaq -0x24(%rbp), %rsi
callq 0x5300
movq %rax, %rdi
leaq 0x14ca1(%rip), %rsi     # 0x1a107
callq 0x42d0
movl -0x4(%rbp), %esi
addl $0xc, %esi
shll %esi
movl -0x14(%rbp), %edx
addl -0x8(%rbp), %edx
leaq -0x2c(%rbp), %rdi
callq 0x8790
movq 0x22b3f(%rip), %rdi     # 0x27fc8
leaq -0x2c(%rbp), %rsi
callq 0x5300
movq %rax, %rdi
leaq 0x14c6e(%rip), %rsi     # 0x1a10a
callq 0x42d0
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x53f5
movl -0x4(%rbp), %esi
addl $0x0, %esi
shll %esi
movl -0x8(%rbp), %edx
addl $0xd, %edx
leaq -0x34(%rbp), %rdi
callq 0x8790
movq 0x22afb(%rip), %rdi     # 0x27fc8
leaq -0x34(%rbp), %rsi
callq 0x5300
movq 0x22aeb(%rip), %rdi     # 0x27fc8
leaq 0x14c2a(%rip), %rsi     # 0x1a10e
callq 0x42d0
movl -0x4(%rbp), %esi
addl $0x9, %esi
shll %esi
movl -0x8(%rbp), %edx
addl $0x1, %edx
leaq -0x3c(%rbp), %rdi
callq 0x8790
movq 0x22ac1(%rip), %rdi     # 0x27fc8
leaq -0x3c(%rbp), %rsi
callq 0x5300
movq %rax, %rdi
leaq 0x14c1c(%rip), %rsi     # 0x1a136
callq 0x42d0
movl -0x4(%rbp), %esi
addl $0x9, %esi
shll %esi
movl -0x8(%rbp), %edx
addl $0x2, %edx
leaq -0x44(%rbp), %rdi
callq 0x8790
movq 0x22a8b(%rip), %rdi     # 0x27fc8
leaq -0x44(%rbp), %rsi
callq 0x5300
movq %rax, %rdi
leaq 0x150a1(%rip), %rsi     # 0x1a5f1
callq 0x42d0
movq %rax, -0x98(%rbp)
movl -0x4(%rbp), %esi
addl $0xb, %esi
shll %esi
movl -0x8(%rbp), %edx
addl $0x2, %edx
leaq -0x4c(%rbp), %rdi
callq 0x8790
movq -0x98(%rbp), %rdi
leaq -0x4c(%rbp), %rsi
callq 0x5300
movq %rax, %rdi
leaq 0x15064(%rip), %rsi     # 0x1a5f1
callq 0x42d0
movl -0x4(%rbp), %esi
addl $0x9, %esi
shll %esi
movl -0x8(%rbp), %edx
addl $0x3, %edx
leaq -0x54(%rbp), %rdi
callq 0x8790
movq 0x22a18(%rip), %rdi     # 0x27fc8
leaq -0x54(%rbp), %rsi
callq 0x5300
movq %rax, %rdi
leaq 0x1502e(%rip), %rsi     # 0x1a5f1
callq 0x42d0
movq %rax, -0x90(%rbp)
movl -0x4(%rbp), %esi
addl $0xb, %esi
shll %esi
movl -0x8(%rbp), %edx
addl $0x3, %edx
leaq -0x5c(%rbp), %rdi
callq 0x8790
movq -0x90(%rbp), %rdi
leaq -0x5c(%rbp), %rsi
callq 0x5300
movq %rax, %rdi
leaq 0x14ff1(%rip), %rsi     # 0x1a5f1
callq 0x42d0
movl -0x4(%rbp), %esi
addl $0x9, %esi
shll %esi
movl -0x8(%rbp), %edx
addl $0x4, %edx
leaq -0x64(%rbp), %rdi
callq 0x8790
movq 0x229a5(%rip), %rdi     # 0x27fc8
leaq -0x64(%rbp), %rsi
callq 0x5300
movq %rax, %rdi
leaq 0x14b07(%rip), %rsi     # 0x1a13d
callq 0x42d0
movl -0x4(%rbp), %esi
addl $0x9, %esi
shll %esi
movl -0x8(%rbp), %edx
addl $0x6, %edx
leaq -0x6c(%rbp), %rdi
callq 0x8790
movq 0x2296f(%rip), %rdi     # 0x27fc8
leaq -0x6c(%rbp), %rsi
callq 0x5300
movq %rax, %rdi
leaq 0x14ad8(%rip), %rsi     # 0x1a144
callq 0x42d0
movl -0x4(%rbp), %esi
addl $0x9, %esi
shll %esi
movl -0x8(%rbp), %edx
addl $0x8, %edx
leaq -0x74(%rbp), %rdi
callq 0x8790
movq 0x22939(%rip), %rdi     # 0x27fc8
leaq -0x74(%rbp), %rsi
callq 0x5300
movq %rax, %rdi
leaq 0x14aa9(%rip), %rsi     # 0x1a14b
callq 0x42d0
movl -0x4(%rbp), %esi
addl $0x9, %esi
shll %esi
movl -0x8(%rbp), %edx
addl $0xa, %edx
leaq -0x7c(%rbp), %rdi
callq 0x8790
movq 0x22903(%rip), %rdi     # 0x27fc8
leaq -0x7c(%rbp), %rsi
callq 0x5300
movq %rax, %rdi
leaq 0x14a7a(%rip), %rsi     # 0x1a152
callq 0x42d0
movl -0x4(%rbp), %esi
addl $0x9, %esi
shll %esi
movl -0x8(%rbp), %edx
addl $0xb, %edx
leaq -0x84(%rbp), %rdi
callq 0x8790
movq 0x228ca(%rip), %rdi     # 0x27fc8
leaq -0x84(%rbp), %rsi
callq 0x5300
movq %rax, %rdi
leaq 0x14a45(%rip), %rsi     # 0x1a159
callq 0x42d0
addq $0xa0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)