// File: /workspace/github_cpp_makefile_star2_O3/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 $0x198, %rsp            # imm = 0x198
movq %rdi, %r14
cmpl $0x2, %esi
jl 0x2aff
movq %rdx, %rbx
movl %esi, %ebp
movl $0x1, %r13d
movslq %r13d, %rax
movq (%rbx,%rax,8), %rax
cmpb $0x2d, (%rax)
jne 0x2f8f
cmpb $0x61, 0x1(%rax)
jne 0x2a68
cmpb $0x0, 0x2(%rax)
je 0x2aa7
cmpb $0x66, 0x1(%rax)
jne 0x2a74
cmpb $0x0, 0x2(%rax)
je 0x2aae
cmpb $0x69, 0x1(%rax)
jne 0x2a80
cmpb $0x0, 0x2(%rax)
je 0x2ae7
cmpb $0x76, 0x1(%rax)
jne 0x2a8c
cmpb $0x0, 0x2(%rax)
je 0x2aee
cmpb $0x6e, 0x1(%rax)
jne 0x2f8f
cmpb $0x0, 0x2(%rax)
jne 0x2f8f
movb $0x1, 0x22(%r14)
jmp 0x2af3
movb $0x1, 0x20(%r14)
jmp 0x2af3
movb $0x1, 0x23(%r14)
incl %r13d
cmpl %ebp, %r13d
je 0x2f8f
movslq %r13d, %rax
movq (%rbx,%rax,8), %r15
movq 0x8(%r14), %r12
movq %r15, %rdi
callq 0x20e0
movq %r14, %rdi
xorl %esi, %esi
movq %r12, %rdx
movq %r15, %rcx
movq %rax, %r8
callq 0x22f0
jmp 0x2af3
movb $0x1, 0x21(%r14)
jmp 0x2af3
movb $0x1, 0x24(%r14)
incl %r13d
cmpl %ebp, %r13d
jl 0x2a4c
movb $0x1, %bpl
cmpb $0x0, 0x22(%r14)
jne 0x2f91
movl $0x30, %edi
callq 0x2230
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
movl $0x0, -0x8(%rdi)
leaq 0x20(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x4623(%rip), %rsi      # 0x7159
leaq 0x4622(%rip), %rdx      # 0x715f
callq 0x5256
leaq 0x30(%rsp), %r15
movl $0x1, (%r15)
leaq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x45fd(%rip), %rsi      # 0x7160
leaq 0x45fd(%rip), %rdx      # 0x7167
callq 0x5256
leaq 0x58(%rsp), %r15
movl $0x2, (%r15)
leaq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x45d8(%rip), %rsi      # 0x7168
leaq 0x45d5(%rip), %rdx      # 0x716c
callq 0x5256
leaq 0x80(%rsp), %r15
movl $0x3, (%r15)
leaq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x45a7(%rip), %rsi      # 0x716d
leaq 0x45a9(%rip), %rdx      # 0x7176
callq 0x5256
leaq 0xa8(%rsp), %r15
movl $0x4, (%r15)
leaq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x457b(%rip), %rsi      # 0x7177
leaq 0x4579(%rip), %rdx      # 0x717c
callq 0x5256
leaq 0xd0(%rsp), %r15
movl $0x5, (%r15)
leaq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x454b(%rip), %rsi      # 0x717d
leaq 0x454a(%rip), %rdx      # 0x7183
callq 0x5256
leaq 0xf8(%rsp), %r15
movl $0x6, (%r15)
leaq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x451c(%rip), %rsi      # 0x7184
leaq 0x451b(%rip), %rdx      # 0x718a
callq 0x5256
leaq 0x120(%rsp), %r15
movl $0x7, (%r15)
leaq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x44ed(%rip), %rsi      # 0x718b
leaq 0x44ec(%rip), %rdx      # 0x7191
callq 0x5256
leaq 0x148(%rsp), %r15
movl $0x8, (%r15)
leaq 0x150(%rsp), %rdi
leaq 0x160(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x44be(%rip), %rsi      # 0x7192
leaq 0x44bb(%rip), %rdx      # 0x7196
callq 0x5256
leaq 0x170(%rsp), %r15
movl $0x9, (%r15)
leaq 0x178(%rsp), %rdi
leaq 0x188(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x448c(%rip), %rsi      # 0x7197
leaq 0x448d(%rip), %rdx      # 0x719f
callq 0x5256
leaq 0x8(%rsp), %r15
leaq 0x7(%rsp), %rcx
leaq 0x6(%rsp), %r8
movl $0xa, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x4d4c
movq %rbx, 0x28(%r14)
movq $-0x190, %rbx           # imm = 0xFE70
movq -0x10(%r12), %rdi
cmpq %rdi, %r12
je 0x2d57
movq (%r12), %rsi
incq %rsi
callq 0x2240
addq $-0x28, %r12
addq $0x28, %rbx
jne 0x2d41
movl $0x30, %edi
callq 0x2230
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
movb $0x30, -0x8(%rdi)
movq %r13, (%rdi)
leaq 0x441f(%rip), %rsi      # 0x71a0
leaq 0x441c(%rip), %rdx      # 0x71a4
callq 0x5256
leaq 0x30(%rsp), %r12
movb $0x31, (%r12)
leaq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
movq %rax, (%rdi)
leaq 0x43fa(%rip), %rsi      # 0x71a5
leaq 0x43f6(%rip), %rdx      # 0x71a8
callq 0x5256
leaq 0x70(%rsp), %rax
leaq 0x98(%rsp), %r13
leaq 0x58(%rsp), %r12
movb $0x32, (%r12)
leaq 0x60(%rsp), %rdi
movq %rax, (%rdi)
leaq 0x43cc(%rip), %rsi      # 0x71a9
leaq 0x43cc(%rip), %rdx      # 0x71b0
callq 0x5256
leaq 0x80(%rsp), %r12
movb $0x33, (%r12)
leaq 0x88(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x43a9(%rip), %rsi      # 0x71b1
leaq 0x43aa(%rip), %rdx      # 0x71b9
callq 0x5256
leaq 0xa8(%rsp), %r12
movb $0x34, (%r12)
leaq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
movq %rax, (%rdi)
leaq 0x437f(%rip), %rsi      # 0x71ba
leaq 0x437c(%rip), %rdx      # 0x71be
callq 0x5256
leaq 0xe8(%rsp), %rax
leaq 0xd0(%rsp), %r12
movb $0x35, (%r12)
leaq 0xd8(%rsp), %rdi
movq %rax, (%rdi)
leaq 0x4351(%rip), %rsi      # 0x71bf
leaq 0x4350(%rip), %rdx      # 0x71c5
callq 0x5256
leaq 0xf8(%rsp), %r12
movb $0x36, (%r12)
leaq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4325(%rip), %rsi      # 0x71c6
leaq 0x4325(%rip), %rdx      # 0x71cd
callq 0x5256
leaq 0x120(%rsp), %r12
movb $0x37, (%r12)
leaq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
movq %rax, (%rdi)
leaq 0x42fa(%rip), %rsi      # 0x71ce
leaq 0x42f6(%rip), %rdx      # 0x71d1
callq 0x5256
leaq 0x148(%rsp), %r12
movb $0x38, (%r12)
leaq 0x150(%rsp), %rdi
leaq 0x160(%rsp), %rax
movq %rax, (%rdi)
leaq 0x42cb(%rip), %rsi      # 0x71d2
leaq 0x42cb(%rip), %rdx      # 0x71d9
callq 0x5256
leaq 0x170(%rsp), %r12
movb $0x39, (%r12)
leaq 0x178(%rsp), %rdi
leaq 0x188(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x429f(%rip), %rsi      # 0x71da
leaq 0x429d(%rip), %rdx      # 0x71df
callq 0x5256
leaq 0x8(%rsp), %rsi
leaq 0x7(%rsp), %rcx
leaq 0x6(%rsp), %r8
movl $0xa, %edx
movq %rbx, %rdi
callq 0x4dd0
movq %rbx, 0x30(%r14)
movq $-0x190, %rbx           # imm = 0xFE70
movq -0x10(%r13), %rdi
cmpq %rdi, %r13
je 0x2f83
movq (%r13), %rsi
incq %rsi
callq 0x2240
addq $-0x28, %r13
addq $0x28, %rbx
jne 0x2f6e
jmp 0x2f91
xorl %ebp, %ebp
movl %ebp, %eax
addq $0x198, %rsp            # imm = 0x198
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
leaq 0x198(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x23ca
jmp 0x3058
jmp 0x2fcf
jmp 0x2fcf
jmp 0x2fcf
jmp 0x2fcf
jmp 0x2fcf
jmp 0x2fcf
jmp 0x2fcf
jmp 0x2fcf
movq %rax, %r14
addq $-0x10, %r12
movq -0x10(%r12), %rdi
cmpq %rdi, %r12
je 0x2fec
movq (%r12), %rsi
incq %rsi
callq 0x2240
leaq -0x28(%r12), %rax
addq $-0x18, %r12
cmpq %r15, %r12
movq %rax, %r12
jne 0x2fd6
jmp 0x3058
jmp 0x306d
movq %rax, %r14
leaq 0x198(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x2390
jmp 0x3058
jmp 0x3028
jmp 0x3028
jmp 0x3028
jmp 0x3028
jmp 0x3028
jmp 0x3028
jmp 0x3028
jmp 0x3028
movq %rax, %r14
addq $-0x10, %r15
leaq 0x8(%rsp), %r12
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x3048
movq (%r15), %rsi
incq %rsi
callq 0x2240
leaq -0x28(%r15), %rax
addq $-0x18, %r15
cmpq %r12, %r15
movq %rax, %r15
jne 0x3034
movl $0x30, %esi
movq %rbx, %rdi
callq 0x2240
movq %r14, %rdi
callq 0x2360
movq %rax, %r14
jmp 0x3058