// File: /workspace/github_c_makefile_star2_O1/markdryan[P]subtilis/common/ir.c
// Function: subtilis_ir_parse_rules
void subtilis_ir_parse_rules(const subtilis_ir_rule_raw_t *raw,
			     subtilis_ir_rule_t *parsed, size_t count,
			     subtilis_error_t *err)
{
	size_t i;
	size_t j;
	const char *rule;

	for (i = 0; i < count; i++) {
		rule = raw[i].text;
		j = 0;
		while (
		    j < SUBTILIS_IR_MAX_MATCHES &&
		    (rule = prv_parse_match(rule, &parsed[i].matches[j], err)))
			j++;
		if (err->type != SUBTILIS_ERROR_OK)
			return;
		if (j == 0) {
			subtilis_error_set_assertion_failed(err);
			return;
		}
		parsed[i].action = raw[i].action;
		parsed[i].matches_count = j;
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
movq %rsi, 0x58(%rsp)
movq %rdi, 0xa0(%rsp)
testq %rdx, %rdx
je 0x2db18
movq %rcx, %rbx
movq %rdx, %r15
movl $0x6562616c, %edi       # imm = 0x6562616C
movl $0x6c6c6163, %r8d       # imm = 0x6C6C6163
movabsq $0x100002600, %rbp      # imm = 0x100002600
movq $0x0, 0x28(%rsp)
movq %rcx, 0x98(%rsp)
movq %rdx, (%rsp)
movq 0x28(%rsp), %rdx
movq %rdx, %rax
shlq $0x4, %rax
movq 0xa0(%rsp), %rcx
leaq (%rcx,%rax), %rsi
movq %rsi, 0xb0(%rsp)
movq (%rcx,%rax), %r14
imulq $0x150, %rdx, %rcx      # imm = 0x150
movq 0x58(%rsp), %rax
movq %rcx, 0xa8(%rsp)
leaq (%rax,%rcx), %r9
xorl %r13d, %r13d
movq %r13, %r12
shlq $0x6, %r12
addq %r9, %r12
movzbl (%r14), %eax
cmpq $0x20, %rax
ja 0x2d54c
btq %rax, %rbp
jae 0x2d53f
incq %r14
jmp 0x2d52a
testq %rax, %rax
jne 0x2d54c
xorl %r14d, %r14d
jmp 0x2da9c
xorl %ecx, %ecx
cmpb $0x20, %al
ja 0x2d55b
movzbl %al, %edx
btq %rdx, %rbp
jb 0x2d57a
movb %al, 0x30(%rsp,%rcx)
leaq 0x1(%rcx), %rdx
movb 0x1(%r14,%rcx), %al
testb %al, %al
je 0x2d575
cmpq $0x1f, %rcx
movq %rdx, %rcx
jb 0x2d54e
addq %rdx, %r14
jmp 0x2d580
addq %rcx, %r14
movq %rcx, %rdx
movb $0x0, 0x30(%rsp,%rdx)
movl 0x30(%rsp), %eax
xorl %edi, %eax
movzwl 0x34(%rsp), %ecx
xorl $0x5f6c, %ecx           # imm = 0x5F6C
orl %eax, %ecx
je 0x2d5cb
movl 0x30(%rsp), %eax
xorl %r8d, %eax
movzbl 0x34(%rsp), %ecx
orl %eax, %ecx
je 0x2d5fd
movq 0x30(%rsp), %rax
movabsq $0x3233696c6c6163, %rcx # imm = 0x3233696C6C6163
cmpq %rcx, %rax
jne 0x2d60a
movl $0x3, (%r12)
jmp 0x2da9c
movl $0x1, (%r12)
addq $0x8, %r12
leaq 0x36(%rsp), %rdi
movq %r12, %rsi
movq %rbx, %rdx
movq %r9, %r12
callq 0x2df76
movq %r12, %r9
movl $0x6c6c6163, %r8d       # imm = 0x6C6C6163
movl $0x6562616c, %edi       # imm = 0x6562616C
jmp 0x2da9c
movl $0x2, (%r12)
jmp 0x2da9c
movl 0x30(%rsp), %ecx
xorl %r8d, %ecx
movzwl 0x34(%rsp), %edx
xorl $0x72, %edx
orl %ecx, %edx
je 0x2d640
movabsq $0x7274703233696c, %rsi # imm = 0x7274703233696C
leaq 0x3a38f7f7(%rsi), %rcx
cmpq %rcx, %rax
jne 0x2d64d
movl $0x5, (%r12)
jmp 0x2da9c
movl $0x4, (%r12)
jmp 0x2da9c
movq 0x30(%rsp), %rcx
movabsq $0x703233696c6c6163, %rdx # imm = 0x703233696C6C6163
xorq %rdx, %rcx
movq 0x33(%rsp), %rdx
xorq %rsi, %rdx
orq %rcx, %rdx
je 0x2d6a4
movq 0x30(%rsp), %rcx
movabsq $0x727470726c6c6163, %rdx # imm = 0x727470726C6C6163
xorq %rdx, %rcx
movzbl 0x38(%rsp), %edx
orq %rcx, %rdx
je 0x2d6b1
movabsq $0x6c6c6163737973, %rcx # imm = 0x6C6C6163737973
cmpq %rcx, %rax
jne 0x2d6be
movl $0x8, (%r12)
jmp 0x2da9c
movl $0x6, (%r12)
jmp 0x2da9c
movl $0x7, (%r12)
jmp 0x2da9c
movq %r9, 0x8(%rsp)
leaq 0x6f546(%rip), %rbx     # 0x9cc10
xorl %r15d, %r15d
movq (%rbx), %rsi
leaq 0x30(%rsp), %rdi
callq 0x12160
testl %eax, %eax
je 0x2d6f4
incq %r15
addq $0x10, %rbx
cmpq $0x9d, %r15
jne 0x2d6cd
movl $0x9d, %r15d
cmpq $0x9d, %r15
movq 0x98(%rsp), %rbx
jne 0x2d72f
movq %rbx, %rdi
movl $0xf, %esi
leaq 0x466bc(%rip), %rdx     # 0x73dd0
movl $0x5f1, %ecx            # imm = 0x5F1
callq 0x145f4
xorl %r14d, %r14d
movq (%rsp), %r15
movl $0x6562616c, %edi       # imm = 0x6562616C
jmp 0x2da27
xorl %eax, %eax
movl %eax, (%r12)
movl %r15d, 0x8(%r12)
movq $0x0, 0x18(%rsp)
movl %eax, 0x88(%rsp)
movq $-0x1, 0x80(%rsp)
movl %r15d, %eax
shlq $0x4, %rax
leaq 0x6f4ac(%rip), %rcx     # 0x9cc10
movl 0x8(%rax,%rcx), %eax
leaq (%rax,%rax,2), %rax
leaq 0x4640d(%rip), %rcx     # 0x73b80
movq (%rcx,%rax,8), %rsi
testq %rsi, %rsi
movl $0x6562616c, %edi       # imm = 0x6562616C
je 0x2da23
leaq (%rcx,%rax,8), %rax
movq %rax, 0x10(%rsp)
xorl %r10d, %r10d
movq (%rsp), %r15
movl $0x6c6c6163, %r8d       # imm = 0x6C6C6163
movq 0x8(%rsp), %r9
movq %rsi, 0x20(%rsp)
movzbl (%r14), %eax
cmpq $0x20, %rax
ja 0x2d7c3
btq %rax, %rbp
jae 0x2d7ba
incq %r14
jmp 0x2d7a5
testq %rax, %rax
jne 0x2d7c3
xorl %edx, %edx
jmp 0x2d801
xorl %ecx, %ecx
cmpb $0x2c, %al
ja 0x2d7dc
movzbl %al, %edx
btq %rdx, %rbp
jb 0x2d7fb
cmpq $0x2c, %rdx
je 0x2da18
movb %al, 0x60(%rsp,%rcx)
leaq 0x1(%rcx), %rdx
movb 0x1(%r14,%rcx), %al
testb %al, %al
je 0x2d7f6
cmpq $0x1f, %rcx
movq %rdx, %rcx
jb 0x2d7c5
addq %rdx, %r14
jmp 0x2d801
addq %rcx, %r14
movq %rcx, %rdx
movb $0x0, 0x60(%rsp,%rdx)
cmpw $0x2a, 0x60(%rsp)
jne 0x2d81c
movl $0x0, 0x30(%r12,%r10,4)
jmp 0x2da07
movl 0x60(%rsp), %eax
xorl %edi, %eax
movzwl 0x64(%rsp), %ecx
xorl $0x5f6c, %ecx           # imm = 0x5F6C
orl %eax, %ecx
je 0x2d8de
movzbl 0x60(%rsp), %eax
cmpl $0x72, %eax
movq %r10, 0x50(%rsp)
je 0x2d941
cmpl $0x66, %eax
je 0x2d956
cmpl $0x23, %eax
jne 0x2da57
movq 0x10(%rsp), %rax
cmpl $0x2, 0x8(%rax,%r10,4)
jne 0x2da5e
callq 0x12040
movq %rax, %r15
movl $0x0, (%rax)
leaq 0x61(%rsp), %rdi
leaq 0x18(%rsp), %rsi
movl $0xa, %edx
callq 0x12250
movq 0x18(%rsp), %rdx
movl $0x582, %ecx            # imm = 0x582
cmpb $0x0, (%rdx)
jne 0x2da71
cmpl $0x0, (%r15)
movl $0x6562616c, %edi       # imm = 0x6562616C
movl $0x6c6c6163, %r8d       # imm = 0x6C6C6163
movq 0x8(%rsp), %r9
jne 0x2da71
cmpq $0x7fffffff, %rax       # imm = 0x7FFFFFFF
ja 0x2da71
movq 0x50(%rsp), %r10
movl %eax, 0x10(%r12,%r10,8)
movl $0x1, 0x30(%r12,%r10,4)
jmp 0x2d9fe
movq 0x10(%rsp), %rax
cmpl $0x4, 0x8(%rax,%r10,4)
jne 0x2da34
movq %r10, %r15
leaq 0x66(%rsp), %rdi
leaq 0x80(%rsp), %rsi
movq %rbx, %rdx
callq 0x2df76
cmpl $0x0, (%rbx)
jne 0x2da3b
movq 0x80(%rsp), %rax
movq %r15, %r10
movq %rax, 0x10(%r12,%r15,8)
movl 0x88(%rsp), %eax
movl %eax, 0x30(%r12,%r15,4)
movl $0x6562616c, %edi       # imm = 0x6562616C
movl $0x6c6c6163, %r8d       # imm = 0x6C6C6163
movq 0x8(%rsp), %r9
jmp 0x2d9fe
movq 0x10(%rsp), %rcx
cmpl $0x0, 0x8(%rcx,%r10,4)
jne 0x2da65
cmpb $0x66, %al
jne 0x2d967
movq 0x10(%rsp), %rax
cmpl $0x1, 0x8(%rax,%r10,4)
jne 0x2da50
movzbl 0x61(%rsp), %ecx
movl $0x2, %eax
leaq 0x62(%rsp), %rdx
cmpl $0x5f, %ecx
je 0x2d98d
testl %ecx, %ecx
je 0x2da6c
movl $0x1, %eax
leaq 0x61(%rsp), %rdx
movq %rdx, 0x90(%rsp)
movl %eax, 0x30(%r12,%r10,4)
callq 0x12040
movq %rax, %r15
movl $0x0, (%rax)
movq 0x90(%rsp), %rdi
leaq 0x18(%rsp), %rsi
movl $0xa, %edx
callq 0x12250
movq 0x18(%rsp), %rdx
movl $0x5a3, %ecx            # imm = 0x5A3
cmpb $0x0, (%rdx)
jne 0x2da71
cmpl $0x0, (%r15)
movl $0x6562616c, %edi       # imm = 0x6562616C
movl $0x6c6c6163, %r8d       # imm = 0x6C6C6163
movq 0x8(%rsp), %r9
jne 0x2da71
cmpq $0x7fffffff, %rax       # imm = 0x7FFFFFFF
ja 0x2da71
movq 0x50(%rsp), %r10
movq %rax, 0x10(%r12,%r10,8)
movq 0x20(%rsp), %rsi
movq (%rsp), %r15
incq %r10
cmpq %rsi, %r10
jne 0x2d7a5
jmp 0x2da9c
addq %rcx, %r14
incq %r14
jmp 0x2d7fe
movq (%rsp), %r15
movl $0x6c6c6163, %r8d       # imm = 0x6C6C6163
movq 0x8(%rsp), %r9
jmp 0x2da9c
movl $0x572, %ecx            # imm = 0x572
jmp 0x2da71
xorl %r14d, %r14d
movl $0x6562616c, %edi       # imm = 0x6562616C
movl $0x6c6c6163, %r8d       # imm = 0x6C6C6163
movq 0x8(%rsp), %r9
jmp 0x2da98
movl $0x591, %ecx            # imm = 0x591
jmp 0x2da71
movl $0x5aa, %ecx            # imm = 0x5AA
jmp 0x2da71
movl $0x57c, %ecx            # imm = 0x57C
jmp 0x2da71
movl $0x58b, %ecx            # imm = 0x58B
jmp 0x2da71
movl $0x596, %ecx            # imm = 0x596
movq %rbx, %rdi
movl $0xf, %esi
leaq 0x46350(%rip), %rdx     # 0x73dd0
callq 0x145f4
movq 0x8(%rsp), %r9
movl $0x6c6c6163, %r8d       # imm = 0x6C6C6163
movl $0x6562616c, %edi       # imm = 0x6562616C
xorl %r14d, %r14d
movq (%rsp), %r15
testq %r14, %r14
je 0x2dab4
incq %r13
cmpq $0x5, %r13
jne 0x2d520
movl $0x5, %r13d
cmpl $0x0, (%rbx)
jne 0x2db18
testq %r13, %r13
je 0x2daff
movq 0xb0(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x58(%rsp), %rcx
movq 0xa8(%rsp), %rdx
movq %rax, 0x148(%rcx,%rdx)
movq %r13, 0x140(%rcx,%rdx)
movq 0x28(%rsp), %rcx
incq %rcx
movq %rcx, 0x28(%rsp)
cmpq %r15, %rcx
jne 0x2d4e1
jmp 0x2db18
leaq 0x462ca(%rip), %rdx     # 0x73dd0
movq %rbx, %rdi
movl $0xf, %esi
movl $0x60c, %ecx            # imm = 0x60C
callq 0x145f4
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq