// File: /workspace/github_c_makefile_star2_O0/dalnefre[P]kernel_abe/reduce.c
// Function: invoke_actor
BEH_DECL(invoke_actor)
{
	CONS* msg = WHAT;
	CONS* state = MINE;
	CONS* beh = map_get(state, beh_symbol);
	CONS* env = map_get(state, env_symbol);
	CONS* expr = NIL;

	DBUG_ENTER("invoke_actor");
	DBUG_PRINT("", ("beh=%s", cons_to_str(beh)));
	DBUG_PRINT("", ("msg=%s", cons_to_str(msg)));
	while (consp(msg) && !nilp(msg)) {			/* quote already-evaluated arguments */
		expr = cons(cons(ATOM("literal"), cons(car(msg), NIL)), expr);
		/* FIXME: consider using CQ macros for faster list construction */
		msg = cdr(msg);
	}
	expr = reverse(expr);
	DBUG_PRINT("", ("env=%s", cons_to_str(env)));
	DBUG_PRINT("", ("expr=%s", cons_to_str(expr)));
	msg = NIL;
	msg = map_put(msg, env_symbol, env);
	msg = map_put(msg, cont_symbol, a_sink);	/* actors do not return a value */
	msg = map_put(msg, expr_symbol, expr);
	SEND(beh, msg);
	DBUG_RETURN;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x16990
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x16800
movq %rax, %rdi
callq 0xba80
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movq 0x18e37(%rip), %rsi     # 0x20188
xorl %eax, %eax
movl %eax, %edx
callq 0x171b0
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
movq 0x18def(%rip), %rsi     # 0x20158
xorl %eax, %eax
movl %eax, %edx
callq 0x171b0
movq %rax, -0x28(%rbp)
leaq 0x18f7b(%rip), %rax     # 0x202f8
movq %rax, -0x30(%rbp)
leaq 0x130b6(%rip), %rax     # 0x1a43e
movq %rax, -0x58(%rbp)
leaq 0x18ff5(%rip), %rax     # 0x20388
movq (%rax), %rax
movq 0x50(%rax), %rax
movl 0x8(%rax), %eax
movl %eax, -0x50(%rbp)
movl $0x423, -0x4c(%rbp)     # imm = 0x423
leaq 0x15902(%rip), %rax     # 0x1ccb0
movq %rax, -0x48(%rbp)
leaq 0x18d77(%rip), %rax     # 0x20130
movq %rax, -0x40(%rbp)
leaq 0x18fc4(%rip), %rax     # 0x20388
movq (%rax), %rax
movq 0x50(%rax), %rax
movq %rax, -0x38(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x19910
leaq 0x19551(%rip), %rax     # 0x20930
cmpl $0x0, (%rax)
je 0x743d
leaq 0x18f9d(%rip), %rax     # 0x20388
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x158b7(%rip), %rcx     # 0x1ccb0
movq %rcx, 0x10(%rax)
leaq 0x158ac(%rip), %rdi     # 0x1ccb0
callq 0x18d20
cmpl $0x0, %eax
je 0x743d
leaq 0x18f73(%rip), %rax     # 0x20388
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x424, 0xc(%rax)       # imm = 0x424
movq -0x20(%rbp), %rdi
callq 0xe6d0
movq %rax, %rsi
leaq 0x13015(%rip), %rdi     # 0x1a44b
movb $0x0, %al
callq 0x199c0
jmp 0x743f
jmp 0x7441
leaq 0x194e8(%rip), %rax     # 0x20930
cmpl $0x0, (%rax)
je 0x74a6
leaq 0x18f34(%rip), %rax     # 0x20388
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x1584e(%rip), %rcx     # 0x1ccb0
movq %rcx, 0x10(%rax)
leaq 0x15843(%rip), %rdi     # 0x1ccb0
callq 0x18d20
cmpl $0x0, %eax
je 0x74a6
leaq 0x18f0a(%rip), %rax     # 0x20388
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x425, 0xc(%rax)       # imm = 0x425
movq -0x10(%rbp), %rdi
callq 0xe6d0
movq %rax, %rsi
leaq 0x12f83(%rip), %rdi     # 0x1a422
movb $0x0, %al
callq 0x199c0
jmp 0x74a8
jmp 0x74aa
xorl %eax, %eax
cmpq $0x0, -0x10(%rbp)
movb %al, -0x59(%rbp)
je 0x74c8
movq -0x10(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
sete %al
movb %al, -0x59(%rbp)
movb -0x59(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movslq %eax, %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, -0x5a(%rbp)
je 0x74ff
leaq 0x18e13(%rip), %rax     # 0x202f8
cmpq %rax, -0x10(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
setne %al
xorb $-0x1, %al
movb %al, -0x5a(%rbp)
movb -0x5a(%rbp), %al
testb $0x1, %al
jne 0x7508
jmp 0x755e
leaq 0x12c67(%rip), %rdi     # 0x1a176
callq 0x12b60
movq %rax, -0x68(%rbp)
movq -0x10(%rbp), %rdi
callq 0x16800
movq %rax, %rdi
leaq 0x18dcd(%rip), %rsi     # 0x202f8
callq 0x16710
movq -0x68(%rbp), %rdi
movq %rax, %rsi
callq 0x16710
movq %rax, %rdi
movq -0x30(%rbp), %rsi
callq 0x16710
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rdi
callq 0x16990
movq %rax, -0x10(%rbp)
jmp 0x74aa
movq -0x30(%rbp), %rdi
callq 0x16e20
movq %rax, -0x30(%rbp)
leaq 0x193be(%rip), %rax     # 0x20930
cmpl $0x0, (%rax)
je 0x75d0
leaq 0x18e0a(%rip), %rax     # 0x20388
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x15724(%rip), %rcx     # 0x1ccb0
movq %rcx, 0x10(%rax)
leaq 0x15719(%rip), %rdi     # 0x1ccb0
callq 0x18d20
cmpl $0x0, %eax
je 0x75d0
leaq 0x18de0(%rip), %rax     # 0x20388
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x42c, 0xc(%rax)       # imm = 0x42C
movq -0x28(%rbp), %rdi
callq 0xe6d0
movq %rax, %rsi
leaq 0x12b16(%rip), %rdi     # 0x1a0df
movb $0x0, %al
callq 0x199c0
jmp 0x75d2
jmp 0x75d4
leaq 0x19355(%rip), %rax     # 0x20930
cmpl $0x0, (%rax)
je 0x7639
leaq 0x18da1(%rip), %rax     # 0x20388
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x156bb(%rip), %rcx     # 0x1ccb0
movq %rcx, 0x10(%rax)
leaq 0x156b0(%rip), %rdi     # 0x1ccb0
callq 0x18d20
cmpl $0x0, %eax
je 0x7639
leaq 0x18d77(%rip), %rax     # 0x20388
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x42d, 0xc(%rax)       # imm = 0x42D
movq -0x30(%rbp), %rdi
callq 0xe6d0
movq %rax, %rsi
leaq 0x12f61(%rip), %rdi     # 0x1a593
movb $0x0, %al
callq 0x199c0
jmp 0x763b
leaq 0x18cb6(%rip), %rax     # 0x202f8
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq 0x18b07(%rip), %rsi     # 0x20158
movq -0x28(%rbp), %rdx
callq 0x172a0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq 0x18ad7(%rip), %rsi     # 0x20140
movq 0x18b28(%rip), %rdx     # 0x20198
callq 0x172a0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq 0x18ac4(%rip), %rsi     # 0x20148
movq -0x30(%rbp), %rdx
callq 0x172a0
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdx
callq 0xcc90
movl $0x433, -0x4c(%rbp)     # imm = 0x433
leaq -0x58(%rbp), %rdi
callq 0x19ae0
addq $0x70, %rsp
popq %rbp
retq
nopl (%rax,%rax)