// 00116006 std::string::_Rep::_M_dispose /* WARNING: Removing unreachable block (ram,0x0011601a) */ /* std::string::_Rep::_M_dispose(std::allocator const&) [clone .part.0] */ void std::string::_Rep::_M_dispose(allocator *param_1) { allocator *paVar1; int iVar2; LOCK(); paVar1 = param_1 + 0x10; iVar2 = *(int *)paVar1; *(int *)paVar1 = *(int *)paVar1 + -1; UNLOCK(); if (0 < iVar2) { return; } _M_destroy(param_1); return; } // 0011637c std::string::_Rep::_M_dispose /* WARNING: Removing unreachable block (ram,0x00116390) */ /* std::string::_Rep::_M_dispose(std::allocator const&) [clone .part.0] */ void std::string::_Rep::_M_dispose(allocator *param_1) { allocator *paVar1; int iVar2; LOCK(); paVar1 = param_1 + 0x10; iVar2 = *(int *)paVar1; *(int *)paVar1 = *(int *)paVar1 + -1; UNLOCK(); if (0 < iVar2) { return; } _M_destroy(param_1); return; } // 00116864 std::string::_Rep::_M_dispose /* WARNING: Removing unreachable block (ram,0x00116878) */ /* std::string::_Rep::_M_dispose(std::allocator const&) [clone .part.0] */ void std::string::_Rep::_M_dispose(allocator *param_1) { allocator *paVar1; int iVar2; LOCK(); paVar1 = param_1 + 0x10; iVar2 = *(int *)paVar1; *(int *)paVar1 = *(int *)paVar1 + -1; UNLOCK(); if (0 < iVar2) { return; } _M_destroy(param_1); return; } // 00117ac4 std::string::_Rep::_M_dispose /* WARNING: Removing unreachable block (ram,0x00117ad8) */ /* std::string::_Rep::_M_dispose(std::allocator const&) [clone .part.0] */ void std::string::_Rep::_M_dispose(allocator *param_1) { allocator *paVar1; int iVar2; LOCK(); paVar1 = param_1 + 0x10; iVar2 = *(int *)paVar1; *(int *)paVar1 = *(int *)paVar1 + -1; UNLOCK(); if (0 < iVar2) { return; } _M_destroy(param_1); return; } // 0011876c std::string::_Rep::_M_dispose /* WARNING: Removing unreachable block (ram,0x00118780) */ /* std::string::_Rep::_M_dispose(std::allocator const&) [clone .part.0] */ void std::string::_Rep::_M_dispose(allocator *param_1) { allocator *paVar1; int iVar2; LOCK(); paVar1 = param_1 + 0x10; iVar2 = *(int *)paVar1; *(int *)paVar1 = *(int *)paVar1 + -1; UNLOCK(); if (0 < iVar2) { return; } _M_destroy(param_1); return; } // 00119caa std::string::_Rep::_M_dispose /* WARNING: Removing unreachable block (ram,0x00119cbe) */ /* std::string::_Rep::_M_dispose(std::allocator const&) [clone .part.0] */ void std::string::_Rep::_M_dispose(allocator *param_1) { allocator *paVar1; int iVar2; LOCK(); paVar1 = param_1 + 0x10; iVar2 = *(int *)paVar1; *(int *)paVar1 = *(int *)paVar1 + -1; UNLOCK(); if (0 < iVar2) { return; } _M_destroy(param_1); return; } // 0011a840 std::string::_Rep::_M_dispose /* WARNING: Removing unreachable block (ram,0x0011a854) */ /* std::string::_Rep::_M_dispose(std::allocator const&) [clone .part.0] */ void std::string::_Rep::_M_dispose(allocator *param_1) { allocator *paVar1; int iVar2; LOCK(); paVar1 = param_1 + 0x10; iVar2 = *(int *)paVar1; *(int *)paVar1 = *(int *)paVar1 + -1; UNLOCK(); if (0 < iVar2) { return; } _M_destroy(param_1); return; } // 0011b660 std::string::_Rep::_M_dispose /* WARNING: Removing unreachable block (ram,0x0011b680) */ /* std::string::_Rep::_M_dispose(std::allocator const&) [clone .part.0] */ void std::string::_Rep::_M_dispose(allocator *param_1) { allocator *paVar1; int iVar2; LOCK(); paVar1 = param_1 + 0x10; iVar2 = *(int *)paVar1; *(int *)paVar1 = *(int *)paVar1 + -1; UNLOCK(); if (0 < iVar2) { return; } _M_destroy(param_1); return; } // 0011c280 std::string::_Rep::_M_dispose /* WARNING: Removing unreachable block (ram,0x0011c2a0) */ /* std::string::_Rep::_M_dispose(std::allocator const&) [clone .part.0] */ void std::string::_Rep::_M_dispose(allocator *param_1) { allocator *paVar1; int iVar2; LOCK(); paVar1 = param_1 + 0x10; iVar2 = *(int *)paVar1; *(int *)paVar1 = *(int *)paVar1 + -1; UNLOCK(); if (0 < iVar2) { return; } _M_destroy(param_1); return; } // 0013f9e0 std::string::_Rep::_M_dispose /* WARNING: Removing unreachable block (ram,0x0013fa00) */ /* std::string::_Rep::_M_dispose(std::allocator const&) [clone .part.0] */ void std::string::_Rep::_M_dispose(allocator *param_1) { allocator *paVar1; int iVar2; LOCK(); paVar1 = param_1 + 0x10; iVar2 = *(int *)paVar1; *(int *)paVar1 = *(int *)paVar1 + -1; UNLOCK(); if (0 < iVar2) { return; } _M_destroy(param_1); return; } // 00140730 std::string::_Rep::_M_dispose /* WARNING: Removing unreachable block (ram,0x00140750) */ /* std::string::_Rep::_M_dispose(std::allocator const&) [clone .part.0] */ void std::string::_Rep::_M_dispose(allocator *param_1) { allocator *paVar1; int iVar2; LOCK(); paVar1 = param_1 + 0x10; iVar2 = *(int *)paVar1; *(int *)paVar1 = *(int *)paVar1 + -1; UNLOCK(); if (0 < iVar2) { return; } _M_destroy(param_1); return; } // 00162c50 std::string::_Rep::_M_dispose /* WARNING: Removing unreachable block (ram,0x00162c70) */ /* std::string::_Rep::_M_dispose(std::allocator const&) [clone .part.0] */ void std::string::_Rep::_M_dispose(allocator *param_1) { allocator *paVar1; int iVar2; LOCK(); paVar1 = param_1 + 0x10; iVar2 = *(int *)paVar1; *(int *)paVar1 = *(int *)paVar1 + -1; UNLOCK(); if (0 < iVar2) { return; } _M_destroy(param_1); return; } // 00186a90 std::string::_Rep::_S_empty_rep /* std::string::_Rep::_S_empty_rep() */ undefined8 * std::string::_Rep::_S_empty_rep(void) { return &_S_empty_rep_storage; } // 00186aa0 std::string::_Rep::_M_is_leaked /* std::string::_Rep::_M_is_leaked() const */ uint __thiscall std::string::_Rep::_M_is_leaked(_Rep *this) { return *(uint *)(this + 0x10) >> 0x1f; } // 00186ab0 std::string::_Rep::_M_is_shared /* std::string::_Rep::_M_is_shared() const */ undefined4 __thiscall std::string::_Rep::_M_is_shared(_Rep *this) { return CONCAT31((int3)((uint)*(int *)(this + 0x10) >> 8),0 < *(int *)(this + 0x10)); } // 00186ac0 std::string::_Rep::_M_set_leaked /* std::string::_Rep::_M_set_leaked() */ void __thiscall std::string::_Rep::_M_set_leaked(_Rep *this) { *(undefined4 *)(this + 0x10) = 0xffffffff; return; } // 00186ad0 std::string::_Rep::_M_set_sharable /* std::string::_Rep::_M_set_sharable() */ void __thiscall std::string::_Rep::_M_set_sharable(_Rep *this) { *(undefined4 *)(this + 0x10) = 0; return; } // 00186ae0 std::string::_Rep::_M_set_length_and_sharable /* std::string::_Rep::_M_set_length_and_sharable(unsigned long) */ void __thiscall std::string::_Rep::_M_set_length_and_sharable(_Rep *this,ulong param_1) { if (this == (_Rep *)&_S_empty_rep_storage) { return; } *(undefined4 *)(this + 0x10) = 0; *(ulong *)this = param_1; this[param_1 + 0x18] = (_Rep)0x0; return; } // 00186b00 std::string::_Rep::_M_refdata /* std::string::_Rep::_M_refdata() */ _Rep * __thiscall std::string::_Rep::_M_refdata(_Rep *this) { return this + 0x18; } // 00186b10 std::string::_Rep::_S_create /* std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator const&) */ void std::string::_Rep::_S_create(ulong param_1,ulong param_2,allocator *param_3) { void *pvVar1; bad_alloc *this; if (0x3ffffffffffffff9 < param_1) { /* WARNING: Subroutine does not return */ __throw_length_error("basic_string::_S_create"); } if (param_2 < param_1) { if (param_1 < param_2 * 2) { param_1 = param_2 * 2; } if ((param_1 + 0x39 < 0x1001) || (param_1 <= param_2)) { this = (bad_alloc *)(param_1 + 0x19); if ((long)this < 0) { /* WARNING: Subroutine does not return */ bad_alloc::~bad_alloc(this); } } else { param_1 = (param_1 + 0x1000) - (ulong)((uint)(param_1 + 0x39) & 0xfff); if (0x3ffffffffffffff9 < param_1) { param_1 = 0x3ffffffffffffff9; } this = (bad_alloc *)(param_1 + 0x19); } } else { this = (bad_alloc *)(param_1 + 0x19); } pvVar1 = operator_new((ulong)this); *(ulong *)((long)pvVar1 + 8) = param_1; *(undefined4 *)((long)pvVar1 + 0x10) = 0; return; } // 00186d00 std::string::_Rep::_M_destroy /* std::string::_Rep::_M_destroy(std::allocator const&) */ void std::string::_Rep::_M_destroy(allocator *param_1) { free(param_1); return; } // 00186d10 std::string::_Rep::_M_dispose /* WARNING: Removing unreachable block (ram,0x00186d30) */ /* std::string::_Rep::_M_dispose(std::allocator const&) [clone .part.0] */ void std::string::_Rep::_M_dispose(allocator *param_1) { allocator *paVar1; int iVar2; LOCK(); paVar1 = param_1 + 0x10; iVar2 = *(int *)paVar1; *(int *)paVar1 = *(int *)paVar1 + -1; UNLOCK(); if (0 < iVar2) { return; } _M_destroy(param_1); return; } // 00186d50 std::string::_Rep::_M_dispose /* WARNING: Removing unreachable block (ram,0x00186d80) */ /* std::string::_Rep::_M_dispose(std::allocator const&) */ void std::string::_Rep::_M_dispose(allocator *param_1) { allocator *paVar1; int iVar2; if (param_1 != (allocator *)&_S_empty_rep_storage) { LOCK(); paVar1 = param_1 + 0x10; iVar2 = *(int *)paVar1; *(int *)paVar1 = *(int *)paVar1 + -1; UNLOCK(); if (iVar2 < 1) { _M_destroy(param_1); return; } } return; } // 001879c0 std::string::_Rep::_M_refcopy /* WARNING: Removing unreachable block (ram,0x001879e8) */ /* std::string::_Rep::_M_refcopy() */ _Rep * __thiscall std::string::_Rep::_M_refcopy(_Rep *this) { if (this != (_Rep *)&_S_empty_rep_storage) { LOCK(); *(int *)(this + 0x10) = *(int *)(this + 0x10) + 1; UNLOCK(); } return this + 0x18; } // 001879f0 std::string::_Rep::_M_clone /* std::string::_Rep::_M_clone(std::allocator const&, unsigned long) */ long * __thiscall std::string::_Rep::_M_clone(_Rep *this,allocator *param_1,ulong param_2) { size_t __n; long lVar1; long *plVar2; long *__dest; plVar2 = (long *)_S_create(*(long *)this + param_2,*(ulong *)(this + 8),param_1); __n = *(size_t *)this; __dest = plVar2 + 3; lVar1 = 0; if (__n != 0) { if (__n == 1) { *(_Rep *)(plVar2 + 3) = this[0x18]; lVar1 = *(long *)this; } else { __dest = memcpy(__dest,this + 0x18,__n); lVar1 = *(long *)this; } } if (plVar2 != &_S_empty_rep_storage) { *(undefined4 *)(plVar2 + 2) = 0; *plVar2 = lVar1; *(undefined1 *)((long)plVar2 + lVar1 + 0x18) = 0; return __dest; } return __dest; } // 00188060 std::string::_Rep::_M_grab /* WARNING: Removing unreachable block (ram,0x001880a0) */ /* std::string::_Rep::_M_grab(std::allocator const&, std::allocator const&) */ allocator * std::string::_Rep::_M_grab(allocator *param_1,allocator *param_2) { allocator *paVar1; if (*(int *)(param_1 + 0x10) < 0) { paVar1 = (allocator *)_M_clone((_Rep *)param_1,param_2,0); return paVar1; } if (param_1 != (allocator *)&_S_empty_rep_storage) { LOCK(); *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1; UNLOCK(); } return param_1 + 0x18; } // 00189690 std::string::_Rep::_M_dispose /* WARNING: Removing unreachable block (ram,0x001896b0) */ /* std::string::_Rep::_M_dispose(std::allocator const&) [clone .part.0] */ void std::string::_Rep::_M_dispose(allocator *param_1) { allocator *paVar1; int iVar2; LOCK(); paVar1 = param_1 + 0x10; iVar2 = *(int *)paVar1; *(int *)paVar1 = *(int *)paVar1 + -1; UNLOCK(); if (0 < iVar2) { return; } _M_destroy(param_1); return; }