// File: /workspace/github_c_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
leaq 0x55b712(%rip), %rax    # 0x56c380
movzwl 0x58c(%rax), %r12d
testw %r12w, %r12w
js 0x10ef2
leaq 0x563f09(%rip), %r15    # 0x574b90
leaq 0x11d582(%rip), %r13    # 0x12e210
movzwl %r12w, %ebx
movzwl (%r15,%rbx,2), %r12d
movq (%r13,%rbx,8), %rax
movswl 0x20(%rax), %ecx
shll $0xb, %ecx
leal (%rcx,%rcx,2), %esi
movswl 0x22(%rax), %ecx
shll $0xb, %ecx
leal (%rcx,%rcx,2), %edx
movswl 0x24(%rax), %eax
shll $0x3, %eax
leal (%rax,%rax,2), %ecx
movl $0x1, (%rsp)
movswl %bx, %ebp
movl %ebp, %edi
movl $0x400, %r8d            # imm = 0x400
movl $0x400, %r9d            # imm = 0x400
callq 0x1cfc1
movl %eax, %r14d
movzwl %ax, %eax
cmpl $0xc000, %eax           # imm = 0xC000
jb 0x10d71
movw %r12w, 0x12(%rsp)
movq %r13, %rax
movq %r15, %r13
andl $0xfff, %r14d           # imm = 0xFFF
movq %rax, %r12
movq (%rax,%r14,8), %rax
movswl 0x2a(%rax), %r15d
movl %r15d, %edi
callq 0x1e9f9
testl %eax, %eax
je 0x10d87
movslq %r15d, %rax
leaq 0x1c54f3(%rip), %rcx    # 0x1d6210
movq (%rcx,%rax,8), %rax
movzwl 0xe(%rax), %eax
cmpl $0x92c, %eax            # imm = 0x92C
jg 0x10d9f
cmpl $0x79d, %eax            # imm = 0x79D
movq %r13, %r15
jg 0x10de0
cmpl $0x708, %eax            # imm = 0x708
movq %r12, %r13
jg 0x10e54
cmpl $0x163, %eax            # imm = 0x163
movzwl 0x12(%rsp), %r12d
je 0x10ed3
cmpl $0x45b, %eax            # imm = 0x45B
je 0x10ed3
cmpl $0x6d7, %eax            # imm = 0x6D7
je 0x10ed3
jmp 0x10d7b
testw %r14w, %r14w
je 0x10ee8
movl %ebx, %edi
callq 0x27396
jmp 0x10ee1
movl %ebx, %edi
callq 0x27396
movq %r13, %r15
movq %r12, %r13
movzwl 0x12(%rsp), %r12d
jmp 0x10ee1
cmpl $0xa7c, %eax            # imm = 0xA7C
movq %r13, %r15
jg 0x10e1a
cmpl $0x9c9, %eax            # imm = 0x9C9
movq %r12, %r13
jg 0x10e74
cmpl $0x92d, %eax            # imm = 0x92D
movzwl 0x12(%rsp), %r12d
je 0x10ed3
cmpl $0x947, %eax            # imm = 0x947
je 0x10ed3
cmpl $0x983, %eax            # imm = 0x983
je 0x10ed3
jmp 0x10d7b
cmpl $0x84c, %eax            # imm = 0x84C
movq %r12, %r13
jg 0x10e94
cmpl $0x79e, %eax            # imm = 0x79E
movzwl 0x12(%rsp), %r12d
je 0x10ed3
cmpl $0x7d3, %eax            # imm = 0x7D3
je 0x10ed3
cmpl $0x811, %eax            # imm = 0x811
je 0x10ed3
jmp 0x10d7b
cmpl $0xb3a, %eax            # imm = 0xB3A
movq %r12, %r13
jg 0x10eb4
cmpl $0xa7d, %eax            # imm = 0xA7D
movzwl 0x12(%rsp), %r12d
je 0x10ed3
cmpl $0xac0, %eax            # imm = 0xAC0
je 0x10ed3
cmpl $0xaff, %eax            # imm = 0xAFF
je 0x10ed3
jmp 0x10d7b
cmpl $0x709, %eax            # imm = 0x709
movzwl 0x12(%rsp), %r12d
je 0x10ed3
cmpl $0x72a, %eax            # imm = 0x72A
je 0x10ed3
cmpl $0x75f, %eax            # imm = 0x75F
je 0x10ed3
jmp 0x10d7b
cmpl $0x9ca, %eax            # imm = 0x9CA
movzwl 0x12(%rsp), %r12d
je 0x10ed3
cmpl $0xa05, %eax            # imm = 0xA05
je 0x10ed3
cmpl $0xa41, %eax            # imm = 0xA41
je 0x10ed3
jmp 0x10d7b
cmpl $0x84d, %eax            # imm = 0x84D
movzwl 0x12(%rsp), %r12d
je 0x10ed3
cmpl $0x889, %eax            # imm = 0x889
je 0x10ed3
cmpl $0x8d3, %eax            # imm = 0x8D3
je 0x10ed3
jmp 0x10d7b
cmpl $0xb3b, %eax            # imm = 0xB3B
movzwl 0x12(%rsp), %r12d
je 0x10ed3
cmpl $0xbb9, %eax            # imm = 0xBB9
je 0x10ed3
cmpl $0xb77, %eax            # imm = 0xB77
jne 0x10d7b
movzwl %r14w, %edi
movl $0x534, %esi            # imm = 0x534
callq 0x20e02
movl %ebp, %edi
callq 0x1e99d
testw %r12w, %r12w
jns 0x10c8e
leaq 0x55b487(%rip), %rax    # 0x56c380
movzwl 0x59c(%rax), %r15d
testw %r15w, %r15w
js 0x1108f
leaq 0x11d2fe(%rip), %rbx    # 0x12e210
movzwl %r15w, %r12d
leaq 0x563c73(%rip), %rax    # 0x574b90
movzwl (%rax,%r12,2), %r15d
movq (%rbx,%r12,8), %rax
movswl 0x20(%rax), %ecx
shll $0xa, %ecx
leal (%rcx,%rcx,2), %esi
movswl 0x22(%rax), %ecx
shll $0xa, %ecx
leal (%rcx,%rcx,2), %edx
movswl 0x24(%rax), %eax
shll $0x3, %eax
leal (%rax,%rax,2), %ecx
movl $0x1, (%rsp)
movswl %r12w, %ebp
movl %ebp, %edi
movl $0x400, %r8d            # imm = 0x400
movl $0x400, %r9d            # imm = 0x400
callq 0x1cfc1
movl %eax, %r13d
movzwl %ax, %eax
cmpl $0xc000, %eax           # imm = 0xC000
jb 0x1103d
movl %r13d, %r14d
andl $0xfff, %r14d           # imm = 0xFFF
movl %r14d, %edi
leaq 0x14(%rsp), %rsi
callq 0x22b8d
testl %eax, %eax
je 0x10fb3
movl 0x14(%rsp), %edi
callq 0xf566
movswl 0x14(%rsp), %edi
movq (%rbx,%r12,8), %rax
movswl 0x1e(%rax), %esi
movl $0x7, %edx
callq 0xf3b7
jmp 0x1103d
movq (%rbx,%r12,8), %rax
movzwl 0xe(%rax), %eax
movl %r14d, %ecx
movq (%rbx,%rcx,8), %rcx
cmpw 0xe(%rcx), %ax
je 0x1103d
movl %r14d, %edi
callq 0x20c64
testl %eax, %eax
je 0x10ff9
leaq 0x7b47c(%rip), %rdi     # 0x8c457
xorl %eax, %eax
callq 0x14b61
movq (%rbx,%r12,8), %rax
movswl 0x1e(%rax), %esi
movl %r14d, %edi
movl $0x3, %edx
callq 0xf44e
jmp 0x11030
movl %r14d, %edi
callq 0x20c18
testl %eax, %eax
je 0x1105e
leaq 0x7b45a(%rip), %rdi     # 0x8c466
xorl %eax, %eax
callq 0x14b61
movq (%rbx,%r12,8), %rax
movswl 0x1e(%rax), %esi
movl %r14d, %edi
movl $0x3, %edx
callq 0xf44e
movl %r14d, %edi
callq 0x22a73
movl %r14d, %edi
movl $0x3e7, %esi            # imm = 0x3E7
callq 0x4703b
testw %r13w, %r13w
je 0x11052
movl %r12d, %edi
callq 0x2714a
movl %ebp, %edi
callq 0x1e99d
testw %r15w, %r15w
jns 0x10f12
jmp 0x1108f
movl %r14d, %edi
callq 0x27282
movl %r14d, %edi
movl $0x1f4, %esi            # imm = 0x1F4
callq 0x21942
cmpl $0x1, %eax
jne 0x1103d
movq (%rbx,%r12,8), %rax
movswl 0x1e(%rax), %esi
movl %r14d, %edi
movl $0x3, %edx
callq 0xf44e
jmp 0x1103d
leaq 0x55b2ea(%rip), %rax    # 0x56c380
movzwl 0x5a0(%rax), %r15d
testw %r15w, %r15w
js 0x11163
leaq 0x563ae1(%rip), %r12    # 0x574b90
leaq 0x11d15a(%rip), %r13    # 0x12e210
movzwl %r15w, %ebx
movzwl (%r12,%rbx,2), %r15d
movq (%r13,%rbx,8), %rax
movswl 0x20(%rax), %ecx
shll $0xc, %ecx
leal (%rcx,%rcx,2), %esi
movswl 0x22(%rax), %ecx
shll $0xc, %ecx
leal (%rcx,%rcx,2), %edx
movswl 0x24(%rax), %eax
shll $0x4, %eax
leal (%rax,%rax,2), %ecx
movl $0x1, (%rsp)
movswl %bx, %edi
movl $0x400, %r8d            # imm = 0x400
movl $0x400, %r9d            # imm = 0x400
callq 0x1cfc1
movl %eax, %ebp
movzwl %ax, %eax
cmpl $0xc000, %eax           # imm = 0xC000
jb 0x1114c
movl %ebp, %r14d
andl $0xfff, %r14d           # imm = 0xFFF
movl %r14d, %edi
leaq 0x14(%rsp), %rsi
callq 0x22b8d
testl %eax, %eax
jne 0x1114c
movl %r14d, %edi
movl $0x1f4, %esi            # imm = 0x1F4
callq 0x21942
cmpl $0x1, %eax
jne 0x1114c
movq (%r13,%rbx,8), %rax
movswl 0x1e(%rax), %esi
movl %r14d, %edi
movl $0x8, %edx
callq 0xf44e
testw %bp, %bp
je 0x11159
movswl %bx, %edi
callq 0x1e99d
testw %r15w, %r15w
jns 0x110b6
leaq 0x55b216(%rip), %rax    # 0x56c380
movzwl 0x594(%rax), %r15d
testw %r15w, %r15w
js 0x11300
leaq 0x11d08d(%rip), %rbx    # 0x12e210
movzwl %r15w, %r12d
leaq 0x563a02(%rip), %rax    # 0x574b90
movzwl (%rax,%r12,2), %r15d
movq (%rbx,%r12,8), %rax
movswl 0x20(%rax), %ecx
shll $0xc, %ecx
leal (%rcx,%rcx,2), %esi
movswl 0x22(%rax), %ecx
shll $0xc, %ecx
leal (%rcx,%rcx,2), %edx
movswl 0x24(%rax), %eax
shll $0x4, %eax
leal (%rax,%rax,2), %ecx
movl $0x1, (%rsp)
movswl %r12w, %ebp
movl %ebp, %edi
movl $0x400, %r8d            # imm = 0x400
movl $0x400, %r9d            # imm = 0x400
callq 0x1cfc1
movl %eax, %r13d
movzwl %ax, %eax
cmpl $0xc000, %eax           # imm = 0xC000
jb 0x112ae
movl %r13d, %r14d
andl $0xfff, %r14d           # imm = 0xFFF
movl %r14d, %edi
leaq 0x14(%rsp), %rsi
callq 0x22b8d
testl %eax, %eax
je 0x11224
movl 0x14(%rsp), %edi
callq 0xf566
movswl 0x14(%rsp), %edi
movq (%rbx,%r12,8), %rax
movswl 0x1e(%rax), %esi
movl $0x3, %edx
callq 0xf3b7
jmp 0x112ae
movq (%rbx,%r12,8), %rax
movzwl 0xe(%rax), %eax
movl %r14d, %ecx
movq (%rbx,%rcx,8), %rcx
cmpw 0xe(%rcx), %ax
je 0x112ae
movl %r14d, %edi
callq 0x20c64
testl %eax, %eax
je 0x1126a
leaq 0x7b20b(%rip), %rdi     # 0x8c457
xorl %eax, %eax
callq 0x14b61
movq (%rbx,%r12,8), %rax
movswl 0x1e(%rax), %esi
movl %r14d, %edi
movl $0x3, %edx
callq 0xf44e
jmp 0x112a1
movl %r14d, %edi
callq 0x20c18
testl %eax, %eax
je 0x112cf
leaq 0x7b1e9(%rip), %rdi     # 0x8c466
xorl %eax, %eax
callq 0x14b61
movq (%rbx,%r12,8), %rax
movswl 0x1e(%rax), %esi
movl %r14d, %edi
movl $0x3, %edx
callq 0xf44e
movl %r14d, %edi
callq 0x22a73
movl %r14d, %edi
movl $0x3e7, %esi            # imm = 0x3E7
callq 0x4703b
testw %r13w, %r13w
je 0x112c3
movl %r12d, %edi
callq 0x2714a
movl %ebp, %edi
callq 0x1e99d
testw %r15w, %r15w
jns 0x11183
jmp 0x11300
movl %r14d, %edi
callq 0x27282
movl %r14d, %edi
movl $0x1f4, %esi            # imm = 0x1F4
callq 0x21942
cmpl $0x1, %eax
jne 0x112ae
movq (%rbx,%r12,8), %rax
movswl 0x1e(%rax), %esi
movl %r14d, %edi
movl $0x3, %edx
callq 0xf44e
jmp 0x112ae
leaq 0x55b079(%rip), %rax    # 0x56c380
movzwl 0x598(%rax), %r14d
testw %r14w, %r14w
js 0x114ea
leaq 0x11cef0(%rip), %r15    # 0x12e210
movzwl %r14w, %r13d
leaq 0x563865(%rip), %rax    # 0x574b90
movzwl (%rax,%r13,2), %r14d
leaq 0x7b13e(%rip), %rdi     # 0x8c475
callq 0x2be4a
andl $0x40, %eax
movl $0x1ffe0, %ebx          # imm = 0x1FFE0
addl %ebx, %eax
shrl %eax
movq (%r15,%r13,8), %rcx
addw %ax, 0x20(%rcx)
leaq 0x7b127(%rip), %rdi     # 0x8c47e
callq 0x2be4a
andl $0x40, %eax
addl %ebx, %eax
shrl %eax
movq (%r15,%r13,8), %rcx
addw %ax, 0x22(%rcx)
leaq 0x7b115(%rip), %rdi     # 0x8c487
callq 0x2be4a
andl $0x1e, %eax
addl $0x1fff0, %eax          # imm = 0x1FFF0
shrl %eax
movq (%r15,%r13,8), %rcx
addw %ax, 0x24(%rcx)
movq (%r15,%r13,8), %rax
movswl 0x20(%rax), %ecx
shll $0xc, %ecx
leal (%rcx,%rcx,2), %esi
movswl 0x22(%rax), %ecx
shll $0xc, %ecx
leal (%rcx,%rcx,2), %edx
movswl 0x24(%rax), %eax
shll $0x4, %eax
leal (%rax,%rax,2), %ecx
movl $0x1, (%rsp)
movswl %r13w, %ebp
movl %ebp, %edi
movl $0x400, %r8d            # imm = 0x400
movl $0x400, %r9d            # imm = 0x400
callq 0x1cfc1
movl %eax, %r12d
movzwl %ax, %eax
cmpl $0xc000, %eax           # imm = 0xC000
jb 0x1149b
movl %r12d, %ebx
andl $0xfff, %ebx            # imm = 0xFFF
movl %ebx, %edi
leaq 0x14(%rsp), %rsi
callq 0x22b8d
testl %eax, %eax
je 0x11418
movl 0x14(%rsp), %edi
callq 0xf566
movswl 0x14(%rsp), %edi
movq (%r15,%r13,8), %rax
movswl 0x1e(%rax), %esi
movl $0x3, %edx
callq 0xf3b7
jmp 0x1149b
movq (%r15,%r13,8), %rax
movzwl 0xe(%rax), %eax
movl %ebx, %ecx
movq (%r15,%rcx,8), %rcx
cmpw 0xe(%rcx), %ax
je 0x1149b
movl %ebx, %edi
callq 0x20c64
testl %eax, %eax
je 0x1145b
leaq 0x7b019(%rip), %rdi     # 0x8c457
xorl %eax, %eax
callq 0x14b61
movq (%r15,%r13,8), %rax
movswl 0x1e(%rax), %esi
movl %ebx, %edi
movl $0x3, %edx
callq 0xf44e
jmp 0x1148f
movl %ebx, %edi
callq 0x20c18
testl %eax, %eax
je 0x114bc
leaq 0x7aff9(%rip), %rdi     # 0x8c466
xorl %eax, %eax
callq 0x14b61
movq (%r15,%r13,8), %rax
movswl 0x1e(%rax), %esi
movl %ebx, %edi
movl $0x3, %edx
callq 0xf44e
movl %ebx, %edi
callq 0x22a73
movl %ebx, %edi
movl $0x3e7, %esi            # imm = 0x3E7
callq 0x4703b
testw %r12w, %r12w
je 0x114b0
movl %r13d, %edi
callq 0x2714a
movl %ebp, %edi
callq 0x1e99d
testw %r14w, %r14w
jns 0x11320
jmp 0x114ea
movl %ebx, %edi
callq 0x27282
movl %ebx, %edi
movl $0x1f4, %esi            # imm = 0x1F4
callq 0x21942
cmpl $0x1, %eax
jne 0x1149b
movq (%r15,%r13,8), %rax
movswl 0x1e(%rax), %esi
movl %ebx, %edi
movl $0x3, %edx
callq 0xf44e
jmp 0x1149b
leaq 0x55ae8f(%rip), %rax    # 0x56c380
movzwl 0x590(%rax), %r14d
testw %r14w, %r14w
js 0x1178b
movzwl %r14w, %ebx
leaq 0x563682(%rip), %rax    # 0x574b90
movzwl (%rax,%rbx,2), %r15d
leaq 0x11ccf6(%rip), %rax    # 0x12e210
movq (%rax,%rbx,8), %rax
movswl 0x20(%rax), %ecx
shll $0xd, %ecx
leal (%rcx,%rcx,2), %esi
movswl 0x22(%rax), %ecx
shll $0xd, %ecx
leal (%rcx,%rcx,2), %edx
movswl 0x24(%rax), %eax
shll $0x5, %eax
leal (%rax,%rax,2), %ecx
movl $0x1, (%rsp)
movswl %bx, %ebp
movl %ebp, %edi
movl $0x400, %r8d            # imm = 0x400
movl $0x400, %r9d            # imm = 0x400
callq 0x1cfc1
movl %eax, %r12d
movzwl %ax, %eax
cmpl $0xc000, %eax           # imm = 0xC000
jb 0x11658
movl %r12d, %r13d
andl $0xfff, %r13d           # imm = 0xFFF
movl %r13d, %edi
leaq 0x14(%rsp), %rsi
callq 0x22b8d
testl %eax, %eax
je 0x115b1
movl 0x14(%rsp), %edi
callq 0xf566
movswl 0x14(%rsp), %edi
leaq 0x11cc76(%rip), %rax    # 0x12e210
movq (%rax,%rbx,8), %rax
movswl 0x1e(%rax), %esi
movl $0x4, %edx
callq 0xf3b7
jmp 0x11658
leaq 0x11cc58(%rip), %rdx    # 0x12e210
movq (%rdx,%rbx,8), %rax
movzwl 0xe(%rax), %eax
movl %r13d, %ecx
movq (%rdx,%rcx,8), %rcx
cmpw 0xe(%rcx), %ax
je 0x11658
movl %r13d, %edi
callq 0x20c64
testl %eax, %eax
je 0x11609
leaq 0x7ae73(%rip), %rdi     # 0x8c457
xorl %eax, %eax
callq 0x14b61
leaq 0x11cc1e(%rip), %rax    # 0x12e210
movq (%rax,%rbx,8), %rax
movswl 0x1e(%rax), %esi
movl %r13d, %edi
movl $0x4, %edx
callq 0xf44e
jmp 0x1164b
movl %r13d, %edi
callq 0x20c18
testl %eax, %eax
je 0x1173e
leaq 0x7ae46(%rip), %rdi     # 0x8c466
xorl %eax, %eax
callq 0x14b61
leaq 0x11cbe2(%rip), %rax    # 0x12e210
movq (%rax,%rbx,8), %rax
movswl 0x1e(%rax), %esi
movl %r13d, %edi
movl $0x4, %edx
callq 0xf44e
movl %r13d, %edi
callq 0x22a73
movl %r13d, %edi
movl $0x3e7, %esi            # imm = 0x3E7
callq 0x4703b
testw %r12w, %r12w
leaq 0x4194ad(%rip), %r12    # 0x42ab10
je 0x1172f
imulq $0x2c, %rbx, %rax
movswl 0x18(%r12,%rax), %edi
movl $0x3, %esi
callq 0x1e94c
cmpw $-0x1, %ax
je 0x11728
movswq %ax, %rax
imulq $0x2c, %rax, %rcx
leaq (%r12,%rcx), %rdi
leaq 0x11cb76(%rip), %rdx    # 0x12e210
movq (%rdx,%rbx,8), %rdx
movl (%rdx), %esi
movl %esi, (%r12,%rcx)
movl 0x4(%rdx), %esi
movl %esi, 0x4(%r12,%rcx)
movl 0x8(%rdx), %esi
movl $0x800, %r8d            # imm = 0x800
addl %r8d, %esi
movl %esi, 0x8(%r12,%rcx)
movl $0x1ab0000, 0xc(%r12,%rcx) # imm = 0x1AB0000
movw $0xfc, 0x10(%r12,%rcx)
movb $0x20, 0x12(%r12,%rcx)
movl $0x4040, 0x14(%r12,%rcx) # imm = 0x4040
movzwl 0x1c(%rdx), %edx
movw %dx, 0x1c(%r12,%rcx)
movl $0x0, 0x20(%r12,%rcx)
movw $0x0, 0x24(%r12,%rcx)
movw %r14w, 0x1e(%r12,%rcx)
movl $0x3f, 0x26(%r12,%rcx)
movw $0xffff, 0x2a(%r12,%rcx) # imm = 0xFFFF
leaq (%rax,%rax,2), %rsi
shlq $0x2, %rsi
addq 0xbc89a(%rip), %rsi     # 0xcdfb8
movl $0x3, %edx
callq 0x5da55
movl %ebp, %edi
callq 0x1e99d
movl %r15d, %r14d
testw %r15w, %r15w
jns 0x11503
jmp 0x1178b
movl %r13d, %edi
callq 0x1088a
movl %r13d, %edi
testl %eax, %eax
je 0x11757
callq 0x19791
jmp 0x115eb
movl $0x1f4, %esi            # imm = 0x1F4
callq 0x21942
cmpl $0x1, %eax
jne 0x11658
leaq 0x11ca9f(%rip), %rax    # 0x12e210
movq (%rax,%rbx,8), %rax
movswl 0x1e(%rax), %esi
movl %r13d, %edi
movl $0x3, %edx
callq 0xf44e
jmp 0x11658
leaq 0x55abee(%rip), %rax    # 0x56c380
movzwl 0x708(%rax), %ebx
testw %bx, %bx
js 0x118a9
leaq 0x5633e7(%rip), %r14    # 0x574b90
leaq 0x11ca60(%rip), %r15    # 0x12e210
leaq 0x1e4a59(%rip), %r12    # 0x1f6210
movl $0x400, %ebp            # imm = 0x400
movl $0xfffffc00, %r13d      # imm = 0xFFFFFC00
movzwl %bx, %eax
movzwl (%r14,%rax,2), %ebx
movq (%r15,%rax,8), %rcx
movswl 0x20(%rcx), %edx
leal (%rdx,%rdx,2), %edx
sarl $0x5, %edx
addl %edx, (%rcx)
movq (%r15,%rax,8), %rcx
movswl 0x22(%rcx), %edx
leal (%rdx,%rdx,2), %edx
sarl $0x5, %edx
addl %edx, 0x4(%rcx)
movq (%r15,%rax,8), %rcx
movswl 0x24(%rcx), %edx
leal (%rdx,%rdx,2), %edx
sarl $0x5, %edx
addl %edx, 0x8(%rcx)
movq (%r15,%rax,8), %rcx
addw $0x180, 0x24(%rcx)      # imm = 0x180
movq (%r15,%rax,8), %rcx
movswq 0x18(%rcx), %rdx
movq (%r12,%rdx,8), %rdx
movl 0x4(%rdx), %edx
addl %ebp, %edx
cmpl %edx, 0x8(%rcx)
jge 0x11830
movl %edx, 0x8(%rcx)
movq (%r15,%rax,8), %rcx
movswl 0x24(%rcx), %edx
sarl %edx
negl %edx
movw %dx, 0x24(%rcx)
movq (%r15,%rax,8), %rcx
movswq 0x18(%rcx), %rdx
movq (%r12,%rdx,8), %rdx
movl 0x8(%rdx), %edx
addl %r13d, %edx
cmpl %edx, 0x8(%rcx)
jle 0x11884
movl %edx, 0x8(%rcx)
movq (%r15,%rax,8), %rcx
cmpw $0x540, 0xe(%rcx)       # imm = 0x540
jne 0x11878
xorl %edx, %edx
movw %dx, 0x20(%rcx)
movq (%r15,%rax,8), %rcx
movw %dx, 0x22(%rcx)
movq (%r15,%rax,8), %rcx
movw %dx, 0x24(%rcx)
movq (%r15,%rax,8), %rcx
orw $0x20, 0xc(%rcx)
jmp 0x11884
movswl 0x24(%rcx), %edx
sarl %edx
negl %edx
movw %dx, 0x24(%rcx)
movq (%r15,%rax,8), %rcx
addw $-0x3, 0x26(%rcx)
movq (%r15,%rax,8), %rcx
cmpw $0x0, 0x26(%rcx)
jns 0x118a0
movswl %ax, %edi
callq 0x1e99d
testw %bx, %bx
jns 0x117c2
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq