// File: /workspace/github_cpp_makefile_star2_O1/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 $0x1a8, %rsp            # imm = 0x1A8
movq %rdi, 0x10(%rsp)
cmpl $0x2, %esi
setl %bpl
jl 0x2b72
movq %rdx, %rbx
movl %esi, %r15d
movl $0x1, %r14d
leaq 0x46ef(%rip), %r12      # 0x7159
movslq %r14d, %rax
movq (%rbx,%rax,8), %r13
movl $0x3, %edx
movq %r13, %rdi
movq %r12, %rsi
callq 0x2100
testl %eax, %eax
je 0x2afc
movl $0x3, %edx
movq %r13, %rdi
leaq 0x46c8(%rip), %rsi      # 0x715c
callq 0x2100
testl %eax, %eax
je 0x2b07
movl $0x3, %edx
movq %r13, %rdi
leaq 0x46b3(%rip), %rsi      # 0x715f
callq 0x2100
testl %eax, %eax
je 0x2b4e
movl $0x3, %edx
movq %r13, %rdi
leaq 0x469a(%rip), %rsi      # 0x7162
callq 0x2100
testl %eax, %eax
je 0x2b59
movl $0x3, %edx
movq %r13, %rdi
leaq 0x4681(%rip), %rsi      # 0x7165
callq 0x2100
testl %eax, %eax
movq 0x10(%rsp), %rax
jne 0x3026
movb $0x1, 0x22(%rax)
jmp 0x2b45
movq 0x10(%rsp), %rax
movb $0x1, 0x20(%rax)
jmp 0x2b62
movq 0x10(%rsp), %r12
movb $0x1, 0x23(%r12)
incl %r14d
cmpl %r15d, %r14d
je 0x3026
movslq %r14d, %rax
movq (%rbx,%rax,8), %r13
movq 0x8(%r12), %rbp
movq %r13, %rdi
callq 0x20e0
movq %r12, %rdi
xorl %esi, %esi
movq %rbp, %rdx
movq %r13, %rcx
movq %rax, %r8
callq 0x2300
leaq 0x460d(%rip), %r12      # 0x7159
jmp 0x2b62
movq 0x10(%rsp), %rax
movb $0x1, 0x21(%rax)
jmp 0x2b62
movq 0x10(%rsp), %rax
movb $0x1, 0x24(%rax)
incl %r14d
cmpl %r15d, %r14d
setge %bpl
jl 0x2a6a
movq 0x10(%rsp), %rax
cmpb $0x0, 0x22(%rax)
jne 0x300e
movl $0x30, %edi
callq 0x2240
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
movl $0x0, -0x8(%rdi)
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x45be(%rip), %rsi      # 0x7168
leaq 0x45bd(%rip), %rdx      # 0x716e
callq 0x5320
leaq 0x40(%rsp), %r12
movl $0x1, (%r12)
leaq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x4597(%rip), %rsi      # 0x716f
leaq 0x4597(%rip), %rdx      # 0x7176
callq 0x5320
leaq 0x68(%rsp), %r12
movl $0x2, (%r12)
leaq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x456e(%rip), %rsi      # 0x7177
leaq 0x456b(%rip), %rdx      # 0x717b
callq 0x5320
leaq 0x90(%rsp), %r12
movl $0x3, (%r12)
leaq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x453c(%rip), %rsi      # 0x717c
leaq 0x453e(%rip), %rdx      # 0x7185
callq 0x5320
leaq 0xb8(%rsp), %r12
movl $0x4, (%r12)
leaq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x450f(%rip), %rsi      # 0x7186
leaq 0x450d(%rip), %rdx      # 0x718b
callq 0x5320
leaq 0xe0(%rsp), %r12
movl $0x5, (%r12)
leaq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x44de(%rip), %rsi      # 0x718c
leaq 0x44dd(%rip), %rdx      # 0x7192
callq 0x5320
leaq 0x108(%rsp), %r12
movl $0x6, (%r12)
leaq 0x110(%rsp), %rdi
leaq 0x120(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x44ae(%rip), %rsi      # 0x7193
leaq 0x44ad(%rip), %rdx      # 0x7199
callq 0x5320
leaq 0x130(%rsp), %r12
movl $0x7, (%r12)
leaq 0x138(%rsp), %rdi
leaq 0x148(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x447e(%rip), %rsi      # 0x719a
leaq 0x447d(%rip), %rdx      # 0x71a0
callq 0x5320
leaq 0x158(%rsp), %r12
movl $0x8, (%r12)
leaq 0x160(%rsp), %rdi
leaq 0x170(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x444e(%rip), %rsi      # 0x71a1
leaq 0x444b(%rip), %rdx      # 0x71a5
callq 0x5320
leaq 0x180(%rsp), %r12
movl $0x9, (%r12)
leaq 0x188(%rsp), %rdi
leaq 0x198(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x441c(%rip), %rsi      # 0x71a6
leaq 0x441d(%rip), %rdx      # 0x71ae
callq 0x5320
leaq 0x18(%rsp), %rsi
leaq 0xf(%rsp), %rcx
leaq 0xe(%rsp), %r8
movl $0xa, %edx
movq %rbx, %rdi
callq 0x4dec
movq 0x10(%rsp), %rax
movq %rbx, 0x28(%rax)
movq $-0x190, %rbx           # imm = 0xFE70
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x2dd6
movq (%r14), %rsi
incq %rsi
callq 0x2250
addq $-0x28, %r14
addq $0x28, %rbx
jne 0x2dc2
movl $0x30, %edi
callq 0x2240
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
movb $0x30, -0x8(%rdi)
movq %r15, (%rdi)
leaq 0x43af(%rip), %rsi      # 0x71af
leaq 0x43ac(%rip), %rdx      # 0x71b3
callq 0x5320
leaq 0x40(%rsp), %r12
movb $0x31, (%r12)
leaq 0x48(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x438f(%rip), %rsi      # 0x71b4
leaq 0x438b(%rip), %rdx      # 0x71b7
callq 0x5320
leaq 0x80(%rsp), %rax
leaq 0xa8(%rsp), %r14
leaq 0xd0(%rsp), %r15
leaq 0x68(%rsp), %r12
movb $0x32, (%r12)
leaq 0x70(%rsp), %rdi
movq %rax, (%rdi)
leaq 0x4356(%rip), %rsi      # 0x71b8
leaq 0x4356(%rip), %rdx      # 0x71bf
callq 0x5320
leaq 0x90(%rsp), %r12
movb $0x33, (%r12)
leaq 0x98(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x4333(%rip), %rsi      # 0x71c0
leaq 0x4334(%rip), %rdx      # 0x71c8
callq 0x5320
leaq 0xb8(%rsp), %r12
movb $0x34, (%r12)
leaq 0xc0(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x4311(%rip), %rsi      # 0x71c9
leaq 0x430e(%rip), %rdx      # 0x71cd
callq 0x5320
leaq 0xe0(%rsp), %r12
movb $0x35, (%r12)
leaq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
movq %rax, (%rdi)
leaq 0x42e3(%rip), %rsi      # 0x71ce
leaq 0x42e2(%rip), %rdx      # 0x71d4
callq 0x5320
leaq 0x120(%rsp), %rax
leaq 0x108(%rsp), %r12
movb $0x36, (%r12)
leaq 0x110(%rsp), %rdi
movq %rax, (%rdi)
leaq 0x42b7(%rip), %rsi      # 0x71d5
leaq 0x42b7(%rip), %rdx      # 0x71dc
callq 0x5320
leaq 0x130(%rsp), %r12
movb $0x37, (%r12)
leaq 0x138(%rsp), %rdi
leaq 0x148(%rsp), %rax
movq %rax, (%rdi)
leaq 0x428c(%rip), %rsi      # 0x71dd
leaq 0x4288(%rip), %rdx      # 0x71e0
callq 0x5320
leaq 0x158(%rsp), %r12
movb $0x38, (%r12)
leaq 0x160(%rsp), %rdi
leaq 0x170(%rsp), %rax
movq %rax, (%rdi)
leaq 0x425d(%rip), %rsi      # 0x71e1
leaq 0x425d(%rip), %rdx      # 0x71e8
callq 0x5320
leaq 0x180(%rsp), %r12
movb $0x39, (%r12)
leaq 0x188(%rsp), %rdi
leaq 0x198(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x4231(%rip), %rsi      # 0x71e9
leaq 0x422f(%rip), %rdx      # 0x71ee
callq 0x5320
leaq 0x18(%rsp), %rsi
leaq 0xf(%rsp), %rcx
leaq 0xe(%rsp), %r8
movl $0xa, %edx
movq %rbx, %rdi
callq 0x4e70
movq 0x10(%rsp), %rax
movq %rbx, 0x30(%rax)
movq $-0x190, %rbx           # imm = 0xFE70
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x3004
movq (%r14), %rsi
incq %rsi
callq 0x2250
addq $-0x28, %r14
addq $0x28, %rbx
jne 0x2ff0
andb $0x1, %bpl
movl %ebp, %eax
addq $0x1a8, %rsp            # imm = 0x1A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
testb $0x1, %bpl
jne 0x2b72
jmp 0x300e
movq %rax, %r14
leaq 0x1a8(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x23da
movb $0x1, %al
jmp 0x3060
jmp 0x305b
jmp 0x305b
jmp 0x305b
jmp 0x305b
jmp 0x305b
jmp 0x305b
jmp 0x305b
jmp 0x305b
movq %rax, %r14
xorl %eax, %eax
leaq 0x18(%rsp), %rcx
cmpq %r12, %rcx
sete %cl
orb %al, %cl
jne 0x3119
addq $-0x10, %r12
leaq 0x18(%rsp), %r15
movq -0x10(%r12), %rdi
cmpq %rdi, %r12
je 0x3092
movq (%r12), %rsi
incq %rsi
callq 0x2250
leaq -0x28(%r12), %rax
addq $-0x18, %r12
cmpq %r15, %r12
movq %rax, %r12
jne 0x307c
jmp 0x3119
movq %rax, %r14
xorl %eax, %eax
leaq 0x18(%rsp), %r12
jmp 0x3060
movq %rax, %r14
leaq 0x1a8(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x23a0
movb $0x1, %al
jmp 0x30df
jmp 0x30da
jmp 0x30da
jmp 0x30da
jmp 0x30da
jmp 0x30da
jmp 0x30da
jmp 0x30da
jmp 0x30da
movq %rax, %r14
xorl %eax, %eax
leaq 0x18(%rsp), %r15
cmpq %r12, %r15
sete %cl
orb %al, %cl
jne 0x3119
addq $-0x10, %r12
movq -0x10(%r12), %rdi
cmpq %rdi, %r12
je 0x3108
movq (%r12), %rsi
incq %rsi
callq 0x2250
leaq -0x28(%r12), %rax
addq $-0x18, %r12
cmpq %r15, %r12
movq %rax, %r12
jne 0x30f2
movl $0x30, %esi
movq %rbx, %rdi
callq 0x2250
movq %r14, %rdi
callq 0x2370
movq %rax, %r14
leaq 0x18(%rsp), %r12
jmp 0x30dd