Skip to content

Instantly share code, notes, and snippets.

@apocalyptech
Created October 24, 2022 22:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save apocalyptech/1a870bedf76afbca0cbe84fa094c763b to your computer and use it in GitHub Desktop.
Save apocalyptech/1a870bedf76afbca0cbe84fa094c763b to your computer and use it in GitHub Desktop.
/* 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