// File: /workspace/github_c_makefile_star2_O0/dalnefre[P]kernel_abe/kernel.c
// Function: lambda_type
static
BEH_DECL(lambda_type)
{
	CONS* state = MINE;
	CONS* ptree;
	CONS* body;
	CONS* env;
	CONS* msg = WHAT;
	CONS* cust;
	CONS* req;

	DBUG_ENTER("lambda_type");
	ENSURE(is_pr(state));
	ptree = hd(state);
	ENSURE(is_pr(tl(state)));
	body = hd(tl(state));
	env = tl(tl(state));
	ENSURE(is_pr(msg));
	cust = hd(msg);
	ENSURE(actorp(cust));
	req = tl(msg);

	DBUG_PRINT("ptree", ("%s", cons_to_str(ptree)));
	DBUG_PRINT("body", ("%s", cons_to_str(body)));
	DBUG_PRINT("env", ("%s", cons_to_str(env)));
	DBUG_PRINT("cust", ("%s", cons_to_str(cust)));
	DBUG_PRINT("req", ("%s", cons_to_str(req)));
	if (is_pr(req) && is_pr(tl(req))
	&& (hd(req) == ATOM("comb"))) {
		CONS* opnds = hd(tl(req));
		/* CONS* env = tl(tl(req)); -- dynamic environment ignored */
		CONS* local = ACTOR(env_type, pr(env, NIL));
		CONS* k_eval = ACTOR(eval_sequence_beh, pr(cust, pr(body, local)));

		DBUG_PRINT("opnds", ("%s", cons_to_str(opnds)));
		SEND(ptree, pr(k_eval, pr(ATOM("match"), pr(opnds, local))));
	} else {
		oper_type(CFG);  /* DELEGATE BEHAVIOR */
	}
	DBUG_RETURN;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x140, %rsp            # imm = 0x140
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x25380
movq %rax, %rdi
callq 0x1a600
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x25510
movq %rax, -0x30(%rbp)
leaq 0x11bb9(%rip), %rax     # 0x29ac9
movq %rax, -0x68(%rbp)
leaq 0x17405(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl 0x8(%rax), %eax
movl %eax, -0x60(%rbp)
movl $0x83a, -0x5c(%rbp)     # imm = 0x83A
leaq 0x11439(%rip), %rax     # 0x2936f
movq %rax, -0x58(%rbp)
leaq 0x171ff(%rip), %rax     # 0x2f140
movq %rax, -0x50(%rbp)
leaq 0x173d4(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movq %rax, -0x48(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x28490
xorl %eax, %eax
cmpq $0x0, -0x10(%rbp)
movb %al, -0x81(%rbp)
je 0x17f84
movq -0x10(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
sete %al
movb %al, -0x81(%rbp)
movb -0x81(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x17fd2
leaq 0x172f2(%rip), %rax     # 0x2f290
cmpq %rax, -0x10(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x17fd2
movq -0x10(%rbp), %rax
andq $0x3, %rax
cmpq $0x1, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x18061
movq -0x8(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x12498(%rip), %rsi    # 0x5b50
leaq 0x172a1(%rip), %rdx     # 0x2f290
callq 0x1b6f0
movq %rax, -0x90(%rbp)
leaq 0x11556(%rip), %rdi     # 0x29558
callq 0x216e0
movq %rax, -0xa0(%rbp)
leaq 0x11007(%rip), %rdi     # 0x2901c
callq 0x216e0
movq %rax, %rdi
movl $0x20ef, %esi           # imm = 0x20EF
callq 0x25290
movq -0xa0(%rbp), %rdi
movq %rax, %rsi
callq 0x25290
movq -0x98(%rbp), %rdi
movq -0x90(%rbp), %rsi
movq %rax, %rdx
callq 0x1b810
movl $0x83b, -0x5c(%rbp)     # imm = 0x83B
leaq -0x68(%rbp), %rdi
callq 0x28660
jmp 0x18858
movq -0x10(%rbp), %rdi
callq 0x25380
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
callq 0x25510
movq %rax, %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, -0xa1(%rbp)
je 0x180a2
movq -0x10(%rbp), %rdi
callq 0x25510
andq $0x3, %rax
cmpq $0x0, %rax
sete %al
movb %al, -0xa1(%rbp)
movb -0xa1(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x180fd
movq -0x10(%rbp), %rdi
callq 0x25510
leaq 0x171cb(%rip), %rcx     # 0x2f290
cmpq %rcx, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x180fd
movq -0x10(%rbp), %rdi
callq 0x25510
andq $0x3, %rax
cmpq $0x1, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x1818c
movq -0x8(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x125c3(%rip), %rsi    # 0x5b50
leaq 0x17176(%rip), %rdx     # 0x2f290
callq 0x1b6f0
movq %rax, -0xb0(%rbp)
leaq 0x1142b(%rip), %rdi     # 0x29558
callq 0x216e0
movq %rax, -0xc0(%rbp)
leaq 0x10edc(%rip), %rdi     # 0x2901c
callq 0x216e0
movq %rax, %rdi
movl $0x20f7, %esi           # imm = 0x20F7
callq 0x25290
movq -0xc0(%rbp), %rdi
movq %rax, %rsi
callq 0x25290
movq -0xb8(%rbp), %rdi
movq -0xb0(%rbp), %rsi
movq %rax, %rdx
callq 0x1b810
movl $0x83d, -0x5c(%rbp)     # imm = 0x83D
leaq -0x68(%rbp), %rdi
callq 0x28660
jmp 0x18858
movq -0x10(%rbp), %rdi
callq 0x25510
movq %rax, %rdi
callq 0x25380
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rdi
callq 0x25510
movq %rax, %rdi
callq 0x25510
movq %rax, -0x28(%rbp)
xorl %eax, %eax
cmpq $0x0, -0x30(%rbp)
movb %al, -0xc1(%rbp)
je 0x181da
movq -0x30(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
sete %al
movb %al, -0xc1(%rbp)
movb -0xc1(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x18228
leaq 0x1709c(%rip), %rax     # 0x2f290
cmpq %rax, -0x30(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x18228
movq -0x30(%rbp), %rax
andq $0x3, %rax
cmpq $0x1, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x182b7
movq -0x8(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x126ee(%rip), %rsi    # 0x5b50
leaq 0x1704b(%rip), %rdx     # 0x2f290
callq 0x1b6f0
movq %rax, -0xd0(%rbp)
leaq 0x11300(%rip), %rdi     # 0x29558
callq 0x216e0
movq %rax, -0xe0(%rbp)
leaq 0x10db1(%rip), %rdi     # 0x2901c
callq 0x216e0
movq %rax, %rdi
movl $0x2103, %esi           # imm = 0x2103
callq 0x25290
movq -0xe0(%rbp), %rdi
movq %rax, %rsi
callq 0x25290
movq -0xd8(%rbp), %rdi
movq -0xd0(%rbp), %rsi
movq %rax, %rdx
callq 0x1b810
movl $0x840, -0x5c(%rbp)     # imm = 0x840
leaq -0x68(%rbp), %rdi
callq 0x28660
jmp 0x18858
movq -0x30(%rbp), %rdi
callq 0x25380
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
andq $0x3, %rax
cmpq $0x1, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x18373
movq -0x8(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x127aa(%rip), %rsi    # 0x5b50
leaq 0x16f8f(%rip), %rdx     # 0x2f290
callq 0x1b6f0
movq %rax, -0xe8(%rbp)
leaq 0x11244(%rip), %rdi     # 0x29558
callq 0x216e0
movq %rax, -0xf8(%rbp)
leaq 0x10cf5(%rip), %rdi     # 0x2901c
callq 0x216e0
movq %rax, %rdi
movl $0x210b, %esi           # imm = 0x210B
callq 0x25290
movq -0xf8(%rbp), %rdi
movq %rax, %rsi
callq 0x25290
movq -0xf0(%rbp), %rdi
movq -0xe8(%rbp), %rsi
movq %rax, %rdx
callq 0x1b810
movl $0x842, -0x5c(%rbp)     # imm = 0x842
leaq -0x68(%rbp), %rdi
callq 0x28660
jmp 0x18858
movq -0x30(%rbp), %rdi
callq 0x25510
movq %rax, -0x40(%rbp)
leaq 0x17599(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x183e5
leaq 0x16f8d(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x11734(%rip), %rcx     # 0x29ad5
movq %rcx, 0x10(%rax)
leaq 0x11729(%rip), %rdi     # 0x29ad5
callq 0x278a0
cmpl $0x0, %eax
je 0x183e5
leaq 0x16f63(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x845, 0xc(%rax)       # imm = 0x845
movq -0x18(%rbp), %rdi
callq 0x1d250
movq %rax, %rsi
leaq 0x12187(%rip), %rdi     # 0x2a565
movb $0x0, %al
callq 0x28540
jmp 0x183e7
jmp 0x183e9
leaq 0x17530(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x1844e
leaq 0x16f24(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x116d1(%rip), %rcx     # 0x29adb
movq %rcx, 0x10(%rax)
leaq 0x116c6(%rip), %rdi     # 0x29adb
callq 0x278a0
cmpl $0x0, %eax
je 0x1844e
leaq 0x16efa(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x846, 0xc(%rax)       # imm = 0x846
movq -0x20(%rbp), %rdi
callq 0x1d250
movq %rax, %rsi
leaq 0x1211e(%rip), %rdi     # 0x2a565
movb $0x0, %al
callq 0x28540
jmp 0x18450
jmp 0x18452
leaq 0x174c7(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x184b7
leaq 0x16ebb(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x116d5(%rip), %rcx     # 0x29b48
movq %rcx, 0x10(%rax)
leaq 0x116ca(%rip), %rdi     # 0x29b48
callq 0x278a0
cmpl $0x0, %eax
je 0x184b7
leaq 0x16e91(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x847, 0xc(%rax)       # imm = 0x847
movq -0x28(%rbp), %rdi
callq 0x1d250
movq %rax, %rsi
leaq 0x120b5(%rip), %rdi     # 0x2a565
movb $0x0, %al
callq 0x28540
jmp 0x184b9
jmp 0x184bb
leaq 0x1745e(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x18520
leaq 0x16e52(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x1107f(%rip), %rcx     # 0x2955b
movq %rcx, 0x10(%rax)
leaq 0x11074(%rip), %rdi     # 0x2955b
callq 0x278a0
cmpl $0x0, %eax
je 0x18520
leaq 0x16e28(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x848, 0xc(%rax)       # imm = 0x848
movq -0x38(%rbp), %rdi
callq 0x1d250
movq %rax, %rsi
leaq 0x1204c(%rip), %rdi     # 0x2a565
movb $0x0, %al
callq 0x28540
jmp 0x18522
jmp 0x18524
leaq 0x173f5(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x18589
leaq 0x16de9(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x1101b(%rip), %rcx     # 0x29560
movq %rcx, 0x10(%rax)
leaq 0x11010(%rip), %rdi     # 0x29560
callq 0x278a0
cmpl $0x0, %eax
je 0x18589
leaq 0x16dbf(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x849, 0xc(%rax)       # imm = 0x849
movq -0x40(%rbp), %rdi
callq 0x1d250
movq %rax, %rsi
leaq 0x11fe3(%rip), %rdi     # 0x2a565
movb $0x0, %al
callq 0x28540
jmp 0x1858b
xorl %eax, %eax
cmpq $0x0, -0x40(%rbp)
movb %al, -0xf9(%rbp)
je 0x185af
movq -0x40(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
sete %al
movb %al, -0xf9(%rbp)
movb -0xf9(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x1883f
leaq 0x16cc3(%rip), %rax     # 0x2f290
cmpq %rax, -0x40(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x1883f
movq -0x40(%rbp), %rax
andq $0x3, %rax
cmpq $0x1, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x1883f
movq -0x40(%rbp), %rdi
callq 0x25510
movq %rax, %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, -0xfa(%rbp)
je 0x18639
movq -0x40(%rbp), %rdi
callq 0x25510
andq $0x3, %rax
cmpq $0x0, %rax
sete %al
movb %al, -0xfa(%rbp)
movb -0xfa(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x1883f
movq -0x40(%rbp), %rdi
callq 0x25510
leaq 0x16c30(%rip), %rcx     # 0x2f290
cmpq %rcx, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x1883f
movq -0x40(%rbp), %rdi
callq 0x25510
andq $0x3, %rax
cmpq $0x1, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
jne 0x1883f
movq -0x40(%rbp), %rdi
callq 0x25380
movq %rax, -0x108(%rbp)
leaq 0x10f70(%rip), %rdi     # 0x29623
callq 0x216e0
movq %rax, %rcx
movq -0x108(%rbp), %rax
cmpq %rcx, %rax
jne 0x1883f
movq -0x40(%rbp), %rdi
callq 0x25510
movq %rax, %rdi
callq 0x25380
movq %rax, -0x70(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x120(%rbp)
movq -0x28(%rbp), %rdi
leaq 0x16b9a(%rip), %rsi     # 0x2f290
callq 0x25290
movq -0x120(%rbp), %rdi
movq %rax, %rdx
leaq -0x288c(%rip), %rsi     # 0x15e80
callq 0x1b6f0
movq %rax, -0x78(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x110(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x118(%rbp)
movq -0x20(%rbp), %rdi
movq -0x78(%rbp), %rsi
callq 0x25290
movq -0x118(%rbp), %rdi
movq %rax, %rsi
callq 0x25290
movq -0x110(%rbp), %rdi
movq %rax, %rdx
leaq 0x118(%rip), %rsi       # 0x18870
callq 0x1b6f0
movq %rax, -0x80(%rbp)
leaq 0x171b8(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x187c6
leaq 0x16bac(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x1135e(%rip), %rcx     # 0x29ae0
movq %rcx, 0x10(%rax)
leaq 0x11353(%rip), %rdi     # 0x29ae0
callq 0x278a0
cmpl $0x0, %eax
je 0x187c6
leaq 0x16b82(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x851, 0xc(%rax)       # imm = 0x851
movq -0x70(%rbp), %rdi
callq 0x1d250
movq %rax, %rsi
leaq 0x11da6(%rip), %rdi     # 0x2a565
movb $0x0, %al
callq 0x28540
jmp 0x187c8
movq -0x8(%rbp), %rax
movq %rax, -0x130(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x128(%rbp)
movq -0x80(%rbp), %rax
movq %rax, -0x138(%rbp)
leaq 0x10de9(%rip), %rdi     # 0x295d9
callq 0x216e0
movq %rax, -0x140(%rbp)
movq -0x70(%rbp), %rdi
movq -0x78(%rbp), %rsi
callq 0x25290
movq -0x140(%rbp), %rdi
movq %rax, %rsi
callq 0x25290
movq -0x138(%rbp), %rdi
movq %rax, %rsi
callq 0x25290
movq -0x130(%rbp), %rdi
movq -0x128(%rbp), %rsi
movq %rax, %rdx
callq 0x1b810
jmp 0x18848
movq -0x8(%rbp), %rdi
callq 0x16b20
movl $0x856, -0x5c(%rbp)     # imm = 0x856
leaq -0x68(%rbp), %rdi
callq 0x28660
addq $0x140, %rsp            # imm = 0x140
popq %rbp
retq
nopw %cs:(%rax,%rax)