reman3/game_re/gh_fix/r3_containsCmdLine.cxx

119 lines
2.8 KiB
C++

// AUTO-GENERATED FILE, MOVE TO 'gh_fix' FOLDER PREVENT OVERWRITING!!!!!
#include <r3/binders/auto.h>
#include <gh_global.h>
extern "C" {
// 004028e0
/* maybe */
uint32_t r3_containsCmdLine(uint *param_1,char *param_2)
{
char *pcVar1;
char *pcVar2;
char cVar3;
uint uVar4;
uint *puVar5;
char cVar6;
uint uVar7;
char *pcVar8;
uint uVar9;
uint *puVar10;
cVar3 = *param_2;
if (cVar3 == '\0') {
return (uint32_t)param_1;
}
if (param_2[1] == '\0') {
uVar4 = (uint)param_1 & 3;
while (uVar4 != 0) {
if (*(char *)param_1 == cVar3) {
return (uint32_t)param_1;
}
if (*(char *)param_1 == '\0') {
return 0;
}
uVar4 = (uint)(uint *)((int)param_1 + 1) & 3;
param_1 = (uint *)((int)param_1 + 1);
}
while( true ) {
while( true ) {
uVar4 = *param_1;
uVar9 = uVar4 ^ CONCAT22(CONCAT11(cVar3,cVar3),CONCAT11(cVar3,cVar3));
uVar7 = uVar4 ^ 0xffffffff ^ uVar4 + 0x7efefeff;
puVar10 = param_1 + 1;
if (((uVar9 ^ 0xffffffff ^ uVar9 + 0x7efefeff) & 0x81010100) != 0) break;
param_1 = puVar10;
if ((uVar7 & 0x81010100) != 0) {
if ((uVar7 & 0x1010100) != 0) {
return 0;
}
if ((uVar4 + 0x7efefeff & 0x80000000) == 0) {
return 0;
}
}
}
uVar4 = *param_1;
if ((char)uVar4 == cVar3) {
return (uint32_t)param_1;
}
if ((char)uVar4 == '\0') {
return 0;
}
cVar6 = (char)(uVar4 >> 8);
if (cVar6 == cVar3) {
return (uint32_t)(char *)((int)param_1 + 1);
}
if (cVar6 == '\0') break;
cVar6 = (char)(uVar4 >> 0x10);
if (cVar6 == cVar3) {
return (uint32_t)(char *)((int)param_1 + 2);
}
if (cVar6 == '\0') {
return 0;
}
cVar6 = (char)(uVar4 >> 0x18);
if (cVar6 == cVar3) {
return (uint32_t)(char *)((int)param_1 + 3);
}
param_1 = puVar10;
if (cVar6 == '\0') {
return 0;
}
}
return 0;
}
do {
cVar6 = *(char *)param_1;
do {
while (puVar10 = param_1, param_1 = (uint *)((int)puVar10 + 1), cVar6 != cVar3) {
if (cVar6 == '\0') {
return 0;
}
cVar6 = *(char *)param_1;
}
cVar6 = *(char *)param_1;
pcVar8 = param_2;
puVar5 = puVar10;
} while (cVar6 != param_2[1]);
do {
if (pcVar8[2] == '\0') {
return (uint32_t)puVar10;
}
if (*(char *)(uint *)((int)puVar5 + 2) != pcVar8[2]) break;
pcVar1 = pcVar8 + 3;
if (*pcVar1 == '\0') {
return (uint32_t)puVar10;
}
pcVar2 = (char *)((int)puVar5 + 3);
pcVar8 = pcVar8 + 2;
puVar5 = (uint *)((int)puVar5 + 2);
} while (*pcVar1 == *pcVar2);
} while( true );
}
}