// File: /workspace/github_c_makefile_star2_O0/nimble-code[P]Uno/Src/uno_lts.c
// Function: lts_start
void
lts_start(treenode *root)
{	Graphs *g;
	State *now;
	treenode *n;

	stck    = (SwStack *) 0;
	graph   = rel_graph(graph);
	glob_decls = (Graphs *) 0;
	globs   = rev_release(globs);
	globuse = rev_release(globuse);
	lnodes  = rel_label(lnodes);
	depth   = 0;
	uno_prop = (State *) 0;

	bound_reset();
	gen_reset();
	fallthru = rel_sframe(fallthru);

	n = (treenode *) emalloc(sizeof(treenode));
#if 0
	n->hdr.fnm = (char *) emalloc(strlen(file_name)+1);
	strcpy(n->hdr.fnm, file_name);
#else
	n->hdr.fnm = (char *) emalloc(strlen(cur_dir)+strlen(cur_file)+2);
	strcpy(n->hdr.fnm, cur_dir);
	strcat(n->hdr.fnm, "/");
	strcat(n->hdr.fnm, cur_file);
#endif
	n->hdr.line = 0;

	g = new_graph(n, "_globals_");
	now = g->cfg;
	glob_decls = curgraph;

	lts_tree(now, root);	/* basic construction of cfg */

	for (g = graph; g; g = g->nxt)
		prep_graph(g);	/* fixing links in cfg */

	if (uno_p == 2)		/* -cfg    */
	{	gen_dot();
		return;
	}
	if (cyclo)		/* -cyclo */
	{	cyclomatic();
		return;
	}

	uno_local();		/* check local vars */

	if (show_sharing)
		uno_shared();

	if (!uno_prop)
	{	uno_guse();	/* check for unused globals */
		show_fall();	/* fallthru in switches */
	}

	uno_statistics();

	if (!localonly)
	{	nut_start();
		fclose(fd_uno);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq $0x0, 0x65601(%rip) # 0x85fd8
movq 0x655ea(%rip), %rdi     # 0x85fc8
callq 0x20be0
movq %rax, 0x655de(%rip)     # 0x85fc8
movq $0x0, 0x655eb(%rip) # 0x85fe0
movq 0x655ec(%rip), %rdi     # 0x85fe8
callq 0x20300
movq %rax, 0x655e0(%rip)     # 0x85fe8
movq 0x655e1(%rip), %rdi     # 0x85ff0
callq 0x20300
movq %rax, 0x655d5(%rip)     # 0x85ff0
movq 0x655d6(%rip), %rdi     # 0x85ff8
callq 0x20ca0
movq %rax, 0x655ca(%rip)     # 0x85ff8
movl $0x0, 0x65560(%rip)     # 0x85f98
movq $0x0, 0x655bd(%rip) # 0x86000
callq 0x2c5a0
callq 0x30780
movq 0x655b4(%rip), %rdi     # 0x86008
callq 0x20cf0
movq %rax, 0x655a8(%rip)     # 0x86008
movl $0x50, %edi
callq 0x54c0
movq %rax, -0x20(%rbp)
leaq 0x2d6db(%rip), %rax     # 0x4e150
movq (%rax), %rdi
callq 0x30c0
movq %rax, -0x28(%rbp)
leaq 0x2d8c0(%rip), %rax     # 0x4e348
movq (%rax), %rdi
callq 0x30c0
movq -0x28(%rbp), %rdi
addq %rax, %rdi
addq $0x2, %rdi
callq 0x54c0
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x2d696(%rip), %rax     # 0x4e150
movq (%rax), %rsi
callq 0x3080
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x241b3(%rip), %rsi     # 0x44c84
callq 0x3210
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x2d863(%rip), %rax     # 0x4e348
movq (%rax), %rsi
callq 0x3210
movq -0x20(%rbp), %rax
movl $0x0, 0x10(%rax)
movq -0x20(%rbp), %rdi
leaq 0x245aa(%rip), %rsi     # 0x450ad
callq 0x20d40
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
movq 0x65489(%rip), %rax     # 0x85fa8
movq %rax, 0x654ba(%rip)     # 0x85fe0
movq -0x18(%rbp), %rdi
movq -0x8(%rbp), %rsi
callq 0x21040
movq 0x6548e(%rip), %rax     # 0x85fc8
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x20b5c
movq -0x10(%rbp), %rdi
callq 0x21110
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq %rax, -0x10(%rbp)
jmp 0x20b3e
leaq 0x2d5dd(%rip), %rax     # 0x4e140
cmpl $0x2, (%rax)
jne 0x20b6f
callq 0x213b0
jmp 0x20bce
leaq 0x2d822(%rip), %rax     # 0x4e398
cmpl $0x0, (%rax)
je 0x20b82
callq 0x21490
jmp 0x20bce
callq 0x21550
leaq 0x2d822(%rip), %rax     # 0x4e3b0
cmpl $0x0, (%rax)
je 0x20b98
callq 0x21960
cmpq $0x0, 0x65460(%rip)     # 0x86000
jne 0x20bac
callq 0x21b00
callq 0x21dc0
callq 0x21ff0
leaq 0x2d7e4(%rip), %rax     # 0x4e39c
cmpl $0x0, (%rax)
jne 0x20bce
callq 0x220e0
movq 0x65447(%rip), %rdi     # 0x86010
callq 0x30b0
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)