// File: /workspace/github_c_makefile_star2_O0/ggerganov[P]font-rasterizer/./stb_truetype.h
// Function: stbtt_GetGlyphSDF
STBTT_DEF unsigned char * stbtt_GetGlyphSDF(const stbtt_fontinfo *info, float scale, int glyph, int padding, unsigned char onedge_value, float pixel_dist_scale, int *width, int *height, int *xoff, int *yoff)
{
   float scale_x = scale, scale_y = scale;
   int ix0,iy0,ix1,iy1;
   int w,h;
   unsigned char *data;

   // if one scale is 0, use same scale for both
   if (scale_x == 0) scale_x = scale_y;
   if (scale_y == 0) {
      if (scale_x == 0) return NULL;  // if both scales are 0, return NULL
      scale_y = scale_x;
   }

   stbtt_GetGlyphBitmapBoxSubpixel(info, glyph, scale, scale, 0.0f,0.0f, &ix0,&iy0,&ix1,&iy1);

   // if empty, return NULL
   if (ix0 == ix1 || iy0 == iy1)
      return NULL;

   ix0 -= padding;
   iy0 -= padding;
   ix1 += padding;
   iy1 += padding;

   w = (ix1 - ix0);
   h = (iy1 - iy0);

   if (width ) *width  = w;
   if (height) *height = h;
   if (xoff  ) *xoff   = ix0;
   if (yoff  ) *yoff   = iy0;

   // invert for y-downwards bitmaps
   scale_y = -scale_y;
      
   {
      int x,y,i,j;
      float *precompute;
      stbtt_vertex *verts;
      int num_verts = stbtt_GetGlyphShape(info, glyph, &verts);
      data = (unsigned char *) STBTT_malloc(w * h, info->userdata);
      precompute = (float *) STBTT_malloc(num_verts * sizeof(float), info->userdata);

      for (i=0,j=num_verts-1; i < num_verts; j=i++) {
         if (verts[i].type == STBTT_vline) {
            float x0 = verts[i].x*scale_x, y0 = verts[i].y*scale_y;
            float x1 = verts[j].x*scale_x, y1 = verts[j].y*scale_y;
            float dist = (float) STBTT_sqrt((x1-x0)*(x1-x0) + (y1-y0)*(y1-y0));
            precompute[i] = (dist == 0) ? 0.0f : 1.0f / dist;
         } else if (verts[i].type == STBTT_vcurve) {
            float x2 = verts[j].x *scale_x, y2 = verts[j].y *scale_y;
            float x1 = verts[i].cx*scale_x, y1 = verts[i].cy*scale_y;
            float x0 = verts[i].x *scale_x, y0 = verts[i].y *scale_y;
            float bx = x0 - 2*x1 + x2, by = y0 - 2*y1 + y2;
            float len2 = bx*bx + by*by;
            if (len2 != 0.0f)
               precompute[i] = 1.0f / (bx*bx + by*by);
            else
               precompute[i] = 0.0f;
         } else
            precompute[i] = 0.0f;
      }

      for (y=iy0; y < iy1; ++y) {
         for (x=ix0; x < ix1; ++x) {
            float val;
            float min_dist = 999999.0f;
            float sx = (float) x + 0.5f;
            float sy = (float) y + 0.5f;
            float x_gspace = (sx / scale_x);
            float y_gspace = (sy / scale_y);

            int winding = stbtt__compute_crossings_x(x_gspace, y_gspace, num_verts, verts); // @OPTIMIZE: this could just be a rasterization, but needs to be line vs. non-tesselated curves so a new path

            for (i=0; i < num_verts; ++i) {
               float x0 = verts[i].x*scale_x, y0 = verts[i].y*scale_y;

               // check against every point here rather than inside line/curve primitives -- @TODO: wrong if multiple 'moves' in a row produce a garbage point, and given culling, probably more efficient to do within line/curve
               float dist2 = (x0-sx)*(x0-sx) + (y0-sy)*(y0-sy);
               if (dist2 < min_dist*min_dist)
                  min_dist = (float) STBTT_sqrt(dist2);

               if (verts[i].type == STBTT_vline) {
                  float x1 = verts[i-1].x*scale_x, y1 = verts[i-1].y*scale_y;

                  // coarse culling against bbox
                  //if (sx > STBTT_min(x0,x1)-min_dist && sx < STBTT_max(x0,x1)+min_dist &&
                  //    sy > STBTT_min(y0,y1)-min_dist && sy < STBTT_max(y0,y1)+min_dist)
                  float dist = (float) STBTT_fabs((x1-x0)*(y0-sy) - (y1-y0)*(x0-sx)) * precompute[i];
                  STBTT_assert(i != 0);
                  if (dist < min_dist) {
                     // check position along line
                     // x' = x0 + t*(x1-x0), y' = y0 + t*(y1-y0)
                     // minimize (x'-sx)*(x'-sx)+(y'-sy)*(y'-sy)
                     float dx = x1-x0, dy = y1-y0;
                     float px = x0-sx, py = y0-sy;
                     // minimize (px+t*dx)^2 + (py+t*dy)^2 = px*px + 2*px*dx*t + t^2*dx*dx + py*py + 2*py*dy*t + t^2*dy*dy
                     // derivative: 2*px*dx + 2*py*dy + (2*dx*dx+2*dy*dy)*t, set to 0 and solve
                     float t = -(px*dx + py*dy) / (dx*dx + dy*dy);
                     if (t >= 0.0f && t <= 1.0f)
                        min_dist = dist;
                  }
               } else if (verts[i].type == STBTT_vcurve) {
                  float x2 = verts[i-1].x *scale_x, y2 = verts[i-1].y *scale_y;
                  float x1 = verts[i  ].cx*scale_x, y1 = verts[i  ].cy*scale_y;
                  float box_x0 = STBTT_min(STBTT_min(x0,x1),x2);
                  float box_y0 = STBTT_min(STBTT_min(y0,y1),y2);
                  float box_x1 = STBTT_max(STBTT_max(x0,x1),x2);
                  float box_y1 = STBTT_max(STBTT_max(y0,y1),y2);
                  // coarse culling against bbox to avoid computing cubic unnecessarily
                  if (sx > box_x0-min_dist && sx < box_x1+min_dist && sy > box_y0-min_dist && sy < box_y1+min_dist) {
                     int num=0;
                     float ax = x1-x0, ay = y1-y0;
                     float bx = x0 - 2*x1 + x2, by = y0 - 2*y1 + y2;
                     float mx = x0 - sx, my = y0 - sy;
                     float res[3],px,py,t,it;
                     float a_inv = precompute[i];
                     if (a_inv == 0.0) { // if a_inv is 0, it's 2nd degree so use quadratic formula
                        float a = 3*(ax*bx + ay*by);
                        float b = 2*(ax*ax + ay*ay) + (mx*bx+my*by);
                        float c = mx*ax+my*ay;
                        if (a == 0.0) { // if a is 0, it's linear
                           if (b != 0.0) {
                              res[num++] = -c/b;
                           }
                        } else {
                           float discriminant = b*b - 4*a*c;
                           if (discriminant < 0)
                              num = 0;
                           else {
                              float root = (float) STBTT_sqrt(discriminant);
                              res[0] = (-b - root)/(2*a);
                              res[1] = (-b + root)/(2*a);
                              num = 2; // don't bother distinguishing 1-solution case, as code below will still work
                           }
                        }
                     } else {
                        float b = 3*(ax*bx + ay*by) * a_inv; // could precompute this as it doesn't depend on sample point
                        float c = (2*(ax*ax + ay*ay) + (mx*bx+my*by)) * a_inv;
                        float d = (mx*ax+my*ay) * a_inv;
                        num = stbtt__solve_cubic(b, c, d, res);
                     }
                     if (num >= 1 && res[0] >= 0.0f && res[0] <= 1.0f) {
                        t = res[0], it = 1.0f - t;
                        px = it*it*x0 + 2*t*it*x1 + t*t*x2;
                        py = it*it*y0 + 2*t*it*y1 + t*t*y2;
                        dist2 = (px-sx)*(px-sx) + (py-sy)*(py-sy);
                        if (dist2 < min_dist * min_dist)
                           min_dist = (float) STBTT_sqrt(dist2);
                     }
                     if (num >= 2 && res[1] >= 0.0f && res[1] <= 1.0f) {
                        t = res[1], it = 1.0f - t;
                        px = it*it*x0 + 2*t*it*x1 + t*t*x2;
                        py = it*it*y0 + 2*t*it*y1 + t*t*y2;
                        dist2 = (px-sx)*(px-sx) + (py-sy)*(py-sy);
                        if (dist2 < min_dist * min_dist)
                           min_dist = (float) STBTT_sqrt(dist2);
                     }
                     if (num >= 3 && res[2] >= 0.0f && res[2] <= 1.0f) {
                        t = res[2], it = 1.0f - t;
                        px = it*it*x0 + 2*t*it*x1 + t*t*x2;
                        py = it*it*y0 + 2*t*it*y1 + t*t*y2;
                        dist2 = (px-sx)*(px-sx) + (py-sy)*(py-sy);
                        if (dist2 < min_dist * min_dist)
                           min_dist = (float) STBTT_sqrt(dist2);
                     }
                  }
               }
            }
            if (winding == 0)
               min_dist = -min_dist;  // if outside the shape, value is negative
            val = onedge_value + pixel_dist_scale * min_dist;
            if (val < 0)
               val = 0;
            else if (val > 255)
               val = 255;
            data[(y-iy0)*w+(x-ix0)] = (unsigned char) val;
         }
      }
      STBTT_free(precompute, info->userdata);
      STBTT_free(verts, info->userdata);
   }
   return data;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1c0, %rsp            # imm = 0x1C0
movb %cl, %al
movq 0x18(%rbp), %rcx
movq 0x10(%rbp), %rcx
movq %rdi, -0x10(%rbp)
movss %xmm0, -0x14(%rbp)
movl %esi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
movb %al, -0x1d(%rbp)
movss %xmm1, -0x24(%rbp)
movq %r8, -0x30(%rbp)
movq %r9, -0x38(%rbp)
movss -0x14(%rbp), %xmm0
movss %xmm0, -0x3c(%rbp)
movss -0x14(%rbp), %xmm0
movss %xmm0, -0x40(%rbp)
movss -0x3c(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x9c21
jp 0x9c21
movss -0x40(%rbp), %xmm0
movss %xmm0, -0x3c(%rbp)
movss -0x40(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x9c56
jp 0x9c56
movss -0x3c(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x9c4c
jp 0x9c4c
movq $0x0, -0x8(%rbp)
jmp 0xb338
movss -0x3c(%rbp), %xmm0
movss %xmm0, -0x40(%rbp)
movq -0x10(%rbp), %rdi
movl -0x18(%rbp), %esi
movss -0x14(%rbp), %xmm0
movss -0x14(%rbp), %xmm1
xorps %xmm3, %xmm3
leaq -0x44(%rbp), %rdx
leaq -0x48(%rbp), %rcx
leaq -0x4c(%rbp), %r8
leaq -0x50(%rbp), %r9
movaps %xmm3, %xmm2
callq 0x6d20
movl -0x44(%rbp), %eax
cmpl -0x4c(%rbp), %eax
je 0x9c92
movl -0x48(%rbp), %eax
cmpl -0x50(%rbp), %eax
jne 0x9c9f
movq $0x0, -0x8(%rbp)
jmp 0xb338
movl -0x1c(%rbp), %ecx
movl -0x44(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x44(%rbp)
movl -0x1c(%rbp), %ecx
movl -0x48(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x48(%rbp)
movl -0x1c(%rbp), %eax
addl -0x4c(%rbp), %eax
movl %eax, -0x4c(%rbp)
movl -0x1c(%rbp), %eax
addl -0x50(%rbp), %eax
movl %eax, -0x50(%rbp)
movl -0x4c(%rbp), %eax
subl -0x44(%rbp), %eax
movl %eax, -0x54(%rbp)
movl -0x50(%rbp), %eax
subl -0x48(%rbp), %eax
movl %eax, -0x58(%rbp)
cmpq $0x0, -0x30(%rbp)
je 0x9ce9
movl -0x54(%rbp), %ecx
movq -0x30(%rbp), %rax
movl %ecx, (%rax)
cmpq $0x0, -0x38(%rbp)
je 0x9cf9
movl -0x58(%rbp), %ecx
movq -0x38(%rbp), %rax
movl %ecx, (%rax)
cmpq $0x0, 0x10(%rbp)
je 0x9d09
movl -0x44(%rbp), %ecx
movq 0x10(%rbp), %rax
movl %ecx, (%rax)
cmpq $0x0, 0x18(%rbp)
je 0x9d19
movl -0x48(%rbp), %ecx
movq 0x18(%rbp), %rax
movl %ecx, (%rax)
movss -0x40(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x40(%rbp)
movq -0x10(%rbp), %rdi
movl -0x18(%rbp), %esi
leaq -0x80(%rbp), %rdx
callq 0x4a50
movl %eax, -0x84(%rbp)
movl -0x54(%rbp), %eax
imull -0x58(%rbp), %eax
movslq %eax, %rdi
callq 0x1140
movq %rax, -0x60(%rbp)
movslq -0x84(%rbp), %rdi
shlq $0x2, %rdi
callq 0x1140
movq %rax, -0x78(%rbp)
movl $0x0, -0x6c(%rbp)
movl -0x84(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x70(%rbp)
movl -0x6c(%rbp), %eax
cmpl -0x84(%rbp), %eax
jge 0xa0ed
movq -0x80(%rbp), %rax
movslq -0x6c(%rbp), %rcx
imulq $0xe, %rcx, %rcx
addq %rcx, %rax
movzbl 0xc(%rax), %eax
cmpl $0x2, %eax
jne 0x9eeb
movq -0x80(%rbp), %rax
movslq -0x6c(%rbp), %rcx
imulq $0xe, %rcx, %rcx
addq %rcx, %rax
movswl (%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x3c(%rbp), %xmm0
movss %xmm0, -0x88(%rbp)
movq -0x80(%rbp), %rax
movslq -0x6c(%rbp), %rcx
imulq $0xe, %rcx, %rcx
addq %rcx, %rax
movswl 0x2(%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x40(%rbp), %xmm0
movss %xmm0, -0x8c(%rbp)
movq -0x80(%rbp), %rax
movslq -0x70(%rbp), %rcx
imulq $0xe, %rcx, %rcx
addq %rcx, %rax
movswl (%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x3c(%rbp), %xmm0
movss %xmm0, -0x90(%rbp)
movq -0x80(%rbp), %rax
movslq -0x70(%rbp), %rcx
imulq $0xe, %rcx, %rcx
addq %rcx, %rax
movswl 0x2(%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x40(%rbp), %xmm0
movss %xmm0, -0x94(%rbp)
movss -0x90(%rbp), %xmm0
subss -0x88(%rbp), %xmm0
movss -0x90(%rbp), %xmm2
subss -0x88(%rbp), %xmm2
movss -0x94(%rbp), %xmm1
subss -0x8c(%rbp), %xmm1
movss -0x94(%rbp), %xmm3
subss -0x8c(%rbp), %xmm3
mulss %xmm3, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x11d0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x98(%rbp)
movss -0x98(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x9eb9
jp 0x9eb9
xorps %xmm0, %xmm0
movss %xmm0, -0x184(%rbp)
jmp 0x9ed1
movss 0xc75b(%rip), %xmm0     # 0x1661c
divss -0x98(%rbp), %xmm0
movss %xmm0, -0x184(%rbp)
movss -0x184(%rbp), %xmm0
movq -0x78(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movss %xmm0, (%rax,%rcx,4)
jmp 0xa0d8
movq -0x80(%rbp), %rax
movslq -0x6c(%rbp), %rcx
imulq $0xe, %rcx, %rcx
addq %rcx, %rax
movzbl 0xc(%rax), %eax
cmpl $0x3, %eax
jne 0xa0c6
movq -0x80(%rbp), %rax
movslq -0x70(%rbp), %rcx
imulq $0xe, %rcx, %rcx
addq %rcx, %rax
movswl (%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x3c(%rbp), %xmm0
movss %xmm0, -0x9c(%rbp)
movq -0x80(%rbp), %rax
movslq -0x70(%rbp), %rcx
imulq $0xe, %rcx, %rcx
addq %rcx, %rax
movswl 0x2(%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x40(%rbp), %xmm0
movss %xmm0, -0xa0(%rbp)
movq -0x80(%rbp), %rax
movslq -0x6c(%rbp), %rcx
imulq $0xe, %rcx, %rcx
addq %rcx, %rax
movswl 0x4(%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x3c(%rbp), %xmm0
movss %xmm0, -0xa4(%rbp)
movq -0x80(%rbp), %rax
movslq -0x6c(%rbp), %rcx
imulq $0xe, %rcx, %rcx
addq %rcx, %rax
movswl 0x6(%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x40(%rbp), %xmm0
movss %xmm0, -0xa8(%rbp)
movq -0x80(%rbp), %rax
movslq -0x6c(%rbp), %rcx
imulq $0xe, %rcx, %rcx
addq %rcx, %rax
movswl (%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x3c(%rbp), %xmm0
movss %xmm0, -0xac(%rbp)
movq -0x80(%rbp), %rax
movslq -0x6c(%rbp), %rcx
imulq $0xe, %rcx, %rcx
addq %rcx, %rax
movswl 0x2(%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x40(%rbp), %xmm0
movss %xmm0, -0xb0(%rbp)
movss -0xac(%rbp), %xmm0
movss -0xa4(%rbp), %xmm1
addss %xmm1, %xmm1
subss %xmm1, %xmm0
addss -0x9c(%rbp), %xmm0
movss %xmm0, -0xb4(%rbp)
movss -0xb0(%rbp), %xmm0
movss -0xa8(%rbp), %xmm1
addss %xmm1, %xmm1
subss %xmm1, %xmm0
addss -0xa0(%rbp), %xmm0
movss %xmm0, -0xb8(%rbp)
movss -0xb4(%rbp), %xmm0
movss -0xb4(%rbp), %xmm2
movss -0xb8(%rbp), %xmm1
mulss -0xb8(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xbc(%rbp)
movss -0xbc(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0xa071
jp 0xa071
jmp 0xa0b4
movss -0xb4(%rbp), %xmm1
movss -0xb4(%rbp), %xmm2
movss -0xb8(%rbp), %xmm0
mulss -0xb8(%rbp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss 0xc57b(%rip), %xmm0     # 0x1661c
divss %xmm1, %xmm0
movq -0x78(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movss %xmm0, (%rax,%rcx,4)
jmp 0xa0c4
movq -0x78(%rbp), %rax
movslq -0x6c(%rbp), %rcx
xorps %xmm0, %xmm0
movss %xmm0, (%rax,%rcx,4)
jmp 0xa0d6
movq -0x78(%rbp), %rax
movslq -0x6c(%rbp), %rcx
xorps %xmm0, %xmm0
movss %xmm0, (%rax,%rcx,4)
jmp 0xa0d8
jmp 0xa0da
movl -0x6c(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x6c(%rbp)
movl %eax, -0x70(%rbp)
jmp 0x9d80
movl -0x48(%rbp), %eax
movl %eax, -0x68(%rbp)
movl -0x68(%rbp), %eax
cmpl -0x50(%rbp), %eax
jge 0xb31e
movl -0x44(%rbp), %eax
movl %eax, -0x64(%rbp)
movl -0x64(%rbp), %eax
cmpl -0x4c(%rbp), %eax
jge 0xb30e
movss 0xc517(%rip), %xmm0     # 0x16630
movss %xmm0, -0xc4(%rbp)
cvtsi2ssl -0x64(%rbp), %xmm0
movss 0xc4ce(%rip), %xmm1     # 0x165fc
addss %xmm1, %xmm0
movss %xmm0, -0xc8(%rbp)
cvtsi2ssl -0x68(%rbp), %xmm0
movss 0xc4b5(%rip), %xmm1     # 0x165fc
addss %xmm1, %xmm0
movss %xmm0, -0xcc(%rbp)
movss -0xc8(%rbp), %xmm0
divss -0x3c(%rbp), %xmm0
movss %xmm0, -0xd0(%rbp)
movss -0xcc(%rbp), %xmm0
divss -0x40(%rbp), %xmm0
movss %xmm0, -0xd4(%rbp)
movss -0xd0(%rbp), %xmm0
movss -0xd4(%rbp), %xmm1
movl -0x84(%rbp), %edi
movq -0x80(%rbp), %rsi
callq 0xb350
movl %eax, -0xd8(%rbp)
movl $0x0, -0x6c(%rbp)
movl -0x6c(%rbp), %eax
cmpl -0x84(%rbp), %eax
jge 0xb24f
movq -0x80(%rbp), %rax
movslq -0x6c(%rbp), %rcx
imulq $0xe, %rcx, %rcx
addq %rcx, %rax
movswl (%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x3c(%rbp), %xmm0
movss %xmm0, -0xdc(%rbp)
movq -0x80(%rbp), %rax
movslq -0x6c(%rbp), %rcx
imulq $0xe, %rcx, %rcx
addq %rcx, %rax
movswl 0x2(%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x40(%rbp), %xmm0
movss %xmm0, -0xe0(%rbp)
movss -0xdc(%rbp), %xmm0
subss -0xc8(%rbp), %xmm0
movss -0xdc(%rbp), %xmm2
subss -0xc8(%rbp), %xmm2
movss -0xe0(%rbp), %xmm1
subss -0xcc(%rbp), %xmm1
movss -0xe0(%rbp), %xmm3
subss -0xcc(%rbp), %xmm3
mulss %xmm3, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xe4(%rbp)
movss -0xe4(%rbp), %xmm1
movss -0xc4(%rbp), %xmm0
mulss -0xc4(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0xa28d
movss -0xe4(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x11d0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xc4(%rbp)
movq -0x80(%rbp), %rax
movslq -0x6c(%rbp), %rcx
imulq $0xe, %rcx, %rcx
addq %rcx, %rax
movzbl 0xc(%rax), %eax
cmpl $0x2, %eax
jne 0xa4bc
movq -0x80(%rbp), %rax
movl -0x6c(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
imulq $0xe, %rcx, %rcx
addq %rcx, %rax
movswl (%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x3c(%rbp), %xmm0
movss %xmm0, -0xe8(%rbp)
movq -0x80(%rbp), %rax
movl -0x6c(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
imulq $0xe, %rcx, %rcx
addq %rcx, %rax
movswl 0x2(%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x40(%rbp), %xmm0
movss %xmm0, -0xec(%rbp)
movss -0xe8(%rbp), %xmm0
subss -0xdc(%rbp), %xmm0
movss -0xe0(%rbp), %xmm2
subss -0xcc(%rbp), %xmm2
movss -0xec(%rbp), %xmm1
subss -0xe0(%rbp), %xmm1
movss -0xdc(%rbp), %xmm3
subss -0xc8(%rbp), %xmm3
mulss %xmm3, %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movaps 0xc322(%rip), %xmm1     # 0x16680
pand %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movq -0x78(%rbp), %rax
movslq -0x6c(%rbp), %rcx
mulss (%rax,%rcx,4), %xmm0
movss %xmm0, -0xf0(%rbp)
cmpl $0x0, -0x6c(%rbp)
je 0xa383
jmp 0xa3a2
leaq 0xc526(%rip), %rdi      # 0x168b0
leaq 0xc426(%rip), %rsi      # 0x167b7
movl $0x117b, %edx           # imm = 0x117B
leaq 0xc51a(%rip), %rcx      # 0x168b7
callq 0x10a0
movss -0xf0(%rbp), %xmm1
movss -0xc4(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0xa4b7
movss -0xe8(%rbp), %xmm0
subss -0xdc(%rbp), %xmm0
movss %xmm0, -0xf4(%rbp)
movss -0xec(%rbp), %xmm0
subss -0xe0(%rbp), %xmm0
movss %xmm0, -0xf8(%rbp)
movss -0xdc(%rbp), %xmm0
subss -0xc8(%rbp), %xmm0
movss %xmm0, -0xfc(%rbp)
movss -0xe0(%rbp), %xmm0
subss -0xcc(%rbp), %xmm0
movss %xmm0, -0x100(%rbp)
movss -0xfc(%rbp), %xmm0
movss -0xf4(%rbp), %xmm2
movss -0x100(%rbp), %xmm1
mulss -0xf8(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss -0xf4(%rbp), %xmm1
movss -0xf4(%rbp), %xmm3
movss -0xf8(%rbp), %xmm2
mulss -0xf8(%rbp), %xmm2
mulss %xmm3, %xmm1
addss %xmm2, %xmm1
divss %xmm1, %xmm0
movss %xmm0, -0x104(%rbp)
movss -0x104(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jb 0xa4b5
movss 0xc180(%rip), %xmm0     # 0x1661c
ucomiss -0x104(%rbp), %xmm0
jb 0xa4b5
movss -0xf0(%rbp), %xmm0
movss %xmm0, -0xc4(%rbp)
jmp 0xa4b7
jmp 0xb23f
movq -0x80(%rbp), %rax
movslq -0x6c(%rbp), %rcx
imulq $0xe, %rcx, %rcx
addq %rcx, %rax
movzbl 0xc(%rax), %eax
cmpl $0x3, %eax
jne 0xb23d
movq -0x80(%rbp), %rax
movl -0x6c(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
imulq $0xe, %rcx, %rcx
addq %rcx, %rax
movswl (%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x3c(%rbp), %xmm0
movss %xmm0, -0x108(%rbp)
movq -0x80(%rbp), %rax
movl -0x6c(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
imulq $0xe, %rcx, %rcx
addq %rcx, %rax
movswl 0x2(%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x40(%rbp), %xmm0
movss %xmm0, -0x10c(%rbp)
movq -0x80(%rbp), %rax
movslq -0x6c(%rbp), %rcx
imulq $0xe, %rcx, %rcx
addq %rcx, %rax
movswl 0x4(%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x3c(%rbp), %xmm0
movss %xmm0, -0x110(%rbp)
movq -0x80(%rbp), %rax
movslq -0x6c(%rbp), %rcx
imulq $0xe, %rcx, %rcx
addq %rcx, %rax
movswl 0x6(%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x40(%rbp), %xmm0
movss %xmm0, -0x114(%rbp)
movss -0xdc(%rbp), %xmm1
movss -0x110(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0xa598
movss -0xdc(%rbp), %xmm0
movss %xmm0, -0x188(%rbp)
jmp 0xa5a8
movss -0x110(%rbp), %xmm0
movss %xmm0, -0x188(%rbp)
movss -0x188(%rbp), %xmm1
movss -0x108(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0xa606
movss -0xdc(%rbp), %xmm1
movss -0x110(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0xa5e4
movss -0xdc(%rbp), %xmm0
movss %xmm0, -0x18c(%rbp)
jmp 0xa5f4
movss -0x110(%rbp), %xmm0
movss %xmm0, -0x18c(%rbp)
movss -0x18c(%rbp), %xmm0
movss %xmm0, -0x190(%rbp)
jmp 0xa616
movss -0x108(%rbp), %xmm0
movss %xmm0, -0x190(%rbp)
movss -0x190(%rbp), %xmm0
movss %xmm0, -0x118(%rbp)
movss -0xe0(%rbp), %xmm1
movss -0x114(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0xa64d
movss -0xe0(%rbp), %xmm0
movss %xmm0, -0x194(%rbp)
jmp 0xa65d
movss -0x114(%rbp), %xmm0
movss %xmm0, -0x194(%rbp)
movss -0x194(%rbp), %xmm1
movss -0x10c(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0xa6bb
movss -0xe0(%rbp), %xmm1
movss -0x114(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0xa699
movss -0xe0(%rbp), %xmm0
movss %xmm0, -0x198(%rbp)
jmp 0xa6a9
movss -0x114(%rbp), %xmm0
movss %xmm0, -0x198(%rbp)
movss -0x198(%rbp), %xmm0
movss %xmm0, -0x19c(%rbp)
jmp 0xa6cb
movss -0x10c(%rbp), %xmm0
movss %xmm0, -0x19c(%rbp)
movss -0x19c(%rbp), %xmm0
movss %xmm0, -0x11c(%rbp)
movss -0xdc(%rbp), %xmm1
movss -0x110(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0xa702
movss -0x110(%rbp), %xmm0
movss %xmm0, -0x1a0(%rbp)
jmp 0xa712
movss -0xdc(%rbp), %xmm0
movss %xmm0, -0x1a0(%rbp)
movss -0x1a0(%rbp), %xmm1
movss -0x108(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0xa739
movss -0x108(%rbp), %xmm0
movss %xmm0, -0x1a4(%rbp)
jmp 0xa780
movss -0xdc(%rbp), %xmm1
movss -0x110(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0xa760
movss -0x110(%rbp), %xmm0
movss %xmm0, -0x1a8(%rbp)
jmp 0xa770
movss -0xdc(%rbp), %xmm0
movss %xmm0, -0x1a8(%rbp)
movss -0x1a8(%rbp), %xmm0
movss %xmm0, -0x1a4(%rbp)
movss -0x1a4(%rbp), %xmm0
movss %xmm0, -0x120(%rbp)
movss -0xe0(%rbp), %xmm1
movss -0x114(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0xa7b7
movss -0x114(%rbp), %xmm0
movss %xmm0, -0x1ac(%rbp)
jmp 0xa7c7
movss -0xe0(%rbp), %xmm0
movss %xmm0, -0x1ac(%rbp)
movss -0x1ac(%rbp), %xmm1
movss -0x10c(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0xa7ee
movss -0x10c(%rbp), %xmm0
movss %xmm0, -0x1b0(%rbp)
jmp 0xa835
movss -0xe0(%rbp), %xmm1
movss -0x114(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0xa815
movss -0x114(%rbp), %xmm0
movss %xmm0, -0x1b4(%rbp)
jmp 0xa825
movss -0xe0(%rbp), %xmm0
movss %xmm0, -0x1b4(%rbp)
movss -0x1b4(%rbp), %xmm0
movss %xmm0, -0x1b0(%rbp)
movss -0x1b0(%rbp), %xmm0
movss %xmm0, -0x124(%rbp)
movss -0xc8(%rbp), %xmm0
movss -0x118(%rbp), %xmm1
subss -0xc4(%rbp), %xmm1
ucomiss %xmm1, %xmm0
jbe 0xb23b
movss -0xc8(%rbp), %xmm1
movss -0x120(%rbp), %xmm0
addss -0xc4(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0xb23b
movss -0xcc(%rbp), %xmm0
movss -0x11c(%rbp), %xmm1
subss -0xc4(%rbp), %xmm1
ucomiss %xmm1, %xmm0
jbe 0xb23b
movss -0xcc(%rbp), %xmm1
movss -0x124(%rbp), %xmm0
addss -0xc4(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0xb23b
movl $0x0, -0x128(%rbp)
movss -0x110(%rbp), %xmm0
subss -0xdc(%rbp), %xmm0
movss %xmm0, -0x12c(%rbp)
movss -0x114(%rbp), %xmm0
subss -0xe0(%rbp), %xmm0
movss %xmm0, -0x130(%rbp)
movss -0xdc(%rbp), %xmm0
movss -0x110(%rbp), %xmm1
addss %xmm1, %xmm1
subss %xmm1, %xmm0
addss -0x108(%rbp), %xmm0
movss %xmm0, -0x134(%rbp)
movss -0xe0(%rbp), %xmm0
movss -0x114(%rbp), %xmm1
addss %xmm1, %xmm1
subss %xmm1, %xmm0
addss -0x10c(%rbp), %xmm0
movss %xmm0, -0x138(%rbp)
movss -0xdc(%rbp), %xmm0
subss -0xc8(%rbp), %xmm0
movss %xmm0, -0x13c(%rbp)
movss -0xe0(%rbp), %xmm0
subss -0xcc(%rbp), %xmm0
movss %xmm0, -0x140(%rbp)
movq -0x78(%rbp), %rax
movslq -0x6c(%rbp), %rcx
movss (%rax,%rcx,4), %xmm0
movss %xmm0, -0x160(%rbp)
movss -0x160(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xabf1
jp 0xabf1
movss -0x12c(%rbp), %xmm1
movss -0x134(%rbp), %xmm2
movss -0x130(%rbp), %xmm0
mulss -0x138(%rbp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss 0xbc51(%rip), %xmm0     # 0x16638
mulss %xmm1, %xmm0
movss %xmm0, -0x164(%rbp)
movss -0x12c(%rbp), %xmm0
movss -0x12c(%rbp), %xmm2
movss -0x130(%rbp), %xmm1
mulss -0x130(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss -0x13c(%rbp), %xmm1
movss -0x134(%rbp), %xmm3
movss -0x140(%rbp), %xmm2
mulss -0x138(%rbp), %xmm2
mulss %xmm3, %xmm1
addss %xmm2, %xmm1
addss %xmm0, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x168(%rbp)
movss -0x13c(%rbp), %xmm0
movss -0x12c(%rbp), %xmm2
movss -0x140(%rbp), %xmm1
mulss -0x130(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x16c(%rbp)
movss -0x164(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xaaf1
jp 0xaaf1
movss -0x168(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xaab3
jp 0xaab3
jmp 0xaaec
movss -0x16c(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
divss -0x168(%rbp), %xmm0
movl -0x128(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x128(%rbp)
cltq
movss %xmm0, -0x14c(%rbp,%rax,4)
jmp 0xabec
movss -0x168(%rbp), %xmm0
movss -0x168(%rbp), %xmm2
movss 0xbb33(%rip), %xmm1     # 0x1663c
mulss -0x164(%rbp), %xmm1
mulss -0x16c(%rbp), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x170(%rbp)
xorps %xmm0, %xmm0
ucomiss -0x170(%rbp), %xmm0
jbe 0xab51
movl $0x0, -0x128(%rbp)
jmp 0xabea
movss -0x170(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x11d0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x174(%rbp)
movss -0x168(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
subss -0x174(%rbp), %xmm0
movss 0xba99(%rip), %xmm1     # 0x1662c
mulss -0x164(%rbp), %xmm1
divss %xmm1, %xmm0
movss %xmm0, -0x14c(%rbp)
movss -0x168(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
addss -0x174(%rbp), %xmm0
movss 0xba60(%rip), %xmm1     # 0x1662c
mulss -0x164(%rbp), %xmm1
divss %xmm1, %xmm0
movss %xmm0, -0x148(%rbp)
movl $0x2, -0x128(%rbp)
jmp 0xabec
jmp 0xacff
movss -0x12c(%rbp), %xmm1
movss -0x134(%rbp), %xmm2
movss -0x130(%rbp), %xmm0
mulss -0x138(%rbp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss 0xba17(%rip), %xmm0     # 0x16638
mulss %xmm1, %xmm0
mulss -0x160(%rbp), %xmm0
movss %xmm0, -0x178(%rbp)
movss -0x12c(%rbp), %xmm0
movss -0x12c(%rbp), %xmm2
movss -0x130(%rbp), %xmm1
mulss -0x130(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss -0x13c(%rbp), %xmm1
movss -0x134(%rbp), %xmm3
movss -0x140(%rbp), %xmm2
mulss -0x138(%rbp), %xmm2
mulss %xmm3, %xmm1
addss %xmm2, %xmm1
addss %xmm0, %xmm0
addss %xmm1, %xmm0
mulss -0x160(%rbp), %xmm0
movss %xmm0, -0x17c(%rbp)
movss -0x13c(%rbp), %xmm0
movss -0x12c(%rbp), %xmm2
movss -0x140(%rbp), %xmm1
mulss -0x130(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
mulss -0x160(%rbp), %xmm0
movss %xmm0, -0x180(%rbp)
movss -0x178(%rbp), %xmm0
movss -0x17c(%rbp), %xmm1
movss -0x180(%rbp), %xmm2
leaq -0x14c(%rbp), %rdi
callq 0xbac0
movl %eax, -0x128(%rbp)
cmpl $0x1, -0x128(%rbp)
jl 0xaebd
movss -0x14c(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jb 0xaebd
movss 0xb8f4(%rip), %xmm0     # 0x1661c
ucomiss -0x14c(%rbp), %xmm0
jb 0xaebd
movss -0x14c(%rbp), %xmm0
movss %xmm0, -0x158(%rbp)
movss 0xb8cf(%rip), %xmm0     # 0x1661c
subss -0x158(%rbp), %xmm0
movss %xmm0, -0x15c(%rbp)
movss -0x15c(%rbp), %xmm1
mulss -0x15c(%rbp), %xmm1
movss -0xdc(%rbp), %xmm2
movss 0xb8af(%rip), %xmm0     # 0x1662c
mulss -0x158(%rbp), %xmm0
mulss -0x15c(%rbp), %xmm0
mulss -0x110(%rbp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss -0x158(%rbp), %xmm0
mulss -0x158(%rbp), %xmm0
movss -0x108(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x150(%rbp)
movss -0x15c(%rbp), %xmm1
mulss -0x15c(%rbp), %xmm1
movss -0xe0(%rbp), %xmm2
movss 0xb847(%rip), %xmm0     # 0x1662c
mulss -0x158(%rbp), %xmm0
mulss -0x15c(%rbp), %xmm0
mulss -0x114(%rbp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss -0x158(%rbp), %xmm0
mulss -0x158(%rbp), %xmm0
movss -0x10c(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x154(%rbp)
movss -0x150(%rbp), %xmm0
subss -0xc8(%rbp), %xmm0
movss -0x150(%rbp), %xmm2
subss -0xc8(%rbp), %xmm2
movss -0x154(%rbp), %xmm1
subss -0xcc(%rbp), %xmm1
movss -0x154(%rbp), %xmm3
subss -0xcc(%rbp), %xmm3
mulss %xmm3, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xe4(%rbp)
movss -0xe4(%rbp), %xmm1
movss -0xc4(%rbp), %xmm0
mulss -0xc4(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0xaebb
movss -0xe4(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x11d0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xc4(%rbp)
jmp 0xaebd
cmpl $0x2, -0x128(%rbp)
jl 0xb07b
movss -0x148(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jb 0xb07b
movss 0xb736(%rip), %xmm0     # 0x1661c
ucomiss -0x148(%rbp), %xmm0
jb 0xb07b
movss -0x148(%rbp), %xmm0
movss %xmm0, -0x158(%rbp)
movss 0xb711(%rip), %xmm0     # 0x1661c
subss -0x158(%rbp), %xmm0
movss %xmm0, -0x15c(%rbp)
movss -0x15c(%rbp), %xmm1
mulss -0x15c(%rbp), %xmm1
movss -0xdc(%rbp), %xmm2
movss 0xb6f1(%rip), %xmm0     # 0x1662c
mulss -0x158(%rbp), %xmm0
mulss -0x15c(%rbp), %xmm0
mulss -0x110(%rbp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss -0x158(%rbp), %xmm0
mulss -0x158(%rbp), %xmm0
movss -0x108(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x150(%rbp)
movss -0x15c(%rbp), %xmm1
mulss -0x15c(%rbp), %xmm1
movss -0xe0(%rbp), %xmm2
movss 0xb689(%rip), %xmm0     # 0x1662c
mulss -0x158(%rbp), %xmm0
mulss -0x15c(%rbp), %xmm0
mulss -0x114(%rbp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss -0x158(%rbp), %xmm0
mulss -0x158(%rbp), %xmm0
movss -0x10c(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x154(%rbp)
movss -0x150(%rbp), %xmm0
subss -0xc8(%rbp), %xmm0
movss -0x150(%rbp), %xmm2
subss -0xc8(%rbp), %xmm2
movss -0x154(%rbp), %xmm1
subss -0xcc(%rbp), %xmm1
movss -0x154(%rbp), %xmm3
subss -0xcc(%rbp), %xmm3
mulss %xmm3, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xe4(%rbp)
movss -0xe4(%rbp), %xmm1
movss -0xc4(%rbp), %xmm0
mulss -0xc4(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0xb079
movss -0xe4(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x11d0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xc4(%rbp)
jmp 0xb07b
cmpl $0x3, -0x128(%rbp)
jl 0xb239
movss -0x144(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jb 0xb239
movss 0xb578(%rip), %xmm0     # 0x1661c
ucomiss -0x144(%rbp), %xmm0
jb 0xb239
movss -0x144(%rbp), %xmm0
movss %xmm0, -0x158(%rbp)
movss 0xb553(%rip), %xmm0     # 0x1661c
subss -0x158(%rbp), %xmm0
movss %xmm0, -0x15c(%rbp)
movss -0x15c(%rbp), %xmm1
mulss -0x15c(%rbp), %xmm1
movss -0xdc(%rbp), %xmm2
movss 0xb533(%rip), %xmm0     # 0x1662c
mulss -0x158(%rbp), %xmm0
mulss -0x15c(%rbp), %xmm0
mulss -0x110(%rbp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss -0x158(%rbp), %xmm0
mulss -0x158(%rbp), %xmm0
movss -0x108(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x150(%rbp)
movss -0x15c(%rbp), %xmm1
mulss -0x15c(%rbp), %xmm1
movss -0xe0(%rbp), %xmm2
movss 0xb4cb(%rip), %xmm0     # 0x1662c
mulss -0x158(%rbp), %xmm0
mulss -0x15c(%rbp), %xmm0
mulss -0x114(%rbp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss -0x158(%rbp), %xmm0
mulss -0x158(%rbp), %xmm0
movss -0x10c(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x154(%rbp)
movss -0x150(%rbp), %xmm0
subss -0xc8(%rbp), %xmm0
movss -0x150(%rbp), %xmm2
subss -0xc8(%rbp), %xmm2
movss -0x154(%rbp), %xmm1
subss -0xcc(%rbp), %xmm1
movss -0x154(%rbp), %xmm3
subss -0xcc(%rbp), %xmm3
mulss %xmm3, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xe4(%rbp)
movss -0xe4(%rbp), %xmm1
movss -0xc4(%rbp), %xmm0
mulss -0xc4(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0xb237
movss -0xe4(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x11d0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xc4(%rbp)
jmp 0xb239
jmp 0xb23b
jmp 0xb23d
jmp 0xb23f
jmp 0xb241
movl -0x6c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x6c(%rbp)
jmp 0xa1a9
cmpl $0x0, -0xd8(%rbp)
jne 0xb275
movss -0xc4(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0xc4(%rbp)
movzbl -0x1d(%rbp), %eax
cvtsi2ss %eax, %xmm1
movss -0x24(%rbp), %xmm0
movss -0xc4(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xc0(%rbp)
xorps %xmm0, %xmm0
ucomiss -0xc0(%rbp), %xmm0
jbe 0xb2b3
xorps %xmm0, %xmm0
movss %xmm0, -0xc0(%rbp)
jmp 0xb2da
movss -0xc0(%rbp), %xmm0
movss 0xb371(%rip), %xmm1     # 0x16634
ucomiss %xmm1, %xmm0
jbe 0xb2d8
movss 0xb364(%rip), %xmm0     # 0x16634
movss %xmm0, -0xc0(%rbp)
jmp 0xb2da
cvttss2si -0xc0(%rbp), %eax
movb %al, %dl
movq -0x60(%rbp), %rax
movl -0x68(%rbp), %ecx
subl -0x48(%rbp), %ecx
imull -0x54(%rbp), %ecx
movl -0x64(%rbp), %esi
subl -0x44(%rbp), %esi
addl %esi, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0x64(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x64(%rbp)
jmp 0xa105
jmp 0xb310
movl -0x68(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x68(%rbp)
jmp 0xa0f3
movq -0x78(%rbp), %rdi
callq 0x1030
movq -0x80(%rbp), %rdi
callq 0x1030
movq -0x60(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x1c0, %rsp            # imm = 0x1C0
popq %rbp
retq
nopw %cs:(%rax,%rax)