// File: /workspace/github_c_makefile_star2_O0/dalnefre[P]kernel_abe/reduce.c
// Function: collect_par
BEH_DECL(collect_par)
{
	CONS* msg = WHAT;
	CONS* op = map_get(msg, ATOM("op"));
	CONS* i = map_get(msg, ATOM("i"));
	CONS* expr = map_get(msg, expr_symbol);
	CONS* state = MINE;
	CONS* acc = map_get(state, ATOM("acc"));
	CONS* n = map_get(state, ATOM("n"));
	CONS* cont = map_get(state, cont_symbol);

	DBUG_ENTER("collect_par");
	assert(numberp(i));
	assert(numberp(n));
	assert(consp(acc));
	assert(actorp(cont));
	if (op == ATOM("n")) {
		n = NUMBER(MK_INT(n) + MK_INT(i));
	} else if (op == ATOM("i")) {
		DBUG_PRINT("", ("value=%s", cons_to_str(expr)));
		acc = map_put(acc, i, expr);
		n = NUMBER(MK_INT(n) - 1);
	}
	DBUG_PRINT("", ("n=%d", MK_INT(n)));
	if (n == NUMBER(0)) {
		DBUG_PRINT("", ("expr=%s", cons_to_str(acc)));
		SEND(cont, map_put(NIL, expr_symbol, acc));
	} else {
		state = NIL;
		state = map_put(state, cont_symbol, cont);
		state = map_put(state, ATOM("n"), n);
		state = map_put(state, ATOM("acc"), acc);
		BECOME(THIS, state);
	}
	DBUG_RETURN;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x16990
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x90(%rbp)
leaq 0x118d2(%rip), %rdi     # 0x1a244
callq 0x12b60
movq -0x90(%rbp), %rdi
movq %rax, %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x171b0
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x88(%rbp)
leaq 0x13444(%rip), %rdi     # 0x1bde4
callq 0x12b60
movq -0x88(%rbp), %rdi
movq %rax, %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x171b0
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rdi
movq 0x17781(%rip), %rsi     # 0x20148
xorl %eax, %eax
movl %eax, %edx
callq 0x171b0
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x16800
movq %rax, %rdi
callq 0xba80
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x80(%rbp)
leaq 0x1193c(%rip), %rdi     # 0x1a338
callq 0x12b60
movq -0x80(%rbp), %rdi
movq %rax, %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x171b0
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x78(%rbp)
leaq 0x123ee(%rip), %rdi     # 0x1ae12
callq 0x12b60
movq -0x78(%rbp), %rdi
movq %rax, %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x171b0
movq %rax, -0x40(%rbp)
movq -0x30(%rbp), %rdi
movq 0x176f8(%rip), %rsi     # 0x20140
xorl %eax, %eax
movl %eax, %edx
callq 0x171b0
movq %rax, -0x48(%rbp)
leaq 0x11aa7(%rip), %rax     # 0x1a503
movq %rax, -0x70(%rbp)
leaq 0x17921(%rip), %rax     # 0x20388
movq (%rax), %rax
movq 0x50(%rax), %rax
movl 0x8(%rax), %eax
movl %eax, -0x68(%rbp)
movl $0x529, -0x64(%rbp)     # imm = 0x529
leaq 0x1422e(%rip), %rax     # 0x1ccb0
movq %rax, -0x60(%rbp)
leaq 0x176a3(%rip), %rax     # 0x20130
movq %rax, -0x58(%rbp)
leaq 0x178f0(%rip), %rax     # 0x20388
movq (%rax), %rax
movq 0x50(%rax), %rax
movq %rax, -0x50(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x19910
movq -0x20(%rbp), %rax
andq $0x3, %rax
cmpq $0x3, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x8aca
jmp 0x8ae9
leaq 0x11a3e(%rip), %rdi     # 0x1a50f
leaq 0x11555(%rip), %rsi     # 0x1a02d
movl $0x52a, %edx            # imm = 0x52A
leaq 0x11a36(%rip), %rcx     # 0x1a51a
callq 0x20f0
movq -0x40(%rbp), %rax
andq $0x3, %rax
cmpq $0x3, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x8b07
jmp 0x8b26
leaq 0x11a27(%rip), %rdi     # 0x1a535
leaq 0x11518(%rip), %rsi     # 0x1a02d
movl $0x52b, %edx            # imm = 0x52B
leaq 0x119f9(%rip), %rcx     # 0x1a51a
callq 0x20f0
xorl %eax, %eax
cmpq $0x0, -0x38(%rbp)
movb %al, -0x91(%rbp)
je 0x8b4a
movq -0x38(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
sete %al
movb %al, -0x91(%rbp)
movb -0x91(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x8b5f
jmp 0x8b7e
leaq 0x119da(%rip), %rdi     # 0x1a540
leaq 0x114c0(%rip), %rsi     # 0x1a02d
movl $0x52c, %edx            # imm = 0x52C
leaq 0x119a1(%rip), %rcx     # 0x1a51a
callq 0x20f0
movq -0x48(%rbp), %rax
andq $0x3, %rax
cmpq $0x1, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x8b9c
jmp 0x8bbb
leaq 0x119a8(%rip), %rdi     # 0x1a54b
leaq 0x11483(%rip), %rsi     # 0x1a02d
movl $0x52d, %edx            # imm = 0x52D
leaq 0x11964(%rip), %rcx     # 0x1a51a
callq 0x20f0
movq -0x18(%rbp), %rax
movq %rax, -0xa0(%rbp)
leaq 0x12245(%rip), %rdi     # 0x1ae12
callq 0x12b60
movq %rax, %rcx
movq -0xa0(%rbp), %rax
cmpq %rcx, %rax
jne 0x8c06
movq -0x40(%rbp), %rax
sarq $0x2, %rax
movq -0x20(%rbp), %rcx
sarq $0x2, %rcx
addl %ecx, %eax
cltq
shlq $0x2, %rax
orq $0x3, %rax
movq %rax, -0x40(%rbp)
jmp 0x8cc9
movq -0x18(%rbp), %rax
movq %rax, -0xa8(%rbp)
leaq 0x131cc(%rip), %rdi     # 0x1bde4
callq 0x12b60
movq %rax, %rcx
movq -0xa8(%rbp), %rax
cmpq %rcx, %rax
jne 0x8cc7
jmp 0x8c32
leaq 0x17cf7(%rip), %rax     # 0x20930
cmpl $0x0, (%rax)
je 0x8c97
leaq 0x17743(%rip), %rax     # 0x20388
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x1405d(%rip), %rcx     # 0x1ccb0
movq %rcx, 0x10(%rax)
leaq 0x14052(%rip), %rdi     # 0x1ccb0
callq 0x18d20
cmpl $0x0, %eax
je 0x8c97
leaq 0x17719(%rip), %rax     # 0x20388
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x531, 0xc(%rax)       # imm = 0x531
movq -0x28(%rbp), %rdi
callq 0xe6d0
movq %rax, %rsi
leaq 0x11534(%rip), %rdi     # 0x1a1c4
movb $0x0, %al
callq 0x199c0
jmp 0x8c99
movq -0x38(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x172a0
movq %rax, -0x38(%rbp)
movq -0x40(%rbp), %rax
sarq $0x2, %rax
subl $0x1, %eax
cltq
shlq $0x2, %rax
orq $0x3, %rax
movq %rax, -0x40(%rbp)
jmp 0x8cc9
jmp 0x8ccb
leaq 0x17c5e(%rip), %rax     # 0x20930
cmpl $0x0, (%rax)
je 0x8d2e
leaq 0x176aa(%rip), %rax     # 0x20388
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x13fc4(%rip), %rcx     # 0x1ccb0
movq %rcx, 0x10(%rax)
leaq 0x13fb9(%rip), %rdi     # 0x1ccb0
callq 0x18d20
cmpl $0x0, %eax
je 0x8d2e
leaq 0x17680(%rip), %rax     # 0x20388
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x535, 0xc(%rax)       # imm = 0x535
movq -0x40(%rbp), %rax
sarq $0x2, %rax
movl %eax, %esi
leaq 0x11831(%rip), %rdi     # 0x1a558
movb $0x0, %al
callq 0x199c0
jmp 0x8d30
movl $0x3, %eax
cmpq %rax, -0x40(%rbp)
jne 0x8df0
jmp 0x8d41
leaq 0x17be8(%rip), %rax     # 0x20930
cmpl $0x0, (%rax)
je 0x8da6
leaq 0x17634(%rip), %rax     # 0x20388
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x13f4e(%rip), %rcx     # 0x1ccb0
movq %rcx, 0x10(%rax)
leaq 0x13f43(%rip), %rdi     # 0x1ccb0
callq 0x18d20
cmpl $0x0, %eax
je 0x8da6
leaq 0x1760a(%rip), %rax     # 0x20388
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x537, 0xc(%rax)       # imm = 0x537
movq -0x38(%rbp), %rdi
callq 0xe6d0
movq %rax, %rsi
leaq 0x117f4(%rip), %rdi     # 0x1a593
movb $0x0, %al
callq 0x199c0
jmp 0x8da8
movq -0x8(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq 0x17383(%rip), %rsi     # 0x20148
movq -0x38(%rbp), %rdx
leaq 0x17528(%rip), %rdi     # 0x202f8
callq 0x172a0
movq -0xb8(%rbp), %rdi
movq -0xb0(%rbp), %rsi
movq %rax, %rdx
callq 0xcc90
jmp 0x8eab
leaq 0x17501(%rip), %rax     # 0x202f8
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
movq 0x1733a(%rip), %rsi     # 0x20140
movq -0x48(%rbp), %rdx
callq 0x172a0
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0xd0(%rbp)
leaq 0x11fed(%rip), %rdi     # 0x1ae12
callq 0x12b60
movq -0xd0(%rbp), %rdi
movq %rax, %rsi
movq -0x40(%rbp), %rdx
callq 0x172a0
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0xc8(%rbp)
leaq 0x114e5(%rip), %rdi     # 0x1a338
callq 0x12b60
movq -0xc8(%rbp), %rdi
movq %rax, %rsi
movq -0x38(%rbp), %rdx
callq 0x172a0
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x16800
movq %rax, -0xc0(%rbp)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x16800
movq %rax, %rdi
callq 0xba10
movq -0xc0(%rbp), %rdi
movq %rax, %rsi
movq -0x30(%rbp), %rdx
callq 0xbf60
movl $0x540, -0x64(%rbp)     # imm = 0x540
leaq -0x70(%rbp), %rdi
callq 0x19ae0
addq $0xd0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)