/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400bf360 FUN_1400bf360 * Pseudocode, not original source. */ /* WARNING: Function: __chkstk replaced with injection: alloca_probe */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ undefined1 FUN_1400bf360(longlong *param_1,undefined8 param_2,ulonglong param_3,longlong param_4, undefined8 param_5,int param_6) { undefined1 uVar1; int iVar2; undefined1 *puVar3; longlong lVar4; SIZE_T SVar5; undefined4 *puVar6; ulonglong uVar7; longlong lVar8; undefined8 uVar9; int *piVar10; undefined1 auStack_1ad8 [32]; longlong local_1ab8; longlong *local_1aa8; uint uStack_1aa0; undefined4 uStack_1a9c; undefined4 local_1a98; undefined4 local_1a94; undefined8 local_1a90; undefined4 local_1a88; undefined8 local_1a80; undefined4 local_1a78; undefined4 local_1a74; undefined4 local_1a70; undefined1 local_1a6c; undefined1 local_1a6b; undefined1 local_1a6a; undefined4 local_1a68; undefined8 local_1a60; undefined1 local_1a58; undefined1 local_1a57; int local_1a50 [2]; wchar_t *local_1a48; undefined4 local_1a40; undefined4 local_1a3c; undefined8 local_1a38; undefined4 local_1a28 [2]; longlong local_1a20; longlong local_1a18; uint local_1a10; int local_1a0c; undefined1 local_1a00 [136]; undefined1 local_1978 [3200]; undefined1 *local_cf8; int local_cf0; int local_cec; longlong local_ce8; undefined8 uStack_ce0; longlong *local_68; undefined4 local_60; int local_5c; ulonglong local_58; undefined8 uStack_48; uStack_48 = 0x1400bf37f; local_1a38 = 0xfffffffffffffffe; local_58 = DAT_1401ac5a0 ^ (ulonglong)auStack_1ad8; lVar8 = param_4; FUN_140078020(param_4,param_2,param_3,param_4); FUN_1400bca00(local_1a28); SVar5 = 0x80; puVar3 = local_1a00; FUN_1400bc680((longlong)local_1a28,(longlong)puVar3,0x80,lVar8); FUN_140054a10((longlong)local_1a28,CONCAT71((int7)((ulonglong)puVar3 >> 8),2),SVar5,lVar8); lVar4 = (longlong)param_6; FUN_1400bddd0((longlong)local_1a28,lVar4,SVar5,lVar8); local_cec = 200; local_cf0 = 0; local_cf8 = local_1978; local_5c = 200; local_60 = 0; local_68 = &local_ce8; if (local_1a20 == 0) { if (local_1a18 == 0) { /* WARNING: Subroutine does not return */ FUN_1400d1900(0,lVar4,SVar5,lVar8); } } else { local_1a10 = *(uint *)(local_1a20 + 0x18); } local_1aa8 = (longlong *)local_1a18; if (local_1a18 == 0) { if (local_1a20 == 0) { /* WARNING: Subroutine does not return */ FUN_1400d1900(0,(ulonglong)local_1a10,SVar5,lVar8); } local_1aa8 = (longlong *)0; if (*(int *)(local_1a20 + 0x18) != 0) { local_1aa8 = *(longlong **)(local_1a20 + 0x10); } } local_60 = 1; uStack_ce0 = CONCAT44(uStack_1a9c,local_1a10); uStack_1aa0 = local_1a10; local_ce8 = (longlong)local_1aa8; FUN_14007cb60((longlong)local_1978,(longlong)&local_ce8,SVar5,lVar8); if (local_68 == (longlong *)0x0) { FUN_14006ba50((exception *)&local_1a98, (wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_1401ad9a0,SVar5,lVar8); /* WARNING: Subroutine does not return */ _CxxThrowException(&local_1a98,(ThrowInfo *)&DAT_1401a93e8); } if (local_5c < 0) { /* WARNING: Subroutine does not return */ FUN_14006be00(); } uStack_1aa0 = param_6; if (local_cf8 == (undefined1 *)0x0) { FUN_14006ba50((exception *)&local_1a98, (wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_1401ad9a0,SVar5,lVar8); /* WARNING: Subroutine does not return */ _CxxThrowException(&local_1a98,(ThrowInfo *)&DAT_1401a93e8); } if (local_cf0 < 0) { /* WARNING: Subroutine does not return */ FUN_14006be00(); } iVar2 = local_cf0 + 1; if ((iVar2 < 0) || (local_cec < iVar2)) { /* WARNING: Subroutine does not return */ FUN_14006be00(); } *(undefined8 *)(local_cf8 + (longlong)local_cf0 * 0x10) = param_5; *(ulonglong *)(local_cf8 + (longlong)local_cf0 * 0x10 + 8) = CONCAT44(uStack_1a9c,param_6); local_1a98 = *(undefined4 *)(param_4 + 0x2c); local_1a94 = *(undefined4 *)(param_4 + 8); local_1a90 = *(undefined8 *)(param_4 + 0x10); local_1a88 = *(undefined4 *)(param_4 + 0x18); local_1a80 = *(undefined8 *)(param_4 + 0x20); local_1a78 = *(undefined4 *)(param_4 + 0x28); local_1a6b = *(undefined1 *)(param_4 + 0x30); local_1a6c = *(undefined1 *)(param_4 + 0x40); local_1a6a = *(undefined1 *)(param_4 + 0x41); local_1a74 = *(undefined4 *)(param_4 + 0x54); local_1a68 = 0xffffffff; local_1a60 = *(undefined8 *)(param_4 + 0x48); local_1a57 = *(undefined1 *)(param_4 + 0x50); local_1a58 = DAT_1401ac1cc; local_1a70 = *(undefined4 *)(param_4 + 0x58); local_1ab8 = CONCAT44(local_1ab8._4_4_,(int)param_3); puVar6 = &local_1a98; puVar3 = local_1978; uVar9 = param_2; local_cf0 = iVar2; uVar1 = (**(code **)(*param_1 + 0x28))(param_1); local_1a50[0] = FUN_1400de5d0((longlong)local_1978,puVar3,puVar6,uVar9); local_1a50[1] = 0; local_1a48 = L""; local_1a40 = *(undefined4 *)(param_4 + 0x54); local_1a3c = *(undefined4 *)(param_4 + 0x58); piVar10 = local_1a50; uVar7 = param_3 & 0xffffffff; local_1ab8 = param_4; (**(code **)(*param_1 + 0x68))(param_1,param_2); if (local_cf8 == (undefined1 *)0x0) { FUN_14006ba50((exception *)&local_1a98, (wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_1401ad9a0,uVar7,piVar10); /* WARNING: Subroutine does not return */ _CxxThrowException(&local_1a98,(ThrowInfo *)&DAT_1401a93e8); } if (-1 < local_cec) { local_cf0 = 0; local_1aa8 = &local_1a20; FUN_1400d1800(&local_1a20); if ((local_1a18 != 0) && (local_1a0c < 0)) { /* WARNING: Subroutine does not return */ FUN_14006be00(); } return uVar1; } /* WARNING: Subroutine does not return */ FUN_14006be00(); }