undefined4 FUN_00407540(void)
{
uint uVar1;
char *pcVar2;
uint uVar4;
undefined4 uVar5;
char *pcVar3;
uVar5 = 1;
uVar1 = (uint)CONCAT11(*(undefined1 *)(g_discover_hdr + 2),*(undefined1 *)(g_discover_hdr + 3));
if (DAT_0042af58 != 1) {
uVar4 = 0;
uVar5 = 0;
pcVar2 = (char *)(g_discover_hdr + 4);
while( true ) {
pcVar3 = pcVar2;
pcVar2 = pcVar3 + 6;
if (((char *)(g_ethernet_hdr + g_rcvd_pkt_len) < pcVar2) || ((int)uVar1 <= (int)uVar4)) break;
uVar4 = uVar4 + 1;
if (((*pcVar3 == g_hwaddr) &&
(((pcVar3[1] == DAT_0041f029 && (pcVar3[2] == DAT_0041f02a)) &&
(pcVar3[3] == DAT_0041f02b)))) &&
((pcVar3[4] == DAT_0041f02c && (pcVar3[5] == DAT_0041f02d)))) {
uVar5 = 1;
}
}
if (uVar4 != uVar1) {
warn("rx_discover: truncated frame: ended at station %d, but numstations claimed %d\n",uVar4,
uVar1);
}
}
return uVar5;
}