// File: niekh1234[P]nnchesslib/board.cpp
// Function: nnchesslib::ChessBoard::getPieceChar[abi:cxx11](int)
std::string ChessBoard::getPieceChar(int i)
{
    if(BitBoard(boardinfo.pawns.board & boardinfo.whitePieces.board).get(i)) return "P";
    if(BitBoard(boardinfo.knights.board & boardinfo.whitePieces.board).get(i)) return "N";
    if(BitBoard(boardinfo.bishops.board & boardinfo.whitePieces.board).get(i)) return "B";
    if(BitBoard(boardinfo.rooks.board & boardinfo.whitePieces.board).get(i)) return "R";
    if(BitBoard(boardinfo.queens.board & boardinfo.whitePieces.board).get(i)) return "Q";
    if(BitBoard(boardinfo.kings.board & boardinfo.whitePieces.board).get(i)) return "K";
    if(BitBoard(boardinfo.pawns.board & boardinfo.blackPieces.board).get(i)) return "p";
    if(BitBoard(boardinfo.knights.board & boardinfo.blackPieces.board).get(i)) return "n";
    if(BitBoard(boardinfo.bishops.board & boardinfo.blackPieces.board).get(i)) return "b";
    if(BitBoard(boardinfo.rooks.board & boardinfo.blackPieces.board).get(i)) return "r";
    if(BitBoard(boardinfo.queens.board & boardinfo.blackPieces.board).get(i)) return "q";
    if(BitBoard(boardinfo.kings.board & boardinfo.blackPieces.board).get(i)) return "k";
    return "0";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movq %rdi, -0x100(%rbp)
movq %rdi, %rax
movq %rax, -0xf8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq 0x10(%rax), %rsi
andq (%rax), %rsi
leaq -0x20(%rbp), %rdi
callq 0x4bc0
movl -0x14(%rbp), %esi
leaq -0x20(%rbp), %rdi
callq 0x4ce0
cmpl $0x0, %eax
je 0x8947
leaq -0x21(%rbp), %rdi
movq %rdi, -0x108(%rbp)
callq 0x3420
movq -0x100(%rbp), %rdi
movq -0x108(%rbp), %rdx
leaq 0x6093(%rip), %rsi      # 0xe9ab
callq 0x4850
jmp 0x891f
leaq -0x21(%rbp), %rdi
callq 0x32b0
jmp 0x8f55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x21(%rbp), %rdi
callq 0x32b0
jmp 0x8f65
movq -0xf0(%rbp), %rax
movq 0x18(%rax), %rsi
andq (%rax), %rsi
leaq -0x40(%rbp), %rdi
callq 0x4bc0
movl -0x14(%rbp), %esi
leaq -0x40(%rbp), %rdi
callq 0x4ce0
cmpl $0x0, %eax
je 0x89c3
leaq -0x41(%rbp), %rdi
movq %rdi, -0x110(%rbp)
callq 0x3420
movq -0x100(%rbp), %rdi
movq -0x110(%rbp), %rdx
leaq 0x6019(%rip), %rsi      # 0xe9ad
callq 0x4850
jmp 0x899b
leaq -0x41(%rbp), %rdi
callq 0x32b0
jmp 0x8f55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x41(%rbp), %rdi
callq 0x32b0
jmp 0x8f65
movq -0xf0(%rbp), %rax
movq 0x20(%rax), %rsi
andq (%rax), %rsi
leaq -0x50(%rbp), %rdi
callq 0x4bc0
movl -0x14(%rbp), %esi
leaq -0x50(%rbp), %rdi
callq 0x4ce0
cmpl $0x0, %eax
je 0x8a3f
leaq -0x51(%rbp), %rdi
movq %rdi, -0x118(%rbp)
callq 0x3420
movq -0x100(%rbp), %rdi
movq -0x118(%rbp), %rdx
leaq 0x5f9f(%rip), %rsi      # 0xe9af
callq 0x4850
jmp 0x8a17
leaq -0x51(%rbp), %rdi
callq 0x32b0
jmp 0x8f55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x51(%rbp), %rdi
callq 0x32b0
jmp 0x8f65
movq -0xf0(%rbp), %rax
movq 0x28(%rax), %rsi
andq (%rax), %rsi
leaq -0x60(%rbp), %rdi
callq 0x4bc0
movl -0x14(%rbp), %esi
leaq -0x60(%rbp), %rdi
callq 0x4ce0
cmpl $0x0, %eax
je 0x8abb
leaq -0x61(%rbp), %rdi
movq %rdi, -0x120(%rbp)
callq 0x3420
movq -0x100(%rbp), %rdi
movq -0x120(%rbp), %rdx
leaq 0x5f25(%rip), %rsi      # 0xe9b1
callq 0x4850
jmp 0x8a93
leaq -0x61(%rbp), %rdi
callq 0x32b0
jmp 0x8f55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x61(%rbp), %rdi
callq 0x32b0
jmp 0x8f65
movq -0xf0(%rbp), %rax
movq 0x30(%rax), %rsi
andq (%rax), %rsi
leaq -0x70(%rbp), %rdi
callq 0x4bc0
movl -0x14(%rbp), %esi
leaq -0x70(%rbp), %rdi
callq 0x4ce0
cmpl $0x0, %eax
je 0x8b37
leaq -0x71(%rbp), %rdi
movq %rdi, -0x128(%rbp)
callq 0x3420
movq -0x100(%rbp), %rdi
movq -0x128(%rbp), %rdx
leaq 0x5d3f(%rip), %rsi      # 0xe847
callq 0x4850
jmp 0x8b0f
leaq -0x71(%rbp), %rdi
callq 0x32b0
jmp 0x8f55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x71(%rbp), %rdi
callq 0x32b0
jmp 0x8f65
movq -0xf0(%rbp), %rax
movq 0x38(%rax), %rsi
andq (%rax), %rsi
leaq -0x80(%rbp), %rdi
callq 0x4bc0
movl -0x14(%rbp), %esi
leaq -0x80(%rbp), %rdi
callq 0x4ce0
cmpl $0x0, %eax
je 0x8bbc
leaq -0x81(%rbp), %rdi
movq %rdi, -0x130(%rbp)
callq 0x3420
movq -0x100(%rbp), %rdi
movq -0x130(%rbp), %rdx
leaq 0x5da1(%rip), %rsi      # 0xe928
callq 0x4850
jmp 0x8b8e
leaq -0x81(%rbp), %rdi
callq 0x32b0
jmp 0x8f55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x81(%rbp), %rdi
callq 0x32b0
jmp 0x8f65
movq -0xf0(%rbp), %rax
movq 0x10(%rax), %rsi
andq 0x8(%rax), %rsi
leaq -0x90(%rbp), %rdi
callq 0x4bc0
movl -0x14(%rbp), %esi
leaq -0x90(%rbp), %rdi
callq 0x4ce0
cmpl $0x0, %eax
je 0x8c48
leaq -0x91(%rbp), %rdi
movq %rdi, -0x138(%rbp)
callq 0x3420
movq -0x100(%rbp), %rdi
movq -0x138(%rbp), %rdx
leaq 0x59c4(%rip), %rsi      # 0xe5d7
callq 0x4850
jmp 0x8c1a
leaq -0x91(%rbp), %rdi
callq 0x32b0
jmp 0x8f55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x91(%rbp), %rdi
callq 0x32b0
jmp 0x8f65
movq -0xf0(%rbp), %rax
movq 0x18(%rax), %rsi
andq 0x8(%rax), %rsi
leaq -0xa0(%rbp), %rdi
callq 0x4bc0
movl -0x14(%rbp), %esi
leaq -0xa0(%rbp), %rdi
callq 0x4ce0
cmpl $0x0, %eax
je 0x8cd4
leaq -0xa1(%rbp), %rdi
movq %rdi, -0x140(%rbp)
callq 0x3420
movq -0x100(%rbp), %rdi
movq -0x140(%rbp), %rdx
leaq 0x5d14(%rip), %rsi      # 0xe9b3
callq 0x4850
jmp 0x8ca6
leaq -0xa1(%rbp), %rdi
callq 0x32b0
jmp 0x8f55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xa1(%rbp), %rdi
callq 0x32b0
jmp 0x8f65
movq -0xf0(%rbp), %rax
movq 0x20(%rax), %rsi
andq 0x8(%rax), %rsi
leaq -0xb0(%rbp), %rdi
callq 0x4bc0
movl -0x14(%rbp), %esi
leaq -0xb0(%rbp), %rdi
callq 0x4ce0
cmpl $0x0, %eax
je 0x8d60
leaq -0xb1(%rbp), %rdi
movq %rdi, -0x148(%rbp)
callq 0x3420
movq -0x100(%rbp), %rdi
movq -0x148(%rbp), %rdx
leaq 0x5b0f(%rip), %rsi      # 0xe83a
callq 0x4850
jmp 0x8d32
leaq -0xb1(%rbp), %rdi
callq 0x32b0
jmp 0x8f55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xb1(%rbp), %rdi
callq 0x32b0
jmp 0x8f65
movq -0xf0(%rbp), %rax
movq 0x28(%rax), %rsi
andq 0x8(%rax), %rsi
leaq -0xc0(%rbp), %rdi
callq 0x4bc0
movl -0x14(%rbp), %esi
leaq -0xc0(%rbp), %rdi
callq 0x4ce0
cmpl $0x0, %eax
je 0x8dec
leaq -0xc1(%rbp), %rdi
movq %rdi, -0x150(%rbp)
callq 0x3420
movq -0x100(%rbp), %rdi
movq -0x150(%rbp), %rdx
leaq 0x5bfe(%rip), %rsi      # 0xe9b5
callq 0x4850
jmp 0x8dbe
leaq -0xc1(%rbp), %rdi
callq 0x32b0
jmp 0x8f55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xc1(%rbp), %rdi
callq 0x32b0
jmp 0x8f65
movq -0xf0(%rbp), %rax
movq 0x30(%rax), %rsi
andq 0x8(%rax), %rsi
leaq -0xd0(%rbp), %rdi
callq 0x4bc0
movl -0x14(%rbp), %esi
leaq -0xd0(%rbp), %rdi
callq 0x4ce0
cmpl $0x0, %eax
je 0x8e78
leaq -0xd1(%rbp), %rdi
movq %rdi, -0x158(%rbp)
callq 0x3420
movq -0x100(%rbp), %rdi
movq -0x158(%rbp), %rdx
leaq 0x5a01(%rip), %rsi      # 0xe844
callq 0x4850
jmp 0x8e4a
leaq -0xd1(%rbp), %rdi
callq 0x32b0
jmp 0x8f55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xd1(%rbp), %rdi
callq 0x32b0
jmp 0x8f65
movq -0xf0(%rbp), %rax
movq 0x38(%rax), %rsi
andq 0x8(%rax), %rsi
leaq -0xe0(%rbp), %rdi
callq 0x4bc0
movl -0x14(%rbp), %esi
leaq -0xe0(%rbp), %rdi
callq 0x4ce0
cmpl $0x0, %eax
je 0x8efe
leaq -0xe1(%rbp), %rdi
movq %rdi, -0x160(%rbp)
callq 0x3420
movq -0x100(%rbp), %rdi
movq -0x160(%rbp), %rdx
leaq 0x596e(%rip), %rsi      # 0xe83d
callq 0x4850
jmp 0x8ed6
leaq -0xe1(%rbp), %rdi
callq 0x32b0
jmp 0x8f55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xe1(%rbp), %rdi
callq 0x32b0
jmp 0x8f65
leaq -0xe2(%rbp), %rdi
movq %rdi, -0x168(%rbp)
callq 0x3420
movq -0x100(%rbp), %rdi
movq -0x168(%rbp), %rdx
leaq 0x5a91(%rip), %rsi      # 0xe9b7
callq 0x4850
jmp 0x8f2d
leaq -0xe2(%rbp), %rdi
callq 0x32b0
jmp 0x8f55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xe2(%rbp), %rdi
callq 0x32b0
jmp 0x8f65
movq -0xf8(%rbp), %rax
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x3410
nop