// File: matallui[P]nibble-curses/src/CNibbles.cpp
// Function: CNibbles::InitLevel()
void CNibbles::InitLevel ( void )
{
  if ( m_state == 2 ) PresentLevel();
  
  bkgd ( COLOR_PAIR (1) );
  
  m_nfood = 1;
  
  switch ( m_level )
  {
    case 1:
      m_num_obstacles = 4;
      m_obstacles[0].Update ( 0, 0, m_maxCols, 'H' );			// superior horizontal
      m_obstacles[1].Update ( m_maxLines-1, 0, m_maxCols, 'H' );		// inferior horizontal
      m_obstacles[2].Update ( 1, 0, m_maxLines-2, 'V' );			// left vertical
      m_obstacles[3].Update ( 1, m_maxCols-1, m_maxLines-2, 'V' );		// right vertical
      break;
    case 2:
      m_num_obstacles = 5;
      m_obstacles[4].Update ( 17, 25, 50, 'H' );
      break;
    case 3:
      m_num_obstacles = 6;
      m_obstacles[4].Update ( 6, 30, 24, 'V' );
      m_obstacles[5].Update ( 6, 69, 24, 'V' );
      break;
    case 4:
      m_num_obstacles = 8;
      m_obstacles[4].Update ( 1, 30, 16, 'V' );
      m_obstacles[5].Update ( 20, 70, 16, 'V' );
      m_obstacles[6].Update ( 25, 1, 45, 'H' );
      m_obstacles[7].Update ( 11, 55, 45, 'H' );
      break;
    case 5:
      m_num_obstacles = 12;
      m_obstacles[4].Update ( 1, 20, 15, 'V' );
      m_obstacles[5].Update ( 1, 40, 15, 'V' );
      m_obstacles[6].Update ( 1, 60, 15, 'V' );
      m_obstacles[7].Update ( 1, 80, 15, 'V' );
      m_obstacles[8].Update ( 21, 20, 15, 'V' );
      m_obstacles[9].Update ( 21, 40, 15, 'V' );
      m_obstacles[10].Update ( 21, 60, 15, 'V' );
      m_obstacles[11].Update ( 21, 80, 15, 'V' );
      break;
    case 6:
      m_num_obstacles = 8;
      m_obstacles[4].Update ( 12, 25, 12, 'V' );
      m_obstacles[5].Update ( 12, 75, 12, 'V' );
      m_obstacles[6].Update ( 10, 27, 47, 'H' );
      m_obstacles[7].Update ( 25, 27, 47, 'H' );
      break;
    case 7:
      m_num_obstacles = 5;
      m_obstacles[4].Update ( 1, 50, 34, 'I' );
      break;
    case 8:
      m_num_obstacles = 10;
      m_obstacles[4].Update ( 1, 14, 28, 'V' );
      m_obstacles[5].Update ( 7, 28, 28, 'V' );
      m_obstacles[6].Update ( 1, 42, 28, 'V' );
      m_obstacles[7].Update ( 7, 56, 28, 'V' );
      m_obstacles[8].Update ( 1, 70, 28, 'V' );
      m_obstacles[9].Update ( 7, 84, 28, 'V' );
      break;
    case 9:
      m_num_obstacles = 6;
      m_obstacles[4].Update ( 2, 2, 32, 'D' );
      m_obstacles[5].Update ( 2, 66, 32, 'D' );
      break;
    case 10:
      m_num_obstacles = 10;
      m_obstacles[4].Update ( 1, 14, 34, 'I' );
      m_obstacles[5].Update ( 2, 28, 34, 'I' );
      m_obstacles[6].Update ( 1, 42, 34, 'I' );
      m_obstacles[7].Update ( 2, 56, 34, 'I' );
      m_obstacles[8].Update ( 1, 70, 34, 'I' );
      m_obstacles[9].Update ( 2, 84, 34, 'I' );
      break;
  }
  
  for ( int i = 0; i < m_num_obstacles; i++ )
    m_obstacles[i].Draw ();
  
  for ( int i = 0; i < m_nplayers; i++ )
    m_snakes[i]->Initialize ( m_level );
  
  UpdateScores();
  PutFood();
  
  refresh();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x280, %rsp            # imm = 0x280
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x270(%rbp)
cmpl $0x2, 0x24(%rax)
jne 0x7bbc
movq -0x270(%rbp), %rdi
callq 0xa410
movq 0x840d(%rip), %rax      # 0xffd0
movq (%rax), %rdi
movl $0x100, %esi            # imm = 0x100
callq 0x34b0
movq -0x270(%rbp), %rax
movl $0x1, 0x40(%rax)
movl 0x8(%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x278(%rbp)
subl $0x9, %eax
ja 0x8886
movq -0x278(%rbp), %rax
leaq 0x4671(%rip), %rcx      # 0xc274
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x270(%rbp), %rcx
movl $0x4, 0xc(%rcx)
movq 0x28(%rcx), %rdi
movl $0x0, -0xc(%rbp)
movl $0x0, -0x10(%rbp)
addq $0x4, %rcx
movb $0x48, -0x11(%rbp)
leaq -0xc(%rbp), %rsi
leaq -0x10(%rbp), %rdx
leaq -0x11(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rcx
movq 0x28(%rcx), %rdi
addq $0x18, %rdi
movl (%rcx), %eax
subl $0x1, %eax
movl %eax, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
addq $0x4, %rcx
movb $0x48, -0x1d(%rbp)
leaq -0x18(%rbp), %rsi
leaq -0x1c(%rbp), %rdx
leaq -0x1d(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0x30, %rdi
movl $0x1, -0x24(%rbp)
movl $0x0, -0x28(%rbp)
movl (%rax), %eax
subl $0x2, %eax
movl %eax, -0x2c(%rbp)
movb $0x56, -0x2d(%rbp)
leaq -0x24(%rbp), %rsi
leaq -0x28(%rbp), %rdx
leaq -0x2c(%rbp), %rcx
leaq -0x2d(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0x48, %rdi
movl $0x1, -0x34(%rbp)
movl 0x4(%rax), %ecx
subl $0x1, %ecx
movl %ecx, -0x38(%rbp)
movl (%rax), %eax
subl $0x2, %eax
movl %eax, -0x3c(%rbp)
movb $0x56, -0x3d(%rbp)
leaq -0x34(%rbp), %rsi
leaq -0x38(%rbp), %rdx
leaq -0x3c(%rbp), %rcx
leaq -0x3d(%rbp), %r8
callq 0x3ec0
jmp 0x8886
movq -0x270(%rbp), %rax
movl $0x5, 0xc(%rax)
movq 0x28(%rax), %rdi
addq $0x60, %rdi
movl $0x11, -0x44(%rbp)
movl $0x19, -0x48(%rbp)
movl $0x32, -0x4c(%rbp)
movb $0x48, -0x4d(%rbp)
leaq -0x44(%rbp), %rsi
leaq -0x48(%rbp), %rdx
leaq -0x4c(%rbp), %rcx
leaq -0x4d(%rbp), %r8
callq 0x3ec0
jmp 0x8886
movq -0x270(%rbp), %rax
movl $0x6, 0xc(%rax)
movq 0x28(%rax), %rdi
addq $0x60, %rdi
movl $0x6, -0x54(%rbp)
movl $0x1e, -0x58(%rbp)
movl $0x18, -0x5c(%rbp)
movb $0x56, -0x5d(%rbp)
leaq -0x54(%rbp), %rsi
leaq -0x58(%rbp), %rdx
leaq -0x5c(%rbp), %rcx
leaq -0x5d(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0x78, %rdi
movl $0x6, -0x64(%rbp)
movl $0x45, -0x68(%rbp)
movl $0x18, -0x6c(%rbp)
movb $0x56, -0x6d(%rbp)
leaq -0x64(%rbp), %rsi
leaq -0x68(%rbp), %rdx
leaq -0x6c(%rbp), %rcx
leaq -0x6d(%rbp), %r8
callq 0x3ec0
jmp 0x8886
movq -0x270(%rbp), %rax
movl $0x8, 0xc(%rax)
movq 0x28(%rax), %rdi
addq $0x60, %rdi
movl $0x1, -0x74(%rbp)
movl $0x1e, -0x78(%rbp)
movl $0x10, -0x7c(%rbp)
movb $0x56, -0x7d(%rbp)
leaq -0x74(%rbp), %rsi
leaq -0x78(%rbp), %rdx
leaq -0x7c(%rbp), %rcx
leaq -0x7d(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0x78, %rdi
movl $0x14, -0x84(%rbp)
movl $0x46, -0x88(%rbp)
movl $0x10, -0x8c(%rbp)
movb $0x56, -0x8d(%rbp)
leaq -0x84(%rbp), %rsi
leaq -0x88(%rbp), %rdx
leaq -0x8c(%rbp), %rcx
leaq -0x8d(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0x90, %rdi
movl $0x19, -0x94(%rbp)
movl $0x1, -0x98(%rbp)
movl $0x2d, -0x9c(%rbp)
movb $0x48, -0x9d(%rbp)
leaq -0x94(%rbp), %rsi
leaq -0x98(%rbp), %rdx
leaq -0x9c(%rbp), %rcx
leaq -0x9d(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0xa8, %rdi
movl $0xb, -0xa4(%rbp)
movl $0x37, -0xa8(%rbp)
movl $0x2d, -0xac(%rbp)
movb $0x48, -0xad(%rbp)
leaq -0xa4(%rbp), %rsi
leaq -0xa8(%rbp), %rdx
leaq -0xac(%rbp), %rcx
leaq -0xad(%rbp), %r8
callq 0x3ec0
jmp 0x8886
movq -0x270(%rbp), %rax
movl $0xc, 0xc(%rax)
movq 0x28(%rax), %rdi
addq $0x60, %rdi
movl $0x1, -0xb4(%rbp)
movl $0x14, -0xb8(%rbp)
movl $0xf, -0xbc(%rbp)
movb $0x56, -0xbd(%rbp)
leaq -0xb4(%rbp), %rsi
leaq -0xb8(%rbp), %rdx
leaq -0xbc(%rbp), %rcx
leaq -0xbd(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0x78, %rdi
movl $0x1, -0xc4(%rbp)
movl $0x28, -0xc8(%rbp)
movl $0xf, -0xcc(%rbp)
movb $0x56, -0xcd(%rbp)
leaq -0xc4(%rbp), %rsi
leaq -0xc8(%rbp), %rdx
leaq -0xcc(%rbp), %rcx
leaq -0xcd(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0x90, %rdi
movl $0x1, -0xd4(%rbp)
movl $0x3c, -0xd8(%rbp)
movl $0xf, -0xdc(%rbp)
movb $0x56, -0xdd(%rbp)
leaq -0xd4(%rbp), %rsi
leaq -0xd8(%rbp), %rdx
leaq -0xdc(%rbp), %rcx
leaq -0xdd(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0xa8, %rdi
movl $0x1, -0xe4(%rbp)
movl $0x50, -0xe8(%rbp)
movl $0xf, -0xec(%rbp)
movb $0x56, -0xed(%rbp)
leaq -0xe4(%rbp), %rsi
leaq -0xe8(%rbp), %rdx
leaq -0xec(%rbp), %rcx
leaq -0xed(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0xc0, %rdi
movl $0x15, -0xf4(%rbp)
movl $0x14, -0xf8(%rbp)
movl $0xf, -0xfc(%rbp)
movb $0x56, -0xfd(%rbp)
leaq -0xf4(%rbp), %rsi
leaq -0xf8(%rbp), %rdx
leaq -0xfc(%rbp), %rcx
leaq -0xfd(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0xd8, %rdi
movl $0x15, -0x104(%rbp)
movl $0x28, -0x108(%rbp)
movl $0xf, -0x10c(%rbp)
movb $0x56, -0x10d(%rbp)
leaq -0x104(%rbp), %rsi
leaq -0x108(%rbp), %rdx
leaq -0x10c(%rbp), %rcx
leaq -0x10d(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0xf0, %rdi
movl $0x15, -0x114(%rbp)
movl $0x3c, -0x118(%rbp)
movl $0xf, -0x11c(%rbp)
movb $0x56, -0x11d(%rbp)
leaq -0x114(%rbp), %rsi
leaq -0x118(%rbp), %rdx
leaq -0x11c(%rbp), %rcx
leaq -0x11d(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0x108, %rdi            # imm = 0x108
movl $0x15, -0x124(%rbp)
movl $0x50, -0x128(%rbp)
movl $0xf, -0x12c(%rbp)
movb $0x56, -0x12d(%rbp)
leaq -0x124(%rbp), %rsi
leaq -0x128(%rbp), %rdx
leaq -0x12c(%rbp), %rcx
leaq -0x12d(%rbp), %r8
callq 0x3ec0
jmp 0x8886
movq -0x270(%rbp), %rax
movl $0x8, 0xc(%rax)
movq 0x28(%rax), %rdi
addq $0x60, %rdi
movl $0xc, -0x134(%rbp)
movl $0x19, -0x138(%rbp)
movl $0xc, -0x13c(%rbp)
movb $0x56, -0x13d(%rbp)
leaq -0x134(%rbp), %rsi
leaq -0x138(%rbp), %rdx
leaq -0x13c(%rbp), %rcx
leaq -0x13d(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0x78, %rdi
movl $0xc, -0x144(%rbp)
movl $0x4b, -0x148(%rbp)
movl $0xc, -0x14c(%rbp)
movb $0x56, -0x14d(%rbp)
leaq -0x144(%rbp), %rsi
leaq -0x148(%rbp), %rdx
leaq -0x14c(%rbp), %rcx
leaq -0x14d(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0x90, %rdi
movl $0xa, -0x154(%rbp)
movl $0x1b, -0x158(%rbp)
movl $0x2f, -0x15c(%rbp)
movb $0x48, -0x15d(%rbp)
leaq -0x154(%rbp), %rsi
leaq -0x158(%rbp), %rdx
leaq -0x15c(%rbp), %rcx
leaq -0x15d(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0xa8, %rdi
movl $0x19, -0x164(%rbp)
movl $0x1b, -0x168(%rbp)
movl $0x2f, -0x16c(%rbp)
movb $0x48, -0x16d(%rbp)
leaq -0x164(%rbp), %rsi
leaq -0x168(%rbp), %rdx
leaq -0x16c(%rbp), %rcx
leaq -0x16d(%rbp), %r8
callq 0x3ec0
jmp 0x8886
movq -0x270(%rbp), %rax
movl $0x5, 0xc(%rax)
movq 0x28(%rax), %rdi
addq $0x60, %rdi
movl $0x1, -0x174(%rbp)
movl $0x32, -0x178(%rbp)
movl $0x22, -0x17c(%rbp)
movb $0x49, -0x17d(%rbp)
leaq -0x174(%rbp), %rsi
leaq -0x178(%rbp), %rdx
leaq -0x17c(%rbp), %rcx
leaq -0x17d(%rbp), %r8
callq 0x3ec0
jmp 0x8886
movq -0x270(%rbp), %rax
movl $0xa, 0xc(%rax)
movq 0x28(%rax), %rdi
addq $0x60, %rdi
movl $0x1, -0x184(%rbp)
movl $0xe, -0x188(%rbp)
movl $0x1c, -0x18c(%rbp)
movb $0x56, -0x18d(%rbp)
leaq -0x184(%rbp), %rsi
leaq -0x188(%rbp), %rdx
leaq -0x18c(%rbp), %rcx
leaq -0x18d(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0x78, %rdi
movl $0x7, -0x194(%rbp)
movl $0x1c, -0x198(%rbp)
movl $0x1c, -0x19c(%rbp)
movb $0x56, -0x19d(%rbp)
leaq -0x194(%rbp), %rsi
leaq -0x198(%rbp), %rdx
leaq -0x19c(%rbp), %rcx
leaq -0x19d(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0x90, %rdi
movl $0x1, -0x1a4(%rbp)
movl $0x2a, -0x1a8(%rbp)
movl $0x1c, -0x1ac(%rbp)
movb $0x56, -0x1ad(%rbp)
leaq -0x1a4(%rbp), %rsi
leaq -0x1a8(%rbp), %rdx
leaq -0x1ac(%rbp), %rcx
leaq -0x1ad(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0xa8, %rdi
movl $0x7, -0x1b4(%rbp)
movl $0x38, -0x1b8(%rbp)
movl $0x1c, -0x1bc(%rbp)
movb $0x56, -0x1bd(%rbp)
leaq -0x1b4(%rbp), %rsi
leaq -0x1b8(%rbp), %rdx
leaq -0x1bc(%rbp), %rcx
leaq -0x1bd(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0xc0, %rdi
movl $0x1, -0x1c4(%rbp)
movl $0x46, -0x1c8(%rbp)
movl $0x1c, -0x1cc(%rbp)
movb $0x56, -0x1cd(%rbp)
leaq -0x1c4(%rbp), %rsi
leaq -0x1c8(%rbp), %rdx
leaq -0x1cc(%rbp), %rcx
leaq -0x1cd(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0xd8, %rdi
movl $0x7, -0x1d4(%rbp)
movl $0x54, -0x1d8(%rbp)
movl $0x1c, -0x1dc(%rbp)
movb $0x56, -0x1dd(%rbp)
leaq -0x1d4(%rbp), %rsi
leaq -0x1d8(%rbp), %rdx
leaq -0x1dc(%rbp), %rcx
leaq -0x1dd(%rbp), %r8
callq 0x3ec0
jmp 0x8886
movq -0x270(%rbp), %rax
movl $0x6, 0xc(%rax)
movq 0x28(%rax), %rdi
addq $0x60, %rdi
movl $0x2, -0x1e4(%rbp)
movl $0x2, -0x1e8(%rbp)
movl $0x20, -0x1ec(%rbp)
movb $0x44, -0x1ed(%rbp)
leaq -0x1e4(%rbp), %rsi
leaq -0x1e8(%rbp), %rdx
leaq -0x1ec(%rbp), %rcx
leaq -0x1ed(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0x78, %rdi
movl $0x2, -0x1f4(%rbp)
movl $0x42, -0x1f8(%rbp)
movl $0x20, -0x1fc(%rbp)
movb $0x44, -0x1fd(%rbp)
leaq -0x1f4(%rbp), %rsi
leaq -0x1f8(%rbp), %rdx
leaq -0x1fc(%rbp), %rcx
leaq -0x1fd(%rbp), %r8
callq 0x3ec0
jmp 0x8886
movq -0x270(%rbp), %rax
movl $0xa, 0xc(%rax)
movq 0x28(%rax), %rdi
addq $0x60, %rdi
movl $0x1, -0x204(%rbp)
movl $0xe, -0x208(%rbp)
movl $0x22, -0x20c(%rbp)
movb $0x49, -0x20d(%rbp)
leaq -0x204(%rbp), %rsi
leaq -0x208(%rbp), %rdx
leaq -0x20c(%rbp), %rcx
leaq -0x20d(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0x78, %rdi
movl $0x2, -0x214(%rbp)
movl $0x1c, -0x218(%rbp)
movl $0x22, -0x21c(%rbp)
movb $0x49, -0x21d(%rbp)
leaq -0x214(%rbp), %rsi
leaq -0x218(%rbp), %rdx
leaq -0x21c(%rbp), %rcx
leaq -0x21d(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0x90, %rdi
movl $0x1, -0x224(%rbp)
movl $0x2a, -0x228(%rbp)
movl $0x22, -0x22c(%rbp)
movb $0x49, -0x22d(%rbp)
leaq -0x224(%rbp), %rsi
leaq -0x228(%rbp), %rdx
leaq -0x22c(%rbp), %rcx
leaq -0x22d(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0xa8, %rdi
movl $0x2, -0x234(%rbp)
movl $0x38, -0x238(%rbp)
movl $0x22, -0x23c(%rbp)
movb $0x49, -0x23d(%rbp)
leaq -0x234(%rbp), %rsi
leaq -0x238(%rbp), %rdx
leaq -0x23c(%rbp), %rcx
leaq -0x23d(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0xc0, %rdi
movl $0x1, -0x244(%rbp)
movl $0x46, -0x248(%rbp)
movl $0x22, -0x24c(%rbp)
movb $0x49, -0x24d(%rbp)
leaq -0x244(%rbp), %rsi
leaq -0x248(%rbp), %rdx
leaq -0x24c(%rbp), %rcx
leaq -0x24d(%rbp), %r8
callq 0x3ec0
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
addq $0xd8, %rdi
movl $0x2, -0x254(%rbp)
movl $0x54, -0x258(%rbp)
movl $0x22, -0x25c(%rbp)
movb $0x49, -0x25d(%rbp)
leaq -0x254(%rbp), %rsi
leaq -0x258(%rbp), %rdx
leaq -0x25c(%rbp), %rcx
leaq -0x25d(%rbp), %r8
callq 0x3ec0
movl $0x0, -0x264(%rbp)
movq -0x270(%rbp), %rcx
movl -0x264(%rbp), %eax
cmpl 0xc(%rcx), %eax
jge 0x88d1
movq -0x270(%rbp), %rax
movq 0x28(%rax), %rdi
movslq -0x264(%rbp), %rax
imulq $0x18, %rax, %rax
addq %rax, %rdi
callq 0x40d0
movl -0x264(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x264(%rbp)
jmp 0x8890
movl $0x0, -0x268(%rbp)
movq -0x270(%rbp), %rcx
movl -0x268(%rbp), %eax
cmpl 0x10(%rcx), %eax
jge 0x891e
movq -0x270(%rbp), %rsi
movq 0x30(%rsi), %rax
movslq -0x268(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
addq $0x8, %rsi
movq (%rdi), %rax
callq *0x18(%rax)
movl -0x268(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x268(%rbp)
jmp 0x88db
movq -0x270(%rbp), %rdi
callq 0xb620
movq -0x270(%rbp), %rdi
callq 0xb730
callq 0x34c0
addq $0x280, %rsp            # imm = 0x280
popq %rbp
retq
nopw %cs:(%rax,%rax)