// File: /workspace/github_c_makefile_star2_O3/olcaytaner[P]Isell/c45rules.c
// Function: description_length_of_all
double description_length_of_all(Ruleset r, int positive, int count, ...)
{
 /*!Last Changed 19.12.2003*/
 /*!Last Changed 29.11.2003*/
 /*!Last Changed 18.05.2003*/
 int i = 0, C = 0, U = 0, fp = 0, fn = 0, pcount = 0;
 double total = 0, result = description_length_of_ruleset(r, positive);
 Instanceptr tmp;
 va_list ap;
 va_start(ap, count);
 while (i < count)
  {
   tmp = va_arg(ap, Instanceptr);
   if (tmp)
    {
     pcount += find_class_count(tmp, positive);
     total += data_size(tmp);
     if (positive != -1)
       exception_handling(r, tmp, positive, &C, &U, &fp, &fn);
     else
       count_exceptions_for_ruleset(r, tmp, &C, &U, &fp, &fn);
    }
   i++;
  }
 if (positive != -1)
   result += description_length_of_exceptions(C, U, fp, fn, pcount/total);
 else
   result += description_length_of_exceptions(C, U, fp, fn, 0.5);
 return result;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x118, %rsp            # imm = 0x118
movl %esi, %ebp
movl %edi, %ebx
leaq 0x60(%rsp), %r14
movq %rdx, 0x10(%r14)
movq %rcx, 0x18(%r14)
movq %r8, 0x20(%r14)
movq %r9, 0x28(%r14)
testb %al, %al
je 0x72da
movaps %xmm0, 0x90(%rsp)
movaps %xmm1, 0xa0(%rsp)
movaps %xmm2, 0xb0(%rsp)
movaps %xmm3, 0xc0(%rsp)
movaps %xmm4, 0xd0(%rsp)
movaps %xmm5, 0xe0(%rsp)
movaps %xmm6, 0xf0(%rsp)
movaps %xmm7, 0x100(%rsp)
xorl %r15d, %r15d
movl %r15d, 0x30(%rsp)
movl %r15d, 0x2c(%rsp)
movl %r15d, 0x28(%rsp)
movl %r15d, 0x34(%rsp)
movq 0x170(%rsp), %rax
movq %rax, 0x20(%rsp)
movaps 0x150(%rsp), %xmm0
movaps 0x160(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
callq 0x7ad38
movsd %xmm0, 0x58(%rsp)
movq %r14, 0x50(%rsp)
leaq 0x178(%rsp), %rax
movq %rax, 0x48(%rsp)
movabsq $0x3000000010, %rax     # imm = 0x3000000010
movq %rax, 0x40(%rsp)
testl %ebp, %ebp
jle 0x7453
leaq 0x150(%rsp), %r12
xorps %xmm0, %xmm0
movsd %xmm0, 0x38(%rsp)
leaq 0x34(%rsp), %r13
movl 0x40(%rsp), %ecx
cmpq $0x28, %rcx
ja 0x737c
movq %rcx, %rax
addq 0x50(%rsp), %rax
addl $0x8, %ecx
movl %ecx, 0x40(%rsp)
jmp 0x738a
movq 0x48(%rsp), %rax
leaq 0x8(%rax), %rcx
movq %rcx, 0x48(%rsp)
movq (%rax), %r14
testq %r14, %r14
je 0x743b
movq %r14, %rdi
movl %ebx, %esi
callq 0x114f9
addl %eax, %r15d
movq %r14, %rdi
callq 0x30309
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd 0x38(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x38(%rsp)
cmpl $-0x1, %ebx
je 0x7403
movq 0x20(%r12), %rax
movq %rax, 0x20(%rsp)
movups (%r12), %xmm0
movups 0x10(%r12), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movq %r14, %rdi
movl %ebx, %esi
leaq 0x30(%rsp), %rdx
leaq 0x2c(%rsp), %rcx
leaq 0x28(%rsp), %r8
movq %r13, %r9
callq 0x7ba29
jmp 0x743b
movq 0x20(%r12), %rax
movq %rax, 0x20(%rsp)
movups (%r12), %xmm0
movups 0x10(%r12), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movq %r14, %rdi
leaq 0x30(%rsp), %rsi
leaq 0x2c(%rsp), %rdx
leaq 0x28(%rsp), %rcx
movq %r13, %r8
callq 0x7bb0b
decl %ebp
jne 0x7361
xorps %xmm0, %xmm0
cvtsi2sd %r15d, %xmm0
divsd 0x38(%rsp), %xmm0
jmp 0x745b
movsd 0x9e8b5(%rip), %xmm0    # 0xa5d10
movl 0x30(%rsp), %edi
movl 0x2c(%rsp), %esi
movl 0x28(%rsp), %edx
movl 0x34(%rsp), %ecx
cmpl $-0x1, %ebx
jne 0x7478
movsd 0x9e8a0(%rip), %xmm0    # 0xa5d18
callq 0x7adc2
addsd 0x58(%rsp), %xmm0
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq