// File: /workspace/github_c_makefile_star2_O0/markdryan[P]subtilis/common/lexer.c
// Function: prv_process_complex_operator
static void prv_process_complex_operator(subtilis_lexer_t *l,
					 subtilis_token_t *t,
					 subtilis_error_t *err)
{
	char ch;
	char ch1;

	ch = l->buffer[l->index];

	prv_set_first(l, t, SUBTILIS_TOKEN_OPERATOR);
	prv_ensure_input(l, err);
	if ((err->type != SUBTILIS_ERROR_OK) || (l->index == l->buf_end))
		return;

	ch1 = l->buffer[l->index];
	if ((ch == '-') && (ch1 >= '0' && ch1 <= '9')) {
		prv_process_negative_decimal(l, t, err);
		return;
	}

	if ((ch == '.') && (ch1 >= '0' && ch1 <= '9')) {
		prv_process_float(l, t, err);
		return;
	}

	switch (ch1) {
	case '=':
		prv_set_next(l, t);
		break;
	case '-':
		prv_set_next(l, t);
		break;
	case '<':
		if (ch == '<')
			prv_set_next(l, t);
		break;
	case '>':
		if (ch == '<') {
			prv_set_next(l, t);
			break;
		}

		if (ch != '>')
			return;
		prv_set_next(l, t);

		prv_ensure_input(l, err);
		if ((err->type != SUBTILIS_ERROR_OK) ||
		    (l->index == l->buf_end))
			break;

		ch1 = l->buffer[l->index];
		if (ch1 != '>')
			break;

		prv_set_next(l, t);
		break;
	default:
		break;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq 0x368(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x40(%rcx), %rcx
movb (%rax,%rcx), %al
movb %al, -0x19(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x2, %edx
callq 0x13b20
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x13890
movq -0x18(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x13bba
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x360(%rcx), %rax
jne 0x13bbf
jmp 0x13d35
movq -0x8(%rbp), %rax
movq 0x368(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x40(%rcx), %rcx
movb (%rax,%rcx), %al
movb %al, -0x1a(%rbp)
movsbl -0x19(%rbp), %eax
cmpl $0x2d, %eax
jne 0x13c09
movsbl -0x1a(%rbp), %eax
cmpl $0x30, %eax
jl 0x13c09
movsbl -0x1a(%rbp), %eax
cmpl $0x39, %eax
jg 0x13c09
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x14770
jmp 0x13d35
movsbl -0x19(%rbp), %eax
cmpl $0x2e, %eax
jne 0x13c3a
movsbl -0x1a(%rbp), %eax
cmpl $0x30, %eax
jl 0x13c3a
movsbl -0x1a(%rbp), %eax
cmpl $0x39, %eax
jg 0x13c3a
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x148c0
jmp 0x13d35
movsbl -0x1a(%rbp), %eax
addl $-0x2d, %eax
movl %eax, %ecx
movq %rcx, -0x28(%rbp)
subl $0x11, %eax
ja 0x13d33
movq -0x28(%rbp), %rax
leaq 0x953e1(%rip), %rcx     # 0xa903c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x146c0
jmp 0x13d35
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x146c0
jmp 0x13d35
movsbl -0x19(%rbp), %eax
cmpl $0x3c, %eax
jne 0x13c9e
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x146c0
jmp 0x13d35
movsbl -0x19(%rbp), %eax
cmpl $0x3c, %eax
jne 0x13cbb
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x146c0
jmp 0x13d35
movsbl -0x19(%rbp), %eax
cmpl $0x3e, %eax
je 0x13cc6
jmp 0x13d35
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x146c0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x13890
movq -0x18(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x13cfe
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x360(%rcx), %rax
jne 0x13d00
jmp 0x13d35
movq -0x8(%rbp), %rax
movq 0x368(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x40(%rcx), %rcx
movb (%rax,%rcx), %al
movb %al, -0x1a(%rbp)
movsbl -0x1a(%rbp), %eax
cmpl $0x3e, %eax
je 0x13d24
jmp 0x13d35
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x146c0
jmp 0x13d35
jmp 0x13d35
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)