LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: Leeingnyo[P]newPuyoC/cross_socket.cpp
// Function: ServerSocket::Recv[abi:cxx11]()
std::string ServerSocket::Recv() {
    char buffer[BUFF_SIZE + 5];
    if (recv(your_socket, buffer, BUFF_SIZE, 0) < 0) {
        throw -1;
    }
    return std::string(buffer);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2050, %rsp           # imm = 0x2050
movq %rdi, -0x2048(%rbp)
movq %rdi, %rax
movq %rax, -0x2040(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movl 0x1c(%rax), %edi
leaq -0x2020(%rbp), %rsi
movl $0x2000, %edx           # imm = 0x2000
xorl %ecx, %ecx
callq 0x40f0
cmpq $0x0, %rax
jge 0x4c77
movl $0x4, %edi
callq 0x4180
movq %rax, %rdi
movl $0xffffffff, (%rdi)     # imm = 0xFFFFFFFF
movq 0x2332a(%rip), %rsi     # 0x27f98
xorl %eax, %eax
movl %eax, %edx
callq 0x44d0
leaq -0x2021(%rbp), %rdi
movq %rdi, -0x2050(%rbp)
callq 0x4500
movq -0x2048(%rbp), %rdi
movq -0x2050(%rbp), %rdx
leaq -0x2020(%rbp), %rsi
callq 0x43f0
jmp 0x4ca6
leaq -0x2021(%rbp), %rdi
callq 0x4330
movq -0x2040(%rbp), %rax
addq $0x2050, %rsp           # imm = 0x2050
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2030(%rbp)
movl %eax, -0x2034(%rbp)
leaq -0x2021(%rbp), %rdi
callq 0x4330
movq -0x2030(%rbp), %rdi
callq 0x44f0
nopl (%rax)
// File: Leeingnyo[P]newPuyoC/cross_socket.cpp
// Function: ClientSocket::Connect(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int)
int ClientSocket::Connect(std::string ip_address, int port) {
#ifdef _WIN32
#else
    struct hostent* host_info;
    struct in_addr addr;
    if ((host_info = gethostbyname(ip_address.c_str())) == 0) {
        error_code = ErrorCode::CONNECT_ERROR;
        return -2;
    }
    memcpy(&addr, host_info->h_addr_list[0], host_info->h_length);
    ip_address = std::string(inet_ntoa(addr));
#endif
    memset(&your_address, 0, sizeof(your_address));
    your_address.sin_family = AF_INET;
    your_address.sin_port = htons(port);
    your_address.sin_addr.s_addr = inet_addr(ip_address.c_str());

    if (connect(my_socket, (struct sockaddr*)&your_address, sizeof(your_address)) == SOCKET_ERROR) {
        error_code = ErrorCode::CONNECT_ERROR;
        return -1;
    }
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rsi, -0x80(%rbp)
movq %rdi, %rax
movq -0x80(%rbp), %rdi
movq %rdi, -0x78(%rbp)
movq %rax, -0x10(%rbp)
movq %rdi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x70(%rbp)
callq 0x4130
movq %rax, %rdi
callq 0x4370
movq %rax, -0x28(%rbp)
cmpq $0x0, %rax
jne 0x4dfb
movq -0x70(%rbp), %rax
movl $0x5, 0x34(%rax)
movl $0xfffffffe, -0x4(%rbp) # imm = 0xFFFFFFFE
jmp 0x4f04
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rcx
movq (%rcx), %rsi
movslq 0x14(%rax), %rdx
leaq -0x2c(%rbp), %rdi
callq 0x4250
movl -0x2c(%rbp), %eax
movl %eax, -0x54(%rbp)
movl -0x54(%rbp), %edi
callq 0x4160
movq %rax, -0x90(%rbp)
leaq -0x55(%rbp), %rdi
movq %rdi, -0x88(%rbp)
callq 0x4500
movq -0x90(%rbp), %rsi
movq -0x88(%rbp), %rdx
leaq -0x50(%rbp), %rdi
callq 0x43f0
jmp 0x4e51
movq -0x78(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x43a0
leaq -0x50(%rbp), %rdi
callq 0x41f0
leaq -0x55(%rbp), %rdi
callq 0x4330
movq -0x70(%rbp), %rdi
addq $0x20, %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x41b0
movq -0x70(%rbp), %rax
movw $0x2, 0x20(%rax)
movl -0x1c(%rbp), %eax
movzwl %ax, %edi
callq 0x4050
movq -0x78(%rbp), %rdi
movw %ax, %cx
movq -0x70(%rbp), %rax
movw %cx, 0x22(%rax)
callq 0x4130
movq %rax, %rdi
callq 0x42f0
movq -0x70(%rbp), %rsi
movl %eax, 0x24(%rsi)
movl 0x8(%rsi), %edi
addq $0x20, %rsi
movl $0x10, %edx
callq 0x4260
cmpl $-0x1, %eax
jne 0x4efd
movq -0x70(%rbp), %rax
movl $0x5, 0x34(%rax)
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x4f04
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x55(%rbp), %rdi
callq 0x4330
jmp 0x4f10
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x90, %rsp
popq %rbp
retq
movq -0x60(%rbp), %rdi
callq 0x44f0
nopl (%rax)
// File: Leeingnyo[P]newPuyoC/cross_socket.cpp
// Function: ClientSocket::Recv[abi:cxx11]()
std::string ClientSocket::Recv() {
    char buffer[BUFF_SIZE + 5];
    if (recv(my_socket, buffer, BUFF_SIZE, 0) < 0) {
        throw -1;
    }
    return std::string(buffer);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2050, %rsp           # imm = 0x2050
movq %rdi, -0x2048(%rbp)
movq %rdi, %rax
movq %rax, -0x2040(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movl 0x8(%rax), %edi
leaq -0x2020(%rbp), %rsi
movl $0x2000, %edx           # imm = 0x2000
xorl %ecx, %ecx
callq 0x40f0
cmpq $0x0, %rax
jge 0x5007
movl $0x4, %edi
callq 0x4180
movq %rax, %rdi
movl $0xffffffff, (%rdi)     # imm = 0xFFFFFFFF
movq 0x22f9a(%rip), %rsi     # 0x27f98
xorl %eax, %eax
movl %eax, %edx
callq 0x44d0
leaq -0x2021(%rbp), %rdi
movq %rdi, -0x2050(%rbp)
callq 0x4500
movq -0x2048(%rbp), %rdi
movq -0x2050(%rbp), %rdx
leaq -0x2020(%rbp), %rsi
callq 0x43f0
jmp 0x5036
leaq -0x2021(%rbp), %rdi
callq 0x4330
movq -0x2040(%rbp), %rax
addq $0x2050, %rsp           # imm = 0x2050
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2030(%rbp)
movl %eax, -0x2034(%rbp)
leaq -0x2021(%rbp), %rdi
callq 0x4330
movq -0x2030(%rbp), %rdi
callq 0x44f0
nopl (%rax)
// File: Leeingnyo[P]newPuyoC/cross_library.cpp
// Function: kbhit()
bool kbhit() {
    struct termios oldt, newt;
    int ch;
    int oldf;
    
    tcgetattr(STDIN_FILENO, &oldt);
    newt = oldt;
    newt.c_lflag &= ~(ICANON | ECHO);
    tcsetattr(STDIN_FILENO, TCSANOW, &newt);
    oldf = fcntl(STDIN_FILENO, F_GETFL, 0);
    fcntl(STDIN_FILENO, F_SETFL, oldf | O_NONBLOCK);
    
    ch = getchar();
    
    tcsetattr(STDIN_FILENO, TCSANOW, &oldt);
    fcntl(STDIN_FILENO, F_SETFL, oldf);
    
    if (ch != EOF) {
        ungetc(ch, stdin);
        return true;
    }
    return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
xorl %edi, %edi
leaq -0x40(%rbp), %rsi
callq 0x4340
leaq -0x7c(%rbp), %rdi
leaq -0x40(%rbp), %rsi
movl $0x3c, %edx
callq 0x4250
movl -0x70(%rbp), %eax
andl $-0xb, %eax
movl %eax, -0x70(%rbp)
xorl %esi, %esi
leaq -0x7c(%rbp), %rdx
movl %esi, %edi
callq 0x43c0
xorl %edx, %edx
movl $0x3, %esi
movl %edx, %edi
movb $0x0, %al
callq 0x41c0
movl %eax, -0x84(%rbp)
movl -0x84(%rbp), %edx
orl $0x800, %edx            # imm = 0x800
xorl %edi, %edi
movl $0x4, %esi
movb $0x0, %al
callq 0x41c0
callq 0x4420
movl %eax, -0x80(%rbp)
xorl %esi, %esi
leaq -0x40(%rbp), %rdx
movl %esi, %edi
callq 0x43c0
movl -0x84(%rbp), %edx
xorl %edi, %edi
movl $0x4, %esi
movb $0x0, %al
callq 0x41c0
cmpl $-0x1, -0x80(%rbp)
je 0x51b5
movl -0x80(%rbp), %edi
movq 0x22e11(%rip), %rax     # 0x27fb8
movq (%rax), %rsi
callq 0x4070
movb $0x1, -0x1(%rbp)
jmp 0x51b9
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x90, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: Leeingnyo[P]newPuyoC/cross_library.cpp
// Function: getch()
int getch() {
    struct termios oldattr, newattr;
    int ch;

    tcgetattr( STDIN_FILENO, &oldattr );
    newattr = oldattr;
    newattr.c_lflag &= ~( ICANON | ECHO );
    tcsetattr( STDIN_FILENO, TCSANOW, &newattr );

    ch = getchar();

    tcsetattr( STDIN_FILENO, TCSANOW, &oldattr );

    return ch;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
xorl %edi, %edi
leaq -0x3c(%rbp), %rsi
callq 0x4340
leaq -0x78(%rbp), %rdi
leaq -0x3c(%rbp), %rsi
movl $0x3c, %edx
callq 0x4250
movl -0x6c(%rbp), %eax
andl $-0xb, %eax
movl %eax, -0x6c(%rbp)
xorl %esi, %esi
leaq -0x78(%rbp), %rdx
movl %esi, %edi
callq 0x43c0
callq 0x4420
movl %eax, -0x7c(%rbp)
xorl %esi, %esi
leaq -0x3c(%rbp), %rdx
movl %esi, %edi
callq 0x43c0
movl -0x7c(%rbp), %eax
addq $0x80, %rsp
popq %rbp
retq
nop
// File: Leeingnyo[P]newPuyoC/game.cpp
// Function: Game::DrawPlayerInformation(PlayerInformation const&, int, int)
void Game::DrawPlayerInformation(const PlayerInformation &info, int offset_x, int offset_y) {
    std::cout << Console::white;
    std::cout << Console::GotoXY(X(9 + offset_x), Y(5 + offset_y)) << std::right << std::setw(6) << info.chain_number;
    std::cout << Console::GotoXY(X(9 + offset_x), Y(7 + offset_y)) << std::right << std::setw(6) << info.max_chain_number;
    std::cout << Console::GotoXY(X(9 + offset_x), Y(9 + offset_y)) << std::right << std::setw(6) << info.score;
    std::cout << Console::GotoXY(X(9 + offset_x), Y(12 + offset_y)) << std::right << std::setw(6) << info.obstacle_number_taken;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq 0x227ff(%rip), %rdi     # 0x27fc8
leaq 0x22b44(%rip), %rsi     # 0x28314
callq 0x52b0
movl -0xc(%rbp), %esi
addl $0x9, %esi
shll %esi
movl -0x10(%rbp), %edx
addl $0x5, %edx
leaq -0x18(%rbp), %rdi
callq 0x8790
movq 0x227d5(%rip), %rdi     # 0x27fc8
leaq -0x18(%rbp), %rsi
callq 0x5300
movq %rax, %rdi
leaq 0x31da(%rip), %rsi      # 0x89e0
callq 0x4100
movq %rax, -0x60(%rbp)
movl $0x6, %edi
callq 0x8a10
movq -0x60(%rbp), %rdi
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %esi
callq 0x4380
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x4(%rax), %esi
callq 0x44e0
movl -0xc(%rbp), %esi
addl $0x9, %esi
shll %esi
movl -0x10(%rbp), %edx
addl $0x7, %edx
leaq -0x24(%rbp), %rdi
callq 0x8790
movq 0x22773(%rip), %rdi     # 0x27fc8
leaq -0x24(%rbp), %rsi
callq 0x5300
movq %rax, %rdi
leaq 0x3178(%rip), %rsi      # 0x89e0
callq 0x4100
movq %rax, -0x58(%rbp)
movl $0x6, %edi
callq 0x8a10
movq -0x58(%rbp), %rdi
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %esi
callq 0x4380
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x8(%rax), %esi
callq 0x44e0
movl -0xc(%rbp), %esi
addl $0x9, %esi
shll %esi
movl -0x10(%rbp), %edx
addl $0x9, %edx
leaq -0x30(%rbp), %rdi
callq 0x8790
movq 0x22711(%rip), %rdi     # 0x27fc8
leaq -0x30(%rbp), %rsi
callq 0x5300
movq %rax, %rdi
leaq 0x3116(%rip), %rsi      # 0x89e0
callq 0x4100
movq %rax, -0x50(%rbp)
movl $0x6, %edi
callq 0x8a10
movq -0x50(%rbp), %rdi
movl %eax, -0x34(%rbp)
movl -0x34(%rbp), %esi
callq 0x4380
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl (%rax), %esi
callq 0x44e0
movl -0xc(%rbp), %esi
addl $0x9, %esi
shll %esi
movl -0x10(%rbp), %edx
addl $0xc, %edx
leaq -0x3c(%rbp), %rdi
callq 0x8790
movq 0x226b0(%rip), %rdi     # 0x27fc8
leaq -0x3c(%rbp), %rsi
callq 0x5300
movq %rax, %rdi
leaq 0x30b5(%rip), %rsi      # 0x89e0
callq 0x4100
movq %rax, -0x48(%rbp)
movl $0x6, %edi
callq 0x8a10
movq -0x48(%rbp), %rdi
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %esi
callq 0x4380
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0xc(%rax), %esi
callq 0x44e0
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: Leeingnyo[P]newPuyoC/game.cpp
// Function: Game::Draw(std::shared_ptr<Board> const&, std::shared_ptr<BiPuyo> const&, PlayerInformation const&, int, int)
void Game::Draw(const std::shared_ptr<Board> &board, const std::shared_ptr<BiPuyo> &bipuyo, const PlayerInformation &info, int offset_x, int offset_y) {
    Game::DrawFrame(offset_x, offset_y);
    Game::DrawBoard(board, offset_x, offset_y);
    Game::DrawNextBiPuyo(bipuyo, offset_x, offset_y);
    Game::DrawPlayerInformation(info, offset_x, offset_y);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl %r8d, -0x20(%rbp)
movl -0x1c(%rbp), %edi
movl -0x20(%rbp), %esi
callq 0x5390
movq -0x8(%rbp), %rdi
movl -0x1c(%rbp), %esi
movl -0x20(%rbp), %edx
callq 0x5730
movq -0x10(%rbp), %rdi
movl -0x1c(%rbp), %esi
movl -0x20(%rbp), %edx
callq 0x5770
movq -0x18(%rbp), %rdi
movl -0x1c(%rbp), %esi
movl -0x20(%rbp), %edx
callq 0x57b0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: Leeingnyo[P]newPuyoC/game.cpp
// Function: SingleGame::GameInit()
bool SingleGame::GameInit() {
    Console::ScreenClear();
    std::cout << Console::GotoXY(X(0), Y(0));
    
    // prepare game
    my_bipuyo_generator = std::make_shared<BiPuyoGenerator>(); // single game doesn't need sync seed
    my_board = std::make_shared<Board>();
    my_board->SetNextBiPuyo(my_bipuyo_generator->GenerateBipuyo());
    my_next_bipuyo = my_bipuyo_generator->GenerateBipuyo();
    
    std::cout << "Loading..." << std::endl;
    Console::Sleep(500);
    return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x90(%rbp)
callq 0x5250
leaq -0x10(%rbp), %rdi
movq %rdi, -0xa0(%rbp)
xorl %edx, %edx
movl %edx, %esi
callq 0x8790
movq -0xa0(%rbp), %rsi
movq 0x225b7(%rip), %rdi     # 0x27fc8
callq 0x5300
leaq -0x20(%rbp), %rdi
movq %rdi, -0x98(%rbp)
callq 0x8a30
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdi
addq $0x10, %rdi
movq %rdi, -0x78(%rbp)
callq 0x8aa0
movq -0x98(%rbp), %rdi
callq 0x8ad0
leaq -0x30(%rbp), %rdi
movq %rdi, -0x88(%rbp)
callq 0x8af0
movq -0x90(%rbp), %rdi
movq -0x88(%rbp), %rsi
addq $0x20, %rdi
movq %rdi, -0x80(%rbp)
callq 0x8b60
movq -0x88(%rbp), %rdi
callq 0x8b90
movq -0x80(%rbp), %rdi
callq 0x87b0
movq -0x78(%rbp), %rdi
movq %rax, -0x70(%rbp)
callq 0x8c00
movq %rax, %rsi
leaq -0x40(%rbp), %rdi
movq %rdi, -0x68(%rbp)
callq 0x8c20
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x8bb0
jmp 0x5ab9
leaq -0x40(%rbp), %rdi
callq 0x8ca0
movq -0x90(%rbp), %rdi
addq $0x10, %rdi
callq 0x8c00
movq %rax, %rsi
leaq -0x60(%rbp), %rdi
callq 0x8c20
movq -0x90(%rbp), %rdi
addq $0x30, %rdi
leaq -0x60(%rbp), %rsi
callq 0x8cc0
leaq -0x60(%rbp), %rdi
callq 0x8ca0
movq 0x224c6(%rip), %rdi     # 0x27fc8
leaq 0x14657(%rip), %rsi     # 0x1a160
callq 0x42d0
movq %rax, %rdi
movq 0x22490(%rip), %rsi     # 0x27fa8
callq 0x4320
movl $0x1f4, %edi            # imm = 0x1F4
callq 0x5230
movb $0x1, %al
andb $0x1, %al
addq $0xa0, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x8ca0
movq -0x48(%rbp), %rdi
callq 0x44f0
nopw %cs:(%rax,%rax)
// File: Leeingnyo[P]newPuyoC/game.cpp
// Function: SingleGame::GameResult()
void SingleGame::GameResult() {
    while (kbhit()) getch();
    Console::ScreenClear();
    std::cout << Console::white << Console::GotoXY(0, 0)
        << "게임 끝" << std::endl
        << "점수: " << my_info.score << std::endl
        << "최대 연쇄: " << my_info.max_chain_number << std::endl
        << "메인으로 돌아가려면 아무키나 누르세요" << std::endl;
    getch();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
callq 0x5100
testb $0x1, %al
jne 0x5dbf
jmp 0x5dc6
callq 0x51d0
jmp 0x5db4
callq 0x5250
movq 0x221f6(%rip), %rdi     # 0x27fc8
leaq 0x2253b(%rip), %rsi     # 0x28314
callq 0x52b0
movq %rax, -0x20(%rbp)
leaq -0x10(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x8790
movq -0x20(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x5300
movq %rax, %rdi
leaq 0x14365(%rip), %rsi     # 0x1a16b
callq 0x42d0
movq %rax, %rdi
movq 0x22193(%rip), %rsi     # 0x27fa8
callq 0x4320
movq %rax, %rdi
leaq 0x143ba(%rip), %rsi     # 0x1a1de
callq 0x42d0
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x40(%rax), %esi
callq 0x44e0
movq %rax, %rdi
movq 0x22166(%rip), %rsi     # 0x27fa8
callq 0x4320
movq %rax, %rdi
leaq 0x14399(%rip), %rsi     # 0x1a1ea
callq 0x42d0
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x48(%rax), %esi
callq 0x44e0
movq %rax, %rdi
movq 0x22139(%rip), %rsi     # 0x27fa8
callq 0x4320
movq %rax, %rdi
leaq 0x142f8(%rip), %rsi     # 0x1a176
callq 0x42d0
movq %rax, %rdi
movq 0x2211b(%rip), %rsi     # 0x27fa8
callq 0x4320
callq 0x51d0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: Leeingnyo[P]newPuyoC/game.cpp
// Function: VSGame::GameResult()
void VSGame::GameResult() {
    while (kbhit()) getch();
    Console::ScreenClear();
    std::cout << Console::white << Console::GotoXY(0, 0);
    if (my_board->IsGameOver()) {
        std::cout << "1p가 이겼습니다." << std::endl;
    }
    else {
        std::cout << "2p가 이겼습니다." << std::endl;
    }
    std::cout
        << "1p 점수: " << my_info.score << std::endl
        << "1p 최대 연쇄: " << my_info.max_chain_number << std::endl
        << "2p 점수: " << other_info.score << std::endl
        << "2p 최대 연쇄: " << other_info.max_chain_number << std::endl
        << "메인으로 돌아가려면 아무키나 누르세요" << std::endl;
    getch();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
callq 0x5100
testb $0x1, %al
jne 0x657f
jmp 0x6586
callq 0x51d0
jmp 0x6574
callq 0x5250
movq 0x21a36(%rip), %rdi     # 0x27fc8
leaq 0x21d7b(%rip), %rsi     # 0x28314
callq 0x52b0
movq %rax, -0x20(%rbp)
leaq -0x10(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x8790
movq -0x20(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x5300
movq -0x18(%rbp), %rdi
addq $0x20, %rdi
callq 0x87b0
movq %rax, %rdi
callq 0x9280
testb $0x1, %al
jne 0x65d7
jmp 0x65fb
movq 0x219ea(%rip), %rdi     # 0x27fc8
leaq 0x13bc8(%rip), %rsi     # 0x1a1ad
callq 0x42d0
movq %rax, %rdi
movq 0x219b4(%rip), %rsi     # 0x27fa8
callq 0x4320
jmp 0x661d
movq 0x219c6(%rip), %rdi     # 0x27fc8
leaq 0x13bbb(%rip), %rsi     # 0x1a1c4
callq 0x42d0
movq %rax, %rdi
movq 0x21990(%rip), %rsi     # 0x27fa8
callq 0x4320
movq 0x219a4(%rip), %rdi     # 0x27fc8
leaq 0x13bb0(%rip), %rsi     # 0x1a1db
callq 0x42d0
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x40(%rax), %esi
callq 0x44e0
movq %rax, %rdi
movq 0x2195f(%rip), %rsi     # 0x27fa8
callq 0x4320
movq %rax, %rdi
leaq 0x13b8f(%rip), %rsi     # 0x1a1e7
callq 0x42d0
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x48(%rax), %esi
callq 0x44e0
movq %rax, %rdi
movq 0x21932(%rip), %rsi     # 0x27fa8
callq 0x4320
movq %rax, %rdi
leaq 0x13b75(%rip), %rsi     # 0x1a1fa
callq 0x42d0
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x80(%rax), %esi
callq 0x44e0
movq %rax, %rdi
movq 0x21902(%rip), %rsi     # 0x27fa8
callq 0x4320
movq %rax, %rdi
leaq 0x13b51(%rip), %rsi     # 0x1a206
callq 0x42d0
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x88(%rax), %esi
callq 0x44e0
movq %rax, %rdi
movq 0x218d2(%rip), %rsi     # 0x27fa8
callq 0x4320
movq %rax, %rdi
leaq 0x13a91(%rip), %rsi     # 0x1a176
callq 0x42d0
movq %rax, %rdi
movq 0x218b4(%rip), %rsi     # 0x27fa8
callq 0x4320
callq 0x51d0
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: Leeingnyo[P]newPuyoC/game.cpp
// Function: VSGame::Draw()
void VSGame::Draw() {
    /*
        0                   1                   2 
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6
    00  ┌──  ───┐┌───┐  ┌──  ───┐┌───┐ 
     1  │            ││ NEXT │  │            ││ NEXT │ 
     2  │            ││      │  │            ││      │ 
     3  │            ││      │  │            ││      │ 
     4  │            ││      │  │            ││      │ 
     5  │            ││ Chain│  │            ││ Chain│ 
     6  │            ││      │  │            ││      │ 
     7  │            ││MaxChn│  │            ││MaxChn│ 
     8  │            ││      │  │            ││      │ 
     9  │            ││ Score│  │            ││ Score│ 
    10  │            ││      │  │            ││      │ 
     1  │            ││BGM   │  │            ││BGM   │ 
     2  │            ││ObsNum│  │            ││ObsNum│ 
     3  │            ││      │  │            ││      │ 
     4  └──────┘└───┘  └──────┘└───┘ 
    */
    Game::Draw(my_board, my_next_bipuyo, my_info);
    for (int i = 0; i <= 14; i++) {
        std::cout << Console::GotoXY(X(13), Y(i)) << "  ";
    }
    Game::Draw(other_board, other_next_bipuyo, other_info, 14);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdx
movq %rdx, -0x20(%rbp)
movq %rdx, %rdi
addq $0x20, %rdi
movq %rdx, %rsi
addq $0x30, %rsi
addq $0x40, %rdx
xorl %r8d, %r8d
movl %r8d, %ecx
callq 0x5970
movl $0x0, -0xc(%rbp)
cmpl $0xe, -0xc(%rbp)
jg 0x6789
movl -0xc(%rbp), %edx
leaq -0x14(%rbp), %rdi
movl $0x1a, %esi
callq 0x8790
movq 0x21862(%rip), %rdi     # 0x27fc8
leaq -0x14(%rbp), %rsi
callq 0x5300
movq %rax, %rdi
leaq 0x13e78(%rip), %rsi     # 0x1a5f1
callq 0x42d0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x6748
movq -0x20(%rbp), %rdx
movq %rdx, %rdi
addq $0x60, %rdi
movq %rdx, %rsi
addq $0x70, %rsi
addq $0x80, %rdx
movl $0xe, %ecx
xorl %r8d, %r8d
callq 0x5970
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: Leeingnyo[P]newPuyoC/game.cpp
// Function: VSRemoteGame::GameResult()
void VSRemoteGame::GameResult() {
    while (kbhit()) getch();
    Console::ScreenClear();
    std::cout << Console::white << Console::GotoXY(0, 0);
    if (my_board->IsGameOver()) {
        std::cout << "졌습니다..." << std::endl;
    }
    else {
        std::cout << "이겼습니다!" << std::endl;
    }
    std::cout
        << "내 점수: " << my_info.score << std::endl
        << "내 최대 연쇄: " << my_info.max_chain_number << std::endl
        << "상대 점수: " << other_info.score << std::endl
        << "상대 최대 연쇄: " << other_info.max_chain_number << std::endl
        << "메인으로 돌아가려면 아무키나 누르세요" << std::endl;
    getch();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
callq 0x5100
testb $0x1, %al
jne 0x85df
jmp 0x85e6
callq 0x51d0
jmp 0x85d4
callq 0x5250
movq 0x1f9d6(%rip), %rdi     # 0x27fc8
leaq 0x1fd1b(%rip), %rsi     # 0x28314
callq 0x52b0
movq %rax, -0x20(%rbp)
leaq -0x10(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x8790
movq -0x20(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x5300
movq -0x18(%rbp), %rdi
addq $0x20, %rdi
callq 0x87b0
movq %rax, %rdi
callq 0x9280
testb $0x1, %al
jne 0x8637
jmp 0x865b
movq 0x1f98a(%rip), %rdi     # 0x27fc8
leaq 0x11fb5(%rip), %rsi     # 0x1a5fa
callq 0x42d0
movq %rax, %rdi
movq 0x1f954(%rip), %rsi     # 0x27fa8
callq 0x4320
jmp 0x867d
movq 0x1f966(%rip), %rdi     # 0x27fc8
leaq 0x11fa1(%rip), %rsi     # 0x1a60a
callq 0x42d0
movq %rax, %rdi
movq 0x1f930(%rip), %rsi     # 0x27fa8
callq 0x4320
movq 0x1f944(%rip), %rdi     # 0x27fc8
leaq 0x11f90(%rip), %rsi     # 0x1a61b
callq 0x42d0
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x40(%rax), %esi
callq 0x44e0
movq %rax, %rdi
movq 0x1f8ff(%rip), %rsi     # 0x27fa8
callq 0x4320
movq %rax, %rdi
leaq 0x11f70(%rip), %rsi     # 0x1a628
callq 0x42d0
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x48(%rax), %esi
callq 0x44e0
movq %rax, %rdi
movq 0x1f8d2(%rip), %rsi     # 0x27fa8
callq 0x4320
movq %rax, %rdi
leaq 0x11f57(%rip), %rsi     # 0x1a63c
callq 0x42d0
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x80(%rax), %esi
callq 0x44e0
movq %rax, %rdi
movq 0x1f8a2(%rip), %rsi     # 0x27fa8
callq 0x4320
movq %rax, %rdi
leaq 0x11f37(%rip), %rsi     # 0x1a64c
callq 0x42d0
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x88(%rax), %esi
callq 0x44e0
movq %rax, %rdi
movq 0x1f872(%rip), %rsi     # 0x27fa8
callq 0x4320
movq %rax, %rdi
leaq 0x11a31(%rip), %rsi     # 0x1a176
callq 0x42d0
movq %rax, %rdi
movq 0x1f854(%rip), %rsi     # 0x27fa8
callq 0x4320
callq 0x51d0
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: Leeingnyo[P]newPuyoC/./board.h
// Function: Board::Draw(int, int)
void Draw(int offset_x, int offset_y) {
        int sub_x = 0, sub_y = 0;
        if (bipuyo) {
            bipuyo->Draw(bipuyo_x, bipuyo_y, offset_x, offset_y - 1);
            bipuyo->GetDirection(sub_x, sub_y);
        }
        for (int i = 1; i < MAP_HEIGHT; i++) {
            for (int j = 0; j < MAP_WIDTH; j++) {
                if (bipuyo) {
                    if (j == bipuyo_x + sub_x && i == bipuyo_y + sub_y) continue;
                    if (j == bipuyo_x && i == bipuyo_y) continue;
                }
                std::cout << Console::GotoXY(X(offset_x + j), Y(offset_y + i - 1));
                map[i][j].Draw();
            }
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x30(%rbp)
movl $0x0, -0x14(%rbp)
movl $0x0, -0x18(%rbp)
addq $0x50, %rdi
callq 0xa3d0
testb $0x1, %al
jne 0x8807
jmp 0x884e
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
callq 0x8930
movq %rax, %rdi
movq -0x30(%rbp), %rax
movl 0x60(%rax), %esi
movl 0x64(%rax), %edx
movl -0xc(%rbp), %ecx
movl -0x10(%rbp), %r8d
subl $0x1, %r8d
callq 0xa3f0
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
callq 0x8930
movq %rax, %rdi
leaq -0x14(%rbp), %rsi
leaq -0x18(%rbp), %rdx
callq 0xa4a0
movl $0x1, -0x1c(%rbp)
cmpl $0xd, -0x1c(%rbp)
jge 0x8926
movl $0x0, -0x20(%rbp)
cmpl $0x6, -0x20(%rbp)
jge 0x8916
movq -0x30(%rbp), %rdi
addq $0x50, %rdi
callq 0xa3d0
testb $0x1, %al
jne 0x8883
jmp 0x88c3
movq -0x30(%rbp), %rcx
movl -0x20(%rbp), %eax
movl 0x60(%rcx), %ecx
addl -0x14(%rbp), %ecx
cmpl %ecx, %eax
jne 0x88a7
movq -0x30(%rbp), %rcx
movl -0x1c(%rbp), %eax
movl 0x64(%rcx), %ecx
addl -0x18(%rbp), %ecx
cmpl %ecx, %eax
jne 0x88a7
jmp 0x8908
movq -0x30(%rbp), %rcx
movl -0x20(%rbp), %eax
cmpl 0x60(%rcx), %eax
jne 0x88c1
movq -0x30(%rbp), %rcx
movl -0x1c(%rbp), %eax
cmpl 0x64(%rcx), %eax
jne 0x88c1
jmp 0x8908
jmp 0x88c3
movl -0xc(%rbp), %esi
addl -0x20(%rbp), %esi
shll %esi
movl -0x10(%rbp), %edx
addl -0x1c(%rbp), %edx
subl $0x1, %edx
leaq -0x28(%rbp), %rdi
callq 0x8790
movq 0x1f6e4(%rip), %rdi     # 0x27fc8
leaq -0x28(%rbp), %rsi
callq 0x5300
movq -0x30(%rbp), %rdi
movslq -0x1c(%rbp), %rax
imulq $0x6, %rax, %rax
addq %rax, %rdi
movslq -0x20(%rbp), %rax
addq %rax, %rdi
callq 0xa550
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x8866
jmp 0x8918
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x8855
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: Leeingnyo[P]newPuyoC/./puyo.h
// Function: BiPuyo::Draw(int, int)
void Draw(int offset_x, int offset_y) {
        int x, y;
        GetDirection(x, y);
        std::cout << Console::GotoXY(X(offset_x), Y(offset_y));
        main.Draw();
        std::cout << Console::GotoXY(X(offset_x + x), Y(offset_y + y));
        sub.Draw();
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x30(%rbp)
leaq -0x14(%rbp), %rsi
leaq -0x18(%rbp), %rdx
callq 0xa4a0
movl -0xc(%rbp), %esi
shll %esi
movl -0x10(%rbp), %edx
leaq -0x20(%rbp), %rdi
callq 0x8790
movq 0x1f639(%rip), %rdi     # 0x27fc8
leaq -0x20(%rbp), %rsi
callq 0x5300
movq -0x30(%rbp), %rdi
callq 0xa550
movl -0xc(%rbp), %esi
addl -0x14(%rbp), %esi
shll %esi
movl -0x10(%rbp), %edx
addl -0x18(%rbp), %edx
leaq -0x28(%rbp), %rdi
callq 0x8790
movq 0x1f609(%rip), %rdi     # 0x27fc8
leaq -0x28(%rbp), %rsi
callq 0x5300
movq -0x30(%rbp), %rdi
addq $0x1, %rdi
callq 0xa550
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: Leeingnyo[P]newPuyoC/./board.h
// Function: Board::SetNextBiPuyo(std::shared_ptr<BiPuyo> const&)
void SetNextBiPuyo(const std::shared_ptr<BiPuyo>& next) {
        bipuyo = next;
        bipuyo_x = 2;
        bipuyo_y = 1;
        state = State::IDLE;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x18(%rbp)
movq -0x10(%rbp), %rsi
addq $0x50, %rdi
callq 0xa940
movq -0x18(%rbp), %rax
movl $0x2, 0x60(%rax)
movl $0x1, 0x64(%rax)
movl $0x0, 0x68(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop
// File: Leeingnyo[P]newPuyoC/./board.h
// Function: Board::MoveLeft()
void MoveLeft() {
        int sub_x = 0, sub_y = 0;
        if (bipuyo) {
            bipuyo->GetDirection(sub_x, sub_y);
        }
        if (move_t == 0) {
            move_t = 1;
            if (bipuyo_x != 0 && bipuyo_x + sub_x != 0 && map[bipuyo_y][bipuyo_x - 1].IsBlank() && map[bipuyo_y + sub_y][bipuyo_x + sub_x - 1].IsBlank()) {
                bipuyo_x--;
            }
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x18(%rbp)
movl $0x0, -0xc(%rbp)
movl $0x0, -0x10(%rbp)
addq $0x50, %rdi
callq 0xa3d0
testb $0x1, %al
jne 0x8d41
jmp 0x8d5e
movq -0x18(%rbp), %rdi
addq $0x50, %rdi
callq 0x8930
movq %rax, %rdi
leaq -0xc(%rbp), %rsi
leaq -0x10(%rbp), %rdx
callq 0xa4a0
movq -0x18(%rbp), %rax
cmpl $0x0, 0x90(%rax)
jne 0x8df9
movq -0x18(%rbp), %rax
movl $0x1, 0x90(%rax)
cmpl $0x0, 0x60(%rax)
je 0x8df7
movq -0x18(%rbp), %rax
movl 0x60(%rax), %eax
addl -0xc(%rbp), %eax
cmpl $0x0, %eax
je 0x8df7
movq -0x18(%rbp), %rax
movslq 0x64(%rax), %rcx
imulq $0x6, %rcx, %rcx
movq %rax, %rdi
addq %rcx, %rdi
movl 0x60(%rax), %eax
subl $0x1, %eax
cltq
addq %rax, %rdi
callq 0xb7a0
testb $0x1, %al
jne 0x8dba
jmp 0x8df7
movq -0x18(%rbp), %rax
movl 0x64(%rax), %ecx
addl -0x10(%rbp), %ecx
movslq %ecx, %rcx
imulq $0x6, %rcx, %rcx
movq %rax, %rdi
addq %rcx, %rdi
movl 0x60(%rax), %eax
addl -0xc(%rbp), %eax
subl $0x1, %eax
cltq
addq %rax, %rdi
callq 0xb7a0
testb $0x1, %al
jne 0x8dea
jmp 0x8df7
movq -0x18(%rbp), %rax
movl 0x60(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x60(%rax)
jmp 0x8df9
addq $0x20, %rsp
popq %rbp
retq
nop
// File: Leeingnyo[P]newPuyoC/./board.h
// Function: Board::MoveRight()
void MoveRight() {
        int sub_x = 0, sub_y = 0;
        if (bipuyo) {
            bipuyo->GetDirection(sub_x, sub_y);
        }
        if (move_t == 0) {
            move_t = 1;
            if (bipuyo_x != (MAP_WIDTH - 1) && bipuyo_x + sub_x != (MAP_WIDTH - 1) && map[bipuyo_y][bipuyo_x + 1].IsBlank() && map[bipuyo_y + sub_y][bipuyo_x + sub_x + 1].IsBlank()) {
                bipuyo_x++;
            }
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x18(%rbp)
movl $0x0, -0xc(%rbp)
movl $0x0, -0x10(%rbp)
addq $0x50, %rdi
callq 0xa3d0
testb $0x1, %al
jne 0x8e31
jmp 0x8e4e
movq -0x18(%rbp), %rdi
addq $0x50, %rdi
callq 0x8930
movq %rax, %rdi
leaq -0xc(%rbp), %rsi
leaq -0x10(%rbp), %rdx
callq 0xa4a0
movq -0x18(%rbp), %rax
cmpl $0x0, 0x90(%rax)
jne 0x8ee9
movq -0x18(%rbp), %rax
movl $0x1, 0x90(%rax)
cmpl $0x5, 0x60(%rax)
je 0x8ee7
movq -0x18(%rbp), %rax
movl 0x60(%rax), %eax
addl -0xc(%rbp), %eax
cmpl $0x5, %eax
je 0x8ee7
movq -0x18(%rbp), %rax
movslq 0x64(%rax), %rcx
imulq $0x6, %rcx, %rcx
movq %rax, %rdi
addq %rcx, %rdi
movl 0x60(%rax), %eax
addl $0x1, %eax
cltq
addq %rax, %rdi
callq 0xb7a0
testb $0x1, %al
jne 0x8eaa
jmp 0x8ee7
movq -0x18(%rbp), %rax
movl 0x64(%rax), %ecx
addl -0x10(%rbp), %ecx
movslq %ecx, %rcx
imulq $0x6, %rcx, %rcx
movq %rax, %rdi
addq %rcx, %rdi
movl 0x60(%rax), %eax
addl -0xc(%rbp), %eax
addl $0x1, %eax
cltq
addq %rax, %rdi
callq 0xb7a0
testb $0x1, %al
jne 0x8eda
jmp 0x8ee7
movq -0x18(%rbp), %rax
movl 0x60(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x60(%rax)
jmp 0x8ee9
addq $0x20, %rsp
popq %rbp
retq
nop
// File: Leeingnyo[P]newPuyoC/./board.h
// Function: Board::MoveDown()
void MoveDown() {
        int sub_x = 0, sub_y = 0;
        if (bipuyo) {
            bipuyo->GetDirection(sub_x, sub_y);
        }
        if (down_t == 0) {
            down_t = 1;
            gravity_t += 40;
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x18(%rbp)
movl $0x0, -0xc(%rbp)
movl $0x0, -0x10(%rbp)
addq $0x50, %rdi
callq 0xa3d0
testb $0x1, %al
jne 0x8f21
jmp 0x8f3e
movq -0x18(%rbp), %rdi
addq $0x50, %rdi
callq 0x8930
movq %rax, %rdi
leaq -0xc(%rbp), %rsi
leaq -0x10(%rbp), %rdx
callq 0xa4a0
movq -0x18(%rbp), %rax
cmpl $0x0, 0x98(%rax)
jne 0x8f68
movq -0x18(%rbp), %rax
movl $0x1, 0x98(%rax)
movl 0x80(%rax), %ecx
addl $0x28, %ecx
movl %ecx, 0x80(%rax)
addq $0x20, %rsp
popq %rbp
retq
nop
// File: Leeingnyo[P]newPuyoC/./board.h
// Function: Board::Update()
void Update() {
        switch (state) {
            case State::IDLE: IdleUpdate(); break;
            case State::DROP: DropUpdate(); break;
            case State::CHAINING: ChainingUpdate(); break;
            case State::DROP_OBSTACLE: DropObstacleUpdate(); break;
            case State::NEED_NEXT: break;
            default: { state = State::HALT; } break;
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
movl 0x68(%rax), %eax
movq %rax, -0x10(%rbp)
subq $0x4, %rax
ja 0x91e3
movq -0x10(%rbp), %rax
leaq 0x10e9c(%rip), %rcx     # 0x1a048
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x18(%rbp), %rdi
callq 0xb840
jmp 0x91ee
movq -0x18(%rbp), %rdi
callq 0xbab0
jmp 0x91ee
movq -0x18(%rbp), %rdi
callq 0xbb40
jmp 0x91ee
movq -0x18(%rbp), %rdi
callq 0xc4a0
jmp 0x91ee
jmp 0x91ee
movq -0x18(%rbp), %rax
movl $0x5, 0x68(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop
// File: Leeingnyo[P]newPuyoC/./board.h
// Function: Board::UpdatePlayerInformation(PlayerInformation&)
void UpdatePlayerInformation(PlayerInformation &info) {
        info.score += gain_score;
        gain_score = 0;
        info.chain_number = chain_number;
        if (info.max_chain_number < chain_number)
            info.max_chain_number = chain_number;
        info.obstacle_number_taken = obstacle_number_taken;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rcx
movq %rcx, -0x18(%rbp)
movl 0x6c(%rcx), %edx
movq -0x10(%rbp), %rax
addl (%rax), %edx
movl %edx, (%rax)
movl $0x0, 0x6c(%rcx)
movl 0x70(%rcx), %edx
movq -0x10(%rbp), %rax
movl %edx, 0x4(%rax)
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
cmpl 0x70(%rcx), %eax
jge 0x924a
movq -0x18(%rbp), %rax
movl 0x70(%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x8(%rax)
movq -0x18(%rbp), %rax
movl 0x74(%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0xc(%rax)
popq %rbp
retq
nopw (%rax,%rax)
// File: Leeingnyo[P]newPuyoC/./board.h
// Function: Board::SendObstacles()
int SendObstacles() {
        if (!IsBusy()) {
            int obstacle_number_to_send = this->obstacle_number_to_send;
            this->obstacle_number_to_send = 0;
            return obstacle_number_to_send;
        }
        return 0;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x20(%rbp)
callq 0x8cf0
testb $0x1, %al
jne 0x9366
movq -0x20(%rbp), %rax
movl 0x78(%rax), %ecx
movl %ecx, -0x14(%rbp)
movl $0x0, 0x78(%rax)
movl -0x14(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x936d
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: Leeingnyo[P]newPuyoC/./player_information.h
// Function: PlayerInformation::Serialize[abi:cxx11]()
std::string Serialize() {
        std::ostringstream data;
        data << score << ' ';
        data << chain_number << ' ';
        data << max_chain_number << ' ';
        data << obstacle_number_taken;
        return data.str();
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1d0, %rsp            # imm = 0x1D0
movq %rdi, -0x1c0(%rbp)
movq %rdi, %rax
movq %rax, -0x1b8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x1b0(%rbp)
leaq -0x188(%rbp), %rdi
movq %rdi, -0x1a8(%rbp)
callq 0x43e0
movq -0x1b0(%rbp), %rax
movq -0x1a8(%rbp), %rdi
movl (%rax), %esi
callq 0x44e0
movq %rax, -0x1a0(%rbp)
jmp 0x9920
movq -0x1a0(%rbp), %rdi
movl $0x20, %esi
callq 0x4390
jmp 0x9933
movq -0x1b0(%rbp), %rax
movl 0x4(%rax), %esi
leaq -0x188(%rbp), %rdi
callq 0x44e0
movq %rax, -0x1c8(%rbp)
jmp 0x9952
movq -0x1c8(%rbp), %rdi
movl $0x20, %esi
callq 0x4390
jmp 0x9965
movq -0x1b0(%rbp), %rax
movl 0x8(%rax), %esi
leaq -0x188(%rbp), %rdi
callq 0x44e0
movq %rax, -0x1d0(%rbp)
jmp 0x9984
movq -0x1d0(%rbp), %rdi
movl $0x20, %esi
callq 0x4390
jmp 0x9997
movq -0x1b0(%rbp), %rax
movl 0xc(%rax), %esi
leaq -0x188(%rbp), %rdi
callq 0x44e0
jmp 0x99af
movq -0x1c0(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x4300
jmp 0x99c4
leaq -0x188(%rbp), %rdi
callq 0x4090
movq -0x1b8(%rbp), %rax
addq $0x1d0, %rsp            # imm = 0x1D0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x188(%rbp), %rdi
callq 0x4090
movq -0x190(%rbp), %rdi
callq 0x44f0
nopw (%rax,%rax)
// File: Leeingnyo[P]newPuyoC/./board.h
// Function: Board::Serialize[abi:cxx11]()
std::string Serialize() {
        std::ostringstream data;
        for (int i = 0; i < MAP_HEIGHT; i++) {
            for (int j = 0; j < MAP_WIDTH; j++) {
                data << map[i][j].Serialize();
            }
        }
        data << static_cast<int>(state);
        if (bipuyo) {
            data << bipuyo->Serialize();
            data << bipuyo_x << " ";
            data << bipuyo_y;
        }
        return data.str();
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1f0, %rsp            # imm = 0x1F0
movq %rdi, -0x1d8(%rbp)
movq %rdi, %rax
movq %rax, -0x1d0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x1c8(%rbp)
leaq -0x188(%rbp), %rdi
callq 0x43e0
movl $0x0, -0x18c(%rbp)
cmpl $0xd, -0x18c(%rbp)
jge 0x9af9
movl $0x0, -0x190(%rbp)
cmpl $0x6, -0x190(%rbp)
jge 0x9ae3
movq -0x1c8(%rbp), %rax
movslq -0x18c(%rbp), %rcx
leaq (%rcx,%rcx,2), %rcx
leaq (%rax,%rcx,2), %rdi
movslq -0x190(%rbp), %rax
addq %rax, %rdi
callq 0x11030
movb %al, -0x1d9(%rbp)
jmp 0x9aa2
movb -0x1d9(%rbp), %al
movsbl %al, %esi
leaq -0x188(%rbp), %rdi
callq 0x4390
jmp 0x9ab9
jmp 0x9abb
movl -0x190(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x190(%rbp)
jmp 0x9a6c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x198(%rbp)
movl %eax, -0x19c(%rbp)
jmp 0x9c0b
jmp 0x9ae5
movl -0x18c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18c(%rbp)
jmp 0x9a55
movq -0x1c8(%rbp), %rax
movl 0x68(%rax), %esi
leaq -0x188(%rbp), %rdi
callq 0x44e0
jmp 0x9b11
movq -0x1c8(%rbp), %rdi
addq $0x50, %rdi
callq 0xa3d0
testb $0x1, %al
jne 0x9b2a
jmp 0x9bda
movq -0x1c8(%rbp), %rdi
addq $0x50, %rdi
callq 0x8930
movq %rax, %rsi
leaq -0x1c0(%rbp), %rdi
callq 0x9c30
jmp 0x9b4b
leaq -0x188(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x4280
jmp 0x9b60
leaq -0x1c0(%rbp), %rdi
callq 0x41f0
movq -0x1c8(%rbp), %rax
movl 0x60(%rax), %esi
leaq -0x188(%rbp), %rdi
callq 0x44e0
movq %rax, -0x1e8(%rbp)
jmp 0x9b8b
movq -0x1e8(%rbp), %rdi
leaq 0x10a59(%rip), %rsi     # 0x1a5f2
callq 0x42d0
jmp 0x9ba0
movq -0x1c8(%rbp), %rax
movl 0x64(%rax), %esi
leaq -0x188(%rbp), %rdi
callq 0x44e0
jmp 0x9bb8
jmp 0x9bda
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x198(%rbp)
movl %eax, -0x19c(%rbp)
leaq -0x1c0(%rbp), %rdi
callq 0x41f0
jmp 0x9c0b
movq -0x1d8(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x4300
jmp 0x9bef
leaq -0x188(%rbp), %rdi
callq 0x4090
movq -0x1d0(%rbp), %rax
addq $0x1f0, %rsp            # imm = 0x1F0
popq %rbp
retq
leaq -0x188(%rbp), %rdi
callq 0x4090
movq -0x198(%rbp), %rdi
callq 0x44f0
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: Leeingnyo[P]newPuyoC/./puyo.h
// Function: BiPuyo::Serialize[abi:cxx11]()
std::string Serialize() {
        std::ostringstream data;
        data << main.Serialize();
        data << sub.Serialize();
        data << static_cast<int>(direction);
        return data.str();
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1c0, %rsp            # imm = 0x1C0
movq %rdi, -0x1b8(%rbp)
movq %rdi, %rax
movq %rax, -0x1b0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x1a8(%rbp)
leaq -0x188(%rbp), %rdi
movq %rdi, -0x1a0(%rbp)
callq 0x43e0
movq -0x1a8(%rbp), %rdi
callq 0x11030
movq -0x1a0(%rbp), %rdi
movsbl %al, %esi
callq 0x4390
jmp 0x9c8f
movq -0x1a8(%rbp), %rdi
incq %rdi
callq 0x11030
movsbl %al, %esi
leaq -0x188(%rbp), %rdi
callq 0x4390
jmp 0x9caf
movq -0x1a8(%rbp), %rax
movl 0x4(%rax), %esi
leaq -0x188(%rbp), %rdi
callq 0x44e0
jmp 0x9cc7
movq -0x1b8(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x4300
jmp 0x9cdc
leaq -0x188(%rbp), %rdi
callq 0x4090
movq -0x1b0(%rbp), %rax
addq $0x1c0, %rsp            # imm = 0x1C0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x188(%rbp), %rdi
callq 0x4090
movq -0x190(%rbp), %rdi
callq 0x44f0
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: Leeingnyo[P]newPuyoC/./player_information.h
// Function: PlayerInformation::Deserialize(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void Deserialize(std::string data) {
        std::string buf;
        std::stringstream ss(data);
        std::vector<std::string> tokens;
        while (ss >> buf)
            tokens.push_back(buf);
        score = std::stoi(tokens[0]);
        chain_number = std::stoi(tokens[1]);
        max_chain_number = std::stoi(tokens[2]);
        obstacle_number_taken = std::stoi(tokens[3]);
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x220, %rsp            # imm = 0x220
movq %rsi, -0x1f8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x1f0(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x4400
movl $0x10, %edi
movl $0x8, %esi
callq 0x11050
movl %eax, -0x1e4(%rbp)
jmp 0x9d75
movl -0x1e4(%rbp), %edx
movq -0x1f8(%rbp), %rsi
leaq -0x1b8(%rbp), %rdi
callq 0x4490
jmp 0x9d90
leaq -0x1e0(%rbp), %rdi
callq 0x11070
leaq -0x1b8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x43d0
movq %rax, -0x200(%rbp)
jmp 0x9db5
movq -0x200(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x43b0
movb %al, -0x201(%rbp)
jmp 0x9dd3
movb -0x201(%rbp), %al
testb $0x1, %al
jne 0x9ddf
jmp 0x9e39
leaq -0x1e0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x11090
jmp 0x9df1
jmp 0x9d9c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c0(%rbp)
movl %eax, -0x1c4(%rbp)
jmp 0x9f53
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c0(%rbp)
movl %eax, -0x1c4(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x11120
leaq -0x1b8(%rbp), %rdi
callq 0x4220
jmp 0x9f53
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0x210(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x11100
movq -0x210(%rbp), %rsi
movq %rax, %rdi
movl $0xa, %edx
callq 0x9780
movl %eax, -0x208(%rbp)
jmp 0x9e6c
movq -0x1f0(%rbp), %rax
movl -0x208(%rbp), %ecx
movl %ecx, (%rax)
leaq -0x1e0(%rbp), %rdi
movl $0x1, %esi
callq 0x11100
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x9780
movl %eax, -0x214(%rbp)
jmp 0x9ea5
movq -0x1f0(%rbp), %rax
movl -0x214(%rbp), %ecx
movl %ecx, 0x4(%rax)
leaq -0x1e0(%rbp), %rdi
movl $0x2, %esi
callq 0x11100
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x9780
movl %eax, -0x218(%rbp)
jmp 0x9edf
movq -0x1f0(%rbp), %rax
movl -0x218(%rbp), %ecx
movl %ecx, 0x8(%rax)
leaq -0x1e0(%rbp), %rdi
movl $0x3, %esi
callq 0x11100
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x9780
movl %eax, -0x21c(%rbp)
jmp 0x9f19
movq -0x1f0(%rbp), %rax
movl -0x21c(%rbp), %ecx
movl %ecx, 0xc(%rax)
leaq -0x1e0(%rbp), %rdi
callq 0x11120
leaq -0x1b8(%rbp), %rdi
callq 0x4220
leaq -0x30(%rbp), %rdi
callq 0x41f0
addq $0x220, %rsp            # imm = 0x220
popq %rbp
retq
leaq -0x30(%rbp), %rdi
callq 0x41f0
movq -0x1c0(%rbp), %rdi
callq 0x44f0
nopl (%rax,%rax)
// File: Leeingnyo[P]newPuyoC/./puyo.h
// Function: BiPuyo::Draw(int, int, int, int)
void Draw(int x, int y, int offset_x, int offset_y) {
        int sub_x, sub_y;
        GetDirection(sub_x, sub_y);
        if (y > 0) {
            std::cout << Console::GotoXY(X(x + offset_x), Y(y + offset_y));
            main.Draw();
        }
        if (y + sub_y > 0) {
            std::cout << Console::GotoXY(X(x + offset_x + sub_x), Y(y + offset_y + sub_y));
            sub.Draw();
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movl %r8d, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x38(%rbp)
leaq -0x1c(%rbp), %rsi
leaq -0x20(%rbp), %rdx
callq 0xa4a0
cmpl $0x0, -0x10(%rbp)
jle 0xa454
movl -0xc(%rbp), %esi
addl -0x14(%rbp), %esi
shll %esi
movl -0x10(%rbp), %edx
addl -0x18(%rbp), %edx
leaq -0x28(%rbp), %rdi
callq 0x8790
movq 0x1db86(%rip), %rdi     # 0x27fc8
leaq -0x28(%rbp), %rsi
callq 0x5300
movq -0x38(%rbp), %rdi
callq 0xa550
movl -0x10(%rbp), %eax
addl -0x20(%rbp), %eax
cmpl $0x0, %eax
jle 0xa499
movl -0xc(%rbp), %esi
addl -0x14(%rbp), %esi
addl -0x1c(%rbp), %esi
shll %esi
movl -0x10(%rbp), %edx
addl -0x18(%rbp), %edx
addl -0x20(%rbp), %edx
leaq -0x30(%rbp), %rdi
callq 0x8790
movq 0x1db45(%rip), %rdi     # 0x27fc8
leaq -0x30(%rbp), %rsi
callq 0x5300
movq -0x38(%rbp), %rdi
addq $0x1, %rdi
callq 0xa550
addq $0x40, %rsp
popq %rbp
retq
nop
// File: Leeingnyo[P]newPuyoC/./puyo.h
// Function: BiPuyo::GetDirection(int&, int&)
void GetDirection(int &x, int &y) {
        switch (direction) {
            case Direction::UP:    { x = 0; y = -1; } break;
            case Direction::RIGHT: { x = 1; y = 0; } break;
            case Direction::DOWN:  { x = 0; y = 1; } break;
            case Direction::LEFT:  { x = -1; y = 0; } break;
            default: { x = 0; y = -1; } break;
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movq %rax, -0x20(%rbp)
subq $0x3, %rax
ja 0xa52d
movq -0x20(%rbp), %rax
leaq 0xfbcc(%rip), %rcx      # 0x1a098
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rax
movl $0x0, (%rax)
movq -0x18(%rbp), %rax
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
jmp 0xa541
movq -0x10(%rbp), %rax
movl $0x1, (%rax)
movq -0x18(%rbp), %rax
movl $0x0, (%rax)
jmp 0xa541
movq -0x10(%rbp), %rax
movl $0x0, (%rax)
movq -0x18(%rbp), %rax
movl $0x1, (%rax)
jmp 0xa541
movq -0x10(%rbp), %rax
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
movq -0x18(%rbp), %rax
movl $0x0, (%rax)
jmp 0xa541
movq -0x10(%rbp), %rax
movl $0x0, (%rax)
movq -0x18(%rbp), %rax
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: Leeingnyo[P]newPuyoC/./puyo.h
// Function: Puyo::Draw()
void Draw() {
        switch (puyo) {
            case PuyoKind::BLANK:
                std::cout << Console::black << "  ";
                break;
            case PuyoKind::RED:
                std::cout << Console::red << "●";
                break;
            case PuyoKind::YELLOW:
                std::cout << Console::yellow << "●";
                break;
            case PuyoKind::GREEN:
                std::cout << Console::green << "●";
                break;
            case PuyoKind::BLUE:
                std::cout << Console::blue << "●";
                break;
            case PuyoKind::OBSTACLE:
                std::cout << Console::white << "○";
                break;
            case PuyoKind::EXPLOSION:
                std::cout << Console::gray << "※";
                break; 
            default: break;
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movzbl (%rax), %eax
movq %rax, -0x10(%rbp)
subq $0x6, %rax
ja 0xa68a
movq -0x10(%rbp), %rax
leaq 0xfb2c(%rip), %rcx      # 0x1a0a8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x1da3c(%rip), %rdi     # 0x27fc8
leaq 0x1dd45(%rip), %rsi     # 0x282d8
callq 0x52b0
movq %rax, %rdi
leaq 0x1004f(%rip), %rsi     # 0x1a5f1
callq 0x42d0
jmp 0xa68c
movq 0x1da15(%rip), %rdi     # 0x27fc8
leaq 0x1dd4e(%rip), %rsi     # 0x28308
callq 0x52b0
movq %rax, %rdi
leaq 0x100ab(%rip), %rsi     # 0x1a674
callq 0x42d0
jmp 0xa68c
movq 0x1d9ee(%rip), %rdi     # 0x27fc8
leaq 0x1dd2f(%rip), %rsi     # 0x28310
callq 0x52b0
movq %rax, %rdi
leaq 0x10084(%rip), %rsi     # 0x1a674
callq 0x42d0
jmp 0xa68c
movq 0x1d9c7(%rip), %rdi     # 0x27fc8
leaq 0x1dcf8(%rip), %rsi     # 0x28300
callq 0x52b0
movq %rax, %rdi
leaq 0x1005d(%rip), %rsi     # 0x1a674
callq 0x42d0
jmp 0xa68c
movq 0x1d9a3(%rip), %rdi     # 0x27fc8
leaq 0x1dcd0(%rip), %rsi     # 0x282fc
callq 0x52b0
movq %rax, %rdi
leaq 0x10039(%rip), %rsi     # 0x1a674
callq 0x42d0
jmp 0xa68c
movq 0x1d97f(%rip), %rdi     # 0x27fc8
leaq 0x1dcc4(%rip), %rsi     # 0x28314
callq 0x52b0
movq %rax, %rdi
leaq 0x10019(%rip), %rsi     # 0x1a678
callq 0x42d0
jmp 0xa68c
movq 0x1d95b(%rip), %rdi     # 0x27fc8
leaq 0x1dc80(%rip), %rsi     # 0x282f4
callq 0x52b0
movq %rax, %rdi
leaq 0xfff9(%rip), %rsi      # 0x1a67c
callq 0x42d0
jmp 0xa68c
jmp 0xa68c
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)