// File: jkingan[P]ladyheather/heathgps.cpp
// Function: decode_nmea_msg()
void decode_nmea_msg()
{
char c;
int i;
static int row = 0;

   venus_nmea = 0;
   start_msg_decode(1);

   nmea_msg[0] = 0;
   for(i=0; i<tsip_wptr; i++) {  // copy message from tsip buffer to nmea buffer
      c = tsip_byte();
      nmea_msg[i] = c;
      nmea_msg[i+1] = 0;
      if(i >= ((int)sizeof(nmea_msg)-12)) break;
   }

   if(debug_file && (rcvr_type == ESIP_RCVR)) {
      fprintf(debug_file, "Rcvd eSIP:%s\n", nmea_msg);
   }
   if(debug_file && (rcvr_type == FURUNO_RCVR)) {
      fprintf(debug_file, "Rcvd furuno:%s\n", nmea_msg);
   }


   msg_col = 0;     // index of next char to get from nmea buffer
   get_msg_field(); // get the NMEA message type 

   if     (!strcmp(msg_field, "GPGSV")) parse_gpgsv(GPS);
   else if(!strcmp(msg_field, "BDGSV")) parse_gpgsv(BEIDOU);
   else if(!strcmp(msg_field, "GBGSV")) parse_gpgsv(BEIDOU);
   else if(!strcmp(msg_field, "GLGSV")) parse_gpgsv(GLONASS);
   else if(!strcmp(msg_field, "GAGSV")) parse_gpgsv(GALILEO);
   else if(!strcmp(msg_field, "GNGSV")) parse_gpgsv(MIXED);

   else if(!strcmp(msg_field, "GPGSA")) parse_gpgsa(GPS);
   else if(!strcmp(msg_field, "BDGSA")) parse_gpgsa(BEIDOU);
   else if(!strcmp(msg_field, "GBGSA")) parse_gpgsa(BEIDOU);
   else if(!strcmp(msg_field, "GLGSA")) parse_gpgsa(GLONASS);
   else if(!strcmp(msg_field, "GAGSA")) parse_gpgsa(GALILEO);
   else if(!strcmp(msg_field, "GNGSA")) parse_gpgsa(MIXED);

   else if(!strcmp(msg_field, "GPGGA")) parse_gpgga(GPS);
   else if(!strcmp(msg_field, "BDGGA")) parse_gpgga(BEIDOU);
   else if(!strcmp(msg_field, "GBGGA")) parse_gpgga(BEIDOU);
   else if(!strcmp(msg_field, "GLGGA")) parse_gpgga(GLONASS);
   else if(!strcmp(msg_field, "GAGGA")) parse_gpgga(GALILEO);
   else if(!strcmp(msg_field, "GNGGA")) parse_gpgga(MIXED);

   else if(!strcmp(msg_field, "GPRMC")) parse_gprmc(GPS);
   else if(!strcmp(msg_field, "BDRCM")) parse_gprmc(BEIDOU);
   else if(!strcmp(msg_field, "GBRMC")) parse_gprmc(BEIDOU);
   else if(!strcmp(msg_field, "GLRMC")) parse_gprmc(GLONASS);
   else if(!strcmp(msg_field, "GARMC")) parse_gprmc(GALILEO);
   else if(!strcmp(msg_field, "GNRMC")) parse_gprmc(MIXED);

   else if(!strcmp(msg_field, "GPZDA")) parse_gpzda(GPS);
   else if(!strcmp(msg_field, "BDZDA")) parse_gpzda(BEIDOU);
   else if(!strcmp(msg_field, "GBZDA")) parse_gpzda(BEIDOU);
   else if(!strcmp(msg_field, "GLZDA")) parse_gpzda(GLONASS);
   else if(!strcmp(msg_field, "GAZDA")) parse_gpzda(GALILEO);
   else if(!strcmp(msg_field, "GNZDA")) parse_gpzda(MIXED);

   else if(!strcmp(msg_field, "GPGNS")) parse_gpgns(GPS);
   else if(!strcmp(msg_field, "BDGNS")) parse_gpgns(BEIDOU);
   else if(!strcmp(msg_field, "GBGNS")) parse_gpgns(BEIDOU);
   else if(!strcmp(msg_field, "GLGNS")) parse_gpgns(GLONASS);
   else if(!strcmp(msg_field, "GAGNS")) parse_gpgns(GALILEO);
   else if(!strcmp(msg_field, "GNGNS")) parse_gpgns(MIXED);

// else if(!strcmp(msg_field, "GPGLL")) parse_gpgll(GPS);
// else if(!strcmp(msg_field, "BDGLL")) parse_gpgll(BEIDOU);
// else if(!strcmp(msg_field, "GBGLL")) parse_gpgll(BEIDOU);
// else if(!strcmp(msg_field, "GLGLL")) parse_gpgll(GLONASS);
// else if(!strcmp(msg_field, "GAGLL")) parse_gpgll(GALILEO);
// else if(!strcmp(msg_field, "GNGLL")) parse_gpgll(MIXED);

// else if(!strcmp(msg_field, "GPVTG")) parse_gpvtg(GPS);
// else if(!strcmp(msg_field, "BDVTG")) parse_gpvtg(BEIDOU);
// else if(!strcmp(msg_field, "GBVTG")) parse_gpvtg(BEIDOU);
// else if(!strcmp(msg_field, "GLVTG")) parse_gpvtg(GLONASS);
// else if(!strcmp(msg_field, "GAVTG")) parse_gpvtg(GALILEO);
// else if(!strcmp(msg_field, "GNVTG")) parse_gpvtg(MIXED);

   else if(!strcmp(msg_field, "PASHR"))  parse_pashr();       // Ashtech Z12 messages

   else if(!strcmp(msg_field, "PERDCRW"))  parse_crw();       // Furuno esip messages
   else if(!strcmp(msg_field, "PERDCRX"))  parse_crx();
   else if(!strcmp(msg_field, "PERDCRY"))  parse_cry();
   else if(!strcmp(msg_field, "PERDCRZ"))  parse_crz();
   else if(!strcmp(msg_field, "PERDCRM"))  parse_crm();
   else if(!strcmp(msg_field, "PERDCRN"))  parse_crn();
   else if(!strcmp(msg_field, "PERDACK"))  parse_perdack();
   else if(!strcmp(msg_field, "PERDAPI"))  parse_perdapi();
   else if(!strcmp(msg_field, "PERDSYS"))  parse_perdsys();

   else if(!strcmp(msg_field, "PFEC"))  parse_pfec();         // Furuno messages

   else if(!strcmp(msg_field, "PGRMT")) parse_pgrmt(MIXED);   // Garmin GPS sensor status
   else if(!strcmp(msg_field, "PGRMF")) parse_pgrmf(MIXED);   // Garmin GPS system data
   else if(!strcmp(msg_field, "PSTI"))  parse_psti(MIXED);
   else if(!strcmp(msg_field, "PJLTS")) parse_pjlts(MIXED);

   else {
      last_was_gsv = 0;
      parse_gp_unkn();
   }


   if(sim_file && sim_delay) {  // throttle sim file messages
      Sleep(sim_delay);
   }

   saw_rcvr_msg = 1;
   return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl $0x0, 0x315472(%rip)    # 0x3cbcc4
movl $0x1, %edi
callq 0xae4a0
leaq 0x2e41ad(%rip), %rax    # 0x39aa10
movb $0x0, (%rax)
movl $0x0, -0x8(%rbp)
movl -0x8(%rbp), %eax
leaq 0x2e0bbb(%rip), %rcx    # 0x397432
movzwl (%rcx), %ecx
cmpl %ecx, %eax
jge 0xb68c3
callq 0x7a510
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %dl
movslq -0x8(%rbp), %rcx
leaq 0x2e417c(%rip), %rax    # 0x39aa10
movb %dl, (%rax,%rcx)
movl -0x8(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rcx
leaq 0x2e4169(%rip), %rax    # 0x39aa10
movb $0x0, (%rax,%rcx)
cmpl $0x1f5, -0x8(%rbp)      # imm = 0x1F5
jl 0xb68b6
jmp 0xb68c3
jmp 0xb68b8
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0xb686d
leaq 0x1e6ca6(%rip), %rax    # 0x29d570
cmpq $0x0, (%rax)
je 0xb6900
movl $0x80000000, %ecx       # imm = 0x80000000
leaq 0x1c11d4(%rip), %rax    # 0x277ab0
cmpq %rcx, (%rax)
jne 0xb6900
leaq 0x1e6c88(%rip), %rax    # 0x29d570
movq (%rax), %rdi
leaq 0xcfbc6(%rip), %rsi     # 0x1864b8
leaq 0x2e4117(%rip), %rdx    # 0x39aa10
movb $0x0, %al
callq 0x9550
leaq 0x1e6c69(%rip), %rax    # 0x29d570
cmpq $0x0, (%rax)
je 0xb693c
leaq 0x1c119c(%rip), %rax    # 0x277ab0
cmpq $0x20000000, (%rax)     # imm = 0x20000000
jne 0xb693c
leaq 0x1e6c4c(%rip), %rax    # 0x29d570
movq (%rax), %rdi
leaq 0xcfb98(%rip), %rsi     # 0x1864c6
leaq 0x2e40db(%rip), %rdx    # 0x39aa10
movb $0x0, %al
callq 0x9550
leaq 0x2e44e1(%rip), %rax    # 0x39ae24
movl $0x0, (%rax)
callq 0xb0bd0
leaq 0x2e42cb(%rip), %rdi    # 0x39ac20
leaq 0xcfb7a(%rip), %rsi     # 0x1864d6
callq 0x9510
cmpl $0x0, %eax
jne 0xb6975
movl $0x1, %edi
callq 0xb1220
jmp 0xb7146
leaq 0x2e42a4(%rip), %rdi    # 0x39ac20
leaq 0xcfb59(%rip), %rsi     # 0x1864dc
callq 0x9510
cmpl $0x0, %eax
jne 0xb699c
movl $0x8, %edi
callq 0xb1220
jmp 0xb7144
leaq 0x2e427d(%rip), %rdi    # 0x39ac20
leaq 0xcfb38(%rip), %rsi     # 0x1864e2
callq 0x9510
cmpl $0x0, %eax
jne 0xb69c3
movl $0x8, %edi
callq 0xb1220
jmp 0xb7142
leaq 0x2e4256(%rip), %rdi    # 0x39ac20
leaq 0xcfb17(%rip), %rsi     # 0x1864e8
callq 0x9510
cmpl $0x0, %eax
jne 0xb69ea
movl $0x2, %edi
callq 0xb1220
jmp 0xb7140
leaq 0x2e422f(%rip), %rdi    # 0x39ac20
leaq 0xcfaf6(%rip), %rsi     # 0x1864ee
callq 0x9510
cmpl $0x0, %eax
jne 0xb6a11
movl $0x4, %edi
callq 0xb1220
jmp 0xb713e
leaq 0x2e4208(%rip), %rdi    # 0x39ac20
leaq 0xcfad5(%rip), %rsi     # 0x1864f4
callq 0x9510
cmpl $0x0, %eax
jne 0xb6a38
movl $0xc00f, %edi           # imm = 0xC00F
callq 0xb1220
jmp 0xb713c
leaq 0x2e41e1(%rip), %rdi    # 0x39ac20
leaq 0xcfab4(%rip), %rsi     # 0x1864fa
callq 0x9510
cmpl $0x0, %eax
jne 0xb6a5f
movl $0x1, %edi
callq 0xb0f40
jmp 0xb713a
leaq 0x2e41ba(%rip), %rdi    # 0x39ac20
leaq 0xcfa93(%rip), %rsi     # 0x186500
callq 0x9510
cmpl $0x0, %eax
jne 0xb6a86
movl $0x8, %edi
callq 0xb0f40
jmp 0xb7138
leaq 0x2e4193(%rip), %rdi    # 0x39ac20
leaq 0xcfa72(%rip), %rsi     # 0x186506
callq 0x9510
cmpl $0x0, %eax
jne 0xb6aad
movl $0x8, %edi
callq 0xb0f40
jmp 0xb7136
leaq 0x2e416c(%rip), %rdi    # 0x39ac20
leaq 0xcfa51(%rip), %rsi     # 0x18650c
callq 0x9510
cmpl $0x0, %eax
jne 0xb6ad4
movl $0x2, %edi
callq 0xb0f40
jmp 0xb7134
leaq 0x2e4145(%rip), %rdi    # 0x39ac20
leaq 0xcfa30(%rip), %rsi     # 0x186512
callq 0x9510
cmpl $0x0, %eax
jne 0xb6afb
movl $0x4, %edi
callq 0xb0f40
jmp 0xb7132
leaq 0x2e411e(%rip), %rdi    # 0x39ac20
leaq 0xcfa0f(%rip), %rsi     # 0x186518
callq 0x9510
cmpl $0x0, %eax
jne 0xb6b22
movl $0xc00f, %edi           # imm = 0xC00F
callq 0xb0f40
jmp 0xb7130
leaq 0x2e40f7(%rip), %rdi    # 0x39ac20
leaq 0xcf9ee(%rip), %rsi     # 0x18651e
callq 0x9510
cmpl $0x0, %eax
jne 0xb6b49
movl $0x1, %edi
callq 0xb21e0
jmp 0xb712e
leaq 0x2e40d0(%rip), %rdi    # 0x39ac20
leaq 0xcf9cd(%rip), %rsi     # 0x186524
callq 0x9510
cmpl $0x0, %eax
jne 0xb6b70
movl $0x8, %edi
callq 0xb21e0
jmp 0xb712c
leaq 0x2e40a9(%rip), %rdi    # 0x39ac20
leaq 0xcf9ac(%rip), %rsi     # 0x18652a
callq 0x9510
cmpl $0x0, %eax
jne 0xb6b97
movl $0x8, %edi
callq 0xb21e0
jmp 0xb712a
leaq 0x2e4082(%rip), %rdi    # 0x39ac20
leaq 0xcf98b(%rip), %rsi     # 0x186530
callq 0x9510
cmpl $0x0, %eax
jne 0xb6bbe
movl $0x2, %edi
callq 0xb21e0
jmp 0xb7128
leaq 0x2e405b(%rip), %rdi    # 0x39ac20
leaq 0xcf96a(%rip), %rsi     # 0x186536
callq 0x9510
cmpl $0x0, %eax
jne 0xb6be5
movl $0x4, %edi
callq 0xb21e0
jmp 0xb7126
leaq 0x2e4034(%rip), %rdi    # 0x39ac20
leaq 0xcf949(%rip), %rsi     # 0x18653c
callq 0x9510
cmpl $0x0, %eax
jne 0xb6c0c
movl $0xc00f, %edi           # imm = 0xC00F
callq 0xb21e0
jmp 0xb7124
leaq 0x2e400d(%rip), %rdi    # 0x39ac20
leaq 0xcf928(%rip), %rsi     # 0x186542
callq 0x9510
cmpl $0x0, %eax
jne 0xb6c33
movl $0x1, %edi
callq 0xb20a0
jmp 0xb7122
leaq 0x2e3fe6(%rip), %rdi    # 0x39ac20
leaq 0xcf907(%rip), %rsi     # 0x186548
callq 0x9510
cmpl $0x0, %eax
jne 0xb6c5a
movl $0x8, %edi
callq 0xb20a0
jmp 0xb7120
leaq 0x2e3fbf(%rip), %rdi    # 0x39ac20
leaq 0xcf8e6(%rip), %rsi     # 0x18654e
callq 0x9510
cmpl $0x0, %eax
jne 0xb6c81
movl $0x8, %edi
callq 0xb20a0
jmp 0xb711e
leaq 0x2e3f98(%rip), %rdi    # 0x39ac20
leaq 0xcf8c5(%rip), %rsi     # 0x186554
callq 0x9510
cmpl $0x0, %eax
jne 0xb6ca8
movl $0x2, %edi
callq 0xb20a0
jmp 0xb711c
leaq 0x2e3f71(%rip), %rdi    # 0x39ac20
leaq 0xcf8a4(%rip), %rsi     # 0x18655a
callq 0x9510
cmpl $0x0, %eax
jne 0xb6ccf
movl $0x4, %edi
callq 0xb20a0
jmp 0xb711a
leaq 0x2e3f4a(%rip), %rdi    # 0x39ac20
leaq 0xcf883(%rip), %rsi     # 0x186560
callq 0x9510
cmpl $0x0, %eax
jne 0xb6cf6
movl $0xc00f, %edi           # imm = 0xC00F
callq 0xb20a0
jmp 0xb7118
leaq 0x2e3f23(%rip), %rdi    # 0x39ac20
leaq 0xd0bfb(%rip), %rsi     # 0x1878ff
callq 0x9510
cmpl $0x0, %eax
jne 0xb6d1d
movl $0x1, %edi
callq 0xb2390
jmp 0xb7116
leaq 0x2e3efc(%rip), %rdi    # 0x39ac20
leaq 0xcf83b(%rip), %rsi     # 0x186566
callq 0x9510
cmpl $0x0, %eax
jne 0xb6d44
movl $0x8, %edi
callq 0xb2390
jmp 0xb7114
leaq 0x2e3ed5(%rip), %rdi    # 0x39ac20
leaq 0xcf81a(%rip), %rsi     # 0x18656c
callq 0x9510
cmpl $0x0, %eax
jne 0xb6d6b
movl $0x8, %edi
callq 0xb2390
jmp 0xb7112
leaq 0x2e3eae(%rip), %rdi    # 0x39ac20
leaq 0xcf7f9(%rip), %rsi     # 0x186572
callq 0x9510
cmpl $0x0, %eax
jne 0xb6d92
movl $0x2, %edi
callq 0xb2390
jmp 0xb7110
leaq 0x2e3e87(%rip), %rdi    # 0x39ac20
leaq 0xcf7d8(%rip), %rsi     # 0x186578
callq 0x9510
cmpl $0x0, %eax
jne 0xb6db9
movl $0x4, %edi
callq 0xb2390
jmp 0xb710e
leaq 0x2e3e60(%rip), %rdi    # 0x39ac20
leaq 0xcf7b7(%rip), %rsi     # 0x18657e
callq 0x9510
cmpl $0x0, %eax
jne 0xb6de0
movl $0xc00f, %edi           # imm = 0xC00F
callq 0xb2390
jmp 0xb710c
leaq 0x2e3e39(%rip), %rdi    # 0x39ac20
leaq 0xcf796(%rip), %rsi     # 0x186584
callq 0x9510
cmpl $0x0, %eax
jne 0xb6e07
movl $0x1, %edi
callq 0xb1b60
jmp 0xb710a
leaq 0x2e3e12(%rip), %rdi    # 0x39ac20
leaq 0xcf775(%rip), %rsi     # 0x18658a
callq 0x9510
cmpl $0x0, %eax
jne 0xb6e2e
movl $0x8, %edi
callq 0xb1b60
jmp 0xb7108
leaq 0x2e3deb(%rip), %rdi    # 0x39ac20
leaq 0xcf754(%rip), %rsi     # 0x186590
callq 0x9510
cmpl $0x0, %eax
jne 0xb6e55
movl $0x8, %edi
callq 0xb1b60
jmp 0xb7106
leaq 0x2e3dc4(%rip), %rdi    # 0x39ac20
leaq 0xcf733(%rip), %rsi     # 0x186596
callq 0x9510
cmpl $0x0, %eax
jne 0xb6e7c
movl $0x2, %edi
callq 0xb1b60
jmp 0xb7104
leaq 0x2e3d9d(%rip), %rdi    # 0x39ac20
leaq 0xcf712(%rip), %rsi     # 0x18659c
callq 0x9510
cmpl $0x0, %eax
jne 0xb6ea3
movl $0x4, %edi
callq 0xb1b60
jmp 0xb7102
leaq 0x2e3d76(%rip), %rdi    # 0x39ac20
leaq 0xcf6f1(%rip), %rsi     # 0x1865a2
callq 0x9510
cmpl $0x0, %eax
jne 0xb6eca
movl $0xc00f, %edi           # imm = 0xC00F
callq 0xb1b60
jmp 0xb7100
leaq 0x2e3d4f(%rip), %rdi    # 0x39ac20
leaq 0xcf6d0(%rip), %rsi     # 0x1865a8
callq 0x9510
cmpl $0x0, %eax
jne 0xb6eec
callq 0xb82d0
jmp 0xb70fe
leaq 0x2e3d2d(%rip), %rdi    # 0x39ac20
leaq 0xcf6b4(%rip), %rsi     # 0x1865ae
callq 0x9510
cmpl $0x0, %eax
jne 0xb6f0e
callq 0xb4aa0
jmp 0xb70fc
leaq 0x2e3d0b(%rip), %rdi    # 0x39ac20
leaq 0xcf69a(%rip), %rsi     # 0x1865b6
callq 0x9510
cmpl $0x0, %eax
jne 0xb6f30
callq 0xb4e90
jmp 0xb70fa
leaq 0x2e3ce9(%rip), %rdi    # 0x39ac20
leaq 0xcf680(%rip), %rsi     # 0x1865be
callq 0x9510
cmpl $0x0, %eax
jne 0xb6f52
callq 0xb50d0
jmp 0xb70f8
leaq 0x2e3cc7(%rip), %rdi    # 0x39ac20
leaq 0xcf666(%rip), %rsi     # 0x1865c6
callq 0x9510
cmpl $0x0, %eax
jne 0xb6f74
callq 0xb52b0
jmp 0xb70f6
leaq 0x2e3ca5(%rip), %rdi    # 0x39ac20
leaq 0xcf64c(%rip), %rsi     # 0x1865ce
callq 0x9510
cmpl $0x0, %eax
jne 0xb6f96
callq 0xb53f0
jmp 0xb70f4
leaq 0x2e3c83(%rip), %rdi    # 0x39ac20
leaq 0xcf632(%rip), %rsi     # 0x1865d6
callq 0x9510
cmpl $0x0, %eax
jne 0xb6fb8
callq 0xb5750
jmp 0xb70f2
leaq 0x2e3c61(%rip), %rdi    # 0x39ac20
leaq 0xcf618(%rip), %rsi     # 0x1865de
callq 0x9510
cmpl $0x0, %eax
jne 0xb6fda
callq 0xb4e40
jmp 0xb70f0
leaq 0x2e3c3f(%rip), %rdi    # 0x39ac20
leaq 0xcd2ca(%rip), %rsi     # 0x1842b2
callq 0x9510
cmpl $0x0, %eax
jne 0xb6ffc
callq 0xb58d0
jmp 0xb70ee
leaq 0x2e3c1d(%rip), %rdi    # 0x39ac20
leaq 0xcf5dc(%rip), %rsi     # 0x1865e6
callq 0x9510
cmpl $0x0, %eax
jne 0xb701e
callq 0xb5d00
jmp 0xb70ec
leaq 0x2e3bfb(%rip), %rdi    # 0x39ac20
leaq 0xd6e81(%rip), %rsi     # 0x18dead
callq 0x9510
cmpl $0x0, %eax
jne 0xb7040
callq 0xb4780
jmp 0xb70ea
leaq 0x2e3bd9(%rip), %rdi    # 0x39ac20
leaq 0xcf5a0(%rip), %rsi     # 0x1865ee
callq 0x9510
cmpl $0x0, %eax
jne 0xb7067
movl $0xc00f, %edi           # imm = 0xC00F
callq 0xb3210
jmp 0xb70e8
leaq 0x2e3bb2(%rip), %rdi    # 0x39ac20
leaq 0xcf57f(%rip), %rsi     # 0x1865f4
callq 0x9510
cmpl $0x0, %eax
jne 0xb708b
movl $0xc00f, %edi           # imm = 0xC00F
callq 0xb3200
jmp 0xb70e6
leaq 0x2e3b8e(%rip), %rdi    # 0x39ac20
leaq 0xcf561(%rip), %rsi     # 0x1865fa
callq 0x9510
cmpl $0x0, %eax
jne 0xb70af
movl $0xc00f, %edi           # imm = 0xC00F
callq 0xb31a0
jmp 0xb70e4
leaq 0x2e3b6a(%rip), %rdi    # 0x39ac20
leaq 0xcf542(%rip), %rsi     # 0x1865ff
callq 0x9510
cmpl $0x0, %eax
jne 0xb70d3
movl $0xc00f, %edi           # imm = 0xC00F
callq 0xb2b70
jmp 0xb70e2
movl $0x0, 0x319f17(%rip)    # 0x3d0ff4
callq 0xb4770
jmp 0xb70e4
jmp 0xb70e6
jmp 0xb70e8
jmp 0xb70ea
jmp 0xb70ec
jmp 0xb70ee
jmp 0xb70f0
jmp 0xb70f2
jmp 0xb70f4
jmp 0xb70f6
jmp 0xb70f8
jmp 0xb70fa
jmp 0xb70fc
jmp 0xb70fe
jmp 0xb7100
jmp 0xb7102
jmp 0xb7104
jmp 0xb7106
jmp 0xb7108
jmp 0xb710a
jmp 0xb710c
jmp 0xb710e
jmp 0xb7110
jmp 0xb7112
jmp 0xb7114
jmp 0xb7116
jmp 0xb7118
jmp 0xb711a
jmp 0xb711c
jmp 0xb711e
jmp 0xb7120
jmp 0xb7122
jmp 0xb7124
jmp 0xb7126
jmp 0xb7128
jmp 0xb712a
jmp 0xb712c
jmp 0xb712e
jmp 0xb7130
jmp 0xb7132
jmp 0xb7134
jmp 0xb7136
jmp 0xb7138
jmp 0xb713a
jmp 0xb713c
jmp 0xb713e
jmp 0xb7140
jmp 0xb7142
jmp 0xb7144
jmp 0xb7146
leaq 0x1e6453(%rip), %rax    # 0x29d5a0
cmpq $0x0, (%rax)
je 0xb7171
leaq 0x1cb686(%rip), %rax    # 0x2827e0
cmpq $0x0, (%rax)
je 0xb7171
leaq 0x1cb679(%rip), %rax    # 0x2827e0
movq (%rax), %rax
movl %eax, %edi
callq 0xb8b0
leaq 0x1e7008(%rip), %rax    # 0x29e180
movl $0x1, (%rax)
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)