/* 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; }