// File: /workspace/github_c_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1b8, %rsp            # imm = 0x1B8
xorps %xmm2, %xmm2
ucomiss %xmm2, %xmm0
jne 0x7f1b
jnp 0x7f73
movq %r8, %r13
movl %edx, %r12d
movl %esi, %ebx
movq %rdi, %r14
movq %r9, -0x100(%rbp)
movl %ecx, -0x2c(%rbp)
movss %xmm1, -0xa8(%rbp)
leaq -0x4c(%rbp), %rdx
leaq -0x48(%rbp), %rcx
leaq -0x64(%rbp), %r15
leaq -0x44(%rbp), %r9
xorps %xmm3, %xmm3
movaps %xmm0, -0x60(%rbp)
movaps %xmm0, %xmm1
movq %r15, %r8
callq 0x4f19
leaq -0x4c(%rbp), %rax
movl (%rax), %ecx
movl (%r15), %edx
cmpl %edx, %ecx
je 0x7f73
movl -0x48(%rbp), %eax
movl -0x44(%rbp), %r15d
cmpl %r15d, %eax
jne 0x7f87
xorl %eax, %eax
addq $0x1b8, %rsp            # imm = 0x1B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
subl %r12d, %ecx
movl %ecx, -0x4c(%rbp)
subl %r12d, %eax
movl %eax, -0x48(%rbp)
addl %r12d, %edx
movl %edx, -0x64(%rbp)
addl %r12d, %r15d
movl %r15d, -0x44(%rbp)
subl %ecx, %edx
testq %r13, %r13
je 0x7fab
movl %edx, (%r13)
movl %edx, -0xa4(%rbp)
movq 0x10(%rbp), %rdx
subl %eax, %r15d
movq -0x100(%rbp), %rsi
testq %rsi, %rsi
movaps -0x60(%rbp), %xmm0
je 0x7fcb
movl %r15d, (%rsi)
movq 0x18(%rbp), %rsi
testq %rdx, %rdx
je 0x7fd6
movl %ecx, (%rdx)
testq %rsi, %rsi
je 0x7fdd
movl %eax, (%rsi)
movaps 0x6b4c(%rip), %xmm1     # 0xeb30
xorps %xmm0, %xmm1
movaps %xmm1, -0xa0(%rbp)
leaq -0x108(%rbp), %rdx
movq %r14, %rdi
movl %ebx, %esi
callq 0x38d3
movl %eax, %ebx
imull -0xa4(%rbp), %r15d
movslq %r15d, %rdi
callq 0x1170
movq %rax, -0x168(%rbp)
movq %rbx, -0xf8(%rbp)
movslq %ebx, %rbx
leaq (,%rbx,4), %rdi
callq 0x1170
movq %rax, %r12
movl %ebx, %r13d
testl %ebx, %ebx
jle 0x81de
movq -0xf8(%rbp), %rax
decl %eax
movq -0x108(%rbp), %rbx
xorl %r14d, %r14d
movss 0x6a33(%rip), %xmm8     # 0xea8c
xorps %xmm9, %xmm9
movq %rbx, %r15
movzbl 0xc(%r15), %ecx
cmpl $0x3, %ecx
je 0x80f0
xorps %xmm0, %xmm0
cmpl $0x2, %ecx
jne 0x81c1
movswl (%r15), %ecx
xorps %xmm1, %xmm1
cvtsi2ss %ecx, %xmm1
movswl 0x2(%r15), %ecx
xorps %xmm2, %xmm2
cvtsi2ss %ecx, %xmm2
cltq
leaq (%rax,%rax), %rcx
shlq $0x4, %rax
subq %rcx, %rax
movswl (%rbx,%rax), %ecx
xorps %xmm0, %xmm0
cvtsi2ss %ecx, %xmm0
movaps -0x60(%rbp), %xmm3
mulss %xmm3, %xmm1
mulss %xmm3, %xmm0
subss %xmm1, %xmm0
movswl 0x2(%rbx,%rax), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
mulss %xmm3, %xmm2
mulss %xmm3, %xmm1
subss %xmm1, %xmm2
mulss %xmm2, %xmm2
mulss %xmm0, %xmm0
addss %xmm2, %xmm0
ucomiss %xmm9, %xmm0
jb 0x819e
sqrtss %xmm0, %xmm0
jmp 0x81b0
cltq
leaq (%rax,%rax), %rcx
shlq $0x4, %rax
subq %rcx, %rax
movswl (%rbx,%rax), %ecx
xorps %xmm0, %xmm0
cvtsi2ss %ecx, %xmm0
movaps -0x60(%rbp), %xmm6
mulss %xmm6, %xmm0
movswl 0x2(%rbx,%rax), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
movswl 0x4(%r15), %eax
xorps %xmm3, %xmm3
cvtsi2ss %eax, %xmm3
mulss %xmm6, %xmm3
movswl 0x6(%r15), %eax
xorps %xmm4, %xmm4
cvtsi2ss %eax, %xmm4
movswl (%r15), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
movswl 0x2(%r15), %eax
xorps %xmm5, %xmm5
cvtsi2ss %eax, %xmm5
movaps -0xa0(%rbp), %xmm7
mulss %xmm7, %xmm4
mulss %xmm6, %xmm1
mulss %xmm7, %xmm5
addss %xmm3, %xmm3
subss %xmm3, %xmm1
addss %xmm0, %xmm1
addss %xmm4, %xmm4
subss %xmm4, %xmm5
mulss %xmm6, %xmm2
subss %xmm2, %xmm5
mulss %xmm5, %xmm5
mulss %xmm1, %xmm1
addss %xmm5, %xmm1
xorps %xmm0, %xmm0
ucomiss %xmm0, %xmm1
jne 0x8194
jnp 0x81c1
movaps %xmm8, %xmm0
divss %xmm1, %xmm0
jmp 0x81c1
callq 0x1160
xorps %xmm9, %xmm9
movss 0x68dc(%rip), %xmm8     # 0xea8c
movaps %xmm8, %xmm1
divss %xmm0, %xmm1
cmpeqss %xmm9, %xmm0
andnps %xmm1, %xmm0
movss %xmm0, (%r12,%r14,4)
movl %r14d, %eax
leaq 0x1(%r14), %rcx
addq $0xe, %r15
movq %rcx, %r14
cmpq %rcx, %r13
jne 0x8060
movl -0x48(%rbp), %eax
movl %eax, -0x3c(%rbp)
cmpl -0x44(%rbp), %eax
movaps -0xa0(%rbp), %xmm8
jge 0x94f5
movq -0x108(%rbp), %rbx
movzbl -0x2c(%rbp), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss %xmm0, -0x118(%rbp)
movq %r13, %rcx
shlq $0x4, %rcx
subq %r13, %rcx
subq %r13, %rcx
movq %rcx, -0x100(%rbp)
leaq -0xe(%rbx), %rax
movq %rax, -0x198(%rbp)
movq %r12, -0x178(%rbp)
movq %r13, -0x170(%rbp)
movl -0x4c(%rbp), %r14d
cmpl -0x64(%rbp), %r14d
jge 0x94e4
xorps %xmm11, %xmm11
cvtsi2ssl -0x3c(%rbp), %xmm11
addss 0x684b(%rip), %xmm11    # 0xeaa8
movaps %xmm11, %xmm0
divss %xmm8, %xmm0
xorps %xmm1, %xmm1
cvtss2sd %xmm0, %xmm1
movsd %xmm1, -0x1a0(%rbp)
movaps %xmm0, %xmm1
addss 0x684c(%rip), %xmm1     # 0xeacc
movss %xmm1, -0x10c(%rbp)
movss %xmm0, -0x114(%rbp)
addss 0x6838(%rip), %xmm0     # 0xead0
movss %xmm0, -0x11c(%rbp)
movss %xmm11, -0x30(%rbp)
xorps %xmm0, %xmm0
cvtsi2ss %r14d, %xmm0
addss 0x67f2(%rip), %xmm0     # 0xeaa8
movss %xmm0, -0x34(%rbp)
movsd -0x1a0(%rbp), %xmm0
movsd 0x688d(%rip), %xmm1     # 0xeb58
callq 0x10e0
cvtsd2ss %xmm0, %xmm0
movss 0x67f4(%rip), %xmm1     # 0xead0
ucomiss %xmm0, %xmm1
movss -0x11c(%rbp), %xmm5
ja 0x8302
ucomiss 0x67e4(%rip), %xmm0     # 0xead4
movss -0x114(%rbp), %xmm5
jbe 0x8302
movss -0x10c(%rbp), %xmm5
movl %r14d, -0xac(%rbp)
cmpl $0x0, -0xf8(%rbp)
movaps -0x60(%rbp), %xmm7
movaps -0xa0(%rbp), %xmm8
xorps %xmm9, %xmm9
movss 0x6764(%rip), %xmm6     # 0xea8c
movss -0x30(%rbp), %xmm11
jle 0x8925
movss -0x34(%rbp), %xmm12
movaps %xmm12, %xmm2
divss %xmm7, %xmm2
movaps %xmm2, %xmm1
mulss %xmm9, %xmm1
movaps %xmm5, %xmm0
mulss %xmm9, %xmm0
movss %xmm2, -0x2c(%rbp)
addss %xmm2, %xmm0
movss %xmm0, -0x40(%rbp)
subss %xmm5, %xmm1
movss %xmm1, -0x38(%rbp)
xorl %r14d, %r14d
xorl %r15d, %r15d
movb 0xc(%rbx,%r14), %al
cmpb $0x2, %al
jne 0x842f
movswl -0xc(%rbx,%r14), %ecx
movswl 0x2(%rbx,%r14), %edx
cmpw %dx, %cx
movl %edx, %esi
cmovll %ecx, %esi
xorps %xmm0, %xmm0
cvtsi2ss %esi, %xmm0
ucomiss %xmm0, %xmm5
jbe 0x842f
cmpw %dx, %cx
movl %edx, %esi
cmovgl %ecx, %esi
xorps %xmm0, %xmm0
cvtsi2ss %esi, %xmm0
ucomiss %xmm5, %xmm0
jbe 0x842f
movswl -0xe(%rbx,%r14), %esi
movswl (%rbx,%r14), %edi
cmpl %edi, %esi
movl %edi, %r8d
cmovll %esi, %r8d
xorps %xmm0, %xmm0
cvtsi2ss %r8d, %xmm0
movss -0x2c(%rbp), %xmm1
ucomiss %xmm0, %xmm1
jbe 0x842f
xorl %r8d, %r8d
cmpw %dx, %cx
xorps %xmm0, %xmm0
cvtsi2ss %ecx, %xmm0
setl %r8b
movaps %xmm5, %xmm1
subss %xmm0, %xmm1
subl %ecx, %edx
xorps %xmm0, %xmm0
cvtsi2ss %edx, %xmm0
divss %xmm0, %xmm1
subl %esi, %edi
xorps %xmm0, %xmm0
cvtsi2ss %edi, %xmm0
mulss %xmm1, %xmm0
xorps %xmm1, %xmm1
cvtsi2ss %esi, %xmm1
addss %xmm0, %xmm1
movss -0x2c(%rbp), %xmm0
ucomiss %xmm1, %xmm0
leal -0x1(%r8,%r8), %ecx
movl $0x0, %edx
cmovbel %edx, %ecx
addl %ecx, %r15d
cmpb $0x3, %al
jne 0x890b
movswl -0xe(%rbx,%r14), %eax
movzwl 0x4(%rbx,%r14), %edi
movzwl 0x6(%rbx,%r14), %r8d
movswl (%rbx,%r14), %ecx
cmpw %cx, %di
movl %edi, %r9d
cmovgel %ecx, %r9d
movswl 0x2(%rbx,%r14), %edx
cmpw %ax, %r9w
cmovgel %eax, %r9d
cmpw %dx, %r8w
movl %edx, %r11d
cmovll %r8d, %r11d
movswl -0xc(%rbx,%r14), %esi
movl %r8d, %r10d
cmovlel %edx, %r10d
cmpw %r11w, %si
cmovll %esi, %r11d
cmpw %r10w, %si
movswl %r11w, %r11d
xorps %xmm0, %xmm0
cvtsi2ss %r11d, %xmm0
cmovgl %esi, %r10d
ucomiss %xmm0, %xmm5
jbe 0x890b
movswl %r10w, %r10d
xorps %xmm0, %xmm0
cvtsi2ss %r10d, %xmm0
ucomiss %xmm5, %xmm0
jbe 0x890b
movswl %r9w, %r9d
xorps %xmm0, %xmm0
cvtsi2ss %r9d, %xmm0
movss -0x2c(%rbp), %xmm1
ucomiss %xmm0, %xmm1
jbe 0x890b
xorps %xmm10, %xmm10
cvtsi2ss %eax, %xmm10
xorps %xmm4, %xmm4
cvtsi2ss %esi, %xmm4
movswl %di, %edi
xorps %xmm14, %xmm14
cvtsi2ss %edi, %xmm14
movswl %r8w, %edi
xorps %xmm15, %xmm15
cvtsi2ss %edi, %xmm15
ucomiss %xmm14, %xmm10
jne 0x850b
jp 0x850b
ucomiss %xmm15, %xmm4
jne 0x850b
jnp 0x8534
cvtsi2ss %ecx, %xmm13
cvtsi2ss %edx, %xmm3
ucomiss %xmm13, %xmm14
jne 0x85cb
jp 0x85cb
ucomiss %xmm3, %xmm15
jne 0x85cb
jp 0x85cb
cmpw %dx, %si
movl %edx, %edi
cmovll %esi, %edi
xorps %xmm0, %xmm0
cvtsi2ss %edi, %xmm0
ucomiss %xmm0, %xmm5
jbe 0x890b
cmpw %dx, %si
movl %edx, %edi
cmovgl %esi, %edi
xorps %xmm0, %xmm0
cvtsi2ss %edi, %xmm0
ucomiss %xmm5, %xmm0
jbe 0x890b
cmpl %ecx, %eax
movl %ecx, %edi
cmovll %eax, %edi
xorps %xmm0, %xmm0
cvtsi2ss %edi, %xmm0
movss -0x2c(%rbp), %xmm1
ucomiss %xmm0, %xmm1
jbe 0x890b
xorl %edi, %edi
cmpw %dx, %si
setl %dil
subl %esi, %edx
xorps %xmm0, %xmm0
cvtsi2ss %edx, %xmm0
movaps %xmm5, %xmm1
subss %xmm4, %xmm1
divss %xmm0, %xmm1
subl %eax, %ecx
xorps %xmm0, %xmm0
cvtsi2ss %ecx, %xmm0
mulss %xmm1, %xmm0
addss %xmm10, %xmm0
movss -0x2c(%rbp), %xmm1
ucomiss %xmm0, %xmm1
leal -0x1(%rdi,%rdi), %eax
movl $0x0, %ecx
cmovbel %ecx, %eax
addl %eax, %r15d
jmp 0x890b
movaps %xmm10, %xmm1
movaps 0x655a(%rip), %xmm2     # 0xeb30
xorps %xmm2, %xmm1
andps %xmm2, %xmm1
addss %xmm4, %xmm1
movaps %xmm14, -0xe0(%rbp)
xorps %xmm2, %xmm14
andps %xmm2, %xmm14
addss %xmm15, %xmm14
movaps %xmm13, -0x160(%rbp)
movaps %xmm13, %xmm0
xorps %xmm2, %xmm0
andps %xmm2, %xmm0
addss %xmm3, %xmm0
movaps %xmm14, %xmm2
addss %xmm14, %xmm2
movaps %xmm1, %xmm13
subss %xmm2, %xmm13
addss %xmm0, %xmm13
subss %xmm1, %xmm14
addss -0x38(%rbp), %xmm1
ucomiss %xmm9, %xmm13
jne 0x8634
jnp 0x8674
mulss %xmm13, %xmm1
movaps %xmm14, %xmm0
mulss %xmm14, %xmm0
subss %xmm1, %xmm0
xorps %xmm2, %xmm2
xorl %eax, %eax
ucomiss %xmm2, %xmm0
xorps %xmm1, %xmm1
jbe 0x87ca
ucomiss %xmm9, %xmm0
movaps %xmm4, -0x190(%rbp)
movaps %xmm3, -0x1b0(%rbp)
jb 0x86d4
sqrtss %xmm0, %xmm0
jmp 0x874d
movaps %xmm14, %xmm0
mulss 0x6458(%rip), %xmm0     # 0xead8
divss %xmm0, %xmm1
movaps %xmm1, %xmm0
movss 0x63fd(%rip), %xmm2     # 0xea8c
cmpleps %xmm2, %xmm0
xorps %xmm2, %xmm2
movaps %xmm13, -0x130(%rbp)
movaps %xmm6, %xmm13
movaps %xmm14, %xmm6
movaps %xmm3, %xmm14
xorps %xmm3, %xmm3
cmpleps %xmm1, %xmm3
andps %xmm0, %xmm3
movd %xmm3, %eax
movaps %xmm14, %xmm3
movaps %xmm6, %xmm14
movaps %xmm13, %xmm6
movaps -0x130(%rbp), %xmm13
andl $0x1, %eax
jmp 0x87ca
movss %xmm5, -0x110(%rbp)
movaps %xmm10, -0x1e0(%rbp)
movaps %xmm15, -0x1d0(%rbp)
movaps %xmm14, -0x1c0(%rbp)
movaps %xmm13, -0x130(%rbp)
callq 0x1160
movaps -0x130(%rbp), %xmm13
movaps -0x1c0(%rbp), %xmm14
movaps -0x1d0(%rbp), %xmm15
movss -0x110(%rbp), %xmm5
movss -0x34(%rbp), %xmm12
movss -0x30(%rbp), %xmm11
movss 0x6357(%rip), %xmm6     # 0xea8c
movaps -0x1e0(%rbp), %xmm10
xorps %xmm9, %xmm9
movaps -0xa0(%rbp), %xmm8
movaps -0x60(%rbp), %xmm7
movss 0x6387(%rip), %xmm3     # 0xeadc
divss %xmm13, %xmm3
movaps %xmm14, %xmm1
addss %xmm0, %xmm1
mulss %xmm3, %xmm1
movaps %xmm14, %xmm2
subss %xmm0, %xmm2
mulss %xmm3, %xmm2
movaps %xmm1, %xmm3
movss 0x630f(%rip), %xmm4     # 0xea8c
cmpleps %xmm4, %xmm3
xorps %xmm4, %xmm4
cmpleps %xmm1, %xmm4
andps %xmm3, %xmm4
movd %xmm4, %eax
andl $0x1, %eax
ucomiss %xmm9, %xmm0
jbe 0x87bc
ucomiss %xmm9, %xmm2
movaps -0x190(%rbp), %xmm4
movaps -0x1b0(%rbp), %xmm3
jb 0x87ca
ucomiss %xmm2, %xmm6
jb 0x87ca
testl %eax, %eax
jne 0x87b8
movaps %xmm2, %xmm1
incl %eax
jmp 0x87ca
movaps -0x190(%rbp), %xmm4
movaps -0x1b0(%rbp), %xmm3
testl %eax, %eax
je 0x886c
movaps 0x6357(%rip), %xmm0     # 0xeb30
andps %xmm0, %xmm4
addss %xmm10, %xmm4
andps %xmm0, %xmm15
addss -0xe0(%rbp), %xmm15
andps %xmm0, %xmm3
addss -0x160(%rbp), %xmm3
subss %xmm4, %xmm15
subss %xmm4, %xmm3
subss -0x40(%rbp), %xmm4
movaps %xmm1, %xmm0
addss %xmm1, %xmm0
movaps %xmm15, %xmm10
movaps %xmm4, %xmm15
movss 0x62c2(%rip), %xmm4     # 0xeae0
movaps %xmm14, %xmm6
movaps %xmm3, %xmm14
movaps %xmm4, %xmm3
subss %xmm0, %xmm3
mulss %xmm1, %xmm3
mulss %xmm10, %xmm3
addss %xmm15, %xmm3
movaps %xmm13, %xmm0
mulss %xmm1, %xmm0
mulss %xmm1, %xmm1
mulss %xmm14, %xmm1
addss %xmm3, %xmm1
movss %xmm1, -0xf0(%rbp)
addss %xmm6, %xmm0
movaps %xmm0, -0x90(%rbp)
cmpl $0x1, %eax
jne 0x8870
xorl %ecx, %ecx
jmp 0x88b6
xorl %ecx, %ecx
jmp 0x88be
movaps %xmm2, %xmm0
addss %xmm2, %xmm0
movaps %xmm4, %xmm1
subss %xmm0, %xmm1
mulss %xmm2, %xmm1
mulss %xmm10, %xmm1
addss %xmm15, %xmm1
mulss %xmm2, %xmm13
mulss %xmm2, %xmm2
mulss %xmm14, %xmm2
addss %xmm1, %xmm2
addss %xmm6, %xmm13
movb $0x1, %cl
movss %xmm13, -0xc0(%rbp)
movss %xmm2, -0x140(%rbp)
movss 0x61ce(%rip), %xmm6     # 0xea8c
xorl %edx, %edx
ucomiss -0x90(%rbp), %xmm9
setbe %dl
ucomiss -0xf0(%rbp), %xmm9
leal -0x1(%rdx,%rdx), %edx
movl $0x0, %esi
cmovbel %esi, %edx
testl %eax, %eax
cmovel %eax, %edx
xorl %eax, %eax
ucomiss -0xc0(%rbp), %xmm9
setbe %al
ucomiss -0x140(%rbp), %xmm9
leal -0x1(%rax,%rax), %eax
cmovbel %esi, %eax
testb %cl, %cl
cmovel %esi, %eax
addl %eax, %r15d
addl %edx, %r15d
addq $0xe, %r14
cmpq %r14, -0x100(%rbp)
jne 0x836f
testl %r15d, %r15d
sete -0x40(%rbp)
jmp 0x892f
movb $0x1, -0x40(%rbp)
movss -0x34(%rbp), %xmm12
cmpl $0x0, -0xf8(%rbp)
jle 0x945e
movq -0x198(%rbp), %r15
xorl %r14d, %r14d
movss 0x6195(%rip), %xmm13    # 0xeae4
movswl 0xe(%r15), %eax
xorps %xmm15, %xmm15
cvtsi2ss %eax, %xmm15
movswl 0x10(%r15), %eax
xorps %xmm14, %xmm14
cvtsi2ss %eax, %xmm14
mulss %xmm7, %xmm15
mulss %xmm8, %xmm14
movaps %xmm15, %xmm5
subss %xmm12, %xmm5
movaps %xmm14, %xmm10
subss %xmm11, %xmm10
movaps %xmm10, %xmm1
mulss %xmm10, %xmm1
movaps %xmm5, %xmm0
mulss %xmm5, %xmm0
addss %xmm1, %xmm0
movaps %xmm13, %xmm1
mulss %xmm13, %xmm1
ucomiss %xmm0, %xmm1
jbe 0x8a25
ucomiss %xmm9, %xmm0
jb 0x89ba
xorps %xmm13, %xmm13
sqrtss %xmm0, %xmm13
jmp 0x8a25
movss %xmm14, -0x2c(%rbp)
movss %xmm15, -0x90(%rbp)
movaps %xmm5, -0xf0(%rbp)
movss %xmm10, -0xe0(%rbp)
callq 0x1160
movaps -0xf0(%rbp), %xmm5
movss -0x90(%rbp), %xmm15
movss -0x2c(%rbp), %xmm14
movss -0x34(%rbp), %xmm12
movss -0x30(%rbp), %xmm11
movss 0x6084(%rip), %xmm6     # 0xea8c
movss -0xe0(%rbp), %xmm10
xorps %xmm9, %xmm9
movaps -0xa0(%rbp), %xmm8
movaps -0x60(%rbp), %xmm7
movaps %xmm0, %xmm13
movzbl 0x1a(%r15), %eax
cmpl $0x3, %eax
je 0x8ae8
cmpl $0x2, %eax
jne 0x9363
testq %r14, %r14
je 0x9515
movswl (%r15), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
mulss %xmm7, %xmm0
movswl 0x2(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
mulss %xmm8, %xmm2
subss %xmm15, %xmm0
subss %xmm14, %xmm2
movaps %xmm5, %xmm3
mulss %xmm2, %xmm3
movaps %xmm0, %xmm1
mulss %xmm10, %xmm1
subss %xmm3, %xmm1
andps 0x60b7(%rip), %xmm1     # 0xeb40
mulss (%r12,%r14,4), %xmm1
ucomiss %xmm1, %xmm13
jbe 0x9363
mulss %xmm2, %xmm10
mulss %xmm0, %xmm5
addss %xmm10, %xmm5
xorps 0x6082(%rip), %xmm5     # 0xeb30
mulss %xmm2, %xmm2
mulss %xmm0, %xmm0
addss %xmm2, %xmm0
divss %xmm0, %xmm5
xorps %xmm0, %xmm0
cmpless %xmm5, %xmm0
cmpless %xmm6, %xmm5
andps %xmm5, %xmm1
andnps %xmm13, %xmm5
orps %xmm1, %xmm5
andps %xmm0, %xmm5
andnps %xmm13, %xmm0
orps %xmm5, %xmm0
movaps %xmm0, %xmm13
jmp 0x9363
movswl (%r15), %eax
xorps %xmm4, %xmm4
cvtsi2ss %eax, %xmm4
movswl 0x12(%r15), %eax
xorps %xmm3, %xmm3
cvtsi2ss %eax, %xmm3
mulss %xmm7, %xmm4
mulss %xmm7, %xmm3
movaps %xmm15, %xmm0
minss %xmm3, %xmm0
minss %xmm4, %xmm0
subss %xmm13, %xmm0
ucomiss %xmm0, %xmm12
jbe 0x9363
movaps %xmm3, %xmm0
maxss %xmm15, %xmm0
movaps %xmm4, %xmm1
maxss %xmm0, %xmm1
addss %xmm13, %xmm1
ucomiss %xmm12, %xmm1
jbe 0x9363
movaps %xmm5, %xmm9
movswl 0x2(%r15), %eax
xorps %xmm5, %xmm5
cvtsi2ss %eax, %xmm5
movswl 0x14(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
mulss %xmm8, %xmm5
mulss %xmm8, %xmm2
movaps %xmm14, %xmm0
minss %xmm2, %xmm0
minss %xmm5, %xmm0
subss %xmm13, %xmm0
ucomiss %xmm0, %xmm11
jbe 0x8ca4
movaps %xmm2, %xmm0
maxss %xmm14, %xmm0
movaps %xmm5, %xmm1
maxss %xmm0, %xmm1
addss %xmm13, %xmm1
ucomiss %xmm11, %xmm1
jbe 0x8ca4
movaps %xmm12, %xmm7
movaps %xmm8, %xmm11
xorps %xmm8, %xmm8
movaps %xmm3, %xmm12
subss %xmm15, %xmm12
movaps %xmm2, %xmm0
subss %xmm14, %xmm0
movss %xmm3, -0xf0(%rbp)
addss %xmm3, %xmm3
movaps %xmm2, %xmm6
movaps %xmm15, %xmm2
subss %xmm3, %xmm2
movss %xmm4, -0x38(%rbp)
addss %xmm4, %xmm2
movss %xmm6, -0x160(%rbp)
addss %xmm6, %xmm6
movaps %xmm14, %xmm4
subss %xmm6, %xmm4
movss %xmm5, -0xe0(%rbp)
addss %xmm5, %xmm4
movss (%r12,%r14,4), %xmm3
ucomiss %xmm8, %xmm3
movaps %xmm0, %xmm5
mulss %xmm4, %xmm5
movaps %xmm12, %xmm6
mulss %xmm2, %xmm6
addss %xmm5, %xmm6
mulss 0x5ec7(%rip), %xmm6     # 0xeae8
movaps %xmm0, %xmm5
mulss %xmm0, %xmm5
movaps %xmm12, %xmm1
mulss %xmm12, %xmm1
jne 0x8cad
jp 0x8cad
addss %xmm5, %xmm1
mulss %xmm10, %xmm4
mulss %xmm9, %xmm2
addss %xmm4, %xmm2
addss %xmm1, %xmm1
addss %xmm2, %xmm1
mulss %xmm10, %xmm0
mulss %xmm9, %xmm12
addss %xmm0, %xmm12
ucomiss %xmm8, %xmm6
movaps %xmm1, %xmm2
jne 0x8d96
jp 0x8d96
ucomiss %xmm8, %xmm2
movaps -0xd0(%rbp), %xmm4
movss -0x38(%rbp), %xmm5
jne 0x8c89
jnp 0x8dc4
xorps 0x5e9f(%rip), %xmm12    # 0xeb30
divss %xmm2, %xmm12
movb $0x1, %al
xorl %r12d, %r12d
movaps %xmm12, %xmm4
jmp 0x8dc9
xorps %xmm9, %xmm9
jmp 0x9363
mulss %xmm3, %xmm6
addss %xmm5, %xmm1
mulss %xmm10, %xmm4
mulss %xmm9, %xmm2
addss %xmm4, %xmm2
addss %xmm1, %xmm1
addss %xmm2, %xmm1
mulss %xmm3, %xmm1
mulss %xmm10, %xmm0
mulss %xmm9, %xmm12
addss %xmm0, %xmm12
mulss %xmm3, %xmm12
movaps %xmm6, %xmm0
movss 0x5dfe(%rip), %xmm3     # 0xeaec
divss %xmm3, %xmm0
movaps %xmm0, -0xd0(%rbp)
movaps %xmm6, %xmm0
mulss %xmm6, %xmm0
divss %xmm3, %xmm0
addss %xmm1, %xmm0
movaps %xmm6, %xmm5
addss %xmm6, %xmm5
mulss 0x5dd9(%rip), %xmm1     # 0xeaf0
mulss %xmm6, %xmm5
addss %xmm1, %xmm5
mulss %xmm6, %xmm5
movss 0x5dc9(%rip), %xmm4     # 0xeaf4
divss %xmm4, %xmm5
addss %xmm12, %xmm5
movaps %xmm0, %xmm6
mulss %xmm0, %xmm6
mulss %xmm0, %xmm6
movaps %xmm6, %xmm2
mulss 0x5dae(%rip), %xmm2     # 0xeaf8
divss %xmm4, %xmm2
movaps %xmm5, %xmm1
mulss %xmm5, %xmm1
addss %xmm2, %xmm1
ucomiss %xmm8, %xmm1
xorps %xmm2, %xmm2
movaps %xmm13, -0x140(%rbp)
movss %xmm14, -0x2c(%rbp)
movss %xmm15, -0x90(%rbp)
movaps %xmm5, -0xc0(%rbp)
jae 0x8def
divss %xmm3, %xmm0
ucomiss %xmm2, %xmm0
jb 0x8e2f
sqrtss %xmm0, %xmm0
jmp 0x8e3e
movaps %xmm6, %xmm0
mulss 0x5d63(%rip), %xmm0     # 0xeb04
mulss %xmm0, %xmm12
movaps %xmm2, %xmm0
mulss %xmm2, %xmm0
addss %xmm12, %xmm0
ucomiss %xmm0, %xmm8
movaps -0xd0(%rbp), %xmm4
movss -0x38(%rbp), %xmm5
jbe 0x8dfa
xorl %eax, %eax
xorl %r12d, %r12d
xorl %r13d, %r13d
xorps %xmm9, %xmm9
movaps %xmm11, %xmm8
movss -0x30(%rbp), %xmm11
movss 0x5caa(%rip), %xmm6     # 0xea8c
movaps %xmm7, %xmm12
movaps -0x60(%rbp), %xmm7
jmp 0x9102
jb 0x8e66
xorps %xmm0, %xmm0
sqrtss %xmm1, %xmm0
jmp 0x8e78
movss %xmm6, -0xd0(%rbp)
ucomiss %xmm8, %xmm0
xorps %xmm9, %xmm9
jb 0x906c
movaps %xmm7, %xmm12
sqrtss %xmm0, %xmm0
movaps %xmm11, %xmm8
movss -0x30(%rbp), %xmm11
movss 0x5c62(%rip), %xmm6     # 0xea8c
jmp 0x90cc
movss %xmm6, -0x80(%rbp)
callq 0x1160
movss -0x80(%rbp), %xmm6
movss %xmm0, -0x150(%rbp)
movss 0x5cae(%rip), %xmm0     # 0xeafc
divss %xmm6, %xmm0
cvtss2sd %xmm0, %xmm0
ucomisd 0x5d1a(%rip), %xmm0     # 0xeb78
jb 0x8ec3
sqrtsd %xmm0, %xmm0
jmp 0x8ec8
movaps %xmm1, %xmm0
callq 0x1160
movaps -0xc0(%rbp), %xmm5
xorps %xmm2, %xmm2
movaps 0x5cb1(%rip), %xmm1     # 0xeb30
movss %xmm0, -0x190(%rbp)
subss %xmm5, %xmm0
mulss 0x5c15(%rip), %xmm0     # 0xeaa8
ucomiss %xmm0, %xmm2
jbe 0x8f8b
xorps %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x5cb5(%rip), %xmm1     # 0xeb60
callq 0x1070
movaps 0x5c79(%rip), %xmm2     # 0xeb30
cvtsd2ss %xmm0, %xmm0
xorps %xmm2, %xmm0
jmp 0x8fa7
callq 0x1210
movaps -0xc0(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm0, %xmm1
mulsd 0x5c89(%rip), %xmm1     # 0xeb68
movapd %xmm1, %xmm0
callq 0x1100
cvtsd2ss %xmm0, %xmm0
divss 0x5bf4(%rip), %xmm0     # 0xeae8
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x80(%rbp)
callq 0x10f0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xc0(%rbp)
movsd -0x80(%rbp), %xmm0
addsd 0x5c55(%rip), %xmm0     # 0xeb70
callq 0x10f0
cvtsd2ss %xmm0, %xmm0
mulss 0x5bd4(%rip), %xmm0     # 0xeb00
movss -0x150(%rbp), %xmm5
movaps %xmm5, %xmm1
addss %xmm5, %xmm1
movss -0xc0(%rbp), %xmm6
mulss %xmm6, %xmm1
movaps -0xd0(%rbp), %xmm3
addss %xmm3, %xmm1
movaps %xmm0, %xmm2
addss %xmm6, %xmm2
mulss %xmm5, %xmm2
movaps %xmm3, %xmm4
subss %xmm2, %xmm4
movaps %xmm4, -0x80(%rbp)
subss %xmm0, %xmm6
mulss %xmm5, %xmm6
subss %xmm6, %xmm3
movb $0x1, %al
movaps %xmm3, -0x150(%rbp)
movaps %xmm1, %xmm4
movb $0x1, %r12b
movb $0x1, %r13b
jmp 0x9027
cvtss2sd %xmm0, %xmm0
movsd 0x5bc9(%rip), %xmm1     # 0xeb60
callq 0x1070
movaps 0x5b8d(%rip), %xmm2     # 0xeb30
cvtsd2ss %xmm0, %xmm0
movaps %xmm0, -0x130(%rbp)
movaps -0xc0(%rbp), %xmm1
xorps %xmm2, %xmm1
subss -0x190(%rbp), %xmm1
mulss 0x5ae0(%rip), %xmm1     # 0xeaa8
xorps %xmm0, %xmm0
ucomiss %xmm1, %xmm0
jbe 0x8ff4
xorps %xmm2, %xmm1
xorps %xmm0, %xmm0
cvtss2sd %xmm1, %xmm0
movsd 0x5b7e(%rip), %xmm1     # 0xeb60
callq 0x1070
cvtsd2ss %xmm0, %xmm0
xorps 0x5b3e(%rip), %xmm0     # 0xeb30
jmp 0x900c
xorps %xmm0, %xmm0
cvtss2sd %xmm1, %xmm0
movsd 0x5b5d(%rip), %xmm1     # 0xeb60
callq 0x1070
cvtsd2ss %xmm0, %xmm0
movaps -0xd0(%rbp), %xmm4
addss -0x130(%rbp), %xmm4
addss %xmm0, %xmm4
movb $0x1, %al
xorl %r12d, %r12d
xorl %r13d, %r13d
movaps -0x60(%rbp), %xmm7
movaps -0xa0(%rbp), %xmm8
xorps %xmm9, %xmm9
movss 0x5a4d(%rip), %xmm6     # 0xea8c
movss -0x30(%rbp), %xmm11
movss -0x34(%rbp), %xmm12
movaps -0x140(%rbp), %xmm13
movss -0x2c(%rbp), %xmm14
movss -0x90(%rbp), %xmm15
movss -0x38(%rbp), %xmm5
jmp 0x9102
movaps %xmm13, -0x140(%rbp)
movss %xmm14, -0x2c(%rbp)
movss %xmm15, -0x90(%rbp)
movaps %xmm2, -0x80(%rbp)
callq 0x1160
movaps -0x80(%rbp), %xmm2
movss -0x38(%rbp), %xmm5
movss -0x90(%rbp), %xmm15
movss -0x2c(%rbp), %xmm14
movaps -0x140(%rbp), %xmm13
movss -0x34(%rbp), %xmm12
movss -0x30(%rbp), %xmm11
movss 0x59cc(%rip), %xmm6     # 0xea8c
xorps %xmm9, %xmm9
movaps -0xa0(%rbp), %xmm8
movaps -0x60(%rbp), %xmm7
movaps %xmm2, %xmm4
xorps 0x5a56(%rip), %xmm4     # 0xeb30
subss %xmm0, %xmm4
movss -0xd0(%rbp), %xmm1
addss %xmm1, %xmm1
divss %xmm1, %xmm4
subss %xmm2, %xmm0
divss %xmm1, %xmm0
movaps %xmm0, -0x80(%rbp)
movb $0x1, %al
xorl %r13d, %r13d
movb $0x1, %r12b
testb %al, %al
movaps %xmm4, -0xd0(%rbp)
je 0x91bb
ucomiss %xmm9, %xmm4
jb 0x91bb
ucomiss %xmm4, %xmm6
jb 0x91bb
movaps %xmm6, %xmm1
subss %xmm4, %xmm1
movaps %xmm4, %xmm2
addss %xmm4, %xmm2
mulss %xmm1, %xmm2
mulss %xmm1, %xmm1
movss -0xf0(%rbp), %xmm0
mulss %xmm2, %xmm0
movaps %xmm1, %xmm3
mulss %xmm15, %xmm3
addss %xmm0, %xmm3
mulss %xmm4, %xmm4
movaps %xmm4, %xmm0
mulss %xmm5, %xmm0
addss %xmm3, %xmm0
mulss -0x160(%rbp), %xmm2
mulss %xmm14, %xmm1
addss %xmm2, %xmm1
mulss -0xe0(%rbp), %xmm4
addss %xmm1, %xmm4
subss %xmm12, %xmm0
subss %xmm11, %xmm4
mulss %xmm4, %xmm4
mulss %xmm0, %xmm0
addss %xmm4, %xmm0
movaps %xmm13, %xmm1
mulss %xmm13, %xmm1
ucomiss %xmm0, %xmm1
movaps -0x80(%rbp), %xmm4
jbe 0x91bf
ucomiss %xmm9, %xmm0
jb 0x9378
xorps %xmm13, %xmm13
sqrtss %xmm0, %xmm13
jmp 0x91bf
movaps -0x80(%rbp), %xmm4
movaps %xmm4, %xmm0
movss 0x58c2(%rip), %xmm1     # 0xea8c
cmpleps %xmm1, %xmm0
xorps %xmm1, %xmm1
cmpleps %xmm4, %xmm1
andps %xmm0, %xmm1
movd %xmm1, %eax
andb %al, %r12b
cmpb $0x1, %r12b
jne 0x928a
movaps %xmm6, %xmm1
subss %xmm4, %xmm1
movaps %xmm4, %xmm2
addss %xmm4, %xmm2
mulss %xmm1, %xmm2
mulss %xmm1, %xmm1
movss -0xf0(%rbp), %xmm0
mulss %xmm2, %xmm0
movaps %xmm1, %xmm3
mulss %xmm15, %xmm3
addss %xmm0, %xmm3
mulss %xmm4, %xmm4
movaps %xmm4, %xmm0
mulss %xmm5, %xmm0
addss %xmm3, %xmm0
mulss -0x160(%rbp), %xmm2
mulss %xmm14, %xmm1
addss %xmm2, %xmm1
mulss -0xe0(%rbp), %xmm4
addss %xmm1, %xmm4
subss %xmm12, %xmm0
subss %xmm11, %xmm4
mulss %xmm4, %xmm4
mulss %xmm0, %xmm0
addss %xmm4, %xmm0
movaps %xmm13, %xmm1
mulss %xmm13, %xmm1
ucomiss %xmm0, %xmm1
movq -0x178(%rbp), %r12
movaps -0x150(%rbp), %xmm2
jbe 0x9298
ucomiss %xmm9, %xmm0
jb 0x93d1
xorps %xmm13, %xmm13
sqrtss %xmm0, %xmm13
jmp 0x9298
movq -0x178(%rbp), %r12
movaps -0x150(%rbp), %xmm2
movaps %xmm2, %xmm0
movss 0x57e9(%rip), %xmm1     # 0xea8c
cmpleps %xmm1, %xmm0
xorps %xmm1, %xmm1
cmpleps %xmm2, %xmm1
andps %xmm0, %xmm1
movd %xmm1, %eax
andb %al, %r13b
cmpb $0x1, %r13b
jne 0x935c
movaps %xmm6, %xmm0
subss %xmm2, %xmm0
movaps %xmm2, %xmm1
addss %xmm2, %xmm1
mulss %xmm0, %xmm1
mulss %xmm0, %xmm0
movss -0xf0(%rbp), %xmm3
mulss %xmm1, %xmm3
mulss %xmm0, %xmm15
addss %xmm3, %xmm15
mulss %xmm2, %xmm2
mulss %xmm2, %xmm5
addss %xmm15, %xmm5
movss -0x160(%rbp), %xmm3
mulss %xmm1, %xmm3
mulss %xmm14, %xmm0
addss %xmm3, %xmm0
mulss -0xe0(%rbp), %xmm2
addss %xmm0, %xmm2
subss %xmm12, %xmm5
subss %xmm11, %xmm2
mulss %xmm2, %xmm2
mulss %xmm5, %xmm5
addss %xmm2, %xmm5
movaps %xmm13, %xmm0
mulss %xmm13, %xmm0
ucomiss %xmm5, %xmm0
movq -0x170(%rbp), %r13
jbe 0x9363
ucomiss %xmm9, %xmm5
jb 0x942d
xorps %xmm13, %xmm13
sqrtss %xmm5, %xmm13
jmp 0x9363
movq -0x170(%rbp), %r13
incq %r14
addq $0xe, %r15
cmpq %r14, %r13
jne 0x894f
jmp 0x9467
movss %xmm14, -0x2c(%rbp)
movss %xmm15, -0x90(%rbp)
callq 0x1160
movss -0x38(%rbp), %xmm5
movss -0x90(%rbp), %xmm15
movss -0x2c(%rbp), %xmm14
movss -0x34(%rbp), %xmm12
movaps -0x80(%rbp), %xmm4
movss -0x30(%rbp), %xmm11
movss 0x56d4(%rip), %xmm6     # 0xea8c
xorps %xmm9, %xmm9
movaps -0xa0(%rbp), %xmm8
movaps -0x60(%rbp), %xmm7
movaps %xmm0, %xmm13
jmp 0x91bf
movss %xmm14, -0x2c(%rbp)
movss %xmm15, -0x90(%rbp)
callq 0x1160
movss -0x38(%rbp), %xmm5
movss -0x90(%rbp), %xmm15
movss -0x2c(%rbp), %xmm14
movss -0x34(%rbp), %xmm12
movaps -0x150(%rbp), %xmm2
movss -0x30(%rbp), %xmm11
movss 0x5678(%rip), %xmm6     # 0xea8c
xorps %xmm9, %xmm9
movaps -0xa0(%rbp), %xmm8
movaps -0x60(%rbp), %xmm7
movaps %xmm0, %xmm13
jmp 0x9298
movaps %xmm5, %xmm0
callq 0x1160
movss -0x34(%rbp), %xmm12
movss -0x30(%rbp), %xmm11
movss 0x5643(%rip), %xmm6     # 0xea8c
xorps %xmm9, %xmm9
movaps -0xa0(%rbp), %xmm8
movaps -0x60(%rbp), %xmm7
jmp 0x8adf
movss 0x567d(%rip), %xmm13    # 0xeae4
cmpb $0x0, -0x40(%rbp)
je 0x9475
xorps 0x56bb(%rip), %xmm13    # 0xeb30
movl -0xac(%rbp), %r14d
movss -0xa8(%rbp), %xmm0
mulss %xmm0, %xmm13
addss -0x118(%rbp), %xmm13
xorps %xmm0, %xmm0
ucomiss %xmm13, %xmm0
ja 0x94b1
ucomiss 0x5621(%rip), %xmm13    # 0xeac4
movaps %xmm13, %xmm0
jbe 0x94b1
movss 0x5613(%rip), %xmm0     # 0xeac4
cvttss2si %xmm0, %eax
movl -0x3c(%rbp), %ecx
subl -0x48(%rbp), %ecx
imull -0xa4(%rbp), %ecx
movl %r14d, %edx
subl -0x4c(%rbp), %edx
addl %ecx, %edx
movslq %edx, %rcx
movq -0x168(%rbp), %rdx
movb %al, (%rdx,%rcx)
incl %r14d
cmpl -0x64(%rbp), %r14d
jl 0x82a6
movl -0x3c(%rbp), %eax
incl %eax
movl %eax, -0x3c(%rbp)
cmpl -0x44(%rbp), %eax
jl 0x823c
movq %r12, %rdi
callq 0x1030
movq -0x108(%rbp), %rdi
callq 0x1030
movq -0x168(%rbp), %rax
jmp 0x7f75
leaq 0x5845(%rip), %rdi      # 0xed61
leaq 0x5745(%rip), %rsi      # 0xec68
leaq 0x583e(%rip), %rcx      # 0xed68
movl $0x117b, %edx           # imm = 0x117B
callq 0x10c0