// File: /workspace/github_c_makefile_star2_O0/dalnefre[P]kernel_abe/schemer.c
// Function: reduce_line
BOOL
reduce_line(CONFIG* cfg, char* line, CONS* cont)
{
	CONS* expr;
	CONS* env;
	CONS* msg;
	CONS* a;
	int n;

	DBUG_ENTER("reduce_line");
	assert(actorp(cont));
	cont = CFG_ACTOR(cfg, one_shot_beh, cont);
	DBUG_PRINT("", ("line=%s", line));
	expr = str_to_cons(line);
	if (expr == NULL) {
		fprintf(stderr, "Syntax Error: %s\n", line);
		DBUG_RETURN FALSE;
	}
	env = init_schemer(cfg);
#if 1
#if 0
	env = CFG_ACTOR(cfg, frame_beh, env);	/* create a new frame to protect the global environment */
#endif
	a = CFG_ACTOR(cfg, fail_beh, cont);
	env = init_add_binding(cfg, env, UNDEFINED, a);		/* install exception handler */
#endif
	msg = mk_pair(cont, mk_pair(expr, env));
	CFG_SEND(cfg, eval__actor, msg);
#if 0
	cfg_start_gc(cfg);
#endif
	n = 0;
	while (n == 0) {
		n = run_configuration(cfg, 100000);
		DBUG_PRINT("", ("n = %d"));
		if (cfg->t_count > 0) {
			DBUG_PRINT("", ("waiting for timed event..."));
			sleep(1);
#if 0
			cfg_start_gc(cfg);
#endif
			n = 0;		/* reset */
		}
	}
#if 1
	cfg_force_gc(cfg);
#endif
	DBUG_RETURN TRUE;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
leaq 0x114f9(%rip), %rax     # 0x20597
movq %rax, -0x70(%rbp)
leaq 0x17267(%rip), %rax     # 0x26310
movq (%rax), %rax
movq 0x50(%rax), %rax
movl 0x8(%rax), %eax
movl %eax, -0x68(%rbp)
movl $0x9e2, -0x64(%rbp)     # imm = 0x9E2
leaq 0x13ac8(%rip), %rax     # 0x22b8c
movq %rax, -0x60(%rbp)
leaq 0x17061(%rip), %rax     # 0x26130
movq %rax, -0x58(%rbp)
leaq 0x17236(%rip), %rax     # 0x26310
movq (%rax), %rax
movq 0x50(%rax), %rax
movq %rax, -0x50(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x1f2c0
movq -0x20(%rbp), %rax
andq $0x3, %rax
cmpq $0x1, %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0xf10c
jmp 0xf12b
leaq 0x11490(%rip), %rdi     # 0x205a3
leaq 0x112a1(%rip), %rsi     # 0x203bb
movl $0x9e3, %edx            # imm = 0x9E3
leaq 0x1148a(%rip), %rcx     # 0x205b0
callq 0x20f0
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq -0xcb8a(%rip), %rsi     # 0x25b0
callq 0x12520
movq %rax, -0x20(%rbp)
leaq 0x17796(%rip), %rax     # 0x268e0
cmpl $0x0, (%rax)
je 0xf1a0
leaq 0x171ba(%rip), %rax     # 0x26310
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x13a28(%rip), %rcx     # 0x22b8c
movq %rcx, 0x10(%rax)
leaq 0x13a1d(%rip), %rdi     # 0x22b8c
callq 0x1e6d0
cmpl $0x0, %eax
je 0xf1a0
leaq 0x17190(%rip), %rax     # 0x26310
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x9e5, 0xc(%rax)       # imm = 0x9E5
movq -0x18(%rbp), %rsi
leaq 0x11442(%rip), %rdi     # 0x205db
movb $0x0, %al
callq 0x1f370
jmp 0xf1a2
movq -0x18(%rbp), %rdi
callq 0x16220
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0xf1ef
movq 0x16e3b(%rip), %rax     # 0x25ff8
movq (%rax), %rdi
movq -0x18(%rbp), %rdx
leaq 0x11418(%rip), %rsi     # 0x205e3
movb $0x0, %al
callq 0x2160
movl $0x9e9, -0x64(%rbp)     # imm = 0x9E9
leaq -0x70(%rbp), %rdi
callq 0x1f490
movq $0x0, -0x8(%rbp)
jmp 0xf39c
movq -0x10(%rbp), %rdi
callq 0xf3b0
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq -0x79b(%rip), %rsi      # 0xea70
callq 0x12520
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x80(%rbp)
callq 0x11360
movq -0x88(%rbp), %rdi
movq -0x80(%rbp), %rsi
movq %rax, %rdx
movq -0x40(%rbp), %rcx
callq 0x100a0
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x1c0c0
movq -0x78(%rbp), %rdi
movq %rax, %rsi
callq 0x1c0c0
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rdi
movq 0x170f1(%rip), %rsi     # 0x26368
movq -0x38(%rbp), %rdx
callq 0x12640
movl $0x0, -0x44(%rbp)
cmpl $0x0, -0x44(%rbp)
jne 0xf37a
movq -0x10(%rbp), %rdi
movl $0x186a0, %esi          # imm = 0x186A0
callq 0x12f40
movl %eax, -0x44(%rbp)
leaq 0x17637(%rip), %rax     # 0x268e0
cmpl $0x0, (%rax)
je 0xf2fb
leaq 0x1705b(%rip), %rax     # 0x26310
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x138c9(%rip), %rcx     # 0x22b8c
movq %rcx, 0x10(%rax)
leaq 0x138be(%rip), %rdi     # 0x22b8c
callq 0x1e6d0
cmpl $0x0, %eax
je 0xf2fb
leaq 0x17031(%rip), %rax     # 0x26310
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x9fb, 0xc(%rax)       # imm = 0x9FB
leaq 0x11301(%rip), %rdi     # 0x205f5
movb $0x0, %al
callq 0x1f370
jmp 0xf2fd
movq -0x10(%rbp), %rax
cmpl $0x0, 0x68(%rax)
jle 0xf375
jmp 0xf309
leaq 0x175d0(%rip), %rax     # 0x268e0
cmpl $0x0, (%rax)
je 0xf362
leaq 0x16ff4(%rip), %rax     # 0x26310
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x13862(%rip), %rcx     # 0x22b8c
movq %rcx, 0x10(%rax)
leaq 0x13857(%rip), %rdi     # 0x22b8c
callq 0x1e6d0
cmpl $0x0, %eax
je 0xf362
leaq 0x16fca(%rip), %rax     # 0x26310
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x9fd, 0xc(%rax)       # imm = 0x9FD
leaq 0x112a1(%rip), %rdi     # 0x205fc
movb $0x0, %al
callq 0x1f370
jmp 0xf364
movl $0x1, %edi
callq 0x2220
movl $0x0, -0x44(%rbp)
jmp 0xf287
movq -0x10(%rbp), %rdi
callq 0x11fe0
movl $0xa08, -0x64(%rbp)     # imm = 0xA08
leaq -0x70(%rbp), %rdi
callq 0x1f490
movl $0x1, %eax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x90, %rsp
popq %rbp
retq
nopl (%rax)