// File: /workspace/github_c_makefile_star2_O0/canboat[P]canboat/n2kd/gps_ais.c
// Function: nmea0183AIVDM
extern void nmea0183AIVDM(StringBuffer *msg183, int source, const char *msg)
{
  long int msgid, pgn;
  char     jstr[10];
  char     channel      = 'A';
  int      src          = 'I' - 'A'; // Should give source AI in sentence, i.e. Mobile AIS station
  char    *aisSource[2] = {"VDM", "VDO"};
  enum
  {
    VDM,
    VDO
  };
  int       aisTalkerId = VDM;
  aisVector aisPayload;
  aisPayload.pos = 0;

  if (!getJSONValue(msg, "pgn", jstr, sizeof(jstr)))
    return;
  pgn = atoi(jstr);

  // Source information
  switch (aisEnum(msg, "AIS Transceiver information"))
  {
    case 0: // Default
      channel     = 'A';
      aisTalkerId = VDM;
      break;
    case 1:
      channel     = 'B';
      aisTalkerId = VDM;
      break;
    case 2:
      channel     = 'A';
      aisTalkerId = VDO;
      break;
    case 3:
      channel     = 'B';
      aisTalkerId = VDO;
      break;
    case 4:              // Own information, how to code?
      aisTalkerId = VDO; // It is at least from own vessel
      break;
    default: // Last case supposedly not used
      return;
  }

  // AIS payload bit vector
  msgid = aisEnum(msg, "Message ID");
  switch (msgid)
  {
    case 1:
    case 2:
    case 3: // PGN 129038 "Class A position report"
      // Common navigation block
      addAisInt(msgid, 6, &aisPayload);
      addAisInt(aisEnum(msg, "Repeat Indicator"), 2, &aisPayload);
      addAisInt(aisInteger(msg, "User ID"), 30, &aisPayload);
      addAisInt(aisEnum(msg, "Nav Status"), 4, &aisPayload);
      addAisInt(aisFloat(msg, "Rate of Turn"), 8, &aisPayload);
      addAisInt(aisFloat(msg, "SOG"), 10, &aisPayload);
      addAisInt(aisEnum(msg, "Position Accuracy"), 1, &aisPayload);
      addAisInt(aisFloat(msg, "Longitude"), 28, &aisPayload);
      addAisInt(aisFloat(msg, "Latitude"), 27, &aisPayload);
      addAisInt(aisFloat(msg, "COG"), 12, &aisPayload);
      addAisInt(aisFloat(msg, "Heading"), 9, &aisPayload);
      addAisInt(aisEnum(msg, "Time Stamp"), 6, &aisPayload);
      addAisInt(aisEnum(msg, "Special Maneuver Indicator"), 2, &aisPayload);
      addAisInt(0, 3, &aisPayload); /* Spare */
      addAisInt(aisEnum(msg, "RAIM"), 1, &aisPayload);
      addAisInt(aisInteger(msg, "Communication State"), 19, &aisPayload);
      break;
    case 4: // PGN 129793 "AIS UTC and Date Report"
      addAisInt(msgid, 6, &aisPayload);
      addAisInt(aisEnum(msg, "Repeat Indicator"), 2, &aisPayload);
      addAisInt(aisInteger(msg, "User ID"), 30, &aisPayload);
      addAisInt(aisDate(msg), 23, &aisPayload);
      addAisInt(aisTime(msg), 17, &aisPayload);
      addAisInt(aisEnum(msg, "Position Accuracy"), 1, &aisPayload);
      addAisInt(aisFloat(msg, "Longitude"), 28, &aisPayload);
      addAisInt(aisFloat(msg, "Latitude"), 27, &aisPayload);
      addAisInt(aisEnum(msg, "GNSS type"), 4, &aisPayload);
      addAisInt(0, 10, &aisPayload); // Spare
      addAisInt(aisEnum(msg, "RAIM"), 1, &aisPayload);
      addAisInt(aisInteger(msg, "Communication State"), 19, &aisPayload);
      break;
    case 5: // PGN 129794 "AIS Class A Static and Voyage Related Data"
      addAisInt(msgid, 6, &aisPayload);
      addAisInt(aisEnum(msg, "Repeat Indicator"), 2, &aisPayload);
      addAisInt(aisInteger(msg, "User ID"), 30, &aisPayload);
      addAisInt(aisEnum(msg, "AIS version indicator"), 2, &aisPayload);
      addAisInt(aisInteger(msg, "IMO number"), 30, &aisPayload);
      addAisString(aisString(msg, "Callsign"), 42, &aisPayload);
      addAisString(aisString(msg, "Name"), 120, &aisPayload);
      addAisInt(aisEnum(msg, "Type of ship"), 8, &aisPayload);
      addAisInt(aisShipDimensions(msg, true), 30, &aisPayload);
      addAisInt(aisEnum(msg, "GNSS type"), 4, &aisPayload);
      addAisInt(aisETA(msg), 20, &aisPayload);
      addAisInt(aisFloat(msg, "Draft"), 8, &aisPayload);
      addAisString(aisString(msg, "Destination"), 120, &aisPayload);
      addAisInt(aisEnum(msg, "DTE"), 1, &aisPayload);
      addAisInt(0, 1, &aisPayload); // Spare
      break;
    case 9: // PGN 129798 "AIS SAR Aircraft Position Report"
      addAisInt(msgid, 6, &aisPayload);
      addAisInt(aisEnum(msg, "Repeat Indicator"), 2, &aisPayload);
      addAisInt(aisInteger(msg, "User ID"), 30, &aisPayload);
      addAisInt(aisFloat(msg, "Altitude"), 12, &aisPayload);
      addAisInt((aisFloat(msg, "SOG") + 5) / 10, 10, &aisPayload);
      addAisInt(aisEnum(msg, "Position Accuracy"), 1, &aisPayload);
      addAisInt(aisFloat(msg, "Longitude"), 28, &aisPayload);
      addAisInt(aisFloat(msg, "Latitude"), 27, &aisPayload);
      addAisInt(aisFloat(msg, "COG"), 12, &aisPayload);
      addAisInt(aisInteger(msg, "Time Stamp"), 6, &aisPayload);
      addAisInt(0, 8, &aisPayload); /* Regional Reserved */
      addAisInt(aisEnum(msg, "DTE"), 1, &aisPayload);
      addAisInt(0, 3, &aisPayload);                        // Spare
      addAisInt(aisEnum(msg, "AIS mode"), 1, &aisPayload); // Missing in PGN?
      addAisInt(aisEnum(msg, "RAIM"), 1, &aisPayload);
      addAisInt(aisEnum(msg, "AIS communication state"), 1, &aisPayload); // Not in PGN?, defaults to 0
      addAisInt(aisInteger(msg, "Communication State"), 19, &aisPayload);
      break;
    case 12: // PGN 129801 "AIS Addressed Safety Related Message"
      addAisInt(msgid, 6, &aisPayload);
      addAisInt(aisEnum(msg, "Repeat Indicator"), 2, &aisPayload);
      addAisInt(aisInteger(msg, "Source ID"), 30, &aisPayload);
      addAisInt(aisInteger(msg, "Sequence Number"), 2, &aisPayload);
      addAisInt(aisInteger(msg, "Destination ID"), 30, &aisPayload);
      addAisInt(aisInteger(msg, "Retransmit flag"), 1, &aisPayload);
      addAisInt(0, 1, &aisPayload); // Spare
      addAisLongString(msg, "Safety Related Text", 156, true, &aisPayload);
      break;
    case 14: // PGN 129802 "AIS Safety Related Broadcast Message"
      /* Note: The AIS sentence transmitts up to 161 characters of text in the message
         The incomplete PGN in pgns.json has a text field of 288 bits, corresponding
         to a maximum of 36 characters.
      */
      addAisInt(msgid, 6, &aisPayload);
      addAisInt(aisEnum(msg, "Repeat Indicator"), 2, &aisPayload);
      addAisInt(aisInteger(msg, "Source ID"), 30, &aisPayload);
      addAisInt(0, 2, &aisPayload); // Spare
      addAisLongString(msg, "Safety Related Text", 161, true, &aisPayload);
      break;
    case 18: // PGN 129039 "AIS Class B Position Report"
      addAisInt(msgid, 6, &aisPayload);
      addAisInt(aisEnum(msg, "Repeat Indicator"), 2, &aisPayload);
      addAisInt(aisInteger(msg, "User ID"), 30, &aisPayload);
      addAisInt(0, 8, &aisPayload); /* Regional Reserved */
      addAisInt(aisFloat(msg, "SOG"), 10, &aisPayload);
      addAisInt(aisEnum(msg, "Position Accuracy"), 1, &aisPayload);
      addAisInt(aisFloat(msg, "Longitude"), 28, &aisPayload);
      addAisInt(aisFloat(msg, "Latitude"), 27, &aisPayload);
      addAisInt(aisFloat(msg, "COG"), 12, &aisPayload);
      addAisInt(aisFloat(msg, "Heading"), 9, &aisPayload);
      addAisInt(aisEnum(msg, "Time Stamp"), 6, &aisPayload);
      addAisInt(0, 2, &aisPayload); /* Regional Reserved */
      addAisInt(aisEnum(msg, "Unit type"), 1, &aisPayload);
      addAisInt(aisEnum(msg, "Integrated Display"), 1, &aisPayload);
      addAisInt(aisEnum(msg, "DSC"), 1, &aisPayload);
      addAisInt(aisEnum(msg, "Band"), 1, &aisPayload);
      addAisInt(aisEnum(msg, "Can handle Msg 22"), 1, &aisPayload);
      addAisInt(aisEnum(msg, "AIS mode"), 1, &aisPayload);
      addAisInt(aisEnum(msg, "RAIM"), 1, &aisPayload);
      addAisInt(aisEnum(msg, "AIS communication state"), 1, &aisPayload);
      /* If "AIS communication state" is CS (1), then the following
         "Communication State" shall have its default value. Provided the
         PGN is properly encoded this should work even with no test on
         "AIS communication state" */
      addAisInt(aisInteger(msg, "Communication State"), 19, &aisPayload);
      break;
    case 19: // PGN 129040 "AIS Class B Extended Position Report"
      addAisInt(msgid, 6, &aisPayload);
      addAisInt(aisEnum(msg, "Repeat Indicator"), 2, &aisPayload);
      addAisInt(aisInteger(msg, "User ID"), 30, &aisPayload);
      addAisInt(0, 8, &aisPayload); /* Regional Reserved */
      addAisInt(aisFloat(msg, "SOG"), 10, &aisPayload);
      addAisInt(aisEnum(msg, "Position Accuracy"), 1, &aisPayload);
      addAisInt(aisFloat(msg, "Longitude"), 28, &aisPayload);
      addAisInt(aisFloat(msg, "Latitude"), 27, &aisPayload);
      addAisInt(aisFloat(msg, "COG"), 12, &aisPayload);
      addAisInt(aisFloat(msg, "True Heading"), 9, &aisPayload);
      addAisInt(aisEnum(msg, "Time Stamp"), 6, &aisPayload);
      addAisInt(0, 4, &aisPayload); /* Regional Reserved */
      addAisString(aisString(msg, "Name"), 120, &aisPayload);
      addAisInt(aisEnum(msg, "Type of ship"), 8, &aisPayload);
      addAisInt(aisShipDimensions(msg, true), 30, &aisPayload);
      addAisInt(aisEnum(msg, "GNSS type"), 4, &aisPayload);
      addAisInt(aisEnum(msg, "RAIM"), 1, &aisPayload);
      addAisInt(aisEnum(msg, "DTE"), 1, &aisPayload);
      addAisInt(aisEnum(msg, "AIS mode"), 1, &aisPayload);
      addAisInt(0, 4, &aisPayload); // Spare
      break;
    case 21: // PGN 129041 "AIS Aids to Navigation (AtoN) Report"
    {
      int   len;
      char *ename;

      addAisInt(msgid, 6, &aisPayload);
      addAisInt(aisEnum(msg, "Repeat Indicator"), 2, &aisPayload);
      addAisInt(aisInteger(msg, "User ID"), 30, &aisPayload);
      addAisInt(aisEnum(msg, "AtoN Type"), 5, &aisPayload);
      addAisString(aisAtoNName(msg, false, &len), 120, &aisPayload);
      addAisInt(aisEnum(msg, "Position Accuracy"), 1, &aisPayload);
      addAisInt(aisFloat(msg, "Longitude"), 28, &aisPayload);
      addAisInt(aisFloat(msg, "Latitude"), 27, &aisPayload);
      addAisInt(aisShipDimensions(msg, false), 30, &aisPayload);
      addAisInt(aisEnum(msg, "GNSS type"), 4, &aisPayload);
      addAisInt(aisEnum(msg, "Time Stamp"), 6, &aisPayload);
      addAisInt(aisEnum(msg, "Off Position Indicator"), 1, &aisPayload);
      addAisInt(0, 8, &aisPayload); /* Regional Reserved */
      addAisInt(aisEnum(msg, "RAIM"), 1, &aisPayload);
      addAisInt(aisEnum(msg, "Virtual AtoN Flag"), 1, &aisPayload);
      addAisInt(aisEnum(msg, "Assigned Mode Flag"), 1, &aisPayload);
      addAisInt(0, 1, &aisPayload); // Spare
      ename = aisAtoNName(msg, true, &len);
      addAisString(ename, len, &aisPayload);
    }
    break;
    case 24: // PGN 129809 "AIS Class B "CS" Static Data Report, Part A"
             // PGN 129810 "AIS Class B "CS" Static Data Report, Part B"
      addAisInt(msgid, 6, &aisPayload);
      addAisInt(aisEnum(msg, "Repeat Indicator"), 2, &aisPayload);
      addAisInt(aisInteger(msg, "User ID"), 30, &aisPayload);
      // Part A or B?
      switch (pgn)
      {
        case 129809:                    // Part A
          addAisInt(0, 2, &aisPayload); // Part number
          addAisString(aisString(msg, "Name"), 120, &aisPayload);
          addAisInt(0, 8, &aisPayload); // Spare
          break;
        case 129810:                    // Part B
          addAisInt(1, 2, &aisPayload); // Part number
          addAisInt(aisEnum(msg, "Type of ship"), 8, &aisPayload);
          addAisString(aisString(msg, "Vendor ID"), 42, &aisPayload);
          addAisString(aisString(msg, "Callsign"), 42, &aisPayload);
          addAisInt(aisShipDimensions(msg, true), 30, &aisPayload);
          addAisInt(aisInteger(msg, "Mothership User ID"), 30, &aisPayload);
          addAisInt(0, 6, &aisPayload); // Spare
          break;
        default:
          return;
      }
      break;
    default:
      return;
  }

  // Partition, encode and send nmea0183 ais sentences
  aisToNmea0183(msg183, 256 + src, aisSource[aisTalkerId], channel, &aisPayload);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movb $0x41, -0x33(%rbp)
movl $0x8, -0x38(%rbp)
movq 0xa428(%rip), %rax      # 0x10950
movq %rax, -0x50(%rbp)
movq 0xa425(%rip), %rax      # 0x10958
movq %rax, -0x48(%rbp)
movl $0x0, -0x54(%rbp)
movl $0x0, -0x58(%rbp)
movq -0x18(%rbp), %rdi
leaq -0x32(%rbp), %rdx
leaq 0x650c(%rip), %rsi      # 0xca60
movl $0xa, %ecx
callq 0xa660
testb $0x1, %al
jne 0x6567
jmp 0x797e
leaq -0x32(%rbp), %rdi
callq 0x2310
cltq
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
leaq 0x6ca6(%rip), %rsi      # 0xd227
callq 0x7990
movl %eax, %ecx
movq %rcx, -0x150(%rbp)
subl $0x4, %eax
ja 0x65e8
movq -0x150(%rbp), %rax
leaq 0x6ad6(%rip), %rcx      # 0xd078
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movb $0x41, -0x33(%rbp)
movl $0x0, -0x54(%rbp)
jmp 0x65ed
movb $0x42, -0x33(%rbp)
movl $0x0, -0x54(%rbp)
jmp 0x65ed
movb $0x41, -0x33(%rbp)
movl $0x1, -0x54(%rbp)
jmp 0x65ed
movb $0x42, -0x33(%rbp)
movl $0x1, -0x54(%rbp)
jmp 0x65ed
movl $0x1, -0x54(%rbp)
jmp 0x65ed
jmp 0x797e
movq -0x18(%rbp), %rdi
leaq 0x6c4b(%rip), %rsi      # 0xd243
callq 0x7990
cltq
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
decq %rax
movq %rax, -0x158(%rbp)
subq $0x17, %rax
ja 0x7956
movq -0x158(%rbp), %rax
leaq 0x6a63(%rip), %rcx      # 0xd08c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x20(%rbp), %rdi
movl $0x6, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6bfc(%rip), %rsi      # 0xd24e
callq 0x7990
movslq %eax, %rdi
movl $0x2, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6dc0(%rip), %rsi      # 0xd436
callq 0x7b70
movq %rax, %rdi
movl $0x1e, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6bc5(%rip), %rsi      # 0xd25f
callq 0x7990
movslq %eax, %rdi
movl $0x4, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6bac(%rip), %rsi      # 0xd26a
callq 0x7d10
movq %rax, %rdi
movl $0x8, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6a2a(%rip), %rsi      # 0xd10c
callq 0x7d10
movq %rax, %rdi
movl $0xa, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6b71(%rip), %rsi      # 0xd277
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6a48(%rip), %rsi      # 0xd172
callq 0x7d10
movq %rax, %rdi
movl $0x1c, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6a1b(%rip), %rsi      # 0xd169
callq 0x7d10
movq %rax, %rdi
movl $0x1b, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x699e(%rip), %rsi      # 0xd110
callq 0x7d10
movq %rax, %rdi
movl $0xc, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6c3d(%rip), %rsi      # 0xd3d3
callq 0x7d10
movq %rax, %rdi
movl $0x9, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6acf(%rip), %rsi      # 0xd289
callq 0x7990
movslq %eax, %rdi
movl $0x6, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6ab6(%rip), %rsi      # 0xd294
callq 0x7990
movslq %eax, %rdi
movl $0x2, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
xorl %eax, %eax
movl %eax, %edi
movl $0x3, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6a98(%rip), %rsi      # 0xd2af
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6a79(%rip), %rsi      # 0xd2b4
callq 0x7b70
movq %rax, %rdi
movl $0x13, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
jmp 0x7958
movq -0x20(%rbp), %rdi
movl $0x6, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x69d5(%rip), %rsi      # 0xd24e
callq 0x7990
movslq %eax, %rdi
movl $0x2, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6b99(%rip), %rsi      # 0xd436
callq 0x7b70
movq %rax, %rdi
movl $0x1e, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
callq 0x8030
movq %rax, %rdi
movl $0x17, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
callq 0x80e0
movq %rax, %rdi
movl $0x11, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x697c(%rip), %rsi      # 0xd277
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6853(%rip), %rsi      # 0xd172
callq 0x7d10
movq %rax, %rdi
movl $0x1c, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6826(%rip), %rsi      # 0xd169
callq 0x7d10
movq %rax, %rdi
movl $0x1b, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6961(%rip), %rsi      # 0xd2c8
callq 0x7990
movslq %eax, %rdi
movl $0x4, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
xorl %eax, %eax
movl %eax, %edi
movl $0xa, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x690f(%rip), %rsi      # 0xd2af
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x68f0(%rip), %rsi      # 0xd2b4
callq 0x7b70
movq %rax, %rdi
movl $0x13, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
jmp 0x7958
movq -0x20(%rbp), %rdi
movl $0x6, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x684c(%rip), %rsi      # 0xd24e
callq 0x7990
movslq %eax, %rdi
movl $0x2, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6a10(%rip), %rsi      # 0xd436
callq 0x7b70
movq %rax, %rdi
movl $0x1e, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6888(%rip), %rsi      # 0xd2d2
callq 0x7990
movslq %eax, %rdi
movl $0x2, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x687a(%rip), %rsi      # 0xd2e8
callq 0x7b70
movq %rax, %rdi
movl $0x1e, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6861(%rip), %rsi      # 0xd2f3
callq 0x8380
movq %rax, %rdi
movl $0x2a, %esi
leaq -0x13c(%rbp), %rdx
callq 0x81b0
movq -0x18(%rbp), %rdi
leaq 0x6764(%rip), %rsi      # 0xd21a
callq 0x8380
movq %rax, %rdi
movl $0x78, %esi
leaq -0x13c(%rbp), %rdx
callq 0x81b0
movq -0x18(%rbp), %rdi
leaq 0x6822(%rip), %rsi      # 0xd2fc
callq 0x7990
movslq %eax, %rdi
movl $0x8, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
movl $0x1, %esi
callq 0x83d0
movq %rax, %rdi
movl $0x1e, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x67a8(%rip), %rsi      # 0xd2c8
callq 0x7990
movslq %eax, %rdi
movl $0x4, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
callq 0x62d0
movq %rax, %rdi
movl $0x14, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x67a8(%rip), %rsi      # 0xd309
callq 0x7d10
movq %rax, %rdi
movl $0x8, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x678a(%rip), %rsi      # 0xd30f
callq 0x8380
movq %rax, %rdi
movl $0x78, %esi
leaq -0x13c(%rbp), %rdx
callq 0x81b0
movq -0x18(%rbp), %rdi
leaq 0x6772(%rip), %rsi      # 0xd31b
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
xorl %eax, %eax
movl %eax, %edi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
jmp 0x7958
movq -0x20(%rbp), %rdi
movl $0x6, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6652(%rip), %rsi      # 0xd24e
callq 0x7990
movslq %eax, %rdi
movl $0x2, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6816(%rip), %rsi      # 0xd436
callq 0x7b70
movq %rax, %rdi
movl $0x1e, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x66db(%rip), %rsi      # 0xd31f
callq 0x7d10
movq %rax, %rdi
movl $0xc, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x64a4(%rip), %rsi      # 0xd10c
callq 0x7d10
addq $0x5, %rax
movl $0xa, %ecx
cqto
idivq %rcx
movq %rax, %rdi
movl $0xa, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x65dd(%rip), %rsi      # 0xd277
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x64b4(%rip), %rsi      # 0xd172
callq 0x7d10
movq %rax, %rdi
movl $0x1c, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6487(%rip), %rsi      # 0xd169
callq 0x7d10
movq %rax, %rdi
movl $0x1b, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x640a(%rip), %rsi      # 0xd110
callq 0x7d10
movq %rax, %rdi
movl $0xc, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x655f(%rip), %rsi      # 0xd289
callq 0x7b70
movq %rax, %rdi
movl $0x6, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
xorl %eax, %eax
movl %eax, %edi
movl $0x8, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x65b8(%rip), %rsi      # 0xd31b
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
xorl %eax, %eax
movl %eax, %edi
movl $0x3, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x658c(%rip), %rsi      # 0xd328
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x64ef(%rip), %rsi      # 0xd2af
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x654d(%rip), %rsi      # 0xd331
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x64ac(%rip), %rsi      # 0xd2b4
callq 0x7b70
movq %rax, %rdi
movl $0x13, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
jmp 0x7958
movq -0x20(%rbp), %rdi
movl $0x6, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6408(%rip), %rsi      # 0xd24e
callq 0x7990
movslq %eax, %rdi
movl $0x2, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x64df(%rip), %rsi      # 0xd349
callq 0x7b70
movq %rax, %rdi
movl $0x1e, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x64c5(%rip), %rsi      # 0xd353
callq 0x7b70
movq %rax, %rdi
movl $0x2, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x64b1(%rip), %rsi      # 0xd363
callq 0x7b70
movq %rax, %rdi
movl $0x1e, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x649c(%rip), %rsi      # 0xd372
callq 0x7b70
movq %rax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
xorl %eax, %eax
movl %eax, %edi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6473(%rip), %rsi      # 0xd382
movl $0x9c, %edx
movl $0x1, %ecx
leaq -0x13c(%rbp), %r8
callq 0x8580
jmp 0x7958
movq -0x20(%rbp), %rdi
movl $0x6, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6304(%rip), %rsi      # 0xd24e
callq 0x7990
movslq %eax, %rdi
movl $0x2, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x63db(%rip), %rsi      # 0xd349
callq 0x7b70
movq %rax, %rdi
movl $0x1e, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
xorl %eax, %eax
movl %eax, %edi
movl $0x2, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x63db(%rip), %rsi      # 0xd382
movl $0xa1, %edx
movl $0x1, %ecx
leaq -0x13c(%rbp), %r8
callq 0x8580
jmp 0x7958
movq -0x20(%rbp), %rdi
movl $0x6, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x626c(%rip), %rsi      # 0xd24e
callq 0x7990
movslq %eax, %rdi
movl $0x2, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6430(%rip), %rsi      # 0xd436
callq 0x7b70
movq %rax, %rdi
movl $0x1e, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
xorl %eax, %eax
movl %eax, %edi
movl $0x8, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x60cd(%rip), %rsi      # 0xd10c
callq 0x7d10
movq %rax, %rdi
movl $0xa, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6214(%rip), %rsi      # 0xd277
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x60eb(%rip), %rsi      # 0xd172
callq 0x7d10
movq %rax, %rdi
movl $0x1c, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x60be(%rip), %rsi      # 0xd169
callq 0x7d10
movq %rax, %rdi
movl $0x1b, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6041(%rip), %rsi      # 0xd110
callq 0x7d10
movq %rax, %rdi
movl $0xc, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x62e0(%rip), %rsi      # 0xd3d3
callq 0x7d10
movq %rax, %rdi
movl $0x9, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6172(%rip), %rsi      # 0xd289
callq 0x7990
movslq %eax, %rdi
movl $0x6, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
xorl %eax, %eax
movl %eax, %edi
movl $0x2, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6246(%rip), %rsi      # 0xd396
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x622c(%rip), %rsi      # 0xd3a0
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x621b(%rip), %rsi      # 0xd3b3
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x61fb(%rip), %rsi      # 0xd3b7
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x61dc(%rip), %rsi      # 0xd3bc
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6124(%rip), %rsi      # 0xd328
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6087(%rip), %rsi      # 0xd2af
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x60e5(%rip), %rsi      # 0xd331
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6044(%rip), %rsi      # 0xd2b4
callq 0x7b70
movq %rax, %rdi
movl $0x13, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
jmp 0x7958
movq -0x20(%rbp), %rdi
movl $0x6, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5fa0(%rip), %rsi      # 0xd24e
callq 0x7990
movslq %eax, %rdi
movl $0x2, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x6164(%rip), %rsi      # 0xd436
callq 0x7b70
movq %rax, %rdi
movl $0x1e, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
xorl %eax, %eax
movl %eax, %edi
movl $0x8, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5e01(%rip), %rsi      # 0xd10c
callq 0x7d10
movq %rax, %rdi
movl $0xa, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5f48(%rip), %rsi      # 0xd277
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5e1f(%rip), %rsi      # 0xd172
callq 0x7d10
movq %rax, %rdi
movl $0x1c, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5df2(%rip), %rsi      # 0xd169
callq 0x7d10
movq %rax, %rdi
movl $0x1b, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5d75(%rip), %rsi      # 0xd110
callq 0x7d10
movq %rax, %rdi
movl $0xc, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x600f(%rip), %rsi      # 0xd3ce
callq 0x7d10
movq %rax, %rdi
movl $0x9, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5ea6(%rip), %rsi      # 0xd289
callq 0x7990
movslq %eax, %rdi
movl $0x6, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
xorl %eax, %eax
movl %eax, %edi
movl $0x4, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5dfe(%rip), %rsi      # 0xd21a
callq 0x8380
movq %rax, %rdi
movl $0x78, %esi
leaq -0x13c(%rbp), %rdx
callq 0x81b0
movq -0x18(%rbp), %rdi
leaq 0x5ebc(%rip), %rsi      # 0xd2fc
callq 0x7990
movslq %eax, %rdi
movl $0x8, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
movl $0x1, %esi
callq 0x83d0
movq %rax, %rdi
movl $0x1e, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5e42(%rip), %rsi      # 0xd2c8
callq 0x7990
movslq %eax, %rdi
movl $0x4, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5e05(%rip), %rsi      # 0xd2af
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5e4d(%rip), %rsi      # 0xd31b
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5e36(%rip), %rsi      # 0xd328
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
xorl %eax, %eax
movl %eax, %edi
movl $0x4, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
jmp 0x7958
movq -0x20(%rbp), %rdi
movl $0x6, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5d09(%rip), %rsi      # 0xd24e
callq 0x7990
movslq %eax, %rdi
movl $0x2, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5ecd(%rip), %rsi      # 0xd436
callq 0x7b70
movq %rax, %rdi
movl $0x1e, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5e4e(%rip), %rsi      # 0xd3db
callq 0x7990
movslq %eax, %rdi
movl $0x5, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
xorl %esi, %esi
leaq -0x140(%rbp), %rdx
callq 0x63f0
movq %rax, %rdi
movl $0x78, %esi
leaq -0x13c(%rbp), %rdx
callq 0x81b0
movq -0x18(%rbp), %rdi
leaq 0x5ca0(%rip), %rsi      # 0xd277
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5b77(%rip), %rsi      # 0xd172
callq 0x7d10
movq %rax, %rdi
movl $0x1c, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5b4a(%rip), %rsi      # 0xd169
callq 0x7d10
movq %rax, %rdi
movl $0x1b, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x83d0
movq %rax, %rdi
movl $0x1e, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5c66(%rip), %rsi      # 0xd2c8
callq 0x7990
movslq %eax, %rdi
movl $0x4, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5c03(%rip), %rsi      # 0xd289
callq 0x7990
movslq %eax, %rdi
movl $0x6, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5d3b(%rip), %rsi      # 0xd3e5
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
xorl %eax, %eax
movl %eax, %edi
movl $0x8, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5bcc(%rip), %rsi      # 0xd2af
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5cf5(%rip), %rsi      # 0xd3fc
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5ce3(%rip), %rsi      # 0xd40e
callq 0x7990
movslq %eax, %rdi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
xorl %eax, %eax
movl %eax, %edi
movl $0x1, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
movl $0x1, %esi
leaq -0x140(%rbp), %rdx
callq 0x63f0
movq %rax, -0x148(%rbp)
movq -0x148(%rbp), %rdi
movl -0x140(%rbp), %esi
leaq -0x13c(%rbp), %rdx
callq 0x81b0
jmp 0x7958
movq -0x20(%rbp), %rdi
movl $0x6, %esi
leaq -0x13c(%rbp), %rdx
movq %rdx, -0x168(%rbp)
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5a94(%rip), %rsi      # 0xd24e
callq 0x7990
movq -0x168(%rbp), %rdx
movslq %eax, %rdi
movl $0x2, %esi
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5c58(%rip), %rsi      # 0xd436
callq 0x7b70
movq -0x168(%rbp), %rdx
movq %rax, %rdi
movl $0x1e, %esi
callq 0x7a00
movq -0x28(%rbp), %rax
movq %rax, -0x160(%rbp)
subq $0x1fb11, %rax          # imm = 0x1FB11
je 0x7820
jmp 0x780c
movq -0x160(%rbp), %rax
subq $0x1fb12, %rax          # imm = 0x1FB12
je 0x7873
jmp 0x7952
xorl %eax, %eax
movl %eax, %edi
movl $0x2, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x59da(%rip), %rsi      # 0xd21a
callq 0x8380
movq %rax, %rdi
movl $0x78, %esi
leaq -0x13c(%rbp), %rdx
callq 0x81b0
xorl %eax, %eax
movl %eax, %edi
movl $0x8, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
jmp 0x7954
movl $0x1, %edi
movl $0x2, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5a68(%rip), %rsi      # 0xd2fc
callq 0x7990
movslq %eax, %rdi
movl $0x8, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5b69(%rip), %rsi      # 0xd421
callq 0x8380
movq %rax, %rdi
movl $0x2a, %esi
leaq -0x13c(%rbp), %rdx
callq 0x81b0
movq -0x18(%rbp), %rdi
leaq 0x5a17(%rip), %rsi      # 0xd2f3
callq 0x8380
movq %rax, %rdi
movl $0x2a, %esi
leaq -0x13c(%rbp), %rdx
callq 0x81b0
movq -0x18(%rbp), %rdi
movl $0x1, %esi
callq 0x83d0
movq %rax, %rdi
movl $0x1e, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
movq -0x18(%rbp), %rdi
leaq 0x5b09(%rip), %rsi      # 0xd42b
callq 0x7b70
movq %rax, %rdi
movl $0x1e, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
xorl %eax, %eax
movl %eax, %edi
movl $0x6, %esi
leaq -0x13c(%rbp), %rdx
callq 0x7a00
jmp 0x7954
jmp 0x797e
jmp 0x7958
jmp 0x797e
movq -0x8(%rbp), %rdi
movl -0x38(%rbp), %esi
addl $0x100, %esi            # imm = 0x100
movslq -0x54(%rbp), %rax
movq -0x50(%rbp,%rax,8), %rdx
leaq -0x13c(%rbp), %r8
movsbl -0x33(%rbp), %ecx
callq 0x8690
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
nopw (%rax,%rax)