// File: GAStudyGroup[P]GPX2/src/args/Arg.cpp
// Function: Arg::nameConflict()
void Arg::nameConflict(){
    set<string> conflicting;
    for(unsigned i=0;i<arguments.size();i++){
        for(string n : arguments[i].getArg()){
            for(unsigned j=0;j<arguments.size();j++){
                if(i!=j){
                    vector<string> tmp{arguments[j].getArg()};
                    if(find(tmp.begin(),tmp.end(),n)!=tmp.end()){
                        conflicting.insert(n);
                    }
                }
            }
        }
    }

    bool error{false};
    string errorMsg{};
    for(string n : conflicting){
        if(error){
            errorMsg+="\n";
        }
        error = true;
        errorMsg += "Conflicting name or alias: "+n;
    }            
    throwException(errorMsg);
}

// Assembly:
subq $0x1c8, %rsp            # imm = 0x1C8
movq %rdi, 0x1c0(%rsp)
movq 0x1c0(%rsp), %rax
movq %rax, 0x30(%rsp)
leaq 0x190(%rsp), %rdi
callq 0x49c40
movl $0x0, 0x18c(%rsp)
movq 0x30(%rsp), %rdi
movl 0x18c(%rsp), %eax
movq %rax, 0x28(%rsp)
callq 0x49c50
movq %rax, %rcx
movq 0x28(%rsp), %rax
cmpq %rcx, %rax
jae 0x480cf
movq 0x30(%rsp), %rdi
movl 0x18c(%rsp), %eax
movl %eax, %esi
callq 0x49c70
movq %rax, %rsi
leaq 0x168(%rsp), %rdi
callq 0x498e0
jmp 0x47e30
leaq 0x168(%rsp), %rax
movq %rax, 0x180(%rsp)
movq 0x180(%rsp), %rdi
callq 0x1e310
movq %rax, 0x150(%rsp)
movq 0x180(%rsp), %rdi
callq 0x1e340
movq %rax, 0x148(%rsp)
leaq 0x150(%rsp), %rdi
leaq 0x148(%rsp), %rsi
callq 0x1e370
testb $0x1, %al
jne 0x47eae
leaq 0x168(%rsp), %rdi
callq 0xa2c0
jmp 0x480b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x160(%rsp)
movl %eax, 0x15c(%rsp)
jmp 0x482a9
leaq 0x150(%rsp), %rdi
callq 0x1e3b0
movq %rax, %rsi
leaq 0x128(%rsp), %rdi
callq 0x6200
jmp 0x47ecd
movl $0x0, 0x124(%rsp)
movq 0x30(%rsp), %rdi
movl 0x124(%rsp), %eax
movq %rax, 0x20(%rsp)
callq 0x49c50
movq %rax, %rcx
movq 0x20(%rsp), %rax
cmpq %rcx, %rax
jae 0x48079
movl 0x18c(%rsp), %eax
cmpl 0x124(%rsp), %eax
je 0x48061
movq 0x30(%rsp), %rdi
movl 0x124(%rsp), %eax
movl %eax, %esi
callq 0x49c70
movq %rax, %rsi
leaq 0x108(%rsp), %rdi
callq 0x498e0
jmp 0x47f38
leaq 0x108(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x1e310
movq 0x10(%rsp), %rdi
movq %rax, 0xf8(%rsp)
callq 0x1e340
movq %rax, 0xf0(%rsp)
movq 0xf8(%rsp), %rdi
movq 0xf0(%rsp), %rsi
leaq 0x128(%rsp), %rdx
callq 0x49c90
movq %rax, 0x18(%rsp)
jmp 0x47f88
movq 0x18(%rsp), %rax
movq %rax, 0x100(%rsp)
leaq 0x108(%rsp), %rdi
callq 0x1e340
movq %rax, 0xe8(%rsp)
leaq 0x100(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x1e370
testb $0x1, %al
jne 0x47fc8
jmp 0x48054
leaq 0x190(%rsp), %rdi
leaq 0x128(%rsp), %rsi
callq 0x49cf0
movb %dl, 0x7(%rsp)
movq %rax, 0x8(%rsp)
jmp 0x47fe8
movb 0x7(%rsp), %al
movq 0x8(%rsp), %rcx
movq %rcx, 0xd8(%rsp)
movb %al, 0xe0(%rsp)
jmp 0x48054
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x160(%rsp)
movl %eax, 0x15c(%rsp)
jmp 0x480a5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x160(%rsp)
movl %eax, 0x15c(%rsp)
jmp 0x48098
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x160(%rsp)
movl %eax, 0x15c(%rsp)
leaq 0x108(%rsp), %rdi
callq 0xa2c0
jmp 0x48098
leaq 0x108(%rsp), %rdi
callq 0xa2c0
jmp 0x48063
movl 0x124(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x124(%rsp)
jmp 0x47ed8
leaq 0x128(%rsp), %rdi
callq 0x6988
leaq 0x150(%rsp), %rdi
callq 0x1e3c0
jmp 0x47e6a
leaq 0x128(%rsp), %rdi
callq 0x6988
leaq 0x168(%rsp), %rdi
callq 0xa2c0
jmp 0x482a9
jmp 0x480b9
movl 0x18c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x18c(%rsp)
jmp 0x47de4
movb $0x0, 0xd7(%rsp)
leaq 0xb0(%rsp), %rdi
callq 0x6690
leaq 0x190(%rsp), %rax
movq %rax, 0xa8(%rsp)
movq 0xa8(%rsp), %rdi
callq 0x49d50
movq %rax, 0xa0(%rsp)
movq 0xa8(%rsp), %rdi
callq 0x49d80
movq %rax, 0x98(%rsp)
leaq 0xa0(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0x49db0
testb $0x1, %al
jne 0x4813c
jmp 0x4822d
leaq 0xa0(%rsp), %rdi
callq 0x49dd0
movq %rax, %rsi
leaq 0x78(%rsp), %rdi
callq 0x6200
jmp 0x48158
testb $0x1, 0xd7(%rsp)
je 0x481a9
leaq 0x2d6e5(%rip), %rsi     # 0x7584e
leaq 0xb0(%rsp), %rdi
callq 0x6490
jmp 0x48178
jmp 0x481a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x160(%rsp)
movl %eax, 0x15c(%rsp)
jmp 0x4829c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x160(%rsp)
movl %eax, 0x15c(%rsp)
jmp 0x48221
movb $0x1, 0xd7(%rsp)
leaq 0x2d6a2(%rip), %rsi     # 0x7585a
leaq 0x58(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq 0x189f0
jmp 0x481c9
leaq 0xb0(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x6620
jmp 0x481dd
leaq 0x58(%rsp), %rdi
callq 0x6988
leaq 0x78(%rsp), %rdi
callq 0x6988
leaq 0xa0(%rsp), %rdi
callq 0x49df0
jmp 0x4811e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x160(%rsp)
movl %eax, 0x15c(%rsp)
leaq 0x58(%rsp), %rdi
callq 0x6988
leaq 0x78(%rsp), %rdi
callq 0x6988
jmp 0x4829c
leaq 0x38(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x6200
jmp 0x48241
movq 0x30(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x48fc0
jmp 0x48252
leaq 0x38(%rsp), %rdi
callq 0x6988
leaq 0xb0(%rsp), %rdi
callq 0x6988
leaq 0x190(%rsp), %rdi
callq 0x49e20
addq $0x1c8, %rsp            # imm = 0x1C8
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x160(%rsp)
movl %eax, 0x15c(%rsp)
leaq 0x38(%rsp), %rdi
callq 0x6988
leaq 0xb0(%rsp), %rdi
callq 0x6988
leaq 0x190(%rsp), %rdi
callq 0x49e20
movq 0x160(%rsp), %rdi
callq 0x6850
nopw %cs:(%rax,%rax)