// File: kage08[P]RegexLibrary/Resource.cpp
// Function: addConcat(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::set<char, std::less<char>, std::allocator<char>>)
string addConcat(string& regex,set<char> alphabet){
  if(regex=="%") return regex;
  string ans="";
  uint len=regex.length();
  for(uLong i=0;i<len;i++){
    if(alphabet.find(regex[i])!=alphabet.end() || regex[i]=='@' || regex[i]=='(' || regex[i]=='%'){
      if(i>0 && (regex[i-1]!='+' && regex[i-1]!='(')) ans.append(".");
    }
    ans.append(string(1,regex[i]));
  }
  return ans;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdx, -0x88(%rbp)
movq %rdi, -0x80(%rbp)
movq %rdi, %rax
movq %rax, -0x78(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rdi
leaq 0xcf28(%rip), %rsi      # 0x1103c
callq 0x6260
testb $0x1, %al
jne 0x411f
jmp 0x4131
movq -0x80(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x20b0
jmp 0x43fc
movb $0x0, -0x19(%rbp)
leaq -0x1a(%rbp), %rdi
movq %rdi, -0x90(%rbp)
callq 0x2390
movq -0x80(%rbp), %rdi
movq -0x90(%rbp), %rdx
leaq 0xcee2(%rip), %rsi      # 0x11039
callq 0x6290
jmp 0x415e
leaq -0x1a(%rbp), %rdi
callq 0x2230
movq -0x10(%rbp), %rdi
callq 0x2320
movl %eax, -0x30(%rbp)
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
movl -0x30(%rbp), %ecx
cmpq %rcx, %rax
jae 0x43dc
movq -0x10(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0x23e0
movq %rax, -0x98(%rbp)
jmp 0x41a1
movq -0x98(%rbp), %rsi
movq -0x88(%rbp), %rdi
callq 0x6090
movq %rax, -0xa0(%rbp)
jmp 0x41bd
movq -0x88(%rbp), %rdi
movq -0xa0(%rbp), %rax
movq %rax, -0x40(%rbp)
callq 0x5f00
movq %rax, -0x48(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x5f30
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0xa1(%rbp)
jne 0x427e
movq -0x10(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0x23e0
movq %rax, -0xb0(%rbp)
jmp 0x420e
movq -0xb0(%rbp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x40, %ecx
movb %al, -0xa1(%rbp)
je 0x427e
movq -0x10(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0x23e0
movq %rax, -0xb8(%rbp)
jmp 0x423b
movq -0xb8(%rbp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x28, %ecx
movb %al, -0xa1(%rbp)
je 0x427e
movq -0x10(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0x23e0
movq %rax, -0xc0(%rbp)
jmp 0x4268
movq -0xc0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x25, %eax
sete %al
movb %al, -0xa1(%rbp)
movb -0xa1(%rbp), %al
testb $0x1, %al
jne 0x428d
jmp 0x4329
cmpq $0x0, -0x38(%rbp)
jbe 0x4327
movq -0x10(%rbp), %rdi
movq -0x38(%rbp), %rsi
decq %rsi
callq 0x23e0
movq %rax, -0xc8(%rbp)
jmp 0x42b1
movq -0xc8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2b, %eax
je 0x4327
movq -0x10(%rbp), %rdi
movq -0x38(%rbp), %rsi
decq %rsi
callq 0x23e0
movq %rax, -0xd0(%rbp)
jmp 0x42d9
movq -0xd0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x28, %eax
je 0x4327
movq -0x80(%rbp), %rdi
leaq 0xcd4b(%rip), %rsi      # 0x1103e
callq 0x23b0
jmp 0x42fa
jmp 0x4327
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x1a(%rbp), %rdi
callq 0x2230
jmp 0x4409
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x43f1
jmp 0x4329
movq -0x10(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0x23e0
movq %rax, -0xd8(%rbp)
jmp 0x433f
movq -0xd8(%rbp), %rax
movsbl (%rax), %eax
movl %eax, -0xe4(%rbp)
leaq -0x69(%rbp), %rdi
movq %rdi, -0xe0(%rbp)
callq 0x2390
movl -0xe4(%rbp), %edx
movq -0xe0(%rbp), %rcx
leaq -0x68(%rbp), %rdi
movl $0x1, %esi
callq 0x6340
jmp 0x437c
movq -0x80(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x23c0
jmp 0x438b
leaq -0x68(%rbp), %rdi
callq 0x2140
leaq -0x69(%rbp), %rdi
callq 0x2230
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x417b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x43d1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x2140
leaq -0x69(%rbp), %rdi
callq 0x2230
jmp 0x43f1
movb $0x1, -0x19(%rbp)
testb $0x1, -0x19(%rbp)
jne 0x43ef
movq -0x80(%rbp), %rdi
callq 0x2140
jmp 0x43fc
movq -0x80(%rbp), %rdi
callq 0x2140
jmp 0x4409
movq -0x78(%rbp), %rax
addq $0xf0, %rsp
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0x2380
nopw %cs:(%rax,%rax)