// File: moloch--[P]cli-Blackjack/./Blackjack/Deck.cpp
// Function: Deck::Deck()
Deck::Deck()
{
	srand(time(NULL)); // Seed random number generator
    suits.push_back("hearts"); // Valid suits
    suits.push_back("clubs");
    suits.push_back("diamonds");
    suits.push_back("spades");
    faceCards.push_back("J"); // Valid non-numeric ranks
    faceCards.push_back("Q");
    faceCards.push_back("K");
    faceCards.push_back("A"); // The exact value of this card is dealt with in the hand
}

// Assembly:
subq $0x1f8, %rsp            # imm = 0x1F8
movq %rdi, 0x1f0(%rsp)
movq 0x1f0(%rsp), %rdi
movq %rdi, 0x88(%rsp)
leaq 0x5002(%rip), %rax      # 0xdd88
movq %rax, (%rdi)
addq $0x10, %rdi
movq %rdi, 0x70(%rsp)
callq 0x4330
movq 0x88(%rsp), %rdi
addq $0x28, %rdi
movq %rdi, 0x78(%rsp)
movq %rdi, %rax
movq %rax, 0x80(%rsp)
callq 0x4330
movq 0x88(%rsp), %rdi
addq $0x40, %rdi
movq %rdi, 0x90(%rsp)
callq 0x7650
xorl %eax, %eax
movl %eax, %edi
callq 0x2190
movl %eax, %edi
callq 0x21a0
leaq 0x1cf(%rsp), %rdi
movq %rdi, 0x98(%rsp)
callq 0x2300
movq 0x98(%rsp), %rdx
leaq 0x12f5(%rip), %rsi      # 0xa0fa
leaq 0x1d0(%rsp), %rdi
callq 0x4370
jmp 0x8e14
movq 0x78(%rsp), %rdi
leaq 0x1d0(%rsp), %rsi
callq 0x4340
jmp 0x8e28
leaq 0x1d0(%rsp), %rdi
callq 0x2110
leaq 0x1cf(%rsp), %rdi
callq 0x2210
movq 0x88(%rsp), %rax
addq $0x28, %rax
movq %rax, 0x60(%rsp)
leaq 0x197(%rsp), %rdi
movq %rdi, 0x68(%rsp)
callq 0x2300
movq 0x68(%rsp), %rdx
leaq 0x1283(%rip), %rsi      # 0xa0f4
leaq 0x198(%rsp), %rdi
callq 0x4370
jmp 0x8e80
movq 0x60(%rsp), %rdi
leaq 0x198(%rsp), %rsi
callq 0x4340
jmp 0x8e94
leaq 0x198(%rsp), %rdi
callq 0x2110
leaq 0x197(%rsp), %rdi
callq 0x2210
movq 0x88(%rsp), %rax
addq $0x28, %rax
movq %rax, 0x50(%rsp)
leaq 0x16f(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0x2300
movq 0x58(%rsp), %rdx
leaq 0x1224(%rip), %rsi      # 0xa101
leaq 0x170(%rsp), %rdi
callq 0x4370
jmp 0x8eec
movq 0x50(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x4340
jmp 0x8f00
leaq 0x170(%rsp), %rdi
callq 0x2110
leaq 0x16f(%rsp), %rdi
callq 0x2210
movq 0x88(%rsp), %rax
addq $0x28, %rax
movq %rax, 0x40(%rsp)
leaq 0x147(%rsp), %rdi
movq %rdi, 0x48(%rsp)
callq 0x2300
movq 0x48(%rsp), %rdx
leaq 0x11c1(%rip), %rsi      # 0xa10a
leaq 0x148(%rsp), %rdi
callq 0x4370
jmp 0x8f58
movq 0x40(%rsp), %rdi
leaq 0x148(%rsp), %rsi
callq 0x4340
jmp 0x8f6c
leaq 0x148(%rsp), %rdi
callq 0x2110
leaq 0x147(%rsp), %rdi
callq 0x2210
movq 0x88(%rsp), %rax
addq $0x10, %rax
movq %rax, 0x30(%rsp)
leaq 0x11f(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x2300
movq 0x38(%rsp), %rdx
leaq 0x13b7(%rip), %rsi      # 0xa36c
leaq 0x120(%rsp), %rdi
callq 0x4370
jmp 0x8fc4
movq 0x30(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0x4340
jmp 0x8fd8
leaq 0x120(%rsp), %rdi
callq 0x2110
leaq 0x11f(%rsp), %rdi
callq 0x2210
movq 0x88(%rsp), %rax
addq $0x10, %rax
movq %rax, 0x20(%rsp)
leaq 0xf7(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x2300
movq 0x28(%rsp), %rdx
leaq 0x134d(%rip), %rsi      # 0xa36e
leaq 0xf8(%rsp), %rdi
callq 0x4370
jmp 0x9030
movq 0x20(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x4340
jmp 0x9044
leaq 0xf8(%rsp), %rdi
callq 0x2110
leaq 0xf7(%rsp), %rdi
callq 0x2210
movq 0x88(%rsp), %rax
addq $0x10, %rax
movq %rax, 0x10(%rsp)
leaq 0xcf(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x2300
movq 0x18(%rsp), %rdx
leaq 0x12e3(%rip), %rsi      # 0xa370
leaq 0xd0(%rsp), %rdi
callq 0x4370
jmp 0x909c
movq 0x10(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x4340
jmp 0x90b0
leaq 0xd0(%rsp), %rdi
callq 0x2110
leaq 0xcf(%rsp), %rdi
callq 0x2210
movq 0x88(%rsp), %rax
addq $0x10, %rax
movq %rax, (%rsp)
leaq 0xa7(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x2300
movq 0x8(%rsp), %rdx
leaq 0x11f9(%rip), %rsi      # 0xa2f1
leaq 0xa8(%rsp), %rdi
callq 0x4370
jmp 0x9107
movq (%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x4340
jmp 0x911a
leaq 0xa8(%rsp), %rdi
callq 0x2110
leaq 0xa7(%rsp), %rdi
callq 0x2210
addq $0x1f8, %rsp            # imm = 0x1F8
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x9173
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
leaq 0x1d0(%rsp), %rdi
callq 0x2110
leaq 0x1cf(%rsp), %rdi
callq 0x2210
jmp 0x937c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x91bc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
leaq 0x198(%rsp), %rdi
callq 0x2110
leaq 0x197(%rsp), %rdi
callq 0x2210
jmp 0x937c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x9205
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
leaq 0x170(%rsp), %rdi
callq 0x2110
leaq 0x16f(%rsp), %rdi
callq 0x2210
jmp 0x937c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x924e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
leaq 0x148(%rsp), %rdi
callq 0x2110
leaq 0x147(%rsp), %rdi
callq 0x2210
jmp 0x937c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x9297
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
leaq 0x120(%rsp), %rdi
callq 0x2110
leaq 0x11f(%rsp), %rdi
callq 0x2210
jmp 0x937c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x92e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
leaq 0xf8(%rsp), %rdi
callq 0x2110
leaq 0xf7(%rsp), %rdi
callq 0x2210
jmp 0x937c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x9329
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
leaq 0xd0(%rsp), %rdi
callq 0x2110
leaq 0xcf(%rsp), %rdi
callq 0x2210
jmp 0x937c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
jmp 0x936f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c0(%rsp)
movl %eax, 0x1bc(%rsp)
leaq 0xa8(%rsp), %rdi
callq 0x2110
leaq 0xa7(%rsp), %rdi
callq 0x2210
movq 0x90(%rsp), %rdi
callq 0x7660
movq 0x80(%rsp), %rdi
callq 0x4430
movq 0x70(%rsp), %rdi
callq 0x4430
movq 0x1c0(%rsp), %rdi
callq 0x22f0
nopl (%rax)