// File: /workspace/github_c_makefile_star2_O0/Oric4ever[P]lcc65/6502/build/../src/decl.c
// Function: parameters
static Type *parameters(int lev) {
	Type *proto = 0;

	enterscope();
	if (kind[t] == CHAR || kind[t] == STATIC
	|| t == ID && tsym && tsym->sclass == TYPEDEF) {
		int sclass, n = 0;
		Type last = 0, ty;
		List list = 0;
		for (;;) {
			Symbol p;
			char *id = 0;
			n++;
			if (last && t == ELLIPSIS) {
				if (last == voidtype)
					error("illegal formal parameter types\n");
				list = append(voidtype, list);
				t = gettok();
				break;
			}
			if (t == ID && (tsym == 0 || tsym->sclass != TYPEDEF)
			||  t != ID && t != REGISTER && kind[t] != CHAR)
				error("missing parameter type\n");
			ty = dclr(type(PARAM, &sclass), &id, lev + 1);
			if (Aflag >= 1 && !hasproto(ty))
				warning("missing prototype\n");
			if (ty == voidtype && (last || id))
				error("illegal formal parameter types\n");
			if (id == 0)
				id = stringd(n);
			if (ty == voidtype)
				list = append(voidtype, list);
			else {
				p = dclparam(sclass, id, ty, &src);
				list = append(p->type, list);
			}
			last = ty;
			if (t != ',')
				break;
			t = gettok();
		}
		proto = (Type *)list_to_a(list, (Generic *)alloc((n + 1)*sizeof (Type)));
	} else if (t == ID) {
		for (;;) {
			if (t != ID) {
				error("expecting an identifier\n");
				break;
			}
			dclparam(0, token, (Type)0, &src);
			t = gettok();
			if (t != ',')
				break;
			t = gettok();
		}
	}
	if (t != ')') {
		static char follow[] = { CHAR, STATIC, IF, ')', 0 };
		expect(')');
		skipto('{', follow);
	}
	if (t == ')')
		t = gettok();
	return proto;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movl %edi, -0x4(%rbp)
movq $0x0, -0x10(%rbp)
callq 0x24100
leaq 0x330f1(%rip), %rax     # 0x3db80
movl (%rax), %eax
movl %eax, %ecx
leaq 0x2eef6(%rip), %rax     # 0x39990
movsbl (%rax,%rcx), %eax
cmpl $0x3, %eax
je 0xaaf6
leaq 0x330d6(%rip), %rax     # 0x3db80
movl (%rax), %eax
movl %eax, %ecx
leaq 0x2eedb(%rip), %rax     # 0x39990
movsbl (%rax,%rcx), %eax
cmpl $0x51, %eax
je 0xaaf6
leaq 0x330bb(%rip), %rax     # 0x3db80
cmpl $0x20, (%rax)
jne 0xadcb
leaq 0x3301b(%rip), %rax     # 0x3daf0
cmpq $0x0, (%rax)
je 0xadcb
leaq 0x3300a(%rip), %rax     # 0x3daf0
movq (%rax), %rax
movzbl 0x1a(%rax), %eax
cmpl $0x53, %eax
jne 0xadcb
movl $0x0, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq $0x0, -0x30(%rbp)
movq $0x0, -0x40(%rbp)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0xab7b
leaq 0x33054(%rip), %rax     # 0x3db80
cmpl $0x40, (%rax)
jne 0xab7b
movq -0x20(%rbp), %rax
leaq 0x39704(%rip), %rcx     # 0x44240
cmpq (%rcx), %rax
jne 0xab4f
leaq 0x25082(%rip), %rdi     # 0x2fbca
movb $0x0, %al
callq 0xd530
leaq 0x396ea(%rip), %rax     # 0x44240
movq (%rax), %rdi
movq -0x30(%rbp), %rsi
callq 0x23500
movq %rax, -0x30(%rbp)
callq 0x15170
movl %eax, %ecx
leaq 0x3300c(%rip), %rax     # 0x3db80
movl %ecx, (%rax)
jmp 0xacf7
leaq 0x32ffe(%rip), %rax     # 0x3db80
cmpl $0x20, (%rax)
jne 0xaba7
leaq 0x32f62(%rip), %rax     # 0x3daf0
cmpq $0x0, (%rax)
je 0xabda
leaq 0x32f55(%rip), %rax     # 0x3daf0
movq (%rax), %rax
movzbl 0x1a(%rax), %eax
cmpl $0x53, %eax
jne 0xabda
leaq 0x32fd2(%rip), %rax     # 0x3db80
cmpl $0x20, (%rax)
je 0xabe8
leaq 0x32fc6(%rip), %rax     # 0x3db80
cmpl $0x4e, (%rax)
je 0xabe8
leaq 0x32fba(%rip), %rax     # 0x3db80
movl (%rax), %eax
movl %eax, %ecx
leaq 0x2edbf(%rip), %rax     # 0x39990
movsbl (%rax,%rcx), %eax
cmpl $0x3, %eax
je 0xabe8
leaq 0x25009(%rip), %rdi     # 0x2fbea
movb $0x0, %al
callq 0xd530
movl $0x4, %edi
leaq -0x14(%rbp), %rsi
callq 0x7f00
movq %rax, %rdi
movl -0x4(%rbp), %edx
addl $0x1, %edx
leaq -0x40(%rbp), %rsi
callq 0x82c0
movq %rax, -0x28(%rbp)
leaq 0x33015(%rip), %rax     # 0x3dc28
cmpl $0x1, (%rax)
jl 0xac34
movq -0x28(%rbp), %rdi
callq 0x28aa0
cmpl $0x0, %eax
jne 0xac34
leaq 0x247f6(%rip), %rdi     # 0x2f423
movb $0x0, %al
callq 0xdba0
movq -0x28(%rbp), %rax
leaq 0x39601(%rip), %rcx     # 0x44240
cmpq (%rcx), %rax
jne 0xac60
cmpq $0x0, -0x20(%rbp)
jne 0xac52
cmpq $0x0, -0x40(%rbp)
je 0xac60
leaq 0x24f71(%rip), %rdi     # 0x2fbca
movb $0x0, %al
callq 0xd530
cmpq $0x0, -0x40(%rbp)
jne 0xac73
movl -0x18(%rbp), %edi
callq 0x23c50
movq %rax, -0x40(%rbp)
movq -0x28(%rbp), %rax
leaq 0x395c2(%rip), %rcx     # 0x44240
cmpq (%rcx), %rax
jne 0xac9c
leaq 0x395b6(%rip), %rax     # 0x44240
movq (%rax), %rdi
movq -0x30(%rbp), %rsi
callq 0x23500
movq %rax, -0x30(%rbp)
jmp 0xaccc
movl -0x14(%rbp), %edi
movq -0x40(%rbp), %rsi
movq -0x28(%rbp), %rdx
leaq 0x32e2a(%rip), %rcx     # 0x3dad8
callq 0x91f0
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq 0x20(%rax), %rdi
movq -0x30(%rbp), %rsi
callq 0x23500
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x20(%rbp)
leaq 0x32ea5(%rip), %rax     # 0x3db80
cmpl $0x2c, (%rax)
je 0xace2
jmp 0xacf7
callq 0x15170
movl %eax, %ecx
leaq 0x32e90(%rip), %rax     # 0x3db80
movl %ecx, (%rax)
jmp 0xab0d
movq -0x30(%rbp), %rax
movq %rax, -0x48(%rbp)
movl -0x18(%rbp), %eax
addl $0x1, %eax
cltq
shlq $0x3, %rax
addq $0x7, %rax
andq $-0x8, %rax
movl %eax, %ecx
leaq 0x30924(%rip), %rax     # 0x3b640
movq (%rax), %rax
movl %ecx, (%rax)
leaq 0x30918(%rip), %rax     # 0x3b640
movq (%rax), %rax
movq 0x8(%rax), %rax
leaq 0x3090a(%rip), %rcx     # 0x3b640
movq (%rcx), %rcx
movslq (%rcx), %rcx
addq %rcx, %rax
leaq 0x308fa(%rip), %rcx     # 0x3b640
movq (%rcx), %rcx
cmpq 0x10(%rcx), %rax
jb 0xad6d
leaq 0x308ea(%rip), %rax     # 0x3b640
movq (%rax), %rax
movl (%rax), %edi
leaq 0x308de(%rip), %rsi     # 0x3b640
callq 0x253d0
movq %rax, -0x50(%rbp)
jmp 0xadb8
leaq 0x308cc(%rip), %rax     # 0x3b640
movq (%rax), %rax
movl (%rax), %edx
leaq 0x308c0(%rip), %rax     # 0x3b640
movq (%rax), %rax
movq 0x8(%rax), %rcx
movslq %edx, %rdx
addq %rdx, %rcx
movq %rcx, 0x8(%rax)
leaq 0x308a8(%rip), %rax     # 0x3b640
movq (%rax), %rax
movq 0x8(%rax), %rax
leaq 0x3089a(%rip), %rcx     # 0x3b640
movq (%rcx), %rcx
movslq (%rcx), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
addq %rcx, %rax
movq %rax, -0x50(%rbp)
movq -0x48(%rbp), %rdi
movq -0x50(%rbp), %rsi
callq 0x23670
movq %rax, -0x10(%rbp)
jmp 0xae45
leaq 0x32dae(%rip), %rax     # 0x3db80
cmpl $0x20, (%rax)
jne 0xae43
jmp 0xadd9
leaq 0x32da0(%rip), %rax     # 0x3db80
cmpl $0x20, (%rax)
je 0xadf5
leaq 0x24e16(%rip), %rdi     # 0x2fc02
movb $0x0, %al
callq 0xd530
jmp 0xae41
leaq 0x32cec(%rip), %rax     # 0x3dae8
movq (%rax), %rsi
xorl %edi, %edi
xorl %eax, %eax
movl %eax, %edx
leaq 0x32ccc(%rip), %rcx     # 0x3dad8
callq 0x91f0
callq 0x15170
movl %eax, %ecx
leaq 0x32d61(%rip), %rax     # 0x3db80
movl %ecx, (%rax)
leaq 0x32d58(%rip), %rax     # 0x3db80
cmpl $0x2c, (%rax)
je 0xae2f
jmp 0xae41
callq 0x15170
movl %eax, %ecx
leaq 0x32d43(%rip), %rax     # 0x3db80
movl %ecx, (%rax)
jmp 0xadd9
jmp 0xae43
jmp 0xae45
leaq 0x32d34(%rip), %rax     # 0x3db80
cmpl $0x29, (%rax)
je 0xae6c
movl $0x29, %edi
callq 0xd670
movl $0x7b, %edi
leaq 0x2e2d6(%rip), %rsi     # 0x3913d
callq 0xd990
leaq 0x32d0d(%rip), %rax     # 0x3db80
cmpl $0x29, (%rax)
jne 0xae88
callq 0x15170
movl %eax, %ecx
leaq 0x32cfa(%rip), %rax     # 0x3db80
movl %ecx, (%rax)
movq -0x10(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)