// File: /workspace/github_c_makefile_star2_O2/ArtifexSoftware[P]mujs/pp.c
// Function: pstm
static void pstm(int d, js_Ast *stm)
{
	if (stm->type == STM_BLOCK) {
		pblock(d, stm);
		return;
	}

	in(d);

	switch (stm->type) {
	case AST_FUNDEC:
		ps("function ");
		pexp(d, stm->a);
		pc('(');
		pargs(d, stm->b);
		pc(')'); sp(); pc('{'); nl();
		pstmlist(d, stm->c);
		in(d); pc('}');
		break;

	case STM_EMPTY:
		pc(';');
		break;

	case STM_VAR:
		ps("var ");
		pvarlist(d, stm->a);
		pc(';');
		break;

	case STM_IF:
		ps("if"); sp(); pc('('); pexp(d, stm->a); pc(')');
		pstmh(d, stm->b);
		if (stm->c) {
			nl(); in(d); ps("else");
			pstmh(d, stm->c);
		}
		break;

	case STM_DO:
		ps("do");
		pstmh(d, stm->a);
		nl();
		in(d); ps("while"); sp(); pc('('); pexp(d, stm->b); pc(')'); pc(';');
		break;

	case STM_WHILE:
		ps("while"); sp(); pc('('); pexp(d, stm->a); pc(')');
		pstmh(d, stm->b);
		break;

	case STM_FOR:
		ps("for"); sp(); pc('(');
		pexp(d, stm->a); pc(';'); sp();
		pexp(d, stm->b); pc(';'); sp();
		pexp(d, stm->c); pc(')');
		pstmh(d, stm->d);
		break;
	case STM_FOR_VAR:
		ps("for"); sp(); ps("(var ");
		pvarlist(d, stm->a); pc(';'); sp();
		pexp(d, stm->b); pc(';'); sp();
		pexp(d, stm->c); pc(')');
		pstmh(d, stm->d);
		break;
	case STM_FOR_IN:
		ps("for"); sp(); pc('(');
		pexp(d, stm->a); ps(" in ");
		pexp(d, stm->b); pc(')');
		pstmh(d, stm->c);
		break;
	case STM_FOR_IN_VAR:
		ps("for"); sp(); ps("(var ");
		pvarlist(d, stm->a); ps(" in ");
		pexp(d, stm->b); pc(')');
		pstmh(d, stm->c);
		break;

	case STM_CONTINUE:
		ps("continue");
		if (stm->a) {
			pc(' '); pexp(d, stm->a);
		}
		pc(';');
		break;

	case STM_BREAK:
		ps("break");
		if (stm->a) {
			pc(' '); pexp(d, stm->a);
		}
		pc(';');
		break;

	case STM_RETURN:
		ps("return");
		if (stm->a) {
			pc(' '); pexp(d, stm->a);
		}
		pc(';');
		break;

	case STM_WITH:
		ps("with"); sp(); pc('('); pexp(d, stm->a); pc(')');
		pstmh(d, stm->b);
		break;

	case STM_SWITCH:
		ps("switch"); sp(); pc('(');
		pexp(d, stm->a);
		pc(')'); sp(); pc('{'); nl();
		pcaselist(d, stm->b);
		in(d); pc('}');
		break;

	case STM_THROW:
		ps("throw "); pexp(d, stm->a); pc(';');
		break;

	case STM_TRY:
		ps("try");
		if (minify && stm->a->type != STM_BLOCK)
			pc(' ');
		pstmh(d, stm->a);
		if (stm->b && stm->c) {
			nl(); in(d); ps("catch"); sp(); pc('('); pexp(d, stm->b); pc(')');
			pstmh(d, stm->c);
		}
		if (stm->d) {
			nl(); in(d); ps("finally");
			pstmh(d, stm->d);
		}
		break;

	case STM_LABEL:
		pexp(d, stm->a); pc(':'); sp(); pstm(d, stm->b);
		break;

	case STM_DEBUGGER:
		ps("debugger");
		pc(';');
		break;

	default:
		pexp(d, stm);
		pc(';');
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movl %edi, %ebx
leaq 0x1d4ff(%rip), %r15     # 0x22098
pushq $0x3a
popq %rbp
cmpl $0x47, (%r14)
je 0x4c44
movl %ebx, %edi
callq 0x50ed
movl (%r14), %eax
leal -0x48(%rax), %ecx
cmpl $0x11, %ecx
ja 0x4bde
movslq (%r15,%rcx,4), %rax
addq %r15, %rax
jmpq *%rax
movq 0x10(%r14), %rsi
movl %ebx, %edi
callq 0x5124
movl %ebp, %edi
callq 0x4040
callq 0x5187
movq 0x18(%r14), %r14
jmp 0x4b9c
cmpl $0x1, %eax
jne 0x5051
leaq 0x1d8d3(%rip), %rdi     # 0x224c1
callq 0x5115
movq 0x10(%r14), %rsi
movl %ebx, %edi
callq 0x5124
pushq $0x28
popq %rdi
callq 0x4040
movq 0x18(%r14), %rsi
movl %ebx, %edi
callq 0x512e
pushq $0x29
popq %rdi
callq 0x4040
callq 0x5187
pushq $0x7b
popq %rdi
callq 0x4040
callq 0x5080
movq 0x20(%r14), %rsi
movl %ebx, %edi
callq 0x4b32
movl %ebx, %edi
callq 0x50ed
pushq $0x7d
jmp 0x505d
movl %ebx, %edi
movq %r14, %rsi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x5092
leaq 0x1d878(%rip), %rdi     # 0x224db
callq 0x5115
jmp 0x4d8f
leaq 0x26dad(%rip), %rdi     # 0x2ba21
callq 0x5115
callq 0x5187
pushq $0x28
popq %rdi
callq 0x4040
movq 0x10(%r14), %rsi
movl %ebx, %edi
callq 0x5124
pushq $0x29
popq %rdi
callq 0x4040
callq 0x5187
pushq $0x7b
popq %rdi
callq 0x4040
callq 0x5080
leaq 0x1d9b4(%rip), %r15     # 0x22666
pushq $0x3a
popq %rbp
leaq 0x1d9b0(%rip), %r12     # 0x2266c
movq 0x18(%r14), %r14
testq %r14, %r14
je 0x4c36
movq 0x10(%r14), %r13
movl (%r13), %eax
cmpl $0x5a, %eax
jne 0x4d0b
movl %ebx, %edi
callq 0x50ed
movq %r15, %rdi
callq 0x5115
movq 0x10(%r13), %rsi
movl %ebx, %edi
callq 0x5124
movl %ebp, %edi
callq 0x4040
callq 0x5080
movq 0x18(%r13), %rsi
movl %ebx, %edi
callq 0x4b32
movl (%r13), %eax
cmpl $0x5b, %eax
jne 0x4cbc
movl %ebx, %edi
callq 0x50ed
movq %r12, %rdi
callq 0x5115
callq 0x5080
movq 0x10(%r13), %rsi
movl %ebx, %edi
callq 0x4b32
jmp 0x4cbc
leaq 0x1dcb3(%rip), %rdi     # 0x229eb
jmp 0x4d77
leaq 0x1dcb4(%rip), %rdi     # 0x229f5
jmp 0x4d77
leaq 0x1dc66(%rip), %rdi     # 0x229b0
callq 0x5115
callq 0x5187
leaq 0x1d775(%rip), %rdi     # 0x224d0
callq 0x5115
movq 0x10(%r14), %rsi
movl %ebx, %edi
callq 0x5199
jmp 0x4e68
leaq 0x1dc67(%rip), %rdi     # 0x229de
callq 0x5115
cmpq $0x0, 0x10(%r14)
je 0x505b
pushq $0x20
popq %rdi
callq 0x4040
movq 0x10(%r14), %rsi
movl %ebx, %edi
jmp 0x5056
leaq 0x1dc7d(%rip), %rdi     # 0x22a1e
callq 0x5115
cmpl $0x0, 0x35613(%rip)     # 0x3a3c0
je 0x4dc0
movq 0x10(%r14), %rax
cmpl $0x47, (%rax)
je 0x4dc0
pushq $0x20
popq %rdi
callq 0x4040
movq 0x10(%r14), %rsi
movl %ebx, %edi
callq 0x5245
cmpq $0x0, 0x18(%r14)
je 0x4e1c
cmpq $0x0, 0x20(%r14)
je 0x4e1c
callq 0x5080
movl %ebx, %edi
callq 0x50ed
leaq 0x1ddc6(%rip), %rdi     # 0x22bb2
callq 0x5115
callq 0x5187
pushq $0x28
popq %rdi
callq 0x4040
movq 0x18(%r14), %rsi
movl %ebx, %edi
callq 0x5124
pushq $0x29
popq %rdi
callq 0x4040
movq 0x20(%r14), %rsi
movl %ebx, %edi
callq 0x5245
cmpq $0x0, 0x28(%r14)
je 0x5071
callq 0x5080
movl %ebx, %edi
callq 0x50ed
leaq 0x1d6a8(%rip), %rdi     # 0x224e2
callq 0x5115
jmp 0x5038
leaq 0x1db65(%rip), %rdi     # 0x229b0
callq 0x5115
callq 0x5187
pushq $0x28
popq %rdi
callq 0x4040
movq 0x10(%r14), %rsi
movl %ebx, %edi
callq 0x5124
leaq 0x1d667(%rip), %rdi     # 0x224d6
callq 0x5115
movq 0x18(%r14), %rsi
movl %ebx, %edi
callq 0x5124
pushq $0x29
popq %rdi
callq 0x4040
jmp 0x4f1f
leaq 0x1d63e(%rip), %rdi     # 0x224d1
callq 0x5115
movq 0x10(%r14), %rsi
movl %ebx, %edi
callq 0x5199
jmp 0x505b
leaq 0x1daf7(%rip), %rdi     # 0x229a6
jmp 0x4fac
leaq 0x1db6b(%rip), %rdi     # 0x22a26
callq 0x5115
jmp 0x505b
leaq 0x1dacc(%rip), %rdi     # 0x22998
callq 0x5115
callq 0x5187
pushq $0x28
popq %rdi
callq 0x4040
movq 0x10(%r14), %rsi
movl %ebx, %edi
callq 0x5124
pushq $0x29
popq %rdi
callq 0x4040
movq 0x18(%r14), %rsi
movl %ebx, %edi
callq 0x5245
cmpq $0x0, 0x20(%r14)
je 0x5071
callq 0x5080
movl %ebx, %edi
callq 0x50ed
leaq 0x1d5b1(%rip), %rdi     # 0x224cb
callq 0x5115
movq 0x20(%r14), %rsi
jmp 0x503c
leaq 0x1da81(%rip), %rdi     # 0x229b0
callq 0x5115
callq 0x5187
pushq $0x28
popq %rdi
callq 0x4040
movq 0x10(%r14), %rsi
movl %ebx, %edi
callq 0x5124
jmp 0x4fff
leaq 0x1da47(%rip), %rdi     # 0x2299f
callq 0x5115
movq 0x10(%r14), %rsi
movl %ebx, %edi
callq 0x5245
callq 0x5080
movl %ebx, %edi
callq 0x50ed
leaq 0x1da2b(%rip), %rdi     # 0x229a6
callq 0x5115
callq 0x5187
pushq $0x28
popq %rdi
callq 0x4040
movq 0x18(%r14), %rsi
movl %ebx, %edi
callq 0x5124
pushq $0x29
popq %rdi
callq 0x4040
jmp 0x505b
leaq 0x1da54(%rip), %rdi     # 0x22a00
callq 0x5115
callq 0x5187
pushq $0x28
popq %rdi
callq 0x4040
movq 0x10(%r14), %rsi
movl %ebx, %edi
callq 0x5124
pushq $0x29
popq %rdi
callq 0x4040
movq 0x18(%r14), %rsi
jmp 0x503c
leaq 0x1d9d2(%rip), %rdi     # 0x229b0
callq 0x5115
callq 0x5187
leaq 0x1d4e1(%rip), %rdi     # 0x224d0
callq 0x5115
movq 0x10(%r14), %rsi
movl %ebx, %edi
callq 0x5199
pushq $0x3b
popq %rbp
movl %ebp, %edi
callq 0x4040
callq 0x5187
movq 0x18(%r14), %rsi
movl %ebx, %edi
callq 0x5124
movl %ebp, %edi
callq 0x4040
callq 0x5187
movq 0x20(%r14), %rsi
movl %ebx, %edi
callq 0x5124
pushq $0x29
popq %rdi
callq 0x4040
movq 0x28(%r14), %rsi
movl %ebx, %edi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x5245
movl %ebx, %edi
movq %r14, %rsi
callq 0x5124
pushq $0x3b
popq %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x4040
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq