// File: /workspace/github_cpp_makefile_star2_O2/chrischute[P]are-you-the-one/src/ayto.cpp
// Function: AreYouTheOneSettings::initializeFromArgs(int, char**)
bool AreYouTheOneSettings::initializeFromArgs(int argc, char** argv) {
    for (int i = 1; i < argc; ++i) {
        if (strncmp(argv[i], "-a", 3) == 0) {
            this->_isAllPermutationsMode = true;
        } else if (strncmp(argv[i], "-f", 3) == 0) {
            this->_isReadFromFileMode = true;
            if (++i == argc) {
                return false;
            }
            this->_fileToRead = argv[i];
        } else if (strncmp(argv[i], "-i", 3) == 0) {
            this->_isInteractiveMode = true;
        } else if (strncmp(argv[i], "-v", 3) == 0) {
            this->_isVerboseMode = true;
        } else if (strncmp(argv[i], "-n", 3) == 0) {
            this->_isPrintNumbersMode = true;
        } else {
            return false;
        }
    }

    // Dictionaries for printing to the console. Males map char -> name
    // because the PerfectMatching string is a permutation of their names.
    if (!this->_isPrintNumbersMode) {
        this->_femaleNames = new map<int, string>{
                {0, "Alyssa"},
                {1, "Camille"},
                {2, "Emma"},
                {3, "Francesca"},
                {4, "Julia"},
                {5, "Kaylen"},
                {6, "Mikala"},
                {7, "Nicole"},
                {8, "Tori"},
                {9, "Victoria"}
        };

        this->_maleNames = new map<char, string>{
                {'0', "Asaf"},
                {'1', "Cam"},
                {'2', "Cameron"},
                {'3', "Giovanni"},
                {'4', "John"},
                {'5', "Morgan"},
                {'6', "Prosper"},
                {'7', "Sam"},
                {'8', "Stephen"},
                {'9', "Tyler"}
        };
    }

    return true;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1c8, %rsp            # imm = 0x1C8
movq %rdx, %rbx
movl %esi, %ebp
movq %rdi, %r14
pushq $0x1
popq %r13
cmpl %ebp, %r13d
jge 0x2862
movslq %r13d, %rax
movq (%rbx,%rax,8), %rax
cmpb $0x2d, (%rax)
jne 0x2b72
cmpb $0x61, 0x1(%rax)
jne 0x27e2
cmpb $0x0, 0x2(%rax)
je 0x2821
cmpb $0x66, 0x1(%rax)
jne 0x27ee
cmpb $0x0, 0x2(%rax)
je 0x2828
cmpb $0x69, 0x1(%rax)
jne 0x27fa
cmpb $0x0, 0x2(%rax)
je 0x284e
cmpb $0x76, 0x1(%rax)
jne 0x2806
cmpb $0x0, 0x2(%rax)
je 0x2855
cmpb $0x6e, 0x1(%rax)
jne 0x2b72
cmpb $0x0, 0x2(%rax)
jne 0x2b72
movb $0x1, 0x22(%r14)
jmp 0x285a
movb $0x1, 0x20(%r14)
jmp 0x285a
movb $0x1, 0x23(%r14)
leal 0x1(%r13), %r15d
cmpl %ebp, %r15d
je 0x2b72
movslq %r15d, %rax
movq (%rbx,%rax,8), %rsi
movq %r14, %rdi
callq 0x23a0
movl %r15d, %r13d
jmp 0x285a
movb $0x1, 0x21(%r14)
jmp 0x285a
movb $0x1, 0x24(%r14)
incl %r13d
jmp 0x27bd
cmpb $0x0, 0x22(%r14)
jne 0x2b72
pushq $0x30
popq %rdi
callq 0x2250
movq %rax, %rbx
leaq 0x34(%rsp), %rsi
andl $0x0, (%rsi)
leaq 0x48d2(%rip), %rdx      # 0x7159
leaq 0x38(%rsp), %r15
movq %r15, %rdi
callq 0x40c4
leaq 0x60(%rsp), %r12
leaq 0x30(%rsp), %rsi
movl $0x1, (%rsi)
leaq 0x48b5(%rip), %rdx      # 0x7160
movq %r12, %rdi
callq 0x40e0
leaq 0x88(%rsp), %r12
leaq 0x2c(%rsp), %rsi
movl $0x2, (%rsi)
leaq 0x489b(%rip), %rdx      # 0x7168
movq %r12, %rdi
callq 0x40fc
leaq 0xb0(%rsp), %r12
leaq 0x28(%rsp), %rsi
movl $0x3, (%rsi)
leaq 0x487e(%rip), %rdx      # 0x716d
movq %r12, %rdi
callq 0x4118
leaq 0xd8(%rsp), %r12
leaq 0x24(%rsp), %rsi
movl $0x4, (%rsi)
leaq 0x4866(%rip), %rdx      # 0x7177
movq %r12, %rdi
callq 0x4134
leaq 0x100(%rsp), %r12
leaq 0x20(%rsp), %rsi
movl $0x5, (%rsi)
leaq 0x484a(%rip), %rdx      # 0x717d
movq %r12, %rdi
callq 0x40c4
leaq 0x128(%rsp), %r12
leaq 0x1c(%rsp), %rsi
movl $0x6, (%rsi)
leaq 0x482f(%rip), %rdx      # 0x7184
movq %r12, %rdi
callq 0x40c4
leaq 0x150(%rsp), %r12
leaq 0x18(%rsp), %rsi
movl $0x7, (%rsi)
leaq 0x4814(%rip), %rdx      # 0x718b
movq %r12, %rdi
callq 0x40c4
leaq 0x178(%rsp), %r12
leaq 0x14(%rsp), %rsi
movl $0x8, (%rsi)
leaq 0x47f9(%rip), %rdx      # 0x7192
movq %r12, %rdi
callq 0x40fc
leaq 0x1a0(%rsp), %r12
leaq 0x10(%rsp), %rsi
movl $0x9, (%rsi)
leaq 0x47dc(%rip), %rdx      # 0x7197
movq %r12, %rdi
callq 0x4150
leaq 0x38(%rsp), %rsi
pushq $0xa
popq %rdx
leaq 0xf(%rsp), %rcx
leaq 0xe(%rsp), %r8
movq %rbx, %rdi
callq 0x416c
movq %rbx, 0x28(%r14)
movl $0x170, %ebx            # imm = 0x170
leaq (%rsp,%rbx), %rdi
addq $0x38, %rdi
callq 0x20e0
addq $-0x28, %rbx
cmpq $-0x20, %rbx
jne 0x29e6
pushq $0x30
popq %rdi
callq 0x2250
movq %rax, %rbx
leaq 0x34(%rsp), %rsi
movb $0x30, (%rsi)
leaq 0x4789(%rip), %rdx      # 0x71a0
leaq 0x38(%rsp), %r15
movq %r15, %rdi
callq 0x41b4
leaq 0x60(%rsp), %r12
leaq 0x30(%rsp), %rsi
movb $0x31, (%rsi)
leaq 0x476d(%rip), %rdx      # 0x71a5
movq %r12, %rdi
callq 0x41d0
leaq 0x88(%rsp), %r12
leaq 0x2c(%rsp), %rsi
movb $0x32, (%rsi)
leaq 0x4752(%rip), %rdx      # 0x71a9
movq %r12, %rdi
callq 0x41ec
leaq 0xb0(%rsp), %r12
leaq 0x28(%rsp), %rsi
movb $0x33, (%rsi)
leaq 0x473b(%rip), %rdx      # 0x71b1
movq %r12, %rdi
callq 0x4208
leaq 0xd8(%rsp), %r12
leaq 0x24(%rsp), %rsi
movb $0x34, (%rsi)
leaq 0x4725(%rip), %rdx      # 0x71ba
movq %r12, %rdi
callq 0x41b4
leaq 0x100(%rsp), %r12
leaq 0x20(%rsp), %rsi
movb $0x35, (%rsi)
leaq 0x470b(%rip), %rdx      # 0x71bf
movq %r12, %rdi
callq 0x4224
leaq 0x128(%rsp), %r12
leaq 0x1c(%rsp), %rsi
movb $0x36, (%rsi)
leaq 0x46f3(%rip), %rdx      # 0x71c6
movq %r12, %rdi
callq 0x41ec
leaq 0x150(%rsp), %r12
leaq 0x18(%rsp), %rsi
movb $0x37, (%rsi)
leaq 0x46dc(%rip), %rdx      # 0x71ce
movq %r12, %rdi
callq 0x41d0
leaq 0x178(%rsp), %r12
leaq 0x14(%rsp), %rsi
movb $0x38, (%rsi)
leaq 0x46c1(%rip), %rdx      # 0x71d2
movq %r12, %rdi
callq 0x41ec
leaq 0x1a0(%rsp), %r12
leaq 0x10(%rsp), %rsi
movb $0x39, (%rsi)
leaq 0x46aa(%rip), %rdx      # 0x71da
movq %r12, %rdi
callq 0x4240
leaq 0x38(%rsp), %rsi
pushq $0xa
popq %rdx
leaq 0xf(%rsp), %rcx
leaq 0xe(%rsp), %r8
movq %rbx, %rdi
callq 0x425c
movq %rbx, 0x30(%r14)
movl $0x170, %ebx            # imm = 0x170
leaq (%rsp,%rbx), %rdi
addq $0x38, %rdi
callq 0x20e0
addq $-0x28, %rbx
cmpq $-0x20, %rbx
jne 0x2b5b
cmpl %ebp, %r13d
setge %al
addq $0x1c8, %rsp            # imm = 0x1C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
movl $0x170, %r13d           # imm = 0x170
leaq (%rsp,%r13), %rdi
addq $0x38, %rdi
callq 0x20e0
addq $-0x28, %r13
cmpq $-0x20, %r13
jne 0x2b93
movb $0x1, %al
jmp 0x2bc3
jmp 0x2bbe
jmp 0x2bbe
jmp 0x2bbe
jmp 0x2bbe
jmp 0x2bbe
jmp 0x2bbe
jmp 0x2bbe
jmp 0x2bbe
movq %rax, %r14
xorl %eax, %eax
cmpq %r12, %r15
sete %cl
testb %al, %al
jne 0x2c5b
testb %cl, %cl
jne 0x2c5b
leaq -0x28(%r12), %r13
addq $-0x20, %r12
movq %r12, %rdi
callq 0x20e0
movq %r13, %r12
cmpq %r15, %r13
jne 0x2bd9
jmp 0x2c5b
jmp 0x2c58
movq %rax, %r14
movl $0x170, %r13d           # imm = 0x170
leaq (%rsp,%r13), %rdi
addq $0x38, %rdi
callq 0x20e0
addq $-0x28, %r13
cmpq $-0x20, %r13
jne 0x2bff
movb $0x1, %al
jmp 0x2c2f
jmp 0x2c2a
jmp 0x2c2a
jmp 0x2c2a
jmp 0x2c2a
jmp 0x2c2a
jmp 0x2c2a
jmp 0x2c2a
jmp 0x2c2a
movq %rax, %r14
xorl %eax, %eax
cmpq %r12, %r15
sete %cl
testb %al, %al
jne 0x2c5b
testb %cl, %cl
jne 0x2c5b
leaq -0x28(%r12), %r13
addq $-0x20, %r12
movq %r12, %rdi
callq 0x20e0
movq %r13, %r12
cmpq %r15, %r13
jne 0x2c3d
jmp 0x2c5b
movq %rax, %r14
pushq $0x30
popq %rsi
movq %rbx, %rdi
callq 0x2260
movq %r14, %rdi
callq 0x2380