// File: /workspace/github_c_makefile_star2_O2/jonof[P]jftekwar/src/tekstat.c
// Function: newstatus
void
newstatus(short sn, int  seq)
{
     short     newpic;
     short     ext;
     int      zoffs;

    #ifdef PLRSPRDEBUG
     if( isaplayersprite(sn) ) {
          crashgame("messing w plrsprite at 11");
     }
    #else
     if( isaplayersprite(sn) ) {
          return;
     }
    #endif

     ext=sprptr[sn]->extra;
     if( !validext(ext) ) {
          noextcrashgame(sn, 0);
     }

     switch( seq ) {
          case INANIMATE:
               changespritestat(sn, INANIMATE);
              #ifdef NEWSTAT_DEBUG
               showmessage("INANIMATE");
              #endif
               break;
          case INACTIVE:
               changespritestat(sn, INACTIVE);
              #ifdef NEWSTAT_DEBUG
               showmessage("INACTIVE");
              #endif
               break;
          case FLOATING:
               if( sectptr[sprptr[sn]->sectnum]->lotag  == 4 ) {
          	     if( (sprptr[sn]->cstat&128) == 0 ) {
		               zoffs = -((tilesizy[sprptr[sn]->picnum]*sprptr[sn]->yrepeat)<<1);
                    }
          	     else {
		               zoffs = 0;
                    }
                    sprptr[sn]->z=sectptr[sprptr[sn]->sectnum]->floorz-zoffs;
                    sprptr[sn]->lotag=0;
                    sprptr[sn]->hitag=0;
                    sprptr[sn]->xvel=1;
                    sprptr[sn]->yvel=1;
                    changespritestat(sn, FLOATING);
               }
               else {
                    sprptr[sn]->z=sectptr[sprptr[sn]->sectnum]->floorz;
                    changespritestat(sn, INACTIVE);
               }
               break;
          case GUARD:
               newpic=sprXTptr[ext]->walkpic;
               if( newpic != NO_PIC ) {
                    changespritestat(sn, GUARD);
                    sprptr[sn]->lotag=0;
                    sprptr[sn]->picnum=newpic;
                    sprXTptr[ext]->basestat=GUARD;
                   #ifdef NEWSTAT_DEBUG
                    showmessage("GUARD");
                   #endif
               }
               break;
          case PATROL:
               newpic=sprXTptr[ext]->walkpic;
               if( newpic != NO_PIC ) {
                    changespritestat(sn, PATROL);
                    sprptr[sn]->lotag=0;
                    sprptr[sn]->picnum=newpic;
                    sprXTptr[ext]->basestat=PATROL;
                   #ifdef NEWSTAT_DEBUG
                    showmessage("PATROL");
                   #endif
               }
               break;
          case PINBALL:
               newpic=sprXTptr[ext]->walkpic;
               if( newpic != NO_PIC ) {
                    changespritestat(sn, PINBALL);
                    sprptr[sn]->picnum=newpic;
                    sprXTptr[ext]->basestat=PINBALL;
                   #ifdef NEWSTAT_DEBUG
                    showmessage("PINBALL");
                   #endif
               }
               break;
          case STROLL:
               newpic=sprXTptr[ext]->walkpic;
               if( newpic != NO_PIC ) {
                    changespritestat(sn, STROLL);
                    sprptr[sn]->lotag=0;
                    sprptr[sn]->picnum=newpic;
                    sprXTptr[ext]->basestat=STROLL;
                   #ifdef NEWSTAT_DEBUG
                    showmessage("STROLL");
                   #endif
               }
               break;
          case CHASE:
               newpic=sprXTptr[ext]->runpic;
               if( newpic != NO_PIC ) {
                    changespritestat(sn, CHASE);
                    sprptr[sn]->lotag=0;
                    sprptr[sn]->picnum=newpic;
                    sprXTptr[ext]->basestat=CHASE;
                   #ifdef NEWSTAT_DEBUG
                    showmessage("CHASE");
                   #endif
               }
               break;
          case FLEE:
               newpic=sprXTptr[ext]->runpic;
               if( newpic != NO_PIC ) {
                    changespritestat(sn, FLEE);
                    sprptr[sn]->lotag=0;
                    sprptr[sn]->picnum=newpic;
                   #ifdef NEWSTAT_DEBUG
                    showmessage("FLEE");
                   #endif
               }
               break;
          case ATTACK:
               // standard 5 angles, 2 frames/angle
               newpic=sprXTptr[ext]->attackpic;
               if( newpic != NO_PIC ) {
                    changespritestat(sn,ATTACK);
                    sprptr[sn]->picnum=newpic;
                    switch( sprXTptr[ext]->weapon ) {
                    case 1:
                    case 2:
                    case 3:
                    case 4:
                    case 5:
                         sprptr[sn]->lotag=32;
                         sprptr[sn]->hitag=32;
                         break;
                    default:
                         sprptr[sn]->lotag=64;
                         sprptr[sn]->hitag=64;
                         break;
                    }
                   #ifdef NEWSTAT_DEBUG
                    showmessage("ATTACK");
                   #endif
               }
               break;
          case DELAYEDATTACK:
               // standard 5 angles, 2 frames/angle
               sprptr[sn]->lotag=95;
               changespritestat(sn, DELAYEDATTACK);
              #ifdef NEWSTAT_DEBUG
               showmessage("DELAYED ATTACK");
              #endif
               break;
          case STALK:
               newpic=sprXTptr[ext]->runpic;
               if( newpic != NO_PIC ) {
                    changespritestat(sn, STALK);
                    sprptr[sn]->lotag=0;
                    sprptr[sn]->picnum=newpic;
                    sprXTptr[ext]->basestat=STALK;
                   #ifdef NEWSTAT_DEBUG
                    showmessage("STALK");
                   #endif
               }
               break;
          case SQUAT:
               newpic=sprXTptr[ext]->squatpic;
               if ( newpic != NO_PIC ) {
                    changespritestat(sn, SQUAT);
                    // standard 3 frames
                    // stay squat for 4 TICSPERFRAME
                    sprptr[sn]->lotag=47;
                    sprptr[sn]->hitag=64;
                   #ifdef NEWSTAT_DEBUG
                    showmessage("SQUAT");
                   #endif
               }
               break;
          case UNSQUAT:
               newpic=sprXTptr[ext]->squatpic;
               if ( newpic != NO_PIC ) {
                    changespritestat(sn, UNSQUAT);
                    sprptr[sn]->lotag=47;
                    sprptr[sn]->hitag=0;
                   #ifdef NEWSTAT_DEBUG
                    showmessage("UNSQUAT");
                   #endif
               }
               break;
          case DODGE:
               newpic=sprXTptr[ext]->squatpic;
               if ( newpic != NO_PIC ) {
                    changespritestat(sn, SQUAT);
                    // standard 2 frames
                    sprptr[sn]->lotag=31;
                    sprptr[sn]->hitag=0;
                   #ifdef NEWSTAT_DEBUG
                    showmessage("DODGE");
                   #endif
               }
               break;
          case UNDODGE:
               newpic=sprXTptr[ext]->squatpic;
               if ( newpic != NO_PIC ) {
                    changespritestat(sn, UNSQUAT);
                    sprptr[sn]->lotag=31;
                    sprptr[sn]->hitag=0;
                   #ifdef NEWSTAT_DEBUG
                    showmessage("UNDODGE");
                   #endif
               }
               break;
          case HIDE:
               newpic=sprXTptr[ext]->squatpic;
               if ( newpic != NO_PIC ) {
                    changespritestat(sn, HIDE);
                    // standard 2 frames
                    sprptr[sn]->lotag=31;
                    sprptr[sn]->hitag=256;
                   #ifdef NEWSTAT_DEBUG
                    showmessage("HIDE");
                   #endif
               }
               break;
          case UNHIDE:
               newpic=sprXTptr[ext]->squatpic;
               if ( newpic != NO_PIC ) {
                    changespritestat(sn, UNHIDE);
                    sprptr[sn]->lotag=31;
                    sprptr[sn]->hitag=0;
                   #ifdef NEWSTAT_DEBUG
                    showmessage("UNHIDE");
                   #endif
               }
               break;
          case PAIN:
               newpic=sprXTptr[ext]->painpic;
               if ( newpic != 0 ) {
                    changespritestat(sn,PAIN);
                    sprptr[sn]->picnum=newpic;
                    sprptr[sn]->lotag=16;
                   #ifdef NEWSTAT_DEBUG
                    showmessage("PAIN");
                   #endif
               }
               break;
          case STANDING:
               newpic=sprXTptr[ext]->standpic;
               if( newpic != 0 ) {
                    sprptr[sn]->picnum=newpic;
                    if( sprptr[sn]->lotag <= 0 ) {
                         sprptr[sn]->lotag=((krand_intercept("STAT1732"))&1024);
                    }
                    changespritestat(sn, STANDING);
                   #ifdef NEWSTAT_DEBUG
                    showmessage("STANDING");
                   #endif
               }
               break;
          case FLY:
               newpic=sprXTptr[ext]->runpic;
               if( newpic != NO_PIC ) {
                    changespritestat(sn, FLY);
                    sprptr[sn]->lotag=0;
                    sprptr[sn]->picnum=newpic;
                    sprXTptr[ext]->basestat=FLY;
                   #ifdef NEWSTAT_DEBUG
                    showmessage("FLY");
                   #endif
               }
               break;
          case RODENT:
               newpic=sprXTptr[ext]->runpic;
               if( newpic != NO_PIC ) {
                    changespritestat(sn, RODENT);
                    sprptr[sn]->lotag=0;
                    sprptr[sn]->picnum=newpic;
                    sprXTptr[ext]->basestat=RODENT;
                   #ifdef NEWSTAT_DEBUG
                    showmessage("RODENT");
                   #endif
               }
               break;
          case MORPH:
               if ( sprXTptr[ext]->morphpic != 0 ) {
                    changespritestat(sn,MORPH);
                    sprptr[sn]->lotag=95;
                   #ifdef NEWSTAT_DEBUG
                    showmessage("MORPH");
                   #endif
               }
               break;
          case DEATH:
               newpic=sprXTptr[ext]->deathpic;
               sprptr[sn]->cstat&=~257;
               if( newpic != 0 ) {
                    changespritestat(sn,DEATH);
                    deathdropitem(sn);
                    getpicinfo(newpic);
                    sprptr[sn]->lotag=((picinfoptr->numframes)<<4)-1;
                    sprptr[sn]->hitag=sprptr[sn]->lotag;
                    deathsounds(newpic,sprptr[sn]->x,sprptr[sn]->y);
                    sprptr[sn]->picnum=newpic;
               }
               else {
                    changespritestat(sn, INACTIVE);
               }
              #ifdef NEWSTAT_DEBUG
               showmessage("DEATH");
              #endif
               break;
     }

}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %esi, %r14d
movl %edi, %ebx
callq 0x1cfc4
testl %eax, %eax
je 0x1e191
leaq 0x64529(%rip), %rdi     # 0x826b3
xorl %eax, %eax
callq 0x2acb8
movswq %bx, %r15
leaq 0x109094(%rip), %r12    # 0x127230
movq (%r12,%r15,8), %rax
movswq 0x2a(%rax), %r13
cmpq $0x4000, %r13           # imm = 0x4000
jb 0x1e1b7
movl %ebx, %edi
xorl %esi, %esi
callq 0x1d148
leal -0x12c(%r14), %eax
cmpl $0x16, %eax
ja 0x1e21f
leaq 0x6412a(%rip), %rcx     # 0x822f4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x1b1056(%rip), %r14    # 0x1cf230
movq (%r14,%r13,8), %rax
movzwl 0x12(%rax), %ebp
testw %bp, %bp
je 0x1e4ef
movswl %bx, %edi
movl $0x12c, %esi            # imm = 0x12C
callq 0x44444
movq (%r12,%r15,8), %rax
movw %bp, 0xe(%rax)
movq (%r14,%r13,8), %rax
movb 0x1f(%rax), %cl
decb %cl
movq (%r12,%r15,8), %rax
cmpb $0x4, %cl
ja 0x1e7f0
movw $0x20, %cx
jmp 0x1e7f4
leal -0xc9(%r14), %eax
cmpl $0x8, %eax
ja 0x1e28c
leaq 0x6409e(%rip), %rcx     # 0x822d0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x1b0fee(%rip), %rax    # 0x1cf230
movq (%rax,%r13,8), %rax
movzwl 0xc(%rax), %eax
testw %ax, %ax
je 0x1e4ef
movq (%r12,%r15,8), %rcx
movw %ax, 0xe(%rcx)
movq (%r12,%r15,8), %rax
cmpw $0x0, 0x26(%rax)
jg 0x1e27f
leaq 0x64460(%rip), %rdi     # 0x826cd
callq 0x2945b
andl $0x400, %eax            # imm = 0x400
movq (%r12,%r15,8), %rcx
movw %ax, 0x26(%rcx)
movswl %bx, %edi
movl $0xc9, %esi
jmp 0x1e7dd
cmpl $0x1f6, %r14d           # imm = 0x1F6
je 0x1e70b
cmpl $0x64, %r14d
je 0x1e7d7
cmpl $0x193, %r14d           # imm = 0x193
je 0x1e750
cmpl $0x1f4, %r14d           # imm = 0x1F4
je 0x1e78c
testl %r14d, %r14d
jne 0x1e4ef
movswl %bx, %edi
xorl %esi, %esi
jmp 0x1e7dd
leaq 0x1b0f59(%rip), %rax    # 0x1cf230
movq (%rax,%r13,8), %rax
cmpw $0x0, 0x18(%rax)
je 0x1e4ef
movswl %bx, %edi
movl $0x131, %esi            # imm = 0x131
jmp 0x1e4d7
leaq 0x1b0f36(%rip), %rax    # 0x1cf230
movq (%rax,%r13,8), %rax
cmpw $0x0, 0x18(%rax)
je 0x1e4ef
movswl %bx, %edi
movl $0x132, %esi            # imm = 0x132
jmp 0x1e4d7
leaq 0x1b0f13(%rip), %rax    # 0x1cf230
movq (%rax,%r13,8), %rax
movzwl 0x16(%rax), %ebp
testw %bp, %bp
je 0x1e4ef
movswl %bx, %edi
movl $0x12e, %esi            # imm = 0x12E
callq 0x44444
movq (%r12,%r15,8), %rax
movw %bp, 0xe(%rax)
movq (%r12,%r15,8), %rax
movw $0x10, 0x26(%rax)
jmp 0x1e4ef
leaq 0x1b0ed7(%rip), %rax    # 0x1cf230
movq (%rax,%r13,8), %rax
cmpw $0x0, 0x18(%rax)
je 0x1e4ef
movswl %bx, %edi
movl $0x132, %esi            # imm = 0x132
callq 0x44444
movq (%r12,%r15,8), %rax
movw $0x2f, 0x26(%rax)
jmp 0x1e4e6
leaq 0x1b0ea5(%rip), %rax    # 0x1cf230
movq (%rax,%r13,8), %rax
cmpw $0x0, 0x18(%rax)
je 0x1e4ef
movswl %bx, %edi
movl $0x131, %esi            # imm = 0x131
callq 0x44444
movq (%r12,%r15,8), %rax
movw $0x2f, 0x26(%rax)
movq (%r12,%r15,8), %rax
movw $0x40, 0x28(%rax)
jmp 0x1e4ef
leaq 0x1b0e69(%rip), %rax    # 0x1cf230
movq (%rax,%r13,8), %rax
cmpw $0x0, 0x18(%rax)
je 0x1e4ef
movswl %bx, %edi
movl $0x137, %esi            # imm = 0x137
callq 0x44444
movq (%r12,%r15,8), %rax
movw $0x1f, 0x26(%rax)
movq (%r12,%r15,8), %rax
movw $0x100, 0x28(%rax)      # imm = 0x100
jmp 0x1e4ef
leaq 0x1b0e2d(%rip), %rax    # 0x1cf230
movq (%rax,%r13,8), %rax
movswl 0x14(%rax), %ebp
movq (%r12,%r15,8), %rax
andw $0xfefe, 0xc(%rax)      # imm = 0xFEFE
testl %ebp, %ebp
je 0x1e7d7
movswl %r15w, %ebx
movl %ebx, %edi
movl $0x12d, %esi            # imm = 0x12D
callq 0x44444
movl %ebx, %edi
callq 0x1f428
movswl %bp, %ebx
movl %ebx, %edi
callq 0x1d783
movq 0xaa3ab(%rip), %rax     # 0xc87f0
movzbl (%rax), %eax
shll $0x4, %eax
decl %eax
movq (%r12,%r15,8), %rcx
movw %ax, 0x26(%rcx)
movq (%r12,%r15,8), %rax
movzwl 0x26(%rax), %ecx
movw %cx, 0x28(%rax)
movq (%r12,%r15,8), %rax
movl (%rax), %esi
movl 0x4(%rax), %edx
movl %ebp, %edi
callq 0x1f608
movq (%r12,%r15,8), %rax
movw %bx, 0xe(%rax)
jmp 0x1e4ef
leaq 0x1b0dae(%rip), %rax    # 0x1cf230
movq (%rax,%r13,8), %rax
cmpw $0x0, 0x1a(%rax)
je 0x1e4ef
movswl %bx, %edi
movl $0x130, %esi            # imm = 0x130
callq 0x44444
movq (%r12,%r15,8), %rax
movw $0x5f, 0x26(%rax)
jmp 0x1e4ef
movq (%r12,%r15,8), %rax
movw $0x5f, 0x26(%rax)
movswl %bx, %edi
movl $0x139, %esi            # imm = 0x139
jmp 0x1e7dd
leaq 0x1b0d6c(%rip), %rax    # 0x1cf230
movq (%rax,%r13,8), %rax
cmpw $0x0, 0x18(%rax)
je 0x1e4ef
movswl %bx, %edi
movl $0x138, %esi            # imm = 0x138
callq 0x44444
movq (%r12,%r15,8), %rax
movw $0x1f, 0x26(%rax)
movq (%r12,%r15,8), %rax
andw $0x0, 0x28(%rax)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%r12,%r15,8), %rax
movswq 0x18(%rax), %rcx
leaq 0x1d0d22(%rip), %rdx    # 0x1ef230
movq (%rdx,%rcx,8), %rcx
cmpw $0x4, 0x22(%rcx)
jne 0x1e7d1
xorl %edx, %edx
testb $-0x80, 0xc(%rax)
jne 0x1e53e
movswq 0xe(%rax), %rdx
leaq 0x58a12f(%rip), %rsi    # 0x5a8660
movswl (%rsi,%rdx,2), %esi
movzbl 0x15(%rax), %edx
imull %esi, %edx
addl %edx, %edx
addl 0x8(%rcx), %edx
movl %edx, 0x8(%rax)
movq (%r12,%r15,8), %rax
andw $0x0, 0x26(%rax)
movq (%r12,%r15,8), %rax
andw $0x0, 0x28(%rax)
movq (%r12,%r15,8), %rax
movw $0x1, %cx
movw %cx, 0x20(%rax)
movq (%r12,%r15,8), %rax
movw %cx, 0x22(%rax)
movswl %bx, %edi
movl $0x142, %esi            # imm = 0x142
jmp 0x1e7dd
leaq 0x1b0cb2(%rip), %r14    # 0x1cf230
movq (%r14,%r13,8), %rax
movzwl 0x10(%rax), %ebp
testw %bp, %bp
je 0x1e4ef
movswl %bx, %edi
movl $0xce, %esi
callq 0x44444
movq (%r12,%r15,8), %rax
andw $0x0, 0x26(%rax)
movq (%r12,%r15,8), %rax
movw %bp, 0xe(%rax)
movq (%r14,%r13,8), %rax
movw $0xce, 0x8(%rax)
jmp 0x1e4ef
leaq 0x1b0c6d(%rip), %r14    # 0x1cf230
movq (%r14,%r13,8), %rax
movzwl 0xe(%rax), %ebp
testw %bp, %bp
je 0x1e4ef
movswl %bx, %edi
movl $0xd1, %esi
callq 0x44444
movq (%r12,%r15,8), %rax
andw $0x0, 0x26(%rax)
movq (%r12,%r15,8), %rax
movw %bp, 0xe(%rax)
movq (%r14,%r13,8), %rax
movw $0xd1, 0x8(%rax)
jmp 0x1e4ef
leaq 0x1b0c28(%rip), %rax    # 0x1cf230
movq (%rax,%r13,8), %rax
movzwl 0x10(%rax), %ebp
testw %bp, %bp
je 0x1e4ef
movswl %bx, %edi
movl $0xcd, %esi
callq 0x44444
movq (%r12,%r15,8), %rax
andw $0x0, 0x26(%rax)
movq (%r12,%r15,8), %rax
movw %bp, 0xe(%rax)
jmp 0x1e4ef
leaq 0x1b0bed(%rip), %r14    # 0x1cf230
movq (%r14,%r13,8), %rax
movzwl 0xe(%rax), %ebp
testw %bp, %bp
je 0x1e4ef
movswl %bx, %edi
movl $0xcb, %esi
callq 0x44444
movq (%r12,%r15,8), %rax
andw $0x0, 0x26(%rax)
movq (%r12,%r15,8), %rax
movw %bp, 0xe(%rax)
movq (%r14,%r13,8), %rax
movw $0xcb, 0x8(%rax)
jmp 0x1e4ef
leaq 0x1b0ba8(%rip), %r14    # 0x1cf230
movq (%r14,%r13,8), %rax
movzwl 0x10(%rax), %ebp
testw %bp, %bp
je 0x1e4ef
movswl %bx, %edi
movl $0xcc, %esi
callq 0x44444
movq (%r12,%r15,8), %rax
andw $0x0, 0x26(%rax)
movq (%r12,%r15,8), %rax
movw %bp, 0xe(%rax)
movq (%r14,%r13,8), %rax
movw $0xcc, 0x8(%rax)
jmp 0x1e4ef
leaq 0x1b0b63(%rip), %r14    # 0x1cf230
movq (%r14,%r13,8), %rax
movzwl 0xe(%rax), %ebp
testw %bp, %bp
je 0x1e4ef
movswl %bx, %edi
movl $0xcf, %esi
callq 0x44444
movq (%r12,%r15,8), %rax
andw $0x0, 0x26(%rax)
movq (%r12,%r15,8), %rax
movw %bp, 0xe(%rax)
movq (%r14,%r13,8), %rax
movw $0xcf, 0x8(%rax)
jmp 0x1e4ef
leaq 0x1b0b1e(%rip), %r14    # 0x1cf230
movq (%r14,%r13,8), %rax
movzwl 0x10(%rax), %ebp
testw %bp, %bp
je 0x1e4ef
movswl %bx, %edi
movl $0x1f6, %esi            # imm = 0x1F6
callq 0x44444
movq (%r12,%r15,8), %rax
andw $0x0, 0x26(%rax)
movq (%r12,%r15,8), %rax
movw %bp, 0xe(%rax)
movq (%r14,%r13,8), %rax
movw $0x1f6, 0x8(%rax)       # imm = 0x1F6
jmp 0x1e4ef
leaq 0x1b0ad9(%rip), %r14    # 0x1cf230
movq (%r14,%r13,8), %rax
movzwl 0xe(%rax), %ebp
testw %bp, %bp
je 0x1e4ef
movswl %bx, %edi
movl $0x193, %esi            # imm = 0x193
callq 0x44444
movq (%r12,%r15,8), %rax
movw %bp, 0xe(%rax)
movq (%r14,%r13,8), %rax
movw $0x193, 0x8(%rax)       # imm = 0x193
jmp 0x1e4ef
leaq 0x1b0a9d(%rip), %r14    # 0x1cf230
movq (%r14,%r13,8), %rax
movzwl 0x10(%rax), %ebp
testw %bp, %bp
je 0x1e4ef
movswl %bx, %edi
movl $0x1f4, %esi            # imm = 0x1F4
callq 0x44444
movq (%r12,%r15,8), %rax
andw $0x0, 0x26(%rax)
movq (%r12,%r15,8), %rax
movw %bp, 0xe(%rax)
movq (%r14,%r13,8), %rax
movw $0x1f4, 0x8(%rax)       # imm = 0x1F4
jmp 0x1e4ef
movl 0x8(%rcx), %ecx
movl %ecx, 0x8(%rax)
movswl %bx, %edi
pushq $0x64
popq %rsi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x44444
movw $0x40, %cx
movw %cx, 0x26(%rax)
movq (%r12,%r15,8), %rax
movw %cx, 0x28(%rax)
jmp 0x1e4ef