// File: /workspace/github_c_makefile_star2_O0/FH0[P]tun_direct/lwip-2.1.2/src/core/raw.c
// Function: raw_input_local_match
static u8_t
raw_input_local_match(struct raw_pcb *pcb, u8_t broadcast)
{
  LWIP_UNUSED_ARG(broadcast); /* in IPv6 only case */

  /* check if PCB is bound to specific netif */
  if ((pcb->netif_idx != NETIF_NO_INDEX) &&
      (pcb->netif_idx != netif_get_index(ip_data.current_input_netif))) {
    return 0;
  }

#if LWIP_IPV4 && LWIP_IPV6
  /* Dual-stack: PCBs listening to any IP type also listen to any IP address */
  if (IP_IS_ANY_TYPE_VAL(pcb->local_ip)) {
#if IP_SOF_BROADCAST_RECV
    if ((broadcast != 0) && !ip_get_option(pcb, SOF_BROADCAST)) {
      return 0;
    }
#endif /* IP_SOF_BROADCAST_RECV */
    return 1;
  }
#endif /* LWIP_IPV4 && LWIP_IPV6 */

  /* Only need to check PCB if incoming IP version matches PCB IP version */
  if (IP_ADDR_PCB_VERSION_MATCH_EXACT(pcb, ip_current_dest_addr())) {
#if LWIP_IPV4
    /* Special case: IPv4 broadcast: receive all broadcasts
     * Note: broadcast variable can only be 1 if it is an IPv4 broadcast */
    if (broadcast != 0) {
#if IP_SOF_BROADCAST_RECV
      if (ip_get_option(pcb, SOF_BROADCAST))
#endif /* IP_SOF_BROADCAST_RECV */
      {
        if (ip4_addr_isany(ip_2_ip4(&pcb->local_ip))) {
          return 1;
        }
      }
    } else
#endif /* LWIP_IPV4 */
      /* Handle IPv4 and IPv6: catch all or exact match */
      if (ip_addr_isany(&pcb->local_ip) ||
          ip_addr_cmp(&pcb->local_ip, ip_current_dest_addr())) {
        return 1;
      }
  }

  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movb %sil, %al
movq %rdi, -0x10(%rbp)
movb %al, -0x11(%rbp)
movq -0x10(%rbp), %rax
movzbl 0x30(%rax), %eax
cmpl $0x0, %eax
je 0x9318
movq -0x10(%rbp), %rax
movzbl 0x30(%rax), %eax
leaq 0x26476(%rip), %rcx     # 0x2f770
movq 0x8(%rcx), %rcx
movzbl 0xee(%rcx), %ecx
addl $0x1, %ecx
movzbl %cl, %ecx
cmpl %ecx, %eax
je 0x9318
movb $0x0, -0x1(%rbp)
jmp 0x94ad
movq -0x10(%rbp), %rax
movzbl 0x14(%rax), %eax
cmpl $0x2e, %eax
jne 0x932e
movb $0x1, -0x1(%rbp)
jmp 0x94ad
movq -0x10(%rbp), %rax
movzbl 0x14(%rax), %eax
leaq 0x26433(%rip), %rcx     # 0x2f770
movzbl 0x50(%rcx), %ecx
cmpl %ecx, %eax
jne 0x94a9
movzbl -0x11(%rbp), %eax
cmpl $0x0, %eax
je 0x9373
movq -0x10(%rbp), %rax
cmpq $0x0, %rax
je 0x9365
movq -0x10(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x936e
movb $0x1, -0x1(%rbp)
jmp 0x94ad
jmp 0x94a7
movq -0x10(%rbp), %rax
cmpq $0x0, %rax
jne 0x9389
movb $0x1, %al
testb $0x1, %al
jne 0x949f
jmp 0x93f6
movq -0x10(%rbp), %rax
cmpq $0x0, %rax
je 0x93db
movq -0x10(%rbp), %rax
movzbl 0x14(%rax), %eax
cmpl $0x6, %eax
jne 0x93db
movq -0x10(%rbp), %rax
cmpq $0x0, %rax
je 0x949f
movq -0x10(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x93f6
movq -0x10(%rbp), %rax
cmpl $0x0, 0x4(%rax)
jne 0x93f6
movq -0x10(%rbp), %rax
cmpl $0x0, 0x8(%rax)
jne 0x93f6
movq -0x10(%rbp), %rax
cmpl $0x0, 0xc(%rax)
je 0x949f
jmp 0x93f6
movq -0x10(%rbp), %rax
cmpq $0x0, %rax
je 0x949f
movq -0x10(%rbp), %rax
cmpl $0x0, (%rax)
je 0x949f
movq -0x10(%rbp), %rax
movzbl 0x14(%rax), %eax
leaq 0x2636b(%rip), %rcx     # 0x2f770
movzbl 0x50(%rcx), %ecx
cmpl %ecx, %eax
je 0x941c
xorl %eax, %eax
testb $0x1, %al
jne 0x949f
jmp 0x94a5
movq -0x10(%rbp), %rax
movzbl 0x14(%rax), %eax
cmpl $0x6, %eax
jne 0x948d
movq -0x10(%rbp), %rax
movl (%rax), %eax
leaq 0x2633a(%rip), %rcx     # 0x2f770
cmpl 0x3c(%rcx), %eax
jne 0x94a5
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
leaq 0x26327(%rip), %rcx     # 0x2f770
cmpl 0x40(%rcx), %eax
jne 0x94a5
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
leaq 0x26314(%rip), %rcx     # 0x2f770
cmpl 0x44(%rcx), %eax
jne 0x94a5
movq -0x10(%rbp), %rax
movl 0xc(%rax), %eax
leaq 0x26301(%rip), %rcx     # 0x2f770
cmpl 0x48(%rcx), %eax
jne 0x94a5
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
leaq 0x262ed(%rip), %rcx     # 0x2f770
movzbl 0x4c(%rcx), %ecx
cmpl %ecx, %eax
je 0x949f
jmp 0x94a5
movq -0x10(%rbp), %rax
movl (%rax), %eax
leaq 0x262d6(%rip), %rcx     # 0x2f770
cmpl 0x3c(%rcx), %eax
jne 0x94a5
movb $0x1, -0x1(%rbp)
jmp 0x94ad
jmp 0x94a7
jmp 0x94a9
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
popq %rbp
retq
nopw %cs:(%rax,%rax)