// File: sjtuwrk[P]SunwayMR/include/Utils.hpp
// Function: splitStringByDelimitationCouple(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
vector<string> splitStringByDelimitationCouple(string str, string delim_l, string delim_r) {
	vector<string> vs;
	string::size_type pos1 = 0;
	string::size_type pos2 = 0;
	int len_l = delim_l.length(), len_r = delim_r.length();
	pos2 = findDelimitationCouplePosition(str, delim_l, delim_r, pos1);
	while (pos2 != string::npos) {
		vs.push_back(str.substr(pos1+len_l, pos2-pos1-len_l));
		pos1 = pos2 + len_r;
		pos2 = findDelimitationCouplePosition(str, delim_l, delim_r, pos1);
	}
	return vs;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x160, %rsp            # imm = 0x160
movq %rcx, -0x140(%rbp)
movq %rdx, -0x148(%rbp)
movq %rsi, -0x138(%rbp)
movq %rdi, -0x158(%rbp)
movq %rdi, %rax
movq %rax, -0x150(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movb $0x0, -0x21(%rbp)
callq 0xe370
movq -0x148(%rbp), %rdi
movq $0x0, -0x30(%rbp)
movq $0x0, -0x38(%rbp)
callq 0x4650
movq -0x140(%rbp), %rdi
movl %eax, -0x3c(%rbp)
callq 0x4650
movq -0x138(%rbp), %rsi
movl %eax, -0x40(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x41a0
jmp 0x6a3a
movq -0x148(%rbp), %rsi
leaq -0x90(%rbp), %rdi
callq 0x41a0
jmp 0x6a4f
movq -0x140(%rbp), %rsi
leaq -0xb0(%rbp), %rdi
callq 0x41a0
jmp 0x6a64
movq -0x30(%rbp), %rcx
leaq -0x60(%rbp), %rdi
leaq -0x90(%rbp), %rsi
leaq -0xb0(%rbp), %rdx
callq 0x68d0
movq %rax, -0x38(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x4878
leaq -0x90(%rbp), %rdi
callq 0x4878
leaq -0x60(%rbp), %rdi
callq 0x4878
cmpq $-0x1, -0x38(%rbp)
je 0x6c26
movq -0x138(%rbp), %rsi
movq -0x30(%rbp), %rdi
movslq -0x3c(%rbp), %rax
movq %rdi, %rdx
addq %rax, %rdx
movq -0x38(%rbp), %rcx
subq %rdi, %rcx
subq %rax, %rcx
leaq -0xd0(%rbp), %rdi
callq 0x4420
jmp 0x6adc
movq -0x158(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0xea80
jmp 0x6af1
leaq -0xd0(%rbp), %rdi
callq 0x4878
movq -0x138(%rbp), %rsi
movq -0x38(%rbp), %rax
movslq -0x40(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x30(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x41a0
jmp 0x6b21
movq -0x148(%rbp), %rsi
leaq -0x110(%rbp), %rdi
callq 0x41a0
jmp 0x6b36
movq -0x140(%rbp), %rsi
leaq -0x130(%rbp), %rdi
callq 0x41a0
jmp 0x6b4b
movq -0x30(%rbp), %rcx
leaq -0xf0(%rbp), %rdi
leaq -0x110(%rbp), %rsi
leaq -0x130(%rbp), %rdx
callq 0x68d0
movq %rax, -0x38(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x4878
leaq -0x110(%rbp), %rdi
callq 0x4878
leaq -0xf0(%rbp), %rdi
callq 0x4878
jmp 0x6aa4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x6c4c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x6bcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x4878
leaq -0x60(%rbp), %rdi
callq 0x4878
jmp 0x6c4c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x4878
jmp 0x6c4c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x6c18
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x4878
leaq -0xf0(%rbp), %rdi
callq 0x4878
jmp 0x6c4c
movb $0x1, -0x21(%rbp)
testb $0x1, -0x21(%rbp)
jne 0x6c3c
movq -0x158(%rbp), %rdi
callq 0xe390
movq -0x150(%rbp), %rax
addq $0x160, %rsp            # imm = 0x160
popq %rbp
retq
movq -0x158(%rbp), %rdi
callq 0xe390
movq -0x68(%rbp), %rdi
callq 0x4780
nopw %cs:(%rax,%rax)