// File: whitefusion[P]Jaipur_cardgame-/AllTokens.cpp
// Function: All_Tokens::printTokens()
void All_Tokens::printTokens(){
    int i, c, row, ts, tf;
    cout << ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>TOKENS<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" << endl;
 //   cout << "============================================================================================================================================================================================" << endl;
    // output the first four types of tokens: diamond, gold, silver, leather

    for (row = 0; row < 2; ++row){
        if (row == 0){
            ts = 0;  
            tf = 4;
        }
        else {
            ts = 4;
            tf = 7;
        }
        for (i = ts; i < tf; ++i){
            cout << "  "; 
            for(c = 0; c < getSize(i+1)-1; ++c)
                cout << "  * *";
            if (getSize(i+1) > 0){
                cout << "  * * *";
                cout << "           ";
            }
        }
        cout << endl;

        for (i = ts; i < tf; ++i){
            cout << "  ";
            for (c = 0; c < getSize(i+1)-1; ++c)
                cout << "*    ";
            if (getSize(i+1) > 0){
                cout << "*       *";
                cout << "         ";
            }
        }
        cout << endl;

        for (i = ts; i < tf; ++i){
            cout << " ";
            for (c = 0; c < getSize(i+1)-1; ++c)
                cout << allTokens.at(i).at(c).getVal() << "    ";
            if (getSize(i+1) > 0){
                if (i == 1)
                    cout << "*  " << allTokens.at(i).at(c).getType() << "   *";
                else 
                    cout << "*  " << allTokens.at(i).at(c).getType() << "  *";
                cout << "        ";
            }
            else
                cout << " ";
        }
        cout << endl;

        for (i = ts; i < tf; ++i){
            cout << " ";
            for (c = 0; c < getSize(i+1)-1; ++c)
                cout << "*    ";
            if (getSize(i+1) > 0){
                cout << "*   -" << allTokens.at(i).at(c).getVal() << "-   *";
                cout << "        ";
            }
            else
                cout << " ";
        }
        cout << endl;

        for (i = ts; i < tf; ++i){
            cout << "  ";
            for (c = 0; c < getSize(i+1)-1; ++c)
                cout << "*    ";
            if (getSize(i+1) > 0){
                cout << "*       *";
                cout << "         ";
            }
        }
        cout << endl;

        for (i = ts; i < tf; ++i){
            cout << "  "; 
            for(c = 0; c < getSize(i+1)-1; ++c)
                cout << "  * *";
            if (getSize(i+1) > 0){
                cout << "  * * *";
                cout << "           ";
            }
        }
        cout << endl;
    }

//    cout << "============================================================================================================================================================================================" << endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x78(%rbp)
movq 0x22192(%rip), %rdi     # 0x2afd0
leaq 0x153ce(%rip), %rsi     # 0x1e213
callq 0x2200
movq %rax, %rdi
movq 0x2216c(%rip), %rsi     # 0x2afc0
callq 0x2240
movl $0x0, -0x14(%rbp)
cmpl $0x2, -0x14(%rbp)
jge 0x9534
cmpl $0x0, -0x14(%rbp)
jne 0x8e80
movl $0x0, -0x18(%rbp)
movl $0x4, -0x1c(%rbp)
jmp 0x8e8e
movl $0x4, -0x18(%rbp)
movl $0x7, -0x1c(%rbp)
movl -0x18(%rbp), %eax
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jge 0x8f43
movq 0x22129(%rip), %rdi     # 0x2afd0
leaq 0x15439(%rip), %rsi     # 0x1e2e7
callq 0x2200
movl $0x0, -0x10(%rbp)
movq -0x78(%rbp), %rdi
movl -0x10(%rbp), %eax
movl %eax, -0x7c(%rbp)
movl -0xc(%rbp), %esi
addl $0x1, %esi
callq 0x8c30
movl %eax, %ecx
movl -0x7c(%rbp), %eax
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x8ef9
movq 0x220ee(%rip), %rdi     # 0x2afd0
leaq 0x153e7(%rip), %rsi     # 0x1e2d0
callq 0x2200
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x8eba
movq -0x78(%rbp), %rdi
movl -0xc(%rbp), %esi
addl $0x1, %esi
callq 0x8c30
cmpl $0x0, %eax
jle 0x8f33
movq 0x220bc(%rip), %rdi     # 0x2afd0
leaq 0x153bb(%rip), %rsi     # 0x1e2d6
callq 0x2200
movq 0x220a9(%rip), %rdi     # 0x2afd0
leaq 0x153b0(%rip), %rsi     # 0x1e2de
callq 0x2200
jmp 0x8f35
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x8e94
movq 0x22086(%rip), %rdi     # 0x2afd0
movq 0x2206f(%rip), %rsi     # 0x2afc0
callq 0x2240
movl -0x18(%rbp), %eax
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jge 0x900b
movq 0x22061(%rip), %rdi     # 0x2afd0
leaq 0x15371(%rip), %rsi     # 0x1e2e7
callq 0x2200
movl $0x0, -0x10(%rbp)
movq -0x78(%rbp), %rdi
movl -0x10(%rbp), %eax
movl %eax, -0x80(%rbp)
movl -0xc(%rbp), %esi
addl $0x1, %esi
callq 0x8c30
movl %eax, %ecx
movl -0x80(%rbp), %eax
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x8fc1
movq 0x22026(%rip), %rdi     # 0x2afd0
leaq 0x15339(%rip), %rsi     # 0x1e2ea
callq 0x2200
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x8f82
movq -0x78(%rbp), %rdi
movl -0xc(%rbp), %esi
addl $0x1, %esi
callq 0x8c30
cmpl $0x0, %eax
jle 0x8ffb
movq 0x21ff4(%rip), %rdi     # 0x2afd0
leaq 0x1530d(%rip), %rsi     # 0x1e2f0
callq 0x2200
movq 0x21fe1(%rip), %rdi     # 0x2afd0
leaq 0x152ea(%rip), %rsi     # 0x1e2e0
callq 0x2200
jmp 0x8ffd
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x8f5c
movq 0x21fbe(%rip), %rdi     # 0x2afd0
movq 0x21fa7(%rip), %rsi     # 0x2afc0
callq 0x2240
movl -0x18(%rbp), %eax
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jge 0x924f
movq 0x21f99(%rip), %rdi     # 0x2afd0
leaq 0x152aa(%rip), %rsi     # 0x1e2e8
callq 0x2200
movl $0x0, -0x10(%rbp)
movq -0x78(%rbp), %rdi
movl -0x10(%rbp), %eax
movl %eax, -0x84(%rbp)
movl -0xc(%rbp), %esi
addl $0x1, %esi
callq 0x8c30
movl %eax, %ecx
movl -0x84(%rbp), %eax
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x90ba
movq -0x78(%rbp), %rdi
movslq -0xc(%rbp), %rsi
callq 0x9d60
movq %rax, %rdi
movslq -0x10(%rbp), %rsi
callq 0x9dc0
movq %rax, %rdi
callq 0x5860
movl %eax, %esi
movq 0x21f35(%rip), %rdi     # 0x2afd0
callq 0x2350
movq %rax, %rdi
leaq 0x1523b(%rip), %rsi     # 0x1e2e5
callq 0x2200
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x904a
movq -0x78(%rbp), %rdi
movl -0xc(%rbp), %esi
addl $0x1, %esi
callq 0x8c30
cmpl $0x0, %eax
jle 0x922c
cmpl $0x1, -0xc(%rbp)
jne 0x917b
movq 0x21eed(%rip), %rdi     # 0x2afd0
leaq 0x15210(%rip), %rsi     # 0x1e2fa
callq 0x2200
movq -0x78(%rbp), %rdi
movq %rax, -0xa0(%rbp)
movslq -0xc(%rbp), %rsi
callq 0x9d60
movq %rax, %rdi
movslq -0x10(%rbp), %rsi
callq 0x9dc0
movq %rax, %rsi
leaq -0x40(%rbp), %rdi
movq %rdi, -0x98(%rbp)
callq 0x5830
movq -0xa0(%rbp), %rdi
movq -0x98(%rbp), %rsi
callq 0x21d0
movq %rax, -0x90(%rbp)
jmp 0x913e
movq -0x90(%rbp), %rdi
leaq 0x15425(%rip), %rsi     # 0x1e571
callq 0x2200
jmp 0x9153
leaq -0x40(%rbp), %rdi
callq 0x2130
jmp 0x9217
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x2130
jmp 0x953d
movq 0x21e4e(%rip), %rdi     # 0x2afd0
leaq 0x15171(%rip), %rsi     # 0x1e2fa
callq 0x2200
movq -0x78(%rbp), %rdi
movq %rax, -0xb8(%rbp)
movslq -0xc(%rbp), %rsi
callq 0x9d60
movq %rax, %rdi
movslq -0x10(%rbp), %rsi
callq 0x9dc0
movq %rax, %rsi
leaq -0x70(%rbp), %rdi
movq %rdi, -0xb0(%rbp)
callq 0x5830
movq -0xb8(%rbp), %rdi
movq -0xb0(%rbp), %rsi
callq 0x21d0
movq %rax, -0xa8(%rbp)
jmp 0x91dd
movq -0xa8(%rbp), %rdi
leaq 0x15387(%rip), %rsi     # 0x1e572
callq 0x2200
jmp 0x91f2
leaq -0x70(%rbp), %rdi
callq 0x2130
jmp 0x9217
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x2130
jmp 0x953d
movq 0x21db2(%rip), %rdi     # 0x2afd0
leaq 0x150bc(%rip), %rsi     # 0x1e2e1
callq 0x2200
jmp 0x923f
movq 0x21d9d(%rip), %rdi     # 0x2afd0
leaq 0x150ae(%rip), %rsi     # 0x1e2e8
callq 0x2200
jmp 0x9241
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x9024
movq 0x21d7a(%rip), %rdi     # 0x2afd0
movq 0x21d63(%rip), %rsi     # 0x2afc0
callq 0x2240
movl -0x18(%rbp), %eax
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jge 0x9377
movq 0x21d55(%rip), %rdi     # 0x2afd0
leaq 0x15066(%rip), %rsi     # 0x1e2e8
callq 0x2200
movl $0x0, -0x10(%rbp)
movq -0x78(%rbp), %rdi
movl -0x10(%rbp), %eax
movl %eax, -0xbc(%rbp)
movl -0xc(%rbp), %esi
addl $0x1, %esi
callq 0x8c30
movl %eax, %ecx
movl -0xbc(%rbp), %eax
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x92d3
movq 0x21d14(%rip), %rdi     # 0x2afd0
leaq 0x15027(%rip), %rsi     # 0x1e2ea
callq 0x2200
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x928e
movq -0x78(%rbp), %rdi
movl -0xc(%rbp), %esi
addl $0x1, %esi
callq 0x8c30
cmpl $0x0, %eax
jle 0x9354
movq 0x21ce2(%rip), %rdi     # 0x2afd0
leaq 0x15009(%rip), %rsi     # 0x1e2fe
callq 0x2200
movq -0x78(%rbp), %rdi
movq %rax, -0xc8(%rbp)
movslq -0xc(%rbp), %rsi
callq 0x9d60
movq %rax, %rdi
movslq -0x10(%rbp), %rsi
callq 0x9dc0
movq %rax, %rdi
callq 0x5860
movq -0xc8(%rbp), %rdi
movl %eax, %esi
callq 0x2350
movq %rax, %rdi
leaq 0x14fca(%rip), %rsi     # 0x1e304
callq 0x2200
movq 0x21c8a(%rip), %rdi     # 0x2afd0
leaq 0x14f94(%rip), %rsi     # 0x1e2e1
callq 0x2200
jmp 0x9367
movq 0x21c75(%rip), %rdi     # 0x2afd0
leaq 0x14f86(%rip), %rsi     # 0x1e2e8
callq 0x2200
jmp 0x9369
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x9268
movq 0x21c52(%rip), %rdi     # 0x2afd0
movq 0x21c3b(%rip), %rsi     # 0x2afc0
callq 0x2240
movl -0x18(%rbp), %eax
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jge 0x9445
movq 0x21c2d(%rip), %rdi     # 0x2afd0
leaq 0x14f3d(%rip), %rsi     # 0x1e2e7
callq 0x2200
movl $0x0, -0x10(%rbp)
movq -0x78(%rbp), %rdi
movl -0x10(%rbp), %eax
movl %eax, -0xcc(%rbp)
movl -0xc(%rbp), %esi
addl $0x1, %esi
callq 0x8c30
movl %eax, %ecx
movl -0xcc(%rbp), %eax
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x93fb
movq 0x21bec(%rip), %rdi     # 0x2afd0
leaq 0x14eff(%rip), %rsi     # 0x1e2ea
callq 0x2200
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x93b6
movq -0x78(%rbp), %rdi
movl -0xc(%rbp), %esi
addl $0x1, %esi
callq 0x8c30
cmpl $0x0, %eax
jle 0x9435
movq 0x21bba(%rip), %rdi     # 0x2afd0
leaq 0x14ed3(%rip), %rsi     # 0x1e2f0
callq 0x2200
movq 0x21ba7(%rip), %rdi     # 0x2afd0
leaq 0x14eb0(%rip), %rsi     # 0x1e2e0
callq 0x2200
jmp 0x9437
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x9390
movq 0x21b84(%rip), %rdi     # 0x2afd0
movq 0x21b6d(%rip), %rsi     # 0x2afc0
callq 0x2240
movl -0x18(%rbp), %eax
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jge 0x9513
movq 0x21b5f(%rip), %rdi     # 0x2afd0
leaq 0x14e6f(%rip), %rsi     # 0x1e2e7
callq 0x2200
movl $0x0, -0x10(%rbp)
movq -0x78(%rbp), %rdi
movl -0x10(%rbp), %eax
movl %eax, -0xd0(%rbp)
movl -0xc(%rbp), %esi
addl $0x1, %esi
callq 0x8c30
movl %eax, %ecx
movl -0xd0(%rbp), %eax
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x94c9
movq 0x21b1e(%rip), %rdi     # 0x2afd0
leaq 0x14e17(%rip), %rsi     # 0x1e2d0
callq 0x2200
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x9484
movq -0x78(%rbp), %rdi
movl -0xc(%rbp), %esi
addl $0x1, %esi
callq 0x8c30
cmpl $0x0, %eax
jle 0x9503
movq 0x21aec(%rip), %rdi     # 0x2afd0
leaq 0x14deb(%rip), %rsi     # 0x1e2d6
callq 0x2200
movq 0x21ad9(%rip), %rdi     # 0x2afd0
leaq 0x14de0(%rip), %rsi     # 0x1e2de
callq 0x2200
jmp 0x9505
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x945e
movq 0x21ab6(%rip), %rdi     # 0x2afd0
movq 0x21a9f(%rip), %rsi     # 0x2afc0
callq 0x2240
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x8e60
addq $0xd0, %rsp
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x2360
nopw %cs:(%rax,%rax)