// File: /workspace/github_c_makefile_star2_O0/dalnefre[P]kernel_abe/actor.c
// Function: run_configuration
int
run_configuration(CONFIG* cfg, int msg_limit)
/*
 * Dispatch messages until the message queue is empty.
 * No more than <msg_limit> messages will be delivered.
 * Dispatch is aborted if the queue of waiting messages
 * exceeds the configuration limit.
 * 
 * returns: unused message budget or -1 if aborted
 */
{
	int clock_step = 0;

	DBUG_ENTER("run_configuration");
	while (msg_limit > 0) {
		if (--clock_step <= 0) {
			abe__clock_tick(cfg);
			clock_step = CLOCK_STEP_SIZE;
		}
		if (!abe__dispatch(cfg)) {
			break;
		}
		--msg_limit;
		if (cfg->q_count > cfg->q_limit) {
			DBUG_PRINT("", ("message queue limit exceeded!"));
			msg_limit = -1;
			break;
		}
	}
	DBUG_PRINT("", ("t_count=%d now=%lus %luus", cfg->t_count, cfg->t_now_s, cfg->t_now_us));
	DBUG_PRINT("", ("t_queue=%s", cons_to_str(cfg->t_queue)));
	DBUG_PRINT("", ("q_count=%d q_limit=%d msg_limit=%d", cfg->q_count, cfg->q_limit, msg_limit));
	DBUG_PRINT("", ("msg_cnt_hi=%d msg_cnt_lo=%d", cfg->msg_cnt_hi, cfg->msg_cnt_lo));
	DBUG_PRINT("", ("free_config_cnt=%d", free_config_cnt));
	DBUG_PRINT("", ("free_config_max=%d", free_config_max));
	DBUG_RETURN msg_limit;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl $0x0, -0x10(%rbp)
leaq 0xdd03(%rip), %rax      # 0x29e30
movq %rax, -0x38(%rbp)
leaq 0x131e8(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl 0x8(%rax), %eax
movl %eax, -0x30(%rbp)
movl $0x207, -0x2c(%rbp)     # imm = 0x207
leaq 0xd21c(%rip), %rax      # 0x2936f
movq %rax, -0x28(%rbp)
leaq 0x1303a(%rip), %rax     # 0x2f198
movq %rax, -0x20(%rbp)
leaq 0x131b7(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movq %rax, -0x18(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x28490
cmpl $0x0, -0xc(%rbp)
jle 0x1c23d
movl -0x10(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x10(%rbp)
cmpl $0x0, %eax
jg 0x1c1a5
movq -0x8(%rbp), %rdi
callq 0x1c4e0
movl $0x100, -0x10(%rbp)     # imm = 0x100
movq -0x8(%rbp), %rdi
callq 0x1c760
cmpq $0x0, %rax
jne 0x1c1b9
jmp 0x1c23d
movl -0xc(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movl 0x28(%rax), %eax
movq -0x8(%rbp), %rcx
cmpl 0x40(%rcx), %eax
jle 0x1c238
jmp 0x1c1d4
leaq 0x13745(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x1c22d
leaq 0x13139(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0xd17a(%rip), %rcx      # 0x2936f
movq %rcx, 0x10(%rax)
leaq 0xd16f(%rip), %rdi      # 0x2936f
callq 0x278a0
cmpl $0x0, %eax
je 0x1c22d
leaq 0x1310f(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x212, 0xc(%rax)       # imm = 0x212
leaq 0xdc1c(%rip), %rdi      # 0x29e42
movb $0x0, %al
callq 0x28540
jmp 0x1c22f
movl $0xffffffff, -0xc(%rbp) # imm = 0xFFFFFFFF
jmp 0x1c23d
jmp 0x1c17d
jmp 0x1c23f
leaq 0x136da(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x1c2af
leaq 0x130ce(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0xd10f(%rip), %rcx      # 0x2936f
movq %rcx, 0x10(%rax)
leaq 0xd104(%rip), %rdi      # 0x2936f
callq 0x278a0
cmpl $0x0, %eax
je 0x1c2af
leaq 0x130a4(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x217, 0xc(%rax)       # imm = 0x217
movq -0x8(%rbp), %rax
movl 0x68(%rax), %esi
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rcx
leaq 0xdbb8(%rip), %rdi      # 0x29e60
movb $0x0, %al
callq 0x28540
jmp 0x1c2b1
jmp 0x1c2b3
leaq 0x13666(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x1c31c
leaq 0x1305a(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0xd09b(%rip), %rcx      # 0x2936f
movq %rcx, 0x10(%rax)
leaq 0xd090(%rip), %rdi      # 0x2936f
callq 0x278a0
cmpl $0x0, %eax
je 0x1c31c
leaq 0x13030(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x218, 0xc(%rax)       # imm = 0x218
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rdi
callq 0x1d250
movq %rax, %rsi
leaq 0xdb10(%rip), %rdi      # 0x29e25
movb $0x0, %al
callq 0x28540
jmp 0x1c31e
jmp 0x1c320
leaq 0x135f9(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x1c38a
leaq 0x12fed(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0xd02e(%rip), %rcx      # 0x2936f
movq %rcx, 0x10(%rax)
leaq 0xd023(%rip), %rdi      # 0x2936f
callq 0x278a0
cmpl $0x0, %eax
je 0x1c38a
leaq 0x12fc3(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x219, 0xc(%rax)       # imm = 0x219
movq -0x8(%rbp), %rax
movl 0x28(%rax), %esi
movq -0x8(%rbp), %rax
movl 0x40(%rax), %edx
movl -0xc(%rbp), %ecx
leaq 0xdaf7(%rip), %rdi      # 0x29e7a
movb $0x0, %al
callq 0x28540
jmp 0x1c38c
jmp 0x1c38e
leaq 0x1358b(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x1c3f5
leaq 0x12f7f(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0xcfc0(%rip), %rcx      # 0x2936f
movq %rcx, 0x10(%rax)
leaq 0xcfb5(%rip), %rdi      # 0x2936f
callq 0x278a0
cmpl $0x0, %eax
je 0x1c3f5
leaq 0x12f55(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x21a, 0xc(%rax)       # imm = 0x21A
movq -0x8(%rbp), %rax
movl 0x38(%rax), %esi
movq -0x8(%rbp), %rax
movl 0x3c(%rax), %edx
leaq 0xdaaf(%rip), %rdi      # 0x29e9d
movb $0x0, %al
callq 0x28540
jmp 0x1c3f7
jmp 0x1c3f9
leaq 0x13520(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x1c458
leaq 0x12f14(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0xcf55(%rip), %rcx      # 0x2936f
movq %rcx, 0x10(%rax)
leaq 0xcf4a(%rip), %rdi      # 0x2936f
callq 0x278a0
cmpl $0x0, %eax
je 0x1c458
leaq 0x12eea(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x21b, 0xc(%rax)       # imm = 0x21B
movl 0x12f8e(%rip), %esi     # 0x2f3d8
leaq 0xda68(%rip), %rdi      # 0x29eb9
movb $0x0, %al
callq 0x28540
jmp 0x1c45a
jmp 0x1c45c
leaq 0x134bd(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x1c4bb
leaq 0x12eb1(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0xcef2(%rip), %rcx      # 0x2936f
movq %rcx, 0x10(%rax)
leaq 0xcee7(%rip), %rdi      # 0x2936f
callq 0x278a0
cmpl $0x0, %eax
je 0x1c4bb
leaq 0x12e87(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x21c, 0xc(%rax)       # imm = 0x21C
movl 0x12f2f(%rip), %esi     # 0x2f3dc
leaq 0xda18(%rip), %rdi      # 0x29ecc
movb $0x0, %al
callq 0x28540
jmp 0x1c4bd
movl $0x21d, -0x2c(%rbp)     # imm = 0x21D
leaq -0x38(%rbp), %rdi
callq 0x28660
movl -0xc(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)