// File: /workspace/github_c_makefile_star2_O3/nkanaev[P]tipsy/src/tipsy.c
// Function: draw_surface
void draw_surface(Tigr *scr, Obj *obj, Surface sf, State state) {
  Face f = *(Face*)(list_get(obj->f, sf.idx));

  Tigr *texture = NULL;
  if (f.mtl) texture = f.mtl->map_Ka ? f.mtl->map_Ka : f.mtl->map_Kd;
  if (texture == NULL) return;

  int shading = -1, has_normals = 0;
  Vec vn1, vn2, vn3;

  if (state.shading == SHADING_FLAT) {
    Vec bc = {0.333, 0.333, 0.333};
    shading = shade(sf.nrm, bc);
  }
  if (state.shading == SHADING_GOURAUD) {
    has_normals = f.vn1 > 0 && f.vn2 > 0 && f.vn3 > 0;
    if (has_normals) {
      vn1 = vec_nrm(VREF(list_get(obj->vn, f.vn1-1)));
      vn2 = vec_nrm(VREF(list_get(obj->vn, f.vn2-1)));
      vn3 = vec_nrm(VREF(list_get(obj->vn, f.vn3-1)));
      vn1 = perspective(vn1, state.x, state.y, state.z);
      vn2 = perspective(vn2, state.x, state.y, state.z);
      vn3 = perspective(vn3, state.x, state.y, state.z);
    }
  }

  Vec vt1 = VREF(list_get(obj->vt, f.vt1-1)),
      vt2 = VREF(list_get(obj->vt, f.vt2-1)),
      vt3 = VREF(list_get(obj->vt, f.vt3-1));

  int minX = fminf(fminf(sf.v1.x, sf.v2.x), sf.v3.x),
      maxX = fmaxf(fmaxf(sf.v1.x, sf.v2.x), sf.v3.x)+1,
      minY = fminf(fminf(sf.v1.y, sf.v2.y), sf.v3.y),
      maxY = fmaxf(fmaxf(sf.v1.y, sf.v2.y), sf.v3.y)+1;

  for (int y = minY; y < maxY; y++) {
    for (int x = minX; x < maxX; x++) {
      Vec p = {x, y, 0};
      Vec bc = barycenter(p, sf.v1, sf.v2, sf.v3);
      float err = -0.0001;
      if (bc.x >= err && bc.y >= err && bc.z >= err) {
        if (state.use_zbuffer) {
          float z = bc.x*sf.v1.z + bc.y*sf.v2.z + bc.z*sf.v3.z;
          int zbuff_idx = y * WIDTH + x;
          if (z > state.zbuff[zbuff_idx]) continue;
          state.zbuff[zbuff_idx] = z;
        }

        float u, v;

        if (state.use_pcorrect) {
          Vec bcc = bc;
          bcc.x = bc.x/(sf.v1.z);
          bcc.y = bc.y/(sf.v2.z);
          bcc.z = bc.z/(sf.v3.z);
          float bd = bcc.x+bcc.y+bcc.z;
          bcc.x = bcc.x/bd;
          bcc.y = bcc.y/bd;
          bcc.z = bcc.z/bd;

          u = bcc.x*vt1.x + bcc.y*vt2.x + bcc.z*vt3.x;
          v = 1.0-(bcc.x*vt1.y + bcc.y*vt2.y + bcc.z*vt3.y);
        } else {
          u = bc.x*vt1.x + bc.y*vt2.x + bc.z*vt3.x;
          v = 1.0-(bc.x*vt1.y + bc.y*vt2.y + bc.z*vt3.y);
        }

        int tx = texture->w * u;
        int ty = texture->h * v;

        TPixel texel = tigrGet(texture, tx % texture->w, ty % texture->h);

        if (state.shading == SHADING_GOURAUD && has_normals) {
          int s1 = shade(vn1, bc);
          int s2 = shade(vn2, bc);
          int s3 = shade(vn3, bc);
          shading = bc.x*s1 + bc.y*s2 + bc.z*s3;
        }

        if (shading >= 0) {
          texel.r = (texel.r * shading) >> 8;
          texel.g = (texel.g * shading) >> 8;
          texel.b = (texel.b * shading) >> 8;
        }
        tigrPlot(scr, x, y, texel);
      }
    }
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x148, %rsp            # imm = 0x148
movq %rdi, 0x58(%rsp)
movq 0x18(%rsi), %rax
movslq 0x1d4(%rsp), %rdx
movq (%rax), %rcx
movslq 0x10(%rax), %r9
imulq %rdx, %r9
movq 0x28(%rcx,%r9), %rax
testq %rax, %rax
je 0x9a4a
movslq 0xc(%rcx,%r9), %r8
movslq 0x10(%rcx,%r9), %rdi
movslq 0x14(%rcx,%r9), %rdx
movl 0x18(%rcx,%r9), %r10d
movl 0x1c(%rcx,%r9), %r11d
movl 0x20(%rcx,%r9), %ebx
movq 0x8(%rax), %rcx
movq %rcx, 0x38(%rsp)
testq %rcx, %rcx
jne 0x93a8
movq 0x10(%rax), %rax
movq %rax, 0x38(%rsp)
testq %rax, %rax
je 0x9a4a
leaq 0x1d8(%rsp), %rax
leaq 0x180(%rsp), %rcx
movl 0x14(%rax), %r9d
movl $0xffffffff, 0x8(%rsp)  # imm = 0xFFFFFFFF
cmpl $0x2, %r9d
je 0x9a5c
cmpl $0x1, %r9d
jne 0x9425
movsd 0x48(%rcx), %xmm0
movaps %xmm0, %xmm1
xorps 0x1c4d(%rip), %xmm0     # 0xb030
shufps $0x55, %xmm1, %xmm1     # xmm1 = xmm1[1,1,1,1]
subss %xmm1, %xmm0
subss 0x50(%rcx), %xmm0
mulss 0x39ac(%rip), %xmm0     # 0xcda4
movaps %xmm0, %xmm1
addss %xmm0, %xmm1
addss %xmm0, %xmm1
maxss 0x3995(%rip), %xmm1     # 0xcda0
minss 0x1cad(%rip), %xmm1     # 0xb0c0
mulss 0x1ca9(%rip), %xmm1     # 0xb0c4
cvttss2si %xmm1, %r9d
movl %r9d, 0x8(%rsp)
movl $0x0, 0x4(%rsp)
xorl %r9d, %r9d
movss 0x4(%rcx), %xmm4
movss 0x1c82(%rip), %xmm11    # 0xb0c0
movss 0x10(%rcx), %xmm2
movaps %xmm4, %xmm5
cmpunordss %xmm4, %xmm5
movaps %xmm5, %xmm3
andps %xmm2, %xmm3
movaps %xmm2, %xmm6
minss %xmm4, %xmm6
andnps %xmm6, %xmm5
orps %xmm3, %xmm5
movss 0x1c(%rcx), %xmm3
movaps %xmm3, %xmm6
minss %xmm5, %xmm6
cmpunordss %xmm5, %xmm5
movaps %xmm5, %xmm7
andnps %xmm6, %xmm7
andps %xmm3, %xmm5
orps %xmm7, %xmm5
cvttss2si %xmm5, %r10d
ucomiss %xmm4, %xmm4
jp 0x9489
maxss %xmm4, %xmm2
movaps %xmm3, %xmm4
maxss %xmm2, %xmm4
cmpunordss %xmm2, %xmm2
movaps %xmm2, %xmm5
andnps %xmm4, %xmm5
andps %xmm3, %xmm2
orps %xmm5, %xmm2
addss %xmm11, %xmm2
cvttss2si %xmm2, %r11d
movl %r11d, 0x10(%rsp)
cmpl %r11d, %r10d
jge 0x9a4a
movss (%rcx), %xmm5
movss 0xc(%rcx), %xmm4
movaps %xmm5, %xmm2
cmpunordss %xmm5, %xmm2
movaps %xmm4, %xmm3
maxss %xmm5, %xmm3
movaps %xmm2, %xmm6
andps %xmm4, %xmm6
movaps %xmm2, %xmm7
andnps %xmm3, %xmm7
movss 0x18(%rcx), %xmm3
orps %xmm6, %xmm7
movaps %xmm3, %xmm8
maxss %xmm7, %xmm8
cmpunordss %xmm7, %xmm7
movq 0x10(%rsi), %rsi
movaps %xmm7, %xmm9
andnps %xmm8, %xmm9
andps %xmm3, %xmm7
orps %xmm9, %xmm7
decq %r8
movslq 0x10(%rsi), %r11
decq %rdi
decq %rdx
movq (%rsi), %rsi
imulq %r11, %r8
imulq %r11, %rdi
imulq %r11, %rdx
addss %xmm11, %xmm7
movss (%rsi,%r8), %xmm8
movss %xmm8, 0x2c(%rsp)
movss 0x4(%rsi,%r8), %xmm8
movss %xmm8, 0x28(%rsp)
movss (%rsi,%rdi), %xmm8
movss %xmm8, 0x24(%rsp)
movss 0x4(%rsi,%rdi), %xmm8
movss %xmm8, 0x20(%rsp)
movss (%rsi,%rdx), %xmm8
movss %xmm8, 0x1c(%rsp)
movss 0x4(%rsi,%rdx), %xmm8
movss %xmm8, 0x18(%rsp)
cvttss2si %xmm7, %ebx
minss %xmm5, %xmm4
andnps %xmm4, %xmm2
orps %xmm6, %xmm2
movaps %xmm3, %xmm4
minss %xmm2, %xmm4
cmpunordss %xmm2, %xmm2
movaps %xmm2, %xmm5
andnps %xmm4, %xmm5
andps %xmm3, %xmm2
orps %xmm5, %xmm2
cvttss2si %xmm2, %ebp
movsd (%rcx), %xmm2
movsd 0xc(%rcx), %xmm5
movsd 0x18(%rcx), %xmm6
movaps %xmm6, %xmm3
shufps $0x55, %xmm6, %xmm3     # xmm3 = xmm3[1,1],xmm6[1,1]
movaps %xmm3, 0x70(%rsp)
movaps %xmm2, %xmm7
movaps %xmm6, %xmm3
shufps $0x11, %xmm2, %xmm3     # xmm3 = xmm3[1,0],xmm2[1,0]
shufps $0xe2, %xmm2, %xmm3     # xmm3 = xmm3[2,0],xmm2[2,3]
subps %xmm6, %xmm2
unpcklps %xmm6, %xmm7            # xmm7 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]
movaps %xmm6, %xmm4
unpcklps %xmm5, %xmm4            # xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]
subps %xmm4, %xmm7
mulps %xmm7, %xmm2
shufps $0x55, %xmm2, %xmm2     # xmm2 = xmm2[1,1,1,1]
shufps $0x11, %xmm6, %xmm5     # xmm5 = xmm5[1,0],xmm6[1,0]
shufps $0xe2, %xmm6, %xmm5     # xmm5 = xmm5[2,0],xmm6[2,3]
subps %xmm3, %xmm5
movaps %xmm5, %xmm8
shufps $0x55, %xmm5, %xmm8     # xmm8 = xmm8[1,1],xmm5[1,1]
movaps %xmm7, 0x60(%rsp)
mulss %xmm7, %xmm8
addss %xmm2, %xmm8
movl 0x4(%rax), %edx
movl %edx, 0x30(%rsp)
movl 0x8(%rax), %edx
movl %edx, 0x14(%rsp)
movss 0x8(%rcx), %xmm7
movaps %xmm15, %xmm4
movaps %xmm15, %xmm2
shufps $0x55, %xmm15, %xmm2    # xmm2 = xmm2[1,1],xmm15[1,1]
movaps 0x1a06(%rip), %xmm3     # 0xb030
xorps %xmm3, %xmm4
subss %xmm2, %xmm4
movaps %xmm1, %xmm2
shufps $0x55, %xmm1, %xmm2     # xmm2 = xmm2[1,1],xmm1[1,1]
subss %xmm2, %xmm4
movaps %xmm4, 0x80(%rsp)
movaps %xmm0, %xmm2
shufps $0x55, %xmm0, %xmm2     # xmm2 = xmm2[1,1],xmm0[1,1]
xorps %xmm3, %xmm0
subss %xmm2, %xmm0
movss 0x14(%rcx), %xmm4
subss %xmm1, %xmm0
movaps %xmm0, 0x90(%rsp)
movaps %xmm10, %xmm2
movaps %xmm10, %xmm1
xorps %xmm3, %xmm2
movss 0x20(%rcx), %xmm0
movss %xmm0, 0x40(%rsp)
movl 0x4(%rsp), %ecx
andb %r9b, %cl
movl %ecx, 0x4(%rsp)
shufps $0x55, %xmm10, %xmm1    # xmm1 = xmm1[1,1],xmm10[1,1]
subss %xmm1, %xmm2
subss %xmm12, %xmm2
movaps %xmm2, 0xa0(%rsp)
movslq %ebp, %rcx
movslq %r10d, %r15
shufps $0x0, %xmm8, %xmm8      # xmm8 = xmm8[0,0,0,0]
movaps %xmm4, 0xc0(%rsp)
movaps %xmm7, 0xd0(%rsp)
unpcklps %xmm7, %xmm4            # xmm4 = xmm4[0],xmm7[0],xmm4[1],xmm7[1]
movaps %xmm4, 0xb0(%rsp)
leaq (%r15,%r15,4), %rdx
shlq $0x8, %rdx
leaq (%rdx,%rcx,4), %r12
addq 0x40(%rax), %r12
movss 0x36d0(%rip), %xmm2     # 0xcda8
movl $0xff, %r13d
movl %ebp, 0xc(%rsp)
movaps %xmm5, 0x100(%rsp)
movaps %xmm6, 0xf0(%rsp)
movaps %xmm8, 0xe0(%rsp)
cmpl %ebx, %ebp
jge 0x9a31
xorps %xmm3, %xmm3
cvtsi2ss %r15d, %xmm3
subss 0x70(%rsp), %xmm3
shufps $0x0, %xmm3, %xmm3      # xmm3 = xmm3[0,0,0,0]
mulps 0x60(%rsp), %xmm3
movq %r12, %r14
movaps %xmm3, 0x110(%rsp)
xorps %xmm4, %xmm4
cvtsi2ss %ebp, %xmm4
subss %xmm6, %xmm4
shufps $0x0, %xmm4, %xmm4      # xmm4 = xmm4[0,0,0,0]
mulps %xmm5, %xmm4
addps %xmm3, %xmm4
divps %xmm8, %xmm4
movaps %xmm4, %xmm7
shufps $0x55, %xmm4, %xmm7     # xmm7 = xmm7[1,1],xmm4[1,1]
ucomiss %xmm2, %xmm7
jb 0x9a23
ucomiss %xmm2, %xmm4
jb 0x9a23
movaps %xmm11, %xmm9
subss %xmm7, %xmm9
subss %xmm4, %xmm9
ucomiss %xmm2, %xmm9
jb 0x9a23
cmpl $0x0, 0x30(%rsp)
je 0x97af
movaps %xmm4, %xmm0
mulss 0xc0(%rsp), %xmm0
movaps %xmm7, %xmm1
mulss 0xd0(%rsp), %xmm1
addss %xmm0, %xmm1
movaps %xmm9, %xmm0
mulss 0x40(%rsp), %xmm0
addss %xmm1, %xmm0
ucomiss (%r14), %xmm0
ja 0x9a23
movss %xmm0, (%r14)
cmpl $0x0, 0x14(%rsp)
movaps %xmm4, 0x130(%rsp)
movaps %xmm7, 0x120(%rsp)
movss %xmm9, 0x34(%rsp)
je 0x97fe
movaps %xmm4, %xmm1
divps 0xb0(%rsp), %xmm1
movaps %xmm9, %xmm0
divss 0x40(%rsp), %xmm0
movaps %xmm1, %xmm2
shufps $0x55, %xmm1, %xmm2     # xmm2 = xmm2[1,1],xmm1[1,1]
addss %xmm1, %xmm2
addss %xmm0, %xmm2
divss %xmm2, %xmm0
shufps $0x0, %xmm2, %xmm2      # xmm2 = xmm2[0,0,0,0]
divps %xmm2, %xmm1
jmp 0x9805
movaps %xmm9, %xmm0
movaps %xmm4, %xmm1
movss 0x24(%rsp), %xmm2
mulss %xmm1, %xmm2
movss 0x20(%rsp), %xmm3
mulss %xmm1, %xmm3
shufps $0x55, %xmm1, %xmm1     # xmm1 = xmm1[1,1,1,1]
movaps %xmm1, %xmm4
mulss 0x2c(%rsp), %xmm4
addss %xmm2, %xmm4
movaps %xmm0, %xmm2
mulss 0x1c(%rsp), %xmm2
addss %xmm4, %xmm2
mulss 0x28(%rsp), %xmm1
addss %xmm3, %xmm1
mulss 0x18(%rsp), %xmm0
addss %xmm1, %xmm0
movq 0x38(%rsp), %rdi
movl (%rdi), %esi
xorps %xmm1, %xmm1
cvtsi2ss %esi, %xmm1
movaps %xmm11, %xmm3
mulss %xmm2, %xmm1
cvttss2si %xmm1, %eax
movl 0x4(%rdi), %r8d
xorps %xmm1, %xmm1
cvtsi2ss %r8d, %xmm1
subss %xmm0, %xmm3
mulss %xmm3, %xmm1
cvttss2si %xmm1, %ecx
cltd
idivl %esi
movl %edx, %esi
movl %ecx, %eax
cltd
idivl %r8d
callq 0x43c0
cmpb $0x0, 0x4(%rsp)
movl 0x8(%rsp), %edi
je 0x9999
movaps 0x80(%rsp), %xmm2
movaps %xmm2, %xmm0
movaps 0x130(%rsp), %xmm8
mulss %xmm8, %xmm0
movaps 0x120(%rsp), %xmm9
movaps %xmm9, %xmm1
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss 0x34(%rsp), %xmm10
movaps %xmm10, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss 0x34bb(%rip), %xmm6     # 0xcda0
maxss %xmm6, %xmm0
movss 0x17cf(%rip), %xmm5     # 0xb0c0
minss %xmm5, %xmm0
movss 0x17c7(%rip), %xmm7     # 0xb0c4
mulss %xmm7, %xmm0
movaps 0x90(%rsp), %xmm3
movaps %xmm3, %xmm1
mulss %xmm8, %xmm1
movaps %xmm9, %xmm2
mulss %xmm3, %xmm2
addss %xmm1, %xmm2
movaps %xmm10, %xmm1
mulss %xmm3, %xmm1
addss %xmm2, %xmm1
maxss %xmm6, %xmm1
minss %xmm5, %xmm1
mulss %xmm7, %xmm1
movaps 0xa0(%rsp), %xmm4
movaps %xmm4, %xmm2
mulss %xmm8, %xmm2
movaps %xmm9, %xmm3
mulss %xmm4, %xmm3
addss %xmm2, %xmm3
movaps %xmm10, %xmm2
mulss %xmm4, %xmm2
addss %xmm3, %xmm2
maxss %xmm6, %xmm2
minss %xmm5, %xmm2
mulss %xmm7, %xmm2
cvttps2dq %xmm0, %xmm0
cvtdq2ps %xmm0, %xmm0
cvttps2dq %xmm1, %xmm1
cvtdq2ps %xmm1, %xmm1
mulss %xmm8, %xmm1
mulss %xmm9, %xmm0
addss %xmm1, %xmm0
cvttps2dq %xmm2, %xmm1
cvtdq2ps %xmm1, %xmm1
mulss %xmm10, %xmm1
addss %xmm0, %xmm1
cvttss2si %xmm1, %edi
movl %eax, %esi
shrl $0x8, %esi
movl %eax, %edx
shrl $0x10, %edx
testl %edi, %edi
movl %edi, 0x8(%rsp)
movl %eax, %ecx
js 0x99c8
andl %r13d, %ecx
imull %edi, %ecx
shrl $0x8, %ecx
andl %r13d, %esi
imull %edi, %esi
shrl $0x8, %esi
andl %r13d, %edx
imull %edi, %edx
shrl $0x8, %edx
andl $0xff000000, %eax       # imm = 0xFF000000
andl %r13d, %edx
shll $0x10, %edx
orl %eax, %edx
shll $0x8, %esi
movzwl %si, %eax
andl %r13d, %ecx
orl %eax, %ecx
orl %edx, %ecx
movq 0x58(%rsp), %rdi
movl %ebp, %esi
movl %r15d, %edx
callq 0x3d2d
movss 0x16c6(%rip), %xmm11    # 0xb0c0
movaps 0x100(%rsp), %xmm5
movaps 0xf0(%rsp), %xmm6
movaps 0xe0(%rsp), %xmm8
movss 0x338d(%rip), %xmm2     # 0xcda8
movaps 0x110(%rsp), %xmm3
addq $0x4, %r14
incl %ebp
cmpl %ebp, %ebx
jne 0x9725
incq %r15
addq $0x500, %r12            # imm = 0x500
cmpl 0x10(%rsp), %r15d
movl 0xc(%rsp), %ebp
jne 0x96fb
addq $0x148, %rsp            # imm = 0x148
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
testl %r10d, %r10d
setg %r9b
testl %r11d, %r11d
setg %bpl
andb %r9b, %bpl
testl %ebx, %ebx
setg %r9b
andb %bpl, %r9b
cmpb $0x1, %r9b
jne 0x9c7e
movq 0x8(%rsi), %r14
decl %r10d
movq (%r14), %r9
movl 0x10(%r14), %ebp
imull %ebp, %r10d
movslq %r10d, %r10
movsd (%r9,%r10), %xmm1
decl %r11d
imull %ebp, %r11d
movslq %r11d, %r11
movsd (%r9,%r11), %xmm3
decl %ebx
imull %ebp, %ebx
movslq %ebx, %rbx
movsd (%r9,%rbx), %xmm2
movss 0x8(%r9,%rbx), %xmm5
movaps %xmm2, %xmm4
shufps $0x55, %xmm2, %xmm4     # xmm4 = xmm4[1,1],xmm2[1,1]
movaps %xmm4, %xmm0
mulss %xmm4, %xmm0
movaps %xmm2, %xmm6
movaps %xmm2, %xmm7
mulss %xmm2, %xmm6
addss %xmm0, %xmm6
movaps %xmm5, %xmm0
mulss %xmm5, %xmm0
addss %xmm6, %xmm0
xorps %xmm6, %xmm6
sqrtss %xmm0, %xmm6
movss 0x15ca(%rip), %xmm2     # 0xb0c0
divss %xmm6, %xmm2
mulss %xmm2, %xmm7
movaps %xmm7, %xmm0
mulss %xmm2, %xmm4
mulss %xmm5, %xmm2
movsd 0x18(%rax), %xmm5
movups 0x20(%rax), %xmm7
movsd 0x24(%rax), %xmm8
movsd 0x30(%rax), %xmm9
movss 0x38(%rax), %xmm6
movaps %xmm9, %xmm10
movaps %xmm0, %xmm11
mulss %xmm9, %xmm0
movaps %xmm0, 0x40(%rsp)
shufps $0x55, %xmm9, %xmm9     # xmm9 = xmm9[1,1,1,1]
movaps %xmm1, %xmm12
shufps $0x11, %xmm3, %xmm12    # xmm12 = xmm12[1,0],xmm3[1,0]
shufps $0xe2, %xmm3, %xmm12    # xmm12 = xmm12[2,0],xmm3[2,3]
movaps %xmm12, %xmm13
mulps %xmm12, %xmm13
unpcklps %xmm1, %xmm3            # xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
movaps %xmm3, %xmm1
mulps %xmm3, %xmm1
addps %xmm13, %xmm1
movss 0x8(%r9,%r10), %xmm13
movss 0x8(%r9,%r11), %xmm14
unpcklps %xmm13, %xmm14          # xmm14 = xmm14[0],xmm13[0],xmm14[1],xmm13[1]
movaps %xmm14, %xmm13
mulps %xmm14, %xmm13
addps %xmm1, %xmm13
sqrtps %xmm13, %xmm1
movaps 0x3289(%rip), %xmm15    # 0xce10
divps %xmm1, %xmm15
mulps %xmm15, %xmm3
mulps %xmm15, %xmm12
mulps %xmm14, %xmm15
movaps %xmm12, %xmm1
shufps $0x55, %xmm12, %xmm1    # xmm1 = xmm1[1,1],xmm12[1,1]
movaps %xmm8, %xmm13
shufps $0x11, %xmm5, %xmm13    # xmm13 = xmm13[1,0],xmm5[1,0]
shufps $0xe2, %xmm5, %xmm13    # xmm13 = xmm13[2,0],xmm5[2,3]
mulps %xmm13, %xmm1
movaps %xmm3, %xmm14
shufps $0x55, %xmm3, %xmm14    # xmm14 = xmm14[1,1],xmm3[1,1]
unpcklps %xmm8, %xmm5            # xmm5 = xmm5[0],xmm8[0],xmm5[1],xmm8[1]
mulps %xmm5, %xmm14
addps %xmm1, %xmm14
movss 0x2c(%rax), %xmm8
movlhps %xmm7, %xmm8            # xmm8 = xmm8[0],xmm7[0]
shufps $0xe2, %xmm7, %xmm8     # xmm8 = xmm8[2,0],xmm7[2,3]
movaps %xmm15, %xmm0
movaps %xmm2, %xmm7
mulss %xmm6, %xmm2
movaps %xmm6, %xmm1
shufps $0x0, %xmm6, %xmm1      # xmm1 = xmm1[0,0],xmm6[0,0]
mulps %xmm15, %xmm1
shufps $0x55, %xmm15, %xmm15   # xmm15 = xmm15[1,1,1,1]
mulps %xmm8, %xmm15
addps %xmm14, %xmm15
movaps %xmm12, %xmm6
mulps %xmm9, %xmm6
shufps $0x0, %xmm10, %xmm10    # xmm10 = xmm10[0,0,0,0]
mulps %xmm3, %xmm10
addps %xmm6, %xmm10
shufps $0x0, %xmm12, %xmm12    # xmm12 = xmm12[0,0,0,0]
mulps %xmm13, %xmm12
shufps $0x0, %xmm3, %xmm3      # xmm3 = xmm3[0,0,0,0]
mulps %xmm5, %xmm3
addps %xmm12, %xmm3
movaps %xmm2, %xmm12
shufps $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0]
mulps %xmm8, %xmm0
addps %xmm3, %xmm0
addps %xmm10, %xmm1
mulss %xmm4, %xmm9
shufps $0x0, %xmm4, %xmm4      # xmm4 = xmm4[0,0,0,0]
mulps %xmm13, %xmm4
shufps $0x0, %xmm11, %xmm11    # xmm11 = xmm11[0,0,0,0]
mulps %xmm5, %xmm11
addps %xmm4, %xmm11
shufps $0x0, %xmm7, %xmm7      # xmm7 = xmm7[0,0,0,0]
mulps %xmm8, %xmm7
addps %xmm11, %xmm7
movaps %xmm7, %xmm10
movaps 0x40(%rsp), %xmm2
addss %xmm9, %xmm2
addss %xmm2, %xmm12
movb $0x1, %r9b
movl %r9d, 0x4(%rsp)
movb $0x1, %r9b
jmp 0x9430
movb $0x1, %r9b
movl %r9d, 0x4(%rsp)
xorl %r9d, %r9d
jmp 0x9430