// File: /workspace/github_c_makefile_star2_O0/nimble-code[P]Uno/Src/uno_fcts.c
// Function: add_label
static void
add_label(BFct *f, Arc *a, char *s)
{	Label *n;
	char  *p;

	while ((p = strchr(s, '\t')) != NULL)
		*p = ' ';

	n = (Label *) emalloc(sizeof(Label));
	n->label = (unsigned char *) new_str(s);

	if (strcmp(f->fnm, glob_prop) == 0)
	{	n->nxt = a->lab;	/* prop: labels on arcs */
		a->lab = n;
		return;
	} else
	{	n->nxt = a->to->lab;	/* sys: labels on nodes */
		a->to->lab = n;
	}

	if (strlen(s) <= 2)
		return;

	switch (s[1]) {
	case ' ':	p = strchr(&s[2], ' '); break;
	case '\t':	p = strchr(&s[2], '\t'); break;
	default:
bad:		fprintf(stderr, "uno:global: unexpected type of label: '%s'\n", s);
		return;
	}

	if (!p) goto bad;
	*p = '\0';
	switch (s[0]) {
	case 'C': 
	case 'c': 
	case 'b': 
	case 'h': 
	case 'i': 
	case 'j':
		/* add_call(f->fnm, &s[2]); */
		break;
	case 'N':
	case 'G':
	case 'D':
	case 'U':
	case 'R': break;
	default : goto bad;
	}
	*p = ' ';	/* restore */
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movl $0x9, %esi
callq 0x1070
movq %rax, -0x28(%rbp)
cmpq $0x0, %rax
je 0x40a5
movq -0x28(%rbp), %rax
movb $0x20, (%rax)
jmp 0x4084
movl $0x10, %edi
callq 0x1270
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x33e0
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq 0x7034(%rip), %rsi      # 0xb108
callq 0x10c0
cmpl $0x0, %eax
jne 0x40ff
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
jmp 0x421e
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rdi
callq 0x1060
cmpq $0x2, %rax
ja 0x4135
jmp 0x421e
movq -0x18(%rbp), %rax
movsbl 0x1(%rax), %eax
movl %eax, -0x2c(%rbp)
subl $0x9, %eax
je 0x4169
jmp 0x4147
movl -0x2c(%rbp), %eax
subl $0x20, %eax
jne 0x4181
jmp 0x4151
movq -0x18(%rbp), %rdi
addq $0x2, %rdi
movl $0x20, %esi
callq 0x1070
movq %rax, -0x28(%rbp)
jmp 0x41a1
movq -0x18(%rbp), %rdi
addq $0x2, %rdi
movl $0x9, %esi
callq 0x1070
movq %rax, -0x28(%rbp)
jmp 0x41a1
jmp 0x4183
movq 0x6e6e(%rip), %rax      # 0xaff8
movq (%rax), %rdi
movq -0x18(%rbp), %rdx
leaq 0x4094(%rip), %rsi      # 0x822c
movb $0x0, %al
callq 0x10d0
jmp 0x421e
cmpq $0x0, -0x28(%rbp)
jne 0x41aa
jmp 0x4183
movq -0x28(%rbp), %rax
movb $0x0, (%rax)
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
movl %eax, -0x30(%rbp)
subl $0x43, %eax
je 0x420e
jmp 0x41c2
movl -0x30(%rbp), %eax
subl $0x44, %eax
je 0x4210
jmp 0x41cc
movl -0x30(%rbp), %eax
subl $0x47, %eax
je 0x4210
jmp 0x41d6
movl -0x30(%rbp), %eax
subl $0x4e, %eax
je 0x4210
jmp 0x41e0
movl -0x30(%rbp), %eax
subl $0x52, %eax
je 0x4210
jmp 0x41ea
movl -0x30(%rbp), %eax
subl $0x55, %eax
je 0x4210
jmp 0x41f4
movl -0x30(%rbp), %eax
addl $-0x62, %eax
subl $0x2, %eax
jb 0x420e
jmp 0x4201
movl -0x30(%rbp), %eax
addl $-0x68, %eax
subl $0x2, %eax
ja 0x4212
jmp 0x420e
jmp 0x4217
jmp 0x4217
jmp 0x4183
movq -0x28(%rbp), %rax
movb $0x20, (%rax)
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)