// File: /workspace/github_c_makefile_star2_O0/lucvoo[P]sparse-dev/tokenize.c
// Function: get_one_number
static int get_one_number(int c, int next, stream_t *stream)
{
	struct token *token;
	static char buffer[4095];
	char *p = buffer, *buffer_end = buffer + sizeof (buffer);

	*p++ = c;
	for (;;) {
		long class =  cclass[next + 1];
		if (!(class & (Dot | Digit | Letter)))
			break;
		if (p != buffer_end)
			*p++ = next;
		next = nextchar(stream);
		if (class & Exp) {
			if (next == '-' || next == '+') {
				if (p != buffer_end)
					*p++ = next;
				next = nextchar(stream);
			}
		}
	}

	if (p == buffer_end) {
		sparse_error(stream_pos(stream), "number token exceeds %td characters",
		      buffer_end - buffer);
		// Pretend we saw just "1".
		buffer[0] = '1';
		p = buffer + 1;
	}

	*p++ = 0;
	token = stream->token;
	token_type(token) = TOKEN_NUMBER;
	token->number = xmemdup(buffer, p - buffer);
	add_token(stream);

	return next;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movq %rdx, -0x10(%rbp)
leaq 0x6d0f7(%rip), %rax     # 0xb2a00
movq %rax, -0x20(%rbp)
leaq 0x6d0ec(%rip), %rax     # 0xb2a00
addq $0xfff, %rax            # imm = 0xFFF
movq %rax, -0x28(%rbp)
movl -0x4(%rbp), %eax
movb %al, %cl
movq -0x20(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x20(%rbp)
movb %cl, (%rax)
movl -0x8(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rcx
leaq 0x2466c(%rip), %rax     # 0x69fb0
movsbq (%rax,%rcx), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
andq $0x13, %rax
cmpq $0x0, %rax
jne 0x4595d
jmp 0x459d6
movq -0x20(%rbp), %rax
cmpq -0x28(%rbp), %rax
je 0x4597d
movl -0x8(%rbp), %eax
movb %al, %cl
movq -0x20(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x20(%rbp)
movb %cl, (%rax)
movq -0x10(%rbp), %rdi
callq 0x454d0
movl %eax, -0x8(%rbp)
movq -0x30(%rbp), %rax
andq $0x8, %rax
cmpq $0x0, %rax
je 0x459d1
cmpl $0x2d, -0x8(%rbp)
je 0x459a3
cmpl $0x2b, -0x8(%rbp)
jne 0x459cf
movq -0x20(%rbp), %rax
cmpq -0x28(%rbp), %rax
je 0x459c3
movl -0x8(%rbp), %eax
movb %al, %cl
movq -0x20(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x20(%rbp)
movb %cl, (%rax)
movq -0x10(%rbp), %rdi
callq 0x454d0
movl %eax, -0x8(%rbp)
jmp 0x459d1
jmp 0x45934
movq -0x20(%rbp), %rax
cmpq -0x28(%rbp), %rax
jne 0x45a23
movq -0x10(%rbp), %rdi
callq 0x453d0
movq %rax, -0x38(%rbp)
movq -0x28(%rbp), %rdx
leaq 0x6d008(%rip), %rax     # 0xb2a00
subq %rax, %rdx
movq -0x38(%rbp), %rdi
leaq 0x247df(%rip), %rsi     # 0x6a1e5
movb $0x0, %al
callq 0x16f90
movb $0x31, 0x6cfec(%rip)    # 0xb2a00
leaq 0x6cfe5(%rip), %rax     # 0xb2a00
addq $0x1, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x20(%rbp)
movb $0x0, (%rax)
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rcx
andq $-0x40, %rcx
orq $0x5, %rcx
movq %rcx, (%rax)
movq -0x20(%rbp), %rsi
leaq 0x6cfa2(%rip), %rax     # 0xb2a00
subq %rax, %rsi
leaq 0x6cf98(%rip), %rdi     # 0xb2a00
callq 0x46310
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x10(%rbp), %rdi
callq 0x45e10
movl -0x8(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
nopw (%rax,%rax)