43 lines
1.6 KiB
C
43 lines
1.6 KiB
C
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
|
|
* Ghidra 12.1.2 decompiler output for 0x14007cde0 FUN_14007cde0
|
|
* Pseudocode, not original source. */
|
|
|
|
undefined4 FUN_14007cde0(longlong param_1,longlong param_2)
|
|
|
|
{
|
|
ushort uVar1;
|
|
uint uVar2;
|
|
longlong lVar3;
|
|
ulonglong uVar4;
|
|
|
|
if ((*(int *)(param_2 + 8) == 0) || (uVar4 = FUN_14006fbe0(param_2), (char)uVar4 != '\0')) {
|
|
uVar1 = *(ushort *)(param_2 + 0xc);
|
|
uVar2 = *(uint *)(param_2 + 8);
|
|
uVar4 = (ulonglong)(uVar1 ^ uVar2) % (ulonglong)*(uint *)(param_1 + 0x3b0);
|
|
if (*(longlong *)(param_1 + 0x390) != 0) {
|
|
lVar3 = *(longlong *)(*(longlong *)(param_1 + 0x390) + uVar4 * 8);
|
|
while( true ) {
|
|
if ((lVar3 == 0) || ((uint)uVar4 != *(uint *)(lVar3 + 0x28) % *(uint *)(param_1 + 0x3b0)))
|
|
goto LAB_14007ce63;
|
|
if ((*(uint *)(lVar3 + 8) == uVar2) && (*(ushort *)(lVar3 + 0xc) == uVar1)) break;
|
|
lVar3 = *(longlong *)(lVar3 + 0x18);
|
|
}
|
|
if (*(longlong *)(lVar3 + 0x10) != 0) {
|
|
return *(undefined4 *)(*(longlong *)(lVar3 + 0x10) + 0x6f8);
|
|
}
|
|
}
|
|
LAB_14007ce63:
|
|
uVar4 = (ulonglong)(uVar1 ^ uVar2) % (ulonglong)*(uint *)(param_1 + 0x718);
|
|
if (*(longlong *)(param_1 + 0x6f8) != 0) {
|
|
for (lVar3 = *(longlong *)(*(longlong *)(param_1 + 0x6f8) + uVar4 * 8);
|
|
(lVar3 != 0 && ((uint)uVar4 == *(uint *)(lVar3 + 0x28) % *(uint *)(param_1 + 0x718)));
|
|
lVar3 = *(longlong *)(lVar3 + 0x18)) {
|
|
if ((*(uint *)(lVar3 + 8) == uVar2) && (*(ushort *)(lVar3 + 0xc) == uVar1)) {
|
|
return 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|