// File: lindorx[P]train/HelpInsPro.cpp
// Function: hep(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
STRINF *hep(const std::string& str)
{
	using namespace std;
	int str_size = str.size();
	int lk, rk, k;
	STRINF *m = new STRINF;
	//ȥ��β���Ŀո�
	while (str_size>0 && (str[str_size - 1] == 0x20 || str[str_size - 1] == '\t'))str_size--;
	k = str.find(0x20);
	if (k >= str_size)k = str.find('\t');
	//k�����˿ո���λ�ã������еĻ�������k����һ��Զ�����ַ������ȵ�ֵ,��С��0��ֵ
	if (k < str_size && k >= 0){
		m->explain = str.substr(0, k);
		lk = str.find('[');
		rk = str.find(']');
	
		if (lk < str_size && rk < str_size && lk >= 0 && rk >= 0){//�ж�������
			m->str = str.substr(lk + 1, rk - lk - 1);
			m->lk = lk;
			m->rk = rk;
			m->w = true;
			return m;
		}
		else{
			//�����ո���������
			while (k < str_size && (str[k] == 0x20 || str[k] == '\t'))k++;
			m->str = str.substr(k, str_size - k);
			m->lk = 0;
			m->rk = 0;
			m->w = false;
			return m;
		}
	}
	else{//û�пո�
		m->explain = "n";//˵������Ϊn
		//����������
		lk = str.find('[');
		rk = str.find(']');
		
		if (lk < str_size && rk < str_size && lk >= 0 && rk >= 0){
			m->str = str.substr(lk + 1, rk - lk - 1);
			m->lk = lk;
			m->rk = rk;
			m->w = true;
			return m;
		}
		else{
			m->str = str.substr(0,str_size);
			m->lk = 0; m->rk = 0;
			m->w = false;
			return m;
		}
	}
	return m;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x3160
movl %eax, -0x14(%rbp)
movl $0x50, %edi
callq 0x3200
movq %rax, %rdi
movq %rdi, -0xd0(%rbp)
callq 0xabe0
movq -0xd0(%rbp), %rax
movq %rax, -0x28(%rbp)
xorl %eax, %eax
cmpl $0x0, -0x14(%rbp)
movb %al, -0xd1(%rbp)
jle 0xa41c
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x3280
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x20, %ecx
movb %al, -0xd2(%rbp)
je 0xa410
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x3280
movsbl (%rax), %eax
cmpl $0x9, %eax
sete %al
movb %al, -0xd2(%rbp)
movb -0xd2(%rbp), %al
movb %al, -0xd1(%rbp)
movb -0xd1(%rbp), %al
testb $0x1, %al
jne 0xa428
jmp 0xa433
movl -0x14(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0xa3bf
movq -0x10(%rbp), %rdi
movl $0x20, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x3300
movl %eax, -0x20(%rbp)
movl -0x20(%rbp), %eax
cmpl -0x14(%rbp), %eax
jl 0xa465
movq -0x10(%rbp), %rdi
movl $0x9, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x3300
movl %eax, -0x20(%rbp)
movl -0x20(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0xa627
cmpl $0x0, -0x20(%rbp)
jl 0xa627
movq -0x10(%rbp), %rsi
movslq -0x20(%rbp), %rcx
leaq -0x48(%rbp), %rdi
xorl %eax, %eax
movl %eax, %edx
callq 0x3230
movq -0x28(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x32c0
leaq -0x48(%rbp), %rdi
callq 0x3468
movq -0x10(%rbp), %rdi
movl $0x5b, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x3300
movl %eax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movl $0x5d, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x3300
movl %eax, -0x1c(%rbp)
movl -0x18(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0xa551
movl -0x1c(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0xa551
cmpl $0x0, -0x18(%rbp)
jl 0xa551
cmpl $0x0, -0x1c(%rbp)
jl 0xa551
movq -0x10(%rbp), %rsi
movl -0x18(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rdx
movl -0x1c(%rbp), %eax
subl -0x18(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rcx
leaq -0x68(%rbp), %rdi
callq 0x3230
movq -0x28(%rbp), %rdi
addq $0x20, %rdi
leaq -0x68(%rbp), %rsi
callq 0x32c0
leaq -0x68(%rbp), %rdi
callq 0x3468
movl -0x18(%rbp), %ecx
movq -0x28(%rbp), %rax
movl %ecx, 0x44(%rax)
movl -0x1c(%rbp), %ecx
movq -0x28(%rbp), %rax
movl %ecx, 0x48(%rax)
movq -0x28(%rbp), %rax
movb $0x1, 0x40(%rax)
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xa746
jmp 0xa553
movl -0x20(%rbp), %ecx
xorl %eax, %eax
cmpl -0x14(%rbp), %ecx
movb %al, -0xd3(%rbp)
jge 0xa5a8
movq -0x10(%rbp), %rdi
movslq -0x20(%rbp), %rsi
callq 0x3280
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x20, %ecx
movb %al, -0xd4(%rbp)
je 0xa59c
movq -0x10(%rbp), %rdi
movslq -0x20(%rbp), %rsi
callq 0x3280
movsbl (%rax), %eax
cmpl $0x9, %eax
sete %al
movb %al, -0xd4(%rbp)
movb -0xd4(%rbp), %al
movb %al, -0xd3(%rbp)
movb -0xd3(%rbp), %al
testb $0x1, %al
jne 0xa5b4
jmp 0xa5bf
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0xa553
movq -0x10(%rbp), %rsi
movslq -0x20(%rbp), %rdx
movl -0x14(%rbp), %eax
subl -0x20(%rbp), %eax
movslq %eax, %rcx
leaq -0x88(%rbp), %rdi
callq 0x3230
movq -0x28(%rbp), %rdi
addq $0x20, %rdi
leaq -0x88(%rbp), %rsi
callq 0x32c0
leaq -0x88(%rbp), %rdi
callq 0x3468
movq -0x28(%rbp), %rax
movl $0x0, 0x44(%rax)
movq -0x28(%rbp), %rax
movl $0x0, 0x48(%rax)
movq -0x28(%rbp), %rax
movb $0x0, 0x40(%rax)
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xa746
movq -0x28(%rbp), %rdi
leaq 0x11062(%rip), %rsi     # 0x1b694
callq 0x3320
movq -0x10(%rbp), %rdi
movl $0x5b, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x3300
movl %eax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movl $0x5d, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x3300
movl %eax, -0x1c(%rbp)
movl -0x18(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0xa6e8
movl -0x1c(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0xa6e8
cmpl $0x0, -0x18(%rbp)
jl 0xa6e8
cmpl $0x0, -0x1c(%rbp)
jl 0xa6e8
movq -0x10(%rbp), %rsi
movl -0x18(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rdx
movl -0x1c(%rbp), %eax
subl -0x18(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rcx
leaq -0xa8(%rbp), %rdi
callq 0x3230
movq -0x28(%rbp), %rdi
addq $0x20, %rdi
leaq -0xa8(%rbp), %rsi
callq 0x32c0
leaq -0xa8(%rbp), %rdi
callq 0x3468
movl -0x18(%rbp), %ecx
movq -0x28(%rbp), %rax
movl %ecx, 0x44(%rax)
movl -0x1c(%rbp), %ecx
movq -0x28(%rbp), %rax
movl %ecx, 0x48(%rax)
movq -0x28(%rbp), %rax
movb $0x1, 0x40(%rax)
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xa746
movq -0x10(%rbp), %rsi
movslq -0x14(%rbp), %rcx
leaq -0xc8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %edx
callq 0x3230
movq -0x28(%rbp), %rdi
addq $0x20, %rdi
leaq -0xc8(%rbp), %rsi
callq 0x32c0
leaq -0xc8(%rbp), %rdi
callq 0x3468
movq -0x28(%rbp), %rax
movl $0x0, 0x44(%rax)
movq -0x28(%rbp), %rax
movl $0x0, 0x48(%rax)
movq -0x28(%rbp), %rax
movb $0x0, 0x40(%rax)
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0xe0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)