/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401bf630 FUN_1401bf630 * Pseudocode, not original source. */ void FUN_1401bf630(longlong param_1,int param_2,longlong param_3,int param_4) { longlong lVar1; longlong lVar2; int iVar3; longlong lVar4; undefined2 *puVar5; longlong lVar6; longlong lVar7; lVar2 = (longlong)param_4; if (((-1 < param_4) && (-1 < param_2)) && (param_2 <= *(int *)(param_1 + 0x18))) { iVar3 = *(int *)(param_1 + 0x18); FUN_1401a7d90(param_1,iVar3 + param_4); iVar3 = iVar3 - param_2; if ((0 < iVar3) && (iVar3 = iVar3 + -1, lVar6 = (longlong)iVar3, -1 < iVar3)) { lVar7 = (lVar6 + param_2 + lVar2) * 0x48; do { lVar1 = FUN_14016ab80(param_1); lVar4 = lVar2 * -0x48 + lVar1 + lVar7; lVar1 = FUN_14016ab80(param_1); lVar1 = lVar7 + lVar1; FUN_1401bede0(lVar1,lVar4); lVar7 = lVar7 + -0x48; lVar6 = lVar6 + -1; *(undefined4 *)(lVar1 + 0x28) = *(undefined4 *)(lVar4 + 0x28); *(undefined4 *)(lVar1 + 0x38) = *(undefined4 *)(lVar4 + 0x38); *(undefined2 *)(lVar1 + 0x3c) = *(undefined2 *)(lVar4 + 0x3c); *(undefined1 *)(lVar1 + 0x40) = *(undefined1 *)(lVar4 + 0x40); } while (-1 < lVar6); } if (0 < lVar2) { puVar5 = (undefined2 *)(param_3 + 0x3c); do { lVar6 = FUN_14016ab80(param_1); lVar6 = ((longlong)param_2 * 0x48 - param_3) + -0x3c + lVar6 + (longlong)puVar5; FUN_1401bede0(lVar6,puVar5 + -0x1e); lVar2 = lVar2 + -1; *(undefined4 *)(lVar6 + 0x28) = *(undefined4 *)(puVar5 + -10); *(undefined4 *)(lVar6 + 0x38) = *(undefined4 *)(puVar5 + -2); *(undefined2 *)(lVar6 + 0x3c) = *puVar5; *(undefined1 *)(lVar6 + 0x40) = *(undefined1 *)(puVar5 + 2); puVar5 = puVar5 + 0x24; } while (lVar2 != 0); } return; } /* WARNING: Subroutine does not return */ FUN_14016d6b0(); }