// File: /workspace/github_c_makefile_star2_O0/jonof[P]jftekwar/src/tekgun.c
// Function: gunstatuslistcode
void
gunstatuslistcode(void)
{
     short     hitobject,hitsprite,ext;
     int      i,nexti,dax,day,daz,j;
     int       pnum,rv;

     i=headspritestat[FORCEPROJECTILESTAT];   //moving force ball
     while (i >= 0) {
          nexti=nextspritestat[i];
          dax=((((int)sprptr[i]->xvel)*TICSPERFRAME)<<11);
          day=((((int)sprptr[i]->yvel)*TICSPERFRAME)<<11);
          daz=((((int)sprptr[i]->zvel)*TICSPERFRAME)<<3);
          hitobject=movesprite((short)i,dax,day,daz,4<<8,4<<8,1);
          if( (hitobject&0xC000) == 49152 ) {  // hit a sprite
               hitsprite=hitobject&0x0FFF;
               ext=sprptr[hitsprite]->extra;
               if( validext(ext) ) {
                    switch( sprXTptr[ext]->walkpic ) {
                    case RUBWALKPIC:
                    case FRGWALKPIC:
                    case COP1WALKPIC:
                    case ANTWALKPIC:
                    case SARAHWALKPIC:
                    case MAWALKPIC:
                    case DIWALKPIC:
                    case ERWALKPIC:
                    case SAMWALKPIC:
                    case SUNGWALKPIC:
                    case COWWALKPIC:
                    case COPBWALKPIC:
                    case NIKAWALKPIC:
                    case REBRWALKPIC:
                    case TRENWALKPIC:
                    case WINGWALKPIC:
                    case HALTWALKPIC:
                    case REDHWALKPIC:
                    case ORANWALKPIC:
                    case BLKSWALKPIC:
                    case SFROWALKPIC:
                    case SSALWALKPIC:
                    case SGOLWALKPIC:
                    case SWATWALKPIC:
                         attachvirus(hitsprite, FORCEBALLPIC);
                         break;
                    default:
                         forceexplosion(i);
                         break;
                    }
                    jsdeletesprite(( short)i);
               }
               else {
                    forceexplosion(i);
                    jsdeletesprite((short)i);
               }
          }
          else if( hitobject != 0 ) {
               forceexplosion(i);
               jsdeletesprite((short)i);
          }

          i=nexti;
     }

     i=headspritestat[ROCKETPROJECTILESTAT];
     while (i >= 0) {
          nexti=nextspritestat[i];

          dax=((((int)sprptr[i]->xvel)*TICSPERFRAME)<<10);
          day=((((int)sprptr[i]->yvel)*TICSPERFRAME)<<10);
          daz=((((int)sprptr[i]->zvel)*TICSPERFRAME)<<3);

          hitobject=movesprite((short)i,dax,day,daz,4<<8,4<<8,1);
          if( (hitobject&0xC000) == 49152 ) {  // hit a sprite
               hitsprite=hitobject&0x0FFF;
               if( playerhit(hitsprite, &pnum) ) {
                    playerpainsound(pnum);
                    playerwoundplayer(pnum,sprptr[i]->owner,7);
               }
               else if( sprptr[i]->picnum != sprptr[hitsprite]->picnum ) {
                    if( isahologram(hitsprite) ) {
                         showmessage("WAS A HOLOGRAM");
                         killscore(hitsprite, sprptr[i]->owner, 3);
                         changespritestat(hitsprite, VANISH);
                         //jsdeletesprite(hitsprite);
                    }
                    else if( isanandroid(hitsprite) ) {
                         showmessage("WAS AN ANDROID");
                         killscore(hitsprite, sprptr[i]->owner, 3);
                         androidexplosion(hitsprite);
                         changespritestat(hitsprite, VANISH);
                         //jsdeletesprite(hitsprite);
                    }
                    else {
                         blastmark(hitsprite);
                         rv=damagesprite(hitsprite, 500);
                         if( rv == 1 ) {
                              killscore(hitsprite,sprptr[i]->owner,3);
                         }
                    }
               }
          }
          if( hitobject != 0 ) {
               bombexplosion(i);
               jsdeletesprite((short)i);
          }

          i=nexti;
     }

     i=headspritestat[MATRIXPROJECTILESTAT];
     while (i >= 0) {
          nexti=nextspritestat[i];

          dax=((((int)sprptr[i]->xvel)*TICSPERFRAME)<<12);
          day=((((int)sprptr[i]->yvel)*TICSPERFRAME)<<12);
          daz=((((int)sprptr[i]->zvel)*TICSPERFRAME)<<4);

          hitobject=movesprite((short)i,dax,day,daz,4<<8,4<<8,1);
          if( (hitobject&0xC000) == 49152 ) {  // hit a sprite
               hitsprite=hitobject&0x0FFF;
               if( !playerhit(hitsprite, &pnum) ) {
                    rv=damagesprite(hitsprite, 500);
                    if( rv == 1 ) {
                         killscore(hitsprite,sprptr[i]->owner,8);
                    }
               }
          }
          if( hitobject != 0 ) {
               jsdeletesprite((short)i);
          }

          i=nexti;
     }

     i=headspritestat[BOMBPROJECTILESTAT];
     while (i >= 0) {
          nexti=nextspritestat[i];

          dax=((((int)sprptr[i]->xvel)*TICSPERFRAME)<<12);
          day=((((int)sprptr[i]->yvel)*TICSPERFRAME)<<12);
          daz=((((int)sprptr[i]->zvel)*TICSPERFRAME)<<4);

          hitobject=movesprite((short)i,dax,day,daz,4<<8,4<<8,1);
          if( (hitobject&0xC000) == 49152 ) {  // hit a sprite
               hitsprite=hitobject&0x0FFF;
               if( playerhit(hitsprite, &pnum) ) {
                    playerpainsound(pnum);
                    playerwoundplayer(pnum,sprptr[i]->owner,3);
               }
               else if( sprptr[i]->picnum != sprptr[hitsprite]->picnum ) {
                    if( isahologram(hitsprite) ) {
                         showmessage("WAS A HOLOGRAM");
                         killscore(hitsprite, sprptr[i]->owner, 3);
                         changespritestat(hitsprite, VANISH);
                         //jsdeletesprite(hitsprite);
                    }
                    else if( isanandroid(hitsprite) ) {
                         showmessage("WAS AN ANDROID");
                         killscore(hitsprite, sprptr[i]->owner, 3);
                         androidexplosion(hitsprite);
                         changespritestat(hitsprite, VANISH);
                         //jsdeletesprite(hitsprite);
                    }
                    else {
                         blastmark(hitsprite);
                         rv=damagesprite(hitsprite, 500);
                         if( rv == 1 ) {
                              killscore(hitsprite,sprptr[i]->owner,3);
                         }
                    }
               }
          }
          if( hitobject != 0 ) {
               bombexplosion(i);
               jsdeletesprite((short)i);
          }

          i=nexti;
     }

     i=headspritestat[BOMBPROJECTILESTAT2];
     while (i >= 0) {
          nexti=nextspritestat[i];

          sprptr[i]->xvel+=( ((krand_intercept(" GUN1025")&64)-32)>>1 );
          sprptr[i]->yvel+=( ((krand_intercept(" GUN1026")&64)-32)>>1 );
          sprptr[i]->zvel+=( ((krand_intercept(" GUN1027")&31)-16)>>1 );

          dax=((((int)sprptr[i]->xvel)*TICSPERFRAME)<<12);
          day=((((int)sprptr[i]->yvel)*TICSPERFRAME)<<12);
          daz=((((int)sprptr[i]->zvel)*TICSPERFRAME)<<4);

          hitobject=movesprite((short)i,dax,day,daz,4<<8,4<<8,1);
          if( (hitobject&0xC000) == 49152 ) {  // hit a sprite
               hitsprite=hitobject&0x0FFF;
               if( playerhit(hitsprite, &pnum) ) {
                    playerpainsound(pnum);
                    playerwoundplayer(pnum,sprptr[i]->owner,3);
               }
               else if( sprptr[i]->picnum != sprptr[hitsprite]->picnum ) {
                    if( isahologram(hitsprite) ) {
                         showmessage("WAS A HOLOGRAM");
                         killscore(hitsprite, sprptr[i]->owner, 3);
                         changespritestat(hitsprite, VANISH);
                         //jsdeletesprite(hitsprite);
                    }
                    else if( isanandroid(hitsprite) ) {
                         showmessage("WAS AN ANDROID");
                         killscore(hitsprite, sprptr[i]->owner, 3);
                         androidexplosion(hitsprite);
                         changespritestat(hitsprite, VANISH);
                         //jsdeletesprite(hitsprite);
                    }
                    else {
                         blastmark(hitsprite);
                         rv=damagesprite(hitsprite, 500);
                         if( rv == 1 ) {
                              killscore(hitsprite,sprptr[i]->owner,3);
                         }
                    }
               }
          }
          if( hitobject != 0 ) {
               bombexplosion(i);
               jsdeletesprite((short)i);
          }

          i=nexti;
     }

     i=headspritestat[DARTPROJECTILESTAT];
     while (i >= 0) {
          nexti=nextspritestat[i];
          dax=((((int)sprptr[i]->xvel)*TICSPERFRAME)<<13);
          day=((((int)sprptr[i]->yvel)*TICSPERFRAME)<<13);
          daz=((((int)sprptr[i]->zvel)*TICSPERFRAME)<<5);

          hitobject=movesprite((short)i,dax,day,daz,4<<8,4<<8,1);
          if( (hitobject&0xC000) == 49152 ) {  // hit a sprite
               hitsprite=hitobject&0x0FFF;
               if( playerhit(hitsprite, &pnum) ) {
                    playerpainsound(pnum);
                    playerwoundplayer(pnum,sprptr[i]->owner,4);
               }
               else if( sprptr[i]->picnum != sprptr[hitsprite]->picnum ) {
                    if( isahologram(hitsprite) ) {
                         showmessage("WAS A HOLOGRAM");
                         killscore(hitsprite, sprptr[i]->owner, 4);
                         changespritestat(hitsprite, VANISH);
                         //jsdeletesprite(hitsprite);
                    }
                    else if( isanandroid(hitsprite) ) {
                         showmessage("WAS AN ANDROID");
                         killscore(hitsprite, sprptr[i]->owner, 4);
                         androidexplosion(hitsprite);
                         changespritestat(hitsprite, VANISH);
                         //jsdeletesprite(hitsprite);
                    }
                    else if( tekexplodebody(hitsprite) ) {
                         missionaccomplished(hitsprite);
                         killscore(hitsprite, sprptr[i]->owner, 4);
                         changespritestat(hitsprite, VANISH);
                         //jsdeletesprite(hitsprite);
                    }
                    else {
                         rv=damagesprite(hitsprite, 500);
                         if( rv == 1 ) {
                              killscore(hitsprite,sprptr[i]->owner,3);
                         }
                    }
               }
          }
          if( hitobject != 0 ) {
               j=jsinsertsprite(sprite[i].sectnum, 3);
               if( j != -1 ) {
                    fillsprite(j,sprptr[i]->x,sprptr[i]->y,sprptr[i]->z+(8<<8),0,-4,0,32,
                         64,64,0,0,
                         EXPLOSION,sprptr[i]->ang,0,0,0,i,sprptr[i]->sectnum,3,63,0,0);
               }
               jsdeletesprite((short)i);
          }

          i=nexti;
     }

     i=headspritestat[MOVEBODYPARTSSTAT];    //flying body parts (gore option)
     while (i >= 0) {
          nexti=nextspritestat[i];
          sprptr[i]->x+=((sprptr[i]->xvel*TICSPERFRAME)>>5);
          sprptr[i]->y+=((sprptr[i]->yvel*TICSPERFRAME)>>5);
          sprptr[i]->z+=((sprptr[i]->zvel*TICSPERFRAME)>>5);
          sprptr[i]->zvel+=(TICSPERFRAME<<7);
          if (sprptr[i]->z < sectptr[sprptr[i]->sectnum]->ceilingz+(4<<8)) {
               sprptr[i]->z=sectptr[sprptr[i]->sectnum]->ceilingz+(4<<8);
               sprptr[i]->zvel=-(sprptr[i]->zvel>>1);
          }
          if (sprptr[i]->z > sectptr[sprptr[i]->sectnum]->floorz-(4<<8)) {
               sprptr[i]->z=sectptr[sprptr[i]->sectnum]->floorz-(4<<8);
               if (sprptr[i]->picnum == GOREBLOOD) {
                    sprptr[i]->xvel=0;
                    sprptr[i]->yvel=0;
                    sprptr[i]->zvel=0;
                    sprptr[i]->cstat|=0x20;
               }
               else {
                    sprptr[i]->zvel=-(sprptr[i]->zvel>>1);
               }
          }
          sprptr[i]->lotag-=TICSPERFRAME;
          if (sprptr[i]->lotag < 0) {
               jsdeletesprite(i);
          }
          i=nexti;
     }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
leaq 0x5a3a41(%rip), %rax    # 0x5b8350
movswl 0x58c(%rax), %eax
movl %eax, -0xc(%rbp)
cmpl $0x0, -0xc(%rbp)
jl 0x14bc7
movslq -0xc(%rbp), %rcx
leaq 0x5ac232(%rip), %rax    # 0x5c0b60
movswl (%rax,%rcx,2), %eax
movl %eax, -0x10(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x1658a0(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x20(%rax), %eax
imull $0x3, %eax, %eax
shll $0xb, %eax
movl %eax, -0x14(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x165884(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x22(%rax), %eax
imull $0x3, %eax, %eax
shll $0xb, %eax
movl %eax, -0x18(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x165868(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x24(%rax), %eax
imull $0x3, %eax, %eax
shll $0x3, %eax
movl %eax, -0x1c(%rbp)
movl -0xc(%rbp), %eax
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
movl -0x1c(%rbp), %ecx
movl $0x400, %r9d            # imm = 0x400
movswl %ax, %edi
movl %r9d, %r8d
movl $0x1, (%rsp)
callq 0x286d0
movw %ax, -0x2(%rbp)
movswl -0x2(%rbp), %eax
andl $0xc000, %eax           # imm = 0xC000
cmpl $0xc000, %eax           # imm = 0xC000
jne 0x14b9e
movswl -0x2(%rbp), %eax
andl $0xfff, %eax            # imm = 0xFFF
movw %ax, -0x4(%rbp)
movswq -0x4(%rbp), %rcx
leaq 0x165802(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movw 0x2a(%rax), %ax
movw %ax, -0x6(%rbp)
movswl -0x6(%rbp), %edi
callq 0x2ae90
cmpl $0x0, %eax
je 0x14b89
movswq -0x6(%rbp), %rcx
leaq 0x20d7d8(%rip), %rax    # 0x2221e0
movq (%rax,%rcx,8), %rax
movzwl 0xe(%rax), %eax
movl %eax, -0x34(%rbp)
subl $0x163, %eax            # imm = 0x163
je 0x14b64
jmp 0x14a20
movl -0x34(%rbp), %eax
subl $0x45b, %eax            # imm = 0x45B
je 0x14b64
jmp 0x14a30
movl -0x34(%rbp), %eax
subl $0x6d7, %eax            # imm = 0x6D7
je 0x14b64
jmp 0x14a40
movl -0x34(%rbp), %eax
subl $0x709, %eax            # imm = 0x709
je 0x14b64
jmp 0x14a50
movl -0x34(%rbp), %eax
subl $0x72a, %eax            # imm = 0x72A
je 0x14b64
jmp 0x14a60
movl -0x34(%rbp), %eax
subl $0x75f, %eax            # imm = 0x75F
je 0x14b64
jmp 0x14a70
movl -0x34(%rbp), %eax
subl $0x79e, %eax            # imm = 0x79E
je 0x14b64
jmp 0x14a80
movl -0x34(%rbp), %eax
subl $0x7d3, %eax            # imm = 0x7D3
je 0x14b64
jmp 0x14a90
movl -0x34(%rbp), %eax
subl $0x811, %eax            # imm = 0x811
je 0x14b64
jmp 0x14aa0
movl -0x34(%rbp), %eax
subl $0x84d, %eax            # imm = 0x84D
je 0x14b64
jmp 0x14ab0
movl -0x34(%rbp), %eax
subl $0x889, %eax            # imm = 0x889
je 0x14b64
jmp 0x14ac0
movl -0x34(%rbp), %eax
subl $0x8d3, %eax            # imm = 0x8D3
je 0x14b64
jmp 0x14ad0
movl -0x34(%rbp), %eax
subl $0x92d, %eax            # imm = 0x92D
je 0x14b64
jmp 0x14ae0
movl -0x34(%rbp), %eax
subl $0x947, %eax            # imm = 0x947
je 0x14b64
jmp 0x14aec
movl -0x34(%rbp), %eax
subl $0x983, %eax            # imm = 0x983
je 0x14b64
jmp 0x14af8
movl -0x34(%rbp), %eax
subl $0x9ca, %eax            # imm = 0x9CA
je 0x14b64
jmp 0x14b04
movl -0x34(%rbp), %eax
subl $0xa05, %eax            # imm = 0xA05
je 0x14b64
jmp 0x14b10
movl -0x34(%rbp), %eax
subl $0xa41, %eax            # imm = 0xA41
je 0x14b64
jmp 0x14b1c
movl -0x34(%rbp), %eax
subl $0xa7d, %eax            # imm = 0xA7D
je 0x14b64
jmp 0x14b28
movl -0x34(%rbp), %eax
subl $0xac0, %eax            # imm = 0xAC0
je 0x14b64
jmp 0x14b34
movl -0x34(%rbp), %eax
subl $0xaff, %eax            # imm = 0xAFF
je 0x14b64
jmp 0x14b40
movl -0x34(%rbp), %eax
subl $0xb3b, %eax            # imm = 0xB3B
je 0x14b64
jmp 0x14b4c
movl -0x34(%rbp), %eax
subl $0xb77, %eax            # imm = 0xB77
je 0x14b64
jmp 0x14b58
movl -0x34(%rbp), %eax
subl $0xbb9, %eax            # imm = 0xBB9
jne 0x14b74
jmp 0x14b64
movl $0x534, %esi            # imm = 0x534
movswl -0x4(%rbp), %edi
callq 0x2efc0
jmp 0x14b7c
movl -0xc(%rbp), %edi
callq 0x398d0
movl -0xc(%rbp), %eax
movswl %ax, %edi
callq 0x2ae00
jmp 0x14b9c
movl -0xc(%rbp), %edi
callq 0x398d0
movl -0xc(%rbp), %eax
movswl %ax, %edi
callq 0x2ae00
jmp 0x14bbc
movswl -0x2(%rbp), %eax
cmpl $0x0, %eax
je 0x14bba
movl -0xc(%rbp), %edi
callq 0x398d0
movl -0xc(%rbp), %eax
movswl %ax, %edi
callq 0x2ae00
jmp 0x14bbc
movl -0x10(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x14919
leaq 0x5a3782(%rip), %rax    # 0x5b8350
movswl 0x59c(%rax), %eax
movl %eax, -0xc(%rbp)
cmpl $0x0, -0xc(%rbp)
jl 0x14e26
movslq -0xc(%rbp), %rcx
leaq 0x5abf73(%rip), %rax    # 0x5c0b60
movswl (%rax,%rcx,2), %eax
movl %eax, -0x10(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x1655e1(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x20(%rax), %eax
imull $0x3, %eax, %eax
shll $0xa, %eax
movl %eax, -0x14(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x1655c5(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x22(%rax), %eax
imull $0x3, %eax, %eax
shll $0xa, %eax
movl %eax, -0x18(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x1655a9(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x24(%rax), %eax
imull $0x3, %eax, %eax
shll $0x3, %eax
movl %eax, -0x1c(%rbp)
movl -0xc(%rbp), %eax
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
movl -0x1c(%rbp), %ecx
movl $0x400, %r9d            # imm = 0x400
movswl %ax, %edi
movl %r9d, %r8d
movl $0x1, (%rsp)
callq 0x286d0
movw %ax, -0x2(%rbp)
movswl -0x2(%rbp), %eax
andl $0xc000, %eax           # imm = 0xC000
cmpl $0xc000, %eax           # imm = 0xC000
jne 0x14dff
movswl -0x2(%rbp), %eax
andl $0xfff, %eax            # imm = 0xFFF
movw %ax, -0x4(%rbp)
movswl -0x4(%rbp), %edi
leaq -0x24(%rbp), %rsi
callq 0x31e70
cmpl $0x0, %eax
je 0x14cd6
movl -0x24(%rbp), %edi
callq 0x122a0
movl -0x24(%rbp), %eax
movw %ax, %cx
movslq -0xc(%rbp), %rdx
leaq 0x165524(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
movl $0x7, %edx
movswl %cx, %edi
movswl 0x1e(%rax), %esi
callq 0x11ff0
jmp 0x14dfd
movslq -0xc(%rbp), %rcx
leaq 0x1654ff(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0xe(%rax), %eax
movswq -0x4(%rbp), %rdx
leaq 0x1654eb(%rip), %rcx    # 0x17a1e0
movq (%rcx,%rdx,8), %rcx
movswl 0xe(%rcx), %ecx
cmpl %ecx, %eax
je 0x14dfb
movswl -0x4(%rbp), %edi
callq 0x2ed00
cmpl $0x0, %eax
je 0x14d58
leaq 0xc4715(%rip), %rdi     # 0xd942f
movb $0x0, %al
callq 0x1a150
movw -0x4(%rbp), %cx
movslq -0xc(%rbp), %rdx
leaq 0x1654b0(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
movl $0x3, %edx
movswl %cx, %edi
movswl 0x1e(%rax), %esi
callq 0x12120
movl $0x3e7, %esi            # imm = 0x3E7
movswl -0x4(%rbp), %edi
callq 0x6a500
jmp 0x14df9
movswl -0x4(%rbp), %edi
callq 0x2ec80
cmpl $0x0, %eax
je 0x14db1
leaq 0xc46d1(%rip), %rdi     # 0xd943e
movb $0x0, %al
callq 0x1a150
movw -0x4(%rbp), %cx
movslq -0xc(%rbp), %rdx
leaq 0x16545d(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
movl $0x3, %edx
movswl %cx, %edi
movswl 0x1e(%rax), %esi
callq 0x12120
movswl -0x4(%rbp), %edi
callq 0x31c60
movl $0x3e7, %esi            # imm = 0x3E7
movswl -0x4(%rbp), %edi
callq 0x6a500
jmp 0x14df7
movswl -0x4(%rbp), %edi
callq 0x396e0
movswl -0x4(%rbp), %edi
movl $0x1f4, %esi            # imm = 0x1F4
callq 0x30230
movl %eax, -0x28(%rbp)
cmpl $0x1, -0x28(%rbp)
jne 0x14df5
movw -0x4(%rbp), %cx
movslq -0xc(%rbp), %rdx
leaq 0x165400(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
movl $0x3, %edx
movswl %cx, %edi
movswl 0x1e(%rax), %esi
callq 0x12120
jmp 0x14df7
jmp 0x14df9
jmp 0x14dfb
jmp 0x14dfd
jmp 0x14dff
movswl -0x2(%rbp), %eax
cmpl $0x0, %eax
je 0x14e1b
movl -0xc(%rbp), %edi
callq 0x394c0
movl -0xc(%rbp), %eax
movswl %ax, %edi
callq 0x2ae00
movl -0x10(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x14bd8
leaq 0x5a3523(%rip), %rax    # 0x5b8350
movswl 0x5a0(%rax), %eax
movl %eax, -0xc(%rbp)
cmpl $0x0, -0xc(%rbp)
jl 0x14f5c
movslq -0xc(%rbp), %rcx
leaq 0x5abd14(%rip), %rax    # 0x5c0b60
movswl (%rax,%rcx,2), %eax
movl %eax, -0x10(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x165382(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x20(%rax), %eax
imull $0x3, %eax, %eax
shll $0xc, %eax
movl %eax, -0x14(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x165366(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x22(%rax), %eax
imull $0x3, %eax, %eax
shll $0xc, %eax
movl %eax, -0x18(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x16534a(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x24(%rax), %eax
imull $0x3, %eax, %eax
shll $0x4, %eax
movl %eax, -0x1c(%rbp)
movl -0xc(%rbp), %eax
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
movl -0x1c(%rbp), %ecx
movl $0x400, %r9d            # imm = 0x400
movswl %ax, %edi
movl %r9d, %r8d
movl $0x1, (%rsp)
callq 0x286d0
movw %ax, -0x2(%rbp)
movswl -0x2(%rbp), %eax
andl $0xc000, %eax           # imm = 0xC000
cmpl $0xc000, %eax           # imm = 0xC000
jne 0x14f3d
movswl -0x2(%rbp), %eax
andl $0xfff, %eax            # imm = 0xFFF
movw %ax, -0x4(%rbp)
movswl -0x4(%rbp), %edi
leaq -0x24(%rbp), %rsi
callq 0x31e70
cmpl $0x0, %eax
jne 0x14f3b
movswl -0x4(%rbp), %edi
movl $0x1f4, %esi            # imm = 0x1F4
callq 0x30230
movl %eax, -0x28(%rbp)
cmpl $0x1, -0x28(%rbp)
jne 0x14f39
movw -0x4(%rbp), %cx
movslq -0xc(%rbp), %rdx
leaq 0x1652bc(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
movl $0x8, %edx
movswl %cx, %edi
movswl 0x1e(%rax), %esi
callq 0x12120
jmp 0x14f3b
jmp 0x14f3d
movswl -0x2(%rbp), %eax
cmpl $0x0, %eax
je 0x14f51
movl -0xc(%rbp), %eax
movswl %ax, %edi
callq 0x2ae00
movl -0x10(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x14e37
leaq 0x5a33ed(%rip), %rax    # 0x5b8350
movswl 0x594(%rax), %eax
movl %eax, -0xc(%rbp)
cmpl $0x0, -0xc(%rbp)
jl 0x151bb
movslq -0xc(%rbp), %rcx
leaq 0x5abbde(%rip), %rax    # 0x5c0b60
movswl (%rax,%rcx,2), %eax
movl %eax, -0x10(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x16524c(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x20(%rax), %eax
imull $0x3, %eax, %eax
shll $0xc, %eax
movl %eax, -0x14(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x165230(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x22(%rax), %eax
imull $0x3, %eax, %eax
shll $0xc, %eax
movl %eax, -0x18(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x165214(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x24(%rax), %eax
imull $0x3, %eax, %eax
shll $0x4, %eax
movl %eax, -0x1c(%rbp)
movl -0xc(%rbp), %eax
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
movl -0x1c(%rbp), %ecx
movl $0x400, %r9d            # imm = 0x400
movswl %ax, %edi
movl %r9d, %r8d
movl $0x1, (%rsp)
callq 0x286d0
movw %ax, -0x2(%rbp)
movswl -0x2(%rbp), %eax
andl $0xc000, %eax           # imm = 0xC000
cmpl $0xc000, %eax           # imm = 0xC000
jne 0x15194
movswl -0x2(%rbp), %eax
andl $0xfff, %eax            # imm = 0xFFF
movw %ax, -0x4(%rbp)
movswl -0x4(%rbp), %edi
leaq -0x24(%rbp), %rsi
callq 0x31e70
cmpl $0x0, %eax
je 0x1506b
movl -0x24(%rbp), %edi
callq 0x122a0
movl -0x24(%rbp), %eax
movw %ax, %cx
movslq -0xc(%rbp), %rdx
leaq 0x16518f(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
movl $0x3, %edx
movswl %cx, %edi
movswl 0x1e(%rax), %esi
callq 0x11ff0
jmp 0x15192
movslq -0xc(%rbp), %rcx
leaq 0x16516a(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0xe(%rax), %eax
movswq -0x4(%rbp), %rdx
leaq 0x165156(%rip), %rcx    # 0x17a1e0
movq (%rcx,%rdx,8), %rcx
movswl 0xe(%rcx), %ecx
cmpl %ecx, %eax
je 0x15190
movswl -0x4(%rbp), %edi
callq 0x2ed00
cmpl $0x0, %eax
je 0x150ed
leaq 0xc4380(%rip), %rdi     # 0xd942f
movb $0x0, %al
callq 0x1a150
movw -0x4(%rbp), %cx
movslq -0xc(%rbp), %rdx
leaq 0x16511b(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
movl $0x3, %edx
movswl %cx, %edi
movswl 0x1e(%rax), %esi
callq 0x12120
movl $0x3e7, %esi            # imm = 0x3E7
movswl -0x4(%rbp), %edi
callq 0x6a500
jmp 0x1518e
movswl -0x4(%rbp), %edi
callq 0x2ec80
cmpl $0x0, %eax
je 0x15146
leaq 0xc433c(%rip), %rdi     # 0xd943e
movb $0x0, %al
callq 0x1a150
movw -0x4(%rbp), %cx
movslq -0xc(%rbp), %rdx
leaq 0x1650c8(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
movl $0x3, %edx
movswl %cx, %edi
movswl 0x1e(%rax), %esi
callq 0x12120
movswl -0x4(%rbp), %edi
callq 0x31c60
movl $0x3e7, %esi            # imm = 0x3E7
movswl -0x4(%rbp), %edi
callq 0x6a500
jmp 0x1518c
movswl -0x4(%rbp), %edi
callq 0x396e0
movswl -0x4(%rbp), %edi
movl $0x1f4, %esi            # imm = 0x1F4
callq 0x30230
movl %eax, -0x28(%rbp)
cmpl $0x1, -0x28(%rbp)
jne 0x1518a
movw -0x4(%rbp), %cx
movslq -0xc(%rbp), %rdx
leaq 0x16506b(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
movl $0x3, %edx
movswl %cx, %edi
movswl 0x1e(%rax), %esi
callq 0x12120
jmp 0x1518c
jmp 0x1518e
jmp 0x15190
jmp 0x15192
jmp 0x15194
movswl -0x2(%rbp), %eax
cmpl $0x0, %eax
je 0x151b0
movl -0xc(%rbp), %edi
callq 0x394c0
movl -0xc(%rbp), %eax
movswl %ax, %edi
callq 0x2ae00
movl -0x10(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x14f6d
leaq 0x5a318e(%rip), %rax    # 0x5b8350
movswl 0x598(%rax), %eax
movl %eax, -0xc(%rbp)
cmpl $0x0, -0xc(%rbp)
jl 0x154a7
movslq -0xc(%rbp), %rcx
leaq 0x5ab97f(%rip), %rax    # 0x5c0b60
movswl (%rax,%rcx,2), %eax
movl %eax, -0x10(%rbp)
leaq 0xc425e(%rip), %rdi     # 0xd944d
callq 0x41510
movl %eax, %edx
andl $0x40, %edx
subl $0x20, %edx
sarl %edx
movslq -0xc(%rbp), %rcx
leaq 0x164fd7(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x20(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x20(%rax)
leaq 0xc4238(%rip), %rdi     # 0xd9456
callq 0x41510
movl %eax, %edx
andl $0x40, %edx
subl $0x20, %edx
sarl %edx
movslq -0xc(%rbp), %rcx
leaq 0x164fa8(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x22(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x22(%rax)
leaq 0xc4212(%rip), %rdi     # 0xd945f
callq 0x41510
movl %eax, %edx
andl $0x1f, %edx
subl $0x10, %edx
sarl %edx
movslq -0xc(%rbp), %rcx
leaq 0x164f79(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x24(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x24(%rax)
movslq -0xc(%rbp), %rcx
leaq 0x164f60(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x20(%rax), %eax
imull $0x3, %eax, %eax
shll $0xc, %eax
movl %eax, -0x14(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x164f44(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x22(%rax), %eax
imull $0x3, %eax, %eax
shll $0xc, %eax
movl %eax, -0x18(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x164f28(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x24(%rax), %eax
imull $0x3, %eax, %eax
shll $0x4, %eax
movl %eax, -0x1c(%rbp)
movl -0xc(%rbp), %eax
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
movl -0x1c(%rbp), %ecx
movl $0x400, %r9d            # imm = 0x400
movswl %ax, %edi
movl %r9d, %r8d
movl $0x1, (%rsp)
callq 0x286d0
movw %ax, -0x2(%rbp)
movswl -0x2(%rbp), %eax
andl $0xc000, %eax           # imm = 0xC000
cmpl $0xc000, %eax           # imm = 0xC000
jne 0x15480
movswl -0x2(%rbp), %eax
andl $0xfff, %eax            # imm = 0xFFF
movw %ax, -0x4(%rbp)
movswl -0x4(%rbp), %edi
leaq -0x24(%rbp), %rsi
callq 0x31e70
cmpl $0x0, %eax
je 0x15357
movl -0x24(%rbp), %edi
callq 0x122a0
movl -0x24(%rbp), %eax
movw %ax, %cx
movslq -0xc(%rbp), %rdx
leaq 0x164ea3(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
movl $0x3, %edx
movswl %cx, %edi
movswl 0x1e(%rax), %esi
callq 0x11ff0
jmp 0x1547e
movslq -0xc(%rbp), %rcx
leaq 0x164e7e(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0xe(%rax), %eax
movswq -0x4(%rbp), %rdx
leaq 0x164e6a(%rip), %rcx    # 0x17a1e0
movq (%rcx,%rdx,8), %rcx
movswl 0xe(%rcx), %ecx
cmpl %ecx, %eax
je 0x1547c
movswl -0x4(%rbp), %edi
callq 0x2ed00
cmpl $0x0, %eax
je 0x153d9
leaq 0xc4094(%rip), %rdi     # 0xd942f
movb $0x0, %al
callq 0x1a150
movw -0x4(%rbp), %cx
movslq -0xc(%rbp), %rdx
leaq 0x164e2f(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
movl $0x3, %edx
movswl %cx, %edi
movswl 0x1e(%rax), %esi
callq 0x12120
movl $0x3e7, %esi            # imm = 0x3E7
movswl -0x4(%rbp), %edi
callq 0x6a500
jmp 0x1547a
movswl -0x4(%rbp), %edi
callq 0x2ec80
cmpl $0x0, %eax
je 0x15432
leaq 0xc4050(%rip), %rdi     # 0xd943e
movb $0x0, %al
callq 0x1a150
movw -0x4(%rbp), %cx
movslq -0xc(%rbp), %rdx
leaq 0x164ddc(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
movl $0x3, %edx
movswl %cx, %edi
movswl 0x1e(%rax), %esi
callq 0x12120
movswl -0x4(%rbp), %edi
callq 0x31c60
movl $0x3e7, %esi            # imm = 0x3E7
movswl -0x4(%rbp), %edi
callq 0x6a500
jmp 0x15478
movswl -0x4(%rbp), %edi
callq 0x396e0
movswl -0x4(%rbp), %edi
movl $0x1f4, %esi            # imm = 0x1F4
callq 0x30230
movl %eax, -0x28(%rbp)
cmpl $0x1, -0x28(%rbp)
jne 0x15476
movw -0x4(%rbp), %cx
movslq -0xc(%rbp), %rdx
leaq 0x164d7f(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
movl $0x3, %edx
movswl %cx, %edi
movswl 0x1e(%rax), %esi
callq 0x12120
jmp 0x15478
jmp 0x1547a
jmp 0x1547c
jmp 0x1547e
jmp 0x15480
movswl -0x2(%rbp), %eax
cmpl $0x0, %eax
je 0x1549c
movl -0xc(%rbp), %edi
callq 0x394c0
movl -0xc(%rbp), %eax
movswl %ax, %edi
callq 0x2ae00
movl -0x10(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x151cc
leaq 0x5a2ea2(%rip), %rax    # 0x5b8350
movswl 0x590(%rax), %eax
movl %eax, -0xc(%rbp)
cmpl $0x0, -0xc(%rbp)
jl 0x158ad
movslq -0xc(%rbp), %rcx
leaq 0x5ab693(%rip), %rax    # 0x5c0b60
movswl (%rax,%rcx,2), %eax
movl %eax, -0x10(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x164d01(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x20(%rax), %eax
imull $0x3, %eax, %eax
shll $0xd, %eax
movl %eax, -0x14(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x164ce5(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x22(%rax), %eax
imull $0x3, %eax, %eax
shll $0xd, %eax
movl %eax, -0x18(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x164cc9(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x24(%rax), %eax
imull $0x3, %eax, %eax
shll $0x5, %eax
movl %eax, -0x1c(%rbp)
movl -0xc(%rbp), %eax
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
movl -0x1c(%rbp), %ecx
movl $0x400, %r9d            # imm = 0x400
movswl %ax, %edi
movl %r9d, %r8d
movl $0x1, (%rsp)
callq 0x286d0
movw %ax, -0x2(%rbp)
movswl -0x2(%rbp), %eax
andl $0xc000, %eax           # imm = 0xC000
cmpl $0xc000, %eax           # imm = 0xC000
jne 0x15726
movswl -0x2(%rbp), %eax
andl $0xfff, %eax            # imm = 0xFFF
movw %ax, -0x4(%rbp)
movswl -0x4(%rbp), %edi
leaq -0x24(%rbp), %rsi
callq 0x31e70
cmpl $0x0, %eax
je 0x155b6
movl -0x24(%rbp), %edi
callq 0x122a0
movl -0x24(%rbp), %eax
movw %ax, %cx
movslq -0xc(%rbp), %rdx
leaq 0x164c44(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
movl $0x4, %edx
movswl %cx, %edi
movswl 0x1e(%rax), %esi
callq 0x11ff0
jmp 0x15724
movslq -0xc(%rbp), %rcx
leaq 0x164c1f(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0xe(%rax), %eax
movswq -0x4(%rbp), %rdx
leaq 0x164c0b(%rip), %rcx    # 0x17a1e0
movq (%rcx,%rdx,8), %rcx
movswl 0xe(%rcx), %ecx
cmpl %ecx, %eax
je 0x15722
movswl -0x4(%rbp), %edi
callq 0x2ed00
cmpl $0x0, %eax
je 0x15638
leaq 0xc3e35(%rip), %rdi     # 0xd942f
movb $0x0, %al
callq 0x1a150
movw -0x4(%rbp), %cx
movslq -0xc(%rbp), %rdx
leaq 0x164bd0(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
movl $0x4, %edx
movswl %cx, %edi
movswl 0x1e(%rax), %esi
callq 0x12120
movl $0x3e7, %esi            # imm = 0x3E7
movswl -0x4(%rbp), %edi
callq 0x6a500
jmp 0x15720
movswl -0x4(%rbp), %edi
callq 0x2ec80
cmpl $0x0, %eax
je 0x15694
leaq 0xc3df1(%rip), %rdi     # 0xd943e
movb $0x0, %al
callq 0x1a150
movw -0x4(%rbp), %cx
movslq -0xc(%rbp), %rdx
leaq 0x164b7d(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
movl $0x4, %edx
movswl %cx, %edi
movswl 0x1e(%rax), %esi
callq 0x12120
movswl -0x4(%rbp), %edi
callq 0x31c60
movl $0x3e7, %esi            # imm = 0x3E7
movswl -0x4(%rbp), %edi
callq 0x6a500
jmp 0x1571e
movswl -0x4(%rbp), %edi
callq 0x14490
cmpl $0x0, %eax
je 0x156df
movswl -0x4(%rbp), %edi
callq 0x21bb0
movw -0x4(%rbp), %cx
movslq -0xc(%rbp), %rdx
leaq 0x164b26(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
movl $0x4, %edx
movswl %cx, %edi
movswl 0x1e(%rax), %esi
callq 0x12120
movl $0x3e7, %esi            # imm = 0x3E7
movswl -0x4(%rbp), %edi
callq 0x6a500
jmp 0x1571c
movswl -0x4(%rbp), %edi
movl $0x1f4, %esi            # imm = 0x1F4
callq 0x30230
movl %eax, -0x28(%rbp)
cmpl $0x1, -0x28(%rbp)
jne 0x1571a
movw -0x4(%rbp), %cx
movslq -0xc(%rbp), %rdx
leaq 0x164adb(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
movl $0x3, %edx
movswl %cx, %edi
movswl 0x1e(%rax), %esi
callq 0x12120
jmp 0x1571c
jmp 0x1571e
jmp 0x15720
jmp 0x15722
jmp 0x15724
jmp 0x15726
movswl -0x2(%rbp), %eax
cmpl $0x0, %eax
je 0x158a2
movslq -0xc(%rbp), %rcx
leaq 0x4613a2(%rip), %rax    # 0x476ae0
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movl $0x3, %esi
movswl 0x18(%rax), %edi
callq 0x2abd0
cwtl
movl %eax, -0x20(%rbp)
cmpl $-0x1, -0x20(%rbp)
je 0x15897
movslq -0x20(%rbp), %rcx
leaq 0x461374(%rip), %rax    # 0x476ae0
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x30(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x164a5e(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movl (%rax), %ecx
movq -0x30(%rbp), %rax
movl %ecx, (%rax)
movslq -0xc(%rbp), %rcx
leaq 0x164a47(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movl 0x4(%rax), %ecx
movq -0x30(%rbp), %rax
movl %ecx, 0x4(%rax)
movslq -0xc(%rbp), %rcx
leaq 0x164a2e(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movl 0x8(%rax), %ecx
addl $0x800, %ecx            # imm = 0x800
movq -0x30(%rbp), %rax
movl %ecx, 0x8(%rax)
movq -0x30(%rbp), %rax
movw $0x0, 0xc(%rax)
movq -0x30(%rbp), %rax
movb $-0x4, 0x10(%rax)
movq -0x30(%rbp), %rax
movb $0x0, 0x11(%rax)
movq -0x30(%rbp), %rax
movb $0x20, 0x12(%rax)
movq -0x30(%rbp), %rax
movb $0x40, 0x14(%rax)
movq -0x30(%rbp), %rax
movb $0x40, 0x15(%rax)
movq -0x30(%rbp), %rax
movb $0x0, 0x16(%rax)
movq -0x30(%rbp), %rax
movb $0x0, 0x17(%rax)
movq -0x30(%rbp), %rax
movw $0x1ab, 0xe(%rax)       # imm = 0x1AB
movslq -0xc(%rbp), %rcx
leaq 0x1649c3(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movw 0x1c(%rax), %cx
movq -0x30(%rbp), %rax
movw %cx, 0x1c(%rax)
movq -0x30(%rbp), %rax
movw $0x0, 0x20(%rax)
movq -0x30(%rbp), %rax
movw $0x0, 0x22(%rax)
movq -0x30(%rbp), %rax
movw $0x0, 0x24(%rax)
movl -0xc(%rbp), %eax
movw %ax, %cx
movq -0x30(%rbp), %rax
movw %cx, 0x1e(%rax)
movq -0x30(%rbp), %rax
movw $0x3f, 0x26(%rax)
movq -0x30(%rbp), %rax
movw $0x0, 0x28(%rax)
movq -0x30(%rbp), %rax
movw $0xffff, 0x2a(%rax)     # imm = 0xFFFF
movq -0x30(%rbp), %rdi
movslq -0x20(%rbp), %rax
leaq 0x12039a(%rip), %rsi    # 0x135c20
imulq $0xc, %rax, %rax
addq %rax, %rsi
movl $0x3, %edx
callq 0x8c070
movl -0xc(%rbp), %eax
movswl %ax, %edi
callq 0x2ae00
movl -0x10(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x154b8
leaq 0x5a2a9c(%rip), %rax    # 0x5b8350
movswl 0x708(%rax), %eax
movl %eax, -0xc(%rbp)
cmpl $0x0, -0xc(%rbp)
jl 0x15b90
movslq -0xc(%rbp), %rcx
leaq 0x5ab28d(%rip), %rax    # 0x5c0b60
movswl (%rax,%rcx,2), %eax
movl %eax, -0x10(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x1648fb(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x20(%rax), %eax
imull $0x3, %eax, %ecx
sarl $0x5, %ecx
movslq -0xc(%rbp), %rdx
leaq 0x1648e2(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
addl (%rax), %ecx
movl %ecx, (%rax)
movslq -0xc(%rbp), %rcx
leaq 0x1648cf(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x22(%rax), %eax
imull $0x3, %eax, %ecx
sarl $0x5, %ecx
movslq -0xc(%rbp), %rdx
leaq 0x1648b6(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
addl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
movslq -0xc(%rbp), %rcx
leaq 0x1648a1(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x24(%rax), %eax
imull $0x3, %eax, %ecx
sarl $0x5, %ecx
movslq -0xc(%rbp), %rdx
leaq 0x164888(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
addl 0x8(%rax), %ecx
movl %ecx, 0x8(%rax)
movslq -0xc(%rbp), %rcx
leaq 0x164873(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x24(%rax), %ecx
addl $0x180, %ecx            # imm = 0x180
movw %cx, 0x24(%rax)
movslq -0xc(%rbp), %rcx
leaq 0x164856(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movl 0x8(%rax), %eax
movslq -0xc(%rbp), %rdx
leaq 0x164844(%rip), %rcx    # 0x17a1e0
movq (%rcx,%rdx,8), %rcx
movswq 0x18(%rcx), %rdx
leaq 0x22c834(%rip), %rcx    # 0x2421e0
movq (%rcx,%rdx,8), %rcx
movl 0x4(%rcx), %ecx
addl $0x400, %ecx            # imm = 0x400
cmpl %ecx, %eax
jge 0x15a26
movslq -0xc(%rbp), %rcx
leaq 0x164818(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswq 0x18(%rax), %rcx
leaq 0x22c808(%rip), %rax    # 0x2421e0
movq (%rax,%rcx,8), %rax
movl 0x4(%rax), %ecx
addl $0x400, %ecx            # imm = 0x400
movslq -0xc(%rbp), %rdx
leaq 0x1647f0(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
movl %ecx, 0x8(%rax)
movslq -0xc(%rbp), %rcx
leaq 0x1647de(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x24(%rax), %ecx
sarl %ecx
xorl %eax, %eax
subl %ecx, %eax
movw %ax, %cx
movslq -0xc(%rbp), %rdx
leaq 0x1647c2(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
movw %cx, 0x24(%rax)
movslq -0xc(%rbp), %rcx
leaq 0x1647af(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movl 0x8(%rax), %eax
movslq -0xc(%rbp), %rdx
leaq 0x16479d(%rip), %rcx    # 0x17a1e0
movq (%rcx,%rdx,8), %rcx
movswq 0x18(%rcx), %rdx
leaq 0x22c78d(%rip), %rcx    # 0x2421e0
movq (%rcx,%rdx,8), %rcx
movl 0x8(%rcx), %ecx
subl $0x400, %ecx            # imm = 0x400
cmpl %ecx, %eax
jle 0x15b48
movslq -0xc(%rbp), %rcx
leaq 0x16476d(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswq 0x18(%rax), %rcx
leaq 0x22c75d(%rip), %rax    # 0x2421e0
movq (%rax,%rcx,8), %rax
movl 0x8(%rax), %ecx
subl $0x400, %ecx            # imm = 0x400
movslq -0xc(%rbp), %rdx
leaq 0x164745(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
movl %ecx, 0x8(%rax)
movslq -0xc(%rbp), %rcx
leaq 0x164733(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0xe(%rax), %eax
cmpl $0x540, %eax            # imm = 0x540
jne 0x15b17
movslq -0xc(%rbp), %rcx
leaq 0x164719(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movw $0x0, 0x20(%rax)
movslq -0xc(%rbp), %rcx
leaq 0x164704(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movw $0x0, 0x22(%rax)
movslq -0xc(%rbp), %rcx
leaq 0x1646ef(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movw $0x0, 0x24(%rax)
movslq -0xc(%rbp), %rcx
leaq 0x1646da(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0xc(%rax), %ecx
orl $0x20, %ecx
movw %cx, 0xc(%rax)
jmp 0x15b46
movslq -0xc(%rbp), %rcx
leaq 0x1646be(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x24(%rax), %ecx
sarl %ecx
xorl %eax, %eax
subl %ecx, %eax
movw %ax, %cx
movslq -0xc(%rbp), %rdx
leaq 0x1646a2(%rip), %rax    # 0x17a1e0
movq (%rax,%rdx,8), %rax
movw %cx, 0x24(%rax)
jmp 0x15b48
movslq -0xc(%rbp), %rcx
leaq 0x16468d(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x26(%rax), %ecx
subl $0x3, %ecx
movw %cx, 0x26(%rax)
movslq -0xc(%rbp), %rcx
leaq 0x164673(%rip), %rax    # 0x17a1e0
movq (%rax,%rcx,8), %rax
movswl 0x26(%rax), %eax
cmpl $0x0, %eax
jge 0x15b85
movl -0xc(%rbp), %eax
movswl %ax, %edi
callq 0x2ae00
movl -0x10(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x158be
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)