// File: /workspace/github_cpp_makefile_star2_O2/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, %r12
movq 0x703e(%rip), %r15      # 0xbfd0
movq (%r15), %rdi
xorl %r14d, %r14d
xorl %esi, %esi
callq 0x31b0
movups 0x31c8(%rip), %xmm0     # 0x816e
leaq -0xc0(%rbp), %r13
movups %xmm0, 0xe(%r13)
movaps 0x31a7(%rip), %xmm0     # 0x8160
movaps %xmm0, (%r13)
leaq 0x31bb(%rip), %rsi      # 0x8180
leaq -0x160(%rbp), %rdi
movl $0x96, %edx
callq 0x3210
leaq -0x2c(%rbp), %r8
andl $0x0, (%r8)
leaq -0x80(%rbp), %rbx
movl $0x3, (%rbx)
movq %r12, -0x40(%rbp)
movq %r12, %rdi
leaq -0x160(%rbp), %rsi
movq %r13, %r12
movq %r13, %rdx
movq %rbx, %rcx
movq %r8, %r13
callq 0x6ecc
movq (%r15), %rdi
callq 0x3100
movl %eax, %r15d
cmpl $0x103, %eax            # imm = 0x103
je 0x5027
cmpl $0x102, %r15d           # imm = 0x102
jne 0x503b
incl %r14d
jmp 0x502b
addl $0x2, %r14d
movl %r14d, %eax
xorl %edx, %edx
pushq $0x3
popq %rcx
divl %ecx
movl %edx, %r14d
movl %edx, -0x2c(%rbp)
movl $0x3, -0x80(%rbp)
movq -0x40(%rbp), %rdi
leaq -0x160(%rbp), %rsi
movq %r12, %rdx
movq %rbx, %rcx
movq %r13, %r8
callq 0x6ecc
cmpl $0xa, %r15d
movq 0x6f6a(%rip), %r15      # 0xbfd0
jne 0x5007
cmpl $0x2, %r14d
je 0x508b
cmpl $0x1, %r14d
jne 0x52c3
movabsq $0x200000002, %rax      # imm = 0x200000002
movq -0x40(%rbp), %r14
jmp 0x52d1
movabsq $0x300000002, %rax      # imm = 0x300000002
movq -0x40(%rbp), %rdi
movq %rax, 0x10(%rdi)
movups 0x31a1(%rip), %xmm0     # 0x8245
leaq -0xc0(%rbp), %rdx
movaps %xmm0, (%rdx)
movabsq $0x3a6e6f69746365, %rax # imm = 0x3A6E6F69746365
movq %rax, 0xf(%rdx)
movups 0x3199(%rip), %xmm0     # 0x825c
leaq -0x160(%rbp), %rsi
movaps %xmm0, (%rsi)
movups 0x3194(%rip), %xmm0     # 0x8268
movups %xmm0, 0xc(%rsi)
movups 0x3199(%rip), %xmm0     # 0x8278
movups %xmm0, 0x1e(%rsi)
leaq -0x2c(%rbp), %r8
andl $0x0, (%r8)
movups 0x3192(%rip), %xmm0     # 0x8284
movups %xmm0, 0x2a(%rsi)
leaq -0x80(%rbp), %r15
movl $0x2, (%r15)
movq %rdx, %rbx
movq %r15, %rcx
movq %r8, %r12
callq 0x6ecc
xorl %r14d, %r14d
movq 0x6eb7(%rip), %rax      # 0xbfd0
movq (%rax), %rdi
callq 0x3100
movl %eax, %r13d
movl %r14d, %eax
notl %eax
cmpl $0x103, %r13d           # imm = 0x103
je 0x513b
cmpl $0x102, %r13d           # imm = 0x102
jne 0x5144
andl $0x1, %eax
movl %eax, -0x2c(%rbp)
movl %eax, %r14d
movl $0x2, -0x80(%rbp)
movq -0x40(%rbp), %rdi
leaq -0x160(%rbp), %rsi
movq %rbx, %rdx
movq %r15, %rcx
movq %r12, %r8
callq 0x6ecc
cmpl $0xa, %r13d
jne 0x5112
testl %r14d, %r14d
je 0x545f
xorps %xmm0, %xmm0
movaps %xmm0, -0x60(%rbp)
movaps %xmm0, -0x70(%rbp)
andw $0x0, -0x50(%rbp)
movaps %xmm0, -0x80(%rbp)
movq -0x40(%rbp), %r14
movb $0x0, 0x18(%r14)
leaq -0xc0(%rbp), %rdx
movw $0x20, (%rdx)
leaq -0xa0(%rbp), %rcx
andl $0x0, (%rcx)
leaq -0x160(%rbp), %rsi
leaq -0x2c(%rbp), %r8
movq %r14, %rdi
callq 0x6ecc
callq 0x30d0
movq 0x6e0b(%rip), %r15      # 0xbfd0
movq (%r15), %rdi
pushq $0xc
popq %rsi
pushq $0x14
popq %rdx
callq 0x32b0
cmpl $-0x1, %eax
je 0x51ea
movq (%r15), %rdi
leaq 0x3103(%rip), %rsi      # 0x82e5
pushq $-0x1
popq %rdx
callq 0x30e0
leaq 0x3106(%rip), %rdi      # 0x82f7
leaq -0x80(%rbp), %rsi
xorl %eax, %eax
callq 0x31c0
movq (%r15), %rdi
pushq $0xe
popq %rsi
pushq $0x14
popq %rdx
callq 0x32b0
cmpl $-0x1, %eax
je 0x5221
movq (%r15), %rdi
leaq 0x30e1(%rip), %rsi      # 0x82fa
pushq $-0x1
popq %rdx
callq 0x30e0
leaq 0x307d(%rip), %rdi      # 0x82a5
leaq -0x30(%rbp), %rsi
xorl %eax, %eax
callq 0x31c0
pushq $0x30
popq %rdi
callq 0x3280
movq %rax, %rbx
movq %rax, %rdi
callq 0x4a74
movq %rbx, 0x48(%r14)
movq (%rbx), %rax
leaq -0x30(%rbp), %rsi
leaq -0x80(%rbp), %rdx
movq %rbx, %rdi
callq *0x10(%rax)
testb %al, %al
je 0x57a4
movq 0x48(%r14), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
testb %al, %al
jne 0x52d5
pushq $0x20
popq %rdi
callq 0x3180
movq %rax, %rbx
leaq 0x3042(%rip), %rsi      # 0x82c5
leaq -0xa0(%rbp), %rdi
leaq -0x31(%rbp), %rdx
callq 0x369c
movb $0x1, %r15b
leaq -0xa0(%rbp), %rsi
movq %rbx, %rdi
callq 0x361a
xorl %r15d, %r15d
leaq 0x6ac9(%rip), %rsi      # 0xbd78
leaq 0x2a98(%rip), %rdx      # 0x7d4e
movq %rbx, %rdi
callq 0x3410
jmp 0x596d
movq -0x40(%rbp), %r14
movabsq $0x100000001, %rax      # imm = 0x100000001
movq %rax, 0x10(%r14)
cmpb $0x1, 0x18(%r14)
jne 0x5428
movups 0x303e(%rip), %xmm0     # 0x8325
leaq -0xc0(%rbp), %rdx
movaps %xmm0, (%rdx)
movabsq $0x3a79746c756369, %rax # imm = 0x3A79746C756369
movq %rax, 0xf(%rdx)
movups 0x3036(%rip), %xmm0     # 0x833c
leaq -0x160(%rbp), %r15
movaps %xmm0, (%r15)
movups 0x3030(%rip), %xmm0     # 0x8348
movups %xmm0, 0xc(%r15)
movups 0x3034(%rip), %xmm0     # 0x8358
movups %xmm0, 0x1e(%r15)
movups 0x3034(%rip), %xmm0     # 0x8364
movups %xmm0, 0x2a(%r15)
movups 0x3038(%rip), %xmm0     # 0x8374
movups %xmm0, 0x3c(%r15)
movups 0x3038(%rip), %xmm0     # 0x8380
movups %xmm0, 0x48(%r15)
movups 0x3048(%rip), %xmm0     # 0x839c
movups %xmm0, 0x66(%r15)
movups 0x3030(%rip), %xmm0     # 0x8390
movups %xmm0, 0x5a(%r15)
movups 0x304c(%rip), %xmm0     # 0x83b8
movups %xmm0, 0x84(%r15)
leaq -0x2c(%rbp), %r12
andl $0x0, (%r12)
movups 0x3028(%rip), %xmm0     # 0x83ac
movups %xmm0, 0x78(%r15)
leaq -0x80(%rbp), %r13
movl $0x5, (%r13)
movq %r14, %rdi
movq %r15, %rsi
movq %r13, %rcx
movq %r12, %r8
callq 0x6ecc
xorl %ebx, %ebx
movq 0x6c21(%rip), %rax      # 0xbfd0
movq (%rax), %rdi
callq 0x3100
movl %eax, %r14d
cmpl $0x102, %eax            # imm = 0x102
je 0x53cf
cmpl $0x103, %r14d           # imm = 0x103
jne 0x53df
addl $0x4, %ebx
jmp 0x53d1
incl %ebx
movl %ebx, %eax
xorl %edx, %edx
pushq $0x5
popq %rcx
divl %ecx
movl %edx, %ebx
movl %edx, -0x2c(%rbp)
movl $0x5, -0x80(%rbp)
movq -0x40(%rbp), %rdi
movq %r15, %rsi
leaq -0xc0(%rbp), %rdx
movq %r13, %rcx
movq %r12, %r8
callq 0x6ecc
cmpl $0xa, %r14d
jne 0x53a8
movl %ebx, %eax
leaq 0x2d12(%rip), %rcx      # 0x8120
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
movq -0x40(%rbp), %r14
jmpq *%rax
movl $0x20f58, 0x1c(%r14)    # imm = 0x20F58
jmp 0x5568
movups 0x2f99(%rip), %xmm0     # 0x83c8
leaq -0xc0(%rbp), %rdx
movaps %xmm0, (%rdx)
movl $0x2e2e2e, 0xf(%rdx)    # imm = 0x2E2E2E
leaq -0x80(%rbp), %rcx
andl $0x0, (%rcx)
leaq -0x160(%rbp), %rsi
leaq -0x2c(%rbp), %r8
movq %r14, %rdi
callq 0x6ecc
jmp 0x556f
callq 0x3090
movl $0x3e8, %ecx            # imm = 0x3E8
cltd
idivl %ecx
addl $0xc350, %edx           # imm = 0xC350
movl %edx, -0x30(%rbp)
leaq 0x2e18(%rip), %rsi      # 0x8294
leaq -0xc0(%rbp), %rbx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x3060
leaq -0x80(%rbp), %rcx
andl $0x0, (%rcx)
leaq -0x160(%rbp), %rsi
leaq -0x2c(%rbp), %r8
movq -0x40(%rbp), %r14
movq %r14, %rdi
movq %rbx, %rdx
callq 0x6ecc
pushq $0x40
popq %rdi
callq 0x3280
movq %rax, %rbx
movq %rax, %rdi
callq 0x4950
movq 0x6b08(%rip), %r15      # 0xbfd0
movq %rbx, 0x48(%r14)
movq (%rbx), %rax
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
xorl %edx, %edx
callq *0x10(%rax)
testb %al, %al
je 0x57f6
movq 0x48(%r14), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
testb %al, %al
jne 0x52d5
pushq $0x20
popq %rdi
callq 0x3180
movq %rax, %rbx
leaq 0x2dbe(%rip), %rsi      # 0x82c5
leaq -0x80(%rbp), %rdi
leaq -0xa0(%rbp), %rdx
callq 0x369c
movb $0x1, %r15b
leaq -0x80(%rbp), %rsi
movq %rbx, %rdi
callq 0x361a
xorl %r15d, %r15d
leaq 0x6848(%rip), %rsi      # 0xbd78
leaq 0x2817(%rip), %rdx      # 0x7d4e
movq %rbx, %rdi
callq 0x3410
jmp 0x596d
movl $0xc350, 0x1c(%r14)     # imm = 0xC350
jmp 0x5568
movl $0x15f90, 0x1c(%r14)    # imm = 0x15F90
movl $0xfde8, 0x1c(%r14)     # imm = 0xFDE8
jmp 0x5568
movl $0x1c138, 0x1c(%r14)    # imm = 0x1C138
movq 0x6a61(%rip), %r15      # 0xbfd0
movl 0x14(%r14), %eax
cmpl $0x3, %eax
je 0x55f3
cmpl $0x2, %eax
je 0x55a5
cmpl $0x1, %eax
jne 0x5782
pushq $0x38
popq %rdi
callq 0x3280
movq %rax, %rbx
movq %rax, %rdi
callq 0x3d18
movq 0x30(%r14), %rax
movq %rbx, (%rax)
jmp 0x5782
pushq $0x40
popq %rdi
callq 0x3280
movq %rax, %rbx
leaq -0x80(%rbp), %rsi
movl $0x1, (%rsi)
movq %rax, %rdi
callq 0x4164
movq 0x30(%r14), %rax
movq %rbx, (%rax)
pushq $0x40
popq %rdi
callq 0x3280
movq %rax, %rbx
leaq -0x80(%rbp), %rsi
movl $0x2, (%rsi)
movq %rax, %rdi
callq 0x4164
movq 0x30(%r14), %rax
movq %rbx, 0x8(%rax)
jmp 0x5782
movq %r14, %r12
addq $0x18, %r14
pushq $0x48
popq %rdi
callq 0x3280
movq %rax, %rbx
leaq -0x80(%rbp), %rsi
movl $0x1, (%rsi)
movq 0x48(%r12), %rdx
movq %rax, %rdi
movq %r14, %rcx
callq 0x46dc
movq 0x30(%r12), %rax
movq %rbx, (%rax)
pushq $0x48
popq %rdi
callq 0x3280
movq %rax, %rbx
leaq -0x80(%rbp), %rsi
movl $0x2, (%rsi)
movq 0x48(%r12), %rdx
movb 0x18(%r12), %al
xorb $0x1, %al
leaq -0xa0(%rbp), %rcx
movb %al, (%rcx)
movq %rbx, %rdi
callq 0x46dc
movq %r12, %r14
movq 0x30(%r12), %rax
movq %rbx, 0x8(%rax)
movb $0x0, -0x9e(%rbp)
andw $0x0, -0xa0(%rbp)
movq 0x48(%r12), %rdi
leaq 0x1c(%r12), %rbx
cmpb $0x1, 0x18(%r12)
jne 0x572a
leaq -0x80(%rbp), %rdx
movl $0x4, (%rdx)
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x20(%rax)
testb %al, %al
je 0x5845
movq 0x48(%r14), %rdi
leaq -0x80(%rbp), %rdx
movl $0x3, (%rdx)
movq (%rdi), %rax
leaq -0xa0(%rbp), %rsi
callq *0x28(%rax)
testb %al, %al
je 0x58dd
cmpb $0x4f, -0xa0(%rbp)
jne 0x56de
cmpb $0x4b, -0x9f(%rbp)
je 0x5782
pushq $0x20
popq %rdi
callq 0x3180
movq %rax, %rbx
leaq 0x2ceb(%rip), %rsi      # 0x83db
leaq -0x80(%rbp), %rdi
leaq -0x30(%rbp), %rdx
callq 0x369c
movb $0x1, %r15b
leaq -0x80(%rbp), %rsi
movq %rbx, %rdi
callq 0x361a
xorl %r15d, %r15d
leaq 0x6662(%rip), %rsi      # 0xbd78
leaq 0x2631(%rip), %rdx      # 0x7d4e
movq %rbx, %rdi
callq 0x3410
jmp 0x596d
leaq -0x80(%rbp), %rdx
movl $0x4, (%rdx)
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x28(%rax)
testb %al, %al
je 0x5891
movb $0x0, -0x9e(%rbp)
movw $0x4b4f, -0xa0(%rbp)    # imm = 0x4B4F
movl $0xffff3cb0, %eax       # imm = 0xFFFF3CB0
addl (%rbx), %eax
cmpl $0x14c08, %eax          # imm = 0x14C08
ja 0x5926
movq 0x48(%r14), %rdi
leaq -0x80(%rbp), %rdx
movl $0x3, (%rdx)
movq (%rdi), %rax
leaq -0xa0(%rbp), %rsi
callq *0x20(%rax)
callq 0x3300
movq (%r15), %rdi
pushq $0x1
popq %rsi
callq 0x31b0
addq $0x138, %rsp            # imm = 0x138
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x20
popq %rdi
callq 0x3180
movq %rax, %rbx
leaq 0x2b52(%rip), %rsi      # 0x8308
leaq -0xa0(%rbp), %rdi
leaq -0x31(%rbp), %rdx
callq 0x369c
movb $0x1, %r15b
leaq -0xa0(%rbp), %rsi
movq %rbx, %rdi
callq 0x361a
xorl %r15d, %r15d
leaq 0x6596(%rip), %rsi      # 0xbd78
leaq 0x2565(%rip), %rdx      # 0x7d4e
movq %rbx, %rdi
callq 0x3410
jmp 0x596d
pushq $0x20
popq %rdi
callq 0x3180
movq %rax, %rbx
leaq 0x2aa0(%rip), %rsi      # 0x82a8
leaq -0x80(%rbp), %rdi
leaq -0xa0(%rbp), %rdx
callq 0x369c
movb $0x1, %r15b
leaq -0x80(%rbp), %rsi
movq %rbx, %rdi
callq 0x361a
xorl %r15d, %r15d
leaq 0x6547(%rip), %rsi      # 0xbd78
leaq 0x2516(%rip), %rdx      # 0x7d4e
movq %rbx, %rdi
callq 0x3410
jmp 0x596d
pushq $0x20
popq %rdi
callq 0x3180
movq %rax, %rbx
leaq 0x2b84(%rip), %rsi      # 0x83db
leaq -0x80(%rbp), %rdi
leaq -0x30(%rbp), %rdx
callq 0x369c
movb $0x1, %r15b
leaq -0x80(%rbp), %rsi
movq %rbx, %rdi
callq 0x361a
xorl %r15d, %r15d
leaq 0x64fb(%rip), %rsi      # 0xbd78
leaq 0x24ca(%rip), %rdx      # 0x7d4e
movq %rbx, %rdi
callq 0x3410
jmp 0x596d
pushq $0x20
popq %rdi
callq 0x3180
movq %rax, %rbx
leaq 0x2b38(%rip), %rsi      # 0x83db
leaq -0x80(%rbp), %rdi
leaq -0x30(%rbp), %rdx
callq 0x369c
movb $0x1, %r15b
leaq -0x80(%rbp), %rsi
movq %rbx, %rdi
callq 0x361a
xorl %r15d, %r15d
leaq 0x64af(%rip), %rsi      # 0xbd78
leaq 0x247e(%rip), %rdx      # 0x7d4e
movq %rbx, %rdi
callq 0x3410
jmp 0x596d
pushq $0x20
popq %rdi
callq 0x3180
movq %rax, %rbx
leaq 0x2aec(%rip), %rsi      # 0x83db
leaq -0x80(%rbp), %rdi
leaq -0x30(%rbp), %rdx
callq 0x369c
movb $0x1, %r15b
leaq -0x80(%rbp), %rsi
movq %rbx, %rdi
callq 0x361a
xorl %r15d, %r15d
leaq 0x6463(%rip), %rsi      # 0xbd78
leaq 0x2432(%rip), %rdx      # 0x7d4e
movq %rbx, %rdi
callq 0x3410
jmp 0x596d
pushq $0x20
popq %rdi
callq 0x3180
movq %rax, %rbx
leaq 0x2aa3(%rip), %rsi      # 0x83db
leaq -0x80(%rbp), %rdi
leaq -0x30(%rbp), %rdx
callq 0x369c
movb $0x1, %r15b
leaq -0x80(%rbp), %rsi
movq %rbx, %rdi
callq 0x361a
xorl %r15d, %r15d
leaq 0x641a(%rip), %rsi      # 0xbd78
leaq 0x23e9(%rip), %rdx      # 0x7d4e
movq %rbx, %rdi
callq 0x3410
jmp 0x5985
jmp 0x59aa
jmp 0x5985
jmp 0x5985
jmp 0x59aa
jmp 0x59aa
jmp 0x5985
jmp 0x5985
jmp 0x59aa
jmp 0x59aa
jmp 0x5985
jmp 0x59aa
movq %rax, %r14
leaq -0x80(%rbp), %rdi
jmp 0x599e
jmp 0x59aa
jmp 0x5994
jmp 0x59aa
movq %rax, %r14
leaq -0xa0(%rbp), %rdi
callq 0x3150
testb %r15b, %r15b
jne 0x59ad
jmp 0x59e0
movq %rax, %r14
movq %rbx, %rdi
callq 0x31f0
jmp 0x59e0
jmp 0x59d2
movq %rax, %r14
pushq $0x30
jmp 0x59d7
jmp 0x59cb
jmp 0x59d2
movq %rax, %r14
pushq $0x38
jmp 0x59d7
movq %rax, %r14
pushq $0x48
jmp 0x59d7
movq %rax, %r14
pushq $0x40
popq %rsi
movq %rbx, %rdi
callq 0x32a0
movq %r14, %rdi
callq 0x3420