// File: /workspace/github_c_makefile_star2_O2/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 0x5557e0(%rip), %rax    # 0x5653a0
movzwl 0x58c(%rax), %r15d
leaq 0x117661(%rip), %r13    # 0x127230
leaq 0x1bf65a(%rip), %r12    # 0x1cf230
testw %r15w, %r15w
js 0xfd4c
movswl %r15w, %ebx
movl %ebx, %eax
leaq 0x55dfc3(%rip), %rcx    # 0x56dbb0
movzwl (%rcx,%rax,2), %r15d
movq (%r13,%rax,8), %rax
movswl 0x20(%rax), %ecx
imull $0x1800, %ecx, %esi     # imm = 0x1800
movswl 0x22(%rax), %ecx
imull $0x1800, %ecx, %edx     # imm = 0x1800
movswl 0x24(%rax), %eax
imull $0x18, %eax, %ecx
movl $0x1, (%rsp)
movl %ebx, %edi
movl $0x400, %r8d            # imm = 0x400
movl $0x400, %r9d            # imm = 0x400
callq 0x1b89a
movl %eax, %r14d
cmpw $0xc000, %ax            # imm = 0xC000
jb 0xfd2f
andl $0xfff, %r14d           # imm = 0xFFF
movq (%r13,%r14,8), %rax
movswl 0x2a(%rax), %ebp
movl %ebp, %edi
callq 0x1cfb8
testl %eax, %eax
je 0xfd39
movslq %ebp, %rax
movq (%r12,%rax,8), %rax
movzwl 0xe(%rax), %eax
cmpl $0x163, %eax            # imm = 0x163
je 0xfd1f
cmpl $0x45b, %eax            # imm = 0x45B
je 0xfd1f
cmpl $0x6d7, %eax            # imm = 0x6D7
je 0xfd1f
cmpl $0x709, %eax            # imm = 0x709
je 0xfd1f
cmpl $0x72a, %eax            # imm = 0x72A
je 0xfd1f
cmpl $0x75f, %eax            # imm = 0x75F
je 0xfd1f
cmpl $0x79e, %eax            # imm = 0x79E
je 0xfd1f
cmpl $0x7d3, %eax            # imm = 0x7D3
je 0xfd1f
cmpl $0x811, %eax            # imm = 0x811
je 0xfd1f
cmpl $0x84d, %eax            # imm = 0x84D
je 0xfd1f
cmpl $0x889, %eax            # imm = 0x889
je 0xfd1f
cmpl $0x8d3, %eax            # imm = 0x8D3
je 0xfd1f
cmpl $0x92d, %eax            # imm = 0x92D
je 0xfd1f
cmpl $0x947, %eax            # imm = 0x947
je 0xfd1f
cmpl $0x983, %eax            # imm = 0x983
je 0xfd1f
cmpl $0x9ca, %eax            # imm = 0x9CA
je 0xfd1f
cmpl $0xa05, %eax            # imm = 0xA05
je 0xfd1f
cmpl $0xa41, %eax            # imm = 0xA41
je 0xfd1f
cmpl $0xa7d, %eax            # imm = 0xA7D
je 0xfd1f
cmpl $0xac0, %eax            # imm = 0xAC0
je 0xfd1f
cmpl $0xaff, %eax            # imm = 0xAFF
je 0xfd1f
cmpl $0xb3b, %eax            # imm = 0xB3B
je 0xfd1f
cmpl $0xbb9, %eax            # imm = 0xBB9
je 0xfd1f
cmpl $0xb77, %eax            # imm = 0xB77
jne 0xfd39
movzwl %r14w, %edi
movl $0x534, %esi            # imm = 0x534
callq 0x1f229
jmp 0xfd40
testw %r14w, %r14w
je 0xfbd6
movl %ebx, %edi
callq 0x250c9
movl %ebx, %edi
callq 0x1cf5e
jmp 0xfbd6
leaq 0x55564d(%rip), %rax    # 0x5653a0
movzwl 0x59c(%rax), %r15d
leaq 0x14(%rsp), %rbx
pushq $0x7
popq %r12
testw %r15w, %r15w
js 0xff00
movswl %r15w, %r13d
movl %r13d, %ebp
leaq 0x55de34(%rip), %rax    # 0x56dbb0
movzwl (%rax,%rbp,2), %r15d
leaq 0x1174a8(%rip), %rax    # 0x127230
movq (%rax,%rbp,8), %rax
movswl 0x20(%rax), %ecx
imull $0xc00, %ecx, %esi      # imm = 0xC00
movswl 0x22(%rax), %ecx
imull $0xc00, %ecx, %edx      # imm = 0xC00
movswl 0x24(%rax), %eax
imull $0x18, %eax, %ecx
movl $0x1, (%rsp)
movl %r13d, %edi
movl $0x400, %r8d            # imm = 0x400
movl $0x400, %r9d            # imm = 0x400
callq 0x1b89a
movl %eax, %r14d
cmpw $0xc000, %ax            # imm = 0xC000
jb 0xfe0b
andl $0xfff, %r14d           # imm = 0xFFF
movl %r14d, %edi
movq %rbx, %rsi
callq 0x20d25
testl %eax, %eax
je 0xfe1a
movl 0x14(%rsp), %edi
callq 0xe5f6
movswl 0x14(%rsp), %edi
leaq 0x11743a(%rip), %rax    # 0x127230
movq (%rax,%rbp,8), %rax
movswl 0x1e(%rax), %esi
movl %r12d, %edx
callq 0xe47f
jmp 0xfeb5
testw %r14w, %r14w
jne 0xfeb5
jmp 0xfd64
leaq 0x11740f(%rip), %rdx    # 0x127230
movq (%rdx,%rbp,8), %rax
movzwl 0xe(%rax), %eax
movl %r14d, %ecx
movq (%rdx,%rcx,8), %rcx
cmpw 0xe(%rcx), %ax
je 0xfeb5
movl %r14d, %edi
callq 0x1f09c
testl %eax, %eax
je 0xfe6c
leaq 0x71622(%rip), %rdi     # 0x8146b
xorl %eax, %eax
callq 0x1373a
leaq 0x1173d9(%rip), %rax    # 0x127230
movq (%rax,%rbp,8), %rax
movswl 0x1e(%rax), %esi
movl %r14d, %edi
pushq $0x3
popq %rdx
callq 0xe4fa
jmp 0xfea8
movl %r14d, %edi
callq 0x1f051
testl %eax, %eax
je 0xfeca
leaq 0x715fb(%rip), %rdi     # 0x8147a
xorl %eax, %eax
callq 0x1373a
leaq 0x1173a3(%rip), %rax    # 0x127230
movq (%rax,%rbp,8), %rax
movswl 0x1e(%rax), %esi
movl %r14d, %edi
pushq $0x3
popq %rdx
callq 0xe4fa
movl %r14d, %edi
callq 0x20c20
movl %r14d, %edi
movl $0x3e7, %esi            # imm = 0x3E7
callq 0x44444
movl %r13d, %edi
callq 0x24e9d
movl %r13d, %edi
callq 0x1cf5e
jmp 0xfd64
movl %r14d, %edi
callq 0x24fbe
movl %r14d, %edi
movl $0x1f4, %esi            # imm = 0x1F4
callq 0x1fc8e
cmpl $0x1, %eax
jne 0xfeb5
leaq 0x117345(%rip), %rax    # 0x127230
movq (%rax,%rbp,8), %rax
movswl 0x1e(%rax), %esi
movl %r14d, %edi
pushq $0x3
popq %rdx
callq 0xe4fa
jmp 0xfeb5
leaq 0x555499(%rip), %rax    # 0x5653a0
movzwl 0x5a0(%rax), %eax
leaq 0x14(%rsp), %rbx
pushq $0x8
popq %rbp
testw %ax, %ax
js 0xffdd
movzwl %ax, %r13d
leaq 0x55dc86(%rip), %rcx    # 0x56dbb0
movzwl (%rcx,%r13,2), %r12d
leaq 0x1172fa(%rip), %rcx    # 0x127230
movq (%rcx,%r13,8), %rcx
movswl 0x20(%rcx), %edx
imull $0x3000, %edx, %esi     # imm = 0x3000
movswl 0x22(%rcx), %edx
imull $0x3000, %edx, %edx     # imm = 0x3000
movswl 0x24(%rcx), %ecx
imull $0x30, %ecx, %ecx
movl $0x1, (%rsp)
movswl %ax, %r14d
movl %r14d, %edi
movl $0x400, %r8d            # imm = 0x400
movl $0x400, %r9d            # imm = 0x400
callq 0x1b89a
movl %eax, %r15d
cmpw $0xc000, %ax            # imm = 0xC000
jb 0xffc0
andl $0xfff, %r15d           # imm = 0xFFF
movl %r15d, %edi
movq %rbx, %rsi
callq 0x20d25
testl %eax, %eax
jne 0xffcd
movl %r15d, %edi
movl $0x1f4, %esi            # imm = 0x1F4
callq 0x1fc8e
cmpl $0x1, %eax
jne 0xffcd
leaq 0x117284(%rip), %rax    # 0x127230
movq (%rax,%r13,8), %rax
movswl 0x1e(%rax), %esi
movl %r15d, %edi
movl %ebp, %edx
callq 0xe4fa
jmp 0xffcd
movl %r12d, %eax
testw %r15w, %r15w
je 0xff16
movl %r14d, %edi
callq 0x1cf5e
movl %r12d, %eax
jmp 0xff16
leaq 0x5553bc(%rip), %rax    # 0x5653a0
movzwl 0x594(%rax), %r14d
leaq 0x14(%rsp), %rbx
pushq $0x3
popq %rbp
testw %r14w, %r14w
js 0x1018c
movswl %r14w, %r12d
movl %r12d, %r15d
leaq 0x55dba4(%rip), %rax    # 0x56dbb0
movzwl (%rax,%r15,2), %r14d
leaq 0x117218(%rip), %rax    # 0x127230
movq (%rax,%r15,8), %rax
movswl 0x20(%rax), %ecx
imull $0x3000, %ecx, %esi     # imm = 0x3000
movswl 0x22(%rax), %ecx
imull $0x3000, %ecx, %edx     # imm = 0x3000
movswl 0x24(%rax), %eax
imull $0x30, %eax, %ecx
movl $0x1, (%rsp)
movl %r12d, %edi
movl $0x400, %r8d            # imm = 0x400
movl $0x400, %r9d            # imm = 0x400
callq 0x1b89a
movl %eax, %r13d
cmpw $0xc000, %ax            # imm = 0xC000
jb 0x1009a
andl $0xfff, %r13d           # imm = 0xFFF
movl %r13d, %edi
movq %rbx, %rsi
callq 0x20d25
testl %eax, %eax
je 0x100a9
movl 0x14(%rsp), %edi
callq 0xe5f6
movswl 0x14(%rsp), %edi
leaq 0x1171aa(%rip), %rax    # 0x127230
movq (%rax,%r15,8), %rax
movswl 0x1e(%rax), %esi
movl %ebp, %edx
callq 0xe47f
jmp 0x10142
testw %r13w, %r13w
jne 0x10142
jmp 0xfff4
leaq 0x117180(%rip), %rdx    # 0x127230
movq (%rdx,%r15,8), %rax
movzwl 0xe(%rax), %eax
movl %r13d, %ecx
movq (%rdx,%rcx,8), %rcx
cmpw 0xe(%rcx), %ax
je 0x10142
movl %r13d, %edi
callq 0x1f09c
testl %eax, %eax
je 0x100fa
leaq 0x71393(%rip), %rdi     # 0x8146b
xorl %eax, %eax
callq 0x1373a
leaq 0x11714a(%rip), %rax    # 0x127230
movq (%rax,%r15,8), %rax
movswl 0x1e(%rax), %esi
movl %r13d, %edi
movl %ebp, %edx
callq 0xe4fa
jmp 0x10135
movl %r13d, %edi
callq 0x1f051
testl %eax, %eax
je 0x10157
leaq 0x7136d(%rip), %rdi     # 0x8147a
xorl %eax, %eax
callq 0x1373a
leaq 0x117115(%rip), %rax    # 0x127230
movq (%rax,%r15,8), %rax
movswl 0x1e(%rax), %esi
movl %r13d, %edi
movl %ebp, %edx
callq 0xe4fa
movl %r13d, %edi
callq 0x20c20
movl %r13d, %edi
movl $0x3e7, %esi            # imm = 0x3E7
callq 0x44444
movl %r12d, %edi
callq 0x24e9d
movl %r12d, %edi
callq 0x1cf5e
jmp 0xfff4
movl %r13d, %edi
callq 0x24fbe
movl %r13d, %edi
movl $0x1f4, %esi            # imm = 0x1F4
callq 0x1fc8e
cmpl $0x1, %eax
jne 0x10142
leaq 0x1170b8(%rip), %rax    # 0x127230
movq (%rax,%r15,8), %rax
movswl 0x1e(%rax), %esi
movl %r13d, %edi
movl %ebp, %edx
callq 0xe4fa
jmp 0x10142
leaq 0x55520d(%rip), %rax    # 0x5653a0
movzwl 0x598(%rax), %ebx
movl $0x1ffe0, %r12d         # imm = 0x1FFE0
leaq 0x712f4(%rip), %r15     # 0x8149b
testw %bx, %bx
js 0x1038c
movswl %bx, %r13d
movl %r13d, %r14d
leaq 0x55d9f2(%rip), %rax    # 0x56dbb0
movzwl (%rax,%r14,2), %ebx
leaq 0x712bf(%rip), %rdi     # 0x81489
callq 0x2945b
andl $0x40, %eax
addl %r12d, %eax
shrl %eax
leaq 0x117052(%rip), %rbp    # 0x127230
movq (%rbp,%r14,8), %rcx
addw %ax, 0x20(%rcx)
leaq 0x712a4(%rip), %rdi     # 0x81492
callq 0x2945b
andl $0x40, %eax
addl %r12d, %eax
shrl %eax
movq (%rbp,%r14,8), %rcx
addw %ax, 0x22(%rcx)
movq %r15, %rdi
callq 0x2945b
andl $0x1e, %eax
addl $0x1fff0, %eax          # imm = 0x1FFF0
shrl %eax
movq (%rbp,%r14,8), %rcx
addw %ax, 0x24(%rcx)
movq (%rbp,%r14,8), %rax
movswl 0x20(%rax), %ecx
imull $0x3000, %ecx, %esi     # imm = 0x3000
movswl 0x22(%rax), %ecx
imull $0x3000, %ecx, %edx     # imm = 0x3000
movswl 0x24(%rax), %eax
imull $0x30, %eax, %ecx
movl $0x1, (%rsp)
movl %r13d, %edi
movl $0x400, %r8d            # imm = 0x400
movl $0x400, %r9d            # imm = 0x400
callq 0x1b89a
movl %eax, %ebp
cmpw $0xc000, %ax            # imm = 0xC000
jb 0x102a2
andl $0xfff, %ebp            # imm = 0xFFF
movl %ebp, %edi
leaq 0x14(%rsp), %rsi
callq 0x20d25
testl %eax, %eax
je 0x102b0
movl 0x14(%rsp), %edi
callq 0xe5f6
movswl 0x14(%rsp), %edi
leaq 0x116fa3(%rip), %rax    # 0x127230
movq (%rax,%r14,8), %rax
movswl 0x1e(%rax), %esi
pushq $0x3
popq %rdx
callq 0xe47f
jmp 0x10344
testw %bp, %bp
jne 0x10344
jmp 0x101a7
leaq 0x116f79(%rip), %rdx    # 0x127230
movq (%rdx,%r14,8), %rax
movzwl 0xe(%rax), %eax
movl %ebp, %ecx
movq (%rdx,%rcx,8), %rcx
cmpw 0xe(%rcx), %ax
je 0x10344
movl %ebp, %edi
callq 0x1f09c
testl %eax, %eax
je 0x102ff
leaq 0x7118e(%rip), %rdi     # 0x8146b
xorl %eax, %eax
callq 0x1373a
leaq 0x116f45(%rip), %rax    # 0x127230
movq (%rax,%r14,8), %rax
movswl 0x1e(%rax), %esi
movl %ebp, %edi
pushq $0x3
popq %rdx
callq 0xe4fa
jmp 0x10338
movl %ebp, %edi
callq 0x1f051
testl %eax, %eax
je 0x10359
leaq 0x71169(%rip), %rdi     # 0x8147a
xorl %eax, %eax
callq 0x1373a
leaq 0x116f11(%rip), %rax    # 0x127230
movq (%rax,%r14,8), %rax
movswl 0x1e(%rax), %esi
movl %ebp, %edi
pushq $0x3
popq %rdx
callq 0xe4fa
movl %ebp, %edi
callq 0x20c20
movl %ebp, %edi
movl $0x3e7, %esi            # imm = 0x3E7
callq 0x44444
movl %r13d, %edi
callq 0x24e9d
movl %r13d, %edi
callq 0x1cf5e
jmp 0x101a7
movl %ebp, %edi
callq 0x24fbe
movl %ebp, %edi
movl $0x1f4, %esi            # imm = 0x1F4
callq 0x1fc8e
cmpl $0x1, %eax
jne 0x10344
leaq 0x116eb8(%rip), %rax    # 0x127230
movq (%rax,%r14,8), %rax
movswl 0x1e(%rax), %esi
movl %ebp, %edi
pushq $0x3
popq %rdx
callq 0xe4fa
jmp 0x10344
leaq 0x55500d(%rip), %rax    # 0x5653a0
movzwl 0x590(%rax), %ebx
leaq 0x41378f(%rip), %r14    # 0x423b30
testw %bx, %bx
js 0x10606
movl %ebx, %r12d
movzwl %bx, %ebp
leaq 0x55d7f9(%rip), %rax    # 0x56dbb0
movzwl (%rax,%rbp,2), %ebx
leaq 0x116e6e(%rip), %rax    # 0x127230
movq (%rax,%rbp,8), %rax
movswl 0x20(%rax), %ecx
imull $0x6000, %ecx, %esi     # imm = 0x6000
movswl 0x22(%rax), %ecx
imull $0x6000, %ecx, %edx     # imm = 0x6000
movswl 0x24(%rax), %eax
imull $0x60, %eax, %ecx
movl $0x1, (%rsp)
movswl %r12w, %r13d
movl %r13d, %edi
movl $0x400, %r8d            # imm = 0x400
movl $0x400, %r9d            # imm = 0x400
callq 0x1b89a
movl %eax, %r15d
cmpw $0xc000, %ax            # imm = 0xC000
jb 0x1044b
andl $0xfff, %r15d           # imm = 0xFFF
movl %r15d, %edi
leaq 0x14(%rsp), %rsi
callq 0x20d25
testl %eax, %eax
je 0x1045a
movl 0x14(%rsp), %edi
callq 0xe5f6
movswl 0x14(%rsp), %edi
leaq 0x116dfa(%rip), %rax    # 0x127230
movq (%rax,%rbp,8), %rax
movswl 0x1e(%rax), %esi
pushq $0x4
popq %rdx
callq 0xe47f
jmp 0x104fd
testw %r15w, %r15w
jne 0x104fd
jmp 0x103a1
leaq 0x116dcf(%rip), %rdx    # 0x127230
movq (%rdx,%rbp,8), %rax
movzwl 0xe(%rax), %eax
movl %r15d, %ecx
movq (%rdx,%rcx,8), %rcx
cmpw 0xe(%rcx), %ax
je 0x104fd
movl %r15d, %edi
callq 0x1f09c
testl %eax, %eax
je 0x104b0
leaq 0x70fde(%rip), %rdi     # 0x8146b
xorl %eax, %eax
callq 0x1373a
leaq 0x116d95(%rip), %rax    # 0x127230
movq (%rax,%rbp,8), %rax
movswl 0x1e(%rax), %esi
movl %r15d, %edi
pushq $0x4
popq %rdx
callq 0xe4fa
jmp 0x104f0
movl %r15d, %edi
callq 0x1f051
testl %eax, %eax
je 0x105bb
leaq 0x70fb3(%rip), %rdi     # 0x8147a
xorl %eax, %eax
callq 0x1373a
leaq 0x116d5b(%rip), %rax    # 0x127230
movq (%rax,%rbp,8), %rax
movswl 0x1e(%rax), %esi
movl %r15d, %edi
pushq $0x4
popq %rdx
callq 0xe4fa
movl %r15d, %edi
callq 0x20c20
movl %r15d, %edi
movl $0x3e7, %esi            # imm = 0x3E7
callq 0x44444
imulq $0x2c, %rbp, %rax
movswl 0x18(%r14,%rax), %edi
pushq $0x3
popq %r15
movl %r15d, %esi
callq 0x1cf0c
cmpw $-0x1, %ax
je 0x105ae
movswq %ax, %rax
imulq $0x2c, %rax, %rcx
leaq (%r14,%rcx), %rdi
leaq 0x116d00(%rip), %rdx    # 0x127230
movq (%rdx,%rbp,8), %rdx
movl (%rdx), %esi
movl %esi, (%r14,%rcx)
movl 0x4(%rdx), %esi
movl %esi, 0x4(%r14,%rcx)
movl 0x8(%rdx), %esi
movl $0x800, %r8d            # imm = 0x800
addl %r8d, %esi
movl %esi, 0x8(%r14,%rcx)
movl $0x1ab0000, 0xc(%r14,%rcx) # imm = 0x1AB0000
movw $0xfc, 0x10(%r14,%rcx)
movb $0x20, 0x12(%r14,%rcx)
movl $0x4040, 0x14(%r14,%rcx) # imm = 0x4040
movzwl 0x1c(%rdx), %edx
movw %dx, 0x1c(%r14,%rcx)
movw %r12w, 0x1e(%r14,%rcx)
movabsq $0x3f000000000000, %rdx # imm = 0x3F000000000000
movq %rdx, 0x20(%r14,%rcx)
movl $0xffff0000, 0x28(%r14,%rcx) # imm = 0xFFFF0000
imulq $0xc, %rax, %rsi
addq 0xb6a12(%rip), %rsi     # 0xc6fb8
movl %r15d, %edx
callq 0x56a36
movl %r13d, %edi
callq 0x1cf5e
jmp 0x103a1
movl %r15d, %edi
callq 0xf8a2
movl %r15d, %edi
testl %eax, %eax
je 0x105d4
callq 0x182ed
jmp 0x10494
movl $0x1f4, %esi            # imm = 0x1F4
callq 0x1fc8e
cmpl $0x1, %eax
jne 0x104fd
leaq 0x116c42(%rip), %rax    # 0x127230
movq (%rax,%rbp,8), %rax
movswl 0x1e(%rax), %esi
movl %r15d, %edi
pushq $0x3
popq %rdx
callq 0xe4fa
jmp 0x104fd
leaq 0x554d93(%rip), %rax    # 0x5653a0
movzwl 0x708(%rax), %r15d
leaq 0x1dec14(%rip), %rbx    # 0x1ef230
movl $0x400, %ebp            # imm = 0x400
movl $0xfffffc00, %r14d      # imm = 0xFFFFFC00
leaq 0x116c02(%rip), %r12    # 0x127230
testw %r15w, %r15w
js 0x10733
movl %r15d, %eax
movzwl %r15w, %ecx
leaq 0x55d56a(%rip), %rdx    # 0x56dbb0
movzwl (%rdx,%rcx,2), %r15d
movq (%r12,%rcx,8), %rdx
movswl 0x20(%rdx), %esi
leal (%rsi,%rsi,2), %esi
sarl $0x5, %esi
addl %esi, (%rdx)
movq (%r12,%rcx,8), %rdx
movswl 0x22(%rdx), %esi
leal (%rsi,%rsi,2), %esi
sarl $0x5, %esi
addl %esi, 0x4(%rdx)
movq (%r12,%rcx,8), %rdx
movswl 0x24(%rdx), %esi
leal (%rsi,%rsi,2), %esi
sarl $0x5, %esi
addl %esi, 0x8(%rdx)
movq (%r12,%rcx,8), %rdx
addw $0x180, 0x24(%rdx)      # imm = 0x180
movq (%r12,%rcx,8), %rdx
movl 0x8(%rdx), %esi
movswq 0x18(%rdx), %rdi
movq (%rbx,%rdi,8), %rdi
movl 0x4(%rdi), %r8d
addl %ebp, %r8d
cmpl %r8d, %esi
jge 0x106c7
movl %r8d, 0x8(%rdx)
movq (%r12,%rcx,8), %rdx
movswl 0x24(%rdx), %esi
sarl %esi
negl %esi
movw %si, 0x24(%rdx)
movq (%r12,%rcx,8), %rdx
movl 0x8(%rdx), %esi
movswq 0x18(%rdx), %rdi
movq (%rbx,%rdi,8), %rdi
movl 0x8(%rdi), %edi
addl %r14d, %edi
cmpl %edi, %esi
jle 0x1070e
movl %edi, 0x8(%rdx)
movq (%r12,%rcx,8), %rdx
cmpw $0x540, 0xe(%rdx)       # imm = 0x540
jne 0x10702
andw $0x0, 0x20(%rdx)
movq (%r12,%rcx,8), %rdx
andw $0x0, 0x22(%rdx)
movq (%r12,%rcx,8), %rdx
andw $0x0, 0x24(%rdx)
movq (%r12,%rcx,8), %rdx
orw $0x20, 0xc(%rdx)
jmp 0x1070e
movswl 0x24(%rdx), %esi
sarl %esi
negl %esi
movw %si, 0x24(%rdx)
movq (%r12,%rcx,8), %rdx
addw $-0x3, 0x26(%rdx)
movq (%r12,%rcx,8), %rcx
cmpw $0x0, 0x26(%rcx)
jns 0x1062e
movswl %ax, %edi
callq 0x1cf5e
jmp 0x1062e
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq