// File: /workspace/github_cpp_makefile_star2_O3/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 0x7d95(%rip), %rbx      # 0xcfd0
movq (%rbx), %rdi
xorl %r14d, %r14d
xorl %esi, %esi
callq 0x3190
movups 0x3f1f(%rip), %xmm0     # 0x916e
leaq -0xc0(%rbp), %rax
movups %xmm0, 0xe(%rax)
movaps 0x3eff(%rip), %xmm0     # 0x9160
movaps %xmm0, (%rax)
leaq 0x3f15(%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 0x7434
movq (%rbx), %rdi
callq 0x3110
movl %eax, %ebx
cmpl $0x103, %eax            # imm = 0x103
je 0x52d1
cmpl $0x102, %ebx            # imm = 0x102
jne 0x52ef
incl %r14d
jmp 0x52d5
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 0x7434
cmpl $0xa, %ebx
movq 0x7cb7(%rip), %rbx      # 0xcfd0
jne 0x52b3
cmpl $0x2, %r14d
je 0x533e
cmpl $0x1, %r14d
jne 0x5594
movabsq $0x200000002, %rax      # imm = 0x200000002
movq -0x38(%rbp), %r14
jmp 0x55a2
movabsq $0x300000002, %rax      # imm = 0x300000002
movq -0x38(%rbp), %rdi
movq %rax, 0x10(%rdi)
movups 0x3eee(%rip), %xmm0     # 0x9245
leaq -0xc0(%rbp), %rdx
movaps %xmm0, (%rdx)
movabsq $0x3a6e6f69746365, %rax # imm = 0x3A6E6F69746365
movq %rax, 0xf(%rdx)
movups 0x3ee6(%rip), %xmm0     # 0x925c
leaq -0x160(%rbp), %rsi
movaps %xmm0, (%rsi)
movups 0x3ee1(%rip), %xmm0     # 0x9268
movups %xmm0, 0xc(%rsi)
movups 0x3ee6(%rip), %xmm0     # 0x9278
movups %xmm0, 0x1e(%rsi)
movups 0x3ee7(%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 0x7434
xorl %r14d, %r14d
movq (%rbx), %rdi
callq 0x3110
movl %eax, %ebx
cmpl $0x103, %eax            # imm = 0x103
je 0x53e2
cmpl $0x102, %ebx            # imm = 0x102
jne 0x53ed
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 0x7434
cmpl $0xa, %ebx
movq 0x7bb9(%rip), %rbx      # 0xcfd0
jne 0x53c9
testl %r14d, %r14d
je 0x5742
xorps %xmm0, %xmm0
movaps %xmm0, -0x50(%rbp)
movaps %xmm0, -0x60(%rbp)
movaps %xmm0, -0x70(%rbp)
movw $0x0, -0x40(%rbp)
movq -0x38(%rbp), %r14
movb $0x0, 0x18(%r14)
leaq -0xc0(%rbp), %rdx
movw $0x20, (%rdx)
leaq -0x98(%rbp), %rcx
movl $0x0, (%rcx)
leaq -0x160(%rbp), %rsi
leaq -0x2c(%rbp), %r8
movq %r14, %rdi
callq 0x7434
callq 0x30e0
movq (%rbx), %rdi
movl $0xc, %esi
movl $0x14, %edx
callq 0x3290
cmpl $-0x1, %eax
je 0x549c
movq (%rbx), %rdi
leaq 0x3e53(%rip), %rsi      # 0x92e5
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x30f0
leaq 0x3e54(%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 0x54d9
movq (%rbx), %rdi
leaq 0x3e2b(%rip), %rsi      # 0x92fa
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x30f0
leaq 0x3dc5(%rip), %rdi      # 0x92a5
leaq -0x74(%rbp), %rsi
xorl %eax, %eax
callq 0x31a0
movl $0x30, %edi
callq 0x3260
movq %rax, %rbx
movq %rax, %rdi
callq 0x4bd4
movq %rbx, 0x48(%r14)
movq (%rbx), %rax
leaq -0x74(%rbp), %rsi
leaq -0x70(%rbp), %rdx
movq %rbx, %rdi
callq *0x10(%rax)
testb %al, %al
je 0x5acc
movq 0x48(%r14), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
testb %al, %al
movq 0x7aa0(%rip), %rbx      # 0xcfd0
jne 0x55a6
movl $0x20, %edi
callq 0x3160
movq %rax, %rbx
leaq -0x88(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x3d74(%rip), %rsi      # 0x92c5
leaq 0x3d8c(%rip), %rdx      # 0x92e4
leaq -0x98(%rbp), %rdi
callq 0x376e
movb $0x1, %r12b
leaq -0x98(%rbp), %rsi
movq %rbx, %rdi
callq 0x35f8
xorl %r12d, %r12d
leaq 0x77f8(%rip), %rsi      # 0xcd78
leaq 0x2e81(%rip), %rdx      # 0x8408
movq %rbx, %rdi
callq 0x33f0
jmp 0x5ce3
movq -0x38(%rbp), %r14
movabsq $0x100000001, %rax      # imm = 0x100000001
movq %rax, 0x10(%r14)
cmpb $0x1, 0x18(%r14)
jne 0x5708
movups 0x3d6d(%rip), %xmm0     # 0x9325
leaq -0xc0(%rbp), %rdx
movaps %xmm0, (%rdx)
movabsq $0x3a79746c756369, %rax # imm = 0x3A79746C756369
movq %rax, 0xf(%rdx)
movups 0x3d65(%rip), %xmm0     # 0x933c
leaq -0x160(%rbp), %r15
movaps %xmm0, (%r15)
movups 0x3d5f(%rip), %xmm0     # 0x9348
movups %xmm0, 0xc(%r15)
movups 0x3d63(%rip), %xmm0     # 0x9358
movups %xmm0, 0x1e(%r15)
movups 0x3d63(%rip), %xmm0     # 0x9364
movups %xmm0, 0x2a(%r15)
movups 0x3d67(%rip), %xmm0     # 0x9374
movups %xmm0, 0x3c(%r15)
movups 0x3d67(%rip), %xmm0     # 0x9380
movups %xmm0, 0x48(%r15)
movups 0x3d77(%rip), %xmm0     # 0x939c
movups %xmm0, 0x66(%r15)
movups 0x3d5f(%rip), %xmm0     # 0x9390
movups %xmm0, 0x5a(%r15)
movups 0x3d7b(%rip), %xmm0     # 0x93b8
movups %xmm0, 0x84(%r15)
movups 0x3d60(%rip), %xmm0     # 0x93ac
movups %xmm0, 0x78(%r15)
leaq -0x2c(%rbp), %r8
movl $0x0, (%r8)
leaq -0x70(%rbp), %r13
movl $0x5, (%r13)
movq %r14, %rdi
movq %r15, %rsi
movq %r13, %rcx
movq %r8, %r12
callq 0x7434
xorl %r14d, %r14d
movq (%rbx), %rdi
callq 0x3110
movl %eax, %ebx
cmpl $0x102, %eax            # imm = 0x102
je 0x569b
cmpl $0x103, %ebx            # imm = 0x103
jne 0x56b8
addl $0x4, %r14d
jmp 0x569e
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 0x7434
cmpl $0xa, %ebx
movq 0x78ee(%rip), %rbx      # 0xcfd0
jne 0x567c
movl %r14d, %eax
leaq 0x3a32(%rip), %rcx      # 0x9120
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
movq -0x38(%rbp), %r14
jmpq *%rax
movl $0x20f58, 0x1c(%r14)    # imm = 0x20F58
jmp 0x5873
movups 0x3cb9(%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 %r14, %rdi
callq 0x7434
jmp 0x5873
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 0x3b1c(%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), %r14
movq %r14, %rdi
movq %rbx, %rdx
callq 0x7434
movl $0x40, %edi
callq 0x3260
movq %rax, %rbx
movq %rax, %rdi
callq 0x4aa4
movq %rbx, 0x48(%r14)
movq (%rbx), %rax
leaq -0x74(%rbp), %rsi
movq %rbx, %rdi
xorl %edx, %edx
callq *0x10(%rax)
testb %al, %al
je 0x5b2e
movq 0x48(%r14), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
testb %al, %al
movq 0x77e0(%rip), %rbx      # 0xcfd0
jne 0x55a6
movl $0x20, %edi
callq 0x3160
movq %rax, %rbx
leaq -0x60(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x3ab3(%rip), %rsi      # 0x92c5
leaq 0x3acb(%rip), %rdx      # 0x92e4
leaq -0x70(%rbp), %rdi
callq 0x376e
movb $0x1, %r12b
leaq -0x70(%rbp), %rsi
movq %rbx, %rdi
callq 0x35f8
xorl %r12d, %r12d
leaq 0x753d(%rip), %rsi      # 0xcd78
leaq 0x2bc6(%rip), %rdx      # 0x8408
movq %rbx, %rdi
callq 0x33f0
jmp 0x5ce3
movl $0xc350, 0x1c(%r14)     # imm = 0xC350
jmp 0x5873
movl $0x15f90, 0x1c(%r14)    # imm = 0x15F90
movl $0xfde8, 0x1c(%r14)     # imm = 0xFDE8
jmp 0x5873
movl $0x1c138, 0x1c(%r14)    # imm = 0x1C138
movl 0x14(%r14), %eax
cmpl $0x3, %eax
je 0x5901
cmpl $0x2, %eax
je 0x58af
cmpl $0x1, %eax
jne 0x5aa8
movl $0x38, %edi
callq 0x3260
movq %rax, %rbx
movq %rax, %rdi
callq 0x3de0
movq 0x30(%r14), %rax
movq %rbx, (%rax)
jmp 0x5aa1
movl $0x40, %edi
callq 0x3260
movq %rax, %rbx
leaq -0x70(%rbp), %rsi
movl $0x1, (%rsi)
movq %rax, %rdi
callq 0x424c
movq 0x30(%r14), %rax
movq %rbx, (%rax)
movl $0x40, %edi
callq 0x3260
movq %rax, %rbx
leaq -0x70(%rbp), %rsi
movl $0x2, (%rsi)
movq %rax, %rdi
callq 0x424c
movq 0x30(%r14), %rax
movq %rbx, 0x8(%rax)
jmp 0x5aa1
movq %r14, %r15
addq $0x18, %r14
movl $0x48, %edi
callq 0x3260
movq %rax, %rbx
leaq -0x70(%rbp), %rsi
movl $0x1, (%rsi)
movq 0x48(%r15), %rdx
movq %rax, %rdi
movq %r14, %rcx
callq 0x4824
movq 0x30(%r15), %rax
movq %rbx, (%rax)
movl $0x48, %edi
callq 0x3260
movq %rax, %rbx
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 %rbx, %rdi
callq 0x4824
movq %r15, %r14
movq 0x30(%r15), %rax
movq %rbx, 0x8(%rax)
movb $0x0, -0x96(%rbp)
movw $0x0, -0x98(%rbp)
movq 0x48(%r15), %rdi
leaq 0x1c(%r15), %rbx
cmpb $0x1, 0x18(%r15)
jne 0x5a49
leaq -0x70(%rbp), %rdx
movl $0x4, (%rdx)
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x20(%rax)
testb %al, %al
je 0x5b87
movq 0x48(%r14), %rdi
leaq -0x70(%rbp), %rdx
movl $0x3, (%rdx)
movq (%rdi), %rax
leaq -0x98(%rbp), %rsi
callq *0x28(%rax)
testb %al, %al
movq 0x75fc(%rip), %rbx      # 0xcfd0
je 0x5c39
cmpb $0x4f, -0x98(%rbp)
jne 0x59f0
cmpb $0x4b, -0x97(%rbp)
je 0x5aa8
movl $0x20, %edi
callq 0x3160
movq %rax, %rbx
leaq -0x60(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x39cf(%rip), %rsi      # 0x93db
leaq 0x39e4(%rip), %rdx      # 0x93f7
leaq -0x70(%rbp), %rdi
callq 0x376e
movb $0x1, %r12b
leaq -0x70(%rbp), %rsi
movq %rbx, %rdi
callq 0x35f8
xorl %r12d, %r12d
leaq 0x7343(%rip), %rsi      # 0xcd78
leaq 0x29cc(%rip), %rdx      # 0x8408
movq %rbx, %rdi
callq 0x33f0
jmp 0x5ce3
leaq -0x70(%rbp), %rdx
movl $0x4, (%rdx)
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x28(%rax)
testb %al, %al
je 0x5be0
movb $0x0, -0x96(%rbp)
movw $0x4b4f, -0x98(%rbp)    # imm = 0x4B4F
movl $0xffff3cb0, %eax       # imm = 0xFFFF3CB0
addl (%rbx), %eax
cmpl $0x14c08, %eax          # imm = 0x14C08
ja 0x5c8f
movq 0x48(%r14), %rdi
leaq -0x70(%rbp), %rdx
movl $0x3, (%rdx)
movq (%rdi), %rax
leaq -0x98(%rbp), %rsi
callq *0x20(%rax)
movq 0x7528(%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, %rbx
leaq -0x88(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x381d(%rip), %rsi      # 0x9308
leaq 0x3832(%rip), %rdx      # 0x9324
leaq -0x98(%rbp), %rdi
callq 0x376e
movb $0x1, %r12b
leaq -0x98(%rbp), %rsi
movq %rbx, %rdi
callq 0x35f8
xorl %r12d, %r12d
leaq 0x725e(%rip), %rsi      # 0xcd78
leaq 0x28e7(%rip), %rdx      # 0x8408
movq %rbx, %rdi
callq 0x33f0
jmp 0x5ce3
movl $0x20, %edi
callq 0x3160
movq %rax, %rbx
leaq -0x60(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x375e(%rip), %rsi      # 0x92a8
leaq 0x3773(%rip), %rdx      # 0x92c4
leaq -0x70(%rbp), %rdi
callq 0x376e
movb $0x1, %r12b
leaq -0x70(%rbp), %rsi
movq %rbx, %rdi
callq 0x35f8
xorl %r12d, %r12d
leaq 0x7205(%rip), %rsi      # 0xcd78
leaq 0x288e(%rip), %rdx      # 0x8408
movq %rbx, %rdi
callq 0x33f0
jmp 0x5ce3
movl $0x20, %edi
callq 0x3160
movq %rax, %rbx
leaq -0x60(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x3838(%rip), %rsi      # 0x93db
leaq 0x384d(%rip), %rdx      # 0x93f7
leaq -0x70(%rbp), %rdi
callq 0x376e
movb $0x1, %r12b
leaq -0x70(%rbp), %rsi
movq %rbx, %rdi
callq 0x35f8
xorl %r12d, %r12d
leaq 0x71ac(%rip), %rsi      # 0xcd78
leaq 0x2835(%rip), %rdx      # 0x8408
movq %rbx, %rdi
callq 0x33f0
jmp 0x5ce3
movl $0x20, %edi
callq 0x3160
movq %rax, %rbx
leaq -0x60(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x37df(%rip), %rsi      # 0x93db
leaq 0x37f4(%rip), %rdx      # 0x93f7
leaq -0x70(%rbp), %rdi
callq 0x376e
movb $0x1, %r12b
leaq -0x70(%rbp), %rsi
movq %rbx, %rdi
callq 0x35f8
xorl %r12d, %r12d
leaq 0x7153(%rip), %rsi      # 0xcd78
leaq 0x27dc(%rip), %rdx      # 0x8408
movq %rbx, %rdi
callq 0x33f0
jmp 0x5ce3
movl $0x20, %edi
callq 0x3160
movq %rax, %rbx
leaq -0x60(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x3786(%rip), %rsi      # 0x93db
leaq 0x379b(%rip), %rdx      # 0x93f7
leaq -0x70(%rbp), %rdi
callq 0x376e
movb $0x1, %r12b
leaq -0x70(%rbp), %rsi
movq %rbx, %rdi
callq 0x35f8
xorl %r12d, %r12d
leaq 0x70fa(%rip), %rsi      # 0xcd78
leaq 0x2783(%rip), %rdx      # 0x8408
movq %rbx, %rdi
callq 0x33f0
jmp 0x5ce3
movl $0x20, %edi
callq 0x3160
movq %rax, %rbx
leaq -0x60(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x3730(%rip), %rsi      # 0x93db
leaq 0x3745(%rip), %rdx      # 0x93f7
leaq -0x70(%rbp), %rdi
callq 0x376e
movb $0x1, %r12b
leaq -0x70(%rbp), %rsi
movq %rbx, %rdi
callq 0x35f8
xorl %r12d, %r12d
leaq 0x70a4(%rip), %rsi      # 0xcd78
leaq 0x272d(%rip), %rdx      # 0x8408
movq %rbx, %rdi
callq 0x33f0
jmp 0x5cfb
jmp 0x5d38
jmp 0x5cfb
jmp 0x5cfb
jmp 0x5d38
jmp 0x5d38
jmp 0x5cfb
jmp 0x5cfb
jmp 0x5d38
jmp 0x5d38
jmp 0x5cfb
jmp 0x5d38
movq %rax, %r14
movq -0x70(%rbp), %rdi
cmpq %r15, %rdi
je 0x5d31
movq -0x60(%rbp), %rsi
jmp 0x5d29
jmp 0x5d38
jmp 0x5d13
jmp 0x5d38
movq %rax, %r14
movq -0x98(%rbp), %rdi
cmpq %r15, %rdi
je 0x5d31
movq -0x88(%rbp), %rsi
incq %rsi
callq 0x3280
testb %r12b, %r12b
jne 0x5d3b
jmp 0x5d79
movq %rax, %r14
movq %rbx, %rdi
callq 0x31e0
jmp 0x5d79
jmp 0x5d69
movq %rax, %r14
movl $0x30, %esi
jmp 0x5d71
jmp 0x5d5f
jmp 0x5d69
movq %rax, %r14
movl $0x38, %esi
jmp 0x5d71
movq %rax, %r14
movl $0x48, %esi
jmp 0x5d71
movq %rax, %r14
movl $0x40, %esi
movq %rbx, %rdi
callq 0x3280
movq %r14, %rdi
callq 0x3400
nop