/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x14004b930 FUN_14004b930 * Pseudocode, not original source. */ ulonglong FUN_14004b930(longlong param_1,uint param_2) { int *piVar1; longlong *plVar2; longlong lVar3; short *psVar4; int *piVar5; int *piVar6; ulonglong uVar7; uint *puVar8; longlong lVar9; short *psVar10; ulonglong uVar11; undefined8 uVar12; short *local_res8; plVar2 = (longlong *)(param_1 + -0xa8); piVar5 = (int *)(**(code **)(*plVar2 + 0x58))(plVar2); FUN_14002e6e0(piVar5); if (DAT_14015bfcf != '\0') { (**(code **)(*plVar2 + 200))(plVar2); } uVar11 = (ulonglong)*(uint *)(param_1 + 0xbf8); uVar7 = (ulonglong)param_2 % uVar11; if ((*(longlong *)(param_1 + 0xbd8) != 0) && (puVar8 = *(uint **)(*(longlong *)(param_1 + 0xbd8) + uVar7 * 8), puVar8 != (uint *)0x0)) { while ((int)uVar7 == (int)((ulonglong)puVar8[8] % uVar11)) { if (*puVar8 == param_2) { lVar3 = *(longlong *)(puVar8 + 2); if ((lVar3 != 0) && (*(longlong *)(lVar3 + 0x228) == 0)) { if (*(longlong *)(param_1 + 0x1748) != 0) { FUN_140030200(puVar8,(ulonglong)puVar8[8] % uVar11,uVar7,uVar11); local_res8 = (short *)PTR_DAT_140155010; FUN_14001b7a0((longlong *)&local_res8, L"CNetServer.CloseConnection(%d)를 콜 하였습니다.", (ulonglong)param_2,uVar11); psVar4 = local_res8; psVar10 = local_res8; if (local_res8 == (short *)0x0) { psVar10 = (short *)PTR_DAT_140155010; } uVar12 = 0; lVar9 = *(longlong *)(param_1 + 0x1748); FUN_14008f2e0(lVar9,0,psVar10,uVar11); if (((psVar4 != (short *)0x0) && (psVar4 != (short *)PTR_DAT_140155010)) && (psVar4 + -4 != (short *)0x0)) { piVar6 = (int *)FUN_140030200(lVar9,uVar12,psVar10,uVar11); FUN_14002e6e0(piVar6); piVar1 = (int *)(psVar4 + -2); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_1400302f0(psVar4 + -4); } FUN_14002e770((longlong)piVar6); } } if (*(double *)(lVar3 + 0x758) == 0.0) { uVar12 = (**(code **)(*(longlong *)(param_1 + 0x70) + 8))(); *(undefined8 *)(lVar3 + 0x758) = uVar12; (**(code **)(*(longlong *)(param_1 + 0x400) + 0x100)) ((longlong *)(param_1 + 0x400),*(undefined4 *)(lVar3 + 0x6f8),&DAT_14015de10); } uVar12 = FUN_14002e770((longlong)piVar5); return CONCAT71((int7)((ulonglong)uVar12 >> 8),1); } break; } puVar8 = *(uint **)(puVar8 + 4); if (puVar8 == (uint *)0x0) break; } } uVar7 = FUN_14002e770((longlong)piVar5); return uVar7 & 0xffffffffffffff00; }