// File: jeffreyan11[P]go-engine/board.cpp
// Function: Board::getPotentialEscape(int, unsigned short)
Move Board::getPotentialEscape(Player p, Move m) {
    if (m == MOVE_PASS)
        return MOVE_PASS;
    int x = getX(m);
    int y = getY(m);
    assert(pieces[index(x, y)] != EMPTY);

    if (pieces[index(x+1, y)] == p) {
        Chain *node = nullptr;
        searchChainsByID(node, chainID[index(x+1, y)]);
        if (node->liberties == 1) {
            Move esc = node->libertyList[0];
            int ex = getX(esc);
            int ey = getY(esc);
            if (pieces[index(ex+1, ey)] == p && chainID[index(ex+1, ey)] != node->id) {
                Chain *conn = nullptr;
                searchChainsByID(conn, chainID[index(ex+1, ey)]);
                if (conn->liberties > 2)
                    return esc;
            }
            if (pieces[index(ex-1, ey)] == p && chainID[index(ex-1, ey)] != node->id) {
                Chain *conn = nullptr;
                searchChainsByID(conn, chainID[index(ex-1, ey)]);
                if (conn->liberties > 2)
                    return esc;
            }
            if (pieces[index(ex, ey+1)] == p && chainID[index(ex, ey+1)] != node->id) {
                Chain *conn = nullptr;
                searchChainsByID(conn, chainID[index(ex, ey+1)]);
                if (conn->liberties > 2)
                    return esc;
            }
            if (pieces[index(ex, ey-1)] == p && chainID[index(ex, ey-1)] != node->id) {
                Chain *conn = nullptr;
                searchChainsByID(conn, chainID[index(ex, ey-1)]);
                if (conn->liberties > 2)
                    return esc;
            }
        }
    }

    if (pieces[index(x-1, y)] == p) {
        Chain *node = nullptr;
        searchChainsByID(node, chainID[index(x-1, y)]);
        if (node->liberties == 1) {
            Move esc = node->libertyList[0];
            int ex = getX(esc);
            int ey = getY(esc);
            if (pieces[index(ex+1, ey)] == p && chainID[index(ex+1, ey)] != node->id) {
                Chain *conn = nullptr;
                searchChainsByID(conn, chainID[index(ex+1, ey)]);
                if (conn->liberties > 2)
                    return esc;
            }
            if (pieces[index(ex-1, ey)] == p && chainID[index(ex-1, ey)] != node->id) {
                Chain *conn = nullptr;
                searchChainsByID(conn, chainID[index(ex-1, ey)]);
                if (conn->liberties > 2)
                    return esc;
            }
            if (pieces[index(ex, ey+1)] == p && chainID[index(ex, ey+1)] != node->id) {
                Chain *conn = nullptr;
                searchChainsByID(conn, chainID[index(ex, ey+1)]);
                if (conn->liberties > 2)
                    return esc;
            }
            if (pieces[index(ex, ey-1)] == p && chainID[index(ex, ey-1)] != node->id) {
                Chain *conn = nullptr;
                searchChainsByID(conn, chainID[index(ex, ey-1)]);
                if (conn->liberties > 2)
                    return esc;
            }
        }
    }

    if (pieces[index(x, y+1)] == p) {
        Chain *node = nullptr;
        searchChainsByID(node, chainID[index(x, y+1)]);
        if (node->liberties == 1) {
            Move esc = node->libertyList[0];
            int ex = getX(esc);
            int ey = getY(esc);
            if (pieces[index(ex+1, ey)] == p && chainID[index(ex+1, ey)] != node->id) {
                Chain *conn = nullptr;
                searchChainsByID(conn, chainID[index(ex+1, ey)]);
                if (conn->liberties > 2)
                    return esc;
            }
            if (pieces[index(ex-1, ey)] == p && chainID[index(ex-1, ey)] != node->id) {
                Chain *conn = nullptr;
                searchChainsByID(conn, chainID[index(ex-1, ey)]);
                if (conn->liberties > 2)
                    return esc;
            }
            if (pieces[index(ex, ey+1)] == p && chainID[index(ex, ey+1)] != node->id) {
                Chain *conn = nullptr;
                searchChainsByID(conn, chainID[index(ex, ey+1)]);
                if (conn->liberties > 2)
                    return esc;
            }
            if (pieces[index(ex, ey-1)] == p && chainID[index(ex, ey-1)] != node->id) {
                Chain *conn = nullptr;
                searchChainsByID(conn, chainID[index(ex, ey-1)]);
                if (conn->liberties > 2)
                    return esc;
            }
        }
    }

    if (pieces[index(x, y-1)] == p) {
        Chain *node = nullptr;
        searchChainsByID(node, chainID[index(x, y-1)]);
        if (node->liberties == 1) {
            Move esc = node->libertyList[0];
            int ex = getX(esc);
            int ey = getY(esc);
            if (pieces[index(ex+1, ey)] == p && chainID[index(ex+1, ey)] != node->id) {
                Chain *conn = nullptr;
                searchChainsByID(conn, chainID[index(ex+1, ey)]);
                if (conn->liberties > 2)
                    return esc;
            }
            if (pieces[index(ex-1, ey)] == p && chainID[index(ex-1, ey)] != node->id) {
                Chain *conn = nullptr;
                searchChainsByID(conn, chainID[index(ex-1, ey)]);
                if (conn->liberties > 2)
                    return esc;
            }
            if (pieces[index(ex, ey+1)] == p && chainID[index(ex, ey+1)] != node->id) {
                Chain *conn = nullptr;
                searchChainsByID(conn, chainID[index(ex, ey+1)]);
                if (conn->liberties > 2)
                    return esc;
            }
            if (pieces[index(ex, ey-1)] == p && chainID[index(ex, ey-1)] != node->id) {
                Chain *conn = nullptr;
                searchChainsByID(conn, chainID[index(ex, ey-1)]);
                if (conn->liberties > 2)
                    return esc;
            }
        }
    }

    return MOVE_PASS;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2d0, %rsp            # imm = 0x2D0
movw %dx, %ax
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movw %ax, -0x16(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x108(%rbp)
movzwl -0x16(%rbp), %eax
cmpl $0x8000, %eax           # imm = 0x8000
jne 0x6b1a
movw $0x8000, -0x2(%rbp)     # imm = 0x8000
jmp 0x7c4b
movzwl -0x16(%rbp), %edi
callq 0x8b80
movl %eax, -0x1c(%rbp)
movzwl -0x16(%rbp), %edi
callq 0x8ba0
movl %eax, %ecx
movq -0x108(%rbp), %rax
movl %ecx, -0x20(%rbp)
movq (%rax), %rax
movq %rax, -0x110(%rbp)
movl -0x1c(%rbp), %edi
addl $0x1, %edi
movl -0x20(%rbp), %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x110(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x14(%rbp), %eax
jne 0x6f25
movq -0x108(%rbp), %rax
movq $0x0, -0x28(%rbp)
movq 0x20(%rax), %rax
movq %rax, -0x118(%rbp)
movl -0x1c(%rbp), %edi
addl $0x1, %edi
movl -0x20(%rbp), %esi
callq 0x8bc0
movq -0x108(%rbp), %rdi
movl %eax, %ecx
movq -0x118(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %edx
leaq -0x28(%rbp), %rsi
callq 0x8c50
movq -0x28(%rbp), %rax
cmpl $0x1, 0xc(%rax)
jne 0x6f23
movq -0x28(%rbp), %rax
movw 0x410(%rax), %ax
movw %ax, -0x2a(%rbp)
movzwl -0x2a(%rbp), %edi
callq 0x8b80
movl %eax, -0x30(%rbp)
movzwl -0x2a(%rbp), %edi
callq 0x8ba0
movl %eax, %ecx
movq -0x108(%rbp), %rax
movl %ecx, -0x34(%rbp)
movq (%rax), %rax
movq %rax, -0x120(%rbp)
movl -0x30(%rbp), %edi
addl $0x1, %edi
movl -0x34(%rbp), %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x120(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x14(%rbp), %eax
jne 0x6cb7
movq -0x108(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x128(%rbp)
movl -0x30(%rbp), %edi
addl $0x1, %edi
movl -0x34(%rbp), %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x128(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movq -0x28(%rbp), %rcx
cmpl (%rcx), %eax
je 0x6cb7
movq -0x108(%rbp), %rax
movq $0x0, -0x40(%rbp)
movq 0x20(%rax), %rax
movq %rax, -0x130(%rbp)
movl -0x30(%rbp), %edi
addl $0x1, %edi
movl -0x34(%rbp), %esi
callq 0x8bc0
movq -0x108(%rbp), %rdi
movl %eax, %ecx
movq -0x130(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %edx
leaq -0x40(%rbp), %rsi
callq 0x8c50
movq -0x40(%rbp), %rax
cmpl $0x2, 0xc(%rax)
jle 0x6cb5
movw -0x2a(%rbp), %ax
movw %ax, -0x2(%rbp)
jmp 0x7c4b
jmp 0x6cb7
movq -0x108(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x138(%rbp)
movl -0x30(%rbp), %edi
subl $0x1, %edi
movl -0x34(%rbp), %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x138(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x14(%rbp), %eax
jne 0x6d85
movq -0x108(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x140(%rbp)
movl -0x30(%rbp), %edi
subl $0x1, %edi
movl -0x34(%rbp), %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x140(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movq -0x28(%rbp), %rcx
cmpl (%rcx), %eax
je 0x6d85
movq -0x108(%rbp), %rax
movq $0x0, -0x48(%rbp)
movq 0x20(%rax), %rax
movq %rax, -0x148(%rbp)
movl -0x30(%rbp), %edi
subl $0x1, %edi
movl -0x34(%rbp), %esi
callq 0x8bc0
movq -0x108(%rbp), %rdi
movl %eax, %ecx
movq -0x148(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %edx
leaq -0x48(%rbp), %rsi
callq 0x8c50
movq -0x48(%rbp), %rax
cmpl $0x2, 0xc(%rax)
jle 0x6d83
movw -0x2a(%rbp), %ax
movw %ax, -0x2(%rbp)
jmp 0x7c4b
jmp 0x6d85
movq -0x108(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x150(%rbp)
movl -0x30(%rbp), %edi
movl -0x34(%rbp), %esi
addl $0x1, %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x150(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x14(%rbp), %eax
jne 0x6e53
movq -0x108(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x158(%rbp)
movl -0x30(%rbp), %edi
movl -0x34(%rbp), %esi
addl $0x1, %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x158(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movq -0x28(%rbp), %rcx
cmpl (%rcx), %eax
je 0x6e53
movq -0x108(%rbp), %rax
movq $0x0, -0x50(%rbp)
movq 0x20(%rax), %rax
movq %rax, -0x160(%rbp)
movl -0x30(%rbp), %edi
movl -0x34(%rbp), %esi
addl $0x1, %esi
callq 0x8bc0
movq -0x108(%rbp), %rdi
movl %eax, %ecx
movq -0x160(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %edx
leaq -0x50(%rbp), %rsi
callq 0x8c50
movq -0x50(%rbp), %rax
cmpl $0x2, 0xc(%rax)
jle 0x6e51
movw -0x2a(%rbp), %ax
movw %ax, -0x2(%rbp)
jmp 0x7c4b
jmp 0x6e53
movq -0x108(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x168(%rbp)
movl -0x30(%rbp), %edi
movl -0x34(%rbp), %esi
subl $0x1, %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x168(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x14(%rbp), %eax
jne 0x6f21
movq -0x108(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x170(%rbp)
movl -0x30(%rbp), %edi
movl -0x34(%rbp), %esi
subl $0x1, %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x170(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movq -0x28(%rbp), %rcx
cmpl (%rcx), %eax
je 0x6f21
movq -0x108(%rbp), %rax
movq $0x0, -0x58(%rbp)
movq 0x20(%rax), %rax
movq %rax, -0x178(%rbp)
movl -0x30(%rbp), %edi
movl -0x34(%rbp), %esi
subl $0x1, %esi
callq 0x8bc0
movq -0x108(%rbp), %rdi
movl %eax, %ecx
movq -0x178(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %edx
leaq -0x58(%rbp), %rsi
callq 0x8c50
movq -0x58(%rbp), %rax
cmpl $0x2, 0xc(%rax)
jle 0x6f1f
movw -0x2a(%rbp), %ax
movw %ax, -0x2(%rbp)
jmp 0x7c4b
jmp 0x6f21
jmp 0x6f23
jmp 0x6f25
movq -0x108(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x180(%rbp)
movl -0x1c(%rbp), %edi
subl $0x1, %edi
movl -0x20(%rbp), %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x180(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x14(%rbp), %eax
jne 0x7328
movq -0x108(%rbp), %rax
movq $0x0, -0x60(%rbp)
movq 0x20(%rax), %rax
movq %rax, -0x188(%rbp)
movl -0x1c(%rbp), %edi
subl $0x1, %edi
movl -0x20(%rbp), %esi
callq 0x8bc0
movq -0x108(%rbp), %rdi
movl %eax, %ecx
movq -0x188(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %edx
leaq -0x60(%rbp), %rsi
callq 0x8c50
movq -0x60(%rbp), %rax
cmpl $0x1, 0xc(%rax)
jne 0x7326
movq -0x60(%rbp), %rax
movw 0x410(%rax), %ax
movw %ax, -0x62(%rbp)
movzwl -0x62(%rbp), %edi
callq 0x8b80
movl %eax, -0x68(%rbp)
movzwl -0x62(%rbp), %edi
callq 0x8ba0
movl %eax, %ecx
movq -0x108(%rbp), %rax
movl %ecx, -0x6c(%rbp)
movq (%rax), %rax
movq %rax, -0x190(%rbp)
movl -0x68(%rbp), %edi
addl $0x1, %edi
movl -0x6c(%rbp), %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x190(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x14(%rbp), %eax
jne 0x70a8
movq -0x108(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x198(%rbp)
movl -0x68(%rbp), %edi
addl $0x1, %edi
movl -0x6c(%rbp), %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x198(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movq -0x60(%rbp), %rcx
cmpl (%rcx), %eax
je 0x70a8
movq -0x108(%rbp), %rax
movq $0x0, -0x78(%rbp)
movq 0x20(%rax), %rax
movq %rax, -0x1a0(%rbp)
movl -0x68(%rbp), %edi
addl $0x1, %edi
movl -0x6c(%rbp), %esi
callq 0x8bc0
movq -0x108(%rbp), %rdi
movl %eax, %ecx
movq -0x1a0(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %edx
leaq -0x78(%rbp), %rsi
callq 0x8c50
movq -0x78(%rbp), %rax
cmpl $0x2, 0xc(%rax)
jle 0x70a6
movw -0x62(%rbp), %ax
movw %ax, -0x2(%rbp)
jmp 0x7c4b
jmp 0x70a8
movq -0x108(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x1a8(%rbp)
movl -0x68(%rbp), %edi
subl $0x1, %edi
movl -0x6c(%rbp), %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x1a8(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x14(%rbp), %eax
jne 0x7176
movq -0x108(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x1b0(%rbp)
movl -0x68(%rbp), %edi
subl $0x1, %edi
movl -0x6c(%rbp), %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x1b0(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movq -0x60(%rbp), %rcx
cmpl (%rcx), %eax
je 0x7176
movq -0x108(%rbp), %rax
movq $0x0, -0x80(%rbp)
movq 0x20(%rax), %rax
movq %rax, -0x1b8(%rbp)
movl -0x68(%rbp), %edi
subl $0x1, %edi
movl -0x6c(%rbp), %esi
callq 0x8bc0
movq -0x108(%rbp), %rdi
movl %eax, %ecx
movq -0x1b8(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %edx
leaq -0x80(%rbp), %rsi
callq 0x8c50
movq -0x80(%rbp), %rax
cmpl $0x2, 0xc(%rax)
jle 0x7174
movw -0x62(%rbp), %ax
movw %ax, -0x2(%rbp)
jmp 0x7c4b
jmp 0x7176
movq -0x108(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x1c0(%rbp)
movl -0x68(%rbp), %edi
movl -0x6c(%rbp), %esi
addl $0x1, %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x1c0(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x14(%rbp), %eax
jne 0x724d
movq -0x108(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x1c8(%rbp)
movl -0x68(%rbp), %edi
movl -0x6c(%rbp), %esi
addl $0x1, %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x1c8(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movq -0x60(%rbp), %rcx
cmpl (%rcx), %eax
je 0x724d
movq -0x108(%rbp), %rax
movq $0x0, -0x88(%rbp)
movq 0x20(%rax), %rax
movq %rax, -0x1d0(%rbp)
movl -0x68(%rbp), %edi
movl -0x6c(%rbp), %esi
addl $0x1, %esi
callq 0x8bc0
movq -0x108(%rbp), %rdi
movl %eax, %ecx
movq -0x1d0(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %edx
leaq -0x88(%rbp), %rsi
callq 0x8c50
movq -0x88(%rbp), %rax
cmpl $0x2, 0xc(%rax)
jle 0x724b
movw -0x62(%rbp), %ax
movw %ax, -0x2(%rbp)
jmp 0x7c4b
jmp 0x724d
movq -0x108(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x1d8(%rbp)
movl -0x68(%rbp), %edi
movl -0x6c(%rbp), %esi
subl $0x1, %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x1d8(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x14(%rbp), %eax
jne 0x7324
movq -0x108(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x1e0(%rbp)
movl -0x68(%rbp), %edi
movl -0x6c(%rbp), %esi
subl $0x1, %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x1e0(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movq -0x60(%rbp), %rcx
cmpl (%rcx), %eax
je 0x7324
movq -0x108(%rbp), %rax
movq $0x0, -0x90(%rbp)
movq 0x20(%rax), %rax
movq %rax, -0x1e8(%rbp)
movl -0x68(%rbp), %edi
movl -0x6c(%rbp), %esi
subl $0x1, %esi
callq 0x8bc0
movq -0x108(%rbp), %rdi
movl %eax, %ecx
movq -0x1e8(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %edx
leaq -0x90(%rbp), %rsi
callq 0x8c50
movq -0x90(%rbp), %rax
cmpl $0x2, 0xc(%rax)
jle 0x7322
movw -0x62(%rbp), %ax
movw %ax, -0x2(%rbp)
jmp 0x7c4b
jmp 0x7324
jmp 0x7326
jmp 0x7328
movq -0x108(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x1f0(%rbp)
movl -0x1c(%rbp), %edi
movl -0x20(%rbp), %esi
addl $0x1, %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x1f0(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x14(%rbp), %eax
jne 0x77b8
movq -0x108(%rbp), %rax
movq $0x0, -0x98(%rbp)
movq 0x20(%rax), %rax
movq %rax, -0x1f8(%rbp)
movl -0x1c(%rbp), %edi
movl -0x20(%rbp), %esi
addl $0x1, %esi
callq 0x8bc0
movq -0x108(%rbp), %rdi
movl %eax, %ecx
movq -0x1f8(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %edx
leaq -0x98(%rbp), %rsi
callq 0x8c50
movq -0x98(%rbp), %rax
cmpl $0x1, 0xc(%rax)
jne 0x77b6
movq -0x98(%rbp), %rax
movw 0x410(%rax), %ax
movw %ax, -0x9a(%rbp)
movzwl -0x9a(%rbp), %edi
callq 0x8b80
movl %eax, -0xa0(%rbp)
movzwl -0x9a(%rbp), %edi
callq 0x8ba0
movl %eax, %ecx
movq -0x108(%rbp), %rax
movl %ecx, -0xa4(%rbp)
movq (%rax), %rax
movq %rax, -0x200(%rbp)
movl -0xa0(%rbp), %edi
addl $0x1, %edi
movl -0xa4(%rbp), %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x200(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x14(%rbp), %eax
jne 0x74e7
movq -0x108(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x208(%rbp)
movl -0xa0(%rbp), %edi
addl $0x1, %edi
movl -0xa4(%rbp), %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x208(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movq -0x98(%rbp), %rcx
cmpl (%rcx), %eax
je 0x74e7
movq -0x108(%rbp), %rax
movq $0x0, -0xb0(%rbp)
movq 0x20(%rax), %rax
movq %rax, -0x210(%rbp)
movl -0xa0(%rbp), %edi
addl $0x1, %edi
movl -0xa4(%rbp), %esi
callq 0x8bc0
movq -0x108(%rbp), %rdi
movl %eax, %ecx
movq -0x210(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %edx
leaq -0xb0(%rbp), %rsi
callq 0x8c50
movq -0xb0(%rbp), %rax
cmpl $0x2, 0xc(%rax)
jle 0x74e5
movw -0x9a(%rbp), %ax
movw %ax, -0x2(%rbp)
jmp 0x7c4b
jmp 0x74e7
movq -0x108(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x218(%rbp)
movl -0xa0(%rbp), %edi
subl $0x1, %edi
movl -0xa4(%rbp), %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x218(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x14(%rbp), %eax
jne 0x75d6
movq -0x108(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x220(%rbp)
movl -0xa0(%rbp), %edi
subl $0x1, %edi
movl -0xa4(%rbp), %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x220(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movq -0x98(%rbp), %rcx
cmpl (%rcx), %eax
je 0x75d6
movq -0x108(%rbp), %rax
movq $0x0, -0xb8(%rbp)
movq 0x20(%rax), %rax
movq %rax, -0x228(%rbp)
movl -0xa0(%rbp), %edi
subl $0x1, %edi
movl -0xa4(%rbp), %esi
callq 0x8bc0
movq -0x108(%rbp), %rdi
movl %eax, %ecx
movq -0x228(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %edx
leaq -0xb8(%rbp), %rsi
callq 0x8c50
movq -0xb8(%rbp), %rax
cmpl $0x2, 0xc(%rax)
jle 0x75d4
movw -0x9a(%rbp), %ax
movw %ax, -0x2(%rbp)
jmp 0x7c4b
jmp 0x75d6
movq -0x108(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x230(%rbp)
movl -0xa0(%rbp), %edi
movl -0xa4(%rbp), %esi
addl $0x1, %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x230(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x14(%rbp), %eax
jne 0x76c5
movq -0x108(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x238(%rbp)
movl -0xa0(%rbp), %edi
movl -0xa4(%rbp), %esi
addl $0x1, %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x238(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movq -0x98(%rbp), %rcx
cmpl (%rcx), %eax
je 0x76c5
movq -0x108(%rbp), %rax
movq $0x0, -0xc0(%rbp)
movq 0x20(%rax), %rax
movq %rax, -0x240(%rbp)
movl -0xa0(%rbp), %edi
movl -0xa4(%rbp), %esi
addl $0x1, %esi
callq 0x8bc0
movq -0x108(%rbp), %rdi
movl %eax, %ecx
movq -0x240(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %edx
leaq -0xc0(%rbp), %rsi
callq 0x8c50
movq -0xc0(%rbp), %rax
cmpl $0x2, 0xc(%rax)
jle 0x76c3
movw -0x9a(%rbp), %ax
movw %ax, -0x2(%rbp)
jmp 0x7c4b
jmp 0x76c5
movq -0x108(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x248(%rbp)
movl -0xa0(%rbp), %edi
movl -0xa4(%rbp), %esi
subl $0x1, %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x248(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x14(%rbp), %eax
jne 0x77b4
movq -0x108(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x250(%rbp)
movl -0xa0(%rbp), %edi
movl -0xa4(%rbp), %esi
subl $0x1, %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x250(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movq -0x98(%rbp), %rcx
cmpl (%rcx), %eax
je 0x77b4
movq -0x108(%rbp), %rax
movq $0x0, -0xc8(%rbp)
movq 0x20(%rax), %rax
movq %rax, -0x258(%rbp)
movl -0xa0(%rbp), %edi
movl -0xa4(%rbp), %esi
subl $0x1, %esi
callq 0x8bc0
movq -0x108(%rbp), %rdi
movl %eax, %ecx
movq -0x258(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %edx
leaq -0xc8(%rbp), %rsi
callq 0x8c50
movq -0xc8(%rbp), %rax
cmpl $0x2, 0xc(%rax)
jle 0x77b2
movw -0x9a(%rbp), %ax
movw %ax, -0x2(%rbp)
jmp 0x7c4b
jmp 0x77b4
jmp 0x77b6
jmp 0x77b8
movq -0x108(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x260(%rbp)
movl -0x1c(%rbp), %edi
movl -0x20(%rbp), %esi
subl $0x1, %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x260(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x14(%rbp), %eax
jne 0x7c45
movq -0x108(%rbp), %rax
movq $0x0, -0xd0(%rbp)
movq 0x20(%rax), %rax
movq %rax, -0x268(%rbp)
movl -0x1c(%rbp), %edi
movl -0x20(%rbp), %esi
subl $0x1, %esi
callq 0x8bc0
movq -0x108(%rbp), %rdi
movl %eax, %ecx
movq -0x268(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %edx
leaq -0xd0(%rbp), %rsi
callq 0x8c50
movq -0xd0(%rbp), %rax
cmpl $0x1, 0xc(%rax)
jne 0x7c43
movq -0xd0(%rbp), %rax
movw 0x410(%rax), %ax
movw %ax, -0xd2(%rbp)
movzwl -0xd2(%rbp), %edi
callq 0x8b80
movl %eax, -0xd8(%rbp)
movzwl -0xd2(%rbp), %edi
callq 0x8ba0
movl %eax, %ecx
movq -0x108(%rbp), %rax
movl %ecx, -0xdc(%rbp)
movq (%rax), %rax
movq %rax, -0x270(%rbp)
movl -0xd8(%rbp), %edi
addl $0x1, %edi
movl -0xdc(%rbp), %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x270(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x14(%rbp), %eax
jne 0x7977
movq -0x108(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x278(%rbp)
movl -0xd8(%rbp), %edi
addl $0x1, %edi
movl -0xdc(%rbp), %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x278(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movq -0xd0(%rbp), %rcx
cmpl (%rcx), %eax
je 0x7977
movq -0x108(%rbp), %rax
movq $0x0, -0xe8(%rbp)
movq 0x20(%rax), %rax
movq %rax, -0x280(%rbp)
movl -0xd8(%rbp), %edi
addl $0x1, %edi
movl -0xdc(%rbp), %esi
callq 0x8bc0
movq -0x108(%rbp), %rdi
movl %eax, %ecx
movq -0x280(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %edx
leaq -0xe8(%rbp), %rsi
callq 0x8c50
movq -0xe8(%rbp), %rax
cmpl $0x2, 0xc(%rax)
jle 0x7975
movw -0xd2(%rbp), %ax
movw %ax, -0x2(%rbp)
jmp 0x7c4b
jmp 0x7977
movq -0x108(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x288(%rbp)
movl -0xd8(%rbp), %edi
subl $0x1, %edi
movl -0xdc(%rbp), %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x288(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x14(%rbp), %eax
jne 0x7a66
movq -0x108(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x290(%rbp)
movl -0xd8(%rbp), %edi
subl $0x1, %edi
movl -0xdc(%rbp), %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x290(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movq -0xd0(%rbp), %rcx
cmpl (%rcx), %eax
je 0x7a66
movq -0x108(%rbp), %rax
movq $0x0, -0xf0(%rbp)
movq 0x20(%rax), %rax
movq %rax, -0x298(%rbp)
movl -0xd8(%rbp), %edi
subl $0x1, %edi
movl -0xdc(%rbp), %esi
callq 0x8bc0
movq -0x108(%rbp), %rdi
movl %eax, %ecx
movq -0x298(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %edx
leaq -0xf0(%rbp), %rsi
callq 0x8c50
movq -0xf0(%rbp), %rax
cmpl $0x2, 0xc(%rax)
jle 0x7a64
movw -0xd2(%rbp), %ax
movw %ax, -0x2(%rbp)
jmp 0x7c4b
jmp 0x7a66
movq -0x108(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x2a0(%rbp)
movl -0xd8(%rbp), %edi
movl -0xdc(%rbp), %esi
addl $0x1, %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x2a0(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x14(%rbp), %eax
jne 0x7b55
movq -0x108(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x2a8(%rbp)
movl -0xd8(%rbp), %edi
movl -0xdc(%rbp), %esi
addl $0x1, %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x2a8(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movq -0xd0(%rbp), %rcx
cmpl (%rcx), %eax
je 0x7b55
movq -0x108(%rbp), %rax
movq $0x0, -0xf8(%rbp)
movq 0x20(%rax), %rax
movq %rax, -0x2b0(%rbp)
movl -0xd8(%rbp), %edi
movl -0xdc(%rbp), %esi
addl $0x1, %esi
callq 0x8bc0
movq -0x108(%rbp), %rdi
movl %eax, %ecx
movq -0x2b0(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %edx
leaq -0xf8(%rbp), %rsi
callq 0x8c50
movq -0xf8(%rbp), %rax
cmpl $0x2, 0xc(%rax)
jle 0x7b53
movw -0xd2(%rbp), %ax
movw %ax, -0x2(%rbp)
jmp 0x7c4b
jmp 0x7b55
movq -0x108(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x2b8(%rbp)
movl -0xd8(%rbp), %edi
movl -0xdc(%rbp), %esi
subl $0x1, %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x2b8(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x14(%rbp), %eax
jne 0x7c41
movq -0x108(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x2c0(%rbp)
movl -0xd8(%rbp), %edi
movl -0xdc(%rbp), %esi
subl $0x1, %esi
callq 0x8bc0
movl %eax, %ecx
movq -0x2c0(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movq -0xd0(%rbp), %rcx
cmpl (%rcx), %eax
je 0x7c41
movq -0x108(%rbp), %rax
movq $0x0, -0x100(%rbp)
movq 0x20(%rax), %rax
movq %rax, -0x2c8(%rbp)
movl -0xd8(%rbp), %edi
movl -0xdc(%rbp), %esi
subl $0x1, %esi
callq 0x8bc0
movq -0x108(%rbp), %rdi
movl %eax, %ecx
movq -0x2c8(%rbp), %rax
movslq %ecx, %rcx
movl (%rax,%rcx,4), %edx
leaq -0x100(%rbp), %rsi
callq 0x8c50
movq -0x100(%rbp), %rax
cmpl $0x2, 0xc(%rax)
jle 0x7c3f
movw -0xd2(%rbp), %ax
movw %ax, -0x2(%rbp)
jmp 0x7c4b
jmp 0x7c41
jmp 0x7c43
jmp 0x7c45
movw $0x8000, -0x2(%rbp)     # imm = 0x8000
movw -0x2(%rbp), %ax
addq $0x2d0, %rsp            # imm = 0x2D0
popq %rbp
retq
nopl (%rax,%rax)