// File: /workspace/github_c_makefile_star2_O2/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 0x70ca
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)
leaq 0x150(%rsp), %r12
leaq 0x34(%rsp), %rax
andl $0x0, (%rax)
leaq 0x30(%rsp), %rax
andl $0x0, (%rax)
leaq 0x2c(%rsp), %rax
andl $0x0, (%rax)
leaq 0x28(%rsp), %rax
andl $0x0, (%rax)
movq 0x20(%r12), %rax
movq %rax, 0x20(%rsp)
movaps (%r12), %xmm0
movaps 0x10(%r12), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
callq 0x707ce
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)
xorl %r13d, %r13d
testl %ebp, %ebp
cmovlel %r13d, %ebp
xorps %xmm0, %xmm0
movsd %xmm0, 0x38(%rsp)
subl $0x1, %ebp
jb 0x723e
movl 0x40(%rsp), %ecx
cmpq $0x28, %rcx
ja 0x7172
movq %rcx, %rax
addq 0x50(%rsp), %rax
addl $0x8, %ecx
movl %ecx, 0x40(%rsp)
jmp 0x7180
movq 0x48(%rsp), %rax
leaq 0x8(%rax), %rcx
movq %rcx, 0x48(%rsp)
movq (%rax), %r15
testq %r15, %r15
je 0x71f7
movq %r15, %rdi
movl %ebx, %esi
callq 0x10827
movl %eax, %r14d
addl %r13d, %r14d
movq %r15, %rdi
callq 0x2c3cc
cvtsi2sd %eax, %xmm0
movsd 0x38(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x38(%rsp)
cmpl $-0x1, %ebx
je 0x71fc
movq 0x20(%r12), %rax
movq %rax, 0x20(%rsp)
movups (%r12), %xmm0
movups 0x10(%r12), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movq %r15, %rdi
movl %ebx, %esi
leaq 0x34(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x2c(%rsp), %r8
leaq 0x28(%rsp), %r9
callq 0x7143b
jmp 0x7236
movl %r13d, %r14d
jmp 0x7236
movq 0x20(%r12), %rax
movq %rax, 0x20(%rsp)
movups (%r12), %xmm0
movups 0x10(%r12), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movq %r15, %rdi
leaq 0x34(%rsp), %rsi
leaq 0x30(%rsp), %rdx
leaq 0x2c(%rsp), %rcx
leaq 0x28(%rsp), %r8
callq 0x7150b
movl %r14d, %r13d
jmp 0x714e
movl 0x34(%rsp), %edi
movl 0x30(%rsp), %esi
movl 0x2c(%rsp), %edx
movl 0x28(%rsp), %ecx
cmpl $-0x1, %ebx
je 0x7260
cvtsi2sd %r13d, %xmm0
divsd 0x38(%rsp), %xmm0
jmp 0x7268
movsd 0x8eab8(%rip), %xmm0    # 0x95d20
callq 0x7084f
addsd 0x58(%rsp), %xmm0
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq