// File: /workspace/github_c_makefile_star2_O1/nimble-code[P]Modex/Src/xtract.c
// Function: doreturn
void
doreturn(int fromwhere)
{	char sbuf[2048];

	if (!visu) return;

	do_locals(1);	/* write local decls of last procedure */

	vis_direct("\n");

	nreturns++;
	if ((sawreturn && needreturn) || extended)
	{	vis_direct("Return");
		if (nreturns > 1)
		{	sprintf(sbuf, "%d", nreturns);
			vis_direct(sbuf);
		}
		vis_direct(":	skip;\n");
		if (!extended
		|| strcmp(fct_name, "main") == 0
		|| strcmp(fct_name, "modex_main") == 0)
			vis_direct("#if 0\n");
		sprintf(sbuf, "\tret_p_%s!lck_id;\n", fct_name);
		vis_direct(sbuf);
		
		if (!dynamic)
		{	vis_direct("\tgoto endRestart\n");
		}
		if (flike
#ifdef SV_COMP
		||  strstr(fct_name, "_atomic_")
#endif
		   )
		{	vis_direct(" } /* function like */\n");
		}
		if (!extended
		|| strcmp(fct_name, "main") == 0
		|| strcmp(fct_name, "modex_main") == 0)
			vis_direct("#endif\n");
	}
	if (fp)
	{	fprintf(fp, "\n/* function-calls:");
		show_fbase(fp);
		fprintf(fp, "*/\n");
	}

	if (strcmp(wanttype, "body") != 0)
		vis_direct("}\n");
	else
		vis_direct(";\n");

	if (0) { 
		sprintf(sbuf, "/* from %d */\n", fromwhere);
		vis_direct(sbuf);
	}

	strcpy(fct_name, "--");
	vis_start();
}

// Assembly:
leaq 0x25bff(%rip), %rax     # 0x399c8
cmpl $0x0, (%rax)
je 0x14004
pushq %r14
pushq %rbx
subq $0x808, %rsp            # imm = 0x808
movl $0x1, %edi
callq 0xf7b0
leaq 0x1197d(%rip), %rdi     # 0x2576a
callq 0xebec
incl 0x32398(%rip)           # 0x46190
cmpl $0x0, 0x32395(%rip)     # 0x46194
setne %al
cmpl $0x0, 0x3238f(%rip)     # 0x46198
setne %cl
leaq 0x25e71(%rip), %r14     # 0x39c84
testb %cl, %al
jne 0x13e21
cmpl $0x0, (%r14)
je 0x13f69
leaq 0x11d6f(%rip), %rdi     # 0x25b97
callq 0xebec
movl 0x3235d(%rip), %edx     # 0x46190
cmpl $0x2, %edx
jl 0x13e54
leaq 0x1a8ec(%rip), %rsi     # 0x2e72b
movq %rsp, %rbx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x4290
movq %rbx, %rdi
callq 0xebec
leaq 0x1220e(%rip), %rdi     # 0x26069
callq 0xebec
cmpl $0x0, (%r14)
je 0x13ea3
movl $0x6e69616d, %eax       # imm = 0x6E69616D
xorl 0x2350f(%rip), %eax     # 0x37380
movzbl 0x2350c(%rip), %ecx     # 0x37384
orl %eax, %ecx
je 0x13ea3
movabsq $0x616d5f7865646f6d, %rax # imm = 0x616D5F7865646F6D
xorq 0x234f3(%rip), %rax     # 0x37380
movabsq $0x6e69616d5f7865, %rcx # imm = 0x6E69616D5F7865
xorq 0x234e5(%rip), %rcx     # 0x37383
orq %rax, %rcx
jne 0x13eaf
leaq 0x11707(%rip), %rdi     # 0x255b1
callq 0xebec
leaq 0x121bc(%rip), %rsi     # 0x26072
leaq 0x234c3(%rip), %rdx     # 0x37380
movq %rsp, %rbx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x4290
movq %rbx, %rdi
callq 0xebec
leaq 0x25b47(%rip), %rax     # 0x39a20
cmpl $0x0, (%rax)
jne 0x13eea
leaq 0x121a0(%rip), %rdi     # 0x26085
callq 0xebec
leaq 0x25d8f(%rip), %rax     # 0x39c80
cmpl $0x0, (%rax)
jne 0x13f0e
leaq 0x23483(%rip), %rdi     # 0x37380
leaq 0x132b7(%rip), %rsi     # 0x271bb
callq 0x42c0
testq %rax, %rax
je 0x13f1a
leaq 0x12182(%rip), %rdi     # 0x26097
callq 0xebec
cmpl $0x0, (%r14)
je 0x13f5d
movl $0x6e69616d, %eax       # imm = 0x6E69616D
xorl 0x23455(%rip), %eax     # 0x37380
movzbl 0x23452(%rip), %ecx     # 0x37384
orl %eax, %ecx
je 0x13f5d
movabsq $0x616d5f7865646f6d, %rax # imm = 0x616D5F7865646F6D
xorq 0x23439(%rip), %rax     # 0x37380
movabsq $0x6e69616d5f7865, %rcx # imm = 0x6E69616D5F7865
xorq 0x2342b(%rip), %rcx     # 0x37383
orq %rax, %rcx
jne 0x13f69
leaq 0x117be(%rip), %rdi     # 0x25722
callq 0xebec
movq 0x263f0(%rip), %rcx     # 0x3a360
testq %rcx, %rcx
je 0x13fb4
leaq 0x12133(%rip), %rdi     # 0x260af
movl $0x13, %esi
movl $0x1, %edx
callq 0x42b0
movq 0x263ce(%rip), %rdi     # 0x3a360
callq 0x1f3e4
movq 0x263c2(%rip), %rcx     # 0x3a360
leaq 0x12393(%rip), %rdi     # 0x26338
movl $0x3, %esi
movl $0x1, %edx
callq 0x42b0
leaq 0x231ed(%rip), %rax     # 0x371a8
movq (%rax), %rdi
leaq 0x102fc(%rip), %rsi     # 0x242c1
callq 0x41b0
testl %eax, %eax
leaq 0x12d20(%rip), %rax     # 0x26cf3
leaq 0x12cc5(%rip), %rdi     # 0x26c9f
cmoveq %rax, %rdi
callq 0xebec
xorl %eax, %eax
movb %al, 0x23397(%rip)      # 0x37382
movw $0x2d2d, 0x2338c(%rip)  # imm = 0x2D2D
movb %al, 0x26376(%rip)      # 0x3a370
addq $0x808, %rsp            # imm = 0x808
popq %rbx
popq %r14
retq