/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400e1030 FUN_1400e1030 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ void FUN_1400e1030(longlong param_1,undefined8 param_2,uint *param_3,undefined8 param_4) { longlong lVar1; undefined8 uVar2; longlong lVar3; longlong lVar4; ulonglong uVar5; double dVar6; undefined1 auStack_668 [32]; uint local_648 [4]; undefined4 local_638 [392]; ulonglong local_18; local_18 = DAT_1401ac5a0 ^ (ulonglong)auStack_668; dVar6 = (double)(**(code **)(*(longlong *)(*(longlong *)(param_1 + 0x108) + 0x70) + 0x1c0)) (*(longlong *)(param_1 + 0x108) + 0x70); if (dVar6 - *(double *)(param_1 + 200) <= DAT_1401ac060) { FUN_140071820(local_638); lVar1 = FUN_1400a0f10(*(longlong *)(param_1 + 0x108)); lVar4 = 0; if (*(longlong **)(lVar1 + 0x128) != (longlong *)0x0) { lVar4 = **(longlong **)(lVar1 + 0x128); } FUN_140071840((longlong)local_638,lVar4); lVar1 = FUN_1400a0f10(*(longlong *)(param_1 + 0x108)); lVar4 = 0; if (*(longlong **)(lVar1 + 0x128) != (longlong *)0x0) { lVar4 = **(longlong **)(lVar1 + 0x128); } FUN_1400718a0((longlong)local_638,lVar4); FUN_140071900((longlong)local_638,0); lVar1 = FUN_1400a0f10(*(longlong *)(param_1 + 0x108)); lVar4 = 0; if (*(longlong **)(lVar1 + 0x128) != (longlong *)0x0) { lVar4 = **(longlong **)(lVar1 + 0x128); } param_3 = local_648; uVar2 = FUN_140071960((longlong)local_638,lVar4,param_3); if ((char)uVar2 == '\0') { return; } if (local_648[0] == 0) { lVar3 = FUN_1400a0f10(*(longlong *)(param_1 + 0x108)); lVar1 = 0; if (*(longlong **)(lVar3 + 0x128) != (longlong *)0x0) { lVar1 = **(longlong **)(lVar3 + 0x128); } uVar2 = CONCAT71((int7)((ulonglong)lVar4 >> 8),1); FUN_1400717a0(lVar1,'\x01'); lVar4 = FUN_1400a0f10(*(longlong *)(param_1 + 0x108)); FUN_1400ef580(lVar4,uVar2,param_3,param_4); lVar4 = FUN_1400a0f10(*(longlong *)(param_1 + 0x108)); uVar5 = FUN_14006fbe0(lVar4 + 0x110); if ((char)uVar5 == '\0') { FUN_14006c280( L"서버와 TCP 연결이 되었는데도 로컬 소켓 주소를 얻을 수 없다니!" ); } if (1 < *(int *)(param_1 + 0x100)) { return; } *(undefined4 *)(param_1 + 0x40) = 0; *(undefined4 *)(param_1 + 0x100) = 2; uVar2 = (**(code **)(*(longlong *)(*(longlong *)(param_1 + 0x108) + 0x70) + 0x1c0)) (*(longlong *)(param_1 + 0x108) + 0x70); *(undefined8 *)(param_1 + 0x80) = uVar2; *(undefined1 *)(param_1 + 0xc0) = 0; return; } lVar4 = FUN_1400e0f80(param_1,local_648,param_3,param_4); if ((char)lVar4 != '\0') { return; } } else { local_648[0] = 0x274c; } FUN_1400e0130(param_1,local_648[0],param_3,param_4); return; }