// File: waltersharpWEI[P]CommentEliminator/main.cpp
// Function: isSource(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
bool isSource(string Name) {
    //The last 2 suffix
    string Bisuf = Name.c_str() + (Name.length() - 2);
    //The last 3 suffix
    string Trisuf = Name.c_str() + (Name.length() - 3);
    //The last 4 suffix
    string Fousuf = Name.c_str() + (Name.length() - 4);

    if (Bisuf == ".c" || Bisuf == ".h") {
        return true;
    }
    if (Trisuf == ".cc" || Trisuf ==".hh") {
        return true;
    }
    if (Fousuf == ".hpp" || Fousuf == ".cpp") {
        return true;
    }
    return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0xb8(%rbp)
movq %rdi, -0x10(%rbp)
callq 0x20d0
movq -0xb8(%rbp), %rdi
movq %rax, -0xb0(%rbp)
callq 0x2340
movq -0xb0(%rbp), %rcx
leaq -0x2(%rax,%rcx), %rax
movq %rax, -0xa8(%rbp)
leaq -0x31(%rbp), %rdi
movq %rdi, -0xa0(%rbp)
callq 0x23d0
movq -0xa8(%rbp), %rsi
movq -0xa0(%rbp), %rdx
leaq -0x30(%rbp), %rdi
callq 0x3f80
jmp 0x297a
leaq -0x31(%rbp), %rdi
callq 0x2260
movq -0xb8(%rbp), %rdi
callq 0x20d0
movq -0xb8(%rbp), %rdi
movq %rax, -0xd0(%rbp)
callq 0x2340
movq -0xd0(%rbp), %rcx
leaq -0x3(%rax,%rcx), %rax
movq %rax, -0xc8(%rbp)
leaq -0x69(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
callq 0x23d0
movq -0xc8(%rbp), %rsi
movq -0xc0(%rbp), %rdx
leaq -0x68(%rbp), %rdi
callq 0x3f80
jmp 0x29de
leaq -0x69(%rbp), %rdi
callq 0x2260
movq -0xb8(%rbp), %rdi
callq 0x20d0
movq -0xb8(%rbp), %rdi
movq %rax, -0xe8(%rbp)
callq 0x2340
movq -0xe8(%rbp), %rcx
leaq -0x4(%rax,%rcx), %rax
movq %rax, -0xe0(%rbp)
leaq -0x91(%rbp), %rdi
movq %rdi, -0xd8(%rbp)
callq 0x23d0
movq -0xe0(%rbp), %rsi
movq -0xd8(%rbp), %rdx
leaq -0x90(%rbp), %rdi
callq 0x3f80
jmp 0x2a48
leaq -0x91(%rbp), %rdi
callq 0x2260
leaq 0x65dc(%rip), %rsi      # 0x9037
leaq -0x30(%rbp), %rdi
callq 0x4030
movb %al, -0xe9(%rbp)
jmp 0x2a6c
movb -0xe9(%rbp), %al
testb $0x1, %al
jne 0x2a9f
jmp 0x2a78
leaq 0x65bb(%rip), %rsi      # 0x903a
leaq -0x30(%rbp), %rdi
callq 0x4030
movb %al, -0xea(%rbp)
jmp 0x2a90
movb -0xea(%rbp), %al
testb $0x1, %al
jne 0x2a9f
jmp 0x2b20
movb $0x1, -0x1(%rbp)
movl $0x1, -0x98(%rbp)
jmp 0x2be4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x31(%rbp), %rdi
callq 0x2260
jmp 0x2c22
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x69(%rbp), %rdi
callq 0x2260
jmp 0x2c19
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x91(%rbp), %rdi
callq 0x2260
jmp 0x2c10
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x2130
jmp 0x2c10
leaq 0x6516(%rip), %rsi      # 0x903d
leaq -0x68(%rbp), %rdi
callq 0x4030
movb %al, -0xeb(%rbp)
jmp 0x2b38
movb -0xeb(%rbp), %al
testb $0x1, %al
jne 0x2b68
jmp 0x2b44
leaq 0x64f6(%rip), %rsi      # 0x9041
leaq -0x68(%rbp), %rdi
callq 0x4030
movb %al, -0xec(%rbp)
jmp 0x2b5c
movb -0xec(%rbp), %al
testb $0x1, %al
jne 0x2b68
jmp 0x2b78
movb $0x1, -0x1(%rbp)
movl $0x1, -0x98(%rbp)
jmp 0x2be4
leaq 0x64c6(%rip), %rsi      # 0x9045
leaq -0x90(%rbp), %rdi
callq 0x4030
movb %al, -0xed(%rbp)
jmp 0x2b93
movb -0xed(%rbp), %al
testb $0x1, %al
jne 0x2bc6
jmp 0x2b9f
leaq 0x64a4(%rip), %rsi      # 0x904a
leaq -0x90(%rbp), %rdi
callq 0x4030
movb %al, -0xee(%rbp)
jmp 0x2bba
movb -0xee(%rbp), %al
testb $0x1, %al
jne 0x2bc6
jmp 0x2bd6
movb $0x1, -0x1(%rbp)
movl $0x1, -0x98(%rbp)
jmp 0x2be4
movb $0x0, -0x1(%rbp)
movl $0x1, -0x98(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x2130
leaq -0x68(%rbp), %rdi
callq 0x2130
leaq -0x30(%rbp), %rdi
callq 0x2130
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0xf0, %rsp
popq %rbp
retq
leaq -0x68(%rbp), %rdi
callq 0x2130
leaq -0x30(%rbp), %rdi
callq 0x2130
movq -0x40(%rbp), %rdi
callq 0x23c0
nopl (%rax,%rax)