// File: /workspace/github_c_makefile_star2_O3/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 0x56e4
movq %rcx, %rax
addq 0x10(%rbx), %rax
addl $0x8, %ecx
movl %ecx, (%rbx)
jmp 0x56f0
movq 0x8(%rbx), %rax
leaq 0x8(%rax), %rcx
movq %rcx, 0x8(%rbx)
movq (%rax), %r15
testq %r15, %r15
je 0x5760
movl (%r15), %eax
cmpq $0x20, %rax
ja 0x5ba6
leaq 0x9d84(%rip), %rcx      # 0xf490
movslq (%rcx,%rax,4), %rdx
addq %rcx, %rdx
jmpq *%rdx
movq 0x8(%r15), %rcx
cmpl $0x1e, (%rcx)
leaq 0xa704(%rip), %rsi      # 0xfe27
leaq 0x9e4c(%rip), %r8       # 0xf576
cmoveq %rsi, %r8
leaq 0x9ee9(%rip), %rdx      # 0xf61e
cmoveq %rsi, %rdx
cmpl $0x9, %eax
je 0x5b0c
cmpl $0xb, %eax
je 0x5b03
cmpl $0x1b, %eax
jne 0x5b22
leaq 0x9eeb(%rip), %rsi      # 0xf646
jmp 0x5b13
leaq 0x9e0e(%rip), %rsi      # 0xf575
movq %rbx, %rdi
xorl %eax, %eax
callq 0xaeba
jmp 0x5ba6
movq 0x8(%r15), %r14
testq %r14, %r14
je 0x58be
leaq 0x9e0d(%rip), %rsi      # 0xf597
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0xaeba
movq 0x10(%r15), %rdx
testq %rdx, %rdx
je 0x5ba6
cmpl $0x6, (%r14)
je 0x5b88
leaq 0x9eb7(%rip), %rsi      # 0xf66c
movq %rbx, %rdi
xorl %eax, %eax
callq 0xaeba
movq 0x10(%r15), %rdx
jmp 0x5b88
movq 0x8(%r15), %rdx
leaq 0x9dc4(%rip), %rsi      # 0xf597
movq %rbx, %rdi
xorl %eax, %eax
callq 0xaeba
movq 0x10(%r15), %rdx
testq %rdx, %rdx
je 0x5ba6
leaq 0x9da5(%rip), %rsi      # 0xf596
jmp 0x5b9c
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x9dde(%rip), %rsi      # 0xf5e3
jmp 0x5af4
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x9da0(%rip), %rsi      # 0xf5b9
jmp 0x5af4
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x9d80(%rip), %rsi      # 0xf5ad
jmp 0x5af4
movq 0x8(%r15), %rdx
leaq 0x9d46(%rip), %rsi      # 0xf583
jmp 0x5b9c
movq 0x8(%r15), %r14
testq %r14, %r14
je 0x587c
cmpl $0x1b, (%r14)
jne 0x587c
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x587c
cmpl $0x1e, (%rax)
jne 0x587c
movq 0x8(%rax), %rdi
cmpb $0x69, (%rdi)
jne 0x587c
leaq 0x9df2(%rip), %rsi      # 0xf661
callq 0x31f0
testl %eax, %eax
je 0x5bb3
leaq 0x9de4(%rip), %rsi      # 0xf667
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0xaeba
movq 0x10(%r15), %rdx
jmp 0x5a96
movq 0x8(%r15), %rdx
leaq 0x9cf1(%rip), %rsi      # 0xf595
jmp 0x5b9c
movq 0x8(%r15), %rdx
leaq 0x9d0b(%rip), %rsi      # 0xf5bf
movq %rbx, %rdi
xorl %eax, %eax
callq 0xaeba
movq 0x10(%r15), %rdx
testq %rdx, %rdx
jne 0x5b88
jmp 0x5ba6
movq 0x8(%r15), %rdx
leaq 0x9ca4(%rip), %rsi      # 0xf57f
jmp 0x5b9c
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x9cab(%rip), %rsi      # 0xf59a
jmp 0x5af4
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x9c9e(%rip), %rsi      # 0xf5a1
jmp 0x5af4
cmpb $0x0, 0x140bd(%rip)     # 0x199cc
je 0x5b30
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x9cc1(%rip), %rsi      # 0xf5e5
jmp 0x5af4
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
movq 0x18(%r15), %r8
leaq 0x9cbb(%rip), %rsi      # 0xf5f7
jmp 0x5b13
movq 0x8(%r15), %rdx
leaq 0x9c3f(%rip), %rsi      # 0xf58b
jmp 0x5b9c
movl 0x18(%r15), %r8d
movl 0x8(%r15), %edx
movl 0x10(%r15), %ecx
cmpl $-0x1, %r8d
je 0x5b59
leaq 0x9ce1(%rip), %rsi      # 0xf64f
movq %rbx, %rdi
xorl %eax, %eax
callq 0xaeba
jmp 0x5ba6
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x9c1b(%rip), %rsi      # 0xf5a7
jmp 0x5af4
movl 0x8(%r15), %ebp
movl 0x10(%r15), %r14d
movq 0x18(%r15), %rdx
leaq 0x9cca(%rip), %rsi      # 0xf66e
movq %rbx, %rdi
xorl %eax, %eax
callq 0xaeba
testl %r14d, %r14d
je 0x5b6c
leaq 0x9c93(%rip), %rsi      # 0xf651
movq %rbx, %rdi
movl %ebp, %edx
movl %r14d, %ecx
xorl %eax, %eax
callq 0xaeba
jmp 0x5b84
movl 0x8(%r15), %ebp
leaq 0x9c9a(%rip), %rsi      # 0xf677
movq %rbx, %rdi
movl %ebp, %edx
xorl %eax, %eax
callq 0xaeba
movl 0x10(%r15), %edx
decl %ebp
cmpl $0x2, %ebp
movl %edx, %eax
sbbl $0x0, %eax
je 0x5a0a
leaq 0x9c72(%rip), %rsi      # 0xf672
movq %rbx, %rdi
xorl %eax, %eax
callq 0xaeba
movq 0x18(%r15), %rdx
jmp 0x5b88
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x9ba2(%rip), %rsi      # 0xf5c4
jmp 0x5af4
cmpl $0x0, 0x18(%r15)
je 0x5b91
movl 0x18(%rbx), %esi
andl $0x40, %esi
movq 0x8(%r15), %rdi
callq 0x8b04
testl %eax, %eax
leaq 0x9bc9(%rip), %rax      # 0xf613
leaq 0x9bbe(%rip), %rsi      # 0xf60f
cmoveq %rax, %rsi
jmp 0x5b98
movl 0x8(%r15), %ebp
leaq 0x9c12(%rip), %rsi      # 0xf677
movq %rbx, %rdi
movl %ebp, %edx
xorl %eax, %eax
callq 0xaeba
movl 0x10(%r15), %edx
decl %ebp
cmpl $0x2, %ebp
movl %edx, %eax
sbbl $0x0, %eax
je 0x5a92
leaq 0x9bea(%rip), %rsi      # 0xf672
movq %rbx, %rdi
xorl %eax, %eax
callq 0xaeba
movq 0x18(%r15), %rdx
leaq 0x9b22(%rip), %rsi      # 0xf5bf
jmp 0x5b9c
movq 0x8(%r15), %rdx
leaq 0x9ae2(%rip), %rsi      # 0xf58f
jmp 0x5b9c
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x9b0c(%rip), %rsi      # 0xf5cd
jmp 0x5af4
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x9b35(%rip), %rsi      # 0xf607
jmp 0x5af4
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x9b08(%rip), %rsi      # 0xf5eb
jmp 0x5af4
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x9ae0(%rip), %rsi      # 0xf5d4
movq %rbx, %rdi
xorl %eax, %eax
callq 0xaeba
jmp 0x5ba6
leaq 0x9b32(%rip), %rsi      # 0xf63c
jmp 0x5b13
leaq 0x9b1f(%rip), %rsi      # 0xf632
movq %rbx, %rdi
xorl %eax, %eax
callq 0xaeba
jmp 0x5ba6
leaq 0x9af7(%rip), %rdi      # 0xf620
callq 0xc72e
jmp 0x5ba6
movb $0x1, 0x13e95(%rip)     # 0x199cc
movq 0x8(%r15), %rdx
movq 0x10(%r15), %rcx
leaq 0x9ad0(%rip), %rsi      # 0xf616
movq %rbx, %rdi
xorl %eax, %eax
callq 0xaeba
movb $0x0, 0x13e75(%rip)     # 0x199cc
jmp 0x5ba6
leaq 0x9af9(%rip), %rsi      # 0xf659
movq %rbx, %rdi
xorl %eax, %eax
callq 0xaeba
jmp 0x5ba6
cmpl $0x1, %ebp
je 0x5b84
leaq 0x9afa(%rip), %rsi      # 0xf672
movq %rbx, %rdi
movl %ebp, %edx
xorl %eax, %eax
callq 0xaeba
movq 0x20(%r15), %rdx
leaq 0x9a08(%rip), %rsi      # 0xf597
jmp 0x5b9c
leaq 0x9a7b(%rip), %rsi      # 0xf613
movq 0x8(%r15), %rdx
movq %rbx, %rdi
xorl %eax, %eax
callq 0xaeba
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0x9aab(%rip), %rsi      # 0xf665
movq %rbx, %rdi
xorl %eax, %eax
callq 0xaeba
jmp 0x5890