// File: menhits[P]phplus/src/AllOperators.cpp
// Function: AllOperators::get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::shared_ptr<OperatorData>, std::allocator<std::shared_ptr<OperatorData>>>&)
void AllOperators::get(string text, vector<Operator>& out)
{
	int start=0;
	int end=text.size();
	
	while (start<int(text.size()))
	{
		while (true)
		{
			if (end<=start)
			{
				error.log("operator tidak diketahui '" + text + "'", SOURCE_ERROR);
			}
			
			auto i=opsMap.find(text.substr(start, end-start));
			
			if (i==opsMap.end())
			{
				end--;
			}
			else
			{
				out.push_back(i->second);
				start=end;
				end=text.size();
				break;
			}
		}
	}
}

// Assembly:
subq $0x108, %rsp            # imm = 0x108
movq %rsi, 0x40(%rsp)
movq %rdi, %rax
movq 0x40(%rsp), %rdi
movq %rdi, 0x48(%rsp)
movq %rax, 0x100(%rsp)
movq %rdi, 0xf8(%rsp)
movq %rdx, 0xf0(%rsp)
movq 0x100(%rsp), %rax
movq %rax, 0x50(%rsp)
movl $0x0, 0xec(%rsp)
callq 0xb2a0
movl %eax, 0xe8(%rsp)
movq 0x48(%rsp), %rdi
movl 0xec(%rsp), %eax
movl %eax, 0x3c(%rsp)
callq 0xb2a0
movq %rax, %rcx
movl 0x3c(%rsp), %eax
cmpl %ecx, %eax
jge 0xf75c
jmp 0xf53b
movl 0xe8(%rsp), %eax
cmpl 0xec(%rsp), %eax
jg 0xf640
movq 0x48(%rsp), %rdx
leaq 0xc1ad3(%rip), %rsi     # 0xd102e
leaq 0xa8(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0xfab0
movq 0x30(%rsp), %rsi
leaq 0xc7521(%rip), %rdx     # 0xd6a9a
leaq 0xc8(%rsp), %rdi
callq 0xfa60
jmp 0xf588
xorl %eax, %eax
movl %eax, 0x24(%rsp)
movl %eax, %esi
leaq 0x88(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0xfbe0
movl 0x24(%rsp), %edx
movq 0x28(%rsp), %rcx
leaq 0x108e11(%rip), %rdi    # 0x1183c3
leaq 0xc8(%rsp), %rsi
callq 0x34c70
jmp 0xf5c1
leaq 0x88(%rsp), %rdi
callq 0xfc00
leaq 0xc8(%rsp), %rdi
callq 0xb6e8
leaq 0xa8(%rsp), %rdi
callq 0xb6e8
jmp 0xf640
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
jmp 0xf62e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
leaq 0x88(%rsp), %rdi
callq 0xfc00
leaq 0xc8(%rsp), %rdi
callq 0xb6e8
leaq 0xa8(%rsp), %rdi
callq 0xb6e8
jmp 0xf764
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rax
addq $0x1f0, %rax            # imm = 0x1F0
movq %rax, 0x8(%rsp)
movslq 0xec(%rsp), %rdx
movl %edx, %ecx
movl 0xe8(%rsp), %eax
subl %ecx, %eax
movslq %eax, %rcx
leaq 0x60(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0xb3a0
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xfc10
movq %rax, 0x18(%rsp)
jmp 0xf690
movq 0x18(%rsp), %rax
movq %rax, 0x80(%rsp)
leaq 0x60(%rsp), %rdi
callq 0xb6e8
movq 0x50(%rsp), %rdi
addq $0x1f0, %rdi            # imm = 0x1F0
callq 0xfc60
movq %rax, 0x58(%rsp)
leaq 0x80(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0xfc40
testb $0x1, %al
jne 0xf6d5
jmp 0xf708
movl 0xe8(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0xe8(%rsp)
jmp 0xf752
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
leaq 0x60(%rsp), %rdi
callq 0xb6e8
jmp 0xf764
movq 0xf0(%rsp), %rax
movq %rax, (%rsp)
leaq 0x80(%rsp), %rdi
callq 0xfd00
movq (%rsp), %rdi
movq %rax, %rsi
addq $0x20, %rsi
callq 0xfc90
movq 0x48(%rsp), %rdi
movl 0xe8(%rsp), %eax
movl %eax, 0xec(%rsp)
callq 0xb2a0
movl %eax, 0xe8(%rsp)
jmp 0xf757
jmp 0xf53b
jmp 0xf515
addq $0x108, %rsp            # imm = 0x108
retq
movq 0xa0(%rsp), %rdi
callq 0xb680
nopw %cs:(%rax,%rax)