void FUN_00421958(int param_1)

{
  char cVar1;
  undefined1 uVar2;
  undefined1 uVar3;
  undefined2 uVar4;
  bool bVar5;
  short sVar6;
  undefined4 *puVar7;
  uint uVar8;
  char *pcVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  undefined4 uVar13;
  
  *(undefined4 *)(param_1 + 0x10) = 0;
  if (*(char *)(*(int *)(param_1 + 0x20) + 0x68) == '\x01') {
    sVar6 = *(short *)(*(int *)(param_1 + 0x20) + 0x5f)   //possible issue identified - semgrep
    if (sVar6 == 2) {
      pcVar9 = "WPS: The AP is Unconfigured!   Using WPA/PSK ";
LAB_00420240:
      FUN_00480710(pcVar9);
    }
    else if (sVar6 == 0x20) {
      pcVar9 = "WPS: The AP is Unconfigured!   Using WPA2/PSK ";
      goto LAB_00420240;
    }
    sVar6 = *(short *)(*(int *)(param_1 + 0x20) + 99)   //possible issue identified - semgrep
    if (sVar6 == 4) {
      pcVar9 = "(TKIP)";
LAB_00420290:
      FUN_004804f0(pcVar9);
    }
    else if (sVar6 == 8) {
      pcVar9 = "(AES)";
      goto LAB_00420290;
    }
    FUN_0042000c(param_1);
    *(undefined1 *)(param_1 + 10) = 1;
    *(undefined1 *)(param_1 + 9) = 1;
  }
  puVar7 = (undefined4 *)FUN_00471da0(0x44);
  FUN_0041c618(puVar7,*(undefined4 *)(param_1 + 0x24),*(undefined4 *)(param_1 + 0x28),1);
  *puVar7 = &PTR_FUN_004ae808;
  *(undefined1 *)((int)puVar7 + 0x3e) = 0;
  *(undefined4 **)(param_1 + 0x2c) = puVar7;
  FUN_00419430(puVar7,FUN_00420ee4,param_1);
[REF] /logs/s16_ghidra_decompile_checks/haruspex_wps/FUN_00420ee4_00420ee4.c
  FUN_004193f0(*(undefined4 *)(param_1 + 0x2c),*(int *)(param_1 + 0x20) + 4,
               *(undefined4 *)(*(int *)(param_1 + 0x20) + 0x378));
  FUN_004244fc(*(undefined4 *)(param_1 + 0x28),FUN_00419948,*(undefined4 *)(param_1 + 0x2c));
  iVar11 = *(int *)(param_1 + 0x20);
  if (*(char *)(iVar11 + 0x371) == '\0') {
    FUN_00404b10("%s: NW KEY is not set, generate NW key !\n","StartRegistrar");
    iVar11 = FUN_0042000c(param_1);
    if (iVar11 != 0x1001) {
      FUN_0041d158(param_1);
      return;
    }
  }
  else {
    uVar13 = *(undefined4 *)(iVar11 + 0x374);
    FUN_004804f0("Using pre-config NW KEY!");
    FUN_0041ff80(param_1,iVar11 + 0x331,uVar13);
  }
  FUN_0041f598(param_1,0);
  FUN_0041f1ac(param_1);
  iVar10 = *(int *)(param_1 + 0x20);
  iVar12 = *(int *)(iVar10 + 0x37c);
  cVar1 = *(char *)(iVar10 + 0x68)   //possible issue identified - semgrep
  iVar11 = 0;
  if (iVar12 != 0) {
    iVar11 = FUN_00483e50(iVar12);
  }
  FUN_0041a47c(*(undefined4 *)(param_1 + 0x2c),0,*(undefined1 *)(param_1 + 0x50),
               *(undefined1 *)(iVar10 + 0x380));
  FUN_004193c0(*(undefined4 *)(param_1 + 0x2c),*(undefined4 *)(param_1 + 0x3c),
               *(undefined4 *)(param_1 + 0x38));
  FUN_00424b64(*(undefined4 *)(param_1 + 0x28),3);
  FUN_00424b64(*(undefined4 *)(param_1 + 0x28),2);
  FUN_00424b64(*(undefined4 *)(param_1 + 0x28),8);
  if (iVar11 == 0) {
    FUN_004804f0("WPS: No device password specified !");
    goto LAB_004206fc;
  }
  bVar5 = cVar1 == '\x02';
  uVar8 = *(uint *)(*(int *)(param_1 + 0x20) + 0x114) >> 8 & 0xffff;
  if (uVar8 == 0) {
    iVar10 = FUN_0042196c(*(int *)(param_1 + 0x20),0);
    if (iVar10 == 0x1001) {
      FUN_00419418(*(undefined4 *)(param_1 + 0x2c),*(int *)(param_1 + 0x20) + 4);
    }
    FUN_0041a514(*(undefined4 *)(param_1 + 0x2c),iVar12,iVar11);
    FUN_00480710("WPS: Using PIN:%s\n",iVar12);
    FUN_0041ecc0(param_1,bVar5,1,0,*(undefined2 *)(*(int *)(param_1 + 0x20) + 0x66),
                 *(undefined1 *)(*(int *)(param_1 + 0x20) + 0x69));
    iVar11 = *(int *)(param_1 + 0x20);
    uVar2 = *(undefined1 *)(iVar11 + 0x68);
    uVar13 = 0;
    uVar4 = *(undefined2 *)(iVar11 + 0x66);
    uVar3 = *(undefined1 *)(iVar11 + 0x69);
  }
  else {
    if (uVar8 != 4) goto LAB_004206fc;
    iVar11 = FUN_004249b0(*(undefined4 *)(param_1 + 0x28));
    if (iVar11 != 0) {
      FUN_0041d498(param_1,3);
      FUN_00401c98();
      goto LAB_004206fc;
    }
    FUN_004804f0("WPS: Using Push Button !!");
    iVar11 = FUN_0042196c(*(undefined4 *)(param_1 + 0x20),4);
    if (iVar11 == 0x1001) {
      FUN_00419418(*(undefined4 *)(param_1 + 0x2c),*(int *)(param_1 + 0x20) + 4);
    }
    FUN_0041a514(*(undefined4 *)(param_1 + 0x2c),"00000000",8);
    FUN_0041ecc0(param_1,bVar5,1,4,*(undefined2 *)(*(int *)(param_1 + 0x20) + 0x66),
                 *(undefined1 *)(*(int *)(param_1 + 0x20) + 0x69));
    iVar11 = *(int *)(param_1 + 0x20);
    uVar2 = *(undefined1 *)(iVar11 + 0x68);
    uVar13 = 4;
    uVar4 = *(undefined2 *)(iVar11 + 0x66);
    uVar3 = *(undefined1 *)(iVar11 + 0x69);
  }
  FUN_0041e880(param_1,2,uVar2,1,uVar13,uVar4,uVar3);
  *(undefined4 *)(param_1 + 0xc) = 2;
LAB_004206fc:
  *(undefined1 *)(param_1 + 0x50) = 1;
  return;
}