void FUN_00420c94(int param_1,int param_2,int param_3)

{
  char cVar1;
  int iVar2;
  undefined4 uVar3;
  undefined1 auStack_60 [2];
  short local_5e;
  char *local_5c;
  char local_58;
  undefined1 auStack_54 [2];
  short local_52;
  char *local_50;
  char local_4c;
  undefined1 auStack_48 [8];
  undefined2 local_40;
  undefined1 auStack_3c [8];
  undefined2 local_34;
  int local_30;
  int local_2c;
  int local_28;
  undefined4 local_24;
  int local_20;
  undefined1 local_1c;
  
  local_30 = param_2 + 4;
  local_28 = param_3 + -4;
  local_24 = 0;
  local_1c = 0;
  local_2c = local_30;
  local_20 = local_28;
                    /* try { // try from 00420cec to 00420e6b has its CatchHandler @ 00420e78 */
  FUN_00405430(auStack_60,0x104a,&local_30,1);
  local_58 = *local_5c;
  if ((local_5e == 4) || (local_5e == 2)) {
    local_58 = '\0';
  }
  if (local_58 == '\x10') {
    FUN_00405430(auStack_54,0x1041,&local_30,1);
    local_4c = *local_50;
    if ((local_52 == 4) || (local_52 == 2)) {
      local_4c = local_4c != '\0';
    }
    cVar1 = local_4c;
    FUN_004076e4(auStack_48,0x1012,&local_30);
    FUN_004076e4(auStack_3c,0x1053,&local_30);
    FUN_00480710("WPS: SSR: selRegistrar=0x%x, devPwdId=0x%x, selRegConfigMethods=0x%x\n",cVar1,
                 local_40,local_34);
    *(undefined1 *)(param_1 + 0x50) = 0;
    iVar2 = FUN_00420724(param_1,"upnp:ssr");
    if (iVar2 == 0x1001) {
      uVar3 = 4;
      if (cVar1 == '\0') {
        uVar3 = 2;
      }
      *(undefined4 *)(param_1 + 0xc) = uVar3;
      FUN_00424b64(*(undefined4 *)(param_1 + 0x28),3);
      FUN_0041ecc0(param_1,*(char *)(*(int *)(param_1 + 0x20) + 0x68) == '\x02',cVar1,local_40,
                   local_34,*(undefined1 *)(*(int *)(param_1 + 0x20) + 0x69));
      FUN_0041e880(param_1,2,*(undefined1 *)(*(int *)(param_1 + 0x20) + 0x68),cVar1,local_40,
                   local_34,*(undefined1 *)(*(int *)(param_1 + 0x20) + 0x69));
    }
  }
  FUN_00414eac(&local_30);
  return;
}