server-re/decomp/Agent_Release_x64/full/functions/0x1400abb70.c
2026-10-14 16:45:19 -04:00

57 lines
2.2 KiB
C

/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
* Ghidra 12.1.2 decompiler output for 0x1400abb70 FUN_1400abb70
* Pseudocode, not original source. */
void FUN_1400abb70(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_140075880(*(longlong **)&param_1[2].e_cparhdr,param_2,param_3,param_4);
FUN_1400a4f60((longlong)param_1,param_2,param_3,(longlong **)param_4);
FUN_1400a40f0((longlong)param_1,param_2,(undefined *)param_3,(undefined1 *)param_4);
do {
dVar5 = (double)(**(code **)(*(longlong *)(*(longlong *)&param_1[2].e_cparhdr + 0x70) + 0x1c0))
(*(longlong *)&param_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 *)&param_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_1400ab2e0(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;
}