156 lines
5.7 KiB
C
156 lines
5.7 KiB
C
|
|
undefined8
|
|
FUN_1400137f0(longlong param_1,uint param_2,undefined8 param_3,int *param_4,undefined8 *param_5)
|
|
|
|
{
|
|
ulonglong *puVar1;
|
|
undefined8 *puVar2;
|
|
uint *puVar3;
|
|
LPVOID pvVar4;
|
|
int *piVar5;
|
|
undefined8 *puVar6;
|
|
ulonglong *puVar7;
|
|
undefined *puVar8;
|
|
ulonglong *local_d8;
|
|
ulonglong *local_d0;
|
|
undefined8 local_c8;
|
|
ulonglong *local_b8;
|
|
ulonglong *local_b0;
|
|
undefined8 local_a8;
|
|
ulonglong *local_98;
|
|
ulonglong *local_90;
|
|
undefined8 local_88;
|
|
undefined **local_78;
|
|
longlong *local_70;
|
|
LPVOID local_68;
|
|
ulonglong local_60;
|
|
undefined8 local_58;
|
|
ulonglong *local_50;
|
|
ulonglong *local_48;
|
|
undefined8 local_40;
|
|
undefined8 local_30;
|
|
|
|
local_30 = 0xfffffffffffffffe;
|
|
puVar6 = (undefined8 *)0x0;
|
|
if (*(longlong *)(DAT_14017cf20 + 0x58) != 0) {
|
|
for (puVar2 = *(undefined8 **)
|
|
(*(longlong *)(DAT_14017cf20 + 0x38) +
|
|
((ulonglong)(longlong)*param_4 % *(ulonglong *)(DAT_14017cf20 + 0x40)) * 8);
|
|
puVar2 != (undefined8 *)0x0; puVar2 = (undefined8 *)*puVar2) {
|
|
if (*param_4 == *(int *)(puVar2 + 1)) {
|
|
if ((puVar2 != (undefined8 *)0x0) &&
|
|
(puVar3 = (uint *)puVar2[2], puVar6 = puVar2, puVar3 != (uint *)0x0)) {
|
|
*(undefined8 *)(puVar3 + 0x28) = *param_5;
|
|
*(undefined8 *)(puVar3 + 0x2a) = param_5[1];
|
|
*(undefined8 *)(puVar3 + 0x2c) = param_5[2];
|
|
FUN_140011f00(*(longlong *)(param_1 + 0x70),*param_4,param_5);
|
|
if ((char)puVar3[3] == '\r') {
|
|
puVar3[0x28] = param_2;
|
|
puVar3[0x31] = 1;
|
|
local_98 = (ulonglong *)0x0;
|
|
local_90 = (ulonglong *)0x0;
|
|
local_88 = 0;
|
|
FUN_14003a0d0(DAT_14017cf20,(ulonglong *)&local_98,puVar3[2]);
|
|
local_b8 = (ulonglong *)0x0;
|
|
local_b0 = (ulonglong *)0x0;
|
|
local_a8 = 0;
|
|
FUN_140039cd0(DAT_14017cf20,(ulonglong *)&local_b8,'\x15');
|
|
piVar5 = (int *)FUN_14003b000(DAT_14017cf50,&local_50);
|
|
puVar8 = &DAT_14016f5d0;
|
|
(**(code **)(*(longlong *)(param_1 + 0x40) + 0x30))
|
|
((longlong *)(param_1 + 0x40),param_2,&DAT_14016f5d0,piVar5,&local_98,
|
|
&local_b8);
|
|
if (local_50 != (ulonglong *)0x0) {
|
|
if (local_50 != local_48) {
|
|
puVar7 = local_50 + 4;
|
|
do {
|
|
if (7 < *puVar7) {
|
|
operator_delete((void *)puVar7[-3]);
|
|
}
|
|
*puVar7 = 7;
|
|
puVar7[-1] = 0;
|
|
*(undefined2 *)(puVar7 + -3) = 0;
|
|
puVar1 = puVar7 + 2;
|
|
puVar7 = puVar7 + 6;
|
|
} while (puVar1 != local_48);
|
|
}
|
|
operator_delete(local_50);
|
|
}
|
|
local_50 = (ulonglong *)0x0;
|
|
local_48 = (ulonglong *)0x0;
|
|
local_40 = 0;
|
|
if (local_b8 != (ulonglong *)0x0) {
|
|
FUN_14000a5f0(local_b8,local_b0);
|
|
operator_delete(local_b8);
|
|
}
|
|
local_b8 = (ulonglong *)0x0;
|
|
local_b0 = (ulonglong *)0x0;
|
|
local_a8 = 0;
|
|
if (local_98 != (ulonglong *)0x0) {
|
|
FUN_14000a5f0(local_98,local_90);
|
|
operator_delete(local_98);
|
|
}
|
|
local_98 = (ulonglong *)0x0;
|
|
local_90 = (ulonglong *)0x0;
|
|
local_88 = 0;
|
|
}
|
|
else {
|
|
local_d8 = (ulonglong *)0x0;
|
|
local_d0 = (ulonglong *)0x0;
|
|
local_c8 = 0;
|
|
FUN_140039f50(DAT_14017cf20,(ulonglong *)&local_d8,*puVar3);
|
|
if (*(char *)(DAT_14017cf28 + 0x166) != '\0') {
|
|
FUN_140039cd0(DAT_14017cf20,(ulonglong *)&local_d8,'\b');
|
|
}
|
|
puVar8 = &DAT_14016f5d0;
|
|
piVar5 = param_4;
|
|
(**(code **)(*(longlong *)(param_1 + 0x40) + 0x40))
|
|
((longlong *)(param_1 + 0x40),param_2,&DAT_14016f5d0,param_4,&local_d8);
|
|
if (local_d8 != (ulonglong *)0x0) {
|
|
FUN_14000a5f0(local_d8,local_d0);
|
|
operator_delete(local_d8);
|
|
}
|
|
local_d8 = (ulonglong *)0x0;
|
|
local_d0 = (ulonglong *)0x0;
|
|
local_c8 = 0;
|
|
}
|
|
if (*(longlong *)(param_1 + 0x68) != 0) {
|
|
piVar5 = (int *)(ulonglong)(byte)puVar3[3];
|
|
puVar8 = (undefined *)(ulonglong)*puVar3;
|
|
FUN_14000ae50(*(longlong *)(param_1 + 0x68),1,*puVar3,piVar5,0x14012e3d0,0,*param_4);
|
|
}
|
|
local_78 = Proud::CFastArray<Proud::HostID,0>::vftable;
|
|
local_70 = (longlong *)0x0;
|
|
local_68 = (LPVOID)0x0;
|
|
local_60 = 0;
|
|
local_58 = 0;
|
|
puVar6 = (undefined8 *)
|
|
FUN_140039670(DAT_14017cf20,(longlong)&local_78,puVar8,(longlong)piVar5);
|
|
pvVar4 = local_68;
|
|
if ((int)local_60 == 0) {
|
|
if (local_68 == (LPVOID)0x0) break;
|
|
if (local_70 != (longlong *)0x0) {
|
|
puVar6 = (undefined8 *)(**(code **)(*local_70 + 0x18))(local_70,local_68);
|
|
break;
|
|
}
|
|
}
|
|
else {
|
|
puVar6 = (undefined8 *)
|
|
(**(code **)(*(longlong *)(param_1 + 0x40) + 0x68))
|
|
((longlong *)(param_1 + 0x40),local_68,local_60 & 0xffffffff,
|
|
&DAT_14016f5d0,param_4);
|
|
if (pvVar4 == (LPVOID)0x0) break;
|
|
if (local_70 != (longlong *)0x0) {
|
|
puVar6 = (undefined8 *)(**(code **)(*local_70 + 0x18))(local_70,pvVar4);
|
|
break;
|
|
}
|
|
}
|
|
puVar6 = (undefined8 *)FUN_14003e8b0(pvVar4);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return CONCAT71((int7)((ulonglong)puVar6 >> 8),1);
|
|
}
|
|
|