// File: /workspace/github_cpp_makefile_star2_O1/matallui[P]nibble-curses/src/CNibbles.cpp
// Function: CNibbles::Menu()
void CNibbles::Menu ( void )
{ 
  nodelay ( stdscr, false );
  
  // Mode menu
  char title[30] = "Select the Mode:\0";
  char menu[5][30] = {
			      "       Single Player       \0",
			      "  Multi-Player on same PC  \0",
			      " Multi-Player over Network \0",
			      "\0","\0"
  }; 

  int key, item;
  item = 0;
  DrawMenu ( menu, title, 3, item );
  do
  {
    key = getch();
    switch ( key )
    {
      case KEY_DOWN:
	item = (item+1) % 3;
	break;
      case KEY_UP:
	item = (item+2) % 3;
	break;
    }
    DrawMenu ( menu, title, 3, item );
  }while ( key != '\n' );
  
  switch ( item )
  {
    case 0:
      m_nplayers = 1;
      m_mode = 1;
      break;
    case 1:
      m_nplayers = 2;
      m_mode = 2;
      break;
    case 2:
      m_nplayers = 2;
      m_mode = 3;
      
      sprintf ( title, "Select the Connection:" );
      sprintf ( menu[0], "    Receive Connection     ");
      sprintf ( menu[1], "       Conncect To         ");
      item = 0; 
      DrawMenu ( menu, title, 2, item );
      do
      {
	key = getch();
	switch ( key )
	{
	  case KEY_DOWN:
	    item = (item+1) % 2;
	    break;
	  case KEY_UP:
	    item = (item+1) % 2;
	    break;
	}
	DrawMenu ( menu, title, 2, item );
      }while ( key != '\n' );
      
      int port;
      if ( item == 0 )
      {
	port = (rand()%1000) + 50000;
	sprintf ( title, "Waiting in Port: %d", port );
	DrawMenu ( menu, title, 0, item );
	m_socket = new CSocketServer;
	if ( ! m_socket->Initialize ( port, NULL ) )	throw CException( "Unable to initialize socket." );
	  
	if ( ! m_socket->EstablishConnection () )	throw CException( "Unable to establish connection." );
      }
      else
      {
	char hostname[50];
	bzero ( hostname, 50 );
	m_master = false;
	sprintf ( title, " " );
	DrawMenu ( menu, title, 0, item );
	echo();
	mvaddstr ( 12, 20, "Hostame Address: " );
	scanw ( (char*)"%s", hostname );
	mvaddstr ( 14, 20, "Insert Port: " );
	scanw ( (char*)"%d", &port );
	m_socket = new CSocketClient;
	if ( ! m_socket->Initialize ( port, hostname ) )	throw CException ( "Unable to Initialize socket." );
	if ( ! m_socket->EstablishConnection() )		throw CException ( "Unable to establish connection." );
      }
  }

  if ( m_master )
  {
    // Difficulty menu
    sprintf ( title, "Select the Difficulty:" );
    sprintf ( menu[0], "         Beginner          ");
    sprintf ( menu[1], "           Easy            ");
    sprintf ( menu[2], "          Normal           ");
    sprintf ( menu[3], "           Hard            ");
    sprintf ( menu[4], "          Expert           ");
    
    item = 0;
    DrawMenu ( menu, title, 5, item );
    do
    {
      key = getch();
      switch ( key )
      {
	case KEY_DOWN:
	  item = (item+1) % 5;
	  break;
	case KEY_UP:
	  item = (item+4) % 5;
	  break;
      }
      DrawMenu ( menu, title, 5, item );
    }while ( key != '\n' );
    
    switch ( item )
    {
      case 0:
	m_speed = 135000; 
	break;
      case 1:
	m_speed = 115000;
	break;
      case 2:
	m_speed = 90000;
      case 3:
	m_speed = 65000;
	break;
      case 4:
	m_speed = 50000;
	break;
    }
  }
  else
  {
    sprintf ( title, "Wait for Start ..." );
      DrawMenu ( menu, title, 0, item );
  }

  // allocate player snake(s) according to mode
  switch ( m_mode )
  {
    case 1:
      m_snakes[0] = new CSingle;
      break;
    case 2:
      m_snakes[0] = new CMultPC (1);
      m_snakes[1] = new CMultPC (2);
      break;
    case 3:
      m_snakes[0] = new CMultNet ( 1, m_socket, m_master );
      m_snakes[1] = new CMultNet ( 2, m_socket, !m_master );
      
      char buffer[3];
      bzero ( buffer, 3 );
      
      if ( m_master )
      {
	if ( ! m_socket->Send ( (char*) &m_speed, sizeof(m_speed) ) )		throw CException( "Problems with communication." );
	if ( ! m_socket->Recv ( buffer, 3 ) )					throw CException( "Problems with communication." );
	if ( buffer[0] != 'O' || buffer[1] != 'K' )				throw CException( "Problems with communication." );
      }
      else
      {
	if ( ! m_socket->Recv ( (char*) &m_speed, sizeof(m_speed) ) )		throw CException( "Problems with communication." );
	sprintf ( buffer, "OK" );
	if ( m_speed >= 50000 && m_speed <= 135000 )
	  m_socket->Send ( buffer, 3 );
	else
	  throw CException( "Problems with communication." );
      }
  }
  
  noecho();
  nodelay ( stdscr, true );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x138, %rsp            # imm = 0x138
movq %rdi, -0x38(%rbp)
movq 0x7cd9(%rip), %rbx      # 0xcfd0
movq (%rbx), %rdi
xorl %r14d, %r14d
xorl %esi, %esi
callq 0x3190
movups 0x3e63(%rip), %xmm0     # 0x916e
leaq -0xc0(%rbp), %rax
movups %xmm0, 0xe(%rax)
movaps 0x3e43(%rip), %xmm0     # 0x9160
movaps %xmm0, (%rax)
leaq 0x3e59(%rip), %rsi      # 0x9180
leaq -0x160(%rbp), %r15
movl $0x96, %edx
movq %r15, %rdi
callq 0x3200
leaq -0x2c(%rbp), %r12
movl $0x0, (%r12)
leaq -0x70(%rbp), %r13
movl $0x3, (%r13)
movq -0x38(%rbp), %rdi
movq %r15, %rsi
leaq -0xc0(%rbp), %rdx
movq %rdx, %r15
movq %r13, %rcx
movq %r12, %r8
callq 0x753e
movq (%rbx), %rdi
callq 0x3110
movl %eax, %ebx
cmpl $0x103, %eax            # imm = 0x103
je 0x538d
cmpl $0x102, %ebx            # imm = 0x102
jne 0x53ab
incl %r14d
jmp 0x5391
addl $0x2, %r14d
movq %r14, %rax
movl $0xaaaaaaab, %ecx       # imm = 0xAAAAAAAB
imulq %rcx, %rax
shrq $0x21, %rax
leal (%rax,%rax,2), %eax
subl %eax, %r14d
movl %r14d, -0x2c(%rbp)
movl $0x3, -0x70(%rbp)
movq -0x38(%rbp), %rdi
leaq -0x160(%rbp), %rsi
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
callq 0x753e
cmpl $0xa, %ebx
movq 0x7bfb(%rip), %rbx      # 0xcfd0
jne 0x536f
movl -0x2c(%rbp), %eax
cmpl $0x2, %eax
je 0x540f
cmpl $0x1, %eax
movq -0x38(%rbp), %r15
je 0x53fc
testl %eax, %eax
jne 0x5718
movabsq $0x100000001, %rax      # imm = 0x100000001
jmp 0x5406
movabsq $0x200000002, %rax      # imm = 0x200000002
movq %rax, 0x10(%r15)
jmp 0x5718
movabsq $0x300000002, %rax      # imm = 0x300000002
movq -0x38(%rbp), %rdi
movq %rax, 0x10(%rdi)
movups 0x3e1d(%rip), %xmm0     # 0x9245
leaq -0xc0(%rbp), %rdx
movaps %xmm0, (%rdx)
movabsq $0x3a6e6f69746365, %rax # imm = 0x3A6E6F69746365
movq %rax, 0xf(%rdx)
movups 0x3e15(%rip), %xmm0     # 0x925c
leaq -0x160(%rbp), %rsi
movaps %xmm0, (%rsi)
movups 0x3e10(%rip), %xmm0     # 0x9268
movups %xmm0, 0xc(%rsi)
movups 0x3e15(%rip), %xmm0     # 0x9278
movups %xmm0, 0x1e(%rsi)
movups 0x3e16(%rip), %xmm0     # 0x9284
movups %xmm0, 0x2a(%rsi)
leaq -0x2c(%rbp), %r8
movl $0x0, (%r8)
leaq -0x70(%rbp), %r13
movl $0x2, (%r13)
movq %rdx, %r15
movq %r13, %rcx
movq %r8, %r12
callq 0x753e
xorl %r14d, %r14d
movq (%rbx), %rdi
callq 0x3110
movl %eax, %ebx
cmpl $0x103, %eax            # imm = 0x103
je 0x54b3
cmpl $0x102, %ebx            # imm = 0x102
jne 0x54be
notl %r14d
andl $0x1, %r14d
movl %r14d, -0x2c(%rbp)
movl $0x2, -0x70(%rbp)
movq -0x38(%rbp), %rdi
leaq -0x160(%rbp), %rsi
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
callq 0x753e
cmpl $0xa, %ebx
movq 0x7ae8(%rip), %rbx      # 0xcfd0
jne 0x549a
cmpl $0x0, -0x2c(%rbp)
je 0x5664
xorps %xmm0, %xmm0
movaps %xmm0, -0x50(%rbp)
movaps %xmm0, -0x60(%rbp)
movaps %xmm0, -0x70(%rbp)
movw $0x0, -0x40(%rbp)
movq -0x38(%rbp), %r15
movb $0x0, 0x18(%r15)
leaq -0xc0(%rbp), %rdx
movw $0x20, (%rdx)
leaq -0x98(%rbp), %rcx
movl $0x0, (%rcx)
leaq -0x160(%rbp), %rsi
leaq -0x2c(%rbp), %r8
movq %r15, %rdi
callq 0x753e
callq 0x30e0
movq (%rbx), %rdi
movl $0xc, %esi
movl $0x14, %edx
callq 0x3290
cmpl $-0x1, %eax
je 0x556e
movq (%rbx), %rdi
leaq 0x3d81(%rip), %rsi      # 0x92e5
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x30f0
leaq 0x3d82(%rip), %rdi      # 0x92f7
leaq -0x70(%rbp), %rsi
xorl %eax, %eax
callq 0x31a0
movq (%rbx), %rdi
movl $0xe, %esi
movl $0x14, %edx
callq 0x3290
cmpl $-0x1, %eax
je 0x55ab
movq (%rbx), %rdi
leaq 0x3d59(%rip), %rsi      # 0x92fa
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x30f0
leaq 0x3cf3(%rip), %rdi      # 0x92a5
leaq -0x74(%rbp), %rsi
xorl %eax, %eax
callq 0x31a0
movl $0x30, %edi
callq 0x3260
movq %rax, %r14
movq %rax, %rdi
callq 0x4c98
movq %r14, 0x48(%r15)
movq (%r14), %rax
leaq -0x74(%rbp), %rsi
leaq -0x70(%rbp), %rdx
movq %r14, %rdi
callq *0x10(%rax)
testb %al, %al
je 0x5b2c
movq 0x48(%r15), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
testb %al, %al
jne 0x5718
movl $0x20, %edi
callq 0x3160
movq %rax, %r14
leaq -0x88(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x3ca4(%rip), %rsi      # 0x92c5
leaq 0x3cbc(%rip), %rdx      # 0x92e4
leaq -0x98(%rbp), %rdi
callq 0x376a
movb $0x1, %r15b
leaq -0x98(%rbp), %rsi
movq %r14, %rdi
callq 0x35f8
xorl %r15d, %r15d
leaq 0x7728(%rip), %rsi      # 0xcd78
leaq 0x2ee5(%rip), %rdx      # 0x853c
movq %r14, %rdi
callq 0x33f0
jmp 0x5da3
callq 0x30a0
cltq
imulq $0x10624dd3, %rax, %rcx # imm = 0x10624DD3
movq %rcx, %rdx
shrq $0x3f, %rdx
sarq $0x26, %rcx
addl %edx, %ecx
imull $0x3e8, %ecx, %ecx      # imm = 0x3E8
negl %ecx
leal (%rax,%rcx), %edx
addl $0xc350, %edx           # imm = 0xC350
movl %edx, -0x74(%rbp)
leaq 0x3bfa(%rip), %rsi      # 0x9294
leaq -0xc0(%rbp), %rbx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x3070
leaq -0x70(%rbp), %rcx
movl $0x0, (%rcx)
leaq -0x160(%rbp), %rsi
leaq -0x2c(%rbp), %r8
movq -0x38(%rbp), %r15
movq %r15, %rdi
movq %rbx, %rdx
callq 0x753e
movl $0x40, %edi
callq 0x3260
movq %rax, %r14
movq %rax, %rdi
callq 0x4b68
movq %r14, 0x48(%r15)
movq (%r14), %rax
leaq -0x74(%rbp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq *0x10(%rax)
testb %al, %al
je 0x5cf7
movq 0x48(%r15), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
testb %al, %al
movq 0x78be(%rip), %rbx      # 0xcfd0
je 0x5d4e
cmpb $0x1, 0x18(%r15)
jne 0x587d
movups 0x3bfb(%rip), %xmm0     # 0x9325
leaq -0xc0(%rbp), %rdx
movaps %xmm0, (%rdx)
movabsq $0x3a79746c756369, %rax # imm = 0x3A79746C756369
movq %rax, 0xf(%rdx)
movups 0x3bf3(%rip), %xmm0     # 0x933c
movq %r15, %rdi
leaq -0x160(%rbp), %r15
movaps %xmm0, (%r15)
movups 0x3bea(%rip), %xmm0     # 0x9348
movups %xmm0, 0xc(%r15)
movups 0x3bee(%rip), %xmm0     # 0x9358
movups %xmm0, 0x1e(%r15)
movups 0x3bee(%rip), %xmm0     # 0x9364
movups %xmm0, 0x2a(%r15)
movups 0x3bf2(%rip), %xmm0     # 0x9374
movups %xmm0, 0x3c(%r15)
movups 0x3bf2(%rip), %xmm0     # 0x9380
movups %xmm0, 0x48(%r15)
movups 0x3c02(%rip), %xmm0     # 0x939c
movups %xmm0, 0x66(%r15)
movups 0x3bea(%rip), %xmm0     # 0x9390
movups %xmm0, 0x5a(%r15)
movups 0x3c06(%rip), %xmm0     # 0x93b8
movups %xmm0, 0x84(%r15)
movups 0x3beb(%rip), %xmm0     # 0x93ac
movups %xmm0, 0x78(%r15)
leaq -0x2c(%rbp), %r8
movl $0x0, (%r8)
leaq -0x70(%rbp), %r13
movl $0x5, (%r13)
movq %r15, %rsi
movq %r13, %rcx
movq %r8, %r12
callq 0x753e
xorl %r14d, %r14d
movq (%rbx), %rdi
callq 0x3110
movl %eax, %ebx
cmpl $0x102, %eax            # imm = 0x102
je 0x580d
cmpl $0x103, %ebx            # imm = 0x103
jne 0x582a
addl $0x4, %r14d
jmp 0x5810
incl %r14d
movq %r14, %rax
movl $0xcccccccd, %ecx       # imm = 0xCCCCCCCD
imulq %rcx, %rax
shrq $0x22, %rax
leal (%rax,%rax,4), %eax
subl %eax, %r14d
movl %r14d, -0x2c(%rbp)
movl $0x5, -0x70(%rbp)
movq -0x38(%rbp), %rdi
movq %r15, %rsi
leaq -0xc0(%rbp), %rdx
movq %r13, %rcx
movq %r12, %r8
callq 0x753e
cmpl $0xa, %ebx
movq 0x777c(%rip), %rbx      # 0xcfd0
jne 0x57ee
movl -0x2c(%rbp), %eax
cmpq $0x4, %rax
movq -0x38(%rbp), %r15
ja 0x58d8
leaq 0x38b6(%rip), %rcx      # 0x9120
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x20f58, 0x1c(%r15)    # imm = 0x20F58
jmp 0x58d8
movups 0x3b44(%rip), %xmm0     # 0x93c8
leaq -0xc0(%rbp), %rdx
movaps %xmm0, (%rdx)
movl $0x2e2e2e, 0xf(%rdx)    # imm = 0x2E2E2E
leaq -0x70(%rbp), %rcx
movl $0x0, (%rcx)
leaq -0x160(%rbp), %rsi
leaq -0x2c(%rbp), %r8
movq %r15, %rdi
callq 0x753e
jmp 0x58d8
movl $0xc350, 0x1c(%r15)     # imm = 0xC350
jmp 0x58d8
movl $0x15f90, 0x1c(%r15)    # imm = 0x15F90
movl $0xfde8, 0x1c(%r15)     # imm = 0xFDE8
jmp 0x58d8
movl $0x1c138, 0x1c(%r15)    # imm = 0x1C138
movl 0x14(%r15), %eax
cmpl $0x3, %eax
je 0x5966
cmpl $0x2, %eax
je 0x5914
cmpl $0x1, %eax
jne 0x5b08
movl $0x38, %edi
callq 0x3260
movq %rax, %r14
movq %rax, %rdi
callq 0x3dd8
movq 0x30(%r15), %rax
movq %r14, (%rax)
jmp 0x5b08
movl $0x40, %edi
callq 0x3260
movq %rax, %r14
leaq -0x70(%rbp), %rsi
movl $0x1, (%rsi)
movq %rax, %rdi
callq 0x4290
movq 0x30(%r15), %rax
movq %r14, (%rax)
movl $0x40, %edi
callq 0x3260
movq %rax, %r14
leaq -0x70(%rbp), %rsi
movl $0x2, (%rsi)
movq %rax, %rdi
callq 0x4290
movq 0x30(%r15), %rax
movq %r14, 0x8(%rax)
jmp 0x5b08
leaq 0x18(%r15), %rbx
movl $0x48, %edi
callq 0x3260
movq %rax, %r14
leaq -0x70(%rbp), %rsi
movl $0x1, (%rsi)
movq 0x48(%r15), %rdx
movq %rax, %rdi
movq %rbx, %rcx
callq 0x48e8
movq 0x30(%r15), %rax
movq %r14, (%rax)
movl $0x48, %edi
callq 0x3260
movq %rax, %r14
leaq -0x70(%rbp), %rsi
movl $0x2, (%rsi)
movq 0x48(%r15), %rdx
movb 0x18(%r15), %al
xorb $0x1, %al
leaq -0x98(%rbp), %rcx
movb %al, (%rcx)
movq %r14, %rdi
callq 0x48e8
movq 0x30(%r15), %rax
movq %r14, 0x8(%rax)
movb $0x0, -0x96(%rbp)
movw $0x0, -0x98(%rbp)
movq 0x48(%r15), %rdi
leaq 0x1c(%r15), %rbx
cmpb $0x1, 0x18(%r15)
jne 0x5aa9
leaq -0x70(%rbp), %rdx
movl $0x4, (%rdx)
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x20(%rax)
testb %al, %al
je 0x5b8f
movq 0x48(%r15), %rdi
leaq -0x70(%rbp), %rdx
movl $0x3, (%rdx)
movq (%rdi), %rax
leaq -0x98(%rbp), %rsi
callq *0x28(%rax)
testb %al, %al
movq 0x759d(%rip), %rbx      # 0xcfd0
je 0x5c43
cmpb $0x4f, -0x98(%rbp)
jne 0x5a4f
cmpb $0x4b, -0x97(%rbp)
je 0x5b08
movl $0x20, %edi
callq 0x3160
movq %rax, %r14
leaq -0x60(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x396f(%rip), %rsi      # 0x93db
leaq 0x3984(%rip), %rdx      # 0x93f7
leaq -0x70(%rbp), %rdi
callq 0x376a
movb $0x1, %r15b
leaq -0x70(%rbp), %rsi
movq %r14, %rdi
callq 0x35f8
xorl %r15d, %r15d
leaq 0x72e3(%rip), %rsi      # 0xcd78
leaq 0x2aa0(%rip), %rdx      # 0x853c
movq %r14, %rdi
callq 0x33f0
jmp 0x5da3
leaq -0x70(%rbp), %rdx
movl $0x4, (%rdx)
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x28(%rax)
testb %al, %al
je 0x5be9
movb $0x0, -0x96(%rbp)
movw $0x4b4f, -0x98(%rbp)    # imm = 0x4B4F
movl $0xffff3cb0, %eax       # imm = 0xFFFF3CB0
addl (%rbx), %eax
cmpl $0x14c08, %eax          # imm = 0x14C08
ja 0x5c9d
movq 0x48(%r15), %rdi
leaq -0x70(%rbp), %rdx
movl $0x3, (%rdx)
movq (%rdi), %rax
leaq -0x98(%rbp), %rsi
callq *0x20(%rax)
movq 0x74c8(%rip), %rbx      # 0xcfd0
callq 0x32f0
movq (%rbx), %rdi
movl $0x1, %esi
callq 0x3190
addq $0x138, %rsp            # imm = 0x138
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x20, %edi
callq 0x3160
movq %rax, %r14
leaq -0x88(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x37bc(%rip), %rsi      # 0x9308
leaq 0x37d1(%rip), %rdx      # 0x9324
leaq -0x98(%rbp), %rdi
callq 0x376a
movb $0x1, %r15b
leaq -0x98(%rbp), %rsi
movq %r14, %rdi
callq 0x35f8
xorl %r15d, %r15d
leaq 0x71fd(%rip), %rsi      # 0xcd78
leaq 0x29ba(%rip), %rdx      # 0x853c
movq %r14, %rdi
callq 0x33f0
jmp 0x5da3
movl $0x20, %edi
callq 0x3160
movq %rax, %r14
leaq -0x60(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x382f(%rip), %rsi      # 0x93db
leaq 0x3844(%rip), %rdx      # 0x93f7
leaq -0x70(%rbp), %rdi
callq 0x376a
movb $0x1, %r15b
leaq -0x70(%rbp), %rsi
movq %r14, %rdi
callq 0x35f8
xorl %r15d, %r15d
leaq 0x71a3(%rip), %rsi      # 0xcd78
leaq 0x2960(%rip), %rdx      # 0x853c
movq %r14, %rdi
callq 0x33f0
jmp 0x5da3
movl $0x20, %edi
callq 0x3160
movq %rax, %r14
leaq -0x60(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x37d5(%rip), %rsi      # 0x93db
leaq 0x37ea(%rip), %rdx      # 0x93f7
leaq -0x70(%rbp), %rdi
callq 0x376a
movb $0x1, %r15b
leaq -0x70(%rbp), %rsi
movq %r14, %rdi
callq 0x35f8
xorl %r15d, %r15d
leaq 0x7149(%rip), %rsi      # 0xcd78
leaq 0x2906(%rip), %rdx      # 0x853c
movq %r14, %rdi
callq 0x33f0
jmp 0x5da3
movl $0x20, %edi
callq 0x3160
movq %rax, %r14
leaq -0x60(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x377b(%rip), %rsi      # 0x93db
leaq 0x3790(%rip), %rdx      # 0x93f7
leaq -0x70(%rbp), %rdi
callq 0x376a
movb $0x1, %r15b
leaq -0x70(%rbp), %rsi
movq %r14, %rdi
callq 0x35f8
xorl %r15d, %r15d
leaq 0x70ef(%rip), %rsi      # 0xcd78
leaq 0x28ac(%rip), %rdx      # 0x853c
movq %r14, %rdi
callq 0x33f0
jmp 0x5da3
movl $0x20, %edi
callq 0x3160
movq %rax, %r14
leaq -0x60(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x3721(%rip), %rsi      # 0x93db
leaq 0x3736(%rip), %rdx      # 0x93f7
leaq -0x70(%rbp), %rdi
callq 0x376a
movb $0x1, %r15b
leaq -0x70(%rbp), %rsi
movq %r14, %rdi
callq 0x35f8
xorl %r15d, %r15d
leaq 0x7095(%rip), %rsi      # 0xcd78
leaq 0x2852(%rip), %rdx      # 0x853c
movq %r14, %rdi
callq 0x33f0
jmp 0x5da3
movl $0x20, %edi
callq 0x3160
movq %rax, %r14
leaq -0x60(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x3594(%rip), %rsi      # 0x92a8
leaq 0x35a9(%rip), %rdx      # 0x92c4
leaq -0x70(%rbp), %rdi
callq 0x376a
movb $0x1, %r15b
leaq -0x70(%rbp), %rsi
movq %r14, %rdi
callq 0x35f8
xorl %r15d, %r15d
leaq 0x703b(%rip), %rsi      # 0xcd78
leaq 0x27f8(%rip), %rdx      # 0x853c
movq %r14, %rdi
callq 0x33f0
jmp 0x5da3
movl $0x20, %edi
callq 0x3160
movq %rax, %r14
leaq -0x60(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x355a(%rip), %rsi      # 0x92c5
leaq 0x3572(%rip), %rdx      # 0x92e4
leaq -0x70(%rbp), %rdi
callq 0x376a
movb $0x1, %r15b
leaq -0x70(%rbp), %rsi
movq %r14, %rdi
callq 0x35f8
xorl %r15d, %r15d
leaq 0x6fe4(%rip), %rsi      # 0xcd78
leaq 0x27a1(%rip), %rdx      # 0x853c
movq %r14, %rdi
callq 0x33f0
jmp 0x5db9
jmp 0x5df3
jmp 0x5db9
jmp 0x5df3
jmp 0x5db9
jmp 0x5df3
jmp 0x5db9
jmp 0x5db9
jmp 0x5df3
jmp 0x5df3
jmp 0x5db9
movq %rax, %rbx
movq -0x70(%rbp), %rdi
cmpq %r12, %rdi
je 0x5df9
movq -0x60(%rbp), %rsi
jmp 0x5de9
jmp 0x5df3
jmp 0x5df3
jmp 0x5dd3
jmp 0x5df3
movq %rax, %rbx
movq -0x98(%rbp), %rdi
cmpq %r12, %rdi
je 0x5df9
movq -0x88(%rbp), %rsi
incq %rsi
callq 0x3280
jmp 0x5df9
movq %rax, %rbx
movb $0x1, %r15b
testb %r15b, %r15b
je 0x5e3c
movq %r14, %rdi
callq 0x31e0
jmp 0x5e3c
jmp 0x5e2c
movq %rax, %rbx
movl $0x30, %esi
jmp 0x5e34
jmp 0x5e22
jmp 0x5e2c
movq %rax, %rbx
movl $0x38, %esi
jmp 0x5e34
movq %rax, %rbx
movl $0x48, %esi
jmp 0x5e34
movq %rax, %rbx
movl $0x40, %esi
movq %r14, %rdi
callq 0x3280
movq %rbx, %rdi
callq 0x3400