/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400db760 FUN_1400db760 * Pseudocode, not original source. */ void FUN_1400db760(longlong param_1,int param_2,longlong param_3,undefined8 param_4) { longlong lVar1; undefined4 *puVar2; longlong lVar3; int iVar4; undefined4 *puVar5; undefined2 *puVar6; int iVar7; longlong lVar8; longlong lVar9; iVar7 = (int)param_4; lVar3 = (longlong)iVar7; if (((-1 < iVar7) && (-1 < param_2)) && (param_2 <= *(int *)(param_1 + 0x18))) { iVar4 = *(int *)(param_1 + 0x18); FUN_1400ac2e0(param_1,iVar4 + iVar7,param_3,param_4); iVar4 = iVar4 - param_2; if ((0 < iVar4) && (iVar4 = iVar4 + -1, lVar8 = (longlong)iVar4, -1 < iVar4)) { lVar9 = (lVar8 + param_2 + lVar3) * 0x48; do { lVar1 = FUN_14007a110(param_1); puVar5 = (undefined4 *)(lVar3 * -0x48 + lVar1 + lVar9); lVar1 = FUN_14007a110(param_1); puVar2 = (undefined4 *)(lVar9 + lVar1); FUN_1400a1320(puVar2,puVar5); lVar9 = lVar9 + -0x48; lVar8 = lVar8 + -1; puVar2[10] = puVar5[10]; puVar2[0xe] = puVar5[0xe]; *(undefined2 *)(puVar2 + 0xf) = *(undefined2 *)(puVar5 + 0xf); *(undefined1 *)(puVar2 + 0x10) = *(undefined1 *)(puVar5 + 0x10); } while (-1 < lVar8); } if (0 < lVar3) { puVar6 = (undefined2 *)(param_3 + 0x3c); do { lVar8 = FUN_14007a110(param_1); puVar2 = (undefined4 *) (((longlong)param_2 * 0x48 - param_3) + -0x3c + lVar8 + (longlong)puVar6); FUN_1400a1320(puVar2,(undefined4 *)(puVar6 + -0x1e)); lVar3 = lVar3 + -1; puVar2[10] = *(undefined4 *)(puVar6 + -10); puVar2[0xe] = *(undefined4 *)(puVar6 + -2); *(undefined2 *)(puVar2 + 0xf) = *puVar6; *(undefined1 *)(puVar2 + 0x10) = *(undefined1 *)(puVar6 + 2); puVar6 = puVar6 + 0x24; } while (lVar3 != 0); } return; } /* WARNING: Subroutine does not return */ FUN_14006be00(); }