호그와트

today my lunch hacking exercise (it is like my lunch snack)

영웅*^%&$ 2023. 8. 2. 12:37
728x90

void FUN_140001c30(longlong **param_1)

{

longlong **pplVar1;

ulonglong uVar2;

longlong *plVar3;

longlong *plVar4;

longlong *plVar5;

uint uVar6;

void *pvVar8;

undefined auStack184 [32];

undefined local_98 [16];

longlong local_88;

longlong *local_80 [2];

longlong *local_70;

undefined8 local_68;

longlong **local_58;

undefined8 local_50;

undefined8 local_40;

undefined8 local_38;

ulonglong local_30;

ulonglong uVar7;

 

local_30 = DAT_140008008 ^ (ulonglong)auStack184;

uVar2 = 0;

local_38 = 0xf;

local_40 = 3;

local_50 = 0x7b4844;

plVar3 = param_1[2];

local_58 = param_1;

if (plVar3 == (longlong *)0x18) {

uVar7 = uVar2;

do {

pplVar1 = param_1;

if ((longlong *)0xf < param_1[3]) {

pplVar1 = (longlong **)*param_1;

}

if (*(char *)(uVar2 + (longlong)pplVar1) != *(char *)((longlong)&local_50 + uVar2))

goto LAB_140001edc;

uVar6 = (int)uVar7 + 1;

uVar7 = (ulonglong)uVar6;

uVar2 = uVar2 + 1;

} while (uVar6 < 3);

plVar4 = param_1[3];

pplVar1 = param_1;

if ((longlong *)0xf < plVar4) {

pplVar1 = (longlong **)*param_1;

}

if (*(char *)((longlong)pplVar1 + 0x17) == '}') {

local_80[0] = (longlong *)0x0;

local_70 = (longlong *)0x0;

local_68 = 0;

pplVar1 = param_1;

if ((longlong *)0xf < plVar4) {

pplVar1 = (longlong **)*param_1;

}

local_80[0] = (longlong *)operator_new(0x20);

memcpy(local_80[0],pplVar1,0x19);

local_70 = plVar3;

local_68 = 0x1f;

FUN_140001a10((void **)local_98,local_80);

plVar3 = &DAT_140008050;

while (*(longlong *)((longlong)local_98._0_8_ + -0x140008050 + (longlong)plVar3) == *plVar3) {

plVar3 = plVar3 + 1;

if (0x1400080af < (longlong)plVar3) goto code_r0x000140001df6;

}

if (local_98._0_8_ == (void *)0x0) goto LAB_140001edc;

pvVar8 = local_98._0_8_;

if ((0xfff < (ulonglong)((local_88 - (longlong)local_98._0_8_ >> 2) * 4)) &&

(pvVar8 = *(void **)((longlong)local_98._0_8_ + -8),

0x1f < (ulonglong)((longlong)local_98._0_8_ + (-8 - (longlong)pvVar8))))

goto LAB_140001ec1;

operator_delete(pvVar8);

local_98 = ZEXT816(0);

local_88 = 0;

LAB_140001edc:

plVar4 = param_1[3];

}

if (plVar4 < (longlong *)0x10) goto LAB_140001f14;

plVar3 = *param_1;

}

else {

plVar4 = param_1[3];

if (plVar4 < (longlong *)0x10) goto LAB_140001f14;

plVar3 = *param_1;

}

plVar5 = plVar3;

if ((0xfff < (longlong)plVar4 + 1U) &&

(plVar5 = (longlong *)plVar3[-1],

0x1f < (ulonglong)((longlong)plVar3 + (-8 - (longlong)plVar5)))) {

LAB_140001f4c:

/* WARNING: Subroutine does not return */

_invalid_parameter_noinfo_noreturn();

}

operator_delete(plVar5);

goto LAB_140001f14;

code_r0x000140001df6:

if (local_98._0_8_ != (void *)0x0) {

pvVar8 = local_98._0_8_;

if ((0xfff < (ulonglong)((local_88 - (longlong)local_98._0_8_ >> 2) * 4)) &&

(pvVar8 = *(void **)((longlong)local_98._0_8_ + -8),

0x1f < (ulonglong)((longlong)local_98._0_8_ + (-8 - (longlong)pvVar8)))) {

LAB_140001ec1:

/* WARNING: Subroutine does not return */

_invalid_parameter_noinfo_noreturn();

}

operator_delete(pvVar8);

local_98 = ZEXT816(0);

local_88 = 0;

}

if ((longlong *)0xf < param_1[3]) {

plVar3 = *param_1;

plVar4 = plVar3;

if ((0xfff < (longlong)param_1[3] + 1U) &&

(plVar4 = (longlong *)plVar3[-1],

0x1f < (ulonglong)((longlong)plVar3 + (-8 - (longlong)plVar4)))) goto LAB_140001f4c;

operator_delete(plVar4);

}

LAB_140001f14:

param_1[2] = (longlong *)0x0;

param_1[3] = (longlong *)0xf;

*(undefined *)param_1 = 0;

FUN_140002d80(local_30 ^ (ulonglong)auStack184);

return;

}

728x90