// File: /workspace/github_c_makefile_star2_O0/canboat[P]canboat/analyzer/analyzer.c
// Function: main
int main(int argc, char **argv)
{
  int    r;
  char   msg[2000];
  FILE  *file = stdin;
  int    ac   = argc;
  char **av   = argv;

  setProgName(argv[0]);

  for (; ac > 1; ac--, av++)
  {
    if (strcasecmp(av[1], "-version") == 0)
    {
      printf("%s\n", VERSION);
      exit(0);
    }
    else if (strcasecmp(av[1], "-schema-version") == 0)
    {
      printf("%s\n", SCHEMA_VERSION);
      exit(0);
    }
    else if (strcasecmp(av[1], "-camel") == 0)
    {
      showCamel = true;
      camelCase(false);
    }
    else if (strcasecmp(av[1], "-upper-camel") == 0)
    {
      camelCase(true);
    }
    else if (strcasecmp(av[1], "-raw") == 0)
    {
      showRaw = true;
    }
    else if (strcasecmp(av[1], "-debug") == 0)
    {
      showJsonEmpty = true;
      showBytes     = true;
    }
    else if (strcasecmp(av[1], "-debugdata") == 0)
    {
      showJsonEmpty = true;
      showAllBytes  = true;
    }
    else if (strcasecmp(av[1], "-d") == 0)
    {
      setLogLevel(LOGLEVEL_DEBUG);
    }
    else if (strcasecmp(av[1], "-q") == 0)
    {
      setLogLevel(LOGLEVEL_ERROR);
    }
    else if (ac > 2 && strcasecmp(av[1], "-geo") == 0)
    {
      if (strcasecmp(av[2], "dd") == 0)
      {
        showGeo = GEO_DD;
      }
      else if (strcasecmp(av[2], "dm") == 0)
      {
        showGeo = GEO_DM;
      }
      else if (strcasecmp(av[2], "dms") == 0)
      {
        showGeo = GEO_DMS;
      }
      else
      {
        usage(argv, av + 1);
      }
      ac--;
      av++;
    }
    else if (strcasecmp(av[1], "-si") == 0)
    {
      showSI = true;
    }
    else if (strcasecmp(av[1], "-nosi") == 0)
    {
      showSI = false;
    }
    else if (strcasecmp(av[1], "-json") == 0)
    {
      showJson = true;
    }
    else if (strcasecmp(av[1], "-empty") == 0)
    {
      showJsonEmpty = true;
      showJson      = true;
    }
    else if (strcasecmp(av[1], "-nv") == 0)
    {
      showJsonValue = true;
      showJson      = true;
    }
    else if (strcasecmp(av[1], "-data") == 0)
    {
      showData = true;
    }
    else if (ac > 2 && strcasecmp(av[1], "-fixtime") == 0)
    {
      setFixedTimestamp(av[2]);
      if (strstr(av[2], "n2kd") == NULL)
      {
        showVersion = false;
      }
      ac--;
      av++;
    }
    else if (ac > 2 && strcasecmp(av[1], "-src") == 0)
    {
      onlySrc = strtol(av[2], 0, 10);
      ac--;
      av++;
    }
    else if (ac > 2 && strcasecmp(av[1], "-dst") == 0)
    {
      onlyDst = strtol(av[2], 0, 10);
      ac--;
      av++;
    }
#ifndef SKIP_SETSYSTEMCLOCK
    else if (ac > 2 && strcasecmp(av[1], "-clocksrc") == 0)
    {
      clockSrc = strtol(av[2], 0, 10);
      ac--;
      av++;
    }
#endif
    else if (ac > 2 && strcasecmp(av[1], "-file") == 0)
    {
      file = fopen(av[2], "r");
      if (!file)
      {
        logAbort("Cannot open file %s\n", av[2]);
      }
      ac--;
      av++;
    }
    else if (ac > 2 && strcasecmp(av[1], "-format") == 0)
    {
      for (size_t i = 1; i < ARRAY_SIZE(RAW_FORMAT_STR); i++)
      {
        if (strcasecmp(av[2], RAW_FORMAT_STR[i]) == 0)
        {
          format = (enum RawFormats) i;
          if (format != RAWFORMAT_PLAIN && format != RAWFORMAT_PLAIN_OR_FAST && format != RAWFORMAT_PLAIN_MIX_FAST
              && format != RAWFORMAT_YDWG02)
          {
            multiPackets = MULTIPACKETS_COALESCED;
          }
          break;
        }
      }
      if (format == RAWFORMAT_UNKNOWN)
      {
        logAbort("Unknown message format '%s'\n", av[2]);
      }
      ac--;
      av++;
    }

    else
    {
      onlyPgn = strtol(av[1], 0, 10);
      if (onlyPgn > 0)
      {
        logInfo("Only logging PGN %d\n", onlyPgn);
      }
      else
      {
        usage(argv, av + 1);
      }
    }
  }

  if (!showJson)
  {
    logInfo("N2K packet analyzer\n" COPYRIGHT);
  }
  else if (showVersion)
  {
    printf("{\"version\":\"%s\",\"units\":\"%s\",\"showLookupValues\":%s",
           VERSION,
           showSI ? "si" : "std",
           showJsonValue ? "true" : "false");
    if (showCamel)
    {
      printf(",\"showUniqueId\":true");
    }
    printf("}\n");
  }

  fillLookups();
  fillFieldType(true);
  checkPgnList();

  while (fgets(msg, sizeof(msg) - 1, file))
  {
    RawMessage m;

    if (*msg == 0 || *msg == '\r' || *msg == '\n' || *msg == '#')
    {
      if (*msg == '#')
      {
        if (strncmp(msg + 1, "SHOWBUFFERS", STRSIZE("SHOWBUFFERS")) == 0)
        {
          showBuffers();
        }
      }

      continue;
    }

    if (format == RAWFORMAT_UNKNOWN)
    {
      format = detectFormat(msg);
      if (format == RAWFORMAT_GARMIN_CSV1 || format == RAWFORMAT_GARMIN_CSV2)
      {
        // Skip first line containing header line
        continue;
      }
    }

    switch (format)
    {
      case RAWFORMAT_PLAIN_OR_FAST:
        if (getMessageByteCount(msg) <= 8)
        {
          r = parseRawFormatPlain(msg, &m, showJson);
          logDebug("plain_or_fast: plain r=%d\n", r);
        }
        else
        {
          r = parseRawFormatFast(msg, &m, showJson);
          if (r >= 0)
          {
            format       = RAWFORMAT_FAST;
            multiPackets = MULTIPACKETS_COALESCED;
            logDebug("plain_or_fast: fast r=%d\n", r);
          }
        }
        break;

      case RAWFORMAT_PLAIN_MIX_FAST:
        if (getMessageByteCount(msg) <= 8)
        {
          r = parseRawFormatPlain(msg, &m, showJson);
          logDebug("plain_or_fast: plain r=%d\n", r);
        }
        else
        {
          r = parseRawFormatFast(msg, &m, showJson);
          logDebug("plain_or_fast: fast r=%d\n", r);
        }
        break;

      case RAWFORMAT_PLAIN:
        r = parseRawFormatPlain(msg, &m, showJson);
        break;

      case RAWFORMAT_FAST:
        r = parseRawFormatFast(msg, &m, showJson);
        break;

      case RAWFORMAT_AIRMAR:
        r = parseRawFormatAirmar(msg, &m, showJson);
        break;

      case RAWFORMAT_CHETCO:
        r = parseRawFormatChetco(msg, &m, showJson);
        break;

      case RAWFORMAT_GARMIN_CSV1:
      case RAWFORMAT_GARMIN_CSV2:
        r = parseRawFormatGarminCSV(msg, &m, showJson, format == RAWFORMAT_GARMIN_CSV2);
        break;

      case RAWFORMAT_YDWG02:
        r = parseRawFormatYDWG02(msg, &m, showJson);
        break;

      case RAWFORMAT_ACTISENSE_N2K_ASCII:
        r = parseRawFormatActisenseN2KAscii(msg, &m, showJson);
        break;

      default:
        logError("Unknown message format\n");
        exit(1);
    }

    if (r == 0)
    {
      printCanFormat(&m);
      printCanRaw(&m);
    }
    else
    {
      logError("Unknown message error %d: '%s'\n", r, msg);
    }
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x940, %rsp            # imm = 0x940
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq 0x34ef0(%rip), %rax     # 0x40fd0
movq (%rax), %rax
movq %rax, -0x7f8(%rbp)
movl -0x8(%rbp), %eax
movl %eax, -0x7fc(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x808(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x228a0
cmpl $0x1, -0x7fc(%rbp)
jle 0xc895
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x1d191(%rip), %rsi     # 0x292ba
callq 0xb040
cmpl $0x0, %eax
jne 0xc14f
leaq 0x2ef8c(%rip), %rdi     # 0x3b0c6
leaq 0x1d16c(%rip), %rsi     # 0x292ad
movb $0x0, %al
callq 0xb0f0
xorl %edi, %edi
callq 0xb320
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x1d152(%rip), %rsi     # 0x292b3
callq 0xb040
cmpl $0x0, %eax
jne 0xc187
leaq 0x2ef54(%rip), %rdi     # 0x3b0c6
leaq 0x1d14a(%rip), %rsi     # 0x292c3
movb $0x0, %al
callq 0xb0f0
xorl %edi, %edi
callq 0xb320
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x1d136(%rip), %rsi     # 0x292cf
callq 0xb040
cmpl $0x0, %eax
jne 0xc1b6
movb $0x1, 0x881a2(%rip)     # 0x9434c
xorl %edi, %edi
callq 0xbcc0
jmp 0xc869
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x1d101(%rip), %rsi     # 0x292c9
callq 0xb040
cmpl $0x0, %eax
jne 0xc1e1
movl $0x1, %edi
callq 0xbcc0
jmp 0xc867
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x1d0e3(%rip), %rsi     # 0x292d6
callq 0xb040
cmpl $0x0, %eax
jne 0xc209
movb $0x1, 0x88140(%rip)     # 0x94344
jmp 0xc865
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x1d0c0(%rip), %rsi     # 0x292db
callq 0xb040
cmpl $0x0, %eax
jne 0xc238
movb $0x1, 0x8811d(%rip)     # 0x94349
movb $0x1, 0x88113(%rip)     # 0x94346
jmp 0xc863
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x1d098(%rip), %rsi     # 0x292e2
callq 0xb040
cmpl $0x0, %eax
jne 0xc267
movb $0x1, 0x880ee(%rip)     # 0x94349
movb $0x1, 0x880e5(%rip)     # 0x94347
jmp 0xc861
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x1d074(%rip), %rsi     # 0x292ed
callq 0xb040
cmpl $0x0, %eax
jne 0xc292
movl $0x3, %edi
callq 0x22800
jmp 0xc85f
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x1d04c(%rip), %rsi     # 0x292f0
callq 0xb040
cmpl $0x0, %eax
jne 0xc2bd
movl $0x1, %edi
callq 0x22800
jmp 0xc85d
cmpl $0x2, -0x7fc(%rbp)
jle 0xc3a0
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x1d017(%rip), %rsi     # 0x292f3
callq 0xb040
cmpl $0x0, %eax
jne 0xc3a0
movq -0x808(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x1cffc(%rip), %rsi     # 0x292f8
callq 0xb040
cmpl $0x0, %eax
jne 0xc312
movl $0x0, 0x88040(%rip)     # 0x94350
jmp 0xc37a
movq -0x808(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x1cfd7(%rip), %rsi     # 0x292fb
callq 0xb040
cmpl $0x0, %eax
jne 0xc33a
movl $0x1, 0x88018(%rip)     # 0x94350
jmp 0xc378
movq -0x808(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x1cfb2(%rip), %rsi     # 0x292fe
callq 0xb040
cmpl $0x0, %eax
jne 0xc362
movl $0x2, 0x87ff0(%rip)     # 0x94350
jmp 0xc376
movq -0x10(%rbp), %rdi
movq -0x808(%rbp), %rsi
addq $0x8, %rsi
callq 0xccc0
jmp 0xc378
jmp 0xc37a
movl -0x7fc(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x7fc(%rbp)
movq -0x808(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x808(%rbp)
jmp 0xc85b
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x1cf50(%rip), %rsi     # 0x29302
callq 0xb040
cmpl $0x0, %eax
jne 0xc3c8
movb $0x1, 0x87f88(%rip)     # 0x9434b
jmp 0xc859
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x1cf2c(%rip), %rsi     # 0x29306
callq 0xb040
cmpl $0x0, %eax
jne 0xc3f0
movb $0x0, 0x87f60(%rip)     # 0x9434b
jmp 0xc857
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x1cf0a(%rip), %rsi     # 0x2930c
callq 0xb040
cmpl $0x0, %eax
jne 0xc418
movb $0x1, 0x87f35(%rip)     # 0x94348
jmp 0xc855
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x1cee8(%rip), %rsi     # 0x29312
callq 0xb040
cmpl $0x0, %eax
jne 0xc447
movb $0x1, 0x87f0e(%rip)     # 0x94349
movb $0x1, 0x87f06(%rip)     # 0x94348
jmp 0xc853
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x1cec0(%rip), %rsi     # 0x29319
callq 0xb040
cmpl $0x0, %eax
jne 0xc476
movb $0x1, 0x87ee0(%rip)     # 0x9434a
movb $0x1, 0x87ed7(%rip)     # 0x94348
jmp 0xc851
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x1ce95(%rip), %rsi     # 0x2931d
callq 0xb040
cmpl $0x0, %eax
jne 0xc49e
movb $0x1, 0x87eac(%rip)     # 0x94345
jmp 0xc84f
cmpl $0x2, -0x7fc(%rbp)
jle 0xc51d
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x1ce6a(%rip), %rsi     # 0x29323
callq 0xb040
cmpl $0x0, %eax
jne 0xc51d
movq -0x808(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x22910
movq -0x808(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x1ce47(%rip), %rsi     # 0x2932c
callq 0xb380
cmpq $0x0, %rax
jne 0xc4f7
movb $0x0, 0x81cc5(%rip)     # 0x8e1bc
movl -0x7fc(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x7fc(%rbp)
movq -0x808(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x808(%rbp)
jmp 0xc84d
cmpl $0x2, -0x7fc(%rbp)
jle 0xc587
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x1cdf9(%rip), %rsi     # 0x29331
callq 0xb040
cmpl $0x0, %eax
jne 0xc587
movq -0x808(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0xb1e0
movl %eax, 0x81c67(%rip)     # 0x8e1c8
movl -0x7fc(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x7fc(%rbp)
movq -0x808(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x808(%rbp)
jmp 0xc84b
cmpl $0x2, -0x7fc(%rbp)
jle 0xc5f1
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x1cd94(%rip), %rsi     # 0x29336
callq 0xb040
cmpl $0x0, %eax
jne 0xc5f1
movq -0x808(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0xb1e0
movl %eax, 0x81c01(%rip)     # 0x8e1cc
movl -0x7fc(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x7fc(%rbp)
movq -0x808(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x808(%rbp)
jmp 0xc849
cmpl $0x2, -0x7fc(%rbp)
jle 0xc65b
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x1cd2f(%rip), %rsi     # 0x2933b
callq 0xb040
cmpl $0x0, %eax
jne 0xc65b
movq -0x808(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0xb1e0
movl %eax, 0x81b9b(%rip)     # 0x8e1d0
movl -0x7fc(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x7fc(%rbp)
movq -0x808(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x808(%rbp)
jmp 0xc847
cmpl $0x2, -0x7fc(%rbp)
jle 0xc6eb
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x1cccb(%rip), %rsi     # 0x29345
callq 0xb040
cmpl $0x0, %eax
jne 0xc6eb
movq -0x808(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x29dcc(%rip), %rsi     # 0x36462
callq 0xb2b0
movq %rax, -0x7f8(%rbp)
cmpq $0x0, -0x7f8(%rbp)
jne 0xc6c5
movq -0x808(%rbp), %rax
movq 0x10(%rax), %rsi
leaq 0x1cc8d(%rip), %rdi     # 0x2934b
movb $0x0, %al
callq 0x226d0
movl -0x7fc(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x7fc(%rbp)
movq -0x808(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x808(%rbp)
jmp 0xc845
cmpl $0x2, -0x7fc(%rbp)
jle 0xc7ef
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x1cc56(%rip), %rsi     # 0x29360
callq 0xb040
cmpl $0x0, %eax
jne 0xc7ef
movq $0x1, -0x810(%rbp)
cmpq $0xb, -0x810(%rbp)
jae 0xc7aa
movq -0x808(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x810(%rbp), %rcx
leaq 0x81a1a(%rip), %rax     # 0x8e160
movq (%rax,%rcx,8), %rsi
callq 0xb040
cmpl $0x0, %eax
jne 0xc791
movq -0x810(%rbp), %rax
movl %eax, 0x87bdf(%rip)     # 0x94340
cmpl $0x1, 0x87bd8(%rip)     # 0x94340
je 0xc78f
cmpl $0x3, 0x87bcf(%rip)     # 0x94340
je 0xc78f
cmpl $0x4, 0x87bc6(%rip)     # 0x94340
je 0xc78f
cmpl $0x9, 0x87bbd(%rip)     # 0x94340
je 0xc78f
movl $0x0, 0x81a29(%rip)     # 0x8e1b8
jmp 0xc7aa
jmp 0xc793
movq -0x810(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x810(%rbp)
jmp 0xc723
cmpl $0x0, 0x87b8f(%rip)     # 0x94340
jne 0xc7cc
movq -0x808(%rbp), %rax
movq 0x10(%rax), %rsi
leaq 0x1cba3(%rip), %rdi     # 0x29368
movb $0x0, %al
callq 0x226d0
movl -0x7fc(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x7fc(%rbp)
movq -0x808(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x808(%rbp)
jmp 0xc843
movq -0x808(%rbp), %rax
movq 0x8(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0xb1e0
movl %eax, 0x87b46(%rip)     # 0x94354
cmpl $0x0, 0x87b3f(%rip)     # 0x94354
jle 0xc82d
movl 0x87b37(%rip), %esi     # 0x94354
leaq 0x1cb61(%rip), %rdi     # 0x29385
movb $0x0, %al
callq 0x22420
jmp 0xc841
movq -0x10(%rbp), %rdi
movq -0x808(%rbp), %rsi
addq $0x8, %rsi
callq 0xccc0
jmp 0xc843
jmp 0xc845
jmp 0xc847
jmp 0xc849
jmp 0xc84b
jmp 0xc84d
jmp 0xc84f
jmp 0xc851
jmp 0xc853
jmp 0xc855
jmp 0xc857
jmp 0xc859
jmp 0xc85b
jmp 0xc85d
jmp 0xc85f
jmp 0xc861
jmp 0xc863
jmp 0xc865
jmp 0xc867
jmp 0xc869
jmp 0xc86b
jmp 0xc86d
jmp 0xc86f
movl -0x7fc(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x7fc(%rbp)
movq -0x808(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x808(%rbp)
jmp 0xc10a
testb $0x1, 0x87aac(%rip)     # 0x94348
jne 0xc8ae
leaq 0x1caf5(%rip), %rdi     # 0x2939a
movb $0x0, %al
callq 0x22420
jmp 0xc92b
testb $0x1, 0x81907(%rip)     # 0x8e1bc
je 0xc929
movb 0x87a8e(%rip), %cl      # 0x9434b
leaq 0x1cdd9(%rip), %rdx     # 0x2969d
leaq 0x1ca38(%rip), %rax     # 0x29303
testb $0x1, %cl
cmovneq %rax, %rdx
movb 0x87a71(%rip), %sil     # 0x9434a
leaq 0x1cdc1(%rip), %rcx     # 0x296a1
leaq 0x1cdd0(%rip), %rax     # 0x296b7
testb $0x1, %sil
cmovneq %rax, %rcx
leaq 0x1cd74(%rip), %rdi     # 0x2966a
leaq 0x1c9b0(%rip), %rsi     # 0x292ad
movb $0x0, %al
callq 0xb0f0
testb $0x1, 0x87a41(%rip)     # 0x9434c
je 0xc91b
leaq 0x1cd93(%rip), %rdi     # 0x296a7
movb $0x0, %al
callq 0xb0f0
leaq 0x1cd9a(%rip), %rdi     # 0x296bc
movb $0x0, %al
callq 0xb0f0
jmp 0xc92b
callq 0x1dc20
movl $0x1, %edi
callq 0x21150
callq 0xb980
leaq -0x7f0(%rbp), %rdi
movq -0x7f8(%rbp), %rdx
movl $0x7cf, %esi            # imm = 0x7CF
callq 0xb180
cmpq $0x0, %rax
je 0xccaa
movsbl -0x7f0(%rbp), %eax
cmpl $0x0, %eax
je 0xc991
movsbl -0x7f0(%rbp), %eax
cmpl $0xd, %eax
je 0xc991
movsbl -0x7f0(%rbp), %eax
cmpl $0xa, %eax
je 0xc991
movsbl -0x7f0(%rbp), %eax
cmpl $0x23, %eax
jne 0xc9ca
movsbl -0x7f0(%rbp), %eax
cmpl $0x23, %eax
jne 0xc9c5
leaq -0x7f0(%rbp), %rdi
addq $0x1, %rdi
leaq 0x1cd10(%rip), %rsi     # 0x296bf
movl $0xb, %edx
callq 0xb070
cmpl $0x0, %eax
jne 0xc9c3
callq 0xce80
jmp 0xc9c5
jmp 0xc93f
cmpl $0x0, 0x8796f(%rip)     # 0x94340
jne 0xc9fe
leaq -0x7f0(%rbp), %rdi
callq 0xcf30
movl %eax, 0x8795b(%rip)     # 0x94340
cmpl $0x7, 0x87954(%rip)     # 0x94340
je 0xc9f7
cmpl $0x8, 0x8794b(%rip)     # 0x94340
jne 0xc9fc
jmp 0xc93f
jmp 0xc9fe
movl 0x8793c(%rip), %eax     # 0x94340
decl %eax
movl %eax, %ecx
movq %rcx, -0x940(%rbp)
subl $0x9, %eax
ja 0xcc55
movq -0x940(%rbp), %rax
leaq 0x1a972(%rip), %rcx     # 0x27398
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq -0x7f0(%rbp), %rdi
callq 0xd190
cmpl $0x8, %eax
ja 0xca74
leaq -0x7f0(%rbp), %rdi
movb 0x878fb(%rip), %al      # 0x94348
leaq -0x938(%rbp), %rsi
andb $0x1, %al
movzbl %al, %edx
callq 0x24390
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %esi
leaq 0x1cc60(%rip), %rdi     # 0x296cb
movb $0x0, %al
callq 0x22570
jmp 0xcac2
leaq -0x7f0(%rbp), %rdi
movb 0x878c7(%rip), %al      # 0x94348
leaq -0x938(%rbp), %rsi
andb $0x1, %al
movzbl %al, %edx
callq 0x246e0
movl %eax, -0x14(%rbp)
cmpl $0x0, -0x14(%rbp)
jl 0xcac0
movl $0x2, 0x8789b(%rip)     # 0x94340
movl $0x0, 0x81709(%rip)     # 0x8e1b8
movl -0x14(%rbp), %esi
leaq 0x1cc2d(%rip), %rdi     # 0x296e6
movb $0x0, %al
callq 0x22570
jmp 0xcac2
jmp 0xcc6d
leaq -0x7f0(%rbp), %rdi
callq 0xd190
cmpl $0x8, %eax
ja 0xcb0c
leaq -0x7f0(%rbp), %rdi
movb 0x87863(%rip), %al      # 0x94348
leaq -0x938(%rbp), %rsi
andb $0x1, %al
movzbl %al, %edx
callq 0x24390
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %esi
leaq 0x1cbc8(%rip), %rdi     # 0x296cb
movb $0x0, %al
callq 0x22570
jmp 0xcb3e
leaq -0x7f0(%rbp), %rdi
movb 0x8782f(%rip), %al      # 0x94348
leaq -0x938(%rbp), %rsi
andb $0x1, %al
movzbl %al, %edx
callq 0x246e0
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %esi
leaq 0x1cbaf(%rip), %rdi     # 0x296e6
movb $0x0, %al
callq 0x22570
jmp 0xcc6d
leaq -0x7f0(%rbp), %rdi
movb 0x877f8(%rip), %al      # 0x94348
leaq -0x938(%rbp), %rsi
andb $0x1, %al
movzbl %al, %edx
callq 0x24390
movl %eax, -0x14(%rbp)
jmp 0xcc6d
leaq -0x7f0(%rbp), %rdi
movb 0x877d2(%rip), %al      # 0x94348
leaq -0x938(%rbp), %rsi
andb $0x1, %al
movzbl %al, %edx
callq 0x246e0
movl %eax, -0x14(%rbp)
jmp 0xcc6d
leaq -0x7f0(%rbp), %rdi
movb 0x877ac(%rip), %al      # 0x94348
leaq -0x938(%rbp), %rsi
andb $0x1, %al
movzbl %al, %edx
callq 0x24970
movl %eax, -0x14(%rbp)
jmp 0xcc6d
leaq -0x7f0(%rbp), %rdi
movb 0x87786(%rip), %al      # 0x94348
leaq -0x938(%rbp), %rsi
andb $0x1, %al
movzbl %al, %edx
callq 0x24c00
movl %eax, -0x14(%rbp)
jmp 0xcc6d
leaq -0x7f0(%rbp), %rdi
movb 0x87760(%rip), %cl      # 0x94348
cmpl $0x8, 0x87751(%rip)     # 0x94340
sete %al
movzbl %cl, %edx
andl $0x1, %edx
movzbl %al, %ecx
andl $0x1, %ecx
leaq -0x938(%rbp), %rsi
callq 0x24de0
movl %eax, -0x14(%rbp)
jmp 0xcc6d
leaq -0x7f0(%rbp), %rdi
movb 0x8772c(%rip), %al      # 0x94348
leaq -0x938(%rbp), %rsi
andb $0x1, %al
movzbl %al, %edx
callq 0x25200
movl %eax, -0x14(%rbp)
jmp 0xcc6d
leaq -0x7f0(%rbp), %rdi
movb 0x87709(%rip), %al      # 0x94348
leaq -0x938(%rbp), %rsi
andb $0x1, %al
movzbl %al, %edx
callq 0x25740
movl %eax, -0x14(%rbp)
jmp 0xcc6d
leaq 0x1caa4(%rip), %rdi     # 0x29700
movb $0x0, %al
callq 0x22620
movl $0x1, %edi
callq 0xb320
cmpl $0x0, -0x14(%rbp)
jne 0xcc8d
leaq -0x938(%rbp), %rdi
callq 0xd1f0
leaq -0x938(%rbp), %rdi
callq 0xd610
jmp 0xcca5
movl -0x14(%rbp), %esi
leaq -0x7f0(%rbp), %rdx
leaq 0x1ca7a(%rip), %rdi     # 0x29718
movb $0x0, %al
callq 0x22620
jmp 0xc93f
xorl %eax, %eax
addq $0x940, %rsp            # imm = 0x940
popq %rbp
retq
nopw %cs:(%rax,%rax)