// File: jkingan[P]ladyheather/heathgps.cpp
// Function: set_single_sat(int)
void set_single_sat(int prn)
{
u32 val;
u32 old_gps;
u32 old_glonass;
u32 old_qzss;
u32 old_sbas;
u32 old_galileo;

   if(read_only) return;
   if(luxor) return;

   if(rcvr_type == ESIP_RCVR) ;
   else if(prn > 32) return;
   if(prn < 0) return;

   if(rcvr_type == ESIP_RCVR) {
      single_sat_prn = prn;
      have_single_prn = 1;
      if(prn == 0) {
         exclude_sat(0);  // restore all sats
      }
      else {  // delete selected sat
         old_gps = esip_deleted_gps;
         old_glonass = esip_deleted_glonass;  
         old_qzss = esip_deleted_qzss;  
         old_sbas = esip_deleted_sbas;  
         old_galileo = esip_deleted_galileo;  

         esip_deleted_gps = 0xFFFFFFFF;
         esip_deleted_glonass = 0xFFFFFFFF;
         esip_deleted_qzss = 0xFFFFFFFF;
         esip_deleted_sbas = 0xFFFFFFFF;
         esip_deleted_galileo = 0xFFFFFFFF;

         if((prn >= 1) && (prn <= 32)) {  // delete gps sat
            esip_deleted_gps &= (~(1U << (prn-1)));
         }
         else if((prn >= 65) && (prn <= 92)) {  // delete glonass sat
            esip_deleted_glonass &= (~(1U << (prn-65)));
         }
         else if((prn >= 93) && (prn <= 99)) {  // delete qzss sat
            esip_deleted_qzss &= (~(1U << (prn-93)));
         }
         else if((prn >= 33) && (prn <= 51)) {  // delete sbas sat
            esip_deleted_sbas &= (~(1U << (prn-33)));
         }
         else if(0 && (prn >= 211) && (prn <= 230)) {  // delete galileo sat !!!!!! what are galileo PRN's?
            esip_deleted_galileo &= (~(1U << (prn-211)));
         }
         else {
            esip_deleted_gps = old_gps;
            esip_deleted_glonass = old_glonass;  
            esip_deleted_qzss = old_qzss;  
            esip_deleted_sbas = old_sbas;  
            esip_deleted_galileo = old_galileo;  
            return;
         }

         set_amu_mask(amu_mask);     // this will set the sat disable flags

         esip_deleted_gps = old_gps;
         esip_deleted_glonass = old_glonass;  
         esip_deleted_qzss = old_qzss;  
         esip_deleted_sbas = old_sbas;  
         esip_deleted_galileo = old_galileo;  

         request_rcvr_config(8799);
      }
   }
   else if(rcvr_type == FURUNO_RCVR) {
      single_sat_prn = prn;
      have_single_prn = 1;
      if(prn) {
         val = 1 << (prn-1);
      }
      else {
         val = 0xFFFFFFFF;
      }
      val ^= 0xFFFFFFFF;

      sprintf(out, "GPset,U%08X", val);
      send_furuno_cmd(out);

      reset_sat_tracking();
      send_furuno_cmd("GPsrq");
   }
   else if(rcvr_type == MOTO_RCVR) {
      single_sat_prn = prn;
      have_single_prn = 1;
      send_moto_start("Am");
      send_byte(0);
      if(prn) {
         val = 1 << (prn-1);
         val = (~val);
      }
      else {
         val = 0;
      }
      send_dword(val);
      send_moto_end();

      reset_sat_tracking();
      request_sat_health();
   }
   else if((rcvr_type == SCPI_RCVR) && (scpi_type == NORTEL_TYPE)) { 
      single_sat_prn = prn;
      have_single_prn = 1;
      if(prn) {
         queue_scpi_cmd("GPS:SAT:TRAC:IGNORE 0", SCPI_IGNORE_MSG);
         sprintf(out,"GPS:SAT:TRAC:INCLUDE %d", prn);
         queue_scpi_cmd(out,  SCPI_INCLUDE_MSG);
      }
      else {
         queue_scpi_cmd("GPS:SAT:TRAC:INCLUDE 1,2,3,4,5,6,7,8,9,10,11,12,13", SCPI_INCLUDE_MSG);
         queue_scpi_cmd("GPS:SAT:TRAC:INCLUDE 14,15,16,17,18,19,20,21,22,23", SCPI_INCLUDE_MSG);
         queue_scpi_cmd("GPS:SAT:TRAC:INCLUDE 24,25,26,27,28,29,30,31,32", SCPI_INCLUDE_MSG);
         queue_scpi_cmd("SYNC:IMMEDIATE", SCPI_JAMSYNC_MSG);
      }
      queue_scpi_cmd(":GPS:SAT:TRAC:IGN?", SCPI_IGNORE_MSG);
   }
   else if(rcvr_type == SCPI_RCVR) {  // no NORTEL_TYPE
      single_sat_prn = prn;
      have_single_prn = 1;
      if(prn) {
         queue_scpi_cmd(":GPS:SAT:TRAC:IGN:ALL", SCPI_IGNORE_MSG);
         sprintf(out,":GPS:SAT:TRAC:INCL %d", prn);
         queue_scpi_cmd(out,  SCPI_INCLUDE_MSG);
      }
      else {
         queue_scpi_cmd(":GPS:SAT:TRAC:IGN:NONE", SCPI_IGNORE_MSG);
         queue_scpi_cmd(":GPS:SAT:TRAC:INCL:ALL", SCPI_INCLUDE_MSG);
         queue_scpi_cmd(":SYNC:HOLD:REC:INIT", SCPI_HOLDOVER_MSG);    // ggggggg
      }
      queue_scpi_cmd(":GPS:SAT:TRAC:IGN?", SCPI_IGNORE_MSG);
   }
   else if(rcvr_type == SS_RCVR) {
      old_gps = ss_deleted_gps;
      old_sbas = ss_deleted_sbas;  

      if(prn <= 0) {  // restore all sats
         ss_deleted_gps = 0;
         ss_deleted_sbas = 0;  
      }
      else if((prn >= 1) && (prn <= 32)) {  // delete all byr one gps sat
         ss_deleted_gps = (1U << (prn-1));
         ss_deleted_gps = (~ss_deleted_gps);
         send_ss_start(90, 16);
         send_ss_string("UGPS-000");
         send_byte((ss_deleted_gps >> 0) & 0xFF);
         send_byte((ss_deleted_gps >> 8) & 0xFF);
         send_byte((ss_deleted_gps >> 16) & 0xFF);
         send_byte((ss_deleted_gps >> 24) & 0xFF);
         send_ss_end();
      }
      else if(0 && (prn >= 120) && (prn <= 138)) {  // !!!!! this needs work - delete sbas sat
         ss_deleted_sbas |= (1U << (prn-33));
         ss_deleted_sbas = (~ss_deleted_sbas);
         send_ss_start(90, 16);
         send_ss_string("UGPS-0G5");
         send_byte((ss_deleted_gps >> 0) & 0xFF);
         send_byte((ss_deleted_gps >> 8) & 0xFF);
         send_byte((ss_deleted_gps >> 16) & 0xFF);
         send_byte((ss_deleted_gps >> 24) & 0xFF);
         send_ss_end();
      }

      ss_deleted_gps = old_gps;
      ss_deleted_sbas = old_sbas;  
      request_rcvr_config(8799);
   }
   else if(rcvr_type == UCCM_RCVR) {
      single_sat_prn = prn;
      have_single_prn = 1;
      if(prn) {
         queue_uccm_cmd("GPS:SAT:TRAC:IGN:ALL", SCPI_IGNORE_MSG);
         sprintf(out,"GPS:SAT:TRAC:INCL %d", prn);
         queue_uccm_cmd(out,  SCPI_INCLUDE_MSG);
      }
      else {
         queue_uccm_cmd("GPS:SAT:TRAC:INCL:ALL", SCPI_INCLUDE_MSG);
// queue_uccm_cmd("SYNC:HOLD:REC:INIT", SCPI_HOLDOVER_MSG);    // ggggggg
      }
      queue_uccm_cmd("GPS:SAT:TRAC:IGN?", SCPI_IGNORE_MSG);
   }
   else if(rcvr_type == TSIP_RCVR) {
      single_sat_prn = prn;
      have_single_prn = 1;
      if(!ACU_GG && !ACU_360) {
         send_tsip_start(0x34);
         send_byte((u08) prn);
         send_tsip_end();
      }

      if(SV6_FAMILY) {
         if((prn == 0) && (rcvr_mode == RCVR_MODE_SINGLE)) { // exit single sat mode
            set_rcvr_mode(RCVR_MODE_HOLD);
         }
         else {
            set_rcvr_mode(RCVR_MODE_SINGLE);
         }
      }
   }
   else if(rcvr_type == ZODIAC_RCVR) {
      single_sat_prn = prn;
      have_single_prn = 1;
      if(prn) {
         val = 1 << (prn-1);
      }
      else {
         val = 0xFFFFFFFF;
      }

      set_zod_sat_mask(val);
   }

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x4(%rbp)
leaq 0x307558(%rip), %rax    # 0x3961fa
cmpb $0x0, (%rax)
je 0x8ecac
jmp 0x8f535
leaq 0x20f46b(%rip), %rax    # 0x29e11e
cmpb $0x0, (%rax)
je 0x8ecbd
jmp 0x8f535
movl $0x80000000, %ecx       # imm = 0x80000000
leaq 0x1e8de7(%rip), %rax    # 0x277ab0
cmpq %rcx, (%rax)
jne 0x8ecd0
jmp 0x8ecdd
cmpl $0x20, -0x4(%rbp)
jle 0x8ecdb
jmp 0x8f535
jmp 0x8ecdd
cmpl $0x0, -0x4(%rbp)
jge 0x8ece8
jmp 0x8f535
movl $0x80000000, %ecx       # imm = 0x80000000
leaq 0x1e8dbc(%rip), %rax    # 0x277ab0
cmpq %rcx, (%rax)
jne 0x8ef2c
movl -0x4(%rbp), %ecx
leaq 0x2dd5b5(%rip), %rax    # 0x36c2bc
movl %ecx, (%rax)
leaq 0x2dd5b0(%rip), %rax    # 0x36c2c0
movl $0x1, (%rax)
cmpl $0x0, -0x4(%rbp)
jne 0x8ed28
xorl %edi, %edi
callq 0x8f540
jmp 0x8ef27
leaq 0x2de239(%rip), %rax    # 0x36cf68
movl (%rax), %eax
movl %eax, -0xc(%rbp)
leaq 0x2de231(%rip), %rax    # 0x36cf6c
movl (%rax), %eax
movl %eax, -0x10(%rbp)
leaq 0x2de22d(%rip), %rax    # 0x36cf74
movl (%rax), %eax
movl %eax, -0x14(%rbp)
leaq 0x2de225(%rip), %rax    # 0x36cf78
movl (%rax), %eax
movl %eax, -0x18(%rbp)
leaq 0x2de211(%rip), %rax    # 0x36cf70
movl (%rax), %eax
movl %eax, -0x1c(%rbp)
leaq 0x2de1fd(%rip), %rax    # 0x36cf68
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
leaq 0x2de1f4(%rip), %rax    # 0x36cf6c
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
leaq 0x2de1ef(%rip), %rax    # 0x36cf74
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
leaq 0x2de1e6(%rip), %rax    # 0x36cf78
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
leaq 0x2de1d1(%rip), %rax    # 0x36cf70
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
cmpl $0x1, -0x4(%rbp)
jl 0x8edda
cmpl $0x20, -0x4(%rbp)
jg 0x8edda
movl -0x4(%rbp), %ecx
subl $0x1, %ecx
movl $0x1, %eax
shll %cl, %eax
movl %eax, %ecx
xorl $-0x1, %ecx
leaq 0x2de19e(%rip), %rax    # 0x36cf68
andl (%rax), %ecx
leaq 0x2de195(%rip), %rax    # 0x36cf68
movl %ecx, (%rax)
jmp 0x8eeba
cmpl $0x41, -0x4(%rbp)
jl 0x8ee0f
cmpl $0x5c, -0x4(%rbp)
jg 0x8ee0f
movl -0x4(%rbp), %ecx
subl $0x41, %ecx
movl $0x1, %eax
shll %cl, %eax
movl %eax, %ecx
xorl $-0x1, %ecx
leaq 0x2de16d(%rip), %rax    # 0x36cf6c
andl (%rax), %ecx
leaq 0x2de164(%rip), %rax    # 0x36cf6c
movl %ecx, (%rax)
jmp 0x8eeb8
cmpl $0x5d, -0x4(%rbp)
jl 0x8ee41
cmpl $0x63, -0x4(%rbp)
jg 0x8ee41
movl -0x4(%rbp), %ecx
subl $0x5d, %ecx
movl $0x1, %eax
shll %cl, %eax
movl %eax, %ecx
xorl $-0x1, %ecx
leaq 0x2de140(%rip), %rax    # 0x36cf74
andl (%rax), %ecx
leaq 0x2de137(%rip), %rax    # 0x36cf74
movl %ecx, (%rax)
jmp 0x8eeb6
cmpl $0x21, -0x4(%rbp)
jl 0x8ee73
cmpl $0x33, -0x4(%rbp)
jg 0x8ee73
movl -0x4(%rbp), %ecx
subl $0x21, %ecx
movl $0x1, %eax
shll %cl, %eax
movl %eax, %ecx
xorl $-0x1, %ecx
leaq 0x2de112(%rip), %rax    # 0x36cf78
andl (%rax), %ecx
leaq 0x2de109(%rip), %rax    # 0x36cf78
movl %ecx, (%rax)
jmp 0x8eeb4
movl -0xc(%rbp), %ecx
leaq 0x2de0eb(%rip), %rax    # 0x36cf68
movl %ecx, (%rax)
movl -0x10(%rbp), %ecx
leaq 0x2de0e3(%rip), %rax    # 0x36cf6c
movl %ecx, (%rax)
movl -0x14(%rbp), %ecx
leaq 0x2de0df(%rip), %rax    # 0x36cf74
movl %ecx, (%rax)
movl -0x18(%rbp), %ecx
leaq 0x2de0d7(%rip), %rax    # 0x36cf78
movl %ecx, (%rax)
movl -0x1c(%rbp), %ecx
leaq 0x2de0c3(%rip), %rax    # 0x36cf70
movl %ecx, (%rax)
jmp 0x8f535
jmp 0x8eeb6
jmp 0x8eeb8
jmp 0x8eeba
leaq 0x2dd3d7(%rip), %rax    # 0x36c298
movss (%rax), %xmm1
movl $0xff, %edx
movss 0xe2a66(%rip), %xmm3    # 0x171938
movl %edx, %edi
movl %edx, %esi
movaps %xmm3, %xmm0
movaps %xmm3, %xmm2
callq 0x805d0
movl -0xc(%rbp), %ecx
leaq 0x2de07d(%rip), %rax    # 0x36cf68
movl %ecx, (%rax)
movl -0x10(%rbp), %ecx
leaq 0x2de075(%rip), %rax    # 0x36cf6c
movl %ecx, (%rax)
movl -0x14(%rbp), %ecx
leaq 0x2de071(%rip), %rax    # 0x36cf74
movl %ecx, (%rax)
movl -0x18(%rbp), %ecx
leaq 0x2de069(%rip), %rax    # 0x36cf78
movl %ecx, (%rax)
movl -0x1c(%rbp), %ecx
leaq 0x2de055(%rip), %rax    # 0x36cf70
movl %ecx, (%rax)
movl $0x225f, %edi           # imm = 0x225F
callq 0x8c270
jmp 0x8f535
leaq 0x1e8b7d(%rip), %rax    # 0x277ab0
cmpq $0x20000000, (%rax)     # imm = 0x20000000
jne 0x8efb7
movl -0x4(%rbp), %ecx
leaq 0x2dd376(%rip), %rax    # 0x36c2bc
movl %ecx, (%rax)
leaq 0x2dd371(%rip), %rax    # 0x36c2c0
movl $0x1, (%rax)
cmpl $0x0, -0x4(%rbp)
je 0x8ef6d
movl -0x4(%rbp), %ecx
subl $0x1, %ecx
movl $0x1, %eax
shll %cl, %eax
movl %eax, -0x8(%rbp)
jmp 0x8ef74
movl $0xffffffff, -0x8(%rbp) # imm = 0xFFFFFFFF
movl -0x8(%rbp), %eax
xorl $-0x1, %eax
movl %eax, -0x8(%rbp)
movl -0x8(%rbp), %edx
leaq 0x30c479(%rip), %rdi    # 0x39b400
leaq 0xf4e94(%rip), %rsi     # 0x183e22
movb $0x0, %al
callq 0x9060
leaq 0x30c464(%rip), %rdi    # 0x39b400
callq 0x83270
callq 0x81c10
leaq 0xf4da4(%rip), %rdi     # 0x183d51
callq 0x83270
jmp 0x8f533
leaq 0x1e8af2(%rip), %rax    # 0x277ab0
cmpq $0x20, (%rax)
jne 0x8f034
movl -0x4(%rbp), %ecx
leaq 0x2dd2ee(%rip), %rax    # 0x36c2bc
movl %ecx, (%rax)
leaq 0x2dd2e9(%rip), %rax    # 0x36c2c0
movl $0x1, (%rax)
leaq 0xf4e2f(%rip), %rdi     # 0x183e13
callq 0x86190
xorl %edi, %edi
callq 0x7b210
cmpl $0x0, -0x4(%rbp)
je 0x8f011
movl -0x4(%rbp), %ecx
subl $0x1, %ecx
movl $0x1, %eax
shll %cl, %eax
movl %eax, -0x8(%rbp)
movl -0x8(%rbp), %eax
xorl $-0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0x8f018
movl $0x0, -0x8(%rbp)
movl -0x8(%rbp), %edi
callq 0x7b520
callq 0x86230
callq 0x81c10
callq 0x8ea20
jmp 0x8f531
leaq 0x1e8a75(%rip), %rax    # 0x277ab0
cmpq $0x10, (%rax)
jne 0x8f10a
leaq 0x1eb174(%rip), %rax    # 0x27a1c0
cmpl $0x4e, (%rax)
jne 0x8f10a
movl -0x4(%rbp), %ecx
leaq 0x2dd25d(%rip), %rax    # 0x36c2bc
movl %ecx, (%rax)
leaq 0x2dd258(%rip), %rax    # 0x36c2c0
movl $0x1, (%rax)
cmpl $0x0, -0x4(%rbp)
je 0x8f0b0
leaq 0xf4db3(%rip), %rdi     # 0x183e2e
movl $0x1e, %esi
callq 0x82fd0
movl -0x4(%rbp), %edx
leaq 0x30c371(%rip), %rdi    # 0x39b400
leaq 0xf4dae(%rip), %rsi     # 0x183e44
movb $0x0, %al
callq 0x9060
leaq 0x30c35c(%rip), %rdi    # 0x39b400
movl $0x20, %esi
callq 0x82fd0
jmp 0x8f0f4
leaq 0xf4da5(%rip), %rdi     # 0x183e5c
movl $0x20, %esi
callq 0x82fd0
leaq 0xf4dc7(%rip), %rdi     # 0x183e8f
movl $0x20, %esi
callq 0x82fd0
leaq 0xf4de9(%rip), %rdi     # 0x183ec2
movl $0x20, %esi
callq 0x82fd0
leaq 0xf4e08(%rip), %rdi     # 0x183ef2
movl $0x21, %esi
callq 0x82fd0
leaq 0xf4e06(%rip), %rdi     # 0x183f01
movl $0x1e, %esi
callq 0x82fd0
jmp 0x8f52f
leaq 0x1e899f(%rip), %rax    # 0x277ab0
cmpq $0x10, (%rax)
jne 0x8f1bf
movl -0x4(%rbp), %ecx
leaq 0x2dd197(%rip), %rax    # 0x36c2bc
movl %ecx, (%rax)
leaq 0x2dd192(%rip), %rax    # 0x36c2c0
movl $0x1, (%rax)
cmpl $0x0, -0x4(%rbp)
je 0x8f176
leaq 0xf4dd3(%rip), %rdi     # 0x183f14
movl $0x1e, %esi
callq 0x82fd0
movl -0x4(%rbp), %edx
leaq 0x30c2ab(%rip), %rdi    # 0x39b400
leaq 0xf4dce(%rip), %rsi     # 0x183f2a
movb $0x0, %al
callq 0x9060
leaq 0x30c296(%rip), %rdi    # 0x39b400
movl $0x20, %esi
callq 0x82fd0
jmp 0x8f1a9
leaq 0xf4dc3(%rip), %rdi     # 0x183f40
movl $0x1e, %esi
callq 0x82fd0
leaq 0xf4dc9(%rip), %rdi     # 0x183f57
movl $0x20, %esi
callq 0x82fd0
leaq 0xf4dcf(%rip), %rdi     # 0x183f6e
movl $0x16, %esi
callq 0x82fd0
leaq 0xf4d51(%rip), %rdi     # 0x183f01
movl $0x1e, %esi
callq 0x82fd0
jmp 0x8f52d
movabsq $0x800000000, %rcx      # imm = 0x800000000
leaq 0x1e88e0(%rip), %rax    # 0x277ab0
cmpq %rcx, (%rax)
jne 0x8f308
leaq 0x2dddb0(%rip), %rax    # 0x36cf90
movl (%rax), %eax
movl %eax, -0xc(%rbp)
leaq 0x2ddda8(%rip), %rax    # 0x36cf94
movl (%rax), %eax
movl %eax, -0x18(%rbp)
cmpl $0x0, -0x4(%rbp)
jg 0x8f216
leaq 0x2ddd92(%rip), %rax    # 0x36cf90
movl $0x0, (%rax)
leaq 0x2ddd89(%rip), %rax    # 0x36cf94
movl $0x0, (%rax)
jmp 0x8f2e1
cmpl $0x1, -0x4(%rbp)
jl 0x8f2dd
cmpl $0x20, -0x4(%rbp)
jg 0x8f2dd
movl -0x4(%rbp), %ecx
subl $0x1, %ecx
movl $0x1, %eax
shll %cl, %eax
movl %eax, %ecx
leaq 0x2ddd50(%rip), %rax    # 0x36cf90
movl %ecx, (%rax)
leaq 0x2ddd47(%rip), %rax    # 0x36cf90
movl (%rax), %ecx
xorl $-0x1, %ecx
leaq 0x2ddd3b(%rip), %rax    # 0x36cf90
movl %ecx, (%rax)
movl $0x5a, %edi
movl $0x10, %esi
callq 0x8ab80
leaq 0xf485d(%rip), %rdi     # 0x183aca
callq 0x8abe0
leaq 0x2ddd17(%rip), %rax    # 0x36cf90
movl (%rax), %eax
shrl $0x0, %eax
andl $0xff, %eax
movzbl %al, %edi
callq 0x7b210
leaq 0x2ddcfe(%rip), %rax    # 0x36cf90
movl (%rax), %eax
shrl $0x8, %eax
andl $0xff, %eax
movzbl %al, %edi
callq 0x7b210
leaq 0x2ddce5(%rip), %rax    # 0x36cf90
movl (%rax), %eax
shrl $0x10, %eax
andl $0xff, %eax
movzbl %al, %edi
callq 0x7b210
leaq 0x2ddccc(%rip), %rax    # 0x36cf90
movl (%rax), %eax
shrl $0x18, %eax
andl $0xff, %eax
movzbl %al, %edi
callq 0x7b210
callq 0x8ac40
jmp 0x8f2df
jmp 0x8f2df
jmp 0x8f2e1
movl -0xc(%rbp), %ecx
leaq 0x2ddca5(%rip), %rax    # 0x36cf90
movl %ecx, (%rax)
movl -0x18(%rbp), %ecx
leaq 0x2ddc9d(%rip), %rax    # 0x36cf94
movl %ecx, (%rax)
movl $0x225f, %edi           # imm = 0x225F
callq 0x8c270
jmp 0x8f52b
leaq 0x1e87a1(%rip), %rax    # 0x277ab0
cmpq $0x8, (%rax)
jne 0x8f39b
movl -0x4(%rbp), %ecx
leaq 0x2dcf99(%rip), %rax    # 0x36c2bc
movl %ecx, (%rax)
leaq 0x2dcf94(%rip), %rax    # 0x36c2c0
movl $0x1, (%rax)
cmpl $0x0, -0x4(%rbp)
je 0x8f374
leaq 0xf4bd6(%rip), %rdi     # 0x183f15
movl $0x1e, %esi
callq 0x82fd0
movl -0x4(%rbp), %edx
leaq 0x30c0ad(%rip), %rdi    # 0x39b400
leaq 0xf4bd1(%rip), %rsi     # 0x183f2b
movb $0x0, %al
callq 0x9060
leaq 0x30c098(%rip), %rdi    # 0x39b400
movl $0x20, %esi
callq 0x82fd0
jmp 0x8f385
leaq 0xf4bdd(%rip), %rdi     # 0x183f58
movl $0x20, %esi
callq 0x82fd0
leaq 0xf4b76(%rip), %rdi     # 0x183f02
movl $0x1e, %esi
callq 0x82fd0
jmp 0x8f529
leaq 0x1e870e(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x8f4d5
movl -0x4(%rbp), %ecx
leaq 0x2dcf06(%rip), %rax    # 0x36c2bc
movl %ecx, (%rax)
leaq 0x2dcf01(%rip), %rax    # 0x36c2c0
movl $0x1, (%rax)
leaq 0x1e86e4(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x8f3ea
leaq 0x1eaddb(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x8f3ea
leaq 0x1e86f3(%rip), %rax    # 0x277ad8
cmpl $0x47, (%rax)
je 0x8f435
leaq 0x1e86bf(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x8f41b
leaq 0x1eadb6(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x8f41b
leaq 0x1e86ce(%rip), %rax    # 0x277ad8
cmpl $0x33, (%rax)
je 0x8f435
leaq 0x1e86c2(%rip), %rax    # 0x277ad8
cmpl $0x47, (%rax)
je 0x8f435
movl $0x34, %edi
callq 0x824f0
movl -0x4(%rbp), %eax
movzbl %al, %edi
callq 0x7b210
callq 0x82590
leaq 0x1e8674(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x8f4d3
leaq 0x1ead67(%rip), %rax    # 0x27a1b4
cmpl $0x36, (%rax)
je 0x8f476
leaq 0x1ead5b(%rip), %rax    # 0x27a1b4
cmpl $0x33, (%rax)
je 0x8f476
leaq 0x1ead4f(%rip), %rax    # 0x27a1b4
cmpl $0x50, (%rax)
je 0x8f476
leaq 0x1ead43(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x8f4d3
cmpl $0x0, -0x4(%rbp)
jne 0x8f4af
leaq 0x2dce2d(%rip), %rax    # 0x36c2b0
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x8f4af
movl $0x7, %edi
movl $0xff, %edx
movss 0xe249b(%rip), %xmm3    # 0x171938
movl %edx, %esi
movaps %xmm3, %xmm0
movaps %xmm3, %xmm1
movaps %xmm3, %xmm2
callq 0x805d0
jmp 0x8f4d1
movl $0x1, %edi
movl $0xff, %edx
movss 0xe2477(%rip), %xmm3    # 0x171938
movl %edx, %esi
movaps %xmm3, %xmm0
movaps %xmm3, %xmm1
movaps %xmm3, %xmm2
callq 0x805d0
jmp 0x8f4d3
jmp 0x8f527
leaq 0x1e85d4(%rip), %rax    # 0x277ab0
cmpq $0x100, (%rax)          # imm = 0x100
jne 0x8f525
movl -0x4(%rbp), %ecx
leaq 0x2dcdcd(%rip), %rax    # 0x36c2bc
movl %ecx, (%rax)
leaq 0x2dcdc8(%rip), %rax    # 0x36c2c0
movl $0x1, (%rax)
cmpl $0x0, -0x4(%rbp)
je 0x8f516
movl -0x4(%rbp), %ecx
subl $0x1, %ecx
movl $0x1, %eax
shll %cl, %eax
movl %eax, -0x8(%rbp)
jmp 0x8f51d
movl $0xffffffff, -0x8(%rbp) # imm = 0xFFFFFFFF
movl -0x8(%rbp), %edi
callq 0x8fe20
jmp 0x8f527
jmp 0x8f529
jmp 0x8f52b
jmp 0x8f52d
jmp 0x8f52f
jmp 0x8f531
jmp 0x8f533
jmp 0x8f535
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)