/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401a2e00 FUN_1401a2e00 * Pseudocode, not original source. */ void FUN_1401a2e00(longlong param_1,ULONG_PTR param_2,LPOVERLAPPED param_3) { undefined8 uVar1; longlong *plVar2; undefined8 *puVar3; uint uStack_c; if (*(HANDLE *)(param_1 + 0x28) == (HANDLE)0x0) { FUN_14016db50(param_1 + 0x50); uVar1 = *(undefined8 *)(param_1 + 0x98); plVar2 = *(longlong **)(param_1 + 0x88); if (plVar2 == (longlong *)0x0) { puVar3 = (undefined8 *)FUN_14016d940(0x28); } else { puVar3 = (undefined8 *)(**(code **)(*plVar2 + 8))(plVar2,0x28); } if (puVar3 != (undefined8 *)0x0) { puVar3[2] = param_2; puVar3[3] = param_3; puVar3[4] = (ulonglong)uStack_c << 0x20; } puVar3[1] = uVar1; *puVar3 = 0; *(longlong *)(param_1 + 0xa0) = *(longlong *)(param_1 + 0xa0) + 1; if (*(undefined8 **)(param_1 + 0x98) == (undefined8 *)0x0) { *(undefined8 **)(param_1 + 0x90) = puVar3; } else { **(undefined8 **)(param_1 + 0x98) = puVar3; } *(undefined8 **)(param_1 + 0x98) = puVar3; FUN_14016dbe0(param_1 + 0x50); } else { PostQueuedCompletionStatus(*(HANDLE *)(param_1 + 0x28),0,param_2,param_3); } return; }