undefined8 FUN_1400137f0(longlong param_1,uint param_2,undefined8 param_3,int *param_4,undefined8 *param_5) { ulonglong *puVar1; undefined8 *puVar2; uint *puVar3; LPVOID pvVar4; int *piVar5; undefined8 *puVar6; ulonglong *puVar7; undefined *puVar8; ulonglong *local_d8; ulonglong *local_d0; undefined8 local_c8; ulonglong *local_b8; ulonglong *local_b0; undefined8 local_a8; ulonglong *local_98; ulonglong *local_90; undefined8 local_88; undefined **local_78; longlong *local_70; LPVOID local_68; ulonglong local_60; undefined8 local_58; ulonglong *local_50; ulonglong *local_48; undefined8 local_40; undefined8 local_30; local_30 = 0xfffffffffffffffe; puVar6 = (undefined8 *)0x0; if (*(longlong *)(DAT_14017cf20 + 0x58) != 0) { for (puVar2 = *(undefined8 **) (*(longlong *)(DAT_14017cf20 + 0x38) + ((ulonglong)(longlong)*param_4 % *(ulonglong *)(DAT_14017cf20 + 0x40)) * 8); puVar2 != (undefined8 *)0x0; puVar2 = (undefined8 *)*puVar2) { if (*param_4 == *(int *)(puVar2 + 1)) { if ((puVar2 != (undefined8 *)0x0) && (puVar3 = (uint *)puVar2[2], puVar6 = puVar2, puVar3 != (uint *)0x0)) { *(undefined8 *)(puVar3 + 0x28) = *param_5; *(undefined8 *)(puVar3 + 0x2a) = param_5[1]; *(undefined8 *)(puVar3 + 0x2c) = param_5[2]; FUN_140011f00(*(longlong *)(param_1 + 0x70),*param_4,param_5); if ((char)puVar3[3] == '\r') { puVar3[0x28] = param_2; puVar3[0x31] = 1; local_98 = (ulonglong *)0x0; local_90 = (ulonglong *)0x0; local_88 = 0; FUN_14003a0d0(DAT_14017cf20,(ulonglong *)&local_98,puVar3[2]); local_b8 = (ulonglong *)0x0; local_b0 = (ulonglong *)0x0; local_a8 = 0; FUN_140039cd0(DAT_14017cf20,(ulonglong *)&local_b8,'\x15'); piVar5 = (int *)FUN_14003b000(DAT_14017cf50,&local_50); puVar8 = &DAT_14016f5d0; (**(code **)(*(longlong *)(param_1 + 0x40) + 0x30)) ((longlong *)(param_1 + 0x40),param_2,&DAT_14016f5d0,piVar5,&local_98, &local_b8); if (local_50 != (ulonglong *)0x0) { if (local_50 != local_48) { puVar7 = local_50 + 4; do { if (7 < *puVar7) { operator_delete((void *)puVar7[-3]); } *puVar7 = 7; puVar7[-1] = 0; *(undefined2 *)(puVar7 + -3) = 0; puVar1 = puVar7 + 2; puVar7 = puVar7 + 6; } while (puVar1 != local_48); } operator_delete(local_50); } local_50 = (ulonglong *)0x0; local_48 = (ulonglong *)0x0; local_40 = 0; if (local_b8 != (ulonglong *)0x0) { FUN_14000a5f0(local_b8,local_b0); operator_delete(local_b8); } local_b8 = (ulonglong *)0x0; local_b0 = (ulonglong *)0x0; local_a8 = 0; if (local_98 != (ulonglong *)0x0) { FUN_14000a5f0(local_98,local_90); operator_delete(local_98); } local_98 = (ulonglong *)0x0; local_90 = (ulonglong *)0x0; local_88 = 0; } else { local_d8 = (ulonglong *)0x0; local_d0 = (ulonglong *)0x0; local_c8 = 0; FUN_140039f50(DAT_14017cf20,(ulonglong *)&local_d8,*puVar3); if (*(char *)(DAT_14017cf28 + 0x166) != '\0') { FUN_140039cd0(DAT_14017cf20,(ulonglong *)&local_d8,'\b'); } puVar8 = &DAT_14016f5d0; piVar5 = param_4; (**(code **)(*(longlong *)(param_1 + 0x40) + 0x40)) ((longlong *)(param_1 + 0x40),param_2,&DAT_14016f5d0,param_4,&local_d8); if (local_d8 != (ulonglong *)0x0) { FUN_14000a5f0(local_d8,local_d0); operator_delete(local_d8); } local_d8 = (ulonglong *)0x0; local_d0 = (ulonglong *)0x0; local_c8 = 0; } if (*(longlong *)(param_1 + 0x68) != 0) { piVar5 = (int *)(ulonglong)(byte)puVar3[3]; puVar8 = (undefined *)(ulonglong)*puVar3; FUN_14000ae50(*(longlong *)(param_1 + 0x68),1,*puVar3,piVar5,0x14012e3d0,0,*param_4); } local_78 = Proud::CFastArray::vftable; local_70 = (longlong *)0x0; local_68 = (LPVOID)0x0; local_60 = 0; local_58 = 0; puVar6 = (undefined8 *) FUN_140039670(DAT_14017cf20,(longlong)&local_78,puVar8,(longlong)piVar5); pvVar4 = local_68; if ((int)local_60 == 0) { if (local_68 == (LPVOID)0x0) break; if (local_70 != (longlong *)0x0) { puVar6 = (undefined8 *)(**(code **)(*local_70 + 0x18))(local_70,local_68); break; } } else { puVar6 = (undefined8 *) (**(code **)(*(longlong *)(param_1 + 0x40) + 0x68)) ((longlong *)(param_1 + 0x40),local_68,local_60 & 0xffffffff, &DAT_14016f5d0,param_4); if (pvVar4 == (LPVOID)0x0) break; if (local_70 != (longlong *)0x0) { puVar6 = (undefined8 *)(**(code **)(*local_70 + 0x18))(local_70,pvVar4); break; } } puVar6 = (undefined8 *)FUN_14003e8b0(pvVar4); } break; } } } return CONCAT71((int7)((ulonglong)puVar6 >> 8),1); }