// File: /workspace/github_c_makefile_star2_O0/jonof[P]jftekwar/src/tekmap.c
// Function: drawoverheadmap
void
drawoverheadmap(int cposx, int cposy, int czoom, short cang)
{
     int i, j, k, l, x1, y1, x2, y2, x3, y3, x4, y4, ox, oy, xoff, yoff;
     int dax, day, cosang, sinang, xspan, yspan, sprx, spry;
     int xrepeat, yrepeat, z1, z2, startwall, endwall, tilenum, daang;
     int xvect, yvect, xvect2, yvect2;
     unsigned char col;
     walltype *wal, *wal2;
     spritetype *spr;

     xvect = sintable[(2048-cang)&2047] * czoom;
     yvect = sintable[(1536-cang)&2047] * czoom;
     xvect2 = mulscale(xvect,yxaspect,16);
     yvect2 = mulscale(yvect,yxaspect,16);

          //Draw red lines
     for(i=0;i<numsectors;i++)
     {
          startwall = sector[i].wallptr;
          endwall = sector[i].wallptr + sector[i].wallnum - 1;

          z1 = sector[i].ceilingz; z2 = sector[i].floorz;

          for(j=startwall,wal=&wall[startwall];j<=endwall;j++,wal++)
          {
               k = wal->nextwall; if (k < 0) continue;

               if ((show2dwall[j>>3]&(1<<(j&7))) == 0) continue;
               if ((k > j) && ((show2dwall[k>>3]&(1<<(k&7))) > 0)) continue;

               if (sector[wal->nextsector].ceilingz == z1)
                    if (sector[wal->nextsector].floorz == z2)
                         if (((wal->cstat|wall[wal->nextwall].cstat)&(16+32)) == 0) continue;

               col = 232;

               if (dimensionmode[screenpeek] == 2)
               {
                    if (sector[i].floorz != sector[i].ceilingz)
                         if (sector[wal->nextsector].floorz != sector[wal->nextsector].ceilingz)
                              if (((wal->cstat|wall[wal->nextwall].cstat)&(16+32)) == 0)
                                   if (sector[i].floorz == sector[wal->nextsector].floorz) continue;
                    if (sector[i].floorpicnum != sector[wal->nextsector].floorpicnum) continue;
                    if (sector[i].floorshade != sector[wal->nextsector].floorshade) continue;
                    col = 232;
               }

               ox = wal->x-cposx; oy = wal->y-cposy;
               x1 = mulscale(ox,xvect,16) - mulscale(oy,yvect,16);
               y1 = mulscale(oy,xvect2,16) + mulscale(ox,yvect2,16);

               wal2 = &wall[wal->point2];
               ox = wal2->x-cposx; oy = wal2->y-cposy;
               x2 = mulscale(ox,xvect,16) - mulscale(oy,yvect,16);
               y2 = mulscale(oy,xvect2,16) + mulscale(ox,yvect2,16);

               drawline256(x1+(xdim<<11),y1+(ydim<<11),x2+(xdim<<11),y2+(ydim<<11),col);
          }
     }

          //Draw sprites
     k = playersprite[screenpeek];
     show2dsprite[k>>3] |= (1<<(k&7));
     for(i=0;i<numsectors;i++)
          for(j=headspritesect[i];j>=0;j=nextspritesect[j])
               if ((show2dsprite[j>>3]&(1<<(j&7))) > 0)
               {
                    spr = &sprite[j];
                    col = 56;
                    if ((spr->cstat&1) > 0) col = 248;
                    if (j == k) col = 31;

                    sprx = spr->x;
                    spry = spr->y;

                    k = spr->statnum;
                    if ((k >= 1) && (k <= 8) && (k != 2))  //Interpolate moving sprite
                    {
                         sprx = osprite[j].x+mulscale(sprx-osprite[j].x,smoothratio,16);
                         spry = osprite[j].y+mulscale(spry-osprite[j].y,smoothratio,16);
                    }

                    switch (spr->cstat&48)
                    {
                         case 0:
                              ox = sprx-cposx; oy = spry-cposy;
                              x1 = mulscale(ox,xvect,16) - mulscale(oy,yvect,16);
                              y1 = mulscale(oy,xvect2,16) + mulscale(ox,yvect2,16);

                              if (dimensionmode[screenpeek] == 1)
                              {
                                   ox = (sintable[(spr->ang+512)&2047]>>7);
                                   oy = (sintable[(spr->ang)&2047]>>7);
                                   x2 = mulscale(ox,xvect,16) - mulscale(oy,yvect,16);
                                   y2 = mulscale(oy,xvect,16) + mulscale(ox,yvect,16);

                                   if (j == playersprite[screenpeek])
                                   {
                                        x2 = 0L;
                                        y2 = -(czoom<<5);
                                   }

                                   x3 = mulscale(x2,yxaspect,16);
                                   y3 = mulscale(y2,yxaspect,16);

                                   drawline256(x1-x2+(xdim<<11),y1-y3+(ydim<<11),
                                                       x1+x2+(xdim<<11),y1+y3+(ydim<<11),col);
                                   drawline256(x1-y2+(xdim<<11),y1+x3+(ydim<<11),
                                                       x1+x2+(xdim<<11),y1+y3+(ydim<<11),col);
                                   drawline256(x1+y2+(xdim<<11),y1-x3+(ydim<<11),
                                                       x1+x2+(xdim<<11),y1+y3+(ydim<<11),col);
                              }
                              else
                              {
                                   if (((gotsector[i>>3]&(1<<(i&7))) > 0) && (czoom > 192))
                                   {
                                        daang = (spr->ang-cang)&2047;
                                        if (j == playersprite[screenpeek])
                                             { x1 = 0; y1 = (yxaspect<<2); daang = 0; }
                                        rotatesprite((x1<<4)+(xdim<<15),(y1<<4)+(ydim<<15),mulscale(czoom*spr->yrepeat,yxaspect,16),daang,spr->picnum,spr->shade,spr->pal,(spr->cstat&2)>>1, windowx1, windowy1, windowx2, windowy2);
                                   }
                              }
                              break;
                         case 16:
                              x1 = sprx; y1 = spry;
                              tilenum = spr->picnum;
                              xoff = (int)((signed char)((picanm[tilenum]>>8)&255))+((int)spr->xoffset);
                              if ((spr->cstat&4) > 0) xoff = -xoff;
                              k = spr->ang; l = spr->xrepeat;
                              dax = sintable[k&2047]*l; day = sintable[(k+1536)&2047]*l;
                              l = tilesizx[tilenum]; k = (l>>1)+xoff;
                              x1 -= mulscale(dax,k,16); x2 = x1+mulscale(dax,l,16);
                              y1 -= mulscale(day,k,16); y2 = y1+mulscale(day,l,16);

                              ox = x1-cposx; oy = y1-cposy;
                              x1 = mulscale(ox,xvect,16) - mulscale(oy,yvect,16);
                              y1 = mulscale(oy,xvect2,16) + mulscale(ox,yvect2,16);

                              ox = x2-cposx; oy = y2-cposy;
                              x2 = mulscale(ox,xvect,16) - mulscale(oy,yvect,16);
                              y2 = mulscale(oy,xvect2,16) + mulscale(ox,yvect2,16);

                              drawline256(x1+(xdim<<11),y1+(ydim<<11),
                                                  x2+(xdim<<11),y2+(ydim<<11),col);

                              break;
                         case 32:
                              if (dimensionmode[screenpeek] == 1)
                              {
                                   tilenum = spr->picnum;
                                   xoff = (int)((signed char)((picanm[tilenum]>>8)&255))+((int)spr->xoffset);
                                   yoff = (int)((signed char)((picanm[tilenum]>>16)&255))+((int)spr->yoffset);
                                   if ((spr->cstat&4) > 0) xoff = -xoff;
                                   if ((spr->cstat&8) > 0) yoff = -yoff;

                                   k = spr->ang;
                                   cosang = sintable[(k+512)&2047]; sinang = sintable[k];
                                   xspan = tilesizx[tilenum]; xrepeat = spr->xrepeat;
                                   yspan = tilesizy[tilenum]; yrepeat = spr->yrepeat;

                                   dax = ((xspan>>1)+xoff)*xrepeat; day = ((yspan>>1)+yoff)*yrepeat;
                                   x1 = sprx + mulscale(sinang,dax,16) + mulscale(cosang,day,16);
                                   y1 = spry + mulscale(sinang,day,16) - mulscale(cosang,dax,16);
                                   l = xspan*xrepeat;
                                   x2 = x1 - mulscale(sinang,l,16);
                                   y2 = y1 + mulscale(cosang,l,16);
                                   l = yspan*yrepeat;
                                   k = -mulscale(cosang,l,16); x3 = x2+k; x4 = x1+k;
                                   k = -mulscale(sinang,l,16); y3 = y2+k; y4 = y1+k;

                                   ox = x1-cposx; oy = y1-cposy;
                                   x1 = mulscale(ox,xvect,16) - mulscale(oy,yvect,16);
                                   y1 = mulscale(oy,xvect2,16) + mulscale(ox,yvect2,16);

                                   ox = x2-cposx; oy = y2-cposy;
                                   x2 = mulscale(ox,xvect,16) - mulscale(oy,yvect,16);
                                   y2 = mulscale(oy,xvect2,16) + mulscale(ox,yvect2,16);

                                   ox = x3-cposx; oy = y3-cposy;
                                   x3 = mulscale(ox,xvect,16) - mulscale(oy,yvect,16);
                                   y3 = mulscale(oy,xvect2,16) + mulscale(ox,yvect2,16);

                                   ox = x4-cposx; oy = y4-cposy;
                                   x4 = mulscale(ox,xvect,16) - mulscale(oy,yvect,16);
                                   y4 = mulscale(oy,xvect2,16) + mulscale(ox,yvect2,16);

                                   drawline256(x1+(xdim<<11),y1+(ydim<<11),
                                                       x2+(xdim<<11),y2+(ydim<<11),col);

                                   drawline256(x2+(xdim<<11),y2+(ydim<<11),
                                                       x3+(xdim<<11),y3+(ydim<<11),col);

                                   drawline256(x3+(xdim<<11),y3+(ydim<<11),
                                                       x4+(xdim<<11),y4+(ydim<<11),col);

                                   drawline256(x4+(xdim<<11),y4+(ydim<<11),
                                                       x1+(xdim<<11),y1+(ydim<<11),col);

                              }
                              break;
                    }
               }

          //Draw white lines
     for(i=0;i<numsectors;i++)
     {
          startwall = sector[i].wallptr;
          endwall = sector[i].wallptr + sector[i].wallnum - 1;

          for(j=startwall,wal=&wall[startwall];j<=endwall;j++,wal++)
          {
               if (wal->nextwall >= 0) continue;

               if ((show2dwall[j>>3]&(1<<(j&7))) == 0) continue;

               if (tilesizx[wal->picnum] == 0) continue;
               if (tilesizy[wal->picnum] == 0) continue;

               ox = wal->x-cposx; oy = wal->y-cposy;
               x1 = mulscale(ox,xvect,16) - mulscale(oy,yvect,16);
               y1 = mulscale(oy,xvect2,16) + mulscale(ox,yvect2,16);

               wal2 = &wall[wal->point2];
               ox = wal2->x-cposx; oy = wal2->y-cposy;
               x2 = mulscale(ox,xvect,16) - mulscale(oy,yvect,16);
               y2 = mulscale(oy,xvect2,16) + mulscale(ox,yvect2,16);

               drawline256(x1+(xdim<<11),y1+(ydim<<11),x2+(xdim<<11),y2+(ydim<<11),239);
          }
     }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x188, %rsp            # imm = 0x188
movw %cx, %ax
movl %edi, -0x1c(%rbp)
movl %esi, -0x20(%rbp)
movl %edx, -0x24(%rbp)
movw %ax, -0x26(%rbp)
movswl -0x26(%rbp), %ecx
movl $0x800, %eax            # imm = 0x800
subl %ecx, %eax
andl $0x7ff, %eax            # imm = 0x7FF
movslq %eax, %rcx
leaq 0x5b0cd6(%rip), %rax    # 0x5c8b80
movswl (%rax,%rcx,2), %eax
imull -0x24(%rbp), %eax
movl %eax, -0xac(%rbp)
movswl -0x26(%rbp), %ecx
movl $0x600, %eax            # imm = 0x600
subl %ecx, %eax
andl $0x7ff, %eax            # imm = 0x7FF
movslq %eax, %rcx
leaq 0x5b0cae(%rip), %rax    # 0x5c8b80
movswl (%rax,%rcx,2), %eax
imull -0x24(%rbp), %eax
movl %eax, -0xb0(%rbp)
movl -0xac(%rbp), %edi
leaq 0x5e812b(%rip), %rax    # 0x600018
movl (%rax), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0xb4(%rbp)
movl -0xb0(%rbp), %edi
leaq 0x5e810c(%rip), %rax    # 0x600018
movl (%rax), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0xb8(%rbp)
movl $0x0, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
leaq 0x5b1e61(%rip), %rcx    # 0x5c9d90
movswl (%rcx), %ecx
cmpl %ecx, %eax
jge 0x18443
movslq -0x2c(%rbp), %rcx
leaq 0x42594b(%rip), %rax    # 0x43d890
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movswl (%rax), %eax
movl %eax, -0x9c(%rbp)
movslq -0x2c(%rbp), %rcx
leaq 0x425930(%rip), %rax    # 0x43d890
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movswl (%rax), %eax
movslq -0x2c(%rbp), %rdx
leaq 0x42591b(%rip), %rcx    # 0x43d890
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movswl 0x2(%rcx), %ecx
addl %ecx, %eax
subl $0x1, %eax
movl %eax, -0xa0(%rbp)
movslq -0x2c(%rbp), %rcx
leaq 0x4258fa(%rip), %rax    # 0x43d890
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %eax
movl %eax, -0x94(%rbp)
movslq -0x2c(%rbp), %rcx
leaq 0x4258df(%rip), %rax    # 0x43d890
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movl %eax, -0x98(%rbp)
movl -0x9c(%rbp), %eax
movl %eax, -0x30(%rbp)
movslq -0x9c(%rbp), %rcx
leaq 0x39a8a8(%rip), %rax    # 0x3b2880
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, -0xc8(%rbp)
movl -0x30(%rbp), %eax
cmpl -0xa0(%rbp), %eax
jg 0x18433
movq -0xc8(%rbp), %rax
movswl 0xa(%rax), %eax
movl %eax, -0x34(%rbp)
cmpl $0x0, -0x34(%rbp)
jge 0x1800e
jmp 0x18413
movl -0x30(%rbp), %eax
sarl $0x3, %eax
movslq %eax, %rcx
leaq 0x58daf2(%rip), %rax    # 0x5a5b10
movzbl (%rax,%rcx), %eax
movl -0x30(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
jne 0x1803d
jmp 0x18413
movl -0x34(%rbp), %eax
cmpl -0x30(%rbp), %eax
jle 0x18074
movl -0x34(%rbp), %eax
sarl $0x3, %eax
movslq %eax, %rcx
leaq 0x58dabb(%rip), %rax    # 0x5a5b10
movzbl (%rax,%rcx), %eax
movl -0x34(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
jle 0x18074
jmp 0x18413
movq -0xc8(%rbp), %rax
movswq 0xc(%rax), %rcx
leaq 0x425809(%rip), %rax    # 0x43d890
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %eax
cmpl -0x94(%rbp), %eax
jne 0x180fa
movq -0xc8(%rbp), %rax
movswq 0xc(%rax), %rcx
leaq 0x4257e4(%rip), %rax    # 0x43d890
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
cmpl -0x98(%rbp), %eax
jne 0x180f8
movq -0xc8(%rbp), %rax
movswl 0xe(%rax), %eax
movq -0xc8(%rbp), %rcx
movswq 0xa(%rcx), %rdx
leaq 0x39a7a4(%rip), %rcx    # 0x3b2880
shlq $0x5, %rdx
addq %rdx, %rcx
movswl 0xe(%rcx), %ecx
orl %ecx, %eax
andl $0x30, %eax
cmpl $0x0, %eax
jne 0x180f6
jmp 0x18413
jmp 0x180f8
jmp 0x180fa
movb $-0x18, -0xb9(%rbp)
leaq 0x1156d6(%rip), %rax    # 0x12d7de
movswq (%rax), %rcx
leaq 0x11676d(%rip), %rax    # 0x12e880
movsbl (%rax,%rcx), %eax
cmpl $0x2, %eax
jne 0x1827f
movslq -0x2c(%rbp), %rcx
leaq 0x425765(%rip), %rax    # 0x43d890
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movslq -0x2c(%rbp), %rdx
leaq 0x425750(%rip), %rcx    # 0x43d890
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
cmpl 0x4(%rcx), %eax
je 0x181fe
movq -0xc8(%rbp), %rax
movswq 0xc(%rax), %rcx
leaq 0x42572d(%rip), %rax    # 0x43d890
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movq -0xc8(%rbp), %rcx
movswq 0xc(%rcx), %rdx
leaq 0x425710(%rip), %rcx    # 0x43d890
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
cmpl 0x4(%rcx), %eax
je 0x181fc
movq -0xc8(%rbp), %rax
movswl 0xe(%rax), %eax
movq -0xc8(%rbp), %rcx
movswq 0xa(%rcx), %rdx
leaq 0x39a6d6(%rip), %rcx    # 0x3b2880
shlq $0x5, %rdx
addq %rdx, %rcx
movswl 0xe(%rcx), %ecx
orl %ecx, %eax
andl $0x30, %eax
cmpl $0x0, %eax
jne 0x181fa
movslq -0x2c(%rbp), %rcx
leaq 0x4256c6(%rip), %rax    # 0x43d890
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movq -0xc8(%rbp), %rcx
movswq 0xc(%rcx), %rdx
leaq 0x4256a9(%rip), %rcx    # 0x43d890
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
cmpl 0x8(%rcx), %eax
jne 0x181f8
jmp 0x18413
jmp 0x181fa
jmp 0x181fc
jmp 0x181fe
movslq -0x2c(%rbp), %rcx
leaq 0x425687(%rip), %rax    # 0x43d890
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movswl 0x18(%rax), %eax
movq -0xc8(%rbp), %rcx
movswq 0xc(%rcx), %rdx
leaq 0x425669(%rip), %rcx    # 0x43d890
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movswl 0x18(%rcx), %ecx
cmpl %ecx, %eax
je 0x1823b
jmp 0x18413
movslq -0x2c(%rbp), %rcx
leaq 0x42564a(%rip), %rax    # 0x43d890
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movsbl 0x1c(%rax), %eax
movq -0xc8(%rbp), %rcx
movswq 0xc(%rcx), %rdx
leaq 0x42562c(%rip), %rcx    # 0x43d890
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movsbl 0x1c(%rcx), %ecx
cmpl %ecx, %eax
je 0x18278
jmp 0x18413
movb $-0x18, -0xb9(%rbp)
movq -0xc8(%rbp), %rax
movl (%rax), %eax
subl -0x1c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0xc8(%rbp), %rax
movl 0x4(%rax), %eax
subl -0x20(%rbp), %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %edi
movl -0xac(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0xe8(%rbp)
movl -0x60(%rbp), %edi
movl -0xb0(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0xe8(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x3c(%rbp)
movl -0x60(%rbp), %edi
movl -0xb4(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0xe4(%rbp)
movl -0x5c(%rbp), %edi
movl -0xb8(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0xe4(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x40(%rbp)
movq -0xc8(%rbp), %rax
movswq 0x8(%rax), %rcx
leaq 0x39a55d(%rip), %rax    # 0x3b2880
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, -0xd0(%rbp)
movq -0xd0(%rbp), %rax
movl (%rax), %eax
subl -0x1c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0xd0(%rbp), %rax
movl 0x4(%rax), %eax
subl -0x20(%rbp), %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %edi
movl -0xac(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0xe0(%rbp)
movl -0x60(%rbp), %edi
movl -0xb0(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0xe0(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x44(%rbp)
movl -0x60(%rbp), %edi
movl -0xb4(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0xdc(%rbp)
movl -0x5c(%rbp), %edi
movl -0xb8(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0xdc(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x48(%rbp)
movl -0x3c(%rbp), %edi
leaq 0x5e7c50(%rip), %rax    # 0x60001c
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %edi
movl -0x40(%rbp), %esi
leaq 0x5e7c43(%rip), %rax    # 0x600020
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %esi
movl -0x44(%rbp), %edx
leaq 0x5e7c2e(%rip), %rax    # 0x60001c
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %edx
movl -0x48(%rbp), %ecx
leaq 0x5e7c21(%rip), %rax    # 0x600020
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %ecx
movzbl -0xb9(%rbp), %r8d
callq 0x73f00
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
movq -0xc8(%rbp), %rax
addq $0x20, %rax
movq %rax, -0xc8(%rbp)
jmp 0x17fe6
jmp 0x18435
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x17f25
leaq 0x115394(%rip), %rax    # 0x12d7de
movswq (%rax), %rcx
leaq 0x1162bb(%rip), %rax    # 0x12e710
movswl (%rax,%rcx,2), %eax
movl %eax, -0x34(%rbp)
movl -0x34(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl -0x34(%rbp), %eax
sarl $0x3, %eax
movslq %eax, %rcx
leaq 0x58ce97(%rip), %rax    # 0x5a5310
movzbl (%rax,%rcx), %eax
orl %edx, %eax
movb %al, %dl
leaq 0x58ce88(%rip), %rax    # 0x5a5310
movb %dl, (%rax,%rcx)
movl $0x0, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
leaq 0x5b18f4(%rip), %rcx    # 0x5c9d90
movswl (%rcx), %ecx
cmpl %ecx, %eax
jge 0x193ef
movslq -0x2c(%rbp), %rcx
leaq 0x58de8e(%rip), %rax    # 0x5a6340
movswl (%rax,%rcx,2), %eax
movl %eax, -0x30(%rbp)
cmpl $0x0, -0x30(%rbp)
jl 0x193df
movl -0x30(%rbp), %eax
sarl $0x3, %eax
movslq %eax, %rcx
leaq 0x58ce3d(%rip), %rax    # 0x5a5310
movzbl (%rax,%rcx), %eax
movl -0x30(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
jle 0x193c6
movslq -0x30(%rbp), %rcx
leaq 0x45e5e4(%rip), %rax    # 0x476ae0
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0xd8(%rbp)
movb $0x38, -0xb9(%rbp)
movq -0xd8(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jle 0x1852b
movb $-0x8, -0xb9(%rbp)
movl -0x30(%rbp), %eax
cmpl -0x34(%rbp), %eax
jne 0x1853a
movb $0x1f, -0xb9(%rbp)
movq -0xd8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x84(%rbp)
movq -0xd8(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x88(%rbp)
movq -0xd8(%rbp), %rax
movswl 0x1a(%rax), %eax
movl %eax, -0x34(%rbp)
cmpl $0x1, -0x34(%rbp)
jl 0x18635
cmpl $0x8, -0x34(%rbp)
jg 0x18635
cmpl $0x2, -0x34(%rbp)
je 0x18635
movslq -0x30(%rbp), %rcx
leaq 0x11d690(%rip), %rax    # 0x135c20
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %eax
movl %eax, -0xf0(%rbp)
movl -0x84(%rbp), %edi
movslq -0x30(%rbp), %rcx
leaq 0x11d670(%rip), %rax    # 0x135c20
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
subl (%rax), %edi
leaq 0x116380(%rip), %rax    # 0x12e940
movl (%rax), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0xf0(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x84(%rbp)
movslq -0x30(%rbp), %rcx
leaq 0x11d639(%rip), %rax    # 0x135c20
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %eax
movl %eax, -0xec(%rbp)
movl -0x88(%rbp), %edi
movslq -0x30(%rbp), %rcx
leaq 0x11d618(%rip), %rax    # 0x135c20
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
subl 0x4(%rax), %edi
leaq 0x116327(%rip), %rax    # 0x12e940
movl (%rax), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0xec(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x88(%rbp)
movq -0xd8(%rbp), %rax
movzwl 0xc(%rax), %eax
andl $0x30, %eax
movl %eax, -0xf4(%rbp)
je 0x18672
jmp 0x1864d
movl -0xf4(%rbp), %eax
subl $0x10, %eax
je 0x18af1
jmp 0x1865e
movl -0xf4(%rbp), %eax
subl $0x20, %eax
je 0x18db4
jmp 0x193c4
movl -0x84(%rbp), %eax
subl -0x1c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x88(%rbp), %eax
subl -0x20(%rbp), %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %edi
movl -0xac(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0xfc(%rbp)
movl -0x60(%rbp), %edi
movl -0xb0(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0xfc(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x3c(%rbp)
movl -0x60(%rbp), %edi
movl -0xb4(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0xf8(%rbp)
movl -0x5c(%rbp), %edi
movl -0xb8(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0xf8(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x40(%rbp)
leaq 0x1150db(%rip), %rax    # 0x12d7de
movswq (%rax), %rcx
leaq 0x116172(%rip), %rax    # 0x12e880
movsbl (%rax,%rcx), %eax
cmpl $0x1, %eax
jne 0x18959
movq -0xd8(%rbp), %rax
movswl 0x1c(%rax), %eax
addl $0x200, %eax            # imm = 0x200
andl $0x7ff, %eax            # imm = 0x7FF
movslq %eax, %rcx
leaq 0x5b0446(%rip), %rax    # 0x5c8b80
movswl (%rax,%rcx,2), %eax
sarl $0x7, %eax
movl %eax, -0x5c(%rbp)
movq -0xd8(%rbp), %rax
movswl 0x1c(%rax), %eax
andl $0x7ff, %eax            # imm = 0x7FF
movslq %eax, %rcx
leaq 0x5b0422(%rip), %rax    # 0x5c8b80
movswl (%rax,%rcx,2), %eax
sarl $0x7, %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %edi
movl -0xac(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0x104(%rbp)
movl -0x60(%rbp), %edi
movl -0xb0(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x104(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x44(%rbp)
movl -0x60(%rbp), %edi
movl -0xac(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0x100(%rbp)
movl -0x5c(%rbp), %edi
movl -0xb0(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x100(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x48(%rbp)
movl -0x30(%rbp), %eax
leaq 0x114ffa(%rip), %rcx    # 0x12d7de
movswq (%rcx), %rdx
leaq 0x115f21(%rip), %rcx    # 0x12e710
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jne 0x1880b
movl $0x0, -0x44(%rbp)
movl -0x24(%rbp), %ecx
shll $0x5, %ecx
xorl %eax, %eax
subl %ecx, %eax
movl %eax, -0x48(%rbp)
movl -0x44(%rbp), %edi
leaq 0x5e7803(%rip), %rax    # 0x600018
movl (%rax), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0x4c(%rbp)
movl -0x48(%rbp), %edi
leaq 0x5e77ea(%rip), %rax    # 0x600018
movl (%rax), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0x50(%rbp)
movl -0x3c(%rbp), %edi
subl -0x44(%rbp), %edi
leaq 0x5e77d2(%rip), %rax    # 0x60001c
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %edi
movl -0x40(%rbp), %esi
subl -0x50(%rbp), %esi
leaq 0x5e77c2(%rip), %rax    # 0x600020
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %esi
movl -0x3c(%rbp), %edx
addl -0x44(%rbp), %edx
leaq 0x5e77aa(%rip), %rax    # 0x60001c
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %edx
movl -0x40(%rbp), %ecx
addl -0x50(%rbp), %ecx
leaq 0x5e779a(%rip), %rax    # 0x600020
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %ecx
movzbl -0xb9(%rbp), %r8d
callq 0x73f00
movl -0x3c(%rbp), %edi
subl -0x48(%rbp), %edi
leaq 0x5e7775(%rip), %rax    # 0x60001c
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %edi
movl -0x40(%rbp), %esi
addl -0x4c(%rbp), %esi
leaq 0x5e7765(%rip), %rax    # 0x600020
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %esi
movl -0x3c(%rbp), %edx
addl -0x44(%rbp), %edx
leaq 0x5e774d(%rip), %rax    # 0x60001c
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %edx
movl -0x40(%rbp), %ecx
addl -0x50(%rbp), %ecx
leaq 0x5e773d(%rip), %rax    # 0x600020
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %ecx
movzbl -0xb9(%rbp), %r8d
callq 0x73f00
movl -0x3c(%rbp), %edi
addl -0x48(%rbp), %edi
leaq 0x5e7718(%rip), %rax    # 0x60001c
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %edi
movl -0x40(%rbp), %esi
subl -0x4c(%rbp), %esi
leaq 0x5e7708(%rip), %rax    # 0x600020
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %esi
movl -0x3c(%rbp), %edx
addl -0x44(%rbp), %edx
leaq 0x5e76f0(%rip), %rax    # 0x60001c
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %edx
movl -0x40(%rbp), %ecx
addl -0x50(%rbp), %ecx
leaq 0x5e76e0(%rip), %rax    # 0x600020
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %ecx
movzbl -0xb9(%rbp), %r8d
callq 0x73f00
jmp 0x18aec
movl -0x2c(%rbp), %eax
sarl $0x3, %eax
movslq %eax, %rcx
leaq 0x5b1227(%rip), %rax    # 0x5c9b90
movzbl (%rax,%rcx), %eax
movl -0x2c(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
jle 0x18aea
cmpl $0xc0, -0x24(%rbp)
jle 0x18aea
movq -0xd8(%rbp), %rax
movswl 0x1c(%rax), %eax
movswl -0x26(%rbp), %ecx
subl %ecx, %eax
andl $0x7ff, %eax            # imm = 0x7FF
movl %eax, -0xa8(%rbp)
movl -0x30(%rbp), %eax
leaq 0x114e24(%rip), %rcx    # 0x12d7de
movswq (%rcx), %rdx
leaq 0x115d4b(%rip), %rcx    # 0x12e710
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jne 0x189ed
movl $0x0, -0x3c(%rbp)
leaq 0x5e763d(%rip), %rax    # 0x600018
movl (%rax), %eax
shll $0x2, %eax
movl %eax, -0x40(%rbp)
movl $0x0, -0xa8(%rbp)
movl -0x3c(%rbp), %eax
shll $0x4, %eax
leaq 0x5e7622(%rip), %rcx    # 0x60001c
movl (%rcx), %ecx
shll $0xf, %ecx
addl %ecx, %eax
movl %eax, -0x10c(%rbp)
movl -0x40(%rbp), %eax
shll $0x4, %eax
leaq 0x5e760c(%rip), %rcx    # 0x600020
movl (%rcx), %ecx
shll $0xf, %ecx
addl %ecx, %eax
movl %eax, -0x108(%rbp)
movl -0x24(%rbp), %edi
movq -0xd8(%rbp), %rax
movzbl 0x15(%rax), %eax
imull %eax, %edi
leaq 0x5e75df(%rip), %rax    # 0x600018
movl (%rax), %esi
movl $0x10, %edx
callq 0x196f0
movl -0x10c(%rbp), %edi
movl -0x108(%rbp), %esi
movl %eax, %edx
movl -0xa8(%rbp), %eax
movw %ax, %cx
movq -0xd8(%rbp), %rax
movw 0xe(%rax), %r8w
movq -0xd8(%rbp), %rax
movb 0x10(%rax), %r9b
movq -0xd8(%rbp), %rax
movb 0x11(%rax), %r15b
movq -0xd8(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x2, %eax
sarl %eax
movb %al, %r14b
leaq 0x5b2988(%rip), %rax    # 0x5cb420
movl (%rax), %ebx
leaq 0x5b400f(%rip), %rax    # 0x5ccab0
movl (%rax), %r11d
leaq 0x5e7565(%rip), %rax    # 0x600010
movl (%rax), %r10d
leaq 0x5e755f(%rip), %rax    # 0x600014
movl (%rax), %eax
movswl %cx, %ecx
movswl %r8w, %r8d
movsbl %r9b, %r9d
movzbl %r15b, %r15d
movl %r15d, (%rsp)
movzbl %r14b, %r14d
movl %r14d, 0x8(%rsp)
movl %ebx, 0x10(%rsp)
movl %r11d, 0x18(%rsp)
movl %r10d, 0x20(%rsp)
movl %eax, 0x28(%rsp)
callq 0x718a0
jmp 0x18aec
jmp 0x193c4
movl -0x84(%rbp), %eax
movl %eax, -0x3c(%rbp)
movl -0x88(%rbp), %eax
movl %eax, -0x40(%rbp)
movq -0xd8(%rbp), %rax
movswl 0xe(%rax), %eax
movl %eax, -0xa4(%rbp)
movslq -0xa4(%rbp), %rcx
leaq 0x41bd6e(%rip), %rax    # 0x434890
movl (%rax,%rcx,4), %eax
sarl $0x8, %eax
andl $0xff, %eax
movsbl %al, %eax
movq -0xd8(%rbp), %rcx
movsbl 0x16(%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x64(%rbp)
movq -0xd8(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
jle 0x18b5b
xorl %eax, %eax
subl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
movq -0xd8(%rbp), %rax
movswl 0x1c(%rax), %eax
movl %eax, -0x34(%rbp)
movq -0xd8(%rbp), %rax
movzbl 0x14(%rax), %eax
movl %eax, -0x38(%rbp)
movl -0x34(%rbp), %eax
andl $0x7ff, %eax            # imm = 0x7FF
movslq %eax, %rcx
leaq 0x5afff7(%rip), %rax    # 0x5c8b80
movswl (%rax,%rcx,2), %eax
imull -0x38(%rbp), %eax
movl %eax, -0x6c(%rbp)
movl -0x34(%rbp), %eax
addl $0x600, %eax            # imm = 0x600
andl $0x7ff, %eax            # imm = 0x7FF
movslq %eax, %rcx
leaq 0x5affd5(%rip), %rax    # 0x5c8b80
movswl (%rax,%rcx,2), %eax
imull -0x38(%rbp), %eax
movl %eax, -0x70(%rbp)
movslq -0xa4(%rbp), %rcx
leaq 0x5ef48c(%rip), %rax    # 0x608050
movswl (%rax,%rcx,2), %eax
movl %eax, -0x38(%rbp)
movl -0x38(%rbp), %eax
sarl %eax
addl -0x64(%rbp), %eax
movl %eax, -0x34(%rbp)
movl -0x6c(%rbp), %edi
movl -0x34(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x3c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
movl %eax, -0x124(%rbp)
movl -0x6c(%rbp), %edi
movl -0x38(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x124(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x44(%rbp)
movl -0x70(%rbp), %edi
movl -0x34(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x40(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %eax
movl %eax, -0x120(%rbp)
movl -0x70(%rbp), %edi
movl -0x38(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x120(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x48(%rbp)
movl -0x3c(%rbp), %eax
subl -0x1c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x40(%rbp), %eax
subl -0x20(%rbp), %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %edi
movl -0xac(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0x11c(%rbp)
movl -0x60(%rbp), %edi
movl -0xb0(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x11c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x3c(%rbp)
movl -0x60(%rbp), %edi
movl -0xb4(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0x118(%rbp)
movl -0x5c(%rbp), %edi
movl -0xb8(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x118(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x40(%rbp)
movl -0x44(%rbp), %eax
subl -0x1c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x48(%rbp), %eax
subl -0x20(%rbp), %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %edi
movl -0xac(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0x114(%rbp)
movl -0x60(%rbp), %edi
movl -0xb0(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x114(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x44(%rbp)
movl -0x60(%rbp), %edi
movl -0xb4(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0x110(%rbp)
movl -0x5c(%rbp), %edi
movl -0xb8(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x110(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x48(%rbp)
movl -0x3c(%rbp), %edi
leaq 0x5e72b4(%rip), %rax    # 0x60001c
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %edi
movl -0x40(%rbp), %esi
leaq 0x5e72a7(%rip), %rax    # 0x600020
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %esi
movl -0x44(%rbp), %edx
leaq 0x5e7292(%rip), %rax    # 0x60001c
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %edx
movl -0x48(%rbp), %ecx
leaq 0x5e7285(%rip), %rax    # 0x600020
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %ecx
movzbl -0xb9(%rbp), %r8d
callq 0x73f00
jmp 0x193c4
leaq 0x114a23(%rip), %rax    # 0x12d7de
movswq (%rax), %rcx
leaq 0x115aba(%rip), %rax    # 0x12e880
movsbl (%rax,%rcx), %eax
cmpl $0x1, %eax
jne 0x193c2
movq -0xd8(%rbp), %rax
movswl 0xe(%rax), %eax
movl %eax, -0xa4(%rbp)
movslq -0xa4(%rbp), %rcx
leaq 0x41ba9e(%rip), %rax    # 0x434890
movl (%rax,%rcx,4), %eax
sarl $0x8, %eax
andl $0xff, %eax
movsbl %al, %eax
movq -0xd8(%rbp), %rcx
movsbl 0x16(%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x64(%rbp)
movslq -0xa4(%rbp), %rcx
leaq 0x41ba72(%rip), %rax    # 0x434890
movl (%rax,%rcx,4), %eax
sarl $0x10, %eax
andl $0xff, %eax
movsbl %al, %eax
movq -0xd8(%rbp), %rcx
movsbl 0x17(%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x68(%rbp)
movq -0xd8(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
jle 0x18e57
xorl %eax, %eax
subl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
movq -0xd8(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
jle 0x18e72
xorl %eax, %eax
subl -0x68(%rbp), %eax
movl %eax, -0x68(%rbp)
movq -0xd8(%rbp), %rax
movswl 0x1c(%rax), %eax
movl %eax, -0x34(%rbp)
movl -0x34(%rbp), %eax
addl $0x200, %eax            # imm = 0x200
andl $0x7ff, %eax            # imm = 0x7FF
movslq %eax, %rcx
leaq 0x5afce9(%rip), %rax    # 0x5c8b80
movswl (%rax,%rcx,2), %eax
movl %eax, -0x74(%rbp)
movslq -0x34(%rbp), %rcx
leaq 0x5afcd7(%rip), %rax    # 0x5c8b80
movswl (%rax,%rcx,2), %eax
movl %eax, -0x78(%rbp)
movslq -0xa4(%rbp), %rcx
leaq 0x5ef192(%rip), %rax    # 0x608050
movswl (%rax,%rcx,2), %eax
movl %eax, -0x7c(%rbp)
movq -0xd8(%rbp), %rax
movzbl 0x14(%rax), %eax
movl %eax, -0x8c(%rbp)
movslq -0xa4(%rbp), %rcx
leaq 0x5e092c(%rip), %rax    # 0x5f9810
movswl (%rax,%rcx,2), %eax
movl %eax, -0x80(%rbp)
movq -0xd8(%rbp), %rax
movzbl 0x15(%rax), %eax
movl %eax, -0x90(%rbp)
movl -0x7c(%rbp), %eax
sarl %eax
addl -0x64(%rbp), %eax
imull -0x8c(%rbp), %eax
movl %eax, -0x6c(%rbp)
movl -0x80(%rbp), %eax
sarl %eax
addl -0x68(%rbp), %eax
imull -0x90(%rbp), %eax
movl %eax, -0x70(%rbp)
movl -0x84(%rbp), %eax
movl %eax, -0x15c(%rbp)
movl -0x78(%rbp), %edi
movl -0x6c(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x15c(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x158(%rbp)
movl -0x74(%rbp), %edi
movl -0x70(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x158(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x3c(%rbp)
movl -0x88(%rbp), %eax
movl %eax, -0x154(%rbp)
movl -0x78(%rbp), %edi
movl -0x70(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x154(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x150(%rbp)
movl -0x74(%rbp), %edi
movl -0x6c(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x150(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x40(%rbp)
movl -0x7c(%rbp), %eax
imull -0x8c(%rbp), %eax
movl %eax, -0x38(%rbp)
movl -0x3c(%rbp), %eax
movl %eax, -0x14c(%rbp)
movl -0x78(%rbp), %edi
movl -0x38(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x14c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x44(%rbp)
movl -0x40(%rbp), %eax
movl %eax, -0x148(%rbp)
movl -0x74(%rbp), %edi
movl -0x38(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x148(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x48(%rbp)
movl -0x80(%rbp), %eax
imull -0x90(%rbp), %eax
movl %eax, -0x38(%rbp)
movl -0x74(%rbp), %edi
movl -0x38(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
xorl %eax, %eax
subl %ecx, %eax
movl %eax, -0x34(%rbp)
movl -0x44(%rbp), %eax
addl -0x34(%rbp), %eax
movl %eax, -0x4c(%rbp)
movl -0x3c(%rbp), %eax
addl -0x34(%rbp), %eax
movl %eax, -0x54(%rbp)
movl -0x78(%rbp), %edi
movl -0x38(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
xorl %eax, %eax
subl %ecx, %eax
movl %eax, -0x34(%rbp)
movl -0x48(%rbp), %eax
addl -0x34(%rbp), %eax
movl %eax, -0x50(%rbp)
movl -0x40(%rbp), %eax
addl -0x34(%rbp), %eax
movl %eax, -0x58(%rbp)
movl -0x3c(%rbp), %eax
subl -0x1c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x40(%rbp), %eax
subl -0x20(%rbp), %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %edi
movl -0xac(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0x144(%rbp)
movl -0x60(%rbp), %edi
movl -0xb0(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x144(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x3c(%rbp)
movl -0x60(%rbp), %edi
movl -0xb4(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0x140(%rbp)
movl -0x5c(%rbp), %edi
movl -0xb8(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x140(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x40(%rbp)
movl -0x44(%rbp), %eax
subl -0x1c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x48(%rbp), %eax
subl -0x20(%rbp), %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %edi
movl -0xac(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0x13c(%rbp)
movl -0x60(%rbp), %edi
movl -0xb0(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x13c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x44(%rbp)
movl -0x60(%rbp), %edi
movl -0xb4(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0x138(%rbp)
movl -0x5c(%rbp), %edi
movl -0xb8(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x138(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x48(%rbp)
movl -0x4c(%rbp), %eax
subl -0x1c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x50(%rbp), %eax
subl -0x20(%rbp), %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %edi
movl -0xac(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0x134(%rbp)
movl -0x60(%rbp), %edi
movl -0xb0(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x134(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x4c(%rbp)
movl -0x60(%rbp), %edi
movl -0xb4(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0x130(%rbp)
movl -0x5c(%rbp), %edi
movl -0xb8(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x130(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x50(%rbp)
movl -0x54(%rbp), %eax
subl -0x1c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %eax
subl -0x20(%rbp), %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %edi
movl -0xac(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0x12c(%rbp)
movl -0x60(%rbp), %edi
movl -0xb0(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x12c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x54(%rbp)
movl -0x60(%rbp), %edi
movl -0xb4(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0x128(%rbp)
movl -0x5c(%rbp), %edi
movl -0xb8(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x128(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x58(%rbp)
movl -0x3c(%rbp), %edi
leaq 0x5e6d94(%rip), %rax    # 0x60001c
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %edi
movl -0x40(%rbp), %esi
leaq 0x5e6d87(%rip), %rax    # 0x600020
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %esi
movl -0x44(%rbp), %edx
leaq 0x5e6d72(%rip), %rax    # 0x60001c
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %edx
movl -0x48(%rbp), %ecx
leaq 0x5e6d65(%rip), %rax    # 0x600020
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %ecx
movzbl -0xb9(%rbp), %r8d
callq 0x73f00
movl -0x44(%rbp), %edi
leaq 0x5e6d43(%rip), %rax    # 0x60001c
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %edi
movl -0x48(%rbp), %esi
leaq 0x5e6d36(%rip), %rax    # 0x600020
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %esi
movl -0x4c(%rbp), %edx
leaq 0x5e6d21(%rip), %rax    # 0x60001c
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %edx
movl -0x50(%rbp), %ecx
leaq 0x5e6d14(%rip), %rax    # 0x600020
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %ecx
movzbl -0xb9(%rbp), %r8d
callq 0x73f00
movl -0x4c(%rbp), %edi
leaq 0x5e6cf2(%rip), %rax    # 0x60001c
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %edi
movl -0x50(%rbp), %esi
leaq 0x5e6ce5(%rip), %rax    # 0x600020
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %esi
movl -0x54(%rbp), %edx
leaq 0x5e6cd0(%rip), %rax    # 0x60001c
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %edx
movl -0x58(%rbp), %ecx
leaq 0x5e6cc3(%rip), %rax    # 0x600020
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %ecx
movzbl -0xb9(%rbp), %r8d
callq 0x73f00
movl -0x54(%rbp), %edi
leaq 0x5e6ca1(%rip), %rax    # 0x60001c
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %edi
movl -0x58(%rbp), %esi
leaq 0x5e6c94(%rip), %rax    # 0x600020
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %esi
movl -0x3c(%rbp), %edx
leaq 0x5e6c7f(%rip), %rax    # 0x60001c
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %edx
movl -0x40(%rbp), %ecx
leaq 0x5e6c72(%rip), %rax    # 0x600020
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %ecx
movzbl -0xb9(%rbp), %r8d
callq 0x73f00
jmp 0x193c4
jmp 0x193c6
jmp 0x193c8
movslq -0x30(%rbp), %rcx
leaq 0x596f7d(%rip), %rax    # 0x5b0350
movswl (%rax,%rcx,2), %eax
movl %eax, -0x30(%rbp)
jmp 0x184b9
jmp 0x193e1
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x18492
movl $0x0, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
leaq 0x5b0990(%rip), %rcx    # 0x5c9d90
movswl (%rcx), %ecx
cmpl %ecx, %eax
jge 0x196d8
movslq -0x2c(%rbp), %rcx
leaq 0x42447a(%rip), %rax    # 0x43d890
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movswl (%rax), %eax
movl %eax, -0x9c(%rbp)
movslq -0x2c(%rbp), %rcx
leaq 0x42445f(%rip), %rax    # 0x43d890
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movswl (%rax), %eax
movslq -0x2c(%rbp), %rdx
leaq 0x42444a(%rip), %rcx    # 0x43d890
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movswl 0x2(%rcx), %ecx
addl %ecx, %eax
subl $0x1, %eax
movl %eax, -0xa0(%rbp)
movl -0x9c(%rbp), %eax
movl %eax, -0x30(%rbp)
movslq -0x9c(%rbp), %rcx
leaq 0x39940d(%rip), %rax    # 0x3b2880
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, -0xc8(%rbp)
movl -0x30(%rbp), %eax
cmpl -0xa0(%rbp), %eax
jg 0x196c8
movq -0xc8(%rbp), %rax
movswl 0xa(%rax), %eax
cmpl $0x0, %eax
jl 0x194a5
jmp 0x196a8
movl -0x30(%rbp), %eax
sarl $0x3, %eax
movslq %eax, %rcx
leaq 0x58c65b(%rip), %rax    # 0x5a5b10
movzbl (%rax,%rcx), %eax
movl -0x30(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
jne 0x194d4
jmp 0x196a8
movq -0xc8(%rbp), %rax
movswq 0x10(%rax), %rcx
leaq 0x5eeb69(%rip), %rax    # 0x608050
movswl (%rax,%rcx,2), %eax
cmpl $0x0, %eax
jne 0x194f5
jmp 0x196a8
movq -0xc8(%rbp), %rax
movswq 0x10(%rax), %rcx
leaq 0x5e0308(%rip), %rax    # 0x5f9810
movswl (%rax,%rcx,2), %eax
cmpl $0x0, %eax
jne 0x19516
jmp 0x196a8
movq -0xc8(%rbp), %rax
movl (%rax), %eax
subl -0x1c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0xc8(%rbp), %rax
movl 0x4(%rax), %eax
subl -0x20(%rbp), %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %edi
movl -0xac(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0x16c(%rbp)
movl -0x60(%rbp), %edi
movl -0xb0(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x16c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x3c(%rbp)
movl -0x60(%rbp), %edi
movl -0xb4(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0x168(%rbp)
movl -0x5c(%rbp), %edi
movl -0xb8(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x168(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x40(%rbp)
movq -0xc8(%rbp), %rax
movswq 0x8(%rax), %rcx
leaq 0x3992c6(%rip), %rax    # 0x3b2880
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, -0xd0(%rbp)
movq -0xd0(%rbp), %rax
movl (%rax), %eax
subl -0x1c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0xd0(%rbp), %rax
movl 0x4(%rax), %eax
subl -0x20(%rbp), %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %edi
movl -0xac(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0x164(%rbp)
movl -0x60(%rbp), %edi
movl -0xb0(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x164(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x44(%rbp)
movl -0x60(%rbp), %edi
movl -0xb4(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, -0x160(%rbp)
movl -0x5c(%rbp), %edi
movl -0xb8(%rbp), %esi
movl $0x10, %edx
callq 0x196f0
movl %eax, %ecx
movl -0x160(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x48(%rbp)
movl -0x3c(%rbp), %edi
leaq 0x5e69b9(%rip), %rax    # 0x60001c
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %edi
movl -0x40(%rbp), %esi
leaq 0x5e69ac(%rip), %rax    # 0x600020
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %esi
movl -0x44(%rbp), %edx
leaq 0x5e6997(%rip), %rax    # 0x60001c
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %edx
movl -0x48(%rbp), %ecx
leaq 0x5e698a(%rip), %rax    # 0x600020
movl (%rax), %eax
shll $0xb, %eax
addl %eax, %ecx
movl $0xef, %r8d
callq 0x73f00
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
movq -0xc8(%rbp), %rax
addq $0x20, %rax
movq %rax, -0xc8(%rbp)
jmp 0x19481
jmp 0x196ca
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x193f6
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
nopw %cs:(%rax,%rax)