Created
October 24, 2022 22:10
-
-
Save apocalyptech/1a870bedf76afbca0cbe84fa094c763b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Micropatching::BlueprintBytecode::FBytecodeEditor::AreLiteralsEqual(EExprToken, stringref<wchar_t | |
const>, stringref<wchar_t const>) */ | |
undefined8 | |
Micropatching::BlueprintBytecode::FBytecodeEditor::AreLiteralsEqual | |
(EExprToken param_1,stringref param_2,stringref param_3) | |
{ | |
int *piVar1; | |
uchar uVar2; | |
uchar uVar3; | |
int iVar4; | |
int iVar5; | |
int *piVar6; | |
longlong lVar7; | |
longlong lVar8; | |
ulonglong uVar9; | |
ulonglong uVar10; | |
int *piVar11; | |
undefined4 in_register_00000014; | |
int **ppiVar12; | |
undefined4 in_register_00000034; | |
int **ppiVar13; | |
long lVar14; | |
float fVar15; | |
float fVar16; | |
ppiVar13 = (int **)CONCAT44(in_register_00000034,param_2); | |
ppiVar12 = (int **)CONCAT44(in_register_00000014,param_3); | |
switch(param_1) { | |
case 0x20: | |
case 0x21: | |
case 0x4b: | |
piVar6 = *ppiVar12; | |
piVar11 = *ppiVar13; | |
piVar1 = ppiVar13[1]; | |
lVar14 = (long)piVar1 - (long)piVar11 >> 2; | |
if (lVar14 != (long)ppiVar12[1] - (long)piVar6 >> 2) { | |
return 0; | |
} | |
if (piVar11 == piVar1) { | |
return 1; | |
} | |
if (lVar14 == 0) { | |
return 1; | |
} | |
do { | |
if (*piVar11 != *piVar6) { | |
return 0; | |
} | |
piVar11 = piVar11 + 1; | |
piVar6 = piVar6 + 1; | |
} while (piVar1 != piVar11); | |
return 1; | |
case 0x22: | |
iVar4 = ParseValue<int>((stringref *)ppiVar13); | |
iVar5 = ParseValue<int>((stringref *)ppiVar12); | |
if (iVar4 != iVar5) { | |
return 0; | |
} | |
iVar4 = ParseValue<int>((stringref *)ppiVar13); | |
iVar5 = ParseValue<int>((stringref *)ppiVar12); | |
if (iVar4 != iVar5) { | |
return 0; | |
} | |
case 0x1d: | |
iVar4 = ParseValue<int>((stringref *)ppiVar13); | |
iVar5 = ParseValue<int>((stringref *)ppiVar12); | |
if (iVar4 == iVar5) { | |
return 1; | |
} | |
break; | |
case 0x24: | |
case 0x25: | |
case 0x26: | |
case 0x27: | |
case 0x28: | |
case 0x2c: | |
uVar2 = ParseValue<unsigned_char>((stringref *)ppiVar13); | |
uVar3 = ParseValue<unsigned_char>((stringref *)ppiVar12); | |
if (uVar2 == uVar3) { | |
return 1; | |
} | |
break; | |
case 0x2b: | |
fVar15 = ParseValue<float>((stringref *)ppiVar13); | |
fVar16 = ParseValue<float>((stringref *)ppiVar12); | |
if (fVar15 != fVar16) { | |
return 0; | |
} | |
fVar15 = ParseValue<float>((stringref *)ppiVar13); | |
fVar16 = ParseValue<float>((stringref *)ppiVar12); | |
if (fVar15 != fVar16) { | |
return 0; | |
} | |
fVar15 = ParseValue<float>((stringref *)ppiVar13); | |
fVar16 = ParseValue<float>((stringref *)ppiVar12); | |
if (fVar15 != fVar16) { | |
return 0; | |
} | |
fVar15 = ParseValue<float>((stringref *)ppiVar13); | |
fVar16 = ParseValue<float>((stringref *)ppiVar12); | |
if (fVar15 != fVar16) { | |
return 0; | |
} | |
fVar15 = ParseValue<float>((stringref *)ppiVar13); | |
fVar16 = ParseValue<float>((stringref *)ppiVar12); | |
if (fVar15 != fVar16) { | |
return 0; | |
} | |
fVar15 = ParseValue<float>((stringref *)ppiVar13); | |
fVar16 = ParseValue<float>((stringref *)ppiVar12); | |
if (fVar15 != fVar16) { | |
return 0; | |
} | |
fVar15 = ParseValue<float>((stringref *)ppiVar13); | |
fVar16 = ParseValue<float>((stringref *)ppiVar12); | |
if (fVar15 != fVar16) { | |
return 0; | |
} | |
case 0x23: | |
fVar15 = ParseValue<float>((stringref *)ppiVar13); | |
fVar16 = ParseValue<float>((stringref *)ppiVar12); | |
if (fVar15 != fVar16) { | |
return 0; | |
} | |
fVar15 = ParseValue<float>((stringref *)ppiVar13); | |
fVar16 = ParseValue<float>((stringref *)ppiVar12); | |
if (fVar15 != fVar16) { | |
return 0; | |
} | |
case 0x1e: | |
fVar15 = ParseValue<float>((stringref *)ppiVar13); | |
fVar16 = ParseValue<float>((stringref *)ppiVar12); | |
if (fVar15 == fVar16) { | |
return 1; | |
} | |
return 0; | |
case 0x35: | |
lVar7 = ParseValue<long_long>((stringref *)ppiVar13); | |
lVar8 = ParseValue<long_long>((stringref *)ppiVar12); | |
if (lVar7 == lVar8) { | |
return 1; | |
} | |
break; | |
case 0x36: | |
uVar9 = ParseValue<unsigned_long_long>((stringref *)ppiVar13); | |
uVar10 = ParseValue<unsigned_long_long>((stringref *)ppiVar12); | |
if (uVar9 == uVar10) { | |
return 1; | |
} | |
} | |
return 0; | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment