// File: /workspace/github_c_makefile_star2_O0/FH0[P]tun_direct/lwip-2.1.2/src/core/ipv6/nd6.c
// Function: nd6_get_next_hop_entry
static s8_t
nd6_get_next_hop_entry(const ip6_addr_t *ip6addr, struct netif *netif)
{
#ifdef LWIP_HOOK_ND6_GET_GW
  const ip6_addr_t *next_hop_addr;
#endif /* LWIP_HOOK_ND6_GET_GW */
  s8_t i;
  s16_t dst_idx;

  IP6_ADDR_ZONECHECK_NETIF(ip6addr, netif);

#if LWIP_NETIF_HWADDRHINT
  if (netif->hints != NULL) {
    /* per-pcb cached entry was given */
    netif_addr_idx_t addr_hint = netif->hints->addr_hint;
    if (addr_hint < LWIP_ND6_NUM_DESTINATIONS) {
      nd6_cached_destination_index = addr_hint;
    }
  }
#endif /* LWIP_NETIF_HWADDRHINT */

  /* Look for ip6addr in destination cache. */
  if (ip6_addr_cmp(ip6addr, &(destination_cache[nd6_cached_destination_index].destination_addr))) {
    /* the cached entry index is the right one! */
    /* do nothing. */
    ND6_STATS_INC(nd6.cachehit);
  } else {
    /* Search destination cache. */
    dst_idx = nd6_find_destination_cache_entry(ip6addr);
    if (dst_idx >= 0) {
      /* found destination entry. make it our new cached index. */
      LWIP_ASSERT("type overflow", (size_t)dst_idx < NETIF_ADDR_IDX_MAX);
      nd6_cached_destination_index = (netif_addr_idx_t)dst_idx;
    } else {
      /* Not found. Create a new destination entry. */
      dst_idx = nd6_new_destination_cache_entry();
      if (dst_idx >= 0) {
        /* got new destination entry. make it our new cached index. */
        LWIP_ASSERT("type overflow", (size_t)dst_idx < NETIF_ADDR_IDX_MAX);
        nd6_cached_destination_index = (netif_addr_idx_t)dst_idx;
      } else {
        /* Could not create a destination cache entry. */
        return ERR_MEM;
      }

      /* Copy dest address to destination cache. */
      ip6_addr_set(&(destination_cache[nd6_cached_destination_index].destination_addr), ip6addr);

      /* Now find the next hop. is it a neighbor? */
      if (ip6_addr_islinklocal(ip6addr) ||
          nd6_is_prefix_in_netif(ip6addr, netif)) {
        /* Destination in local link. */
        destination_cache[nd6_cached_destination_index].pmtu = netif_mtu6(netif);
        ip6_addr_copy(destination_cache[nd6_cached_destination_index].next_hop_addr, destination_cache[nd6_cached_destination_index].destination_addr);
#ifdef LWIP_HOOK_ND6_GET_GW
      } else if ((next_hop_addr = LWIP_HOOK_ND6_GET_GW(netif, ip6addr)) != NULL) {
        /* Next hop for destination provided by hook function. */
        destination_cache[nd6_cached_destination_index].pmtu = netif->mtu;
        ip6_addr_set(&destination_cache[nd6_cached_destination_index].next_hop_addr, next_hop_addr);
#endif /* LWIP_HOOK_ND6_GET_GW */
      } else {
        /* We need to select a router. */
        i = nd6_select_router(ip6addr, netif);
        if (i < 0) {
          /* No router found. */
          ip6_addr_set_any(&(destination_cache[nd6_cached_destination_index].destination_addr));
          return ERR_RTE;
        }
        destination_cache[nd6_cached_destination_index].pmtu = netif_mtu6(netif); /* Start with netif mtu, correct through ICMPv6 if necessary */
        ip6_addr_copy(destination_cache[nd6_cached_destination_index].next_hop_addr, default_router_list[i].neighbor_entry->next_hop_address);
      }
    }
  }

#if LWIP_NETIF_HWADDRHINT
  if (netif->hints != NULL) {
    /* per-pcb cached entry was given */
    netif->hints->addr_hint = nd6_cached_destination_index;
  }
#endif /* LWIP_NETIF_HWADDRHINT */

  /* Look in neighbor cache for the next-hop address. */
  if (ip6_addr_cmp(&(destination_cache[nd6_cached_destination_index].next_hop_addr),
                   &(neighbor_cache[nd6_cached_neighbor_index].next_hop_address))) {
    /* Cache hit. */
    /* Do nothing. */
    ND6_STATS_INC(nd6.cachehit);
  } else {
    i = nd6_find_neighbor_cache_entry(&(destination_cache[nd6_cached_destination_index].next_hop_addr));
    if (i >= 0) {
      /* Found a matching record, make it new cached entry. */
      nd6_cached_neighbor_index = i;
    } else {
      /* Neighbor not in cache. Make a new entry. */
      i = nd6_new_neighbor_cache_entry();
      if (i >= 0) {
        /* got new neighbor entry. make it our new cached index. */
        nd6_cached_neighbor_index = i;
      } else {
        /* Could not create a neighbor cache entry. */
        return ERR_MEM;
      }

      /* Initialize fields. */
      ip6_addr_copy(neighbor_cache[i].next_hop_address,
                   destination_cache[nd6_cached_destination_index].next_hop_addr);
      neighbor_cache[i].isrouter = 0;
      neighbor_cache[i].netif = netif;
      neighbor_cache[i].state = ND6_INCOMPLETE;
      neighbor_cache[i].counter.probes_sent = 1;
      nd6_send_neighbor_cache_probe(&neighbor_cache[i], ND6_SEND_FLAG_MULTICAST_DEST);
    }
  }

  /* Reset this destination's age. */
  destination_cache[nd6_cached_destination_index].age = 0;

  return nd6_cached_neighbor_index;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %eax
movzbl 0xc1c4(%rip), %ecx      # 0x2ff51
movl %ecx, %edx
leaq 0xbfda(%rip), %rcx      # 0x2fd70
imulq $0x30, %rdx, %rdx
addq %rdx, %rcx
cmpl (%rcx), %eax
jne 0x23e3a
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
movzbl 0xc19e(%rip), %ecx      # 0x2ff51
movl %ecx, %edx
leaq 0xbfb4(%rip), %rcx      # 0x2fd70
imulq $0x30, %rdx, %rdx
addq %rdx, %rcx
cmpl 0x4(%rcx), %eax
jne 0x23e3a
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
movzbl 0xc17b(%rip), %ecx      # 0x2ff51
movl %ecx, %edx
leaq 0xbf91(%rip), %rcx      # 0x2fd70
imulq $0x30, %rdx, %rdx
addq %rdx, %rcx
cmpl 0x8(%rcx), %eax
jne 0x23e3a
movq -0x10(%rbp), %rax
movl 0xc(%rax), %eax
movzbl 0xc158(%rip), %ecx      # 0x2ff51
movl %ecx, %edx
leaq 0xbf6e(%rip), %rcx      # 0x2fd70
imulq $0x30, %rdx, %rdx
addq %rdx, %rcx
cmpl 0xc(%rcx), %eax
jne 0x23e3a
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
movzbl 0xc134(%rip), %ecx      # 0x2ff51
movl %ecx, %edx
leaq 0xbf4a(%rip), %rcx      # 0x2fd70
imulq $0x30, %rdx, %rdx
addq %rdx, %rcx
movzbl 0x10(%rcx), %ecx
cmpl %ecx, %eax
jne 0x23e3a
jmp 0x2434e
movq -0x10(%rbp), %rdi
callq 0x227e0
movw %ax, -0x1c(%rbp)
movswl -0x1c(%rbp), %eax
cmpl $0x0, %eax
jl 0x23e9f
jmp 0x23e52
movswq -0x1c(%rbp), %rax
cmpq $0x7f, %rax
jb 0x23e8e
jmp 0x23e5f
leaq 0x3466(%rip), %rdi      # 0x272cc
leaq 0x5e59(%rip), %rsi      # 0x29cc6
movl $0x7a2, %edx            # imm = 0x7A2
leaq 0x5dce(%rip), %rcx      # 0x29c47
movb $0x0, %al
callq 0x20d0
xorl %eax, %eax
movl %eax, %edi
callq 0x21b0
callq 0x2040
jmp 0x23e90
movw -0x1c(%rbp), %ax
movb %al, 0xc0b7(%rip)       # 0x2ff51
jmp 0x2434c
callq 0x24ec0
movw %ax, -0x1c(%rbp)
movswl -0x1c(%rbp), %eax
cmpl $0x0, %eax
jl 0x23efd
jmp 0x23eb3
movswq -0x1c(%rbp), %rax
cmpq $0x7f, %rax
jb 0x23eef
jmp 0x23ec0
leaq 0x3405(%rip), %rdi      # 0x272cc
leaq 0x5df8(%rip), %rsi      # 0x29cc6
movl $0x7a9, %edx            # imm = 0x7A9
leaq 0x5d6d(%rip), %rcx      # 0x29c47
movb $0x0, %al
callq 0x20d0
xorl %eax, %eax
movl %eax, %edi
callq 0x21b0
callq 0x2040
jmp 0x23ef1
movw -0x1c(%rbp), %ax
movb %al, 0xc056(%rip)       # 0x2ff51
jmp 0x23f06
movb $-0x1, -0x1(%rbp)
jmp 0x24663
jmp 0x23f08
cmpq $0x0, -0x10(%rbp)
jne 0x23f16
xorl %eax, %eax
movl %eax, -0x20(%rbp)
jmp 0x23f1f
movq -0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x20(%rbp)
movl -0x20(%rbp), %ecx
movzbl 0xc028(%rip), %eax      # 0x2ff51
movl %eax, %edx
leaq 0xbe3e(%rip), %rax      # 0x2fd70
imulq $0x30, %rdx, %rdx
addq %rdx, %rax
movl %ecx, (%rax)
cmpq $0x0, -0x10(%rbp)
jne 0x23f49
xorl %eax, %eax
movl %eax, -0x24(%rbp)
jmp 0x23f53
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %ecx
movzbl 0xbff4(%rip), %eax      # 0x2ff51
movl %eax, %edx
leaq 0xbe0a(%rip), %rax      # 0x2fd70
imulq $0x30, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x4(%rax)
cmpq $0x0, -0x10(%rbp)
jne 0x23f7e
xorl %eax, %eax
movl %eax, -0x28(%rbp)
jmp 0x23f88
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %ecx
movzbl 0xbfbf(%rip), %eax      # 0x2ff51
movl %eax, %edx
leaq 0xbdd5(%rip), %rax      # 0x2fd70
imulq $0x30, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x8(%rax)
cmpq $0x0, -0x10(%rbp)
jne 0x23fb3
xorl %eax, %eax
movl %eax, -0x2c(%rbp)
jmp 0x23fbd
movq -0x10(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x2c(%rbp)
movl -0x2c(%rbp), %ecx
movzbl 0xbf8a(%rip), %eax      # 0x2ff51
movl %eax, %edx
leaq 0xbda0(%rip), %rax      # 0x2fd70
imulq $0x30, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0xc(%rax)
cmpq $0x0, -0x10(%rbp)
jne 0x23fe8
xorl %eax, %eax
movl %eax, -0x30(%rbp)
jmp 0x23ff3
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
movl %eax, -0x30(%rbp)
movl -0x30(%rbp), %eax
movb %al, %cl
movzbl 0xbf52(%rip), %eax      # 0x2ff51
movl %eax, %edx
leaq 0xbd68(%rip), %rax      # 0x2fd70
imulq $0x30, %rdx, %rdx
addq %rdx, %rax
movb %cl, 0x10(%rax)
movq -0x10(%rbp), %rax
movl (%rax), %eax
andq $0xc0ff, %rax           # imm = 0xC0FF
cmpq $0x80fe, %rax           # imm = 0x80FE
je 0x2403c
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x24fd0
cmpl $0x0, %eax
je 0x2416a
movq -0x18(%rbp), %rax
movw 0xe2(%rax), %cx
movzbl 0xbf03(%rip), %eax      # 0x2ff51
movl %eax, %edx
leaq 0xbd19(%rip), %rax      # 0x2fd70
imulq $0x30, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0x28(%rax)
movzbl 0xbee8(%rip), %eax      # 0x2ff51
movl %eax, %ecx
leaq 0xbcfe(%rip), %rax      # 0x2fd70
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
movzbl 0xbecf(%rip), %eax      # 0x2ff51
movl %eax, %edx
leaq 0xbce5(%rip), %rax      # 0x2fd70
imulq $0x30, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x14(%rax)
movzbl 0xbeb5(%rip), %eax      # 0x2ff51
movl %eax, %ecx
leaq 0xbccb(%rip), %rax      # 0x2fd70
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %ecx
movzbl 0xbe9b(%rip), %eax      # 0x2ff51
movl %eax, %edx
leaq 0xbcb1(%rip), %rax      # 0x2fd70
imulq $0x30, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x18(%rax)
movzbl 0xbe81(%rip), %eax      # 0x2ff51
movl %eax, %ecx
leaq 0xbc97(%rip), %rax      # 0x2fd70
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
movzbl 0xbe67(%rip), %eax      # 0x2ff51
movl %eax, %edx
leaq 0xbc7d(%rip), %rax      # 0x2fd70
imulq $0x30, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x1c(%rax)
movzbl 0xbe4d(%rip), %eax      # 0x2ff51
movl %eax, %ecx
leaq 0xbc63(%rip), %rax      # 0x2fd70
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movl 0xc(%rax), %ecx
movzbl 0xbe33(%rip), %eax      # 0x2ff51
movl %eax, %edx
leaq 0xbc49(%rip), %rax      # 0x2fd70
imulq $0x30, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x20(%rax)
movzbl 0xbe19(%rip), %eax      # 0x2ff51
movl %eax, %ecx
leaq 0xbc2f(%rip), %rax      # 0x2fd70
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movb 0x10(%rax), %cl
movzbl 0xbdff(%rip), %eax      # 0x2ff51
movl %eax, %edx
leaq 0xbc15(%rip), %rax      # 0x2fd70
imulq $0x30, %rdx, %rdx
addq %rdx, %rax
movb %cl, 0x24(%rax)
jmp 0x2434a
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x239e0
movb %al, -0x19(%rbp)
movsbl -0x19(%rbp), %eax
cmpl $0x0, %eax
jge 0x24224
jmp 0x24189
movzbl 0xbdc1(%rip), %eax      # 0x2ff51
movl %eax, %ecx
leaq 0xbbd7(%rip), %rax      # 0x2fd70
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movl $0x0, (%rax)
movzbl 0xbda4(%rip), %eax      # 0x2ff51
movl %eax, %ecx
leaq 0xbbba(%rip), %rax      # 0x2fd70
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movl $0x0, 0x4(%rax)
movzbl 0xbd86(%rip), %eax      # 0x2ff51
movl %eax, %ecx
leaq 0xbb9c(%rip), %rax      # 0x2fd70
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movl $0x0, 0x8(%rax)
movzbl 0xbd68(%rip), %eax      # 0x2ff51
movl %eax, %ecx
leaq 0xbb7e(%rip), %rax      # 0x2fd70
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movl $0x0, 0xc(%rax)
movzbl 0xbd4a(%rip), %eax      # 0x2ff51
movl %eax, %ecx
leaq 0xbb60(%rip), %rax      # 0x2fd70
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x10(%rax)
movb $-0x4, -0x1(%rbp)
jmp 0x24663
movq -0x18(%rbp), %rax
movw 0xe2(%rax), %cx
movzbl 0xbd1b(%rip), %eax      # 0x2ff51
movl %eax, %edx
leaq 0xbb31(%rip), %rax      # 0x2fd70
imulq $0x30, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0x28(%rax)
movsbq -0x19(%rbp), %rcx
leaq 0xb9fa(%rip), %rax      # 0x2fc50
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movl (%rax), %ecx
movzbl 0xbce8(%rip), %eax      # 0x2ff51
movl %eax, %edx
leaq 0xbafe(%rip), %rax      # 0x2fd70
imulq $0x30, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x14(%rax)
movsbq -0x19(%rbp), %rcx
leaq 0xb9c8(%rip), %rax      # 0x2fc50
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movl 0x4(%rax), %ecx
movzbl 0xbcb5(%rip), %eax      # 0x2ff51
movl %eax, %edx
leaq 0xbacb(%rip), %rax      # 0x2fd70
imulq $0x30, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x18(%rax)
movsbq -0x19(%rbp), %rcx
leaq 0xb995(%rip), %rax      # 0x2fc50
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movl 0x8(%rax), %ecx
movzbl 0xbc82(%rip), %eax      # 0x2ff51
movl %eax, %edx
leaq 0xba98(%rip), %rax      # 0x2fd70
imulq $0x30, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x1c(%rax)
movsbq -0x19(%rbp), %rcx
leaq 0xb962(%rip), %rax      # 0x2fc50
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movl 0xc(%rax), %ecx
movzbl 0xbc4f(%rip), %eax      # 0x2ff51
movl %eax, %edx
leaq 0xba65(%rip), %rax      # 0x2fd70
imulq $0x30, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x20(%rax)
movsbq -0x19(%rbp), %rcx
leaq 0xb92f(%rip), %rax      # 0x2fc50
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movb 0x10(%rax), %cl
movzbl 0xbc1c(%rip), %eax      # 0x2ff51
movl %eax, %edx
leaq 0xba32(%rip), %rax      # 0x2fd70
imulq $0x30, %rdx, %rdx
addq %rdx, %rax
movb %cl, 0x24(%rax)
jmp 0x2434a
jmp 0x2434c
jmp 0x2434e
movzbl 0xbbfc(%rip), %eax      # 0x2ff51
movl %eax, %ecx
leaq 0xba12(%rip), %rax      # 0x2fd70
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movl 0x14(%rax), %eax
movzbl 0xbbe3(%rip), %ecx      # 0x2ff52
movl %ecx, %edx
leaq 0xb6a8(%rip), %rcx      # 0x2fa20
imulq $0x38, %rdx, %rdx
addq %rdx, %rcx
cmpl (%rcx), %eax
jne 0x2446c
movzbl 0xbbc3(%rip), %eax      # 0x2ff51
movl %eax, %ecx
leaq 0xb9d9(%rip), %rax      # 0x2fd70
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movl 0x18(%rax), %eax
movzbl 0xbbaa(%rip), %ecx      # 0x2ff52
movl %ecx, %edx
leaq 0xb66f(%rip), %rcx      # 0x2fa20
imulq $0x38, %rdx, %rdx
addq %rdx, %rcx
cmpl 0x4(%rcx), %eax
jne 0x2446c
movzbl 0xbb89(%rip), %eax      # 0x2ff51
movl %eax, %ecx
leaq 0xb99f(%rip), %rax      # 0x2fd70
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movl 0x1c(%rax), %eax
movzbl 0xbb70(%rip), %ecx      # 0x2ff52
movl %ecx, %edx
leaq 0xb635(%rip), %rcx      # 0x2fa20
imulq $0x38, %rdx, %rdx
addq %rdx, %rcx
cmpl 0x8(%rcx), %eax
jne 0x2446c
movzbl 0xbb53(%rip), %eax      # 0x2ff51
movl %eax, %ecx
leaq 0xb969(%rip), %rax      # 0x2fd70
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movl 0x20(%rax), %eax
movzbl 0xbb3a(%rip), %ecx      # 0x2ff52
movl %ecx, %edx
leaq 0xb5ff(%rip), %rcx      # 0x2fa20
imulq $0x38, %rdx, %rdx
addq %rdx, %rcx
cmpl 0xc(%rcx), %eax
jne 0x2446c
movzbl 0xbb1d(%rip), %eax      # 0x2ff51
movl %eax, %ecx
leaq 0xb933(%rip), %rax      # 0x2fd70
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movzbl 0x24(%rax), %eax
movzbl 0xbb03(%rip), %ecx      # 0x2ff52
movl %ecx, %edx
leaq 0xb5c8(%rip), %rcx      # 0x2fa20
imulq $0x38, %rdx, %rdx
addq %rdx, %rcx
movzbl 0x10(%rcx), %ecx
cmpl %ecx, %eax
jne 0x2446c
jmp 0x2463c
movzbl 0xbade(%rip), %eax      # 0x2ff51
leaq 0xb8f6(%rip), %rdi      # 0x2fd70
imulq $0x30, %rax, %rax
addq %rax, %rdi
addq $0x14, %rdi
callq 0x210a0
movb %al, -0x19(%rbp)
movsbl -0x19(%rbp), %eax
cmpl $0x0, %eax
jl 0x244a4
movb -0x19(%rbp), %al
movb %al, 0xbab3(%rip)       # 0x2ff52
jmp 0x2463a
callq 0x21680
movb %al, -0x19(%rbp)
movsbl -0x19(%rbp), %eax
cmpl $0x0, %eax
jl 0x244c0
movb -0x19(%rbp), %al
movb %al, 0xba94(%rip)       # 0x2ff52
jmp 0x244c9
movb $-0x1, -0x1(%rbp)
jmp 0x24663
jmp 0x244cb
movzbl 0xba7f(%rip), %eax      # 0x2ff51
movl %eax, %ecx
leaq 0xb895(%rip), %rax      # 0x2fd70
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movl 0x14(%rax), %ecx
movsbq -0x19(%rbp), %rdx
leaq 0xb52f(%rip), %rax      # 0x2fa20
imulq $0x38, %rdx, %rdx
addq %rdx, %rax
movl %ecx, (%rax)
movzbl 0xba50(%rip), %eax      # 0x2ff51
movl %eax, %ecx
leaq 0xb866(%rip), %rax      # 0x2fd70
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movl 0x18(%rax), %ecx
movsbq -0x19(%rbp), %rdx
leaq 0xb500(%rip), %rax      # 0x2fa20
imulq $0x38, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x4(%rax)
movzbl 0xba20(%rip), %eax      # 0x2ff51
movl %eax, %ecx
leaq 0xb836(%rip), %rax      # 0x2fd70
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movl 0x1c(%rax), %ecx
movsbq -0x19(%rbp), %rdx
leaq 0xb4d0(%rip), %rax      # 0x2fa20
imulq $0x38, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x8(%rax)
movzbl 0xb9f0(%rip), %eax      # 0x2ff51
movl %eax, %ecx
leaq 0xb806(%rip), %rax      # 0x2fd70
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movl 0x20(%rax), %ecx
movsbq -0x19(%rbp), %rdx
leaq 0xb4a0(%rip), %rax      # 0x2fa20
imulq $0x38, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0xc(%rax)
movzbl 0xb9c0(%rip), %eax      # 0x2ff51
movl %eax, %ecx
leaq 0xb7d6(%rip), %rax      # 0x2fd70
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movb 0x24(%rax), %cl
movsbq -0x19(%rbp), %rdx
leaq 0xb470(%rip), %rax      # 0x2fa20
imulq $0x38, %rdx, %rdx
addq %rdx, %rax
movb %cl, 0x10(%rax)
movsbq -0x19(%rbp), %rcx
leaq 0xb45a(%rip), %rax      # 0x2fa20
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x31(%rax)
movq -0x18(%rbp), %rcx
movsbq -0x19(%rbp), %rdx
leaq 0xb43f(%rip), %rax      # 0x2fa20
imulq $0x38, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x18(%rax)
movsbq -0x19(%rbp), %rcx
leaq 0xb428(%rip), %rax      # 0x2fa20
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movb $0x1, 0x30(%rax)
movsbq -0x19(%rbp), %rcx
leaq 0xb411(%rip), %rax      # 0x2fa20
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movl $0x1, 0x34(%rax)
movsbq -0x19(%rbp), %rax
leaq 0xb3f7(%rip), %rdi      # 0x2fa20
imulq $0x38, %rax, %rax
addq %rax, %rdi
movl $0x1, %esi
callq 0x23480
jmp 0x2463c
movzbl 0xb90e(%rip), %eax      # 0x2ff51
movl %eax, %ecx
leaq 0xb724(%rip), %rax      # 0x2fd70
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movl $0x0, 0x2c(%rax)
movb 0xb8f2(%rip), %al       # 0x2ff52
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %al
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)