/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400bb3d0 FUN_1400bb3d0 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ void FUN_1400bb3d0(longlong *param_1,int *param_2,byte *param_3,byte *param_4) { char cVar1; undefined8 uVar2; int *piVar3; int *piVar4; undefined1 auStackY_1b8 [32]; byte local_188; byte local_187 [3]; int local_184; int local_180 [2]; undefined8 local_178; undefined4 local_168 [78]; int *local_30; ulonglong local_18; local_178 = 0xfffffffffffffffe; local_18 = DAT_1401ac5a0 ^ (ulonglong)auStackY_1b8; (**(code **)(param_1[0xf] + 0x18))(); local_184 = 0; local_180[0] = 0; uVar2 = (**(code **)(*param_1 + 0x58))(param_1); FUN_1400de500(local_168,uVar2); piVar3 = local_30; uVar2 = FUN_1400b6100(param_1,local_30,(SIZE_T)param_3,param_4); cVar1 = (char)uVar2; piVar4 = local_30; while (cVar1 != '\0') { local_187[0] = 0; local_188 = 0; param_4 = &local_188; param_3 = local_187; local_30 = piVar4; FUN_1400b2080(param_1,piVar4,param_3,param_4,&local_184,local_180); piVar3 = piVar4; if (local_188 != 0) { piVar3 = local_30; FUN_1400b76c0(param_1,local_30); } if (local_187[0] != 0) break; FUN_1400de540((longlong)local_168,piVar3,param_3,param_4); uVar2 = (**(code **)(*param_1 + 0x58))(param_1); FUN_1400de500(local_168,uVar2); piVar3 = local_30; uVar2 = FUN_1400b6100(param_1,local_30,(SIZE_T)param_3,param_4); piVar4 = local_30; cVar1 = (char)uVar2; } FUN_1400de540((longlong)local_168,piVar3,param_3,param_4); if (param_2 != (int *)0x0) { *param_2 = local_184; param_2[1] = local_180[0]; } return; }