// File: /workspace/github_c_makefile_star2_O1/jonof[P]jftekwar/src/tekspr.c
// Function: checktouchsprite
void
checktouchsprite(short snum, short sectnum)
{
     int      i, nexti;
     int       healthmax;
     char      dosound=0;
     char      str[30];

     if( (sectnum < 0) || (sectnum >= numsectors) ) {
          return;
     }

     memset(str, 0, 30);

     i = headspritesect[sectnum];
     while (i != -1)
     {
          nexti = nextspritesect[i];
          if ((labs(posx[snum]-sprite[i].x)+labs(posy[snum]-sprite[i].y) < 512) && (labs((posz[snum]>>8)-((sprite[i].z>>8)-(tilesizy[sprite[i].picnum]>>1))) <= 40))
          {
               // must jive with tekinitplayer settings
               switch( difficulty ) {
               case 3:
                    healthmax=(MAXHEALTH>>1);
                    break;
               default:
                    healthmax=MAXHEALTH;
                    break;
               }
               switch( sprite[i].picnum ) {
               case MEDICKIT2PIC:
                    if (health[snum] < healthmax) {
                         changehealth(snum,100);
                         jsdeletesprite(i);
                         strcpy(str,"MEDIC KIT");
                         dosound++;
                    }
                    break;
               case MEDICKITPIC:
                    if (health[snum] < healthmax) {
                         strcpy(str,"MEDIC KIT");
                         changehealth(snum,250);
                         jsdeletesprite(i);
                         dosound++;
                    }
                    break;
               case 3637:
                    if (health[snum] < healthmax) {
                         strcpy(str,"ENERGY PELLET");
                         changehealth(snum,50);
                         jsdeletesprite(i);
                         dosound++;
                    }
                    break;
               case DONUTSPIC:
                    if (health[snum] < healthmax) {
                         strcpy(str,"MMMMMMM DONUTS");
                         changehealth(snum,50);
                         jsdeletesprite(i);
                         dosound++;
                    }
                    break;
               case ACCUTRAKPIC:
                    invaccutrak[snum]=1;
                    strcpy(str,"ACCU TRAK");
                    jsdeletesprite(i);
                    dosound++;
                    break;
               // gun pick ups
               case 3092:
                    if( ((weapons[snum])&flags32[GUN2FLAG]) == 0 ) {
                         weapons[snum]|=flags32[GUN2FLAG];
                         ammo2[snum]+=25;
                         if (ammo2[snum] > MAXAMMO) {
                              ammo2[snum]=MAXAMMO;
                         }
                         strcpy(str,"PISTOL");
                         jsdeletesprite(i);
                         dosound++;
                    }
                    break;
               case 3094:
                    if( ((weapons[snum])&flags32[GUN3FLAG]) == 0 ) {
                         weapons[snum]|=flags32[GUN3FLAG];
                         ammo3[snum]+=15;
                         if (ammo3[snum] > MAXAMMO) {
                              ammo3[snum]=MAXAMMO;
                         }
                         strcpy(str,"SHRIKE DBK");
                         jsdeletesprite(i);
                         dosound++;
                    }
                    break;
               case 3093:
                    if( ((weapons[snum])&flags32[GUN4FLAG]) == 0 ) {
                         weapons[snum]|=flags32[GUN4FLAG];
                         ammo4[snum]+=15;
                         if (ammo4[snum] > MAXAMMO) {
                              ammo4[snum]=MAXAMMO;
                         }
                         strcpy(str,"ORLOW");
                         jsdeletesprite(i);
                         dosound++;
                    }
                    break;
               case 3095:
                    if( ((weapons[snum])&flags32[GUN5FLAG]) == 0 ) {
                         weapons[snum]|=flags32[GUN5FLAG];
                         ammo5[snum]+=15;
                         if (ammo5[snum] > MAXAMMO) {
                              ammo5[snum]=MAXAMMO;
                         }
                         strcpy(str,"EMP GUN");
                         jsdeletesprite(i);
                         dosound++;
                    }
                    break;
               case 3091:
                    if( ((weapons[snum])&flags32[GUN6FLAG]) == 0 ) {
                         weapons[snum]|=flags32[GUN6FLAG];
                         ammo6[snum]+=15;
                         if (ammo6[snum] > MAXAMMO) {
                              ammo6[snum]=MAXAMMO;
                         }
                         strcpy(str,"FLAMER");
                         jsdeletesprite(i);
                         dosound++;
                    }
                    break;
               case 3090:
                    if( ((weapons[snum])&flags32[GUN7FLAG]) == 0 ) {
                         weapons[snum]|=flags32[GUN7FLAG];
                         ammo7[snum]+=10;
                         if (ammo7[snum] > MAXAMMO) {
                              ammo7[snum]=MAXAMMO;
                         }
                         strcpy(str,"BAZOOKA");
                         jsdeletesprite(i);
                         dosound++;
                    }
                    break;
               // ammo pick ups
               case 924:
               case 3102:
                    if( (ammo2[snum] < MAXAMMO) ) { // && ((weapons[snum]&flags32[GUN2FLAG]) != 0) ) {
                         ammo2[snum]+=20;
                         if( ammo2[snum] > MAXAMMO ) {
                              ammo2[snum]=MAXAMMO;
                         }
                         strcpy(str,"PISTOL KLIP");
                         jsdeletesprite(i);
                         dosound++;
                    }
                    break;
               case 3104:
                    if( (ammo3[snum] < MAXAMMO) ) { // && ((weapons[snum]&flags32[GUN3FLAG]) != 0) ) {
                         ammo3[snum]+=10;
                         if( ammo3[snum] > MAXAMMO ) {
                              ammo3[snum]=MAXAMMO;
                         }
                         strcpy(str,"SHRIKE CHARGES");
                         jsdeletesprite(i);
                         dosound++;
                    }
                    break;
               case 3103:
                    if( (ammo4[snum] < MAXAMMO) ) { // && ((weapons[snum]&flags32[GUN4FLAG]) != 0) ) {
                         ammo4[snum]+=10;
                         if( ammo4[snum] > MAXAMMO ) {
                              ammo4[snum]=MAXAMMO;
                         }
                         strcpy(str,"ORLOW CHARGES");
                         jsdeletesprite(i);
                         dosound++;
                    }
                    break;
               case 925:
               case 3101:
                    if( (ammo6[snum] < MAXAMMO) ) { // && ((weapons[snum]&flags32[GUN6FLAG]) != 0) ) {
                         ammo6[snum]+=10;
                         if( ammo6[snum] > MAXAMMO ) {
                              ammo6[snum]=MAXAMMO;
                         }
                         strcpy(str,"FUEL BOTTLE");
                         jsdeletesprite(i);
                         dosound++;
                    }
                    break;
               case CHARGEPAKPIC:
               case 3100:
                    if( (ammo7[snum] < MAXAMMO) ) { // && ((weapons[snum]&flags32[GUN7FLAG]) != 0) ) {
                         ammo7[snum]+=5;
                         if( ammo7[snum] > MAXAMMO ) {
                              ammo7[snum]=MAXAMMO;
                         }
                         strcpy(str,"BAZOOKA FUEL");
                         jsdeletesprite(i);
                         dosound++;
                    }
                    break;
               case 3836:
                    if( (ammo8[snum] < MAXAMMO) ) {
                         ammo8[snum]+=25;
                         if( ammo8[snum] > MAXAMMO ) {
                              ammo8[snum]=MAXAMMO;
                         }
                         strcpy(str,"GLOVE CHARGE");
                         jsdeletesprite(i);
                         dosound++;
                    }
                    break;

#if 0
               case CHARGEPAKPIC:
                    if (health[snum] < healthmax) {
                         strcpy(str,"HEALTH CHARGE PACK");
                         changehealth(snum,50);
                         jsdeletesprite(i);
                         dosound++;
                    }
                    break;
#endif
               case RED_KEYCARD:
                    if( invredcards[snum] == 0 ) {
                         strcpy(str,"RED KEY CARD");
                         invredcards[snum]=1;
                         jsdeletesprite(i);
                         dosound++;
                    }
                    break;
               case BLUE_KEYCARD:
                    if( invbluecards[snum] == 0 ) {
                         strcpy(str,"BLUE KEY CARD");
                         invbluecards[snum]=1;
                         jsdeletesprite(i);
                         dosound++;
                    }
                    break;
               default:
                    break;
               }
          }
          if( dosound && (screenpeek == snum) ) {
               playsound(S_PICKUP_BONUS,0,0,0,ST_UNIQUE);
               showmessage(str);
          }
          dosound=0;

          i = nexti;
     }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movl %edi, 0xc(%rsp)
testw %si, %si
js 0x1e3d3
leaq 0x56017c(%rip), %rax    # 0x57ddc0
cmpw %si, (%rax)
jle 0x1e3d3
xorps %xmm0, %xmm0
movups %xmm0, 0x1e(%rsp)
movaps %xmm0, 0x10(%rsp)
movzwl %si, %eax
leaq 0x53c70c(%rip), %rcx    # 0x55a370
movzwl (%rcx,%rax,2), %ebp
cmpw $-0x1, %bp
je 0x1e3d3
movswq 0xc(%rsp), %r15
leaq 0x546701(%rip), %rdi    # 0x564380
leaq 0xc384a(%rip), %r13     # 0xe14d0
leaq 0x40ce83(%rip), %r14    # 0x42ab10
leaq 0xc387c(%rip), %rbx     # 0xe1510
leaq 0xc38b5(%rip), %r8      # 0xe1550
leaq 0x59199e(%rip), %r9     # 0x5af640
movl %ebp, %r12d
movswq %bp, %rax
movzwl (%rdi,%rax,2), %ebp
movl (%r13,%r15,4), %ecx
imulq $0x2c, %rax, %rax
subl (%r14,%rax), %ecx
movl %ecx, %edx
negl %edx
cmovsl %ecx, %edx
movl (%rbx,%r15,4), %ecx
subl 0x4(%r14,%rax), %ecx
movl %ecx, %esi
negl %esi
cmovsl %ecx, %esi
addq %rdx, %rsi
cmpq $0x1ff, %rsi            # imm = 0x1FF
ja 0x1e3c9
addq %r14, %rax
movl (%r8,%r15,4), %ecx
sarl $0x8, %ecx
movl 0x8(%rax), %edx
sarl $0x8, %edx
subl %edx, %ecx
movswq 0xe(%rax), %rax
movswl (%r9,%rax,2), %edx
sarl %edx
addl %ecx, %edx
movl %edx, %ecx
negl %ecx
cmovsl %edx, %ecx
cmpl $0x28, %ecx
ja 0x1e3c9
movzwl %ax, %ecx
leaq 0x1102e9(%rip), %rax    # 0x12e004
cmpl $0x3, (%rax)
movl $0x3e8, %eax            # imm = 0x3E8
movl $0x1f4, %edx            # imm = 0x1F4
cmovel %edx, %eax
cmpl $0xc11, %ecx            # imm = 0xC11
jle 0x1ddab
leal -0xc12(%rcx), %edx
cmpl $0xe, %edx
ja 0x1de68
leaq 0x6f3f7(%rip), %rcx     # 0x8d140
movslq (%rcx,%rdx,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x10e727(%rip), %rax    # 0x12c480
movl (%rax,%r15,4), %eax
leaq 0xb1b8c(%rip), %rcx     # 0xcf8f0
movl 0x1c(%rcx), %ecx
testl %eax, %ecx
jne 0x1e3c9
orl %eax, %ecx
leaq 0x10e708(%rip), %rax    # 0x12c480
movl %ecx, (%rax,%r15,4)
leaq 0x10e51d(%rip), %rdx    # 0x12c2a0
movzwl (%rdx,%r15,2), %eax
addl $0xa, %eax
cmpw $0x64, %ax
movl $0x64, %ecx
cmovgel %ecx, %eax
movw %ax, (%rdx,%r15,2)
movabsq $0x414b4f4f5a4142, %rax # imm = 0x414B4F4F5A4142
jmp 0x1e1b3
cmpl $0x399, %ecx            # imm = 0x399
jle 0x1de08
leal -0x39a(%rcx), %edx
cmpl $0x3, %edx
ja 0x1decf
leaq 0x6f367(%rip), %rsi     # 0x8d130
movslq (%rsi,%rdx,4), %rcx
addq %rsi, %rcx
jmpq *%rcx
leaq 0xc37b7(%rip), %rcx     # 0xe1590
cmpl %eax, (%rcx,%r15,4)
jge 0x1e3c9
movabsq $0x494b20434944454d, %rax # imm = 0x494B20434944454D
movq %rax, 0x10(%rsp)
movw $0x54, 0x18(%rsp)
movswl 0xc(%rsp), %edi
movl $0xfa, %esi
jmp 0x1e35f
cmpl $0x153, %ecx            # imm = 0x153
je 0x1e2ff
cmpl $0x15a, %ecx            # imm = 0x15A
je 0x1e27a
cmpl $0x15b, %ecx            # imm = 0x15B
jne 0x1e3c9
leaq 0x10ff8d(%rip), %rax    # 0x12ddc0
cmpl $0x0, (%rax,%r15,4)
jne 0x1e3c9
movabsq $0x44524143205945, %rax # imm = 0x44524143205945
movq %rax, 0x16(%rsp)
movabsq $0x59454b2045554c42, %rax # imm = 0x59454B2045554C42
movq %rax, 0x10(%rsp)
leaq 0x10ff5d(%rip), %rax    # 0x12ddc0
jmp 0x1e2b1
cmpl $0xe35, %ecx            # imm = 0xE35
je 0x1e326
cmpl $0xefc, %ecx            # imm = 0xEFC
jne 0x1e3c9
leaq 0x10e439(%rip), %rax    # 0x12c2c0
movzwl (%rax,%r15,2), %eax
cmpw $0x63, %ax
jg 0x1e3c9
addl $0x19, %eax
cmpw $0x64, %ax
movl $0x64, %ecx
cmovgel %ecx, %eax
leaq 0x10e414(%rip), %rcx    # 0x12c2c0
movw %ax, (%rcx,%r15,2)
movabsq $0x45475241484320, %rax # imm = 0x45475241484320
movq %rax, 0x15(%rsp)
movabsq $0x48432045564f4c47, %rax # imm = 0x48432045564F4C47
jmp 0x1e1b3
cmpl $0x599, %ecx            # imm = 0x599
je 0x1dfb0
cmpl $0x5ad, %ecx            # imm = 0x5AD
jne 0x1e3c9
leaq 0xc36a2(%rip), %rcx     # 0xe1590
cmpl %eax, (%rcx,%r15,4)
jge 0x1e3c9
movabsq $0x5354554e4f4420, %rax # imm = 0x5354554E4F4420
movq %rax, 0x17(%rsp)
movabsq $0x204d4d4d4d4d4d4d, %rax # imm = 0x204D4D4D4D4D4D4D
jmp 0x1e350
leaq 0x10e2e3(%rip), %rax    # 0x12c200
movzwl (%rax,%r15,2), %eax
cmpw $0x63, %ax
jg 0x1e3c9
addl $0x14, %eax
cmpw $0x64, %ax
movl $0x64, %ecx
cmovgel %ecx, %eax
leaq 0x10e2be(%rip), %rcx    # 0x12c200
movw %ax, (%rcx,%r15,2)
movabsq $0x4b204c4f54534950, %rax # imm = 0x4B204C4F54534950
movq %rax, 0x10(%rsp)
movl $0x50494c, 0x18(%rsp)   # imm = 0x50494C
jmp 0x1e364
leaq 0x10e316(%rip), %rax    # 0x12c280
movzwl (%rax,%r15,2), %eax
cmpw $0x63, %ax
jg 0x1e3c9
addl $0xa, %eax
cmpw $0x64, %ax
movl $0x64, %ecx
cmovgel %ecx, %eax
leaq 0x10e2f1(%rip), %rcx    # 0x12c280
movw %ax, (%rcx,%r15,2)
movabsq $0x544f42204c455546, %rax # imm = 0x544F42204C455546
movq %rax, 0x10(%rsp)
movl $0x454c54, 0x18(%rsp)   # imm = 0x454C54
jmp 0x1e364
leaq 0x10e2e9(%rip), %rax    # 0x12c2a0
movzwl (%rax,%r15,2), %eax
cmpw $0x63, %ax
jg 0x1e3c9
addl $0x5, %eax
cmpw $0x64, %ax
movl $0x64, %ecx
cmovgel %ecx, %eax
leaq 0x10e2c4(%rip), %rcx    # 0x12c2a0
movw %ax, (%rcx,%r15,2)
movabsq $0x4c45554620414b, %rax # imm = 0x4C45554620414B
movq %rax, 0x15(%rsp)
movabsq $0x20414b4f4f5a4142, %rax # imm = 0x20414B4F4F5A4142
jmp 0x1e1b3
leaq 0x10e23a(%rip), %rax    # 0x12c240
movzwl (%rax,%r15,2), %eax
cmpw $0x63, %ax
jg 0x1e3c9
addl $0xa, %eax
cmpw $0x64, %ax
movl $0x64, %ecx
cmovgel %ecx, %eax
leaq 0x10e215(%rip), %rcx    # 0x12c240
movw %ax, (%rcx,%r15,2)
movabsq $0x53454752414843, %rax # imm = 0x53454752414843
movq %rax, 0x16(%rsp)
movabsq $0x484320574f4c524f, %rax # imm = 0x484320574F4C524F
jmp 0x1e1b3
leaq 0x10e42b(%rip), %rax    # 0x12c480
movl (%rax,%r15,4), %ecx
leaq 0xb1890(%rip), %rax     # 0xcf8f0
movl 0x18(%rax), %eax
testl %ecx, %eax
jne 0x1e3c9
orl %ecx, %eax
leaq 0x10e20c(%rip), %rsi    # 0x12c280
movzwl (%rsi,%r15,2), %ecx
addl $0xf, %ecx
cmpw $0x64, %cx
movl $0x64, %edx
cmovgel %edx, %ecx
leaq 0x10e3f1(%rip), %rdx    # 0x12c480
movl %eax, (%rdx,%r15,4)
movw %cx, (%rsi,%r15,2)
movl $0x52454d, 0x13(%rsp)   # imm = 0x52454D
movl $0x4d414c46, 0x10(%rsp) # imm = 0x4D414C46
jmp 0x1e364
leaq 0x10e3cc(%rip), %rax    # 0x12c480
movl (%rax,%r15,4), %ecx
leaq 0xb1831(%rip), %rax     # 0xcf8f0
movl 0xc(%rax), %eax
testl %ecx, %eax
jne 0x1e3c9
orl %ecx, %eax
leaq 0x10e14d(%rip), %rsi    # 0x12c220
movzwl (%rsi,%r15,2), %ecx
addl $0xf, %ecx
cmpw $0x64, %cx
movl $0x64, %edx
cmovgel %edx, %ecx
leaq 0x10e392(%rip), %rdx    # 0x12c480
movl %eax, (%rdx,%r15,4)
movw %cx, (%rsi,%r15,2)
movabsq $0x4420454b49524853, %rax # imm = 0x4420454B49524853
movq %rax, 0x10(%rsp)
movl $0x4b4244, 0x17(%rsp)   # imm = 0x4B4244
jmp 0x1e364
leaq 0x10e106(%rip), %rax    # 0x12c220
movzwl (%rax,%r15,2), %eax
cmpw $0x63, %ax
jg 0x1e3c9
addl $0xa, %eax
cmpw $0x64, %ax
movl $0x64, %ecx
cmovgel %ecx, %eax
leaq 0x10e0e1(%rip), %rcx    # 0x12c220
movw %ax, (%rcx,%r15,2)
movabsq $0x53454752414843, %rax # imm = 0x53454752414843
movq %rax, 0x17(%rsp)
movabsq $0x4320454b49524853, %rax # imm = 0x4320454B49524853
jmp 0x1e1b3
leaq 0x10e31a(%rip), %rax    # 0x12c480
movl (%rax,%r15,4), %eax
leaq 0xb177f(%rip), %rcx     # 0xcf8f0
movl 0x14(%rcx), %ecx
testl %eax, %ecx
jne 0x1e3c9
orl %eax, %ecx
leaq 0x10e2fb(%rip), %rax    # 0x12c480
movl %ecx, (%rax,%r15,4)
leaq 0x10e0d0(%rip), %rdx    # 0x12c260
movzwl (%rdx,%r15,2), %eax
addl $0xf, %eax
cmpw $0x64, %ax
movl $0x64, %ecx
cmovgel %ecx, %eax
movw %ax, (%rdx,%r15,2)
movabsq $0x4e554720504d45, %rax # imm = 0x4E554720504D45
movq %rax, 0x10(%rsp)
jmp 0x1e364
leaq 0x10e2bc(%rip), %rax    # 0x12c480
movl (%rax,%r15,4), %ecx
leaq 0xb1721(%rip), %rax     # 0xcf8f0
movl 0x8(%rax), %eax
testl %ecx, %eax
jne 0x1e3c9
orl %ecx, %eax
leaq 0x10e01d(%rip), %rsi    # 0x12c200
movzwl (%rsi,%r15,2), %ecx
addl $0x19, %ecx
cmpw $0x64, %cx
movl $0x64, %edx
cmovgel %edx, %ecx
leaq 0x10e282(%rip), %rdx    # 0x12c480
movl %eax, (%rdx,%r15,4)
movw %cx, (%rsi,%r15,2)
movl $0x4c4f54, 0x13(%rsp)   # imm = 0x4C4F54
movl $0x54534950, 0x10(%rsp) # imm = 0x54534950
jmp 0x1e364
leaq 0x10e25d(%rip), %rax    # 0x12c480
movl (%rax,%r15,4), %ecx
leaq 0xb16c2(%rip), %rax     # 0xcf8f0
movl 0x10(%rax), %eax
testl %ecx, %eax
jne 0x1e3c9
orl %ecx, %eax
leaq 0x10dffe(%rip), %rsi    # 0x12c240
movzwl (%rsi,%r15,2), %ecx
addl $0xf, %ecx
cmpw $0x64, %cx
movl $0x64, %edx
cmovgel %edx, %ecx
leaq 0x10e223(%rip), %rdx    # 0x12c480
movl %eax, (%rdx,%r15,4)
movw %cx, (%rsi,%r15,2)
movw $0x57, 0x14(%rsp)
movl $0x4f4c524f, 0x10(%rsp) # imm = 0x4F4C524F
jmp 0x1e364
leaq 0x10faff(%rip), %rax    # 0x12dd80
cmpl $0x0, (%rax,%r15,4)
jne 0x1e3c9
movabsq $0x44524143205945, %rax # imm = 0x44524143205945
movq %rax, 0x15(%rsp)
movabsq $0x2059454b20444552, %rax # imm = 0x2059454B20444552
movq %rax, 0x10(%rsp)
leaq 0x10facf(%rip), %rax    # 0x12dd80
movl $0x1, (%rax,%r15,4)
jmp 0x1e364
leaq 0xc32cb(%rip), %rcx     # 0xe1590
cmpl %eax, (%rcx,%r15,4)
jge 0x1e3c9
movswl 0xc(%rsp), %edi
movl $0x64, %esi
callq 0xa5d8
movswl %r12w, %edi
callq 0x1e99d
movabsq $0x494b20434944454d, %rax # imm = 0x494B20434944454D
movq %rax, 0x10(%rsp)
movw $0x54, 0x18(%rsp)
jmp 0x1e36d
leaq 0x10fafa(%rip), %rax    # 0x12de00
movl $0x1, (%rax,%r15,4)
movabsq $0x4152542055434341, %rax # imm = 0x4152542055434341
movq %rax, 0x10(%rsp)
movw $0x4b, 0x18(%rsp)
jmp 0x1e364
leaq 0xc3263(%rip), %rcx     # 0xe1590
cmpl %eax, (%rcx,%r15,4)
jge 0x1e3c9
movabsq $0x54454c4c455020, %rax # imm = 0x54454C4C455020
movq %rax, 0x16(%rsp)
movabsq $0x5020594752454e45, %rax # imm = 0x5020594752454E45
movq %rax, 0x10(%rsp)
movswl 0xc(%rsp), %edi
movl $0x32, %esi
callq 0xa5d8
movswl %r12w, %edi
callq 0x1e99d
movl 0xc(%rsp), %eax
leaq 0xc30e6(%rip), %rcx     # 0xe145e
cmpw %ax, (%rcx)
leaq 0x545ffe(%rip), %rdi    # 0x564380
leaq 0xc31c7(%rip), %r8      # 0xe1550
leaq 0x5912b0(%rip), %r9     # 0x5af640
jne 0x1e3c9
movl $0x6e, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl $0x8, %r8d
callq 0x1c1f1
leaq 0x10(%rsp), %rdi
xorl %eax, %eax
callq 0x14b61
leaq 0x591285(%rip), %r9     # 0x5af640
leaq 0xc318e(%rip), %r8      # 0xe1550
leaq 0x545fb7(%rip), %rdi    # 0x564380
cmpw $-0x1, %bp
jne 0x1dca2
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq