// File: /workspace/github_c_makefile_star2_O3/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 0x1e54a
leaq 0x563025(%rip), %rax    # 0x580de0
cmpw %si, (%rax)
jle 0x1e54a
xorps %xmm0, %xmm0
movups %xmm0, 0x1e(%rsp)
movaps %xmm0, 0x10(%rsp)
movzwl %si, %eax
leaq 0x53f5b5(%rip), %rcx    # 0x55d390
movzwl (%rcx,%rax,2), %ebp
cmpw $-0x1, %bp
je 0x1e54a
movswq 0xc(%rsp), %r15
leaq 0x5495aa(%rip), %rdi    # 0x5673a0
leaq 0xc66d3(%rip), %r13     # 0xe44d0
leaq 0x40fd2c(%rip), %r14    # 0x42db30
leaq 0xc6705(%rip), %rbx     # 0xe4510
leaq 0xc673e(%rip), %r8      # 0xe4550
leaq 0x594847(%rip), %r9     # 0x5b2660
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 0x1e540
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 0x1e540
movzwl %ax, %ecx
leaq 0x113192(%rip), %rax    # 0x131024
cmpl $0x3, (%rax)
movl $0x3e8, %eax            # imm = 0x3E8
movl $0x1f4, %edx            # imm = 0x1F4
cmovel %edx, %eax
cmpl $0xc11, %ecx            # imm = 0xC11
jle 0x1df22
leal -0xc12(%rcx), %edx
cmpl $0xe, %edx
ja 0x1dfdf
leaq 0x72360(%rip), %rcx     # 0x90220
movslq (%rcx,%rdx,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x1115b0(%rip), %rax    # 0x12f480
movl (%rax,%r15,4), %eax
leaq 0xb4a15(%rip), %rcx     # 0xd28f0
movl 0x1c(%rcx), %ecx
testl %eax, %ecx
jne 0x1e540
orl %eax, %ecx
leaq 0x111591(%rip), %rax    # 0x12f480
movl %ecx, (%rax,%r15,4)
leaq 0x1113a6(%rip), %rdx    # 0x12f2a0
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 0x1e32a
cmpl $0x399, %ecx            # imm = 0x399
jle 0x1df7f
leal -0x39a(%rcx), %edx
cmpl $0x3, %edx
ja 0x1e046
leaq 0x722d0(%rip), %rsi     # 0x90210
movslq (%rsi,%rdx,4), %rcx
addq %rsi, %rcx
jmpq *%rcx
leaq 0xc6640(%rip), %rcx     # 0xe4590
cmpl %eax, (%rcx,%r15,4)
jge 0x1e540
movabsq $0x494b20434944454d, %rax # imm = 0x494B20434944454D
movq %rax, 0x10(%rsp)
movw $0x54, 0x18(%rsp)
movswl 0xc(%rsp), %edi
movl $0xfa, %esi
jmp 0x1e4d6
cmpl $0x153, %ecx            # imm = 0x153
je 0x1e476
cmpl $0x15a, %ecx            # imm = 0x15A
je 0x1e3f1
cmpl $0x15b, %ecx            # imm = 0x15B
jne 0x1e540
leaq 0x112e26(%rip), %rax    # 0x130dd0
cmpl $0x0, (%rax,%r15,4)
jne 0x1e540
movabsq $0x44524143205945, %rax # imm = 0x44524143205945
movq %rax, 0x16(%rsp)
movabsq $0x59454b2045554c42, %rax # imm = 0x59454B2045554C42
movq %rax, 0x10(%rsp)
leaq 0x112df6(%rip), %rax    # 0x130dd0
jmp 0x1e428
cmpl $0xe35, %ecx            # imm = 0xE35
je 0x1e49d
cmpl $0xefc, %ecx            # imm = 0xEFC
jne 0x1e540
leaq 0x1112c2(%rip), %rax    # 0x12f2c0
movzwl (%rax,%r15,2), %eax
cmpw $0x63, %ax
jg 0x1e540
cmpw $0x4b, %ax
movl $0x4b, %ecx
cmovll %eax, %ecx
addl $0x19, %ecx
leaq 0x11129d(%rip), %rax    # 0x12f2c0
movw %cx, (%rax,%r15,2)
movabsq $0x45475241484320, %rax # imm = 0x45475241484320
movq %rax, 0x15(%rsp)
movabsq $0x48432045564f4c47, %rax # imm = 0x48432045564F4C47
jmp 0x1e32a
cmpl $0x599, %ecx            # imm = 0x599
je 0x1e127
cmpl $0x5ad, %ecx            # imm = 0x5AD
jne 0x1e540
leaq 0xc652b(%rip), %rcx     # 0xe4590
cmpl %eax, (%rcx,%r15,4)
jge 0x1e540
movabsq $0x5354554e4f4420, %rax # imm = 0x5354554E4F4420
movq %rax, 0x17(%rsp)
movabsq $0x204d4d4d4d4d4d4d, %rax # imm = 0x204D4D4D4D4D4D4D
jmp 0x1e4c7
leaq 0x11116c(%rip), %rax    # 0x12f200
movzwl (%rax,%r15,2), %eax
cmpw $0x63, %ax
jg 0x1e540
cmpw $0x50, %ax
movl $0x50, %ecx
cmovll %eax, %ecx
addl $0x14, %ecx
leaq 0x111147(%rip), %rax    # 0x12f200
movw %cx, (%rax,%r15,2)
movabsq $0x4b204c4f54534950, %rax # imm = 0x4B204C4F54534950
movq %rax, 0x10(%rsp)
movl $0x50494c, 0x18(%rsp)   # imm = 0x50494C
jmp 0x1e4db
leaq 0x11119f(%rip), %rax    # 0x12f280
movzwl (%rax,%r15,2), %eax
cmpw $0x63, %ax
jg 0x1e540
cmpw $0x5a, %ax
movl $0x5a, %ecx
cmovll %eax, %ecx
addl $0xa, %ecx
leaq 0x11117a(%rip), %rax    # 0x12f280
movw %cx, (%rax,%r15,2)
movabsq $0x544f42204c455546, %rax # imm = 0x544F42204C455546
movq %rax, 0x10(%rsp)
movl $0x454c54, 0x18(%rsp)   # imm = 0x454C54
jmp 0x1e4db
leaq 0x111172(%rip), %rax    # 0x12f2a0
movzwl (%rax,%r15,2), %eax
cmpw $0x63, %ax
jg 0x1e540
cmpw $0x5f, %ax
movl $0x5f, %ecx
cmovll %eax, %ecx
addl $0x5, %ecx
leaq 0x11114d(%rip), %rax    # 0x12f2a0
movw %cx, (%rax,%r15,2)
movabsq $0x4c45554620414b, %rax # imm = 0x4C45554620414B
movq %rax, 0x15(%rsp)
movabsq $0x20414b4f4f5a4142, %rax # imm = 0x20414B4F4F5A4142
jmp 0x1e32a
leaq 0x1110c3(%rip), %rax    # 0x12f240
movzwl (%rax,%r15,2), %eax
cmpw $0x63, %ax
jg 0x1e540
cmpw $0x5a, %ax
movl $0x5a, %ecx
cmovll %eax, %ecx
addl $0xa, %ecx
leaq 0x11109e(%rip), %rax    # 0x12f240
movw %cx, (%rax,%r15,2)
movabsq $0x53454752414843, %rax # imm = 0x53454752414843
movq %rax, 0x16(%rsp)
movabsq $0x484320574f4c524f, %rax # imm = 0x484320574F4C524F
jmp 0x1e32a
leaq 0x1112b4(%rip), %rax    # 0x12f480
movl (%rax,%r15,4), %ecx
leaq 0xb4719(%rip), %rax     # 0xd28f0
movl 0x18(%rax), %eax
testl %ecx, %eax
jne 0x1e540
orl %ecx, %eax
leaq 0x111095(%rip), %rsi    # 0x12f280
movzwl (%rsi,%r15,2), %ecx
addl $0xf, %ecx
cmpw $0x64, %cx
movl $0x64, %edx
cmovgel %edx, %ecx
leaq 0x11127a(%rip), %rdx    # 0x12f480
movl %eax, (%rdx,%r15,4)
movw %cx, (%rsi,%r15,2)
movl $0x52454d, 0x13(%rsp)   # imm = 0x52454D
movl $0x4d414c46, 0x10(%rsp) # imm = 0x4D414C46
jmp 0x1e4db
leaq 0x111255(%rip), %rax    # 0x12f480
movl (%rax,%r15,4), %ecx
leaq 0xb46ba(%rip), %rax     # 0xd28f0
movl 0xc(%rax), %eax
testl %ecx, %eax
jne 0x1e540
orl %ecx, %eax
leaq 0x110fd6(%rip), %rsi    # 0x12f220
movzwl (%rsi,%r15,2), %ecx
addl $0xf, %ecx
cmpw $0x64, %cx
movl $0x64, %edx
cmovgel %edx, %ecx
leaq 0x11121b(%rip), %rdx    # 0x12f480
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 0x1e4db
leaq 0x110f8f(%rip), %rax    # 0x12f220
movzwl (%rax,%r15,2), %eax
cmpw $0x63, %ax
jg 0x1e540
cmpw $0x5a, %ax
movl $0x5a, %ecx
cmovll %eax, %ecx
addl $0xa, %ecx
leaq 0x110f6a(%rip), %rax    # 0x12f220
movw %cx, (%rax,%r15,2)
movabsq $0x53454752414843, %rax # imm = 0x53454752414843
movq %rax, 0x17(%rsp)
movabsq $0x4320454b49524853, %rax # imm = 0x4320454B49524853
jmp 0x1e32a
leaq 0x1111a3(%rip), %rax    # 0x12f480
movl (%rax,%r15,4), %eax
leaq 0xb4608(%rip), %rcx     # 0xd28f0
movl 0x14(%rcx), %ecx
testl %eax, %ecx
jne 0x1e540
orl %eax, %ecx
leaq 0x111184(%rip), %rax    # 0x12f480
movl %ecx, (%rax,%r15,4)
leaq 0x110f59(%rip), %rdx    # 0x12f260
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 0x1e4db
leaq 0x111145(%rip), %rax    # 0x12f480
movl (%rax,%r15,4), %ecx
leaq 0xb45aa(%rip), %rax     # 0xd28f0
movl 0x8(%rax), %eax
testl %ecx, %eax
jne 0x1e540
orl %ecx, %eax
leaq 0x110ea6(%rip), %rsi    # 0x12f200
movzwl (%rsi,%r15,2), %ecx
addl $0x19, %ecx
cmpw $0x64, %cx
movl $0x64, %edx
cmovgel %edx, %ecx
leaq 0x11110b(%rip), %rdx    # 0x12f480
movl %eax, (%rdx,%r15,4)
movw %cx, (%rsi,%r15,2)
movl $0x4c4f54, 0x13(%rsp)   # imm = 0x4C4F54
movl $0x54534950, 0x10(%rsp) # imm = 0x54534950
jmp 0x1e4db
leaq 0x1110e6(%rip), %rax    # 0x12f480
movl (%rax,%r15,4), %ecx
leaq 0xb454b(%rip), %rax     # 0xd28f0
movl 0x10(%rax), %eax
testl %ecx, %eax
jne 0x1e540
orl %ecx, %eax
leaq 0x110e87(%rip), %rsi    # 0x12f240
movzwl (%rsi,%r15,2), %ecx
addl $0xf, %ecx
cmpw $0x64, %cx
movl $0x64, %edx
cmovgel %edx, %ecx
leaq 0x1110ac(%rip), %rdx    # 0x12f480
movl %eax, (%rdx,%r15,4)
movw %cx, (%rsi,%r15,2)
movw $0x57, 0x14(%rsp)
movl $0x4f4c524f, 0x10(%rsp) # imm = 0x4F4C524F
jmp 0x1e4db
leaq 0x112998(%rip), %rax    # 0x130d90
cmpl $0x0, (%rax,%r15,4)
jne 0x1e540
movabsq $0x44524143205945, %rax # imm = 0x44524143205945
movq %rax, 0x15(%rsp)
movabsq $0x2059454b20444552, %rax # imm = 0x2059454B20444552
movq %rax, 0x10(%rsp)
leaq 0x112968(%rip), %rax    # 0x130d90
movl $0x1, (%rax,%r15,4)
jmp 0x1e4db
leaq 0xc6154(%rip), %rcx     # 0xe4590
cmpl %eax, (%rcx,%r15,4)
jge 0x1e540
movswl 0xc(%rsp), %edi
movl $0x64, %esi
callq 0xa5e8
movswl %r12w, %edi
callq 0x1eb19
movabsq $0x494b20434944454d, %rax # imm = 0x494B20434944454D
movq %rax, 0x10(%rsp)
movw $0x54, 0x18(%rsp)
jmp 0x1e4e4
leaq 0x112993(%rip), %rax    # 0x130e10
movl $0x1, (%rax,%r15,4)
movabsq $0x4152542055434341, %rax # imm = 0x4152542055434341
movq %rax, 0x10(%rsp)
movw $0x4b, 0x18(%rsp)
jmp 0x1e4db
leaq 0xc60ec(%rip), %rcx     # 0xe4590
cmpl %eax, (%rcx,%r15,4)
jge 0x1e540
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 0xa5e8
movswl %r12w, %edi
callq 0x1eb19
movl 0xc(%rsp), %eax
leaq 0xc5f6f(%rip), %rcx     # 0xe445e
cmpw %ax, (%rcx)
leaq 0x548ea7(%rip), %rdi    # 0x5673a0
leaq 0xc6050(%rip), %r8      # 0xe4550
leaq 0x594159(%rip), %r9     # 0x5b2660
jne 0x1e540
movl $0x6e, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl $0x8, %r8d
callq 0x1c370
leaq 0x10(%rsp), %rdi
xorl %eax, %eax
callq 0x14be7
leaq 0x59412e(%rip), %r9     # 0x5b2660
leaq 0xc6017(%rip), %r8      # 0xe4550
leaq 0x548e60(%rip), %rdi    # 0x5673a0
cmpw $-0x1, %bp
jne 0x1de19
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq