Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- onst void *__thiscall sub_414CE0(const void **this, unsigned int a2)
- {
- const void **v2; // esi
- unsigned int v3; // ebx
- unsigned int v4; // edi
- unsigned int v5; // ecx
- void *v6; // ecx
- const void *result; // eax
- size_t v8; // [esp-4h] [ebp-30h]
- const void *v9; // [esp+18h] [ebp-14h]
- v2 = this;
- if ( a2 > 0x7FFFFFFE )
- sub_41E6EA();
- v3 = (unsigned int)this[5];
- v4 = a2 | 7;
- if ( (a2 | 7) <= 0x7FFFFFFE )
- {
- v5 = v3 >> 1;
- if ( v3 >> 1 > v4 / 3 )
- {
- v4 = 2147483646;
- if ( v3 <= 2147483646 - v5 )
- v4 = v5 + v3;
- }
- }
- else
- {
- v4 = a2;
- }
- v6 = std::_Allocate(v4 + 1, 2u, 1);
- v9 = v6;
- v8 = 2 * (_DWORD)v2[4] + 2;
- if ( (unsigned int)v2[5] < 8 )
- {
- memmove_0(v6, v2, v8);
- }
- else
- {
- memmove_0(v6, *v2, v8);
- std::_Deallocate((void *)*v2, v3 + 1, 2u);
- }
- result = v9;
- *v2 = v9;
- v2[5] = (const void *)v4;
- return result;
- }
- void **__thiscall sub_414E9E(void **this, void **a2, unsigned int a3, unsigned int a4)
- {
- _DWORD *v4; // ebx
- void **v5; // esi
- unsigned int v6; // edi
- unsigned int v7; // edi
- void *v8; // ecx
- _WORD *v9; // eax
- v4 = a2;
- v5 = this;
- v6 = (unsigned int)a2[4];
- if ( v6 < a3 )
- sub_414E93();
- v7 = v6 - a3;
- if ( v7 >= a4 )
- v7 = a4;
- if ( this == a2 )
- {
- std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>::erase(v7 + a3);
- std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>::erase(0, a3);
- }
- else if ( (unsigned __int8)std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>::_Grow(v7) )
- {
- if ( (unsigned int)a2[5] >= 8 )
- v4 = *a2;
- if ( (unsigned int)v5[5] < 8 )
- v8 = v5;
- else
- v8 = *v5;
- memmove_0(v8, (char *)v4 + 2 * a3, 2 * v7);
- v5[4] = (void *)v7;
- if ( (unsigned int)v5[5] < 8 )
- v9 = v5;
- else
- v9 = *v5;
- v9[v7] = 0;
- }
- return v5;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement