56 lines
1.5 KiB
C
56 lines
1.5 KiB
C
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
|
|
* Ghidra 12.1.2 decompiler output for 0x14000dda0 FUN_14000dda0
|
|
* Pseudocode, not original source. */
|
|
|
|
ulonglong FUN_14000dda0(char *param_1,char *param_2,char param_3,int param_4)
|
|
|
|
{
|
|
char cVar1;
|
|
uint _C;
|
|
int iVar2;
|
|
ulonglong in_RAX;
|
|
undefined4 extraout_var;
|
|
ulonglong uVar3;
|
|
int _C_00;
|
|
longlong lVar4;
|
|
|
|
if ((param_1 == (char *)0x0) || (*param_1 == '\0')) {
|
|
return in_RAX & 0xffffffffffffff00;
|
|
}
|
|
if (param_3 == '\0') {
|
|
do {
|
|
in_RAX = 0;
|
|
if (*param_2 == '\0') goto LAB_14000de20;
|
|
if (*param_1 != *param_2) break;
|
|
param_1 = param_1 + 1;
|
|
param_2 = param_2 + 1;
|
|
} while (*param_1 != '\0');
|
|
cVar1 = *param_2;
|
|
}
|
|
else {
|
|
lVar4 = (longlong)param_1 - (longlong)param_2;
|
|
do {
|
|
if (*param_2 == '\0') goto LAB_14000de20;
|
|
_C_00 = (int)param_2[lVar4];
|
|
if ((param_4 != 1) || (_C_00 < 0x80)) {
|
|
_C_00 = tolower(_C_00);
|
|
}
|
|
_C = (uint)*param_2;
|
|
in_RAX = (ulonglong)_C;
|
|
if ((param_4 != 1) || ((int)_C < 0x80)) {
|
|
iVar2 = tolower(_C);
|
|
in_RAX = CONCAT44(extraout_var,iVar2);
|
|
}
|
|
} while ((_C_00 == (int)in_RAX) && (param_2 = param_2 + 1, param_2[lVar4] != '\0'));
|
|
cVar1 = *param_2;
|
|
}
|
|
if (cVar1 == '\0') {
|
|
LAB_14000de20:
|
|
uVar3 = CONCAT71((int7)(in_RAX >> 8),1);
|
|
}
|
|
else {
|
|
uVar3 = in_RAX & 0xffffffffffffff00;
|
|
}
|
|
return uVar3;
|
|
}
|
|
|