decompiled agent_release
This commit is contained in:
parent
baac905ef2
commit
11a3488883
6439 changed files with 229565 additions and 1 deletions
113
decomp/Agent_Release_x64/full/functions/0x14000a630.c
Normal file
113
decomp/Agent_Release_x64/full/functions/0x14000a630.c
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
|
||||
* Ghidra 12.1.2 decompiler output for 0x14000a630 FUN_14000a630
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
wchar_t FUN_14000a630(basic_streambuf<wchar_t,std::char_traits<wchar_t>_> *param_1,wchar_t param_2)
|
||||
|
||||
{
|
||||
void *pvVar1;
|
||||
basic_streambuf<wchar_t,std::char_traits<wchar_t>_> bVar2;
|
||||
int iVar3;
|
||||
void *_Src;
|
||||
longlong lVar4;
|
||||
longlong lVar5;
|
||||
wchar_t *pwVar6;
|
||||
ulonglong uVar7;
|
||||
void *pvVar8;
|
||||
undefined4 uVar9;
|
||||
ulonglong uVar10;
|
||||
|
||||
if (((byte)param_1[0x78] & 8) != 0) {
|
||||
uVar7 = **(ulonglong **)(param_1 + 0x48);
|
||||
if ((uVar7 != 0) && (uVar10 = *(ulonglong *)(param_1 + 0x70), uVar7 < uVar10)) {
|
||||
iVar3 = **(int **)(param_1 + 0x60);
|
||||
**(ulonglong **)(param_1 + 0x48) = uVar10;
|
||||
**(undefined4 **)(param_1 + 0x60) =
|
||||
(int)((longlong)((uVar7 + (longlong)iVar3 * 2) - uVar10) >> 1);
|
||||
}
|
||||
}
|
||||
if (param_2 == L'\xffff') {
|
||||
return L'\0';
|
||||
}
|
||||
uVar7 = **(ulonglong **)(param_1 + 0x48);
|
||||
if ((uVar7 != 0) && (uVar7 < uVar7 + (longlong)**(int **)(param_1 + 0x60) * 2)) {
|
||||
pwVar6 = std::basic_streambuf<wchar_t,std::char_traits<wchar_t>_>::_Pninc(param_1);
|
||||
*pwVar6 = param_2;
|
||||
return param_2;
|
||||
}
|
||||
if (((byte)param_1[0x78] & 2) != 0) {
|
||||
return L'\xffff';
|
||||
}
|
||||
uVar10 = 0;
|
||||
if (uVar7 != 0) {
|
||||
uVar10 = (longlong)
|
||||
(((longlong)**(int **)(param_1 + 0x60) * 2 - **(longlong **)(param_1 + 0x20)) + uVar7)
|
||||
>> 1;
|
||||
}
|
||||
uVar7 = uVar10 >> 1;
|
||||
if (uVar7 < 0x20) {
|
||||
uVar7 = 0x20;
|
||||
}
|
||||
else if (uVar7 == 0) {
|
||||
return L'\xffff';
|
||||
}
|
||||
do {
|
||||
if (uVar10 <= 0x7fffffff - uVar7) break;
|
||||
uVar7 = uVar7 >> 1;
|
||||
} while (uVar7 != 0);
|
||||
if (uVar7 == 0) {
|
||||
return L'\xffff';
|
||||
}
|
||||
uVar7 = uVar7 + uVar10;
|
||||
pvVar8 = FUN_140001a50(uVar7);
|
||||
_Src = (void *)**(undefined8 **)(param_1 + 0x20);
|
||||
uVar9 = (undefined4)((longlong)pvVar8 >> 1);
|
||||
if ((uVar10 == 0) || (memcpy(pvVar8,_Src,uVar10 * 2), uVar10 == 0)) {
|
||||
*(void **)(param_1 + 0x70) = pvVar8;
|
||||
**(undefined8 **)(param_1 + 0x28) = pvVar8;
|
||||
**(undefined8 **)(param_1 + 0x48) = pvVar8;
|
||||
**(undefined4 **)(param_1 + 0x60) = (int)((longlong)(uVar7 * 2) >> 1);
|
||||
bVar2 = param_1[0x78];
|
||||
**(undefined8 **)(param_1 + 0x20) = pvVar8;
|
||||
if (((byte)bVar2 & 4) == 0) {
|
||||
**(undefined8 **)(param_1 + 0x40) = pvVar8;
|
||||
**(undefined4 **)(param_1 + 0x58) = 1;
|
||||
}
|
||||
else {
|
||||
**(undefined8 **)(param_1 + 0x40) = 0;
|
||||
**(undefined4 **)(param_1 + 0x58) = uVar9;
|
||||
}
|
||||
}
|
||||
else {
|
||||
*(void **)(param_1 + 0x70) =
|
||||
(void *)((longlong)pvVar8 + (*(longlong *)(param_1 + 0x70) - (longlong)_Src >> 1) * 2);
|
||||
pvVar1 = (void *)((longlong)pvVar8 + (**(longlong **)(param_1 + 0x48) - (longlong)_Src >> 1) * 2
|
||||
);
|
||||
**(longlong **)(param_1 + 0x28) =
|
||||
(longlong)((longlong)pvVar8 + (**(longlong **)(param_1 + 0x28) - (longlong)_Src >> 1) * 2);
|
||||
**(longlong **)(param_1 + 0x48) = (longlong)pvVar1;
|
||||
**(undefined4 **)(param_1 + 0x60) =
|
||||
(int)((longlong)((uVar7 * 2 - (longlong)pvVar1) + (longlong)pvVar8) >> 1);
|
||||
if (((byte)param_1[0x78] & 4) == 0) {
|
||||
lVar4 = **(longlong **)(param_1 + 0x48);
|
||||
lVar5 = **(longlong **)(param_1 + 0x40);
|
||||
**(undefined8 **)(param_1 + 0x20) = pvVar8;
|
||||
pvVar8 = (void *)((longlong)pvVar8 + (lVar5 - (longlong)_Src >> 1) * 2);
|
||||
**(longlong **)(param_1 + 0x40) = (longlong)pvVar8;
|
||||
**(undefined4 **)(param_1 + 0x58) = (int)((lVar4 - (longlong)pvVar8) + 2 >> 1);
|
||||
}
|
||||
else {
|
||||
**(undefined8 **)(param_1 + 0x20) = pvVar8;
|
||||
**(undefined8 **)(param_1 + 0x40) = 0;
|
||||
**(undefined4 **)(param_1 + 0x58) = uVar9;
|
||||
}
|
||||
}
|
||||
if (((byte)param_1[0x78] & 1) != 0) {
|
||||
operator_delete(_Src);
|
||||
}
|
||||
*(uint *)(param_1 + 0x78) = *(uint *)(param_1 + 0x78) | 1;
|
||||
pwVar6 = std::basic_streambuf<wchar_t,std::char_traits<wchar_t>_>::_Pninc(param_1);
|
||||
*pwVar6 = param_2;
|
||||
return param_2;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue