57 lines
2.2 KiB
C
57 lines
2.2 KiB
C
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
|
|
* Ghidra 12.1.2 decompiler output for 0x1400e8290 FUN_1400e8290
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_1400e8290(IMAGE_DOS_HEADER *param_1,longlong *param_2,wchar_t *param_3,undefined ***param_4
|
|
)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
longlong lVar3;
|
|
undefined8 uVar4;
|
|
double dVar5;
|
|
|
|
FUN_1400b1ba0(*(longlong **)¶m_1[2].e_cparhdr,param_2,param_3,param_4);
|
|
FUN_1400e1680((longlong)param_1,param_2,param_3,(longlong **)param_4);
|
|
FUN_1400e07b0((longlong)param_1,param_2,(undefined *)param_3,(undefined1 *)param_4);
|
|
do {
|
|
dVar5 = (double)(**(code **)(*(longlong *)(*(longlong *)¶m_1[2].e_cparhdr + 0x70) + 0x1c0))
|
|
(*(longlong *)¶m_1[2].e_cparhdr + 0x70);
|
|
if ((0.0 < *(double *)(param_1[1].e_program + 0x10)) &&
|
|
(dVar5 = dVar5 - *(double *)(param_1[1].e_program + 0x10),
|
|
*(double *)(param_1[1].e_program + 0x18) <= dVar5 &&
|
|
dVar5 != *(double *)(param_1[1].e_program + 0x18))) {
|
|
iVar2._0_1_ = param_1[2].e_magic[0];
|
|
iVar2._1_1_ = param_1[2].e_magic[1];
|
|
iVar2._2_2_ = param_1[2].e_cblp;
|
|
if (iVar2 < 4) {
|
|
lVar3 = *(longlong *)¶m_1[2].e_cparhdr;
|
|
param_1->e_program[0] = 0;
|
|
param_1->e_program[1] = 0;
|
|
param_1->e_program[2] = 0;
|
|
param_1->e_program[3] = 0;
|
|
param_1[2].e_magic[0] = '\x04';
|
|
param_1[2].e_magic[1] = '\0';
|
|
param_1[2].e_cblp = 0;
|
|
uVar4 = (**(code **)(*(longlong *)(lVar3 + 0x70) + 0x1c0))(lVar3 + 0x70);
|
|
param_1[1].e_magic[0] = (char)uVar4;
|
|
param_1[1].e_magic[1] = (char)((ulonglong)uVar4 >> 8);
|
|
param_1[1].e_cblp = (short)((ulonglong)uVar4 >> 0x10);
|
|
param_1[1].e_cp = (short)((ulonglong)uVar4 >> 0x20);
|
|
param_1[1].e_crlc = (short)((ulonglong)uVar4 >> 0x30);
|
|
param_1[1].e_program[0] = 0;
|
|
}
|
|
return;
|
|
}
|
|
uVar4 = FUN_1400e7a00(param_1,param_2,param_3,param_4);
|
|
iVar1._0_1_ = param_1[2].e_magic[0];
|
|
iVar1._1_1_ = param_1[2].e_magic[1];
|
|
iVar1._2_2_ = param_1[2].e_cblp;
|
|
if (iVar1 == 4) {
|
|
return;
|
|
}
|
|
} while ((char)uVar4 != '\0');
|
|
return;
|
|
}
|
|
|