// File: melop[P]admixem/./newran02/newran.cpp
// Function: AsymGen::Build()
void AsymGen::Build()                        // set up arrays
{
   #ifdef MONITOR
      cout << "building AsymGen arrays\n";
   #endif
   int i;
   NotReady=false;
   sx=new Real[121]; sfx=new Real[121];
   if (!sx || !sfx)  ErrorNoSpace();
   Real sxi=mode;
   for (i=0; i<120; i++)
   {
      sx[i]=sxi; Real f1=Density(sxi); sfx[i]=f1;
      if (f1<=0.0) goto L20;
      sxi+=0.01/f1;
   }
   Throw(Runtime_error("Newran: area too large (a)"));
L20:
   ic=i-1; sx[120]=sxi; sfx[120]=0.0;
   sxi=mode;
   for (; i<120; i++)
   {
      sx[i]=sxi; Real f1=Density(sxi); sfx[i]=f1;
      if (f1<=0.0) goto L30;
      sxi-=0.01/f1;
   }
   Throw(Runtime_error("Newran: area too large (b)"));
L30:
   if (i<100)  Throw(Runtime_error("Newran: area too small"));
   xi=i;
   return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x40(%rbp)
movb $0x0, 0x24(%rax)
movl $0x3c8, %edi            # imm = 0x3C8
callq 0x8040
movq %rax, %rcx
movq -0x40(%rbp), %rax
movq %rcx, 0x10(%rax)
movl $0x3c8, %edi            # imm = 0x3C8
callq 0x8040
movq %rax, %rcx
movq -0x40(%rbp), %rax
movq %rcx, 0x18(%rax)
cmpq $0x0, 0x10(%rax)
je 0x13a54
movq -0x40(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x13a59
callq 0x136a0
movq -0x40(%rbp), %rax
movsd 0x28(%rax), %xmm0
movsd %xmm0, -0x18(%rbp)
movl $0x0, -0xc(%rbp)
cmpl $0x78, -0xc(%rbp)
jge 0x13ade
movq -0x40(%rbp), %rdi
movsd -0x18(%rbp), %xmm0
movq 0x10(%rdi), %rax
movslq -0xc(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0x18(%rbp), %xmm0
movq (%rdi), %rax
callq *0x10(%rax)
movq -0x40(%rbp), %rax
movsd %xmm0, -0x20(%rbp)
movsd -0x20(%rbp), %xmm0
movq 0x18(%rax), %rax
movslq -0xc(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
xorps %xmm0, %xmm0
ucomisd -0x20(%rbp), %xmm0
jb 0x13abc
jmp 0x13b2e
movsd 0x62bbc(%rip), %xmm0    # 0x76680
divsd -0x20(%rbp), %xmm0
addsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x18(%rbp)
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x13a6e
movl $0x1, %edi
callq 0x8230
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x48(%rbp)
leaq 0x62f04(%rip), %rsi     # 0x769fd
callq 0x12df0
jmp 0x13b00
movq -0x48(%rbp), %rdi
leaq 0x9618d(%rip), %rsi     # 0xa9c98
xorl %eax, %eax
movl %eax, %edx
callq 0x8820
movq -0x48(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
callq 0x8370
jmp 0x13c8d
movq -0x40(%rbp), %rax
movl -0xc(%rbp), %ecx
subl $0x1, %ecx
movl %ecx, 0x20(%rax)
movsd -0x18(%rbp), %xmm0
movq 0x10(%rax), %rcx
movsd %xmm0, 0x3c0(%rcx)
movq 0x18(%rax), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, 0x3c0(%rcx)
movsd 0x28(%rax), %xmm0
movsd %xmm0, -0x18(%rbp)
cmpl $0x78, -0xc(%rbp)
jge 0x13bd9
movq -0x40(%rbp), %rdi
movsd -0x18(%rbp), %xmm0
movq 0x10(%rdi), %rax
movslq -0xc(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0x18(%rbp), %xmm0
movq (%rdi), %rax
callq *0x10(%rax)
movq -0x40(%rbp), %rax
movsd %xmm0, -0x38(%rbp)
movsd -0x38(%rbp), %xmm0
movq 0x18(%rax), %rax
movslq -0xc(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
xorps %xmm0, %xmm0
ucomisd -0x38(%rbp), %xmm0
jb 0x13bb3
jmp 0x13c26
movsd 0x62ac5(%rip), %xmm1    # 0x76680
divsd -0x38(%rbp), %xmm1
movsd -0x18(%rbp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, -0x18(%rbp)
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x13b65
movl $0x1, %edi
callq 0x8230
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x50(%rbp)
leaq 0x62e24(%rip), %rsi     # 0x76a18
callq 0x12df0
jmp 0x13bfb
movq -0x50(%rbp), %rdi
leaq 0x96092(%rip), %rsi     # 0xa9c98
xorl %eax, %eax
movl %eax, %edx
callq 0x8820
movq -0x50(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
callq 0x8370
jmp 0x13c8d
cmpl $0x64, -0xc(%rbp)
jge 0x13c79
movl $0x1, %edi
callq 0x8230
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x58(%rbp)
leaq 0x62d9f(%rip), %rsi     # 0x769e6
callq 0x12df0
jmp 0x13c4e
movq -0x58(%rbp), %rdi
leaq 0x9603f(%rip), %rsi     # 0xa9c98
xorl %eax, %eax
movl %eax, %edx
callq 0x8820
movq -0x58(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
callq 0x8370
jmp 0x13c8d
movq -0x40(%rbp), %rax
cvtsi2sdl -0xc(%rbp), %xmm0
movsd %xmm0, 0x8(%rax)
addq $0x60, %rsp
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0x8860
nopw %cs:(%rax,%rax)