int FUN_0040b870(undefined4 *param_1)

{
  bool bVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  int iVar5;
  undefined4 *puVar6;
  int *piVar7;
  undefined4 uVar8;
  undefined *puVar9;
  char *pcVar10;
  int iVar11;
  undefined4 uVar12;
  undefined4 *puVar13;
  int *piVar14;
  int local_38;
  int local_34;
  int *local_30;
  int *local_2c;
  
  iVar2 = sobj_new();
  iVar3 = sobj_new();
  if ((iVar2 == 0) || (iVar3 == 0)) {
    client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","INTERNAL ERROR");
    client_printf(*param_1,"!! %s: File:[%s]\n","INTERNAL ERROR",param_1[2]);
    client_printf(*param_1,"memory allocation failed !");
    client_printf(*param_1,"\n!! %s <<<<<<<<<<<<<<<<<<<<<<<<<\n","INTERNAL ERROR");
    iVar11 = -1;
    if (iVar2 == 0) goto LAB_0040c0a8;
  }
  else {
    FUN_00407458(param_1[1],iVar2,&local_38);
    iVar11 = sobj_empty(iVar2);
    if (iVar11 == 0) {
      FUN_00407458(param_1[1],iVar3,&local_34);
      iVar11 = sobj_strcmp(iVar3,&DAT_0042274c);
      if (iVar11 == 0) {
        uVar8 = sobj_get_string(iVar2);
        iVar11 = FUN_00407c68(uVar8);
        bVar1 = true;
        if (iVar11 == 0) {
          pcVar10 = (char *)sobj_get_string(iVar2);
          for (puVar13 = (undefined4 *)param_1[4]; puVar13 != param_1 + 4;
              puVar13 = (undefined4 *)*puVar13) {
            iVar11 = strcmp(pcVar10,(char *)puVar13[2]);
            bVar1 = true;
            if (iVar11 == 0) goto LAB_0040bb38;
          }
          bVar1 = false;
        }
LAB_0040bb38:
        piVar4 = (int *)malloc(0x1c)   //possible issue identified - semgrep
        if (piVar4 != (int *)0x0) {
          *piVar4 = 0;
          piVar4[1] = 0;
          piVar4[2] = 0;
          piVar4[3] = 0;
          piVar4[4] = 0;
          piVar4[5] = 0;
          piVar4[6] = 0;
          iVar11 = sobj_strdup(iVar2);
          piVar4[2] = iVar11;
          piVar7 = piVar4 + 3;
          piVar14 = piVar4 + 5;
          local_2c = &local_34;
          local_30 = &local_38;
          piVar4[4] = (int)piVar7;
          piVar4[3] = (int)piVar7;
          piVar4[6] = (int)piVar14;
          piVar4[5] = (int)piVar14;
          do {
            sobj_free(iVar2);
            FUN_00407458(param_1[1],iVar2,local_30);
            iVar11 = sobj_empty(iVar2);
            if (iVar11 != 0) {
LAB_0040bea0:
              client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","SYNTAX ERROR");
              client_printf(*param_1,"!! %s: File:[%s]\n","SYNTAX ERROR",param_1[2]);
              uVar8 = *param_1;
              pcVar10 = "unable to read token !";
LAB_0040bf54:
              client_printf(uVar8,pcVar10);
              uVar8 = *param_1;
              pcVar10 = "SYNTAX ERROR";
              goto LAB_0040c020;
            }
            if (local_38 != 0) {
LAB_0040bf04:
              client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","SYNTAX ERROR");
              client_printf(*param_1,"!! %s: File:[%s]\n","SYNTAX ERROR",param_1[2]);
              uVar8 = *param_1;
              pcVar10 = "should not see quotation mark here !";
              goto LAB_0040bf54;
            }
            iVar11 = sobj_strcmp(iVar2,&DAT_004226a4);
            puVar9 = (undefined *)0x0;
            if (iVar11 == 0) {
LAB_0040c0f8:
              sobj_free(iVar2,puVar9);
              FUN_00407458(param_1[1],iVar2,&local_38);
              iVar11 = sobj_empty(iVar2);
              if (iVar11 != 0) goto LAB_0040bea0;
              if (local_38 != 0) goto LAB_0040bf04;
              iVar11 = sobj_strcmp(iVar2,&DAT_00422834);
              if (iVar11 == 0) {
                if (!bVar1) {
                  puVar13 = (undefined4 *)param_1[5];
                  *piVar4 = (int)(param_1 + 4);
                  param_1[5] = piVar4;
                  *puVar13 = piVar4;
                  piVar4[1] = (int)puVar13;
                }
                iVar11 = FUN_00409a00(param_1,piVar14,&DAT_00422838);
                if (bVar1) goto LAB_0040c144;
                if (iVar11 == 0) goto LAB_0040c094;
                piVar7 = (int *)piVar4[1];
                iVar5 = *piVar4;
                *piVar7 = iVar5;
                *(int **)(iVar5 + 4) = piVar7;
                *piVar4 = 0;
                piVar4[1] = 0;
                goto LAB_0040c144;
              }
              break;
            }
            iVar11 = sobj_get_char(iVar2,0);
            if (iVar11 != 0x24) {
              client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","SYNTAX ERROR");
              client_printf(*param_1,"!! %s: File:[%s]\n","SYNTAX ERROR",param_1[2]);
              uVar8 = *param_1;
              pcVar10 = "expecting variables in function declaration !";
              goto LAB_0040bf54;
            }
            sobj_remove_char(iVar2,0);
            puVar13 = (undefined4 *)malloc(0x20)   //possible issue identified - semgrep
            if (puVar13 == (undefined4 *)0x0) {
              client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","INTERNAL ERROR");
              client_printf(*param_1,"!! %s: File:[%s]\n","INTERNAL ERROR",param_1[2]);
              client_printf(*param_1,"memory allocation failed !");
              uVar8 = *param_1;
              pcVar10 = "INTERNAL ERROR";
              goto LAB_0040c020;
            }
            memset(puVar13,0,0x20)   //possible issue identified - semgrep
            puVar13[2] = 0;
            uVar8 = sobj_strdup(iVar2);
            puVar6 = (undefined4 *)piVar4[4];
            puVar13[3] = uVar8;
            *(undefined1 *)(puVar13 + 7) = 0;
            *puVar13 = piVar7;
            piVar4[4] = (int)puVar13;
            *puVar6 = puVar13;
            puVar13[1] = puVar6;
            sobj_free(iVar3);
            FUN_00407458(param_1[1],iVar3,local_2c);
            iVar11 = sobj_empty(iVar3);
            if (iVar11 != 0) goto LAB_0040bea0;
            if (local_34 != 0) goto LAB_0040bf04;
            iVar11 = sobj_strcmp(iVar3,&DAT_004226a4);
            puVar9 = &DAT_004226a0;
            if (iVar11 == 0) goto LAB_0040c0f8;
            iVar11 = sobj_strcmp(iVar3);
          } while (iVar11 == 0);
          client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","SYNTAX ERROR");
          client_printf(*param_1,"!! %s: File:[%s]\n","SYNTAX ERROR",param_1[2]);
          uVar12 = *param_1;
          uVar8 = sobj_get_string(iVar2);
          client_printf(uVar12,"got an invalid token [%s]",uVar8);
          uVar8 = *param_1;
          pcVar10 = "SYNTAX ERROR";
LAB_0040c020:
          iVar11 = -1;
          client_printf(uVar8,"\n!! %s <<<<<<<<<<<<<<<<<<<<<<<<<\n",pcVar10);
LAB_0040c144:
          FUN_00409784(piVar4);
          goto LAB_0040c094;
        }
        client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","INTERNAL ERROR");
        client_printf(*param_1,"!! %s: File:[%s]\n","INTERNAL ERROR",param_1[2]);
        client_printf(*param_1,"memory allocation failed !");
        uVar8 = *param_1;
        pcVar10 = "INTERNAL ERROR";
      }
      else {
        client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","SYNTAX ERROR");
        client_printf(*param_1,"!! %s: File:[%s]\n","SYNTAX ERROR",param_1[2]);
        uVar12 = *param_1;
        uVar8 = sobj_get_string(iVar3);
        client_printf(uVar12,"got an invalid token [%s]",uVar8);
        uVar8 = *param_1;
        pcVar10 = "SYNTAX ERROR";
      }
    }
    else {
      client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","SYNTAX ERROR");
      client_printf(*param_1,"!! %s: File:[%s]\n","SYNTAX ERROR",param_1[2]);
      client_printf(*param_1,"unable to read token !");
      uVar8 = *param_1;
      pcVar10 = "SYNTAX ERROR";
    }
    iVar11 = -1;
    client_printf(uVar8,"\n!! %s <<<<<<<<<<<<<<<<<<<<<<<<<\n",pcVar10);
  }
LAB_0040c094:
  sobj_del(iVar2);
LAB_0040c0a8:
  if (iVar3 != 0) {
    sobj_del(iVar3);
  }
  return iVar11;
}