// File: Neurochrom[P]hours_calc/hours_calc.cpp
// Function: splitIntoTokens(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, char const*, char const*)
std::vector<std::string> splitIntoTokens(const std::string& s, const char* separators, const char* incSeparators="")
{
   std::vector<std::string> r;
   std::string ss = s;
   for(;;)
   {
      size_t i = ss.find_first_of(separators);
      size_t ii = ss.find_first_of(incSeparators);
      assert( ii == std::string::npos || ii!=i );
      if(ii<i && ii>0)
      {
         assert(ii!=std::string::npos);
         std::string x = ss.substr(0, ii);
         if (!x.empty())
            r.push_back(x);
         ss = ss.substr(ii);
      }
      else if (i == std::string::npos)
      {
         if (!ss.empty())
            r.push_back(ss);
         break;
      }
      else
      {
         std::string x = ss.substr(0, i);
         if (!x.empty())
            r.push_back(x);
         ss = ss.substr(i + 1);
      }
   }
   return r;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movq %rdi, -0xf8(%rbp)
movq %rdi, %rax
movq %rax, -0xf0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movb $0x0, -0x21(%rbp)
callq 0x7120
movq -0x10(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x3120
jmp 0x3d14
jmp 0x3d16
movq -0x18(%rbp), %rsi
leaq -0x48(%rbp), %rdi
xorl %eax, %eax
movl %eax, %edx
callq 0x3140
movq %rax, -0x60(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x48(%rbp), %rdi
xorl %eax, %eax
movl %eax, %edx
callq 0x3140
movq %rax, -0x68(%rbp)
movb $0x1, %al
cmpq $-0x1, -0x68(%rbp)
movb %al, -0xf9(%rbp)
je 0x3d60
movq -0x68(%rbp), %rax
cmpq -0x60(%rbp), %rax
setne %al
movb %al, -0xf9(%rbp)
movb -0xf9(%rbp), %al
testb $0x1, %al
jne 0x3d6c
jmp 0x3d6e
jmp 0x3d9e
leaq 0xb2ce(%rip), %rdi      # 0xf043
leaq 0xb2e8(%rip), %rsi      # 0xf064
movl $0x82, %edx
leaq 0xb2eb(%rip), %rcx      # 0xf073
callq 0x31a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x3fab
movq -0x68(%rbp), %rax
cmpq -0x60(%rbp), %rax
jae 0x3e98
cmpq $0x0, -0x68(%rbp)
jbe 0x3e98
cmpq $-0x1, -0x68(%rbp)
je 0x3dc0
jmp 0x3ddf
leaq 0xb306(%rip), %rdi      # 0xf0cd
leaq 0xb296(%rip), %rsi      # 0xf064
movl $0x85, %edx
leaq 0xb299(%rip), %rcx      # 0xf073
callq 0x31a0
movq -0x68(%rbp), %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x88(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x3280
jmp 0x3df9
leaq -0x88(%rbp), %rdi
callq 0x3460
testb $0x1, %al
jne 0x3e4e
movq -0xf8(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x7140
jmp 0x3e1e
jmp 0x3e4e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x3f84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x3190
jmp 0x3f84
movq -0x68(%rbp), %rdx
leaq -0xa8(%rbp), %rdi
leaq -0x48(%rbp), %rsi
movq $-0x1, %rcx
callq 0x3280
jmp 0x3e6b
leaq -0x48(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x3320
leaq -0xa8(%rbp), %rdi
callq 0x3190
leaq -0x88(%rbp), %rdi
callq 0x3190
jmp 0x3f6a
cmpq $-0x1, -0x60(%rbp)
jne 0x3ec5
leaq -0x48(%rbp), %rdi
callq 0x3460
testb $0x1, %al
jne 0x3ec0
movq -0xf8(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x7140
jmp 0x3ebe
jmp 0x3ec0
jmp 0x3f6f
movq -0x60(%rbp), %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0xc8(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x3280
jmp 0x3edf
leaq -0xc8(%rbp), %rdi
callq 0x3460
testb $0x1, %al
jne 0x3f20
movq -0xf8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x7140
jmp 0x3f04
jmp 0x3f20
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x3190
jmp 0x3f84
movq -0x60(%rbp), %rdx
incq %rdx
leaq -0xe8(%rbp), %rdi
leaq -0x48(%rbp), %rsi
movq $-0x1, %rcx
callq 0x3280
jmp 0x3f40
leaq -0x48(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x3320
leaq -0xe8(%rbp), %rdi
callq 0x3190
leaq -0xc8(%rbp), %rdi
callq 0x3190
jmp 0x3f6a
jmp 0x3d16
movb $0x1, -0x21(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x3190
testb $0x1, -0x21(%rbp)
jne 0x3f9b
jmp 0x3f8f
leaq -0x48(%rbp), %rdi
callq 0x3190
jmp 0x3fab
movq -0xf8(%rbp), %rdi
callq 0x71b0
movq -0xf0(%rbp), %rax
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
movq -0xf8(%rbp), %rdi
callq 0x71b0
movq -0x50(%rbp), %rdi
callq 0x3480