// File: demon386[P]git-store/./libs/program_options/src/split.cpp
// Function: std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> boost::program_options::detail::split_unix<char>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
std::vector<std::basic_string<charT> > 
   split_unix(
         const std::basic_string<charT>& cmdline, 
         const std::basic_string<charT>& seperator, 
         const std::basic_string<charT>& quote, 
         const std::basic_string<charT>& escape)
   {   
      typedef boost::tokenizer< boost::escaped_list_separator<charT>, 
            typename std::basic_string<charT>::const_iterator, 
            std::basic_string<charT> >  tokenizerT;
         
      tokenizerT tok(cmdline.begin(), cmdline.end(), 
                boost::escaped_list_separator< charT >(escape, seperator, quote));
         
      std::vector< std::basic_string<charT> > result;
      for (typename tokenizerT::iterator cur_token(tok.begin()), end_token(tok.end()); cur_token != end_token; ++cur_token) {
         if (!cur_token->empty())
            result.push_back(*cur_token);
      }
      return result;
   }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x300, %rsp            # imm = 0x300
movq %rdi, -0x2e0(%rbp)
movq %rdi, %rax
movq %rax, -0x2d8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq -0x10(%rbp), %rdi
callq 0xd5e0
movq %rax, -0xa8(%rbp)
movq -0x10(%rbp), %rdi
callq 0xdbb0
movq %rax, -0xb0(%rbp)
movq -0x28(%rbp), %rsi
leaq -0x138(%rbp), %rdi
callq 0xd230
movq -0x18(%rbp), %rsi
leaq -0x158(%rbp), %rdi
callq 0xd230
jmp 0x35cd2
movq -0x20(%rbp), %rsi
leaq -0x188(%rbp), %rdi
callq 0xd230
jmp 0x35ce4
leaq -0x118(%rbp), %rdi
leaq -0x138(%rbp), %rsi
leaq -0x158(%rbp), %rdx
leaq -0x188(%rbp), %rcx
callq 0x362c0
jmp 0x35d07
movq -0xa8(%rbp), %rsi
movq -0xb0(%rbp), %rdx
leaq -0xa0(%rbp), %rdi
leaq -0x118(%rbp), %rcx
callq 0x36370
jmp 0x35d2a
leaq -0x118(%rbp), %rdi
callq 0x363b0
leaq -0x188(%rbp), %rdi
callq 0xdca8
leaq -0x158(%rbp), %rdi
callq 0xdca8
leaq -0x138(%rbp), %rdi
callq 0xdca8
movq -0x2e0(%rbp), %rdi
movb $0x0, -0x189(%rbp)
callq 0x11cf0
leaq -0x230(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x363f0
jmp 0x35d82
leaq -0x2d0(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x364b0
jmp 0x35d97
jmp 0x35d99
leaq -0x230(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
callq 0x36570
movb %al, -0x2e1(%rbp)
jmp 0x35db4
movb -0x2e1(%rbp), %al
testb $0x1, %al
jne 0x35eb2
jmp 0x35dc4
leaq -0x2d0(%rbp), %rdi
callq 0x36630
leaq -0x230(%rbp), %rdi
callq 0x36630
jmp 0x35f26
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x35e53
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x35e47
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x35e3b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x363b0
leaq -0x188(%rbp), %rdi
callq 0xdca8
leaq -0x158(%rbp), %rdi
callq 0xdca8
leaq -0x138(%rbp), %rdi
callq 0xdca8
jmp 0x35f76
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x35f5e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
jmp 0x35f18
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x160(%rbp)
movl %eax, -0x164(%rbp)
leaq -0x2d0(%rbp), %rdi
callq 0x36630
jmp 0x35f18
leaq -0x230(%rbp), %rdi
callq 0x365a0
movq %rax, -0x2f0(%rbp)
jmp 0x35ec7
movq -0x2f0(%rbp), %rdi
callq 0xdab0
testb $0x1, %al
jne 0x35f03
leaq -0x230(%rbp), %rdi
callq 0x365d0
movq %rax, -0x2f8(%rbp)
jmp 0x35eec
movq -0x2f8(%rbp), %rsi
movq -0x2e0(%rbp), %rdi
callq 0x127b0
jmp 0x35f01
jmp 0x35f03
jmp 0x35f05
leaq -0x230(%rbp), %rdi
callq 0x36600
jmp 0x35f13
jmp 0x35d99
leaq -0x230(%rbp), %rdi
callq 0x36630
jmp 0x35f5e
movb $0x1, -0x189(%rbp)
testb $0x1, -0x189(%rbp)
jne 0x35f42
movq -0x2e0(%rbp), %rdi
callq 0x11db0
leaq -0xa0(%rbp), %rdi
callq 0x36660
movq -0x2d8(%rbp), %rax
addq $0x300, %rsp            # imm = 0x300
popq %rbp
retq
movq -0x2e0(%rbp), %rdi
callq 0x11db0
leaq -0xa0(%rbp), %rdi
callq 0x36660
movq -0x160(%rbp), %rdi
callq 0xdb30
nopw %cs:(%rax,%rax)
nopl (%rax)