// File: /workspace/github_c_makefile_star2_O3/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 0x55e6da(%rip), %rax    # 0x56f3a0
movzwl 0x58c(%rax), %r12d
testw %r12w, %r12w
js 0x10f4a
leaq 0x566ed1(%rip), %r15    # 0x577bb0
leaq 0x12054a(%rip), %r13    # 0x131230
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 0x1d136
movl %eax, %r14d
movzwl %ax, %eax
cmpl $0xc000, %eax           # imm = 0xC000
jb 0x10dc9
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 0x1eb75
testl %eax, %eax
je 0x10ddf
movslq %r15d, %rax
leaq 0x1c84bb(%rip), %rcx    # 0x1d9230
movq (%rcx,%rax,8), %rax
movzwl 0xe(%rax), %eax
cmpl $0x92c, %eax            # imm = 0x92C
jg 0x10df7
cmpl $0x79d, %eax            # imm = 0x79D
movq %r13, %r15
jg 0x10e38
cmpl $0x708, %eax            # imm = 0x708
movq %r12, %r13
jg 0x10eac
cmpl $0x163, %eax            # imm = 0x163
movzwl 0x12(%rsp), %r12d
je 0x10f2b
cmpl $0x45b, %eax            # imm = 0x45B
je 0x10f2b
cmpl $0x6d7, %eax            # imm = 0x6D7
je 0x10f2b
jmp 0x10dd3
testw %r14w, %r14w
je 0x10f40
movl %ebx, %edi
callq 0x27962
jmp 0x10f39
movl %ebx, %edi
callq 0x27962
movq %r13, %r15
movq %r12, %r13
movzwl 0x12(%rsp), %r12d
jmp 0x10f39
cmpl $0xa7c, %eax            # imm = 0xA7C
movq %r13, %r15
jg 0x10e72
cmpl $0x9c9, %eax            # imm = 0x9C9
movq %r12, %r13
jg 0x10ecc
cmpl $0x92d, %eax            # imm = 0x92D
movzwl 0x12(%rsp), %r12d
je 0x10f2b
cmpl $0x947, %eax            # imm = 0x947
je 0x10f2b
cmpl $0x983, %eax            # imm = 0x983
je 0x10f2b
jmp 0x10dd3
cmpl $0x84c, %eax            # imm = 0x84C
movq %r12, %r13
jg 0x10eec
cmpl $0x79e, %eax            # imm = 0x79E
movzwl 0x12(%rsp), %r12d
je 0x10f2b
cmpl $0x7d3, %eax            # imm = 0x7D3
je 0x10f2b
cmpl $0x811, %eax            # imm = 0x811
je 0x10f2b
jmp 0x10dd3
cmpl $0xb3a, %eax            # imm = 0xB3A
movq %r12, %r13
jg 0x10f0c
cmpl $0xa7d, %eax            # imm = 0xA7D
movzwl 0x12(%rsp), %r12d
je 0x10f2b
cmpl $0xac0, %eax            # imm = 0xAC0
je 0x10f2b
cmpl $0xaff, %eax            # imm = 0xAFF
je 0x10f2b
jmp 0x10dd3
cmpl $0x709, %eax            # imm = 0x709
movzwl 0x12(%rsp), %r12d
je 0x10f2b
cmpl $0x72a, %eax            # imm = 0x72A
je 0x10f2b
cmpl $0x75f, %eax            # imm = 0x75F
je 0x10f2b
jmp 0x10dd3
cmpl $0x9ca, %eax            # imm = 0x9CA
movzwl 0x12(%rsp), %r12d
je 0x10f2b
cmpl $0xa05, %eax            # imm = 0xA05
je 0x10f2b
cmpl $0xa41, %eax            # imm = 0xA41
je 0x10f2b
jmp 0x10dd3
cmpl $0x84d, %eax            # imm = 0x84D
movzwl 0x12(%rsp), %r12d
je 0x10f2b
cmpl $0x889, %eax            # imm = 0x889
je 0x10f2b
cmpl $0x8d3, %eax            # imm = 0x8D3
je 0x10f2b
jmp 0x10dd3
cmpl $0xb3b, %eax            # imm = 0xB3B
movzwl 0x12(%rsp), %r12d
je 0x10f2b
cmpl $0xbb9, %eax            # imm = 0xBB9
je 0x10f2b
cmpl $0xb77, %eax            # imm = 0xB77
jne 0x10dd3
movzwl %r14w, %edi
movl $0x534, %esi            # imm = 0x534
callq 0x2106c
movl %ebp, %edi
callq 0x1eb19
testw %r12w, %r12w
jns 0x10ce6
leaq 0x55e44f(%rip), %rax    # 0x56f3a0
movzwl 0x59c(%rax), %r14d
testw %r14w, %r14w
js 0x110e9
leaq 0x566c46(%rip), %r15    # 0x577bb0
leaq 0x1202bf(%rip), %rbx    # 0x131230
movzwl %r14w, %r12d
movzwl (%r15,%r12,2), %r14d
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 0x1d136
movl %eax, %r13d
movzwl %ax, %eax
cmpl $0xc000, %eax           # imm = 0xC000
jb 0x11004
andl $0xfff, %r13d           # imm = 0xFFF
movl %r13d, %edi
leaq 0x14(%rsp), %rsi
callq 0x22de9
testl %eax, %eax
je 0x11013
movl 0x14(%rsp), %edi
callq 0xf582
movswl 0x14(%rsp), %edi
movq (%rbx,%r12,8), %rax
movswl 0x1e(%rax), %esi
movl $0x7, %edx
callq 0xf3d7
jmp 0x1109d
testw %r13w, %r13w
jne 0x1109d
jmp 0x110ac
movq (%rbx,%r12,8), %rax
movzwl 0xe(%rax), %eax
movl %r13d, %ecx
movq (%rbx,%rcx,8), %rcx
cmpw 0xe(%rcx), %ax
je 0x1109d
movl %r13d, %edi
callq 0x20ece
testl %eax, %eax
je 0x11059
leaq 0x7e430(%rip), %rdi     # 0x8f46b
xorl %eax, %eax
callq 0x14be7
movq (%rbx,%r12,8), %rax
movswl 0x1e(%rax), %esi
movl %r13d, %edi
movl $0x3, %edx
callq 0xf46a
jmp 0x11090
movl %r13d, %edi
callq 0x20e82
testl %eax, %eax
je 0x110b8
leaq 0x7e40e(%rip), %rdi     # 0x8f47a
xorl %eax, %eax
callq 0x14be7
movq (%rbx,%r12,8), %rax
movswl 0x1e(%rax), %esi
movl %r13d, %edi
movl $0x3, %edx
callq 0xf46a
movl %r13d, %edi
callq 0x22cda
movl %r13d, %edi
movl $0x3e7, %esi            # imm = 0x3E7
callq 0x48fa7
movl %r12d, %edi
callq 0x27722
movl %ebp, %edi
callq 0x1eb19
testw %r14w, %r14w
jns 0x10f71
jmp 0x110e9
movl %r13d, %edi
callq 0x2784f
movl %r13d, %edi
movl $0x1f4, %esi            # imm = 0x1F4
callq 0x21ba2
cmpl $0x1, %eax
jne 0x1109d
movq (%rbx,%r12,8), %rax
movswl 0x1e(%rax), %esi
movl %r13d, %edi
movl $0x3, %edx
callq 0xf46a
jmp 0x1109d
leaq 0x55e2b0(%rip), %rax    # 0x56f3a0
movzwl 0x5a0(%rax), %r14d
testw %r14w, %r14w
js 0x111bb
leaq 0x566aa7(%rip), %r15    # 0x577bb0
leaq 0x120120(%rip), %r12    # 0x131230
leaq 0x14(%rsp), %rbx
movzwl %r14w, %r13d
movzwl (%r15,%r13,2), %r14d
movq (%r12,%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, %edi
movl $0x400, %r8d            # imm = 0x400
movl $0x400, %r9d            # imm = 0x400
callq 0x1d136
movl %eax, %ebp
movzwl %ax, %eax
cmpl $0xc000, %eax           # imm = 0xC000
jb 0x111a3
andl $0xfff, %ebp            # imm = 0xFFF
movl %ebp, %edi
movq %rbx, %rsi
callq 0x22de9
testl %eax, %eax
jne 0x111a8
movl %ebp, %edi
movl $0x1f4, %esi            # imm = 0x1F4
callq 0x21ba2
cmpl $0x1, %eax
jne 0x111a8
movq (%r12,%r13,8), %rax
movswl 0x1e(%rax), %esi
movl %ebp, %edi
movl $0x8, %edx
callq 0xf46a
jmp 0x111a8
testw %bp, %bp
je 0x111b1
movswl %r13w, %edi
callq 0x1eb19
testw %r14w, %r14w
jns 0x11115
leaq 0x55e1de(%rip), %rax    # 0x56f3a0
movzwl 0x594(%rax), %r14d
testw %r14w, %r14w
js 0x1135a
leaq 0x5669d5(%rip), %r15    # 0x577bb0
leaq 0x12004e(%rip), %rbx    # 0x131230
movzwl %r14w, %r12d
movzwl (%r15,%r12,2), %r14d
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 0x1d136
movl %eax, %r13d
movzwl %ax, %eax
cmpl $0xc000, %eax           # imm = 0xC000
jb 0x11275
andl $0xfff, %r13d           # imm = 0xFFF
movl %r13d, %edi
leaq 0x14(%rsp), %rsi
callq 0x22de9
testl %eax, %eax
je 0x11284
movl 0x14(%rsp), %edi
callq 0xf582
movswl 0x14(%rsp), %edi
movq (%rbx,%r12,8), %rax
movswl 0x1e(%rax), %esi
movl $0x3, %edx
callq 0xf3d7
jmp 0x1130e
testw %r13w, %r13w
jne 0x1130e
jmp 0x1131d
movq (%rbx,%r12,8), %rax
movzwl 0xe(%rax), %eax
movl %r13d, %ecx
movq (%rbx,%rcx,8), %rcx
cmpw 0xe(%rcx), %ax
je 0x1130e
movl %r13d, %edi
callq 0x20ece
testl %eax, %eax
je 0x112ca
leaq 0x7e1bf(%rip), %rdi     # 0x8f46b
xorl %eax, %eax
callq 0x14be7
movq (%rbx,%r12,8), %rax
movswl 0x1e(%rax), %esi
movl %r13d, %edi
movl $0x3, %edx
callq 0xf46a
jmp 0x11301
movl %r13d, %edi
callq 0x20e82
testl %eax, %eax
je 0x11329
leaq 0x7e19d(%rip), %rdi     # 0x8f47a
xorl %eax, %eax
callq 0x14be7
movq (%rbx,%r12,8), %rax
movswl 0x1e(%rax), %esi
movl %r13d, %edi
movl $0x3, %edx
callq 0xf46a
movl %r13d, %edi
callq 0x22cda
movl %r13d, %edi
movl $0x3e7, %esi            # imm = 0x3E7
callq 0x48fa7
movl %r12d, %edi
callq 0x27722
movl %ebp, %edi
callq 0x1eb19
testw %r14w, %r14w
jns 0x111e2
jmp 0x1135a
movl %r13d, %edi
callq 0x2784f
movl %r13d, %edi
movl $0x1f4, %esi            # imm = 0x1F4
callq 0x21ba2
cmpl $0x1, %eax
jne 0x1130e
movq (%rbx,%r12,8), %rax
movswl 0x1e(%rax), %esi
movl %r13d, %edi
movl $0x3, %edx
callq 0xf46a
jmp 0x1130e
leaq 0x55e03f(%rip), %rax    # 0x56f3a0
movzwl 0x598(%rax), %ebx
testw %bx, %bx
js 0x11552
movl $0x1ffe0, %r14d         # imm = 0x1FFE0
leaq 0x11feb2(%rip), %r15    # 0x131230
movzwl %bx, %r13d
leaq 0x566827(%rip), %rax    # 0x577bb0
movzwl (%rax,%r13,2), %ebx
leaq 0x7e0f4(%rip), %rdi     # 0x8f489
callq 0x2d112
andl $0x40, %eax
addl %r14d, %eax
shrl %eax
movq (%r15,%r13,8), %rcx
addw %ax, 0x20(%rcx)
leaq 0x7e0e1(%rip), %rdi     # 0x8f492
callq 0x2d112
andl $0x40, %eax
addl %r14d, %eax
shrl %eax
movq (%r15,%r13,8), %rcx
addw %ax, 0x22(%rcx)
leaq 0x7e0ce(%rip), %rdi     # 0x8f49b
callq 0x2d112
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 0x1d136
movl %eax, %r12d
movzwl %ax, %eax
cmpl $0xc000, %eax           # imm = 0xC000
jb 0x1146e
andl $0xfff, %r12d           # imm = 0xFFF
movl %r12d, %edi
leaq 0x14(%rsp), %rsi
callq 0x22de9
testl %eax, %eax
je 0x1147d
movl 0x14(%rsp), %edi
callq 0xf582
movswl 0x14(%rsp), %edi
movq (%r15,%r13,8), %rax
movswl 0x1e(%rax), %esi
movl $0x3, %edx
callq 0xf3d7
jmp 0x11507
testw %r12w, %r12w
jne 0x11507
jmp 0x11516
movq (%r15,%r13,8), %rax
movzwl 0xe(%rax), %eax
movl %r12d, %ecx
movq (%r15,%rcx,8), %rcx
cmpw 0xe(%rcx), %ax
je 0x11507
movl %r12d, %edi
callq 0x20ece
testl %eax, %eax
je 0x114c3
leaq 0x7dfc6(%rip), %rdi     # 0x8f46b
xorl %eax, %eax
callq 0x14be7
movq (%r15,%r13,8), %rax
movswl 0x1e(%rax), %esi
movl %r12d, %edi
movl $0x3, %edx
callq 0xf46a
jmp 0x114fa
movl %r12d, %edi
callq 0x20e82
testl %eax, %eax
je 0x11521
leaq 0x7dfa4(%rip), %rdi     # 0x8f47a
xorl %eax, %eax
callq 0x14be7
movq (%r15,%r13,8), %rax
movswl 0x1e(%rax), %esi
movl %r12d, %edi
movl $0x3, %edx
callq 0xf46a
movl %r12d, %edi
callq 0x22cda
movl %r12d, %edi
movl $0x3e7, %esi            # imm = 0x3E7
callq 0x48fa7
movl %r13d, %edi
callq 0x27722
movl %ebp, %edi
callq 0x1eb19
testw %bx, %bx
jns 0x1137e
jmp 0x11552
movl %r12d, %edi
callq 0x2784f
movl %r12d, %edi
movl $0x1f4, %esi            # imm = 0x1F4
callq 0x21ba2
cmpl $0x1, %eax
jne 0x11507
movq (%r15,%r13,8), %rax
movswl 0x1e(%rax), %esi
movl %r12d, %edi
movl $0x3, %edx
callq 0xf46a
jmp 0x11507
leaq 0x55de47(%rip), %rax    # 0x56f3a0
movzwl 0x590(%rax), %ebx
testw %bx, %bx
js 0x117e6
leaq 0x41c5c0(%rip), %r15    # 0x42db30
movzwl %bx, %r14d
leaq 0x566635(%rip), %rax    # 0x577bb0
movzwl (%rax,%r14,2), %r13d
leaq 0x11fca9(%rip), %rax    # 0x131230
movq (%rax,%r14,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 %r14w, %ebp
movl %ebp, %edi
movl $0x400, %r8d            # imm = 0x400
movl $0x400, %r9d            # imm = 0x400
callq 0x1d136
movl %eax, %r12d
movzwl %ax, %eax
cmpl $0xc000, %eax           # imm = 0xC000
jb 0x11618
andl $0xfff, %r12d           # imm = 0xFFF
movl %r12d, %edi
leaq 0x14(%rsp), %rsi
callq 0x22de9
testl %eax, %eax
je 0x11627
movl 0x14(%rsp), %edi
callq 0xf582
movswl 0x14(%rsp), %edi
leaq 0x11fc2f(%rip), %rax    # 0x131230
movq (%rax,%r14,8), %rax
movswl 0x1e(%rax), %esi
movl $0x4, %edx
callq 0xf3d7
jmp 0x116ce
testw %r12w, %r12w
jne 0x116ce
jmp 0x1178a
leaq 0x11fc02(%rip), %rdx    # 0x131230
movq (%rdx,%r14,8), %rax
movzwl 0xe(%rax), %eax
movl %r12d, %ecx
movq (%rdx,%rcx,8), %rcx
cmpw 0xe(%rcx), %ax
je 0x116ce
movl %r12d, %edi
callq 0x20ece
testl %eax, %eax
je 0x1167f
leaq 0x7de11(%rip), %rdi     # 0x8f46b
xorl %eax, %eax
callq 0x14be7
leaq 0x11fbc8(%rip), %rax    # 0x131230
movq (%rax,%r14,8), %rax
movswl 0x1e(%rax), %esi
movl %r12d, %edi
movl $0x4, %edx
callq 0xf46a
jmp 0x116c1
movl %r12d, %edi
callq 0x20e82
testl %eax, %eax
je 0x11799
leaq 0x7dde4(%rip), %rdi     # 0x8f47a
xorl %eax, %eax
callq 0x14be7
leaq 0x11fb8c(%rip), %rax    # 0x131230
movq (%rax,%r14,8), %rax
movswl 0x1e(%rax), %esi
movl %r12d, %edi
movl $0x4, %edx
callq 0xf46a
movl %r12d, %edi
callq 0x22cda
movl %r12d, %edi
movl $0x3e7, %esi            # imm = 0x3E7
callq 0x48fa7
imulq $0x2c, %r14, %rax
movswl 0x18(%r15,%rax), %edi
movl $0x3, %esi
callq 0x1eac8
cmpw $-0x1, %ax
je 0x11783
movswq %ax, %rax
imulq $0x2c, %rax, %rcx
leaq (%r15,%rcx), %rdi
leaq 0x11fb31(%rip), %rdx    # 0x131230
movq (%rdx,%r14,8), %rdx
movl (%rdx), %esi
movl %esi, (%r15,%rcx)
movl 0x4(%rdx), %esi
movl %esi, 0x4(%r15,%rcx)
movl 0x8(%rdx), %esi
movl $0x800, %r8d            # imm = 0x800
addl %r8d, %esi
movl %esi, 0x8(%r15,%rcx)
movl $0x1ab0000, 0xc(%r15,%rcx) # imm = 0x1AB0000
movw $0xfc, 0x10(%r15,%rcx)
movb $0x20, 0x12(%r15,%rcx)
movl $0x4040, 0x14(%r15,%rcx) # imm = 0x4040
movzwl 0x1c(%rdx), %edx
movw %dx, 0x1c(%r15,%rcx)
movw %bx, 0x1e(%r15,%rcx)
movabsq $0x3f000000000000, %rdx # imm = 0x3F000000000000
movq %rdx, 0x20(%r15,%rcx)
movl $0xffff0000, 0x28(%r15,%rcx) # imm = 0xFFFF0000
leaq (%rax,%rax,2), %rsi
shlq $0x2, %rsi
addq 0xbf837(%rip), %rsi     # 0xd0fb0
movl $0x3, %edx
callq 0x6110e
movl %ebp, %edi
callq 0x1eb19
movl %r13d, %ebx
testw %r13w, %r13w
jns 0x11570
jmp 0x117e6
movl %r12d, %edi
callq 0x108e2
movl %r12d, %edi
testl %eax, %eax
je 0x117b2
callq 0x1988c
jmp 0x11661
movl $0x1f4, %esi            # imm = 0x1F4
callq 0x21ba2
cmpl $0x1, %eax
jne 0x116ce
leaq 0x11fa64(%rip), %rax    # 0x131230
movq (%rax,%r14,8), %rax
movswl 0x1e(%rax), %esi
movl %r12d, %edi
movl $0x3, %edx
callq 0xf46a
jmp 0x116ce
leaq 0x55dbb3(%rip), %rax    # 0x56f3a0
movzwl 0x708(%rax), %ebx
testw %bx, %bx
js 0x11908
leaq 0x5663ac(%rip), %r14    # 0x577bb0
leaq 0x11fa25(%rip), %r15    # 0x131230
leaq 0x1e7a1e(%rip), %r12    # 0x1f9230
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
movl 0x8(%rcx), %edx
movswq 0x18(%rcx), %rsi
movq (%r12,%rsi,8), %rsi
movl 0x4(%rsi), %edi
addl %ebp, %edi
cmpl %edi, %edx
jge 0x1189d
movl %edi, 0x8(%rcx)
movq (%r15,%rax,8), %rcx
movswl 0x24(%rcx), %edx
sarl %edx
negl %edx
movw %dx, 0x24(%rcx)
movq (%r15,%rax,8), %rcx
movl 0x8(%rcx), %edx
movswq 0x18(%rcx), %rsi
movq (%r12,%rsi,8), %rsi
movl 0x8(%rsi), %esi
addl %r13d, %esi
cmpl %esi, %edx
jle 0x118e3
movl %esi, 0x8(%rcx)
movq (%r15,%rax,8), %rcx
cmpw $0x540, 0xe(%rcx)       # imm = 0x540
jne 0x118d7
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 0x118e3
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 0x118ff
movswl %ax, %edi
callq 0x1eb19
testw %bx, %bx
jns 0x1181d
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq