// File: /workspace/github_c_makefile_star2_O0/dalnefre[P]kernel_abe/actor.c
// Function: new_configuration
CONFIG*
new_configuration(int q_limit)
/*
 * Create a new (empty) actor configuration.
 */
{
	CONFIG* cfg = NULL;
	CELL* cell;
	CONS* cq;
	struct timeval tv;

	DBUG_ENTER("new_configuration");
	cfg = NEW(CONFIG);
	assert(cfg != NULL);
	cell = as_cell(cfg);
	cq = CONFIG_QUEUE(cfg);
	assert(consp(cq));
	GC_SET_FIRST(cell, NIL);
	GC_SET_REST(cell, NIL);
	GC_SET_PREV(cell, cell);
	GC_SET_NEXT(cell, cell);
	cfg->gc_root = NIL;
	cfg->q_count = 0;
	cfg->q_entry = NIL;
	cfg->msg_cnt_hi = 0;
	cfg->msg_cnt_lo = 0;
	cfg->q_limit = q_limit;
	if (gettimeofday(&tv, NULL) == 0) {
		cfg->t_epoch = tv.tv_sec;
		DBUG_PRINT("timer", ("epoch=%d", cfg->t_epoch));
		cfg->t_now_s = (tv.tv_sec - cfg->t_epoch);
		cfg->t_now_us = tv.tv_usec;
		DBUG_PRINT("timer", ("t = %lus %luus", cfg->t_now_s, cfg->t_now_us));
	}
	cfg->t_queue = NIL;
	cfg->t_count = 0;
	DBUG_RETURN cfg;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movl %edi, -0x4(%rbp)
movq $0x0, -0x10(%rbp)
leaq 0xeea7(%rip), %rax      # 0x29c81
movq %rax, -0x58(%rbp)
leaq 0x1453b(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl 0x8(%rax), %eax
movl %eax, -0x50(%rbp)
movl $0xd4, -0x4c(%rbp)
leaq 0xe56f(%rip), %rax      # 0x2936f
movq %rax, -0x48(%rbp)
leaq 0x1438d(%rip), %rax     # 0x2f198
movq %rax, -0x40(%rbp)
leaq 0x1450a(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movq %rax, -0x38(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x28490
movl $0x70, %edi
movl $0x1, %esi
callq 0x2150
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x1ae46
jmp 0x1ae65
leaq 0xee46(%rip), %rdi      # 0x29c93
leaq 0xed99(%rip), %rsi      # 0x29bed
movl $0xd6, %edx
leaq 0xee3f(%rip), %rcx      # 0x29c9f
callq 0x2100
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
xorl %eax, %eax
cmpq $0x0, -0x20(%rbp)
movb %al, -0x59(%rbp)
je 0x1ae93
movq -0x20(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
sete %al
movb %al, -0x59(%rbp)
movb -0x59(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x1aea5
jmp 0x1aec4
leaq 0xee12(%rip), %rdi      # 0x29cbe
leaq 0xed3a(%rip), %rsi      # 0x29bed
movl $0xd9, %edx
leaq 0xede0(%rip), %rcx      # 0x29c9f
callq 0x2100
movq -0x18(%rbp), %rax
leaq 0x143c1(%rip), %rcx     # 0x2f290
movq %rcx, (%rax)
movq -0x18(%rbp), %rax
leaq 0x143b3(%rip), %rcx     # 0x2f290
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rcx
sarq $0x2, %rcx
movq -0x18(%rbp), %rdx
movabsq $0xc0000000, %rax       # imm = 0xC0000000
andq 0x10(%rdx), %rax
orq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x18(%rbp), %rcx
sarq $0x2, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
leaq 0x1436f(%rip), %rcx     # 0x2f290
movq %rcx, 0x20(%rax)
movq -0x10(%rbp), %rax
movl $0x0, 0x28(%rax)
movq -0x10(%rbp), %rax
leaq 0x14355(%rip), %rcx     # 0x2f290
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rax
movl $0x0, 0x38(%rax)
movq -0x10(%rbp), %rax
movl $0x0, 0x3c(%rax)
movl -0x4(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x40(%rax)
leaq -0x30(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x20f0
cmpl $0x0, %eax
jne 0x1b071
movq -0x30(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x48(%rax)
leaq 0x14998(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x1afe2
leaq 0x1438c(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0xed26(%rip), %rcx      # 0x29cc8
movq %rcx, 0x10(%rax)
leaq 0xed1b(%rip), %rdi      # 0x29cc8
callq 0x278a0
cmpl $0x0, %eax
je 0x1afe2
leaq 0x14362(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0xe6, 0xc(%rax)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rsi
leaq 0xecf3(%rip), %rdi      # 0x29cce
movb $0x0, %al
callq 0x28540
jmp 0x1afe4
movq -0x30(%rbp), %rcx
movq -0x10(%rbp), %rax
subq 0x48(%rax), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x50(%rax)
movq -0x28(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x58(%rax)
leaq 0x14915(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x1b06d
leaq 0x14309(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0xeca3(%rip), %rcx      # 0x29cc8
movq %rcx, 0x10(%rax)
leaq 0xec98(%rip), %rdi      # 0x29cc8
callq 0x278a0
cmpl $0x0, %eax
je 0x1b06d
leaq 0x142df(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0xe9, 0xc(%rax)
movq -0x10(%rbp), %rax
movq 0x50(%rax), %rsi
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdx
leaq 0xec71(%rip), %rdi      # 0x29cd7
movb $0x0, %al
callq 0x28540
jmp 0x1b06f
jmp 0x1b071
movq -0x10(%rbp), %rax
leaq 0x14214(%rip), %rcx     # 0x2f290
movq %rcx, 0x60(%rax)
movq -0x10(%rbp), %rax
movl $0x0, 0x68(%rax)
movl $0xed, -0x4c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x28660
movq -0x10(%rbp), %rax
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)