// File: /workspace/github_c_makefile_star2_O2/rakitzis[P]rc/footobar.c
// Function: Tconv
static bool Tconv(Format *f, int ignore) {
	bool dollar = f->flags & FMT_altform;
	Node *n = va_arg(f->args, Node *);

	if (n == NULL) {
		fmtprint(f, "()");
		return FALSE;
	}
	switch (n->type) {
	case nBang:	fmtprint(f, "!%T", n->u[0].p);				break;
	case nCase:	fmtprint(f, "case %T", n->u[0].p);			break;
	case nNowait:	fmtprint(f, "%T&", n->u[0].p);				break;
	case nRmfn:	fmtprint(f, "fn %T", n->u[0].p);			break;
	case nSubshell:	fmtprint(f, "@ %T", n->u[0].p);				break;
	case nAndalso:	fmtprint(f, "%T&&%T", n->u[0].p, n->u[1].p);		break;
	case nAssign:	fmtprint(f, "%T=%T", n->u[0].p, n->u[1].p);		break;
	case nConcat:	fmtprint(f, "%T^%T", n->u[0].p, n->u[1].p);		break;
	case nElse:	fmtprint(f, "{%T}else %T", n->u[0].p, n->u[1].p);	break;
	case nNewfn:	fmtprint(f, "fn %T {%T}", n->u[0].p, n->u[1].p);	break;
	case nIf:	fmtprint(f, "if(%T)%T", n->u[0].p, n->u[1].p);		break;
	case nOrelse:	fmtprint(f, "%T||%T", n->u[0].p, n->u[1].p);		break;
	case nArgs:	fmtprint(f, "%T %T", n->u[0].p, n->u[1].p);		break;
	case nSwitch:	fmtprint(f, "switch(%T){%T}", n->u[0].p, n->u[1].p);	break;
	case nMatch:	fmtprint(f, "~ %T %T", n->u[0].p, n->u[1].p);		break;
	case nWhile:	fmtprint(f, "while(%T)%T", n->u[0].p, n->u[1].p);	break;
	case nForin:	fmtprint(f, "for(%T in %T)%T", n->u[0].p, n->u[1].p, n->u[2].p); break;
	case nVarsub:	fmtprint(f, "$%T(%T)", n->u[0].p, n->u[1].p);		break;
	case nWord:
		fmtprint(f, n->u[2].i && quotep(n->u[0].s, dollar) ?
				"%#S" : "%S", n->u[0].s);
		break;
	case nLappend: {
		static bool inlist;
		if (!inlist) {
			inlist = TRUE;
			fmtprint(f, "(%T %T)", n->u[0].p, n->u[1].p);
			inlist = FALSE;
		} else {
			fmtprint(f, "%T %T", n->u[0].p, n->u[1].p);
		}
		break;
	}
	case nCount: case nFlat: case nVar: {
		char *lp = "", *rp = "";
		Node *n0 = n->u[0].p;

		if (n0->type != nWord)
			lp = "(", rp = ")";

		switch (n->type) {
		default:	panic("this can't happen");		break;
		case nCount:	fmtprint(f, "$#%s%#T%s", lp, n0, rp);	break;
		case nFlat:	fmtprint(f, "$^%s%#T%s", lp, n0, rp);	break;
		case nVar:	fmtprint(f, "$%s%#T%s", lp, n0, rp);	break;
		}
		break;
	}
	case nDup:
		if (n->u[2].i != -1)
			fmtprint(f, "%D[%d=%d]", n->u[0].i, n->u[1].i, n->u[2].i);
		else
			fmtprint(f, "%D[%d=]", n->u[0].i, n->u[1].i);
		break;
	case nBackq: {
		Node *n0 = n->u[0].p, *n00;
		if (n0 != NULL && n0->type == nVar
		    && (n00 = n0->u[0].p) != NULL && n00->type == nWord && streq(n00->u[0].s, "ifs"))
			fmtprint(f, "`");
		else
			fmtprint(f, "``%T", n0);
		fmtprint(f, "{%T}", n->u[1].p);
		break;
	}
	case nCbody:
	case nBody: {
		Node *n0 = n->u[0].p;
		if (n0 != NULL)
			fmtprint(f, "%T", n->u[0].p);
		if (n->u[1].p != NULL) {
			if (n0 != NULL && n0->type != nNowait)
				fmtprint(f, ";");
			fmtprint(f, "%T", n->u[1].p);
		}
		break;
	}
	case nBrace:
		fmtprint(f, "{%T}", n->u[0].p);
		if (n->u[1].p != NULL)
			fmtprint(f, "%T", n->u[1].p);
		break;
	case nEpilog:
	case nPre:
		fmtprint(f, "%T", n->u[0].p);
		if (n->u[1].p != NULL)
			fmtprint(f, " %T", n->u[1].p);
		break;
	case nPipe: {
		int ofd = n->u[0].i, ifd = n->u[1].i;
		fmtprint(f, "%T|", n->u[2].p);
		if (ifd != 0)
			fmtprint(f, "[%d=%d]", ofd, ifd);
		else if (ofd != 1)
			fmtprint(f, "[%d]", ofd);
		fmtprint(f, "%T", n->u[3].p);
		break;
	}
	case nRedir: {
		int op = n->u[0].i;
		fmtprint(f, "%D", op);
		if (n->u[1].i != defaultfd(op))
			fmtprint(f, "[%d]", n->u[1].i);
		fmtprint(f, "%T", n->u[2].p);
		break;
	}
	case nNmpipe: {
		int op = n->u[0].i;
		fmtprint(f, "%D", op);
		if (n->u[1].i != defaultfd(op))
			fmtprint(f, "[%d]", n->u[1].i);
		fmtprint(f, "{%T}", n->u[2].p);
		break;
	}
	}
	return FALSE;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl (%rdi), %ecx
cmpq $0x28, %rcx
ja 0x5545
movq %rcx, %rax
addq 0x10(%rbx), %rax
addl $0x8, %ecx
movl %ecx, (%rbx)
jmp 0x5551
movq 0x8(%rbx), %rax
leaq 0x8(%rax), %rcx
movq %rcx, 0x8(%rbx)
movq (%rax), %r15
testq %r15, %r15
je 0x55c1
movl (%r15), %eax
cmpq $0x20, %rax
ja 0x5a07
leaq 0x8f23(%rip), %rcx      # 0xe490
movslq (%rcx,%rax,4), %rdx
addq %rcx, %rdx
jmpq *%rdx
movq 0x8(%r15), %rcx
cmpl $0x1e, (%rcx)
leaq 0x98a3(%rip), %rsi      # 0xee27
leaq 0x8feb(%rip), %r8       # 0xe576
cmoveq %rsi, %r8
leaq 0x9088(%rip), %rdx      # 0xe61e
cmoveq %rsi, %rdx
cmpl $0x9, %eax
je 0x596d
cmpl $0xb, %eax
je 0x5964
cmpl $0x1b, %eax
jne 0x5983
leaq 0x908a(%rip), %rsi      # 0xe646
jmp 0x5974
leaq 0x8fad(%rip), %rsi      # 0xe575
movq %rbx, %rdi
xorl %eax, %eax
callq 0xa824
jmp 0x5a07
movq 0x8(%r15), %r14
testq %r14, %r14
je 0x571f
leaq 0x8fac(%rip), %rsi      # 0xe597
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0xa824
movq 0x10(%r15), %rdx
testq %rdx, %rdx
je 0x5a07
cmpl $0x6, (%r14)
je 0x59e9
leaq 0x9056(%rip), %rsi      # 0xe66c
movq %rbx, %rdi
xorl %eax, %eax
callq 0xa824
movq 0x10(%r15), %rdx
jmp 0x59e9
movq 0x8(%r15), %rdx
leaq 0x8f63(%rip), %rsi      # 0xe597
movq %rbx, %rdi
xorl %eax, %eax
callq 0xa824
movq 0x10(%r15), %rdx
testq %rdx, %rdx
je 0x5a07
leaq 0x8f44(%rip), %rsi      # 0xe596
jmp 0x59fd
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x8f7d(%rip), %rsi      # 0xe5e3
jmp 0x5955
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x8f3f(%rip), %rsi      # 0xe5b9
jmp 0x5955
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x8f1f(%rip), %rsi      # 0xe5ad
jmp 0x5955
movq 0x8(%r15), %rdx
leaq 0x8ee5(%rip), %rsi      # 0xe583
jmp 0x59fd
movq 0x8(%r15), %r14
testq %r14, %r14
je 0x56dd
cmpl $0x1b, (%r14)
jne 0x56dd
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x56dd
cmpl $0x1e, (%rax)
jne 0x56dd
movq 0x8(%rax), %rdi
cmpb $0x69, (%rdi)
jne 0x56dd
leaq 0x8f91(%rip), %rsi      # 0xe661
callq 0x31f0
testl %eax, %eax
je 0x5a14
leaq 0x8f83(%rip), %rsi      # 0xe667
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0xa824
movq 0x10(%r15), %rdx
jmp 0x58f7
movq 0x8(%r15), %rdx
leaq 0x8e90(%rip), %rsi      # 0xe595
jmp 0x59fd
movq 0x8(%r15), %rdx
leaq 0x8eaa(%rip), %rsi      # 0xe5bf
movq %rbx, %rdi
xorl %eax, %eax
callq 0xa824
movq 0x10(%r15), %rdx
testq %rdx, %rdx
jne 0x59e9
jmp 0x5a07
movq 0x8(%r15), %rdx
leaq 0x8e43(%rip), %rsi      # 0xe57f
jmp 0x59fd
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x8e4a(%rip), %rsi      # 0xe59a
jmp 0x5955
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x8e3d(%rip), %rsi      # 0xe5a1
jmp 0x5955
cmpb $0x0, 0x1425c(%rip)     # 0x199cc
je 0x5991
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x8e60(%rip), %rsi      # 0xe5e5
jmp 0x5955
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
movq 0x18(%r15), %r8
leaq 0x8e5a(%rip), %rsi      # 0xe5f7
jmp 0x5974
movq 0x8(%r15), %rdx
leaq 0x8dde(%rip), %rsi      # 0xe58b
jmp 0x59fd
movl 0x18(%r15), %r8d
movl 0x8(%r15), %edx
movl 0x10(%r15), %ecx
cmpl $-0x1, %r8d
je 0x59ba
leaq 0x8e80(%rip), %rsi      # 0xe64f
movq %rbx, %rdi
xorl %eax, %eax
callq 0xa824
jmp 0x5a07
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x8dba(%rip), %rsi      # 0xe5a7
jmp 0x5955
movl 0x8(%r15), %ebp
movl 0x10(%r15), %r14d
movq 0x18(%r15), %rdx
leaq 0x8e69(%rip), %rsi      # 0xe66e
movq %rbx, %rdi
xorl %eax, %eax
callq 0xa824
testl %r14d, %r14d
je 0x59cd
leaq 0x8e32(%rip), %rsi      # 0xe651
movq %rbx, %rdi
movl %ebp, %edx
movl %r14d, %ecx
xorl %eax, %eax
callq 0xa824
jmp 0x59e5
movl 0x8(%r15), %ebp
leaq 0x8e39(%rip), %rsi      # 0xe677
movq %rbx, %rdi
movl %ebp, %edx
xorl %eax, %eax
callq 0xa824
movl 0x10(%r15), %edx
decl %ebp
cmpl $0x2, %ebp
movl %edx, %eax
sbbl $0x0, %eax
je 0x586b
leaq 0x8e11(%rip), %rsi      # 0xe672
movq %rbx, %rdi
xorl %eax, %eax
callq 0xa824
movq 0x18(%r15), %rdx
jmp 0x59e9
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x8d41(%rip), %rsi      # 0xe5c4
jmp 0x5955
cmpl $0x0, 0x18(%r15)
je 0x59f2
movl 0x18(%rbx), %esi
andl $0x40, %esi
movq 0x8(%r15), %rdi
callq 0x86d0
testl %eax, %eax
leaq 0x8d68(%rip), %rax      # 0xe613
leaq 0x8d5d(%rip), %rsi      # 0xe60f
cmoveq %rax, %rsi
jmp 0x59f9
movl 0x8(%r15), %ebp
leaq 0x8db1(%rip), %rsi      # 0xe677
movq %rbx, %rdi
movl %ebp, %edx
xorl %eax, %eax
callq 0xa824
movl 0x10(%r15), %edx
decl %ebp
cmpl $0x2, %ebp
movl %edx, %eax
sbbl $0x0, %eax
je 0x58f3
leaq 0x8d89(%rip), %rsi      # 0xe672
movq %rbx, %rdi
xorl %eax, %eax
callq 0xa824
movq 0x18(%r15), %rdx
leaq 0x8cc1(%rip), %rsi      # 0xe5bf
jmp 0x59fd
movq 0x8(%r15), %rdx
leaq 0x8c81(%rip), %rsi      # 0xe58f
jmp 0x59fd
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x8cab(%rip), %rsi      # 0xe5cd
jmp 0x5955
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x8cd4(%rip), %rsi      # 0xe607
jmp 0x5955
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x8ca7(%rip), %rsi      # 0xe5eb
jmp 0x5955
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x8c7f(%rip), %rsi      # 0xe5d4
movq %rbx, %rdi
xorl %eax, %eax
callq 0xa824
jmp 0x5a07
leaq 0x8cd1(%rip), %rsi      # 0xe63c
jmp 0x5974
leaq 0x8cbe(%rip), %rsi      # 0xe632
movq %rbx, %rdi
xorl %eax, %eax
callq 0xa824
jmp 0x5a07
leaq 0x8c96(%rip), %rdi      # 0xe620
callq 0xbeea
jmp 0x5a07
movb $0x1, 0x14034(%rip)     # 0x199cc
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x8c6f(%rip), %rsi      # 0xe616
movq %rbx, %rdi
xorl %eax, %eax
callq 0xa824
movb $0x0, 0x14014(%rip)     # 0x199cc
jmp 0x5a07
leaq 0x8c98(%rip), %rsi      # 0xe659
movq %rbx, %rdi
xorl %eax, %eax
callq 0xa824
jmp 0x5a07
cmpl $0x1, %ebp
je 0x59e5
leaq 0x8c99(%rip), %rsi      # 0xe672
movq %rbx, %rdi
movl %ebp, %edx
xorl %eax, %eax
callq 0xa824
movq 0x20(%r15), %rdx
leaq 0x8ba7(%rip), %rsi      # 0xe597
jmp 0x59fd
leaq 0x8c1a(%rip), %rsi      # 0xe613
movq 0x8(%r15), %rdx
movq %rbx, %rdi
xorl %eax, %eax
callq 0xa824
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0x8c4a(%rip), %rsi      # 0xe665
movq %rbx, %rdi
xorl %eax, %eax
callq 0xa824
jmp 0x56f1