server-re/decomp/MessageServer_Release_x64/full/functions/0x14006c6d0.c

37 lines
1.2 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x14006c6d0 FUN_14006c6d0
* Pseudocode, not original source. */
/* WARNING: Removing unreachable block (ram,0x00014006c729) */
undefined8 FUN_14006c6d0(longlong *param_1,HMODULE param_2,uint param_3)
{
uint uVar1;
ushort uVar2;
HRSRC pHVar3;
ushort *puVar4;
uint uVar5;
pHVar3 = FindResourceW(param_2,(LPCWSTR)(ulonglong)(ushort)((short)(param_3 >> 4) + 1),
(LPCWSTR)0x6);
if ((pHVar3 == (HRSRC)0x0) ||
(puVar4 = FUN_14006bee0(param_2,pHVar3,param_3), puVar4 == (ushort *)0x0)) {
return 0;
}
uVar2 = *puVar4;
uVar5 = (uint)uVar2;
if ((int)(1U - *(int *)(*param_1 + -8) | *(int *)(*param_1 + -0xc) - uVar5) < 0) {
FUN_14006c670(param_1,uVar5);
}
FUN_14006c040((wchar_t *)*param_1,uVar5,(wchar_t *)(puVar4 + 1),(uint)*puVar4);
uVar1 = *(uint *)(*param_1 + -0xc);
if (uVar2 != uVar1 && (int)uVar1 <= (int)uVar5) {
/* WARNING: Subroutine does not return */
FUN_1400064e0(0x80070057);
}
*(uint *)(*param_1 + -0x10) = (uint)uVar2;
*(undefined2 *)(*param_1 + (ulonglong)uVar2 * 2) = 0;
return 1;
}