/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
int FUN_00408c18(int param_1)
{
char cVar1;
char cVar2;
int iVar3;
char *pcVar4;
undefined4 uVar5;
int iVar6;
undefined4 uVar7;
int iVar8;
uint uVar9;
int iVar10;
uint uVar11;
if ((param_1 == 0) || (iVar3 = sobj_new(), iVar3 == 0)) {
param_1 = 0;
}
else {
for (uVar9 = 0; uVar9 < *(uint *)(param_1 + 0x10); uVar9 = uVar9 + 1) {
pcVar4 = (char *)(*(int *)(param_1 + 0x14) + uVar9);
iVar8 = (int)*pcVar4;
if ((iVar8 == 0x25) && (uVar11 = uVar9 + 2, uVar11 < *(uint *)(param_1 + 0x10))) {
cVar1 = pcVar4[1] //possible issue identified - semgrep
iVar6 = (int)cVar1;
if ((*(ushort *)(___ctype_b + iVar6 * 2) & 0x10) != 0) {
cVar2 = *(char *)(*(int *)(param_1 + 0x14) + uVar11) //possible issue identified - semgrep
iVar10 = (int)cVar2;
if ((*(ushort *)(___ctype_b + iVar10 * 2) & 0x10) != 0) {
iVar8 = iVar6 + -0x30;
if (((9 < (byte)(cVar1 - 0x30U)) && (iVar8 = iVar6 + -0x57, 5 < (byte)(cVar1 + 0x9fU)))
&& (iVar8 = iVar6 + -0x37, 5 < (byte)(cVar1 + 0xbfU))) {
iVar8 = 0;
}
iVar6 = iVar10 + -0x30;
if (((9 < (byte)(cVar2 - 0x30U)) && (iVar6 = iVar10 + -0x57, 5 < (byte)(cVar2 + 0x9fU)))
&& (iVar6 = iVar10 + -0x37, 5 < (byte)(cVar2 + 0xbfU))) {
iVar6 = 0;
}
iVar8 = (iVar6 + iVar8 * 0x10) * 0x1000000 >> 0x18;
uVar9 = uVar11;
}
}
}
FUN_00408168(iVar3,iVar8);
}
FUN_00407d18(param_1);
uVar7 = *(undefined4 *)(iVar3 + 0xc);
uVar5 = *(undefined4 *)(iVar3 + 0x10);
*(undefined4 *)(param_1 + 0x14) = *(undefined4 *)(iVar3 + 0x14);
*(undefined4 *)(param_1 + 0xc) = uVar7;
*(undefined4 *)(param_1 + 0x10) = uVar5;
*(undefined4 *)(iVar3 + 0x14) = 0;
*(undefined4 *)(iVar3 + 0xc) = 0;
*(undefined4 *)(iVar3 + 0x10) = 0;
sobj_del(iVar3);
}
return param_1;
}