STL
STL templates: vector, map, set, list, deque, unordered_map, rb-tree, sort, regex, std::function, thunks
| Address | Size | Name | Description |
|---|---|---|---|
| 0x006C3D80 | 147 | STL_umap_destroy_node_with_dtor_A | Destroys a single 0x38-byte umap node: calls virtual dtor on embedded object at offset+0x34, then frees the node. |
| 0x006C3E20 | 147 | STL_umap_destroy_node_with_dtor_B | Destroys a single 0x38-byte umap node: calls virtual dtor on embedded object at offset+0x34, then frees the node. |
| 0x006C3EC0 | 105 | STL_umap_release_embedded_object_A | Releases embedded object at offset+0x2c by calling its virtual destructor (vtable+0x10), then nulls the pointer. |
| 0x006C3F30 | 105 | STL_umap_release_embedded_object_B | Releases embedded object at offset+0x2c by calling its virtual destructor (vtable+0x10), then nulls the pointer. |
| 0x006C3FA0 | 103 | STL_umap_clear_A | Clears all elements from unordered_map A. If count < buckets/8, uses erase_range with dtor; otherwise destroys all nodes, resets sentinel, zeroes count, and fills bucket array. |
| 0x006C4010 | 103 | STL_umap_clear_B | Clears all elements from unordered_map B. If count < buckets/8, uses erase_range with dtor; otherwise destroys all nodes, resets sentinel, zeroes count, and fills bucket array. |
| 0x006C64A0 | 22 | STL_umap_iterator_ctor_A | Constructs unordered_map iterator A: sets vtable pointer and copies node pointer from this+4. |
| 0x006C64C0 | 22 | STL_umap_iterator_ctor_B | Constructs unordered_map iterator B: sets vtable pointer and copies node pointer from this+4. |
| 0x006C64E0 | 16 | STL_umap_iterator_base_ctor_A | Base constructor for unordered_map iterator A: sets vtable pointer only. |
| 0x006C64F0 | 16 | STL_umap_iterator_base_ctor_B | Base constructor for unordered_map iterator B: sets vtable pointer only. |
| 0x006C6500 | 68 | STL_umap_conditional_free_A | Conditionally frees 8-byte allocation if boolean param is true. Used in umap iterator/node cleanup. |
| 0x006C6550 | 68 | STL_umap_conditional_free_B | Conditionally frees 8-byte allocation if boolean param is true. Used in umap iterator/node cleanup. |
| 0x006C65A0 | 68 | STL_umap_conditional_free_C | Conditionally frees 8-byte allocation if boolean param is true. Used in umap iterator/node cleanup. |
| 0x006C65F0 | 68 | STL_umap_conditional_free_D | Conditionally frees 8-byte allocation if boolean param is true. Used in umap iterator/node cleanup. |
| 0x006C6640 | 44 | STL_umap_invoke_virtual_method | Dispatches a virtual method call through vtable at this+4, passing 5 parameters from the provided pointers. |
| 0x006C66A0 | 639 | STL_umap_rehash_4byte_with_realloc | STL unordered_map rehash with bucket vector reallocation using FNV-1a on 4-byte key |
| 0x006C6920 | 639 | STL_umap_rehash_4byte_with_realloc_2 | STL unordered_map rehash with bucket vector reallocation using FNV-1a on 4-byte key |
| 0x006C6BE0 | 22 | STL_umap_iterator_ctor_C | Constructs unordered_map iterator C: sets vtable pointer and copies node pointer from this+4. |
| 0x006C6C00 | 22 | STL_umap_iterator_ctor_D | Constructs unordered_map iterator D: sets vtable pointer and copies node pointer from this+4. |
| 0x006C6C20 | 16 | STL_umap_iterator_base_ctor_C | Base constructor for unordered_map iterator C: sets vtable pointer only. |
| 0x006C6C30 | 16 | STL_umap_iterator_base_ctor_D | Base constructor for unordered_map iterator D: sets vtable pointer only. |
| 0x006C6C40 | 341 | STL_function_swap | STL std::function::swap implementation. Swaps callable objects between two std::function instances using vtable-based move semantics with temporary storage. |
| 0x006C6DA0 | 341 | STL_function_swap_2 | STL std::function::swap implementation (second instantiation). Identical to STL_function_swap but for a different template specialization. |
| 0x006C6F40 | 601 | STL_umap_erase_range_56byte_with_dtor | STL unordered_map erase range: iterates bucket chain using FNV-1a hash, calls vtable dtor at node offset 0xd, frees 0x38-byte nodes, decrements element count. |
| 0x006CA300 | 75 | _Find_lower_bound<> | STL tree lower_bound helper. Binary search for the first element not less than a key. |
| 0x006CA350 | 75 | _Find_lower_bound<> | STL tree lower_bound helper. Binary search for the first element not less than a key. |
| 0x006CAFE0 | 83 | operator++ | Red-black tree iterator increment. Advances to the next in-order node. |
| 0x006CB040 | 83 | operator++ | Red-black tree iterator increment. Advances to the next in-order node. |
| 0x006CCCE0 | 704 | STL_rbtree_extract_node | Red-black tree node extraction with rebalancing; handles all rotation and color fixup cases |
| 0x006CCFB0 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x006CD1C0 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x006CD3D0 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x006CD5E0 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x006CD7F0 | 84 | STL_rbtree_rotate_left_006cd7f0 | Red-black tree left rotation: rotates node with its right child, updates parent links |
| 0x006CD850 | 88 | STL_rbtree_rotate_right_006cd850 | Red-black tree right rotation: rotates node with its left child, updates parent links |
| 0x006CF3F0 | 517 | STL_tree_insert_node_006cf3f0 | STL std::_Tree_val::_Insert_node - inserts node into RB-tree with rebalancing (VS2019 library, string-keyed tree variant used by ItemDisplayTree) |
| 0x006D0CE0 | 517 | STL_tree_insert_node_006d0ce0 | STL std::_Tree_val::_Insert_node - inserts node into RB-tree with rebalancing (VS2019 library, string-keyed tree variant used by CPrivateAirplaneMgr) |
| 0x006D2510 | 517 | STL_tree_insert_node_006d2510 | STL std::_Tree_val::_Insert_node - inserts a new node into RB-tree, performs red-black rebalancing (rotations + recoloring). Used by CItemDB for nested item trees. |
| 0x006D2720 | 517 | STL_tree_insert_node_006d2720 | STL std::_Tree_val::_Insert_node - inserts a new node into RB-tree, performs red-black rebalancing (rotations + recoloring). Second instance used by CPaidItemMgr trees. |
| 0x006D3F90 | 29 | STL_vector_move_backward | Copies memory range to higher address for vector element insertion |
| 0x006D4320 | 489 | STL_vector_insert_range | Inserts range of bytes into vector at position, reallocates with 1.5x growth if needed |
| 0x006D45B0 | 34 | STL_vector_copy_forward | Copies memory range forward to destination, returns end pointer |
| 0x006D5060 | 129 | STL_vector_free_aligned | Frees aligned vector buffer, handles alignment offset for allocations over 0xFFF |
| 0x006D98E0 | 162 | STL_vector_reserve_dword | Reserves capacity in dword vector with aligned allocation if needed |
| 0x006D9990 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x006D9BA0 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x006D9DB0 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x006D9FC0 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x006DA1D0 | 129 | STL_vector_free_dword_buffer | Frees the underlying buffer of a dword vector with aligned deallocation and resets all 3 pointers to zero |
| 0x006DA420 | 34 | STL_uninitialized_copy_range_A | Copies memory range [param_1, param_2) to param_3, returns end of destination. STL uninitialized_copy variant A. |
| 0x006DA450 | 34 | STL_uninitialized_copy_range_B | Copies memory range [param_1, param_2) to param_3, returns end of destination. STL uninitialized_copy variant B. |
| 0x006DA480 | 37 | _Uninitialized_value_construct_n<struct_std::_Parallelism_allocator<unsigned_int>_> | Value-initializes n elements in uninitialized memory by zeroing the range. |
| 0x006DA4B0 | 37 | _Uninitialized_value_construct_n<struct_std::_Parallelism_allocator<unsigned_int>_> | Value-initializes n elements in uninitialized memory by zeroing the range. |
| 0x006DA4E0 | 28 | _Zero_range<> | Fills a memory range with zeros using memset. |
| 0x006DA500 | 28 | _Zero_range<> | Fills a memory range with zeros using memset. |
| 0x006DA520 | 334 | STL_istream_getline_delim | Reads from istream into string until delimiter byte, sets stream state on EOF/error |
| 0x006DA6B0 | 34 | STL_uninitialized_copy_range_C | Copies memory range [param_1, param_2) to param_3, returns end of destination. STL uninitialized_copy variant C. |
| 0x006DA6E0 | 34 | STL_uninitialized_copy_range_D | Copies memory range [param_1, param_2) to param_3, returns end of destination. STL uninitialized_copy variant D. |
| 0x006DB3E0 | 10 | STL_throw_deque_too_long_A | Throws std::length_error with message "deque<T> too long". Called when deque exceeds max size, variant A. |
| 0x006DB3F0 | 10 | STL_throw_deque_too_long_B | Throws std::length_error with message "deque<T> too long". Called when deque exceeds max size, variant B. |
| 0x006DC9F0 | 39 | STL_string_truncate | Truncates std::string to given length by setting size and null terminator |
| 0x006E13A0 | 83 | operator++ | Red-black tree iterator increment. Advances to the next in-order node. |
| 0x006E1C80 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x006E2670 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x006E26B0 | 58 | STL_deallocate_32byte_elements | STL allocator deallocate for 32-byte elements. Handles large allocations with debug header. |
| 0x006E2F40 | 5 | operator++ | Stl: operator++, small utility function |
| 0x006E44E0 | 22 | std__ostream_set_fill_char | Sets the fill character on an ostream by writing a byte to the ios_base fill field at vbase+0x40 |
| 0x006E4500 | 432 | std__ostream_put_char | ostream::put - writes a single character to the output stream with proper width padding (left/right justified). Uses sentry for thread safety, handles fill character padding. |
| 0x006E46E0 | 13 | std__ios_base__set_state_byte | Sets a single byte value on an ios_base object (simple byte assignment) |
| 0x006E46F0 | 161 | STL_string_ctor_fill | Constructs an std::string filled with N copies of a character. Handles SSO (small string optimization) for strings under 16 chars, heap-allocates for longer strings. |
| 0x006E4DD0 | 26 | std__ios_base__setf_hex | Sets the hex format flag (0x800) on ios_base fmtflags at offset 0x14, clearing dec (0x200) and oct (0x400) flags via mask 0xF9FF \| 0x800. |
| 0x006E4DF0 | 25 | STL_string_append_self_substr | Appends a substring from an std::string's own buffer (handles SSO). Uses internal pointer if size > 15, otherwise reads from inline buffer. |
| 0x006E5850 | 44 | STL_string_resize_shrink | Resizes/truncates an std::string (at this+0x10) by subtracting a length value. If new size is smaller, truncates in place; otherwise appends null chars to extend. |
| 0x006E5880 | 44 | STL_string_resize_shrink_alt | Resizes/truncates an std::string (at this+0x28) by subtracting a length value. Same logic as STL_string_resize_shrink but for a different member offset. |
| 0x006E58B0 | 12 | std__ios_base__setf_internal | Sets the ios_base::internal flag (bit 0x4) on the format flags at offset 0x14, used for padding alignment |
| 0x006F7150 | 517 | STL_tree_insert_node_006f7150 | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x006F8310 | 429 | STL_vector_push_back_ptr | STL vector push_back for pointer-sized elements. Grows capacity by 1.5x when full, copies existing elements to new allocation, inserts new element at specified position |
| 0x006F84E0 | 427 | STL_vector_insert_range_12byte | STL vector insert for 12-byte element arrays. Grows capacity by 1.5x, uses element-wise copy via zero_init helper and copy helper functions. Element size is 0xC bytes (3 DWORDs) |
| 0x006F9E70 | 10 | STL_throw_vector_too_long_006f9e70 | Throws std::_Xlength_error("vector too long") - STL vector overflow handler |
| 0x006F9E80 | 61 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x006FB960 | 62 | STL_allocator_deallocate_006fb960 | std::allocator::deallocate, frees memory via operator delete. For allocations > 0xFFF bytes, adjusts pointer by reading stored offset at ptr[-4] and adds 0x23 alignment padding to size. |
| 0x006FE100 | 34 | STL_copy_range_to_buffer | Copies memory range [param1..param2) into destination buffer, returns end pointer |
| 0x006FE130 | 452 | STL_vector_insert_single_4byte_006fe130 | std::vector insert with reallocation using 1.5x growth, copies element at insertion point |
| 0x006FE9D0 | 10 | STL_throw_vector_too_long_006fe9d0 | Throws std::length_error with "vector too long" message |
| 0x006FE9E0 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x007009B0 | 83 | operator++ | Red-black tree iterator increment. Advances to the next in-order node. |
| 0x00701160 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x00707310 | 452 | STL_vector_insert_single_4byte_00707310 | std::vector insert with 1.5x growth reallocation, copies single element at insertion point |
| 0x00707D20 | 10 | STL_throw_vector_too_long_00707d20 | Throws std::length_error with "vector too long" message |
| 0x00707D30 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x007163E0 | 517 | STL_tree_insert_node_007163e0 | STL _Tree_val::_Insert_node, inserts a new node into a red-black tree with rebalancing (rotations and recoloring). Used by std::map/set containers. |
| 0x007165F0 | 517 | STL_tree_insert_node_007165f0 | STL _Tree_val::_Insert_node, inserts a new node into a red-black tree with rebalancing (rotations and recoloring). Used by std::map/set containers. |
| 0x00718F40 | 34 | memcpy_and_return_end | Copies memory range [param_1, param_2) to param_3, returns pointer past end of destination |
| 0x00718F70 | 179 | STL_int_to_string | Converts signed integer to STL string, handles negative sign prefix |
| 0x0071B630 | 90 | STL_vector__Change_array_0071b630 | Reallocates a vector internal array to accommodate more elements. Copies existing data and frees old buffer. |
| 0x0071B6A0 | 197 | STL_vector_reallocate_4byte | Reallocates 4-byte element vector to new capacity, copies existing data, frees old buffer |
| 0x0071B790 | 129 | STL_vector_dealloc_4byte | Frees 4-byte element vector buffer and zeroes all three pointers (begin/end/capacity) |
| 0x0071B820 | 92 | STL_vector_alloc_4byte | Allocates aligned buffer for N 4-byte elements, uses 32-byte alignment for buffers over 0x1000 |
| 0x00729730 | 83 | operator++ | Red-black tree iterator increment. Advances to the next in-order node. |
| 0x00729EC0 | 517 | STL_tree_insert_node_00729ec0 | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x007311C0 | 34 | STL_uninitialized_copy_range | Copies a contiguous range of elements from [src_begin, src_end) to dest using memcpy. Returns pointer past the last copied element in dest. Used by STL containers during reallocation. |
| 0x007311F0 | 452 | STL_vector_insert_single_4byte_reallocate | STL vector insert with reallocation for 4-byte elements. Grows capacity by 1.5x, copies existing elements, inserts new element at the specified position, frees old buffer. |
| 0x007314A0 | 129 | STL_vector_dealloc_4byte_0x7314a0 | Deallocates a vector of 4-byte elements. Frees the buffer with aligned deallocation if needed, then zeros the 3 vector fields (begin, end, capacity). |
| 0x00731A40 | 10 | STL_throw_vector_too_long_0x731a40 | Throws std::length_error("vector too long"). Called when vector capacity would exceed max size. |
| 0x00731A50 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x00734720 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x00735320 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x007355A0 | 75 | _Find_lower_bound<> | STL tree lower_bound helper. Binary search for the first element not less than a key. |
| 0x007358C0 | 83 | operator++ | Red-black tree iterator increment. Advances to the next in-order node. |
| 0x00735FC0 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x00736290 | 34 | memcpy_range_0x736290 | Copies memory range [param_1, param_2) to param_3. Returns end pointer of destination. |
| 0x007362C0 | 37 | _Uninitialized_value_construct_n<struct_std::_Parallelism_allocator<unsigned_int>_> | Value-initializes n elements in uninitialized memory by zeroing the range. |
| 0x007362F0 | 28 | _Zero_range<> | Fills a memory range with zeros using memset. |
| 0x00736310 | 34 | memcpy_range_0x736310 | Copies memory range [param_1, param_2) to param_3. Returns end pointer of destination. |
| 0x007369A0 | 10 | STL_throw_deque_too_long_0x7369a0 | Throws std::length_error("deque<T> too long"). |
| 0x00736C60 | 125 | STL_vector_dealloc_4byte_0x736c60 | Deallocates a vector of 4-byte elements with aligned free. Zeros the 3 vector fields. |
| 0x007378B0 | 129 | STL_vector_dealloc_16byte | Deallocates a vector of 16-byte elements. Aligned free if needed, then zeros the 3 vector fields. |
| 0x007380D0 | 34 | memcpy_range_0x7380d0 | Copies memory range [param_1, param_2) to param_3. Returns end pointer. |
| 0x00738DC0 | 10 | STL_throw_vector_too_long_0x738dc0 | Throws std::length_error("vector too long"). |
| 0x00738DD0 | 61 | STL_allocator_deallocate_12byte | STL allocator::deallocate for 12-byte elements. Handles aligned/unaligned memory: for allocations >4095 bytes, retrieves original allocation pointer from (ptr-4) and validates alignment before freeing. |
| 0x00739680 | 603 | std__vector_ItemEntry__emplace | STL vector emplace/insert for 0x1C-byte ItemEntry structs. Handles capacity growth (1.5x growth factor), element relocation with move semantics, and old buffer cleanup. Max capacity 0x9249249 elements. |
| 0x00739960 | 191 | std__move_ItemEntry_range | Moves a range of 0x1C-byte ItemEntry structs from [param_1, param_2) to param_3. Uses move semantics for embedded strings (resets source string to empty). Returns pointer past last written element. |
| 0x00739A20 | 132 | std__move_construct_ItemEntry | Move-constructs a single 0x1C-byte ItemEntry from param_3 into param_2. Copies 4 DWORDs + string data with move semantics, then resets source string to empty state. |
| 0x00739EB0 | 90 | std__vector_ItemEntry__destroy_elements | Iterates through a vector of 0x1C-byte ItemEntry elements from [begin, end), calling STL string destructor on each element's embedded string. |
| 0x00739F60 | 206 | std__vector_ItemEntry__clear_and_free | Destroys all elements in ItemEntry vector (calling string dtors for each 0x1C-byte element), frees the buffer, and resets begin/end/capacity pointers to 0. |
| 0x0073FDF0 | 92 | std__destroy_ItemEntry_range | Destroys a range of 0x1C-byte ItemEntry structs from [param_1, param_2), calling STL string destructor on each element. |
| 0x0073FE50 | 10 | std__throw_vector_too_long | Throws std::length_error with "vector too long" message. Does not return. |
| 0x0073FE60 | 67 | std__free_ItemEntry_buffer | Frees a buffer of 0x1C-byte ItemEntry elements. For large allocations (>0xFFF bytes), retrieves the original allocation pointer from [ptr-4] before freeing. |
| 0x0073FEB0 | 49 | std__string_find_in_string | Searches for param_2 string within param_1 string starting at position param_3. Uses std::_Traits_find internally. Handles SSO (small string optimization) by checking capacity > 0xF. |
| 0x0073FEF0 | 169 | std__vector_ItemEntry__push_back | Push_back for vector of 0x1C-byte ItemEntry. If capacity available, move-constructs element at end and increments size. Otherwise calls emplace to grow the vector. |
| 0x0073FFA0 | 27 | std__vector_ItemEntry__size | Returns the number of elements in the ItemEntry vector: (end - begin) / 0x1C. |
| 0x007425C0 | 228 | std__vector_int__grow_and_fill | Grows a vector of 4-byte (int/pointer) elements to the requested capacity. Allocates new buffer, zero-fills new elements, copies existing data, then replaces the old buffer. |
| 0x007426D0 | 28 | _Zero_range<> | Fills a memory range with zeros using memset. |
| 0x00745290 | 34 | memcpy_range_0x745290 | Copies memory range [param_1, param_2) to param_3. Returns end pointer. |
| 0x007452C0 | 34 | memcpy_range_0x7452c0 | Copies memory range [param_1, param_2) to param_3. Returns end pointer. |
| 0x007452F0 | 34 | memcpy_range_0x7452f0 | Copies memory range [param_1, param_2) to param_3. Returns end pointer. |
| 0x00745320 | 105 | destroy_range_44byte_entries | Destroys a range of 0x44-byte entries by iterating from param_1 to param_2 and calling destructor/cleanup on each. |
| 0x007453D0 | 380 | std__vector_int__reallocate_and_fill | Reallocates a vector of 4-byte (int/pointer) elements. Computes new capacity (1.5x growth or requested size), allocates new buffer, fills new elements with param_3 value, copies existing data, then frees old buffer. Handles aligned allocation for buffers over 0xFFF bytes. |
| 0x00745570 | 528 | std__vector_0xC__reallocate_and_construct | Reallocates a vector of 0xC-byte entries. Computes new capacity (1.5x growth or requested size, max 0x15555555), allocates new buffer, constructs new entries, moves existing entries, destroys old entries (which contain nested 0x44-byte vectors), then frees old buffer. |
| 0x00745790 | 465 | std__vector_0xC__reallocate_and_zero_fill | Reallocates a vector of 0xC-byte entries with zero-fill for new elements. Computes new capacity (1.5x growth or requested size, max 0x15555555), allocates new buffer, zero-fills new entries via memset, copies existing data with memcpy, then frees old buffer. |
| 0x00745970 | 520 | std__vector_reallocate_0x44 | Reallocates a std::vector of 0x44-byte elements. Grows capacity (1.5x or to requested size), copies existing elements to new buffer, destroys old elements, and frees old buffer. Standard MSVC vector reallocation pattern. |
| 0x00745B80 | 468 | std__vector_reallocate_0x24 | Reallocates a std::vector of 0x24-byte elements. Grows capacity, memcpy's existing POD elements to new buffer, frees old buffer. Used for skill detail entries. |
| 0x00745D60 | 530 | std__vector_reallocate_0x18 | Reallocates a std::vector of 0x18-byte elements. Grows capacity, moves existing elements with move semantics (destroys old via destructor loop), frees old buffer. Used for skill name/prerequisite entries. |
| 0x007462C0 | 90 | destroy_range_12byte_entries | Destroys a range of 0xC-byte entries by iterating from begin to end and calling cleanup on each. |
| 0x00746340 | 91 | std__vector_destroy_elements_18 | Destroys elements in a std::vector with element size 0x18. Iterates from begin to end, calling a destructor-like function on each 0x18-byte element. |
| 0x007463A0 | 129 | std__vector_deallocate_4byte | Deallocates a std::vector buffer with 4-byte elements. Handles debug allocator alignment (checks for pre-buffer header when size > 0xFFF). |
| 0x00746430 | 196 | std__vector_destroy_and_dealloc_0xC | Destroys each 0xC-byte element (calls FUN_007465a0 destructor) then deallocates the std::vector buffer. |
| 0x00746500 | 150 | std__vector_deallocate_0xC | Deallocates a std::vector buffer with 0xC-byte elements (no element destructors called, just raw deallocation). |
| 0x007465A0 | 170 | std__vector_destroy_and_dealloc_0x44 | Destroys each 0x44-byte element in a std::vector (calls destroy_range_44byte_entries) then deallocates the buffer. |
| 0x00746650 | 151 | std__vector_deallocate_0x24 | Deallocates a std::vector buffer with 0x24-byte elements (no element destructors, just raw deallocation). |
| 0x007466F0 | 198 | std__vector_destroy_and_dealloc_0x18 | Destroys each 0x18-byte element in a std::vector (calls destructor on each) then deallocates the buffer. |
| 0x00746920 | 185 | std__stringstream__dtor_complete | Complete destructor for std::stringstream. Destroys the stringbuf (frees allocated buffer if owned), then destroys basic_streambuf and basic_istream base classes. |
| 0x007469E0 | 131 | std__stringbuf__dtor | Destructor for std::stringbuf. Sets vtable, frees the string buffer if owned (mode flag bit 0 set with bit 3 clear), clears mode/size, then destroys the base basic_streambuf. |
| 0x00746B20 | 194 | std__stringstream__dtor_with_ios | Complete destructor for std::stringstream variant with basic_ios cleanup. Destroys stringbuf, streambuf, istream, and basic_ios in order. |
| 0x00746C50 | 152 | std__stringbuf__scalar_deleting_dtor | Scalar deleting destructor for std::stringbuf. Destroys buffer, streambuf, then optionally frees the 0x50-byte object. |
| 0x00746E40 | 143 | std__vector_resize_0x44 | Resizes a std::vector of 0x44-byte elements. If shrinking, destroys excess elements via destroy_range. If growing within capacity, fills new entries. If growing beyond capacity, calls std__vector_reallocate_0x44 to reallocate. |
| 0x00747270 | 246 | std__vector_get_0x44_element | Returns a 0x44-byte element at index param_2 from a std::vector. Falls back to first element if out of bounds but non-empty, or returns static default CSkillTreeNode if empty. |
| 0x00747550 | 92 | destroy_range_0xC_entries | Destroys a range of 0xC-byte entries by iterating from param_1 to param_2, calling the 0x44-entry destructor on each. |
| 0x007475B0 | 22 | std__vector_destroy_range_0x44_wrapper | Thin wrapper that forwards to destroy_range_44byte_entries with this pointer. |
| 0x007475D0 | 93 | destroy_range_0x18_entries | Destroys a range of 0x18-byte entries by iterating from param_1 to param_2, calling a destructor on each element. |
| 0x00747630 | 35 | std__stringbuf__free_buffer | Frees a stringbuf's internal buffer. If a custom deallocator is set at offset +0x4C, uses it; otherwise calls standard free(). |
| 0x007476C0 | 138 | std__vector_fill_int | Fills a range of int elements with a value. Optimized with 4x unrolling for counts > 3. If the fill value is 0, uses memset instead. Returns pointer past the last filled element. |
| 0x00747750 | 143 | std__vector_construct_0xC_entries | Default-constructs param_2 entries of 0xC bytes each (zeroing all fields). Used for growing std::vector of 0xC-byte elements. |
| 0x007477E0 | 49 | std__vector_zero_fill_0xC | Zero-fills param_2 entries of 0xC bytes each using memset. Returns pointer past the last filled element. |
| 0x00747820 | 188 | std__vector_construct_0x44_entries | Default-constructs param_3 entries of 0x44 bytes each. Zeroes entire struct with memset, then explicitly zeroes the sub-vectors at offsets +0x20 and +0x34. Calls destroy_range at the end for exception safety. |
| 0x007478E0 | 49 | std__vector_zero_fill_0x24 | Zero-fills param_2 entries of 0x24 bytes each using memset. Returns pointer past the last filled element. |
| 0x00747920 | 150 | std__vector_construct_0x18_default | Default-constructs param_2 entries of 0x18 bytes (6 DWORDs). Sets first two fields to -1 (0xFFFFFFFF), third to 4, and last three to 0. |
| 0x007479C0 | 161 | std__vector_move_0xC_entries | Move-constructs 0xC-byte (3 DWORD) entries from source range [param_1, param_2) to destination param_3. Zeroes source entries after moving. |
| 0x00747A70 | 145 | std__vector_copy_construct_0x44 | Copy-constructs 0x44-byte entries from source range [param_2, param_3) to destination param_4 by calling UISkillWnd__OnSkillCooldown for each. Calls destroy_range on destination for exception safety. |
| 0x00747B10 | 179 | std__move_elements_24byte_nothrow | Moves a range of 24-byte (0x18) elements from [param_1, param_2) to param_3 using nothrow move (copies 6 DWORDs, zeroes source pointers at offsets 3-5). |
| 0x00747BD0 | 159 | std__move_elements_24byte_with_string | Moves 24-byte elements with embedded STL string from [param_1, param_2) to param_3. Uses string move semantics (resets source string to SSO empty state with capacity=0xF). |
| 0x00747C70 | 10 | std__throw_vector_too_long_2 | Throws std::length_error "vector too long". Does not return. |
| 0x00747C80 | 10 | std__throw_vector_too_long_3 | Throws std::length_error "vector too long". Does not return. |
| 0x00747C90 | 10 | std__throw_vector_too_long_4 | Throws std::length_error "vector too long". Does not return. |
| 0x00747CA0 | 10 | std__throw_vector_too_long_5 | Throws std::length_error "vector too long". Does not return. |
| 0x00747CB0 | 10 | std__throw_vector_too_long_6 | Throws std::length_error "vector too long". Does not return. |
| 0x00747CC0 | 10 | std__throw_vector_too_long_7 | Throws std::length_error "vector too long". Does not return. |
| 0x00747CD0 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x00747D10 | 61 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x00747D50 | 61 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x00747D90 | 64 | std__free_vector_buffer_0x44 | Frees a vector buffer of 0x44-byte elements. Handles aligned allocations (>0xFFF bytes) by retrieving original pointer from [ptr-4]. |
| 0x00747DE0 | 61 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x00747E20 | 61 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x00748020 | 103 | std__vector_uint__resize | Resizes a vector of 4-byte (uint) elements. If shrinking, adjusts end pointer. If growing within capacity, memsets new elements to 0. If growing beyond capacity, calls std__vector_int__grow_and_fill to reallocate. |
| 0x00748090 | 167 | std__vector_24byte__resize | Resizes a vector of 0x18-byte elements. If shrinking, destroys excess elements (string dtors). If growing within capacity, calls init_empty_entries. If beyond capacity, reallocates. |
| 0x007488D0 | 395 | std__vector_AttrCell__reallocate | Reallocates a vector of 0x14-byte attribute cells. Uses 1.5x growth factor, max capacity 0xCCCCCCC elements. Copies old data via FUN_00749500, frees old buffer. |
| 0x00749500 | 45 | memcpy_AttrCell_range | Copies a range of 0x14-byte attribute cells from [param_1, param_2) to offset param_3 - param_1 relative to source. Copies 5 DWORDs per element. |
| 0x00749530 | 10 | std__throw_vector_too_long_8 | Throws std::length_error "vector too long". Does not return. |
| 0x00749540 | 61 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x00749E50 | 436 | std__string_append_range | Appends a range of characters [param_2, param_3) to an STL string one byte at a time. Handles SSO (small string optimization) and dynamic growth (1.5x factor, max 0x7FFFFFFF capacity). Manages aligned allocation for large strings. |
| 0x0074A010 | 439 | std__vector_8byte__emplace | Emplace/insert for vector of 8-byte elements (e.g., sprite frame entries). Handles capacity growth (1.5x), element relocation, old buffer cleanup. Max 0x1FFFFFFF elements. |
| 0x0074A400 | 66 | std__basic_streambuf_char__destructor | Destructor wrapper for std::basic_streambuf<char>. Calls the base class destructor with SEH frame setup. |
| 0x0074A450 | 91 | std__basic_streambuf_char__scalar_deleting_destructor | Scalar deleting destructor for std::basic_streambuf<char>. Calls base destructor and optionally frees memory if param_2 bit 0 is set. |
| 0x0074C980 | 10 | vector_xlength_error | Throws std::length_error with message "vector too long". Called when vector exceeds max_size. |
| 0x0074C990 | 62 | STL_aligned_deallocate_8byte | Deallocates memory that was allocated with SIMD alignment. |
| 0x0074DD40 | 276 | vector_dword__insert_grow | Inserts a dword element into a vector at position param_2, growing the buffer as needed. Uses 1.5x growth factor. Allocates new buffer via FUN_0074efa0, copies existing elements, inserts new element from param_3, then swaps via FID_conflict__Change_array. Throws length error at 0x3FFFFFFF max capacity. |
| 0x0074DE80 | 329 | vector_36byte__insert_grow | Inserts a 36-byte (0x24) element into a vector at position param_2, growing as needed. Uses 1.5x growth factor, max 0x71C71C7 elements. Copies 9 dwords from param_3 for the new element. Allocates via FUN_0074f000, copies via FUN_0074ef10/FUN_0074ef50. |
| 0x0074DFF0 | 388 | vector_dword__resize | Resizes a dword vector to param_2 elements. Allocates new buffer (aligned to 0x20 for buffers >= 0x1000), copies existing data, zeros new elements. Frees old buffer. Updates begin/end/capacity pointers. Max 0x3FFFFFFF elements. |
| 0x0074E1A0 | 28 | _Zero_range<> | Fills a memory range with zeros using memset. |
| 0x0074E2F0 | 151 | vector_36byte__clear_and_free | Clears and frees a vector of 36-byte (0x24) elements. Frees the buffer (aligned deallocation for large buffers >= 0x1000), zeros begin/end/capacity pointers. |
| 0x0074EC70 | 90 | STL_vector__Change_array_0074ec70 | Reallocates a vector internal array to accommodate more elements. Copies existing data and frees old buffer. |
| 0x0074ECD0 | 118 | STL_vector__Change_array_0074ecd0 | Reallocates a vector internal array to accommodate more elements. Copies existing data and frees old buffer. |
| 0x0074ED60 | 197 | std__vector_reallocate_dword | Reallocates a std::vector<DWORD> to a new capacity. Allocates new buffer, copies existing data, frees old buffer. Handles aligned allocation for buffers > 0xFFF bytes. |
| 0x0074EE50 | 142 | STL_vector__Reallocate_exactly_0074ee50 | Reallocates a vector buffer to exact size, copies existing elements, and frees old buffer. |
| 0x0074EF10 | 52 | std__vector_copy_0x24_entries | STL template instantiation: std vector copy 0x24 entries |
| 0x0074EF50 | 54 | std__vector_move_0x24_entries | Moves a range of 0x24-byte (9 DWORD) elements from [param_1, param_2) to offset param_3 from each source element. |
| 0x0074EF90 | 10 | thunk_to_std__Xlength_error | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x0074EFA0 | 92 | std__vector_allocate_dword | Allocates memory for param_1 DWORD elements. For small allocations (< 0x1000 bytes), uses direct allocation. For larger ones, adds 0x23 bytes for alignment header. Max count: 0x3FFFFFFF. |
| 0x0074F000 | 95 | std__vector_allocate_0x24 | Allocates memory for param_1 elements of 0x24 bytes each. Same aligned allocation strategy as std__vector_allocate_dword. Max count: 0x71C71C7. |
| 0x0074F060 | 61 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x0074F930 | 116 | destroy_range_0x24_skill_entries | Destroys a range of 0x24-byte skill tree entries. Each entry has 3 sub-vectors that need destruction. Iterates from param_1 to param_2, calling vector destructors on each. |
| 0x0074F9B0 | 437 | std__vector_insert_grow_0x24 | Inserts a 0x24-byte element into a vector, growing it when at capacity. Uses 1.5x growth strategy. Allocates new buffer, copy-constructs the new element, relocates existing elements, frees old buffer. |
| 0x0074FB90 | 551 | std__vector_insert_grow_0xC_skill | Inserts a 0xC-byte element into a skill entry vector, growing when at capacity. Uses 1.5x growth strategy with max 0x15555555 elements. Moves existing elements to new buffer. |
| 0x0074FDC0 | 137 | std__vector_relocate_0x24_entries | Relocates 0x24-byte entries from [param_1, param_2) to starting at param_3 via move construction. Cleans up with destroy_range at the end for exception safety. |
| 0x0074FE50 | 162 | std__vector_move_0xC_skill_entries | Move-constructs 0xC-byte (3 DWORD) skill entries from source range to destination. Zeroes source entries after moving. |
| 0x0074FF80 | 290 | std__vector_copy_0x24_skill_vector | Deep-copies a vector of 0x24-byte CSkillTreeEntry elements from param_2 to param_1. Allocates buffer, then copy-constructs each entry's 3 sub-vectors. |
| 0x007502A0 | 174 | std__vector_destroy_and_dealloc_0xC_skill | Destroys and deallocates a vector of 0xC-byte skill entries. Calls destructor on each element, then frees the buffer. Handles aligned deallocation. |
| 0x00750770 | 36 | destroy_range_0xC_skill_entries | Destroy range 0xc skill entries |
| 0x007507A0 | 166 | std__vector_destroy_and_dealloc_0x24 | Destroys and deallocates a vector of 0x24-byte skill tree entries. Calls destroy_range on all entries, then frees the buffer with aligned deallocation. |
| 0x00750850 | 10 | thunk_to_std__Xlength_error_00750850 | Forwards to std::_Xlength_error with vector_too_long message |
| 0x00750860 | 10 | thunk_to_std__Xlength_error_00750860 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x00750870 | 95 | std__vector_allocate_0x24_b | Allocates memory for param_1 elements of 0x24 bytes each. Same aligned allocation strategy. Max count: 0x71C71C7. |
| 0x007508D0 | 61 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x00750910 | 61 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x00756210 | 151 | std__free_vector_0x14_a | Frees a vector buffer of 0x14-byte elements. Resets begin/end/capacity to 0. |
| 0x007562B0 | 151 | std__free_vector_0x14_b | Frees a vector buffer of 0x14-byte elements. Resets begin/end/capacity to 0. |
| 0x00756350 | 129 | std__free_vector_0x10 | Frees a vector buffer of 0x10-byte elements. Resets begin/end/capacity to 0. |
| 0x007563E0 | 151 | std__free_vector_0x14_c | Frees a vector buffer of 0x14-byte elements. Resets begin/end/capacity to 0. |
| 0x00756B60 | 65 | std__free_vector_0x10_wrapper | Wrapper that frees a vector of 0x10-byte elements. |
| 0x00756BB0 | 65 | std__free_vector_0x14_wrapper_b | Wrapper that frees a vector of 0x14-byte elements by calling std__free_vector_0x14_b. |
| 0x00756C00 | 65 | std__free_vector_0x14_wrapper_c | Wrapper that frees a vector of 0x14-byte elements by calling std__free_vector_0x14_c. |
| 0x00756C50 | 65 | std__free_vector_0x14_wrapper_a | Wrapper that frees a vector of 0x14-byte elements by calling std__free_vector_0x14_a. |
| 0x00756CA0 | 65 | std__free_vector_0x14_wrapper_d | Wrapper that frees a vector of 0x14-byte elements by calling std__free_vector_0x14_b. |
| 0x00756CF0 | 99 | std__map_destroy_and_free_sentinel | Destroys an STL map by clearing all subtree nodes via STL_map_destroy_subtree, then freeing the 0x20-byte sentinel node. |
| 0x0075D060 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x0075D270 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x0075D480 | 129 | STL_vector_8byte_free_rsm | Frees an STL vector with 8-byte elements. Deallocates the buffer, zeroes all three vector pointers (begin, end, capacity). |
| 0x0075D510 | 95 | STL_list_alloc_node_0xc_a | Allocates memory for an STL list node of 0xc bytes. Handles aligned allocation for sizes >= 0x1000. Throws bad_array_new_length if count exceeds 0x15555555. |
| 0x0075D570 | 95 | STL_list_alloc_node_0xc_b | Allocates memory for an STL list node of 0xc bytes. Identical to STL_list_alloc_node_0xc_a - likely separate instantiation for a different list type. |
| 0x0075D5D0 | 95 | STL_list_alloc_node_0xc_c | Allocates memory for an STL list node of 0xc bytes. Another instantiation of the same template allocator for a different list type. |
| 0x0075D630 | 102 | STL_list_alloc_node_0x1c | Allocates memory for an STL list node of 0x1c bytes. Handles aligned allocation for sizes >= 0x1000. Throws bad_array_new_length if count exceeds 0x924924a. |
| 0x00760C30 | 264 | vector_byte__insert_grow | Inserts a single byte into a byte vector at position param_2, growing buffer as needed. Uses 1.5x growth factor. Max capacity 0x7FFFFFFF. Allocates via STL_lib_func_004fa0b0, copies existing data, inserts new byte from param_3. |
| 0x00760D60 | 452 | vector_dword__insert_grow_aligned | Inserts a dword element into a vector at position param_2, growing buffer with aligned allocation (0x20 alignment for buffers >= 0x1000). Uses 1.5x growth factor, max 0x3FFFFFFF elements. Copies existing elements around insertion point. |
| 0x00761380 | 10 | STL_vector_throw_length_error | Throws std::length_error("vector too long") and does not return |
| 0x00761390 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x00763750 | 29 | STL_relocate_range_backward | Copies memory range [src, end) to destination computed as offset from end |
| 0x00763770 | 34 | STL_copy_range_to_dest_a | Copies memory range [src, end) to dest, returns pointer past copied data |
| 0x007637A0 | 34 | STL_copy_range_to_dest_b | Copies memory range [src, end) to dest, returns pointer past copied data |
| 0x007637D0 | 423 | STL_vector_pair8__emplace_reallocate | Reallocates vector of 8-byte pairs, inserts new element at position, grows by 1.5x |
| 0x007639A0 | 568 | STL_vector_20byte__emplace_reallocate | Reallocates vector of 0x14-byte elements, inserts new element at position, grows by 1.5x |
| 0x00763BE0 | 452 | STL_vector_int__emplace_reallocate_a | Reallocates vector of 4-byte elements, inserts new element at position, grows by 1.5x |
| 0x00763DB0 | 452 | STL_vector_int__emplace_reallocate_b | Reallocates vector of 4-byte elements, inserts new element at position, grows by 1.5x |
| 0x00763F80 | 103 | STL_map__destroy_nodes_recursive_a | Recursively destroys std::map nodes (0x1C bytes each), traverses left subtree then right |
| 0x00763FF0 | 131 | STL_map__destroy_nodes_recursive_b | Recursively destroys std::map nodes (0x20 bytes), clears vector data before freeing |
| 0x00764080 | 131 | STL_map__destroy_nodes_recursive_c | Recursively destroys std::map nodes (0x20 bytes), calls cleanup function before freeing |
| 0x00764130 | 75 | STL_map__lower_bound_a | Binary search in std::map for lower_bound of integer key, returns iterator |
| 0x00764180 | 75 | STL_map__lower_bound_b | Binary search in std::map for lower_bound of integer key, returns iterator |
| 0x007641D0 | 75 | STL_map__lower_bound_c | Binary search in std::map for lower_bound of integer key, returns iterator |
| 0x00764550 | 174 | heap_sift_down_insert | Sifts down in heap then bubbles up to insert element, compares field+4 as key |
| 0x00764600 | 222 | STL_vector_int__resize_with_fill | Resizes int vector to given size, fills new elements with value, grows by 1.5x |
| 0x00764FA0 | 67 | STL_map__free_node_1c | Frees a single std::map node of size 0x1C if non-null |
| 0x00764FF0 | 67 | STL_map__free_node_20_a | Frees a single std::map node of size 0x20 if non-null |
| 0x00765040 | 67 | STL_map__free_node_20_b | Frees a single std::map node of size 0x20 if non-null |
| 0x00765090 | 111 | STL_map__clear_and_free_1c | Clears std::map with 0x1C-byte nodes, recursively frees all then frees sentinel |
| 0x00765110 | 76 | STL_map__clear_and_free_20_a | Clears std::map with 0x20-byte nodes, recursively frees all then frees sentinel |
| 0x00765170 | 76 | STL_map__clear_and_free_20_b | Clears std::map with 0x20-byte nodes, recursively frees all then frees sentinel |
| 0x007651D0 | 78 | STL_map__free_node_1c_b | Frees a single std::map node of size 0x1C if non-null |
| 0x00765220 | 116 | STL_map__free_node_20_with_vector_cleanup | Frees map node (0x20 bytes), clears contained vector pair data before freeing |
| 0x007652A0 | 116 | STL_map__free_node_20_with_rune_cleanup | Frees map node (0x20 bytes), clears contained rune data before freeing |
| 0x00765320 | 78 | STL_map__free_node_1c_c | Frees a single std::map node of size 0x1C if non-null |
| 0x00765370 | 78 | STL_map__free_node_20_c | Frees a single std::map node of size 0x20 if non-null |
| 0x007653C0 | 78 | STL_map__free_node_20_d | Frees a single std::map node of size 0x20 if non-null |
| 0x00765440 | 65 | STL_map__clear_and_free_1c_b | Clears std::map with 0x1C-byte nodes, wrapper around recursive free |
| 0x00765490 | 87 | STL_map__clear_and_free_20_c | Clears std::map with 0x20-byte nodes, recursively frees all then frees sentinel |
| 0x007654F0 | 87 | STL_map__clear_and_free_20_d | Clears std::map with 0x20-byte nodes, recursively frees all then frees sentinel |
| 0x00765550 | 68 | STL_vector_pair__clear_wrapper_a | Wrapper that clears and frees vector pair data |
| 0x007655A0 | 68 | STL_vector_20byte__clear_wrapper | Wrapper that clears and frees vector of 20-byte elements |
| 0x007655F0 | 129 | STL_vector__dealloc_buffer | Frees vector internal buffer and resets begin/end/capacity pointers to zero |
| 0x00765680 | 129 | STL_vector_int__dealloc_buffer | Frees int vector internal buffer and resets pointers to zero |
| 0x00765710 | 176 | STL_vector_20byte__destroy_and_free | Destroys vector of 0x14-byte objects via virtual dtors, then frees buffer |
| 0x00768AC0 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x00768CD0 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x00768EE0 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x007690F0 | 82 | fill_int_array_with_value | Fills array of int pointers with specified value for given count |
| 0x00769150 | 10 | STL_vector_throw_length_error_b | Throws std::length_error for vector overflow |
| 0x00769160 | 10 | STL_vector_throw_length_error_c | Throws std::length_error for vector overflow |
| 0x00769170 | 10 | STL_vector_throw_length_error_d | Throws std::length_error for vector overflow |
| 0x00769180 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x007691C0 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x00769200 | 61 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x0076BF00 | 564 | vector_20byte__insert_grow | Inserts a 20-byte (0x14) element into a vector, growing buffer as needed. Uses 1.5x growth factor, max 0xCCCCCCC elements. Aligned allocation for large buffers. Calls FUN_0076c140 to copy-construct the new element. Destroys old elements via their vtable before freeing old buffer. |
| 0x0076C1A0 | 152 | vector_byte__copy_construct | Copy-constructs a byte vector from param_2 into param_1. Initializes begin/end/capacity to 0, allocates buffer matching source size via stub_005f66f0, then memcpy copies the data. |
| 0x0076C320 | 176 | vector_20byte__destroy_and_free | Destroys and frees a vector of 20-byte (0x14) elements. Calls each element's virtual destructor (via vtable[0] with param=0), then frees the buffer (aligned deallocation for large buffers). Zeros begin/end/capacity. |
| 0x0076E220 | 10 | thunk_to_std__Xlength_error_0076e220 | Wrapper calling std::_Xlength_error for vector_too_long exception |
| 0x0076E230 | 61 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x0076F5E0 | 131 | std__tree_destroy_nodes_1c | Recursively destroys all nodes in a std::_Tree with 0x1C-byte nodes. For each non-nil node, recurses on the right child, then destroys the contained 0x4C virtual object, frees the node, and continues with the left child (iterative tail). |
| 0x0076F670 | 123 | std__tree_destroy_nodes_20 | Recursively destroys all nodes in a std::_Tree with 0x20-byte nodes. For each non-nil node, recurses on the right child, resets vtable, frees the 0x20-byte node, and continues with the left child (iterative tail). |
| 0x0076F6F0 | 99 | _Find_last<> | STL hash map helper. Finds the last node in a bucket chain for insertion. |
| 0x0076F760 | 75 | std__tree_lower_bound_A | Red-black tree lower_bound. Binary searches for the first node with key >= target. |
| 0x0076F7B0 | 75 | std__tree_lower_bound_B | Red-black tree lower_bound. Binary searches for the first node with key >= target. |
| 0x0076F800 | 75 | std__tree_lower_bound_C | Red-black tree lower_bound. Binary searches for the first node with key >= target. |
| 0x0076F850 | 533 | std__unordered_map_emplace | std::unordered_map emplace operation. Uses FNV-1a hash (0x811c9dc5, 0x1000193). Inserts a new element if not found, handles rehashing when load factor exceeded. Returns iterator and bool. |
| 0x0076FA70 | 97 | fill<> | STL fill algorithm. Sets all elements in a range to a specified value. |
| 0x0076FAE0 | 99 | std__unordered_map_find | std::unordered_map::find. Computes FNV-1a hash of the 4-byte key, calls _Find_last to locate the bucket entry. Returns iterator to found element or end() if not found. |
| 0x0076FB50 | 31 | std__fill_range_4byte | STL template instantiation: std fill range 4byte |
| 0x0076FEE0 | 67 | std__unique_ptr_free_10 | Unique pointer deleter. Frees the managed object at the stored offset. |
| 0x0076FF30 | 67 | std__unique_ptr_free_4c | Unique pointer deleter. Frees the managed object at the stored offset. |
| 0x0076FF80 | 67 | std__unique_ptr_free_1c | Unique pointer deleter. Frees the managed object at the stored offset. |
| 0x0076FFD0 | 67 | std__unique_ptr_free_20 | Unique pointer deleter. Frees the managed object at the stored offset. |
| 0x00770020 | 67 | std__unique_ptr_free_18 | Unique pointer deleter. Frees the managed object at the stored offset. |
| 0x00770070 | 131 | std__unordered_map_destroy_and_free | Destructor for std::unordered_map. First frees the bucket vector, then walks the linked list of 0x10-byte nodes freeing each, and finally frees the sentinel node. |
| 0x00770100 | 125 | std__vector_free_buffer | Frees the internal buffer of a std::vector. Handles large allocations (>0xFFF bytes) by reading the original allocation pointer at [-4]. Zeros out the begin/end/capacity pointers after freeing. |
| 0x00770190 | 78 | std__unique_ptr_free_10_b | Unique pointer deleter. Frees the managed object at the stored offset. |
| 0x007701E0 | 106 | std__linked_list_dtor_virtual_4c | Destructor for a container holding a 0x4C-byte polymorphic object. Calls virtual destructor at vtable[0] then frees the 0x4C-byte allocation via operator delete. |
| 0x00770250 | 76 | std__tree_clear_1c | Clears a std::_Tree with 0x1C-byte nodes. Calls std__tree_destroy_nodes_1c on the root, then frees the 0x1C-byte sentinel/header node. |
| 0x007702B0 | 76 | std__tree_clear_20 | Clears a std::_Tree with 0x20-byte nodes. Calls std__tree_destroy_nodes_20 on the root, then frees the 0x20-byte sentinel/header node. |
| 0x00770310 | 116 | std__tree_node_destroy_1c | Destroys a single std::_Tree node (0x1C bytes). If the node contains data at offset +4, calls the virtual destructor of the contained 0x4C object, then frees the 0x1C-byte node allocation. |
| 0x00770390 | 111 | std__tree_node_destroy_20 | Destroys a 0x20-byte tree node. Sets the vtable pointer at node+0x14 before freeing. SEH protected. |
| 0x00770400 | 78 | std__unique_ptr_free_18_b | Frees the 0x18-byte allocation at this+4 if non-null. SEH protected unique_ptr-style cleanup. |
| 0x00770450 | 78 | std__unique_ptr_free_1c_b | Frees the 0x1c-byte allocation at this+4 if non-null. SEH protected unique_ptr-style cleanup. |
| 0x007704A0 | 78 | std__unique_ptr_free_20_b | Frees the 0x20-byte allocation at this+4 if non-null. SEH protected unique_ptr-style cleanup. |
| 0x007704F0 | 78 | std__unique_ptr_free_18_c | Frees the 0x18-byte allocation at this+4 if non-null. SEH protected unique_ptr-style cleanup. |
| 0x00770540 | 103 | std__linked_list_free_nodes_10 | Walks a singly-linked list from the sentinel node, freeing each 0x10-byte node, then frees the sentinel itself. |
| 0x007705B0 | 115 | std__linked_list_destroy_virtual_4c | Walks a linked list from sentinel, calls virtual destructor at node[2] for each 0x4c-byte node, then frees the sentinel. Used for skill entry lists with polymorphic nodes. |
| 0x00770630 | 87 | std__tree_clear_1c_b | Recursively destroys all 0x1c-byte tree nodes via std__tree_destroy_nodes_1c, then frees the sentinel node. |
| 0x00770690 | 87 | std__tree_clear_20_b | Recursively destroys all 0x20-byte tree nodes via std__tree_destroy_nodes_20, then frees the sentinel node. |
| 0x007706F0 | 65 | std__map_destroy_wrapper | SEH-protected wrapper that calls STL_map_destroy to destroy a std::map container. |
| 0x00770740 | 68 | std__linked_list_destroy_virtual_wrapper | SEH-protected wrapper that calls std__linked_list_destroy_virtual_4c to destroy a linked list with virtual destructors on each 0x4c-byte node. |
| 0x007707E0 | 65 | std__unordered_map_destroy_wrapper | SEH-protected wrapper that calls std__unordered_map_destroy_and_free to destroy an unordered_map container. |
| 0x00770940 | 190 | std__unordered_map_clear | Clears all entries from an unordered_map. If element count is small relative to bucket count, uses erase_range. Otherwise walks the node list directly, freeing 0x10-byte nodes and resetting bucket pointers. |
| 0x00770C20 | 83 | operator++ | Red-black tree iterator increment. Advances to the next in-order node. |
| 0x00770C80 | 83 | operator++ | Red-black tree iterator increment. Advances to the next in-order node. |
| 0x00770CE0 | 83 | operator++ | Red-black tree iterator increment. Advances to the next in-order node. |
| 0x00772130 | 235 | std__vector_resize_fill | Resizes a std::vector<DWORD> to param_2 elements, filling with param_3. If new size <= current, fills existing range. Otherwise allocates new buffer, copies data, frees old, and fills all elements with param_3. |
| 0x00772220 | 704 | std__tree_extract_and_rebalance_A | Red-black tree node extraction and rebalancing (variant A for 0x20-byte nodes). Standard RB-tree delete fixup with rotations and color changes. Decrements node count. |
| 0x007724E0 | 704 | std__tree_extract_and_rebalance_B | Red-black tree node extraction and rebalancing (variant B for 0x18-byte nodes). Standard RB-tree delete fixup with rotations and color changes. Decrements node count. |
| 0x007727A0 | 426 | std__unordered_map_rehash | Rehashes an unordered_map to a new bucket count. Rounds up to next power of 2, reallocates bucket array, and redistributes all elements using FNV-1a hash on 4-byte keys. |
| 0x00772950 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x00772B60 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x00772D70 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x00772F80 | 84 | std__tree_rotate_left_A | Standard red-black tree left rotation (variant A). Rotates param_2 node left, updating parent/child pointers and root if needed. |
| 0x00772FE0 | 84 | std__tree_rotate_left_B | Standard red-black tree left rotation (variant B). Identical to variant A but used by a different tree instance. |
| 0x00773040 | 88 | std__tree_rotate_right_A | Standard red-black tree right rotation (variant A). Rotates param_2 node right, updating parent/child pointers and root if needed. |
| 0x007730A0 | 88 | std__tree_rotate_right_B | Standard red-black tree right rotation (variant B). Identical to variant A but used by a different tree instance. |
| 0x00773100 | 478 | std__unordered_map_erase_range | Erases a range of elements from an unordered_map. Iterates from param_2 to param_3, deleting 0x10-byte nodes, rehashing bucket pointers, and decrementing element count. Uses FNV-1a hash on 4-byte keys. |
| 0x0077A450 | 154 | std__function__move_ctor_A | std::function move constructor. Moves callable target from param_2 to param_1. If target is small-buffer-optimized (stored inline), uses vtable clone; otherwise moves pointer directly. |
| 0x0077A4F0 | 154 | std__function__move_ctor_B | std::function move constructor variant B. Same logic as move_ctor_A for a different template instantiation. |
| 0x0077A590 | 154 | std__function__move_ctor_C | std::function move constructor variant C. Same logic as move_ctor_A for a different template instantiation. |
| 0x0077A630 | 14 | std__function__is_empty_A | Returns true if the std::function is empty (internal pointer is null). |
| 0x0077A640 | 14 | std__function__is_empty_B | Returns true if the std::function is empty (internal pointer is null). Variant B. |
| 0x0077A650 | 14 | std__function__is_empty_C | Returns true if the std::function is empty (internal pointer is null). Variant C. |
| 0x0077A660 | 75 | std__map__lower_bound_A | std::map lower_bound implementation. Walks red-black tree searching for key, returns iterator pointing to first element >= key. |
| 0x0077A6B0 | 75 | std__map__lower_bound_B | std::map lower_bound implementation variant B. Same tree walk for different template instantiation. |
| 0x0077A700 | 75 | std__map__lower_bound_C | std::map lower_bound implementation variant C. Same tree walk for different template instantiation. |
| 0x0077C680 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x0077C890 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x0077CAA0 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x007862D0 | 211 | std__random_shuffle_with_rng | Fisher-Yates shuffle using a custom RNG (handler_0061d2c0). Shuffles an array of 4-byte elements in-place with rejection sampling to avoid modulo bias. |
| 0x007863B0 | 146 | std__random_shuffle_simple | Fisher-Yates shuffle using MT19937 global RNG. Shuffles an array of 4-byte elements in-place with rejection sampling to avoid modulo bias. Simpler version without custom RNG parameter. |
| 0x00786500 | 871 | std__mt19937_shuffle_vector | Fills a vector with [0..param_2) then shuffles it using MT19937 (seeded from std::random_device). Fisher-Yates shuffle with rejection sampling. Stack-allocated MT state (0x9C0 bytes). |
| 0x00796EA0 | 75 | std__vector_string_dtor_4elements | Destructor helper for an array of 4 std::string objects (element size 0x18). Uses _eh_vector_destructor_iterator_ with STL_string_dtor to clean up each element. |
| 0x00796EF0 | 871 | std__fisher_yates_shuffle_vector | Fisher-Yates shuffle on a std::vector<int>. First fills the vector with 0..param_2-1, then initializes a Mersenne Twister (MT19937) PRNG with std::_Random_device() seed, and performs in-place shuffle by swapping elements. Returns the shuffled vector. |
| 0x007A71D0 | 150 | std__map_int__destroy_nodes_recursive | Recursively destroys all nodes in a std::map red-black tree. Walks left children, destroys node content (calling CFmt func), frees 0x2C-byte node, continues to right children. |
| 0x007A7270 | 75 | std__map_int__lower_bound | std::map lower_bound operation. Traverses the red-black tree comparing keys at node offset +0x10, returns iterator to first element not less than the search key. |
| 0x007A72C0 | 132 | std__map_int__ctor | std::map<int,...> constructor. Sets vtable, initializes size to 0, allocates 0x2C-byte sentinel/header node as self-referencing root with color flags 0x101. |
| 0x007A7350 | 67 | std__map_int__free_head_node | Frees the 0x2C-byte head/sentinel node of a std::map red-black tree (at this+4). |
| 0x007A73A0 | 76 | std__map_int__dtor | Destructor for std::map<int,...>. Recursively destroys all tree nodes, then frees the 0x2C-byte sentinel node. |
| 0x007A7400 | 132 | std__map_int__destroy_single_node | Destroys a single std::map node: sets vtable to node dtor, calls CFmt vector cleanup, then frees the 0x2C-byte node. |
| 0x007A7490 | 78 | std__map_int__free_node_only | Frees only the 0x2C-byte memory of a std::map node (at this+4) without destroying its contents. |
| 0x007A74E0 | 87 | std__map_int__clear | Clears all nodes from std::map<int,...>. Recursively destroys tree nodes and frees the sentinel. Note: does not reinitialize the tree (unlike typical clear). |
| 0x007A7540 | 89 | std__map_int_node__dtor | Destructor for a std::map<int,...> node. Sets vtable pointer and calls CFmt vector of structs destructor for contained data. |
| 0x007A75A0 | 108 | std__map_int_container__dtor | Destructor for std::map<int,...> container wrapper. Sets vtable, destroys all tree nodes recursively, and frees sentinel. |
| 0x007A7610 | 74 | std__map_int_node__set_vtable_and_cleanup | Sets the vtable to the node destructor vtable and calls CFmt vector cleanup. Used during node teardown. |
| 0x007A7660 | 276 | std__map_int__find_or_insert | std::map<int,...> operator[]. Performs lower_bound search, inserts new 0x2C-byte node with the key if not found. Returns pointer to value at node+0x14. |
| 0x007A7780 | 133 | std__map_int_container__scalar_deleting_dtor | Scalar deleting destructor for std::map<int,...> container. Destroys tree nodes, frees sentinel, optionally frees 0x10-byte container. |
| 0x007A7810 | 99 | std__map_int_node__scalar_deleting_dtor | Scalar deleting destructor for std::map<int,...> node. Calls CFmt vector cleanup and optionally frees 0x18-byte node memory. |
| 0x007A7880 | 123 | std__map_int__insert_string_entry | Inserts a string entry into std::map<int,...>. Calls find_or_insert, then appends a 24-byte struct (with string copy) to the node's vector. |
| 0x007A7900 | 46 | std__map_int__set_two_values | Sets two values in a std::map<int,...> node. Calls find_or_insert twice for the same key, writing param2 at value+4 and param3 at value+8. |
| 0x007A7EA0 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x007A86F0 | 99 | _Find_last<> | STL hash map helper. Finds the last node in a bucket chain for insertion. |
| 0x007A8800 | 50 | std__any_cast_int | std::any_cast<int>. Compares type_info to int type, returns stored value or throws bad_any_cast. |
| 0x007A8840 | 109 | std__any_cast_int_ptr | std::any_cast<int> for pointer variant. Returns pointer to stored int if type matches, 0 if null or type mismatch. |
| 0x007A88C0 | 431 | std__unordered_set_string__emplace | std::unordered_set<string>::emplace. Allocates node, constructs strings, computes FNV-1a hash, inserts into hash table. Rehashes if load factor exceeded. |
| 0x007A8A70 | 480 | std__unordered_map__emplace_effect_data | Emplaces an effect callback data entry into unordered_map. Handles hash computation, rehashing on load factor exceeded, and bucket linking. |
| 0x007A8C60 | 97 | fill<> | STL fill algorithm. Sets all elements in a range to a specified value. |
| 0x007A8CD0 | 369 | std__unordered_set_string__insert | Inserts a string into unordered_set. Computes FNV-1a hash, checks for duplicates, allocates node via CEffectCallbackEntry__ctor_move. Rehashes if needed. |
| 0x007A8E50 | 31 | std__fill_range | STL template instantiation: std fill range |
| 0x007A8F30 | 125 | std__any__copy_ctor | std::any copy constructor. Handles 3 storage modes: mode 0 = raw copy, mode 1 = clone via vtable, mode 2 = clone via vtable into buffer. |
| 0x007A9030 | 109 | std__bad_any_cast__ctor | Constructs std::bad_any_cast exception (inherits from std::bad_cast). Sets message to "bad_cast" and establishes CLuaScriptError-compatible vtable chain. |
| 0x007A9160 | 125 | STL_vector_free_and_clear | Frees STL vector backing memory and zeroes the begin/end/capacity pointers. Handles large allocation header check. |
| 0x007A9420 | 78 | std__exception__dtor | std::exception destructor. Resets vtable and destroys the exception string message. |
| 0x007AA6A0 | 235 | STL_vector_assign_fill | Assigns N copies of a value to an STL vector (4-byte elements). If N <= current size, fills existing buffer via fill<>. If N > current size, allocates new buffer, frees old (without copying), and fills entire new buffer with the value. Does NOT preserve existing elements when growing. |
| 0x007AAA40 | 362 | STL_unordered_map_rehash | Rehashes unordered_map buckets, redistributes nodes into new power-of-2 bucket array |
| 0x007AABD0 | 95 | STL_unordered_map_insert_node_007aabd0 | Inserts a node into unordered_map bucket, updates head/tail pointers and increments size |
| 0x007AAC30 | 22 | STL_any_construct_small_vtable_A | Initializes std::any with small-object vtable pointer A and copies value |
| 0x007AAC50 | 22 | STL_any_construct_small_vtable_B | Initializes std::any with small-object vtable pointer B and copies value |
| 0x007AAC70 | 167 | STL_any_move_construct | Move-constructs std::any, handles small/large/function-pointer storage types |
| 0x007AB860 | 423 | std__vector_string__assign_range | Assigns a range of std::string elements [param_2, param_3) to a std::vector<std::string>. Handles reallocation with 1.5x growth factor. Element size is 0x18 bytes. Copies/moves existing elements, destroys extras, or reallocates as needed. |
| 0x007ABA90 | 454 | std__vector_28__emplace_realloc | Reallocating emplace/insert for a std::vector with 0x1C-byte elements. Grows capacity by 1.5x, copies the new element (28 bytes including 8-byte field), moves existing elements around insertion point, and frees old buffer. |
| 0x007AE190 | 148 | std__vector_28__reserve | Reserve/reallocate for a std::vector with 0x1C-byte elements. Uses 1.5x growth factor. Frees old buffer, allocates new one, and updates begin/end/capacity pointers. Throws vector_too_long if requested size >= 0x924924A. |
| 0x007AE230 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x007AE440 | 159 | std__vector_28__clear_and_free | Clears and frees a std::vector with 0x1C-byte elements. Frees the buffer if non-null (handles aligned allocation > 0xFFF), then zeroes begin/end/capacity pointers. |
| 0x007AE4F0 | 64 | memcpy_28byte_range | Copies a range of 0x1C-byte elements via memcpy. Returns destination pointer advanced by the number of complete 0x1C-byte elements copied. |
| 0x007AE530 | 10 | std__vector_throw_length_error | Throws std::length_error with message "vector too long". Does not return. |
| 0x007AE540 | 102 | std__vector_28__allocate_buffer | Allocates buffer for std::vector with 0x1C-byte elements. For allocations >= 0x1000 bytes, uses aligned allocation (32-byte alignment with header pointer). Throws bad_array_new_length if count >= 0x924924A. |
| 0x007AE5B0 | 67 | std__vector_28__free_buffer | Frees buffer for std::vector with 0x1C-byte elements. Handles aligned deallocation for large buffers (>= 0x1000 bytes) by reading stored original pointer at offset -4. |
| 0x007AFA30 | 141 | std__string__append_cstr | Appends a C-string to an std::string. Computes strlen, checks for overflow (>0x7FFFFFFF), then delegates to STL_string_init_from_two_buffers. |
| 0x007AFB50 | 96 | std__list_small__ctor | Constructs a small std::list by zeroing the count/head fields and allocating a 0xC-byte sentinel node with self-referencing next/prev pointers. |
| 0x007AFC00 | 67 | std__list_small__free_head | Frees the head node (0xC bytes) of a small std::list if non-null, within SEH frame. |
| 0x007AFC50 | 67 | std__list_14byte__free_head | Frees the head node (0x14 bytes) of a 14-byte element std::list if non-null, within SEH frame. |
| 0x007AFCA0 | 78 | std__list_small__free_head_safe | Safely frees the head node (0xC bytes) of a small std::list. Same as free_head but with different SEH unwind index. |
| 0x007AFCF0 | 78 | std__list_14byte__free_head_safe | Safely frees the head node (0x14 bytes) of a 14-byte element std::list. Same as free_head but with different SEH unwind index. |
| 0x007AFD40 | 103 | std__list_small__clear_and_free_all | Clears and frees all nodes of a small std::list (0xC-byte nodes). Zeroes the tail pointer, walks the forward chain freeing each node, then frees the sentinel. |
| 0x007AFDB0 | 103 | std__list_14byte__clear_and_free_all | Clears and frees all nodes of a 14-byte element std::list (0x14-byte nodes). Zeroes the tail pointer, walks the forward chain freeing each node, then frees the sentinel. |
| 0x007B09E0 | 34 | memcpy_range_act | Copies a memory range [param_1, param_2) to param_3. Returns pointer past the last byte written. |
| 0x007B0AB0 | 452 | STL_vector_4byte_insert_realloc_act | STL vector insert with reallocation for 4-byte elements in act resource code. Grows by 1.5x, copies existing data around the insertion point, frees old buffer. |
| 0x007B0C80 | 546 | std__vector_84byte__insert_with_grow | STL vector insert with reallocation for 0x84-byte CActFrame elements. Grows capacity by 1.5x, move-constructs new element, copies existing data around insertion point, destroys old buffer. |
| 0x007B2A80 | 129 | STL_vector_4byte_free_act | Frees an STL vector of 4-byte elements used in act resource code. Deallocates the buffer and zeroes all three vector pointers. |
| 0x007B3060 | 279 | std__map_int__find_or_insert_34byte | std::map<int, T> find-or-insert for 0x34-byte value type. Searches the red-black tree by integer key. If not found, allocates a new 0x34-byte node, calls CActFrame__Constructor to initialize the value, and inserts into the tree. Returns pointer to the value portion of the node. |
| 0x007B3180 | 290 | std__map_int__find_or_insert_string | std::map<int, std::string> find-or-insert. Searches the red-black tree by integer key. If not found, allocates a new 0x2c-byte node with int key + empty SSO string value, and inserts into the tree. Returns pointer to the value portion of the node. |
| 0x007B9DE0 | 517 | STL_tree_insert_node_007b9de0 | STL std::_Tree_val::_Insert_node - inserts a new node into a red-black tree and rebalances. Handles left/right insertion, updates min/max pointers, and performs rotations to maintain RB-tree invariants. MSVC 2019 library function. |
| 0x007B9FF0 | 10 | std__vector_xlength_error_1 | Throws std::_Xlength_error("vector too long") - vector capacity exceeded. |
| 0x007BA000 | 10 | std__vector_xlength_error_2 | Throws std::_Xlength_error("vector too long") - vector capacity exceeded (duplicate). |
| 0x007BA010 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x007BA050 | 59 | free_achievement_entry_buffer | Frees a heap buffer used for achievement entries. Buffer size is param_2 * 0x84 (132 bytes per entry). Handles aligned allocation cleanup. |
| 0x007BA2D0 | 90 | std__vector_destroy_string_elements | Destroys all std::string elements in a vector. Iterates from begin to end, calling STL_string_dtor on each element (0x1C stride per element). |
| 0x007BAA40 | 206 | std__vector_clear_and_free_1c | Clears and frees a vector of 0x1C-byte elements. Destroys string elements first, then frees the backing buffer with aligned deallocation. |
| 0x007BAB10 | 300 | std__vector_copy_4c_elements | Copy constructor for a vector of 0x4C-byte elements. Allocates new buffer and copies elements using helper_005ca5b0. |
| 0x007C3590 | 517 | std__Tree_val__Insert_node | std::_Tree_val::_Insert_node - Inserts a node into a red-black tree (std::set/map), performs rebalancing rotations and color fixes. Library function (VS2019). |
| 0x007C3BC0 | 34 | STL_vector_copy_range | Copies memory range [param_1, param_2) to param_3 destination; returns end of copied region |
| 0x007C3BF0 | 337 | STL_vector_insert_ptr_0x3bf0 | std::vector insert with 1.5x growth for item shop control pointers |
| 0x007C3E80 | 5 | STL_vector_clear_ptr_array | Clears a std::vector of pointers: frees aligned buffer and resets begin/end/capacity to null |
| 0x007C44D0 | 129 | STL_vector_dealloc_ptr_array | Deallocates std::vector buffer with aligned free support; resets begin/end/capacity to null |
| 0x007C4560 | 10 | STL_vector_throw_length_error_0x4560 | Throws std::length_error("vector too long") |
| 0x007C4570 | 92 | STL_vector_allocate_aligned | Allocates aligned memory for std::vector: 32-byte alignment for blocks >= 0x1000, stores raw ptr at [-4] |
| 0x007C45D0 | 62 | std__allocator__deallocate | std::allocator::deallocate - Frees aligned vector memory. For blocks >= 0x1000, retrieves raw pointer from [-4] offset for aligned free. |
| 0x007C4610 | 34 | STL_vector_copy_range_0x4610 | Copies memory range [param_1, param_2) to destination; returns pointer past end of copied data |
| 0x007C4640 | 452 | STL_vector_insert_ptr_0x4640 | std::vector insert with 1.5x growth: allocates aligned buffer, copies element, moves existing data around insert point |
| 0x007C4A40 | 129 | STL_vector_dealloc_ptr_array_0x4a40 | Deallocates std::vector buffer with aligned free; resets begin/end/capacity to null |
| 0x007C5340 | 10 | STL_vector_throw_length_error_0x5340 | Throws std::length_error("vector too long") |
| 0x007C5350 | 62 | std__allocator__deallocate_007c5350 | std::allocator::deallocate - Frees aligned vector memory. For blocks >= 0x1000, retrieves raw pointer from [-4] offset for aligned free. |
| 0x007C5390 | 34 | STL_vector_copy_range_0x5390 | Copies memory range [param_1, param_2) to destination; returns end pointer |
| 0x007C53C0 | 452 | STL_vector_insert_ptr_0x53c0 | std::vector insert with 1.5x growth for emotion shop item pointers |
| 0x007C5DE0 | 10 | STL_vector_throw_length_error_0x5de0 | Throws std::length_error("vector too long") |
| 0x007C5DF0 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x007C5E30 | 34 | STL_vector_copy_range_0x5e30 | Copies memory range [param_1, param_2) to destination; returns end pointer |
| 0x007C5E60 | 452 | STL_vector_insert_ptr_0x5e60 | std::vector insert with 1.5x growth for sale item pointers |
| 0x007C6230 | 129 | STL_vector_dealloc_ptr_array_0x6230 | Deallocates std::vector buffer with aligned free; resets begin/end/capacity to null |
| 0x007C6BA0 | 10 | STL_vector_throw_length_error_0x6ba0 | Throws std::length_error("vector too long") |
| 0x007C6BB0 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x007C8BD0 | 517 | STL_tree_val__Insert_node | STL _Tree_val::_Insert_node, inserts a node into a red-black tree, performs RB rebalancing (rotations + recoloring). MSVC 2019 std::set/map implementation. Multiple template instantiations (uint, string, PCTableEntry const*). |
| 0x007C8E50 | 28 | STL_vector_is_unallocated | Checks if vector's begin pointer (first member) is null, meaning no allocation exists. Returns 1 if unallocated, 0 otherwise. Not the same as standard empty() which checks begin==end. |
| 0x007C9B30 | 10 | std__array_subscript_out_of_range | Throws std::out_of_range with message "invalid array<T, N> subscript". Called when array bounds check fails. Does not return. |
| 0x007CA960 | 90 | STL_vector__Change_array | STL vector::_Change_array, replaces internal buffer. Frees old allocation (with aligned-delete for >0xFFF byte buffers), sets begin/end/capacity pointers. MSVC 2019 implementation for vector of uint/pointer types. |
| 0x007CC350 | 67 | std__list_1c_byte__free_head | Frees a 0x1C-byte allocation at offset+4 if non-null. Used as a small-object destructor helper. |
| 0x007CC3A0 | 78 | std__list_1c_byte__free_head_safe_a | Frees a 0x1C-byte allocation at offset+4 if non-null. Safe variant with SEH frame. Duplicate behavior of 007cc350. |
| 0x007CC3F0 | 78 | std__list_1c_byte__free_head_safe_b | Frees a 0x1C-byte allocation at offset+4 if non-null. Safe variant with SEH frame. Duplicate behavior of 007cc350. |
| 0x007CC660 | 517 | STL_tree_insert_node_007cc660 | MSVC STL red-black tree _Insert_node implementation. Inserts a new node into the tree, performs rotations and recoloring to maintain red-black properties. Matched to Visual Studio 2019 Release library. |
| 0x007CCE30 | 34 | STL_uninitialized_copy_range_007cce30 | Copies memory range [param_1, param_2) to param_3 destination buffer. Returns pointer past end of destination. |
| 0x007CCE60 | 34 | STL_uninitialized_copy_range_007cce60 | Copies memory range [param_1, param_2) to param_3 destination buffer. Returns pointer past end of destination. Duplicate of memcpy_range_a. |
| 0x007CCE90 | 34 | STL_uninitialized_copy_range_007cce90 | Copies memory range [param_1, param_2) to param_3 destination buffer. Returns pointer past end of destination. Duplicate of memcpy_range_a. |
| 0x007CCEC0 | 104 | std__destroy_range_0x30_elements | Destroys a range of 0x30-byte elements by iterating [param_1, param_2) and calling STL_string_dtor on two strings per element. |
| 0x007CCF30 | 452 | std__vector_int_ptr__emplace_reallocate_007ccf30 | std::vector reallocate-and-emplace for int* elements. Grows capacity by 1.5x, copies elements, inserts new element at position. Used by cash shop vectors. |
| 0x007CD100 | 452 | std__vector_int_ptr__emplace_reallocate_007cd100 | std::vector reallocate-and-emplace for int* elements. Identical pattern to 007ccf30, different instance. |
| 0x007CD2D0 | 452 | std__vector_int_ptr__emplace_reallocate_007cd2d0 | std::vector reallocate-and-emplace for int* elements. Identical pattern to 007ccf30, different instance. |
| 0x007CD4A0 | 103 | std__map__destroy_subtree | Recursively destroys nodes in a std::map red-black tree. Traverses right subtree, then walks left siblings, freeing 0x18-byte nodes. |
| 0x007CD510 | 75 | std__map__lower_bound_int | std::map::lower_bound for integer keys. Performs binary search on red-black tree, returns iterator to first element >= key. |
| 0x007CD9B0 | 67 | std__map__free_sentinel_node | Frees a std::map sentinel node (0x18 bytes) if allocated. |
| 0x007CDA00 | 111 | std__map__clear_and_free_nodes | Clears all nodes from a std::map red-black tree. Recursively destroys subtrees then frees the sentinel node (0x18 bytes). |
| 0x007CDA80 | 78 | std__map__free_sentinel_node_007cda80 | Frees a std::map sentinel node (0x18 bytes) if allocated. Similar to 007cd9b0. |
| 0x007CDAD0 | 78 | std__map__free_sentinel_node_007cdad0 | Frees a std::map sentinel node (0x18 bytes) if allocated. Similar to 007cd9b0. |
| 0x007CDB80 | 65 | std__map__dtor_007cdb80 | std::map destructor wrapper. Calls std__map__clear_and_free_nodes. |
| 0x007CDBD0 | 129 | std__vector__deallocate_007cdbd0 | Deallocates a std::vector buffer. Handles aligned allocation (>0xfff bytes checks alignment header). Zeros out begin/end/capacity pointers. |
| 0x007CDC60 | 129 | std__vector__deallocate_007cdc60 | Deallocates a std::vector buffer. Same pattern as 007cdbd0, different instance. |
| 0x007CDCF0 | 129 | std__vector__deallocate_007cdcf0 | Deallocates a std::vector buffer. Same pattern as 007cdbd0, different instance. |
| 0x007CDD80 | 166 | std__vector__destroy_and_deallocate_0x30 | Destroys and deallocates a vector of 0x30-byte elements. First destroys string members in each element, then frees the underlying buffer. |
| 0x007CE0B0 | 83 | operator++ | Red-black tree iterator increment. Advances to the next in-order node. |
| 0x007D3930 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x007D3B40 | 10 | std__vector_xlength_error_007d3b40 | Throws std::length_error("vector too long") - STL vector overflow guard. |
| 0x007D3B50 | 10 | std__vector_xlength_error_007d3b50 | Throws std::length_error("vector too long") - STL vector overflow guard. |
| 0x007D3B60 | 10 | std__vector_xlength_error_007d3b60 | Throws std::length_error("vector too long") - STL vector overflow guard. |
| 0x007D3BB0 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x007D3BF0 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x007D3C30 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x007D3D20 | 34 | memcpy_range_007d3d20 | Copies a memory range [param_1, param_2) to destination param_3 via memcpy. Returns pointer past the end of copied data. |
| 0x007D3D50 | 34 | memcpy_range_007d3d50 | Copies a memory range [param_1, param_2) to destination param_3 via memcpy. Returns pointer past the end of copied data. |
| 0x007D3D80 | 103 | std__map_destroy_subtree | Recursively destroys nodes in a std::map/set red-black tree. Visits left subtree, frees current node (0x1C bytes), advances to right child. |
| 0x007D3DF0 | 418 | std__vector_reallocate_007d3df0 | std::vector reallocation with grow policy (1.5x). Allocates new buffer, copies old data, zero-fills new elements, frees old buffer. Max capacity 0x3FFFFFFF elements. |
| 0x007D3FA0 | 418 | std__vector_reallocate_007d3fa0 | std::vector reallocation with grow policy (1.5x). Allocates new buffer, copies old data, zero-fills new elements, frees old buffer. Max capacity 0x3FFFFFFF elements. |
| 0x007D4150 | 28 | _Zero_range<> | Fills a memory range with zeros using memset. |
| 0x007D4170 | 28 | _Zero_range<> | Fills a memory range with zeros using memset. |
| 0x007D4620 | 111 | std__map_destroy_tree_007d4620 | Destroys all nodes in a std::map/set red-black tree. Iterates left children, recursively destroys right subtrees, frees each 0x1C-byte node, then frees sentinel. |
| 0x007D46A0 | 126 | std__map_destroy_tree_007d46a0 | Destroys all nodes in a std::map/set red-black tree. Iterates left children, recursively destroys right subtrees, frees each 0x1C-byte node, then frees sentinel. |
| 0x007D4720 | 129 | std__vector_deallocate_007d4720 | Deallocates std::vector internal buffer. Handles aligned allocation (>0xFFF bytes have stored original pointer at offset -4). Resets begin/end/capacity to 0. |
| 0x007D47B0 | 129 | std__vector_deallocate_007d47b0 | Deallocates std::vector internal buffer. Handles aligned allocation (>0xFFF bytes have stored original pointer at offset -4). Resets begin/end/capacity to 0. |
| 0x007D9850 | 10 | std__vector_xlength_error_007d9850 | Throws std::length_error with "vector too long" message. Called when a vector exceeds maximum size. |
| 0x007D9860 | 10 | std__vector_xlength_error_007d9860 | Throws std::length_error with "vector too long" message. Called when a vector exceeds maximum size. |
| 0x007D9870 | 62 | deallocate | std::allocator::deallocate for 4-byte element types. Handles aligned deallocation for large allocations (>0xFFF bytes). |
| 0x007D98B0 | 62 | deallocate | std::allocator::deallocate for 4-byte element types. Handles aligned deallocation for large allocations (>0xFFF bytes). Duplicate of deallocate at 007d9870. |
| 0x007DE530 | 10 | std__vector_56__throw_length_error | Throws std::length_error with "vector too long" for a vector with 0x38-byte elements. Does not return. |
| 0x007DE540 | 67 | std__vector_56__free_buffer | Frees buffer for std::vector with 0x38-byte elements. Handles aligned deallocation for large buffers (>= 0x1000 bytes). |
| 0x007DE590 | 34 | memcpy_range_56a | Copies a memory range [param_1, param_2) to param_3 via memcpy. Returns end of copied data in destination. |
| 0x007DE5C0 | 34 | memcpy_range_56b | Copies a memory range [param_1, param_2) to param_3 via memcpy. Returns end of copied data in destination. Identical to memcpy_range_56a. |
| 0x007DE5F0 | 452 | std__vector_4ptr__emplace_realloc | Reallocating emplace/insert for a std::vector of 4-byte pointers. Uses 1.5x growth factor, allocates new buffer, copies element at insertion point, moves existing elements around it, frees old buffer. |
| 0x007DE7C0 | 424 | std__vector_2byte__emplace_realloc | Reallocating emplace/insert for a std::vector of 2-byte (short) elements. Uses 1.5x growth factor, allocates new buffer, copies element, moves existing elements, frees old buffer. |
| 0x007DE990 | 489 | std__vector_char__insert_range | Inserts a range of bytes into a std::vector<char> at position param_2. If capacity is sufficient, shifts existing elements and copies. Otherwise allocates new buffer with 1.5x growth, copies data around insertion point, and swaps buffers. |
| 0x007DED80 | 129 | std__vector_2byte__clear_and_free | Clears and frees a std::vector with 2-byte elements. Frees buffer (handles aligned allocation), then zeroes begin/end/capacity pointers. |
| 0x007DEE10 | 129 | std__vector_4ptr__clear_and_free | Clears and frees a std::vector with 4-byte (pointer) elements. Frees buffer (handles aligned allocation), then zeroes begin/end/capacity pointers. |
| 0x007E0930 | 10 | std__vector_throw_length_error_2 | Throws std::length_error with "vector too long". Does not return. Duplicate instance. |
| 0x007E0940 | 10 | std__vector_throw_length_error_3 | Throws std::length_error with "vector too long". Does not return. Duplicate instance. |
| 0x007E0950 | 58 | std__vector_2byte__free_buffer | Frees buffer for std::vector of 2-byte (short) elements. Handles aligned deallocation for large buffers (>= 0x1000 bytes). |
| 0x007E0990 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x007E2170 | 39 | std__vector_int__push_back_007e2170 | Pushes an integer value onto a std::vector. Handles reallocation if at capacity. |
| 0x007E6590 | 95 | STL_aligned_alloc_0c_elements | STL aligned memory allocator for arrays of 0xC-byte elements (linked list nodes). Allocates count*0xC bytes with 32-byte alignment for large allocations (>=0x1000). |
| 0x007E65F0 | 95 | STL_aligned_alloc_18_elements | STL aligned memory allocator for arrays of 0x18-byte elements (tree nodes). Allocates count*0x18 bytes with 32-byte alignment for large allocations (>=0x1000). |
| 0x007E6650 | 102 | STL_aligned_alloc_1c_elements | STL aligned memory allocator for arrays of 0x1C-byte elements. Allocates count*0x1C bytes with 32-byte alignment for large allocations (>=0x1000). Same pattern as 007e6590 (0xC-byte) and 007e65f0 (0x18-byte). |
| 0x007E66C0 | 34 | STL_uninitialized_copy_0c | STL uninitialized_copy for 0xC-byte elements. Copies memory range [first, last) to destination via memcpy and returns end of destination. |
| 0x007E66F0 | 34 | STL_uninitialized_copy_18 | STL uninitialized_copy for 0x18-byte elements. Copies memory range [first, last) to destination via memcpy and returns end of destination. |
| 0x007E6720 | 452 | std__vector_ptr__emplace_reallocate_007e6720 | std::vector emplace with reallocation for pointer elements. Grows by 1.5x capacity. |
| 0x007E9B70 | 10 | std__vector_xlength_error_refine_items | Throws std::length_error("vector too long") for refine item vector overflow. |
| 0x007E9B80 | 10 | std__vector_xlength_error_refine_results | Throws std::length_error("vector too long") for refine result vector overflow. |
| 0x007E9B90 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x007EADC0 | 207 | STL_random_shuffle_bytes_3arg_a | Fisher-Yates shuffle for byte array using MT19937 RNG with bounded distribution (3-param variant). Shuffles elements in [param_1, param_2) using RNG state at param_3. |
| 0x007EAE90 | 207 | STL_random_shuffle_bytes_3arg_b | Fisher-Yates shuffle for byte array using MT19937 RNG with bounded distribution (3-param variant B). Identical algorithm to variant A, used for a different call site. |
| 0x007EAF60 | 147 | STL_random_shuffle_bytes_2arg_a | Fisher-Yates shuffle for byte array using MT19937 RNG with simple modulo (2-param variant). Shuffles elements in [param_1, param_2) using single MT19937 call per iteration. |
| 0x007EB000 | 147 | STL_random_shuffle_bytes_2arg_b | Fisher-Yates shuffle for byte array using MT19937 RNG with simple modulo (2-param variant B). Identical algorithm to variant A, used for a different call site. |
| 0x007EE070 | 34 | STL_uninitialized_copy_bytes | Copies a byte range using memcpy. Copies (param_2 - param_1) bytes from param_1 to param_3. Returns the end pointer (param_3 + bytes_copied). Used in STL uninitialized_copy for trivially copyable types. |
| 0x007EE0A0 | 452 | std__vector_ptr__emplace_reallocate_007ee0a0 | std::vector emplace with reallocation for 4-byte (pointer) elements. Calculates new capacity using 1.5x growth strategy, allocates aligned memory, inserts new element at the specified position, moves existing elements around it, frees old buffer. |
| 0x007EE270 | 439 | std__vector_8byte__emplace_reallocate | std::vector emplace with reallocation for 8-byte elements. Uses 1.5x growth, aligned allocation, inserts a pair of values at the specified position, relocates existing pairs via copy_8byte_pairs helpers, frees old buffer. |
| 0x007EE430 | 520 | std__vector_0x20__emplace_reallocate | std::vector emplace with reallocation for 0x20-byte elements (containing STL strings). Uses 1.5x growth, aligned allocation. Calls CCharRenderInfo__set_body_palette (move-construct single element) for the new item. Moves existing elements and destroys strings in old buffer before freeing. |
| 0x007EE640 | 476 | std__vector_0x20__resize_default | std::vector resize with default construction for 0x20-byte elements. Grows to new size, default-constructs new elements at the end. Moves existing elements to new buffer and destroys+frees old buffer. |
| 0x007EE820 | 204 | std__move_construct_0x20_elements_007ee820 | Move-constructs a range of 0x20-byte elements (containing STL strings). Iterates source range in 0x20 strides, move-constructs each element's string data (steals buffer pointer), copies extra 6-byte suffix, resets source string to empty. |
| 0x007EE8F0 | 141 | std__move_construct_0x20_element | Move-constructs a single 0x20-byte element. Steals the STL string buffer from source (moves pointer, length, capacity), copies the 6-byte suffix after the string, resets source string to empty state. |
| 0x007EE980 | 115 | std__copy_construct_string_0x20_element | Copy-constructs a 0x20-byte element with string + extra fields. Copy-constructs the STL string portion, then copies 6 additional bytes (at offsets 0x18-0x1d) from the source element. |
| 0x007EEC70 | 90 | std__destruct_0x20_elements_range_a | Destroys a range of 0x20-byte elements by iterating and calling STL_string_dtor on each. Used as the destructor callback for vector cleanup of string-containing structs. |
| 0x007EECD0 | 90 | std__destruct_0x20_elements_range_b | Destroys a range of 0x20-byte elements (variant B). Identical pattern to variant A - iterates in 0x20 strides calling STL_string_dtor on each element. Used for a different call site. |
| 0x007EED30 | 129 | std__vector_ptr__deallocate_007eed30 | Deallocates a std::vector's backing buffer for 4-byte (pointer) elements. Handles aligned allocation cleanup (checks for oversized allocations using stored pre-alignment pointer at buf[-4]). |
| 0x007EEDC0 | 129 | std__vector_8byte__deallocate | Deallocates a std::vector's backing buffer for 8-byte elements. Handles aligned allocation cleanup with the same pattern as the 4-byte variant (mask 0xfffffff8 vs 0xfffffffc). |
| 0x007EEE50 | 177 | std__vector_clear_and_free_0x20_string_elements | Clears and frees a vector of 0x20-byte elements containing std::string members. Iterates each element calling STL_string_dtor, then frees the backing buffer and resets begin/end/capacity pointers to 0. |
| 0x007F28B0 | 92 | std__destruct_0x20_elements_range | Destructs a range of 0x20-byte elements from param_1 to param_2. Each element contains a std::string that is destroyed via STL_string_dtor. |
| 0x007F2910 | 92 | std__destruct_0x20_elements_range_v2 | Destructs a range of 0x20-byte elements from param_1 to param_2. Identical to std__destruct_0x20_elements_range. |
| 0x007F2980 | 142 | std__default_construct_0x20_elements | Default-constructs param_2 count of 0x20-byte elements starting at param_1. Each element is zeroed out and initialized as an empty std::string (length=0, capacity=0xF). |
| 0x007F2A70 | 203 | std__move_construct_0x20_elements | Move-constructs 0x20-byte elements from [param_1, param_2) to param_3. Each element contains a std::string (with SSO) and additional fields. Moves the string data and clears the source element's string to empty state. |
| 0x007F2B40 | 10 | std__vector_throw_length_error_7f2b40 | Throws std::length_error("vector too long"). Does not return. |
| 0x007F2B50 | 10 | std__vector_throw_length_error_7f2b50 | Throws std::length_error("vector too long"). Does not return. |
| 0x007F2B60 | 10 | std__vector_throw_length_error_7f2b60 | Throws std::length_error("vector too long"). Does not return. |
| 0x007F2B70 | 10 | std__vector_throw_length_error_7f2b70 | Throws std::length_error("vector too long"). Does not return. |
| 0x007F2B80 | 407 | STL_wstring_append_fill | std::wstring::append(count, wchar_t). Appends param_2 copies of wide character param_3. Handles SSO (small string optimization with capacity 7) and heap allocation with aligned growth. Null-terminates the result. |
| 0x007F2D20 | 132 | std__vector_clear_0x20_string_elements | Clears a vector of 0x20-byte elements by destroying string members (STL_string_dtor) on each element, then resets end pointer to begin. |
| 0x007F2DB0 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x007F2DF0 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x007F2E30 | 58 | free_buffer_0x20_stride | Frees a heap buffer for elements with 0x20 stride. Handles aligned deallocation. |
| 0x007F2E70 | 58 | free_buffer_0x20_stride_2 | Frees a heap buffer for elements with 0x20 stride (duplicate). |
| 0x007F2EB0 | 58 | free_buffer_2byte_stride | Frees a heap buffer for 2-byte (short) elements. Handles aligned deallocation. |
| 0x007F2EF0 | 39 | std__vector_push_back_int | Push back a 4-byte value to a std::vector. If capacity available, copies directly; otherwise calls grow/realloc via FUN_007ee0a0. |
| 0x007F2F20 | 101 | std__vector_push_back_0x20 | Push back a 0x20-byte element to a std::vector. If space available, copies via FUN_007ee8f0; otherwise grows via FUN_007ee430. |
| 0x007F4850 | 34 | memcpy_range_to_dst | Copies a range [param_1, param_2) to param_3. Returns pointer past the end of copied data. |
| 0x007F4880 | 34 | memcpy_range_to_dst_2 | Copies a range [param_1, param_2) to param_3. Returns pointer past the end of copied data (duplicate). |
| 0x007F48B0 | 99 | std__vector_assign_9byte_elements | Assigns a range of 9-byte elements to a vector. If capacity insufficient, reallocates via FUN_007f8f50. Copies data with memcpy and updates end pointer. |
| 0x007F4C80 | 147 | std__vector_clear_and_free_9byte | Clears and frees a vector of 9-byte elements. Frees backing buffer with aligned deallocation, resets all 3 pointers (begin/end/capacity) to 0. |
| 0x007F8F50 | 271 | std__vector_9byte__reallocate | STL vector reallocation for 9-byte elements. Frees old buffer, allocates new buffer with 1.5x growth factor. Max capacity 0x1c71c71c elements. Handles aligned allocation for buffers >4096 bytes. |
| 0x007F9060 | 10 | std__vector_throw_length_error_7f9060 | Throws std::length_error("vector too long"). Does not return. |
| 0x007F98A0 | 452 | std__vector_ptr__emplace | STL vector emplace/insert for pointer-sized (4-byte) elements. Allocates new buffer with 1.5x growth, copies element at insertion point, memcpy's before/after segments, frees old buffer. Max capacity 0x3fffffff. |
| 0x007FC2C0 | 83 | operator++ | Red-black tree iterator increment. Advances to the next in-order node. |
| 0x007FE080 | 175 | STL_tree_destroy_nodes_recursive_1b0 | Recursively destroys nodes in a std::_Tree with 0x1b0-byte node size, freeing string members |
| 0x007FE2A0 | 79 | STL_tree_destroy_single_1b0 | Destroys a single std::_Tree with 0x1b0-byte nodes by recursive cleanup and freeing root |
| 0x007FE300 | 90 | STL_tree_destroy_single_1b0_alt | Alternate destructor for a std::_Tree with 0x1b0-byte nodes, identical pattern to 7fe2a0 |
| 0x007FE4A0 | 83 | operator++ | Red-black tree iterator increment. Advances to the next in-order node. |
| 0x007FEA50 | 704 | std__tree__extract_node | STL red-black tree node extraction. Removes a node from the tree while maintaining RB-tree invariants. Handles all cases: node with two children (swap with successor), one child, leaf. Performs rotations and recoloring for balance fixup. Decrements tree size. Returns pointer to extracted node. |
| 0x007FED10 | 84 | std__tree__rotate_left | STL red-black tree left rotation. Rotates param_2 node left by promoting its right child. Updates parent/child pointers and handles root case. |
| 0x007FED70 | 88 | std__tree__rotate_right | STL red-black tree right rotation. Rotates param_2 node right by promoting its left child. Updates parent/child pointers and handles root case. |
| 0x008038F0 | 446 | STL_vector_16byte_insert | STL vector insert for 16-byte elements. Grows the vector with 1.5x capacity, copies existing elements around the insertion point, and inserts the new 16-byte element. |
| 0x00803AC0 | 541 | STL_insertion_sort_16byte_gradeenchant | STL insertion sort for 16-byte grade enchant entries. Sorts array in-place by comparing entries via CQuestSystem tree lookups and priority fields at offset +0x18 (type flag) and +0x34 (priority value). |
| 0x00803CE0 | 702 | STL_make_heap_16byte_gradeenchant | STL make_heap (sift-down) for 16-byte grade enchant entries. Builds a max-heap by repeatedly extracting the last element and sifting it down through the heap. Uses CQuestSystem tree lookups for comparisons. |
| 0x00803FA0 | 178 | STL_median_of_three_16byte_gradeenchant | STL median-of-three sort for 16-byte grade enchant entries. Sorts 3 elements (first, mid, last) to select a good pivot for introsort partitioning. Uses CQuestSystem tree-based comparator. |
| 0x00804060 | 2228 | STL_introsort_loop_16byte_gradeenchant | STL introsort loop (partition phase) for 16-byte grade enchant entries. Implements the main partitioning loop of std::sort with median-of-three pivot selection. Falls back to insertion sort for small ranges. |
| 0x00804920 | 620 | STL_adjust_heap_16byte_gradeenchant | STL adjust_heap (sift-down) for 16-byte grade enchant entries. Pushes an element down through a binary heap to maintain heap property. Used by heap_sort and partial_sort. |
| 0x00804B90 | 257 | STL_sort_16byte_gradeenchant | STL std::sort implementation for 16-byte grade enchant entries. Uses introsort (quicksort + heapsort fallback + insertion sort for small ranges). Recursively sorts smaller partition first to limit stack depth. |
| 0x008051D0 | 129 | STL_vector_16byte_clear_and_free | Clears and frees a std::vector of 16-byte elements. Handles aligned deallocation for large buffers (>0x1000 bytes) by reading the original allocation pointer from offset -4. |
| 0x00809C30 | 10 | thunk_to_std__Xlength_error_00809c30 | Wrapper calling std::_Xlength_error for vector overflow |
| 0x00809C40 | 58 | free_16byte_vector_buffer | Frees a vector buffer of 16-byte elements. Calculates total size (count * 0x10), handles aligned deallocation for buffers >4096 bytes. |
| 0x0080A260 | 163 | std__tree__destroy_nodes_recursive_118 | Recursively destroys a red-black tree subtree of 0x18-byte nodes. Walks left children while recursively destroying right subtrees, then frees each node via operator delete. Stops at sentinel nodes. |
| 0x0080B720 | 517 | std__Tree_val__Insert_node_0080b720 | STL std::_Tree_val::_Insert_node. Inserts a node into a red-black tree, performs rotations and recoloring to maintain RB-tree invariants. MSVC 2019 library function. |
| 0x0080CEA0 | 103 | std__map_destroy_subtree_recursive_4c | Recursively destroys a red-black tree subtree of 0x4C-byte nodes. Walks left children while destroying right subtrees, then frees each node. Stops at sentinel (nil) nodes marked by byte at offset 0xd. |
| 0x0080D060 | 284 | std__vector_construct_fill_0080d060 | STL std::vector constructor with fill. Allocates buffer for param_2 elements of 4 bytes each, fills with value from *param_3. Handles aligned allocation for buffers >4096 bytes. |
| 0x0080D180 | 284 | std__vector_construct_fill_0080d180 | STL std::vector constructor with fill (duplicate instance). Allocates buffer for param_2 elements of 4 bytes each, fills with value from *param_3. Handles aligned allocation for buffers >4096 bytes. |
| 0x0080D450 | 67 | free_12byte_buffer | Frees a 0xC-byte buffer at offset 0x4 of the object if non-null. Used for cleanup of small linked list nodes. |
| 0x0080D4A0 | 67 | free_16byte_buffer | Frees a 0x10-byte buffer at offset 0x4 of the object if non-null. Used for cleanup of 16-byte data blocks. |
| 0x0080D4F0 | 78 | free_12byte_buffer_alt | Alternative version of free_12byte_buffer. Frees a 0xC-byte buffer at offset 0x4 if non-null. Different SEH frame setup from primary version. |
| 0x0080D540 | 78 | free_16byte_buffer_alt | Alternative version of free_16byte_buffer. Frees a 0x10-byte buffer at offset 0x4 if non-null. Different SEH frame setup from primary version. |
| 0x0080D590 | 111 | std__map_destroy_tree_4c | Destroys an entire red-black tree of 0x4C-byte nodes. Gets root from header node, recursively destroys all subtrees via std__map_destroy_subtree_recursive_4c, then frees the header/sentinel node. |
| 0x0080D610 | 103 | std__list_destroy_all_nodes_0xc | Destroys all nodes in a singly-linked list of 0xC-byte nodes. Zeroes the count at header[1], then walks the chain from header[0] freeing each 0xC-byte node. Finally frees the header node itself. |
| 0x0080D680 | 65 | std__map_clear_4c_wrapper | Wrapper that clears a std::map with 0x4C-byte nodes. Calls std__map_destroy_tree_4c to recursively delete all nodes, then resets the tree header to empty state. |
| 0x008125A0 | 10 | std__vector_xlength_error_008125a0 | Throws std::length_error for vector operations that exceed max_size. |
| 0x008125B0 | 10 | std__vector_xlength_error_008125b0 | Throws std::length_error for vector operations that exceed max_size. |
| 0x008125C0 | 95 | std__allocate_12byte_array | Allocates memory for an array of 12-byte elements with proper alignment. |
| 0x00812620 | 165 | std__list_push_back_12byte | Allocates a new 12-byte node and inserts it at the end of an STL list. |
| 0x008126D0 | 173 | std__list_push_back_16byte | Allocates a new 16-byte node and inserts it at the end of an STL list. |
| 0x00814080 | 573 | std__vector_36byte__emplace | STL vector emplace for 36-byte (0x24) elements. Allocates new buffer with 1.5x growth, copies element at insertion point, relocates before/after segments. Destroys strings in old elements before freeing old buffer. Max capacity 0x71c71c7. |
| 0x008142C0 | 103 | std__vector_36byte__construct_element | Constructs a 36-byte element in-place for vector emplace. Copy constructs the embedded string, then copies remaining fields (0x18, 0x1c byte, 0x20). |
| 0x00815460 | 90 | std__vector_36__destroy_elements | Destroys all elements in a vector of 0x24-byte (36) structs. Each element contains a string that needs to be destroyed. Iterates begin to end, calling STL_string_dtor on each element. |
| 0x008154C0 | 197 | std__vector_36__clear_and_free | Clears and frees a vector of 0x24-byte structs. Destroys string in each element, then frees the buffer (handles aligned allocation), and zeroes begin/end/capacity. |
| 0x0081F460 | 92 | STL_vector_36byte_destroy_range | Destroys a range of 0x24-byte (36-byte) vector elements by calling STL_string_dtor on each element's embedded string. |
| 0x0081F4C0 | 159 | STL_vector_36byte_uninitialized_copy | Uninitialized copy for vector of 36-byte elements. Copy-constructs each element's string (offset 0) and copies raw fields at offsets 0x18, 0x1C, and 0x20 into destination range at param_3. |
| 0x0081F560 | 157 | STL_vector_36byte_uninitialized_copy_0081f560 | Uninitialized copy for vector of 36-byte elements (duplicate instance). Same logic as STL_vector_36byte_uninitialized_copy. |
| 0x0081F600 | 10 | STL_vector_xlength_error_0081f600 | Throws std::length_error for vector too long |
| 0x0081F610 | 61 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x0081F650 | 34 | STL_vector_36byte_uninitialized_move | Uninitialized move/relocate for vector of 36-byte elements. Uses memcpy to bulk-copy the source range [param_1, param_2) to param_3. |
| 0x0081F680 | 352 | STL_vector_32byte_insert_single | Inserts a single 32-byte element into a vector at position param_2. Allocates a new buffer with 1.5x growth, copies the element, memcpy's surrounding data, and frees the old buffer. |
| 0x0081F800 | 86 | STL_allocator_36byte_construct_default | Default-constructs a 36-byte element (or small allocator state). Sets first byte to 1, zeroes out the remaining 12 bytes (3 ints at offsets 4, 8, 0xC). |
| 0x0081F860 | 67 | STL_list_node_12byte_delete | Deletes a 12-byte list node (prev/next/value) if the pointer at offset +4 is non-null. Used for STL list node cleanup. |
| 0x0081F8B0 | 78 | STL_list_node_12byte_delete_0081f8b0 | Deletes a 12-byte list node if pointer at offset +4 is non-null. Duplicate instance of STL_list_node_12byte_delete. |
| 0x0081F920 | 323 | STL_vector_32byte_copy_assign | Copy-assigns a vector of 32-byte elements. Allocates new buffer, memcpy's source data, swaps with current vector, and frees old buffer. Standard STL vector copy assignment. |
| 0x0081FA70 | 349 | STL_vector_32byte_copy_assign_and_delete | Copy-assigns a vector of 32-byte elements, then optionally deletes a 0x10-byte object if param_2 bit 0 is set. Combines vector copy with owner object cleanup. |
| 0x0081FCF0 | 311 | STL_vector_32byte_shrink_to_fit | Shrinks a vector of 32-byte elements to fit its current size. Creates a copy with exact capacity, swaps with original, frees old buffer. |
| 0x00820E50 | 129 | STL_vector_32byte_clear | Frees aligned vector buffer (32-byte elements) and resets pointers to null |
| 0x00820EE0 | 10 | STL_vector_xlength_error_00820ee0 | Throws std::length_error for vector too long |
| 0x00820EF0 | 92 | STL_vector_32byte_allocate | Allocates aligned memory for vector of 32-byte elements; handles large allocation alignment |
| 0x00820F50 | 58 | STL_vector_32byte_deallocate | Deallocates aligned memory for vector of 32-byte elements |
| 0x00820F90 | 165 | STL_list_push_back_ptr | Pushes a pointer value onto a std::list. Allocates a 12-byte node (prev, next, value), links it before the sentinel, and increments size. Throws list_too_long at max_size 0x15555555. |
| 0x00822780 | 34 | memcpy_range_to_dest_00822780 | Copies memory range [param_1, param_2) to param_3 destination. Returns end of destination pointer. |
| 0x008227B0 | 34 | memcpy_range_to_dest_alt | Copies memory range [param_1, param_2) to param_3 destination. Returns end of destination pointer. Identical to 00822780. |
| 0x008227E0 | 452 | std__vector_ptr__emplace_alt | STL vector emplace/insert for pointer-sized (4-byte) elements. Allocates new buffer with 1.5x growth, copies element, memcpy's segments. Alternative version with different error handler. |
| 0x008229B0 | 452 | std__vector_ptr__emplace_00822980 | STL vector emplace for 4-byte elements. Another variant with different error handler (STL_vector_xlength_error_0082f420). 1.5x growth, max 0x3fffffff. |
| 0x00822B80 | 103 | std__tree__destroy_nodes_recursive_18 | Recursively destroys STL tree nodes of 0x18 bytes. Iterative on left child, recursive on right. Frees each node. |
| 0x008236D0 | 129 | std__vector_ptr__deallocate | Deallocates a vector of pointers. Frees the buffer (handles aligned deallocation for >4096 bytes), zeroes all 3 vector fields. |
| 0x00823760 | 129 | std__vector_ptr__deallocate_alt | Deallocates a vector of pointers. Alternative version identical to std__vector_ptr__deallocate. |
| 0x00823D90 | 83 | operator++ | Red-black tree iterator increment. Advances to the next in-order node. |
| 0x0082F200 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x0082F410 | 10 | STL_vector_xlength_error_0082f410 | Throws std::length_error for vector too long |
| 0x0082F420 | 10 | STL_vector_xlength_error_0082f420 | Throws std::length_error for vector too long |
| 0x0082F430 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x0082F470 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x00831EB0 | 264 | std__vector_byte__insert_with_grow | STL vector insert with capacity growth for byte vectors. Calculates new capacity (1.5x growth, minimum required size), allocates new buffer, copies existing data around the insertion point via memcpy, then swaps buffers. Standard vector::insert implementation for contiguous byte data. |
| 0x00835AC0 | 63 | std__string__find_char | Finds a character in a std::string starting from a given offset. Uses memchr internally. Returns the index of the character if found, -1 otherwise. Equivalent to std::string::find(char, pos). |
| 0x00835D90 | 337 | std__vector_dword__insert_with_grow | STL vector insert with growth for 4-byte elements (DWORD). Standard vector::insert implementation with 1.5x capacity growth. Allocates new buffer, copies elements around insertion point, frees old buffer. Max capacity 0x3FFFFFFF elements. |
| 0x00835F00 | 572 | std__vector_12byte__insert_with_grow | STL vector insert with growth for 12-byte elements. Standard vector::insert with 1.5x growth. Calls FUN_00836c80 for element construction and FUN_008365d0 for range copy. Destroys old elements via stub_005feb20 before freeing old buffer. Max capacity 0x15555555 elements. |
| 0x00836140 | 575 | std__vector_48byte__insert_with_grow | STL vector insert with growth for 48-byte (0x30) elements. Standard vector::insert with 1.5x growth. Calls FUN_00836700 for element construction and FUN_00836680 for range copy. Destroys old elements via STL_string_dtor before freeing. Max capacity 0x5555555 elements. |
| 0x00836380 | 439 | std__vector_8byte__insert_with_grow | STL vector insert with growth for 8-byte elements. Standard vector::insert with 1.5x growth. Copies the 8-byte element (two DWORDs) at insertion point. Handles old buffer freeing with alignment. Max capacity 0x1FFFFFFF elements. |
| 0x00836540 | 131 | std__vector_byte__assign_range | Assigns a range of bytes to a std::vector<byte>. Allocates buffer of exact size needed, then memcpy copies the source range [param_2, param_3) into the new buffer. Used for bulk data copy operations. |
| 0x008365D0 | 169 | std__vector_12byte__relocate_range | Relocates a range of 12-byte elements between vector buffers. Moves elements from [param_1, param_2) to destination starting at param_3. Zeroes source elements after move (move semantics). Used during vector reallocation. |
| 0x00836680 | 123 | std__vector_48byte__move_construct_range | Move-constructs a range of 48-byte (0x30) elements. Iterates from param_1 to param_2 in steps of 0x30, calling FUN_00836ff0 to construct each element at destination param_3. Used during vector reallocation for 48-byte element vectors. |
| 0x00836700 | 119 | std__vector_48byte__copy_construct_element | Copy-constructs a 48-byte element at param_2 from source at param_3. Copies the first 24 bytes via STL_string_copy_construct (std::string), then copies the remaining 24 bytes (offsets 0x18-0x2F) directly. Used for vector element construction. |
| 0x00836C80 | 191 | std__vector_dword__copy_ctor | Copy constructor for std::vector<DWORD>. Allocates buffer sized to source vector's element count, then memcpy copies the data. Sets begin/end/capacity pointers appropriately. |
| 0x008370A0 | 90 | std__vector_48byte__destroy_range | Destroys a range of 48-byte elements in a vector. Iterates from begin to end in steps of 0x30, calling STL_string_dtor on each element's embedded std::string. |
| 0x00837230 | 129 | std__vector_8byte__clear_and_free | Clears and frees a std::vector<uint64/8-byte>. Frees the buffer memory (handling aligned allocations >4KB), then sets begin/end/capacity to NULL. |
| 0x008372C0 | 197 | std__vector_48byte__clear_and_free | Clears and frees a std::vector of 48-byte (0x30) elements. Destroys each element's embedded std::string, then frees the buffer. Sets begin/end/capacity to NULL. |
| 0x0083DC30 | 92 | std__vector_12byte__destroy_range | Destroys a range of 12-byte elements. Iterates from param_1 to param_2 in steps of 0xC, calling stub_005feb20 on each element. |
| 0x0083DC90 | 92 | std__vector_48byte__destroy_range_alt | Destroys a range of 48-byte elements (alternate version). Iterates in steps of 0x30, calling STL_string_dtor on each element's embedded string. |
| 0x0083DD50 | 10 | STL_vector_xlength_error_0083dd50 | Throws std::length_error for vector too long |
| 0x0083DD60 | 10 | STL_vector_xlength_error_0083dd60 | Throws std::length_error for vector too long |
| 0x0083DD70 | 10 | STL_vector_xlength_error_0083dd70 | Throws std::length_error for vector too long |
| 0x0083DD80 | 10 | STL_vector_xlength_error_0083dd80 | Throws std::length_error for vector too long |
| 0x0083DD90 | 92 | STL_vector_4byte_allocate | Allocates aligned memory for vector of 4-byte elements; handles large allocation alignment |
| 0x0083DDF0 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x0083DE30 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x0083DE70 | 61 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x0083DEB0 | 61 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x0083DFD0 | 309 | std__vector_12byte__copy_ctor | Copy constructor for std::vector of 12-byte elements. Allocates buffer, then copy-constructs each element via stub_005fbf00. Handles aligned allocation for large buffers. |
| 0x0083E5C0 | 83 | operator++ | Red-black tree iterator increment. Advances to the next in-order node. |
| 0x0083FC00 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x00844E90 | 121 | linked_list_destroy_all_nodes | Walks linked list from head, destroys each node (size 0x54) and frees memory |
| 0x0084A1B0 | 36 | std__list_find_by_key | Linear search through a linked list from param_2 to param_3, looking for a node where field +8 matches *param_4. Stores the found node (or end sentinel) in *param_1. |
| 0x0084C960 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x0084CB70 | 95 | std__allocate_24byte_array | Allocates count * 24 (0x18) bytes for an array. Uses aligned allocation (32-byte alignment) for buffers >= 4096 bytes. Throws bad_array_new_length if count >= 0xAAAAAAB. |
| 0x0084DC40 | 34 | memcpy_range_forward | Copies memory range [param_1, param_2) to param_3. Returns pointer past end of destination. Used as std::copy/memmove helper. |
| 0x0084DC70 | 34 | memcpy_range_forward_v2 | Copies memory range [param_1, param_2) to param_3. Returns pointer past end of destination. Duplicate of memcpy_range_forward. |
| 0x0084DCA0 | 337 | std__vector_insert_single_4byte | std::vector insert for 4-byte elements. Reallocates with 1.5x growth, copies elements before and after insertion point. Frees old buffer. |
| 0x0084DE10 | 585 | std__vector_insert_52byte | std::vector insert for 0x34-byte (52-byte) elements. Reallocates with 1.5x growth, moves elements, constructs new element at insertion point via std__construct_element_0x34. |
| 0x0084E060 | 577 | std__vector_insert_28byte | std::vector insert for 0x1c-byte (28-byte) elements. Reallocates with 1.5x growth, uses aligned allocation for >4KB buffers. Copies 28-byte structs to new buffer. |
| 0x0084E2B0 | 604 | std__vector_insert_28byte_v2 | std::vector insert for 0x1c-byte (28-byte) elements, variant 2. Similar to std__vector_insert_28byte but calls construct_element and set_title_text helpers for element initialization. |
| 0x0084E510 | 192 | std__uninitialized_move_0x1c | std::uninitialized_move for 0x1c-byte structs. Moves array of 28-byte elements with embedded strings from source to destination range. Clears source string fields after move. |
| 0x0084E5D0 | 123 | std__uninitialized_move_0x34 | std::uninitialized_move for 0x34-byte structs. Iterates source range, calls on_draw_handler (move ctor) for each 52-byte element to construct in destination. |
| 0x0084E650 | 127 | std__construct_element_0x1c | Move-constructs a single 0x1c-byte (28-byte) element. Copies 7 dwords including embedded string with move semantics (clears source string after copy). |
| 0x0084E6D0 | 129 | std__construct_element_0x34 | Copy-constructs a 0x34-byte (52-byte) element. Copies string field via STL_string_copy_construct, then copies remaining 0x1c bytes of non-string data. |
| 0x0084E760 | 181 | std__vector_copy_ctor_4byte | std::vector copy constructor for 4-byte elements. Allocates new buffer, copies all elements via memcpy. |
| 0x0084E820 | 171 | std__move_construct_0x34 | Move-constructs a 0x34-byte (52-byte) element with embedded string. Copies all fields, moves the string (clears source string), copies remaining tail fields. |
| 0x00850B20 | 91 | STL_vector_destroy_string_elements_1C | Destroys elements in a vector with 0x1C (28) byte stride. Iterates from begin to end, calling STL_string_dtor on each element. Used for vectors of structs that contain std::string members at the start of each element. |
| 0x00850B80 | 90 | STL_vector_destroy_string_elements_34 | Destroys elements in a vector with 0x34 (52) byte stride. Iterates from begin to end, calling STL_string_dtor on each element. Used for vectors of larger structs containing std::string members. |
| 0x00850D30 | 207 | STL_vector_destroy_elements_1C | Destroys and deallocates a std::vector of 0x1C (28) byte elements. Iterates elements calling STL_string_dtor on each, then frees the underlying buffer with size validation. Handles aligned allocation (checks for 0xFFF threshold). Resets begin/end/capacity pointers to null. |
| 0x00850E00 | 194 | STL_vector_destroy_elements_34 | Destroys and deallocates a std::vector of 0x34 (52) byte elements. Iterates elements calling STL_string_dtor on each, then frees the underlying buffer with aligned allocation handling (0xFFF threshold check). Resets begin/end/capacity pointers to null. |
| 0x00850ED0 | 159 | STL_vector_dealloc_buffer_1C | Deallocates the raw buffer of a std::vector with 0x1C (28) byte element stride. Does NOT call element destructors -- only frees the memory. Handles aligned allocation (checks 0xFFF threshold, retrieves original pointer from offset -4 if aligned). Resets begin/end/capacity to null. |
| 0x00852020 | 28 | std__string_assign_helper | Helper that assigns a std::string's data to a destination. Checks if the string uses SSO (small string optimization) buffer or heap pointer, then calls STL_lib_func_004fa5c0 with the data pointer and length. |
| 0x0086A720 | 93 | std__destroy_range_0x1c | Destroys a range of 0x1C-byte elements containing std::strings. Iterates from param_1 to param_2, calling STL_string_dtor on each element. |
| 0x0086A780 | 92 | std__destroy_range_0x34 | Destroys a range of 0x34-byte elements containing std::strings. Iterates from param_1 to param_2, calling STL_string_dtor on each element. |
| 0x0086A7E0 | 129 | std__vector_free_aligned | Frees the aligned memory backing a std::vector of 4-byte elements. Handles aligned allocation (32-byte alignment for blocks > 0x1000). Resets all three vector pointers to 0. |
| 0x0086A870 | 64 | std__uninitialized_copy_0x1c | Copies a range of 0x1C-byte elements via memcpy. Returns pointer past the last copied element in the destination. |
| 0x0086A8B0 | 10 | thunk_to_std__Xlength_error_0086a8b0 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x0086A8C0 | 10 | thunk_to_std__Xlength_error_0086a8c0 | Thunk that calls std::_Xlength_error for vector allocation failure |
| 0x0086A8D0 | 10 | thunk_to_std__Xlength_error_0086a8d0 | Wrapper that calls std::_Xlength_error for vector allocation failure |
| 0x0086A8E0 | 10 | thunk_to_std__Xlength_error_0086a8e0 | Wrapper that calls std::_Xlength_error with vector_too_long message |
| 0x0086A8F0 | 92 | std__vector_alloc_4byte_aligned | Allocates memory for a std::vector of 4-byte elements. Multiplies count by 4, uses aligned allocation for blocks > 0x1000. Throws bad_array_new_length if count >= 0x40000000. |
| 0x0086A950 | 95 | std__allocate_array_12byte_elements | STL array allocator for elements of size 12 (0xC) bytes. Checks for overflow, uses aligned allocation for sizes >= 0x1000, otherwise direct heap alloc. Throws bad_array_new_length on overflow. |
| 0x0086A9B0 | 95 | std__allocate_array_20byte_elements | STL array allocator for elements of size 20 (0x14) bytes. Checks for overflow, uses aligned allocation for sizes >= 0x1000, otherwise direct heap alloc. Throws bad_array_new_length on overflow. |
| 0x0086AA10 | 241 | std__string_assign_fill | STL string::assign(count, char). Assigns param_2 copies of param_3 character. Handles SSO (small string optimization) - if capacity > 15, string is heap-allocated. Grows capacity using 1.5x strategy. Frees old buffer if heap-allocated. |
| 0x0086AB10 | 133 | std__vector_clear_string_elements | STL vector::clear() for a vector of elements containing strings (element size 0x1C = 28 bytes). Iterates through elements calling string destructor on each, then resets size to begin. Uses SEH for exception safety. |
| 0x0086ABA0 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x0086ABE0 | 67 | std__free_aligned_array_28byte | Frees an aligned heap allocation that held an array of 28-byte (0x1C) elements. Retrieves original allocation pointer from 4 bytes before aligned address for large allocations (>= 0x1000). |
| 0x0086AC30 | 56 | std__free_aligned_array_52byte | Frees an aligned heap allocation that held an array of 52-byte (0x34) elements. Retrieves original allocation pointer from 4 bytes before aligned address for large allocations (>= 0x1000). |
| 0x0086AC70 | 67 | std__free_aligned_array_28byte_v2 | Frees an aligned heap allocation for array of 28-byte elements. Second instance - same logic as std__free_aligned_array_28byte but separate code generation. |
| 0x0086ACC0 | 95 | std__list_erase_node | STL list::erase(iterator). Removes a node from a doubly-linked list by relinking prev/next pointers, decrements list size, frees the 12-byte node, and returns iterator to next element. Uses SEH. |
| 0x0086AD30 | 167 | std__vector_erase_string_element | STL vector::erase for elements of size 0x18 (24 bytes) that contain strings. Shifts subsequent elements forward by move-assigning them (copies 24 bytes + transfers string ownership), destroys last element, decrements end pointer. Uses SEH. |
| 0x0086ADE0 | 383 | std__vector_bool_erase | STL vector<bool>::erase(iterator). Erases a single bit from the bit-packed vector by shifting all subsequent bits down by one position. Updates capacity tracking, masks unused high bits, and returns iterator to erased position. |
| 0x0086B030 | 34 | std__copy_range_memcpy | Copies a memory range [param_1, param_2) to destination param_3 using memcpy. Returns pointer to end of destination (param_3 + copied size). Used by STL algorithms for trivially copyable types. |
| 0x0086B060 | 34 | std__copy_range_memcpy_v2 | Copies a memory range [param_1, param_2) to destination param_3 using memcpy. Returns end-of-destination pointer. Duplicate template instantiation of std__copy_range_memcpy. |
| 0x0086B090 | 34 | std__copy_range_memcpy_v3 | Copies a memory range [param_1, param_2) to destination param_3 using memcpy. Returns end-of-destination pointer. Third template instantiation of range copy. |
| 0x0086B0C0 | 166 | std__list_insert_node | STL list::insert - allocates a 12-byte node (next, prev, value), links it before param_2 position. Increments list size at this+4. Throws length_error if at max capacity (0x15555555). |
| 0x0086B170 | 276 | std__vector_int_insert_realloc | STL vector<int>::insert with reallocation. Grows capacity by 1.5x, allocates new buffer, copies value at insertion point, memcpy's elements before/after. Frees old buffer via FID_conflict__Change_array. Throws length_error at 0x3FFFFFFF elements. |
| 0x0086B2B0 | 577 | std__vector_insert_realloc_28byte | STL vector::insert with reallocation for 28-byte (0x1C) elements containing strings. Allocates new aligned buffer (1.5x growth), copies 28-byte element at insert position, relocates existing elements, frees old buffer. Max 0x9249249 elements. |
| 0x0086B500 | 276 | std__vector_int_insert_realloc_v2 | STL vector<int>::insert with reallocation (variant 2). Same 1.5x growth, memcpy-based relocation, throws length_error at 0x3FFFFFFF. Uses different allocator than v1. |
| 0x0086B640 | 337 | std__vector_int_insert_realloc_v3 | STL vector<int>::insert with reallocation (variant 3). Uses aligned allocation, frees old buffer with alignment-aware deallocator. 1.5x growth strategy, max 0x3FFFFFFF elements. |
| 0x0086B7B0 | 276 | std__vector_int_insert_realloc_v4 | STL vector<int>::insert with reallocation (variant 4). Same pattern as other vector insert variants - 1.5x growth, memcpy relocation, FID_conflict__Change_array for cleanup. |
| 0x0086B8F0 | 554 | std__vector_insert_realloc_12byte | STL vector::insert with reallocation for 12-byte (0xC) elements. Allocates aligned buffer with 1.5x growth, uses move-construct and relocate helpers for elements. Destroys old elements and frees old buffer. Max 0x15555555 elements. |
| 0x0086BB20 | 141 | std__map_recursive_node_destroy | Recursively destroys red-black tree nodes (std::map/set). Each node is 0x30 bytes with a string member. Traverses left children iteratively (checking color byte at offset 0xD), recursing on right children, destroying strings and freeing nodes. |
| 0x0086BBB0 | 75 | STL_map_lower_bound_int_0086bbb0 | STL red-black tree lower_bound search by integer key, returns iterator |
| 0x0086BC00 | 75 | STL_map_lower_bound_int_0086bc00 | STL red-black tree lower_bound search by integer key, returns iterator |
| 0x0086BC50 | 91 | linked_list_delete_all_0x1d0 | Walks linked list freeing each 0x1D0 byte node, resets count to 0 |
| 0x0086BCB0 | 88 | STL_vector_move_string_elements | Moves STL string elements (24 bytes each) between ranges, leaves source empty |
| 0x0086BD10 | 162 | STL_vector_relocate_12byte_elements | Relocates 12-byte elements from source to dest range, zeroes source |
| 0x0086BDC0 | 51 | STL_vector_move_construct_12byte | Move-constructs single 12-byte element, zeroes source triplet |
| 0x0086BE00 | 242 | STL_map_emplace_int_key_0086be00 | Emplaces new 0x30 byte node into red-black tree map with integer key, returns pair |
| 0x0086C060 | 181 | STL_vector_copy_construct_int | Copy-constructs int vector: allocates buffer, memcpy elements from source |
| 0x0086F340 | 65 | STL_string_dtor_wrapper_0086f340 | SEH wrapper around STL string destructor |
| 0x0086F390 | 67 | free_0xc_node | Frees 0xC byte node at offset 4 if non-null |
| 0x0086F3E0 | 70 | free_0x1d0_node | Frees 0x1D0 byte node at offset 4 if non-null |
| 0x0086F430 | 67 | free_0x14_node | Frees 0x14 byte node at offset 4 if non-null |
| 0x0086F480 | 67 | free_0x30_node_0086f480 | Frees 0x30 byte node at offset 4 if non-null |
| 0x0086F4D0 | 67 | free_0x30_node_0086f4d0 | Frees 0x30 byte node at offset 4 if non-null |
| 0x0086F550 | 78 | free_0xc_node_0086f550 | Frees 0xC byte node at offset 4 if non-null |
| 0x0086F5A0 | 81 | free_0x1d0_node_0086f5a0 | Frees 0x1D0 byte node at offset 4 if non-null |
| 0x0086F7F0 | 78 | free_0x30_node_0086f7f0 | Frees 0x30 byte node at offset 4 if non-null |
| 0x0086F840 | 78 | free_0x30_node_0086f840 | Frees 0x30 byte node at offset 4 if non-null |
| 0x0086F920 | 103 | linked_list_destroy_0xc_nodes | Walks linked list freeing all 0xC byte nodes including sentinel |
| 0x0086F990 | 109 | linked_list_destroy_0x1d0_nodes | Walks linked list freeing all 0x1D0 byte nodes including sentinel |
| 0x0086FA10 | 121 | linked_list_cleanup_and_destroy_0x14 | Walks linked list, runs cleanup on each 0x14 byte node then frees all including sentinel |
| 0x0086FAF0 | 83 | STL_string_dtor_wrapper_0086faf0 | SEH wrapper around STL string destructor at offset 4 |
| 0x0086FB50 | 80 | STL_string_dtor_wrapper_0086fb50 | SEH wrapper around STL string destructor at offset 4 |
| 0x0086FBA0 | 65 | STL_string_dtor_wrapper_0086fba0 | SEH wrapper around STL string destructor |
| 0x0086FBF0 | 129 | STL_vector_int_destroy | Destroys int vector: frees buffer with large-block alignment check, zeroes triplet |
| 0x0086FC90 | 5 | STL_vector_int_destroy_0086fc90 | Inline copy of STL_vector_int_destroy: frees int vector buffer with large-block alignment check, zeroes triplet. Not a thunk (full code, different SEH label). |
| 0x0086FCA0 | 220 | STL_vector_0x3c_elem_destroy | Destroys vector of 0x3C byte elements, calls 2 string dtors per element then frees buffer |
| 0x0086FD80 | 159 | STL_vector_0x1c_elem_destroy | Destroys vector of 0x1C byte elements, frees buffer with alignment check |
| 0x0086FE30 | 174 | STL_vector_destroy_CUIChatLog_entries | Destroys vector of 0xC-byte CUIChatLog entry elements by calling CUIChatLog__destroy_single_entry on each, then frees the backing buffer |
| 0x00872120 | 266 | std__map_int_string__insert_or_find | std::map<int, string>::operator[] - finds or inserts entry. Uses lower_bound to find position. If key not found, allocates 0x30-byte node with key at +0x10, initializes empty SSO string value, inserts via Insert_node. Returns pointer to value at node+0x14. |
| 0x00872230 | 269 | std__map_int_string__insert_or_find_v2 | std::map<int, string>::operator[] variant 2. Same as insert_or_find but with slightly different node layout (string at different offset). Allocates 0x30-byte node, inserts if key not present, returns value pointer. |
| 0x00872340 | 18 | std__function__call_target | std::function call operator. Checks if target at this+0x24 is non-null; if so, calls the stored callable via vtable+8. Throws std::bad_function_call if target is null. |
| 0x0089EB80 | 90 | STL_vector__Change_array_0089eb80 | Reallocates a vector internal array to accommodate more elements. Copies existing data and frees old buffer. |
| 0x0089EBE0 | 162 | std__vector_reserve_4byte_elements | Reserves capacity for a vector of 4-byte elements. Frees existing buffer (with aligned deallocation for large sizes), then allocates new buffer with requested capacity. Updates vector begin/end/capacity pointers. |
| 0x0089EC90 | 36 | std__vector_destroy_range_0xc | STL template instantiation: std vector destroy range 0xc |
| 0x0089ECC0 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x0089EED0 | 517 | Insert_node | Red-black tree node insertion with rebalancing. Standard STL _Tree_insert implementation. |
| 0x0089F0E0 | 341 | std__any_swap | Swaps two std::any objects. Handles the three cases: both have values (direct pointer swap), one or both have small-buffer-optimized values (uses vtable clone+destroy), or one is empty. Field [9] holds the contained value pointer. |
| 0x0089F240 | 129 | std__vector_clear_and_free_4byte | Clears and frees a vector of 4-byte elements. Handles aligned deallocation for large buffers (>= 0x1000 bytes). Sets all three vector pointers (begin, end, capacity) to null. |
| 0x0089F2D0 | 129 | std__vector_clear_and_free_4byte_b | Clears and frees a vector of 4-byte elements. Identical to std__vector_clear_and_free_4byte, duplicate from template instantiation. |
| 0x0089F360 | 64 | std__vector_copy_0x1c_elements | Copies elements of size 0x1c (28 bytes) from source range [param_1, param_2) to destination param_3 using memcpy. Returns pointer past the last written element. STL vector uninitialized copy helper. |
| 0x0089F3A0 | 10 | thunk_to_std__Xlength_error_0089f3a0 | Wrapper that calls std::_Xlength_error for vector allocation failure |
| 0x0089F3B0 | 10 | thunk_to_std__Xlength_error_0089f3b0 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x0089F3C0 | 10 | thunk_to_std__Xlength_error_0089f3c0 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x0089F3D0 | 10 | thunk_to_std__Xlength_error_0089f3d0 | Wrapper that calls std::_Xlength_error with vector_too_long message |
| 0x0089F3E0 | 92 | std__vector_allocate_4byte_elements | Allocates memory for a vector of 4-byte elements. Validates count < 0x40000000, computes byte size (count*4). Uses aligned allocation for sizes >= 0x1000. Throws bad_array_new_length on overflow. |
| 0x0089F440 | 92 | std__vector_allocate_4byte_elements_b | Identical to std__vector_allocate_4byte_elements. Allocates memory for vector of 4-byte elements with aligned alloc for large sizes. Duplicate likely from template instantiation. |
| 0x0089F4A0 | 95 | std__vector_allocate_20byte_elements | Allocates memory for a vector of 0x14 (20) byte elements. Validates count < 0xccccccd, computes byte size. Uses aligned allocation for large sizes. |
| 0x0089F500 | 95 | std__vector_allocate_48byte_elements | Allocates memory for a vector of 0x30 (48) byte elements. Validates count < 0x5555556, computes byte size. Uses aligned allocation for large sizes. |
| 0x0089F560 | 95 | std__vector_allocate_48byte_elements_b | Duplicate of std__vector_allocate_48byte_elements. Allocates memory for vector of 0x30 byte elements. |
| 0x008A0A00 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x008A0A40 | 62 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x008A0A80 | 67 | std__vector_deallocate_0x1c_elements | Deallocates memory for a vector of 0x1c (28) byte elements. Handles aligned deallocation for sizes >= 0x1000. Validates allocation alignment. |
| 0x008A0AD0 | 61 | deallocate | STL allocator deallocate. Handles aligned (>0xFFF) and normal deallocation paths. |
| 0x008A1360 | 98 | std__list_erase_node_0x1d0 | Erases a node from a doubly-linked list. Unlinks param_3 by connecting its prev and next nodes. Decrements list count (field 4). Frees the node memory (0x1d0 bytes). Sets param_2 output to the next node. |
| 0x008A13D0 | 67 | std__map_find_lower_bound | Finds lower bound in an ordered map/tree. Uses CReportManager__map_lower_bound to find position, then checks if the result is valid and key matches. Sets param_2 to found node or to end sentinel (param_1[0]). |
| 0x008A1420 | 192 | STL_string_find_first_not_of_charset | Finds the first character in an STL string NOT in the given charset, starting from offset param_3. Builds a 256-byte lookup table from the null-terminated charset (param_2), then scans the string. Returns the index of the first non-matching char, or -1 if all chars match. |
| 0x008A14E0 | 192 | STL_string_find_first_of_charset | Finds the first character in an STL string that IS in the given charset, starting from offset param_3. Builds a 256-byte lookup table from the null-terminated charset (param_2), then scans the string. Returns the index of the first matching char, or -1 if none found. |
| 0x008A1850 | 36 | std__max_pair_compare | Compares two pairs by second element first (high word), then first element (low word). Returns the greater pair. Used for version/priority comparison. If param_1[1] <= param_2[1] and param_1[0] < param_2[0], returns param_2. |
| 0x008A2290 | 181 | std__list_push_back_0x1c8_element | Pushes a new element (0x1c8 bytes of data + 8 bytes for list pointers = 0x1d0) to the back of a doubly-linked list. Allocates 0x1d0 bytes, copies 0x72 dwords (0x1c8 bytes) of data from param_2. Increments list count. Throws std::_Xlength_error if count reaches 0x8d3dcb (max elements for this list). |
| 0x008A2350 | 297 | STL_bitvector_fill_range | Fills a range of bits in an STL bitvector with a boolean value. Inserts 1 bit at position param_1[3], then fills from the inserted position for 1 bit with the value from param_2. Handles cross-word boundaries with proper masking. |
| 0x008A28B0 | 208 | STL_string_rtrim_chars | Right-trims characters from an STL string. Builds a 256-byte lookup table from param_2 charset, then scans backwards from end of string removing matching chars via STL_string_erase. |
| 0x008A3350 | 47 | std__string_compare_equal | Compares two STL strings for equality. Extracts raw pointers from both strings (handling SSO) and calls std::_Traits_equal. |
| 0x008A3490 | 31 | std__fill_range_4byte_b | STL template instantiation: std fill range 4byte b |
| 0x008A4740 | 67 | STL_rbtree_node__delete_single | Deletes a single 0x2c-byte red-black tree node. Checks if the node pointer at offset +4 is non-null, frees it if so. |
| 0x008A47F0 | 125 | STL_vector_int__clear_and_free | Clears and frees a vector of int-sized elements. Computes allocation size from (end - begin) & 0xFFFFFFFC, frees the backing buffer, then zeroes begin/end/capacity pointers. |
| 0x008A4880 | 76 | STL_rbtree__destroy_nodes_and_sentinel | Destroys all nodes in a red-black tree then frees the 0x2c-byte sentinel node. Calls CUIControl__destroy_tree_nodes_recursive on the root's left child, then operator_delete on the sentinel. |
| 0x008A48E0 | 113 | STL_rbtree_node__destroy_string_and_free | Destroys a single red-black tree node containing a string. If the node at offset +4 is non-null, destroys the embedded STL string then frees the 0x2c-byte node. |
| 0x008A4960 | 78 | STL_rbtree_node__free_if_exists | Frees a 0x2c-byte red-black tree node if the pointer at offset +4 is non-null. |
| 0x008A49B0 | 172 | STL_linked_list__destroy_all_nodes | Destroys all nodes in a singly-linked list of 0x34-byte nodes. Zeroes the last-node back-pointer, walks the list from head, calling UIWindow__serialize_state and STL_string_dtor on each node, then frees each node. Finally frees the list header node. |
| 0x008A4A60 | 87 | STL_rbtree__destroy_and_free_sentinel | Destroys all nodes in a red-black tree and frees the 0x2c-byte sentinel. Same as STL_rbtree__destroy_nodes_and_sentinel but with different SEH cookie setup. |
| 0x008A4AC0 | 65 | STL_string_dtor_wrapper_008a4ac0 | Thin wrapper around STL_string_dtor. Destroys a single STL string member. |
| 0x008A4B10 | 80 | STL_string_pair_dtor | Destroys a pair of STL strings. Calls STL_string_dtor on both the string at param_1 and the string at param_1+8. |
| 0x008A5C60 | 83 | operator++ | Red-black tree iterator increment. Advances to the next in-order node. |
| 0x008C3CD0 | 320 | STL_vector__resize_and_fill | STL vector resize and fill. Resizes a vector of 4-byte elements to the given count, filling all entries with the provided value. If growing, allocates new memory (aligned for >0x1000 bytes) and frees old. If same size, fills in-place using optimized 4-element unrolled loop. |
| 0x008C41A0 | 116 | STL_set_uint_next_and_construct | STL std::set<uint> helper: increments a tree const_iterator and constructs a new element via UIWindow__apply_settings (now STL_tree_extract_and_rebalance). Destroys temporary string and frees 0x2c-byte allocation. |
| 0x008C4220 | 704 | STL_tree_extract_and_rebalance | STL red-black tree extract/erase node with rebalancing. Removes a node from std::_Tree, fixes parent/child links, rebalances via left/right rotations and recoloring. Decrements tree size. MSVC std::_Tree_val::_Extract. |
| 0x008C4560 | 517 | STL_tree_insert_node_008c4560 | STL red-black tree insert node. MSVC std::_Tree_val::_Insert_node. Links new node to parent, sets as leftmost/rightmost if needed, then rebalances with rotations and recoloring. Increments tree size. Library function matching multiple _Tree_val specializations (uint, string, PCTableEntry). |
| 0x008C4770 | 84 | STL_tree_right_rotate | STL red-black tree right rotation. Rotates param_2 right around its left child. Updates parent pointers and root if needed. MSVC _Lrotate counterpart. |
| 0x008C4850 | 88 | STL_tree_left_rotate | STL red-black tree left rotation. Rotates param_2 left around its right child. Updates parent pointers and root if needed. |
| 0x008C4930 | 345 | STL_vector_of_vectors_of_strings_dtor | Destroys a vector<vector<string_struct>>. Iterates outer vector, for each inner vector destroys all string elements via STL_string_dtor, frees the inner buffer, then frees the outer buffer. Sets all pointers to null. |
| 0x008C4A90 | 106 | STL_tree_lower_bound_by_string | STL tree lower_bound by string comparison. Walks the red-black tree comparing string keys via std::_Traits_compare. Returns iterator to first element not less than the search key, or end() sentinel. |
| 0x008C4B00 | 133 | STL_string_is_all_digits | Checks if an STL string contains only ASCII digit characters ('0'-'9'). Returns 1 if all digits (or empty), 0 if any non-digit found. Destroys the string on exit. |
| 0x008C4B90 | 21 | STL_format_spec_wrapper | Thin wrapper that forwards 3 parameters to fmt__parse_and_validate_format_spec. 21 bytes. |
| 0x008C4BB0 | 171 | STL_construct_struct_with_move_string | Constructs a struct (0x2c bytes, 11 dwords) by copying fields from source, with move semantics on an embedded std::string at offset 0x08-0x1C. Zeros the source string after move. Initializes trailing vector fields (offset 0x20-0x28) to zero. |
| 0x008C4C60 | 141 | STL_construct_struct_with_cstring_copy | Constructs a struct by copying two dword fields from source then computing strlen of a C string at source[2] and assigning it into an embedded std::string via STL_string_assign_buffer. |
| 0x008C4CF0 | 202 | STL_fnv1a_hash_combine | FNV-1a hash combiner for a struct with a string + two 4-byte fields. Hashes the string content with FNV-1a (seed 0x811C9DC5, prime 0x01000193), then combines with hashes of two 4-byte prefix fields using boost::hash_combine-style mixing (golden ratio 0x9E3779B9). |
| 0x008C4DC0 | 440 | STL_vector_1c_byte_assign_range | STL vector<struct_1c>::assign from iterator range. If new range is smaller, overwrites existing elements and destroys excess via STL_string_dtor. If larger, may reallocate with 1.5x growth, then copy-constructs new elements. Element size is 0x1C bytes containing an embedded string. |
| 0x008C4F80 | 509 | STL_vector_0c_byte_assign_range | STL vector<struct_0c>::assign from iterator range. If new range fits, overwrites and destroys excess sub-vectors. If larger, may reallocate with 1.5x growth. Element size is 0x0C bytes (likely vector<T> = {begin, end, capacity}). |
| 0x008C5180 | 34 | STL_uninitialized_copy_pod_a | STL uninitialized_copy for POD types. memcpy from [param_1, param_2) to param_3, returns pointer past last copied byte. |
| 0x008C51B0 | 34 | STL_uninitialized_copy_pod_b | STL uninitialized_copy for POD types. memcpy from [param_1, param_2) to param_3, returns pointer past last copied byte. Duplicate of STL_uninitialized_copy_pod_a at different address. |
| 0x008C51E0 | 34 | STL_uninitialized_copy_pod_c | STL uninitialized_copy for POD types. memcpy from [param_1, param_2) to param_3, returns pointer past last copied byte. Duplicate of STL_uninitialized_copy_pod_a at different address. |
| 0x008C5210 | 83 | STL_copy_structs_with_string_field | Copies an array of 0x1C-byte structs containing an embedded std::string (at dword offset +1). For each struct, copies the first dword field, then assigns the string via STL_string_assign_buffer. Returns destination pointer past last element. |
| 0x008C5270 | 62 | STL_vector_of_vectors_assign_ranges | Assigns ranges of 0x0C-byte sub-vectors. Iterates source range, for each element that differs from destination, calls STL_vector_1c_byte_assign_range to copy the inner vector contents. |
| 0x008C52B0 | 366 | STL_map_int_try_emplace | STL std::map<int, vector<T>>::_Try_emplace. Searches tree by int key via lower_bound comparison. If key found, returns existing iterator. Otherwise allocates a 0x1C-byte tree node, initializes key and empty vector, inserts via STL_tree_insert_node. Returns pair<iterator, bool>. |
| 0x008C5420 | 343 | STL_vector_1c_byte_emplace_copy | STL vector<struct_1c>::emplace with copy construction. Reallocates with 1.5x growth, copy-constructs the new element at the insertion point, then moves existing elements around it. Element size 0x1C bytes. |
| 0x008C55B0 | 346 | STL_vector_1c_byte_emplace_cstring | STL vector<struct_1c>::emplace with C-string construction. Reallocates with 1.5x growth, constructs new element from C-string args at insertion point, moves existing elements. Element size 0x1C bytes. |
| 0x008C5740 | 539 | STL_vector_30_byte_emplace_reallocate | STL vector<struct_0x30>::emplace_reallocate. Allocates new buffer with 1.5x growth (element size 0x30 = 48 bytes), copies 48-byte element at insertion point, then memcpy moves existing elements around it. Frees old buffer. |
| 0x008C5970 | 511 | STL_vector_0c_byte_emplace_reallocate | STL vector<struct_0x0c>::emplace_reallocate. Allocates new buffer with 1.5x growth (element size 0x0C = 12 bytes, likely a POD struct or small triple), copies 12-byte element at insertion point, then memcpy moves existing elements. Frees old buffer. |
| 0x008C5B80 | 452 | STL_vector_int_emplace_reallocate | STL vector<int>::emplace_reallocate (or vector<T*>). Allocates new buffer with 1.5x growth (4 bytes per element), copies single dword at insertion point, memcpy moves existing elements. Frees old buffer. |
| 0x008C5D50 | 343 | STL_vector_1c_byte_emplace_move | STL vector<struct_1c>::emplace with move construction. Reallocates with 1.5x growth, move-constructs the new element at the insertion point via std__move_single_struct_with_string, then moves existing elements around it. Element size 0x1C bytes. |
| 0x008C5EE0 | 103 | STL_tree_destroy_nodes_recursive | STL red-black tree recursive node destruction (post-order traversal). Recursively destroys right subtree first, then walks left children iteratively, freeing each 0x18-byte node via operator_delete. Stops at nil/sentinel node (is_nil flag at offset +0xD). |
| 0x008C5F50 | 131 | std__tree_recursive_destroy_nodes | Recursively destroys nodes of a tree/map container. Iterates through linked nodes, freeing each 0x1c-byte node via operator delete after processing children. |
| 0x008C5FE0 | 158 | std__unordered_map_find_by_string_key | Searches an unordered_map for an element matching a string key. Computes hash bucket, then iterates the bucket chain comparing strings using std::char_traits. Returns iterator with found node or end sentinel. |
| 0x008C6080 | 75 | std__tree_lower_bound_by_int | Performs lower_bound search in a binary tree (std::map) by integer key. Traverses left/right based on comparison, returns iterator pointing to first element not less than the search key. |
| 0x008C61D0 | 218 | std__vector_reallocate_and_fill | Reallocates a std::vector buffer with 1.5x growth factor. Allocates new buffer, memset-fills new space with zeros, copies old data, then swaps to the new buffer. Caps at 0x7FFFFFFF. |
| 0x008C62D0 | 496 | std__unordered_map_emplace_element | Emplaces a new element into an unordered_map. Allocates a 0x34-byte node, handles rehashing when load factor exceeds threshold (ceil-based bucket count growth), and links the node into the appropriate hash bucket chain. |
| 0x008C64D0 | 137 | std__copy_struct_with_string_array | Copies an array of 0x1c-byte structs (each containing a field + an std::string). Iterates from param_1 to param_2, copy-constructing each string field into the destination at param_3. |
| 0x008C6560 | 192 | std__move_struct_with_string_array | Move-constructs an array of 0x1c-byte structs with embedded std::string. Transfers string data via move semantics (copies internal buffer, then clears source to empty SSO state). |
| 0x008C6620 | 82 | std__copy_single_struct_with_string | Copy-constructs a single 0x1c-byte struct with an embedded std::string from param_3 into param_2. Copies the leading field and deep-copies the string. |
| 0x008C6680 | 74 | std__construct_struct_with_cstring | Constructs a struct with an embedded std::string from a C-string. Copies an integer field from param_3, then initializes the string by computing strlen of param_4 and assigning it. |
| 0x008C66D0 | 127 | std__move_single_struct_with_string | Move-constructs a single 0x1c-byte struct with embedded std::string. Copies fields then moves the string (transfers buffer, clears source to empty SSO state with capacity 0xF). |
| 0x008C6750 | 119 | std__vector_emplace_back_struct_cstr | Emplace-back on a vector of 0x1c-byte structs from a C-string. If capacity available, constructs in-place (copies int field, assigns string via strlen). Otherwise calls reallocation helper. |
| 0x008C67D0 | 97 | fill<> | STL fill algorithm. Sets all elements in a range to a specified value. |
| 0x008C6950 | 393 | std__list_copy_construct_with_strings | Copy-constructs a std::list of nodes with string data. Allocates 0x20-byte nodes, copy-constructs the string in each, and links them into a circular doubly-linked list with a sentinel node. |
| 0x008C6AE0 | 45 | std__max_longlong_signed | Returns the maximum of two signed 64-bit integers (longlong). Compares high and low parts to determine the larger value. |
| 0x008C6C40 | 158 | std__vector_construct_fill_byte | Constructs a std::vector<byte> filled with a single byte value. Allocates buffer of param_2 size, memsets with *param_3, and sets the size pointer. Throws on size > 0x7FFFFFFF. |
| 0x008C6CE0 | 188 | std__vector_copy_construct_structs | Copy-constructs a vector of 0x1c-byte structs with embedded strings. Allocates space for (end-begin)/0x1c elements, then calls std__copy_struct_with_string_array to deep-copy them. |
| 0x008C6DA0 | 117 | std__init_two_empty_strings | Initializes a struct containing two std::string members to empty state (SSO buffer with length=0, capacity=0xF). Used as a default constructor for a pair-of-strings struct. |
| 0x008CA0F0 | 129 | STL_vector_free_4byte_8ca0f0 | Frees std::vector backing storage (4-byte aligned elements), zeros begin/end/capacity |
| 0x008CA180 | 151 | STL_vector_free_0x30_8ca180 | Frees std::vector backing storage (0x30-byte elements), zeros begin/end/capacity |
| 0x008CA230 | 150 | STL_vector_free_0xc_8ca230 | Frees std::vector backing storage (0xC-byte elements), zeros begin/end/capacity |
| 0x008CBF40 | 221 | std__unordered_map_clear_all | Clears all entries from an unordered_map. Iterates the linked list, destroying each 0x34-byte node's key string data, frees nodes, resets sentinel pointers, count to 0, and refills bucket array. |
| 0x008CC020 | 87 | std__destroy_two_strings | Destroys two consecutive std::string members in a struct. Calls STL_string_dtor twice. |
| 0x008CC080 | 83 | operator++ | Red-black tree iterator increment. Advances to the next in-order node. |
| 0x00909D20 | 204 | std__string_truncate_at_substr | Truncates an std::string at the first occurrence of a given substring. Uses std::_Traits_find to locate param_2 within param_1, then replaces param_1's content with the substring from index 0 to the found position via STL_lib_func_00505300 (substr). No-op if substring is not found. |
| 0x0090B450 | 136 | std__vector_12byte_allocate | Allocates memory for a vector of 12-byte elements. param_2 is the number of elements. Checks for overflow (max 0x15555555 elements). For small allocations (<0x1000 bytes), uses simple allocation. For larger ones, allocates with 0x23 byte overhead for alignment (32-byte aligned). Sets begin, end, and capacity pointers on the vector. |
| 0x0090B4E0 | 230 | std__vector_1c_byte_assign_buffer | Assigns a new buffer to a vector of 0x1C-byte elements. First destroys existing elements (calling STL_string_dtor on each), frees old buffer, then sets new begin/end/capacity from provided buffer, size, and capacity parameters. |
| 0x0090B5D0 | 93 | std__vector_1c_byte_destroy_range | Destroys elements in a range of 0x1C-byte elements by calling STL_string_dtor on each. Iterates from param_1 to param_2 in 0x1C-byte increments. |
| 0x0090B630 | 724 | std__unordered_map_rehash_text_layout | Rehashes an unordered_map to the specified bucket count. Rounds up to next power of 2, allocates new bucket array, relinks all nodes into new buckets using hash function FUN_008c4cf0. Handles duplicate key detection with string comparison (std::_Traits_equal) for collision resolution. Frees old bucket array after rehash. |
| 0x0090B910 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a new node into a red-black tree, links it as left or right child, updates min/max pointers, then rebalances with rotations and recoloring. |
| 0x0090BB20 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a new node into a red-black tree, links it as left or right child, updates min/max pointers, then rebalances with rotations and recoloring. |
| 0x0090BD30 | 207 | std__vector_1c_byte_clear_and_free | Clears and frees a vector of 0x1C-byte elements. Destroys each element via STL_string_dtor, frees the buffer (with alignment support for large allocations), and zeros the begin/end/capacity pointers. |
| 0x0090BE00 | 58 | memcpy_elements_0x30 | Copies a range of 0x30-byte elements from param_1 to param_3 via memcpy. Returns pointer past the last copied element, computed as count * 0x30 + dest. |
| 0x0090BE40 | 55 | memcpy_elements_0x0c | Copies a range of 0xC-byte elements from param_1 to param_3 via memcpy. Returns pointer past the last copied element, computed as count * 0xC + dest. |
| 0x0090BE80 | 10 | thunk_to_std__Xlength_error_0090be80 | Throws vector_too_long exception; never returns |
| 0x0090BE90 | 10 | thunk_to_std__Xlength_error_0090be90 | Throws std::length_error for vector allocation failure |
| 0x0090BEA0 | 10 | thunk_to_std__Xlength_error_0090bea0 | Calls std::_Xlength_error with vector_too_long error message |
| 0x0090BEB0 | 10 | thunk_to_std__Xlength_error_0090beb0 | Thunk that calls std::_Xlength_error with vector_too_long error |
| 0x0090BEC0 | 10 | thunk_to_std__Xlength_error_0090bec0 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x0090BED0 | 102 | std__vector_1c_byte_allocate | Allocates memory for a count of 0x1C-byte elements. Returns the allocated buffer pointer. Handles alignment for large allocations (>= 0x1000 bytes) with 32-byte alignment. Max element count: 0x924924A. |
| 0x0090BFF0 | 46 | std__vector_0x18_clear_elements | Clears all elements from a vector of 0x18-byte elements by calling STL_string_dtor on each, then resets the end pointer to begin. Does not free the buffer. |
| 0x0090C1F0 | 62 | deallocate | STL allocator::deallocate for 4-byte elements. Computes total size, retrieves original allocation pointer for large blocks, then calls operator delete. |
| 0x0090C230 | 61 | deallocate | STL allocator::deallocate for 0x30-byte elements. Computes total size, retrieves original allocation pointer for large blocks, then calls operator delete. |
| 0x0090C270 | 67 | std__vector_1c_byte_free_buffer | Frees the buffer of a vector of 0x1C-byte elements. Computes total byte size and handles aligned deallocation for large buffers (>= 0x1000 bytes). |
| 0x0090C2C0 | 61 | deallocate | STL allocator::deallocate for 0xC-byte elements. Computes total size, retrieves original allocation pointer for large blocks, then calls operator delete. |
| 0x0090C300 | 67 | std__tree_find_by_int_key | Finds a node in a BST by integer key. Uses std__tree_lower_bound_by_int to locate the position, then checks if the node exists and its key matches. Returns the found node or the end sentinel. |
| 0x0090C3E0 | 170 | std__list_push_back_string | Pushes a string onto the back of an std::list. Allocates a 0x20-byte node, copy-constructs the string into it, and links it before the sentinel node. Increments list size. Throws std::length_error if max size (0x7FFFFFF) is reached. |
| 0x0090C490 | 39 | std__vector_4byte_push_back_v1 | Pushes a 4-byte value onto the back of a vector. If capacity is available, writes directly and increments end pointer. Otherwise calls STL_vector_4byte_insert_realloc to grow the vector. |
| 0x0090C4C0 | 39 | std__vector_4byte_push_back_v2 | Pushes a 4-byte value onto the back of a vector. If capacity is available, writes directly and increments end pointer. Otherwise calls STL_vector_insert_single_4byte_005b71c0 to grow. |
| 0x0090C4F0 | 169 | std__vector_1c_byte_push_back_move | Move-pushes a 0x1C-byte element (containing a string at offset +1) onto the back of a vector. If capacity is available, copies the 7 dwords directly and moves the string (stealing its internal buffer). Otherwise calls FUN_008c5d50 to grow and insert. |
| 0x0090DF40 | 461 | std__list_assign_range | Assigns a range of elements from another list to this list. If source has more elements, appends new nodes. If source has fewer, removes excess nodes. If same count, copies values in place. Each node contains a data pointer at offset +8 (dword at index 2). |
| 0x0090E110 | 427 | std__vector_8byte_assign_range | Assigns a range of 8-byte elements to a vector. If new size fits in existing capacity, copies directly and truncates. If new size exceeds capacity, frees old buffer, allocates new one with 1.5x growth factor, copies old elements and appends new ones. |
| 0x0090E2C0 | 34 | memcpy_elements_raw | Copies a range of raw bytes from param_1 to param_3 via memcpy. Returns pointer past the last copied byte. |
| 0x0090E2F0 | 238 | std__tree_copy_nodes_0x18 | Recursively copies BST nodes (0x18 bytes each). Creates new nodes with key data from source, links them to parent, copies color flag, then recursively copies left and right subtrees. |
| 0x0090E400 | 241 | std__tree_copy_nodes_0x58 | Recursively copies BST nodes (0x58 bytes each). Allocates new 0x58-byte nodes, calls FUN_009102e0 to copy payload data from source, links to parent, copies color flag, then recursively copies left and right subtrees. |
| 0x0090E510 | 250 | std__tree_copy_nodes_0x24 | Recursively copies BST nodes (0x24 bytes each). Creates new nodes with 5 dwords of key/data from source (at offsets +0x10 through +0x20), links to parent, copies color flag, then recursively copies left and right subtrees. |
| 0x0090E630 | 420 | std__map_string_key_find_or_insert | Finds or inserts an element in a std::map with string keys. Searches the BST using std::_Traits_compare for string comparison. If found, returns existing node. If not found, allocates a 100-byte node, copy-constructs the string key and calls FUN_00910a70 to initialize additional data, then inserts via Insert_node. Returns a pair of (node, inserted_flag). |
| 0x0090E7E0 | 330 | std__vector_0x18_insert_realloc | Inserts a single 0x18-byte element into a vector at the given position, reallocating with 1.5x growth. Copies the new element via string copy-construct, moves existing elements around the insertion point, then replaces the vector buffer. |
| 0x0090E960 | 452 | std__vector_4byte_insert_realloc_v2 | Inserts a single 4-byte element into a vector at given position with reallocation (1.5x growth). Allocates new buffer, copies element, memcpys ranges before and after insertion point, frees old buffer. |
| 0x0090EB30 | 598 | std__vector_0x3c_insert_realloc | Inserts a single 0x3C-byte element into a vector with reallocation (1.5x growth factor, max 0x4444444 elements). Uses FUN_0090fcc0 to construct element and FUN_0090fb80 to move existing elements. |
| 0x0090ED90 | 452 | std__vector_4byte_insert_realloc_v3 | Another variant of 4-byte vector insert with reallocation (1.5x growth). Nearly identical to v2 but uses STL_vector_throw_length_error_005b8c50 for error reporting. |
| 0x0090EF60 | 492 | std__vector_0x1c_insert_realloc | Inserts a single 0x1C-byte element into a vector with reallocation (1.5x growth, max 0x9249249 elements). Uses FUN_0090fd40 to construct and FUN_0090fc00 to move elements. |
| 0x0090F180 | 118 | std__tree_destroy_nodes_0x18 | Destroys all nodes in a BST with 0x18-byte nodes. Recursively deletes right subtrees via FUN_0090f2f0, then frees each node. Finally frees the sentinel node. |
| 0x0090F200 | 118 | std__tree_destroy_nodes_0x24 | Destroys all nodes in a BST with 0x24-byte nodes. Recursively deletes right subtrees via FUN_0090f520, then frees each node. Finally frees the sentinel node. |
| 0x0090F280 | 103 | std__tree_delete_subtree_0x18_v1 | Recursively deletes a subtree of 0x18-byte BST nodes. Processes right child first (recursion), then frees current node and moves to left child. |
| 0x0090F2F0 | 103 | std__tree_delete_subtree_0x18_v2 | Recursively deletes a subtree of 0x18-byte BST nodes (identical pattern to v1). Processes right child first, frees current node, moves to left child. |
| 0x0090F360 | 160 | std__tree_delete_subtree_0x4c_with_strings | Recursively deletes a subtree of 0x4C-byte BST nodes that contain two std::string members. Destroys both strings before freeing each node. |
| 0x0090F400 | 141 | std__tree_delete_subtree_0x58_with_string | Recursively deletes subtree of 0x58-byte BST nodes, destroying one std::string member per node. |
| 0x0090F490 | 131 | std__tree_delete_subtree_0x20_with_vector | Recursively deletes subtree of 0x20-byte BST nodes, destroying a vector of 0x1C-byte elements per node. |
| 0x0090F520 | 103 | std__tree_delete_subtree_0x24 | Recursively deletes subtree of 0x24-byte BST nodes (plain data, no destructors needed). |
| 0x0090F590 | 153 | std__tree_delete_subtree_0x64_with_strings | Recursively deletes subtree of 100-byte (0x64) BST nodes, destroying two std::string members per node. |
| 0x0090F630 | 128 | std__tree_delete_subtree_0x30_with_string | Recursively deletes subtree of 0x30-byte BST nodes, destroying one std::string member per node. |
| 0x0090F6B0 | 144 | std__tree_delete_subtree_0x34_with_fmt | Recursively deletes subtree of 0x34-byte BST nodes, calling CFmt__func_0058c230 and STL_string_dtor to clean up each node. |
| 0x0090F740 | 103 | std__tree_delete_subtree_0x18_v3 | Recursively deletes subtree of 0x18-byte BST nodes (plain data, no destructors). |
| 0x0090F7B0 | 141 | std__tree_delete_subtree_0x58_with_string_v2 | Recursively deletes subtree of 0x58-byte BST nodes, destroying one std::string member per node (variant 2). |
| 0x0090F840 | 103 | std__tree_delete_subtree_0x24_v2 | Recursively deletes subtree of 0x24-byte BST nodes (plain data, no destructors, variant 2). |
| 0x0090F8D0 | 75 | std__map_int__lower_bound_a | std::map<int,...> lower_bound implementation. Traverses red-black tree comparing int keys. Returns iterator pointing to first element not less than key. |
| 0x0090F920 | 75 | std__map_int__lower_bound_b | std::map<int,...> lower_bound implementation (variant b). Traverses red-black tree comparing int keys. Returns iterator pointing to first element not less than key. Identical logic to lower_bound_a. |
| 0x0090F970 | 75 | std__map_int__lower_bound_c | std::map<int,...> lower_bound implementation (variant c). Traverses red-black tree comparing int keys. Returns iterator pointing to first element not less than key. Identical logic to lower_bound_a. |
| 0x0090F9C0 | 129 | std__map_string__lower_bound_a | std::map<string,...> lower_bound implementation. Traverses red-black tree comparing string keys via std::_Traits_compare. Returns iterator to first element not less than key. |
| 0x0090FA50 | 129 | std__map_string__lower_bound_b | std::map<string,...> lower_bound implementation (variant b). Traverses red-black tree comparing string keys via std::_Traits_compare. Returns iterator to first element not less than key. Identical logic to lower_bound_a. |
| 0x0090FAE0 | 128 | linked_list__destroy_all_nodes | Destroys all nodes in a linked list. Iterates through list, calls helper cleanup function and STL_string_dtor on each 0x5c-byte node, then frees memory. |
| 0x0090FB60 | 28 | std__list__is_empty_check | Checks if a list/container is empty. Returns 1 if *param_1 == 0 (empty), 0 otherwise. |
| 0x0090FB80 | 123 | std__vector__move_construct_elements_60 | Move-constructs a range of 0x3C-byte elements (tooltip entries) from source to destination. Iterates from param_1 to param_2 in 0x3C steps, calling tooltip_entry__move_construct_full for each. Returns pointer past the last constructed element. |
| 0x0090FC00 | 191 | std__vector__move_elements_28byte | Move-constructs elements from one array to another. Elements are 28 bytes (7 ints) containing 4 ints + an SSO string (moved) + 1 int. Source strings are reset to empty after move. |
| 0x0090FDD0 | 134 | std__map__erase_node_and_advance | Erases a node from std::map and advances iterator. Increments iterator, extracts and rebalances the tree node, destroys the node's string data, and frees the 0x58-byte node. |
| 0x0090FE60 | 36 | linked_list__find_by_field_8 | Linear search through a linked list for a node whose field at offset 8 matches the search value. Returns pointer to matching node or end sentinel. |
| 0x0090FE90 | 36 | linked_list__find_by_field_8_b | Linear search through a linked list for a node whose field at offset 8 matches the search value. Returns pointer to matching node or end sentinel. Identical logic to linked_list__find_by_field_8. |
| 0x0090FEC0 | 39 | linked_list__find_by_field_338 | Linear search through a linked list for a node whose field at offset 0x338 (index 0xCE) matches the search value. Returns pointer to matching node or end sentinel. |
| 0x0090FEF0 | 297 | std__map_int__insert_or_find_with_data | Inserts or finds entry in std::map<int, data>. If key exists, returns existing node. Otherwise allocates 0x20-byte node, copies key and data (3 ints from param_3+4/8/12 with move semantics), inserts into tree. |
| 0x00910020 | 105 | std__map__init_sentinel_24 | Initializes a std::map with 24-byte sentinel node. Allocates 0x18 bytes, sets up self-referential sentinel node (left/right/parent point to self), marks as header (0xc = 0x101). |
| 0x00910090 | 234 | std__map__copy_construct_24 | Copy-constructs a std::map with 0x18-byte (24-byte) nodes. Allocates sentinel, copies tree structure via std__tree_copy_nodes_0x18, sets size, then finds and caches leftmost and rightmost nodes. |
| 0x00910180 | 105 | std__map__init_sentinel_76 | Initializes a std::map with 0x4C-byte (76-byte) sentinel node. Allocates node, sets up self-referential left/right/parent pointers, marks as header (0xc = 0x101). |
| 0x009101F0 | 234 | std__map__copy_construct_88 | Copy-constructs a std::map with 0x58-byte nodes. Allocates sentinel, copies tree structure via std__tree_copy_nodes_0x58, sets size, then finds and caches leftmost and rightmost nodes. |
| 0x00910380 | 250 | std__vector_28byte__copy_construct | Copy-constructs a std::vector of 28-byte elements. Each element contains an SSO string (24 bytes) + 1 int. Allocates target, iterates source copying strings and trailing int. |
| 0x00910BE0 | 85 | std__string_wrapper__default_ctor | Default-constructs a struct with a leading int field (set to 0) followed by an inline SSO string (capacity 0xf) initialized to empty. |
| 0x00912540 | 67 | heap_free_0x5c_at_offset4 | Frees a 0x5c-byte heap allocation stored at this+4, if non-null. Used as a destructor/cleanup helper via FUN_00e6227f. |
| 0x00912590 | 67 | heap_free_0x18_at_offset4 | Frees a 0x18-byte heap allocation stored at this+4, if non-null. Used as a destructor/cleanup helper via FUN_00e6227f. |
| 0x009125E0 | 70 | heap_free_0x340_at_offset4 | Frees a 0x340-byte heap allocation stored at this+4, if non-null. Used as a destructor/cleanup helper via FUN_00e6227f. |
| 0x00912630 | 67 | heap_free_0x18_at_offset4_b | Frees a 0x18-byte heap allocation stored at this+4, if non-null. Used as a destructor/cleanup helper via FUN_00e6227f. Duplicate of 00912590 at different address. |
| 0x00912680 | 67 | heap_free_0x18_at_offset4_c | Frees a 0x18-byte heap allocation stored at this+4, if non-null. Used as a destructor/cleanup helper via FUN_00e6227f. Third instance of 0x18-byte free pattern. |
| 0x009126D0 | 67 | heap_free_0x4c_at_offset4 | Frees a 0x4c-byte heap allocation stored at this+4, if non-null. Used as a destructor/cleanup helper via FUN_00e6227f. |
| 0x00912720 | 67 | heap_free_0x58_at_offset4 | Frees a 0x58-byte heap allocation stored at this+4, if non-null. Used as a destructor/cleanup helper via FUN_00e6227f. |
| 0x00912770 | 67 | heap_free_0x20_at_offset4 | Frees a 0x20-byte heap allocation stored at this+4, if non-null. Used as a destructor/cleanup helper via FUN_00e6227f. |
| 0x009127C0 | 67 | heap_free_0x24_at_offset4 | Frees a 0x24-byte heap allocation stored at this+4, if non-null. Used as a destructor/cleanup helper via FUN_00e6227f. |
| 0x00912810 | 67 | heap_free_0x64_at_offset4 | Frees a 0x64 (100)-byte heap allocation stored at this+4, if non-null. Used as a destructor/cleanup helper via FUN_00e6227f. |
| 0x00912860 | 67 | heap_free_0x30_at_offset4 | Frees a 0x30-byte heap allocation stored at this+4, if non-null. Used as a destructor/cleanup helper via FUN_00e6227f. |
| 0x009128B0 | 67 | heap_free_0x34_at_offset4 | Frees a 0x34-byte heap allocation stored at this+4, if non-null. Used as a destructor/cleanup helper via FUN_00e6227f. |
| 0x00912990 | 78 | heap_free_0x18_at_offset4_d | Frees a 0x18-byte heap allocation stored at this+4, if non-null. Fourth instance of this pattern at a different address. |
| 0x00912A60 | 111 | std__tree_destroy_0x18_nodes | Destroys a std::tree (red-black tree) by traversing all 0x18-byte nodes. Iterates through linked nodes, recursively deletes subtrees via std__tree_delete_subtree_0x18_v1, then frees each node. Finally frees the sentinel/header node. |
| 0x00912AF0 | 76 | std__tree_destroy_0x4c_root | Destroys a std::tree root with 0x4c-byte nodes containing strings. Calls std__tree_delete_subtree_0x4c_with_strings to recursively destroy the tree, then frees the 0x4c-byte root/sentinel node. |
| 0x00912B50 | 76 | std__tree_destroy_0x58_root | Destroys a std::tree root with 0x58-byte nodes containing strings. Recursively deletes subtree then frees sentinel node. |
| 0x00912BB0 | 76 | std__tree_destroy_0x20_root | Destroys a std::tree root with 0x20-byte nodes containing vectors. Recursively deletes subtree then frees sentinel node. |
| 0x00912C10 | 7 | thunk_to_std__tree_destroy_nodes_0x24 | Thunk forwarding to std__tree_destroy_nodes_0x24 (at 0090f200). Destroys a std::tree with 0x24-byte nodes. |
| 0x00912C20 | 76 | std__tree_destroy_0x64_root | Destroys a std::tree root with 0x64-byte nodes containing strings. Recursively deletes subtree then frees sentinel node. |
| 0x00912C80 | 76 | std__tree_destroy_0x30_root | Destroys a std::tree root with 0x30-byte nodes containing strings. Recursively deletes subtree then frees sentinel node. |
| 0x00912CE0 | 76 | std__tree_destroy_0x34_root | Destroys a std::tree root with 0x34-byte nodes containing CFmt data. Recursively deletes subtree then frees sentinel node. |
| 0x00912D60 | 84 | std__tree_destroy_0x58_indirect | Destroys a std::tree with 0x58-byte nodes via an indirect pointer at this+4. Null-checks the indirect pointer before destroying. Used when tree root is stored via indirection. |
| 0x00912DE0 | 78 | heap_free_0x18_at_offset4_e | Frees a 0x18-byte heap allocation stored at this+4, if non-null. Fifth instance of this pattern. |
| 0x00912E30 | 78 | heap_free_0x18_at_offset4_f | Frees a 0x18-byte heap allocation stored at this+4, if non-null. Sixth instance of this pattern. |
| 0x00913430 | 90 | std__vector_destroy_elements_stride_0x3c | Iterates through STL vector elements (stride 0x3C) and destroys STL strings in each element. |
| 0x00913490 | 90 | std__vector_destroy_elements_stride_0x1c | Iterates through STL vector elements (stride 0x1C) and destroys STL strings in each element. |
| 0x00913540 | 73 | linked_list__destroy_and_free_0x5c | Destroys all nodes in a linked list and frees 0x5C bytes per node via operator delete. |
| 0x00913590 | 127 | linked_list__destroy_all_and_free_0x340 | Walks a linked list of large (0x340 byte) nodes, calls cleanup on each, frees each node, then frees the head. |
| 0x00913620 | 65 | std__tree_destroy_0x18_wrapper | Wrapper that calls std::tree destroy for nodes of size 0x18. Destroys the red-black tree structure. |
| 0x00913B20 | 129 | std__vector_ptr__clear_and_free | Clears and frees memory for a vector of pointers (4-byte elements). Validates heap block alignment before freeing. Zeros out begin/end/capacity pointers. |
| 0x00913BB0 | 204 | std__vector_3c__clear_and_free | Clears and frees a vector of 0x3C-byte elements. Iterates through elements calling STL_string_dtor on each, then frees the backing array. Zeros out begin/end/capacity pointers. |
| 0x00914B30 | 263 | std__map_int__find_or_insert_18 | std::map<int,...>::operator[] equivalent. Searches the red-black tree for a node with the given int key. If not found, allocates a new 0x18-byte node, inserts it, and returns pointer to the value (offset +0x14). Aborts if at max capacity (0xAAAAAAA entries). |
| 0x00914C40 | 239 | std__map_int_4c__find_or_insert | std::map<int,...>::operator[] for a map with 0x4C-byte value nodes. Searches tree via FUN_0090f8d0 (lower_bound), allocates and inserts 0x4C-byte nodes via FUN_0090dea0 if key not found. Returns pointer to value (offset +0x14). |
| 0x00914D30 | 272 | std__map_int_58__find_or_insert | std::map<int,...>::operator[] for a map with 0x58-byte value nodes. Searches via FUN_0090f920 (lower_bound), allocates and inserts new node with memset-zeroed value containing an embedded STL string if key not found. Returns pointer to value. |
| 0x00914E50 | 276 | std__map_string__find_or_insert_30 | std::map<string,...>::operator[] for 0x30-byte nodes. Searches via FUN_0090f9c0 using string comparison (_Traits_compare). Allocates and inserts new node with copy-constructed string key if not found. Max capacity 0x5555555. Returns pointer to value at offset +0x28. |
| 0x00914F70 | 308 | std__map_string__find_or_insert_34 | std::map<string, vector>::operator[] for 0x34-byte nodes. Searches via FUN_0090fa50 using string comparison. Allocates node with copy-constructed string key and zeroed 3-dword vector. Max capacity 0x4EC4EC4. Returns pointer to value at offset +0x28. |
| 0x009150B0 | 83 | operator++ | STL _Tree_unchecked_const_iterator::operator++ for std::set/map<unsigned int>. Advances iterator to next in-order node in the red-black tree. VS2019 library function. |
| 0x00915110 | 83 | operator++ | STL _Tree_unchecked_const_iterator::operator++ for std::set/map<unsigned int>. Advances iterator to next in-order node in the red-black tree. VS2019 library function. |
| 0x00915170 | 83 | operator++ | STL _Tree_unchecked_const_iterator::operator++ for std::set/map<unsigned int>. Advances iterator to next in-order node in the red-black tree. VS2019 library function. |
| 0x00941B70 | 92 | std__vector_destroy_elements_0x3c | Destroys vector elements of size 0x3C (60 bytes) each. Iterates from param_1 to param_2, calling STL_string_dtor on each element to clean up strings within the structs. |
| 0x00941BD0 | 92 | std__vector_destroy_elements_0x1c | Destroys vector elements of size 0x1C (28 bytes) each. Iterates from param_1 to param_2, calling STL_string_dtor on each element to clean up strings within the structs. |
| 0x00941C30 | 704 | STL_rbtree_extract_and_rebalance | Red-black tree node extraction with rebalancing; adjusts parent/child links and colors after removal |
| 0x00941F20 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00942130 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00942340 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00942550 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00942760 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00942970 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00942B80 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00942D90 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00942FA0 | 84 | STL_rbtree_rotate_left_00942fa0 | Red-black tree LEFT rotation: right child replaces this node as parent, this node becomes left child. Right child's left subtree becomes this node's right subtree. (Was mislabeled as rotate_right) |
| 0x00943000 | 88 | STL_rbtree_rotate_right_00943000 | Red-black tree RIGHT rotation: left child replaces this node as parent, this node becomes right child. Left child's right subtree becomes this node's left subtree. (Was mislabeled as rotate_left) |
| 0x00943060 | 206 | STL_vector_destroy_and_free_0x1c | Destroys vector of 0x1c-byte elements containing strings, then frees backing buffer |
| 0x00943130 | 10 | STL_vector_throw_length_error_00943130 | Throws std::length_error("vector too long") for vector overflow |
| 0x00943140 | 10 | STL_vector_throw_length_error_00943140 | Throws std::length_error("vector too long") for vector overflow |
| 0x00943150 | 10 | STL_vector_throw_length_error_00943150 | Throws std::length_error("vector too long") for vector overflow |
| 0x00943160 | 102 | STL_vector_allocate_0x1c_elements | Allocates aligned memory for vector of 0x1c-byte elements; handles large allocation alignment |
| 0x00943240 | 115 | STL_map_clear_with_string_values | Clears a std::map by destroying string values in each 0x18-byte node, then resets head pointer |
| 0x009432C0 | 33 | STL_map_clear_nodes | Clears std::map by recursively freeing all nodes and resetting head/size to empty state |
| 0x009432F0 | 132 | STL_vector_clear_0x3c_elements | Clears vector of 0x3c-byte elements by destroying string members, resets size to begin |
| 0x00943380 | 167 | STL_vector_clear_0x158_elements | Clears vector of 0x158-byte elements by destroying two string members per element |
| 0x00943430 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00943470 | 64 | STL_vector_free_buffer_0x3c | Frees aligned vector buffer for 0x3c-byte elements; handles large allocation pointer fixup |
| 0x009434C0 | 67 | STL_vector_free_buffer_0x1c | Frees aligned vector buffer for 0x1c-byte elements; handles large allocation pointer fixup |
| 0x00943520 | 109 | STL_list_erase_node_0x340 | Erases a node from doubly-linked list, frees 0x340-byte node, decrements count |
| 0x009435A0 | 67 | STL_map_lower_bound_uint | Returns lower_bound iterator for uint key in std::map; returns end if key not found |
| 0x009436A0 | 170 | STL_list_push_back_0x5c | Appends new 0x5c-byte node to back of doubly-linked list; throws if list too long |
| 0x00943750 | 173 | STL_list_push_back_0x340 | Appends new 0x340-byte node to back of doubly-linked list; throws if list too long |
| 0x00943800 | 39 | STL_vector_push_back_uint | Pushes uint value to back of vector; calls reallocate if at capacity |
| 0x00946280 | 34 | memcpy_range_to_dest_00946280 | Copies memory range [param_1, param_2) to param_3; returns dest + bytes copied |
| 0x009462B0 | 123 | STL_vector_clear_map_entry_elements | Clears vector of 0x1c-byte map entries; destroys string in each element and resets fields |
| 0x00946330 | 291 | STL_vector_insert_0x20_element | Inserts one 0x20-byte (32-byte) element into vector at given position with reallocation |
| 0x00946470 | 585 | STL_vector_insert_0x1c_element | Inserts one 0x1c-byte element into vector with grow factor 1.5x; handles aligned allocation |
| 0x009466C0 | 103 | STL_rbtree_destroy_nodes_0x18 | Recursively destroys red-black tree nodes (0x18 bytes each) in post-order traversal |
| 0x00946730 | 75 | STL_map_find_lower_bound_int | Finds lower_bound position in std::map<int,...> for insertion; returns iterator with insert hint |
| 0x00946780 | 91 | STL_vector_construct_map_entry | Copy-constructs a map entry element at given offset; copies string + 4-byte field at +0x18 |
| 0x00947390 | 111 | STL_rbtree_destroy_and_free_sentinel | Destroys all nodes in rbtree including sentinel; frees 0x18-byte nodes recursively then sentinel |
| 0x00947430 | 65 | STL_rbtree_destroy_wrapper | Wrapper that calls STL_rbtree_destroy_and_free_sentinel with SEH frame setup |
| 0x00947480 | 174 | STL_vector_destroy_map_entries | Destroys vector of 0x1c-byte map entry elements, frees backing buffer, resets pointers to null |
| 0x00947540 | 129 | STL_vector_free_buffer_0x20 | Frees vector buffer for 0x20-byte (32-byte) elements; handles aligned allocation pointer fixup |
| 0x009515E0 | 94 | std__vector_0x20__replace_buffer | Replaces the internal buffer of a std::vector with 0x20-byte elements. Frees the old buffer (with aligned allocation support for >0xfff), then sets begin=param_2, end=param_2+param_3*0x20, capacity=param_2+param_4*0x20. |
| 0x00951640 | 22 | std__vector__clear_entries_thunk | Thunk that calls STL_vector_clear_map_entry_elements with reordered params. Simple wrapper for vector element cleanup. |
| 0x00951670 | 136 | std__vector_0x20__grow_and_copy | Grows a std::vector of 0x20-byte elements. Allocates a new buffer via FUN_009518a0 with the requested capacity, memcpy's existing data, then replaces the old buffer via std__vector_0x20__replace_buffer. |
| 0x00951720 | 164 | std__vector_0x1c__copy_range_with_strings | Copies a range of 0x1c-byte elements (containing SSO strings + a 4-byte field at offset 0x18) from [param_2, param_3) to destination param_4. Uses STL_string_copy_construct for each element's string, copies the extra field directly. Returns pointer past the last written element. |
| 0x009517D0 | 162 | std__vector_0x1c__copy_range_with_strings_b | Copies a range of 0x1c-byte elements (containing SSO strings + a 4-byte field at offset 0x18) from [param_2, param_3) to destination param_4. Same as std__vector_0x1c__copy_range_with_strings but returns void instead of end pointer. |
| 0x00951880 | 10 | thunk_to_std__Xlength_error_00951880 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x00951890 | 10 | thunk_to_std__Xlength_error_00951890 | Throws std::length_error exception for vector overflow |
| 0x009518A0 | 92 | std__allocate_aligned_0x20_array | Allocates an aligned array of 0x20-byte elements. For small allocations (<0x1000 bytes), does a simple heap alloc. For large ones, allocates extra 0x23 bytes, aligns to 0x20 boundary, and stores the original pointer at aligned-4 for later freeing. Throws bad_array_new_length if count >= 0x8000000. |
| 0x00951900 | 133 | std__vector_0x74__clear_with_string_dtor | Clears a std::vector of 0x74-byte elements, each containing a string that needs destruction. Iterates from begin to end, calling STL_string_dtor on each element, then resets end=begin. Element stride is 0x74 bytes. |
| 0x00951990 | 67 | std__deallocate_aligned_0x1c_array | Deallocates an aligned array of 0x1c-byte elements. For allocations >= 0x1000 bytes, recovers the original unaligned pointer from ptr[-4] and adds 0x23 for the original size. Then frees via FUN_00e6227f. |
| 0x009519E0 | 58 | std__deallocate_aligned_0x20_array | Deallocates an aligned array of 0x20-byte elements. Same pattern as std__deallocate_aligned_0x1c_array but with 0x20-byte element size. |
| 0x00951D60 | 746 | std__list_0x80__assign_range | Assigns a range [param_2, param_3) of linked list nodes to a std::list of 0x80-byte elements (containing 3 SSO strings at offsets 4, 0xf, 0x16 plus scalar fields). Overwrites existing nodes when possible, removes excess nodes (destroying 3 strings each), or appends new nodes as needed via FUN_00953640. |
| 0x00952050 | 701 | std__list_0x38__assign_range | Assigns a range [param_2, param_3) of linked list nodes to a std::list of 0x38-byte elements (containing 1 SSO string at offset 4 plus scalar fields at offsets 2-3 and 10-0xd). Overwrites existing nodes, removes excess (destroying 1 string each), or appends new 0x38-byte nodes. |
| 0x00952310 | 240 | std__tree_0x44__deep_copy_node | Recursively deep-copies a std::tree node (red-black tree) with 0x44-byte nodes. Allocates new node via FUN_00e6224f(0x44), copies data via FUN_009535b0 (which copies a string), sets up left/right/parent pointers and color. Recursively copies left child (*param_2) and right child (param_2[2]). |
| 0x00952420 | 236 | std__tree_0x20__deep_copy_node | Recursively deep-copies a std::tree node with 0x20-byte nodes. Allocates new node via FUN_00e6224f(0x20), copies 16 bytes of data (4 DWORDs at offsets 4-7), sets up tree pointers and color. Recursively copies left and right subtrees. |
| 0x00952530 | 144 | std__tree_0x44__recursive_destroy | Recursively destroys a std::tree with 0x44-byte nodes containing strings. Traverses in-order: recursively destroys right subtree, saves left child pointer, destroys the string via STL_string_dtor, frees the 0x44-byte node, then continues with left child. |
| 0x009525C0 | 103 | std__tree_0x20__recursive_destroy | Recursively destroys a std::tree with 0x20-byte nodes (no strings to destroy). Traverses in-order: recursively destroys right subtree, saves left child, frees 0x20-byte node, continues with left child. |
| 0x00952630 | 103 | std__tree_0x18__recursive_destroy | Recursively destroys a std::tree with 0x18-byte nodes (no strings). Traverses in-order: recursively destroys right subtree, saves left child, frees 0x18-byte node, continues with left child. |
| 0x009526A0 | 144 | std__tree_0x44__recursive_destroy_b | Recursively destroys a std::tree with 0x44-byte nodes containing strings. Same as std__tree_0x44__recursive_destroy but at a different call site. |
| 0x00952730 | 103 | std__tree_0x20__recursive_destroy_b | Recursively destroys a std::tree with 0x20-byte nodes. Same as std__tree_0x20__recursive_destroy but at a different call site. |
| 0x009527A0 | 222 | std__list__merge_sort_by_field_0x74_asc | Merge sort for a doubly-linked list, comparing elements by integer field at offset 0x74 (ascending). Recursive divide-and-conquer: splits list in half, sorts each half, then merges by comparing node[0x1d] values. Modifies list in-place by relinking prev/next pointers. |
| 0x00952880 | 222 | std__list__merge_sort_by_field_0x74_desc | Merge sort for a doubly-linked list, comparing elements by integer field at offset 0x74 (descending). Same algorithm as ascending variant but with reversed comparison. |
| 0x00952960 | 385 | std__list__merge_sort_by_wstring_0x30_asc | Merge sort for a doubly-linked list, comparing elements by wide string at offset 0x30 (ascending). Converts strings via FUN_00dde5c0 then uses compare_strings_as_wide_chars for comparison. |
| 0x00952AF0 | 385 | std__list__merge_sort_by_wstring_0x30_desc | Merge sort for a doubly-linked list, comparing elements by wide string at offset 0x30 (descending). Same as ascending variant but reversed comparison. |
| 0x00952C80 | 222 | std__list__merge_sort_by_field_0x54_asc | Merge sort for a doubly-linked list, comparing elements by integer field at offset 0x54 (ascending). Same merge sort algorithm as field_0x74 variant but uses different comparison offset. |
| 0x00952D60 | 222 | std__list__merge_sort_by_field_0x54_desc | Merge sort for a doubly-linked list, comparing elements by integer field at offset 0x54 (descending). |
| 0x00952E40 | 362 | std__list__merge_sort_by_string_field4_asc | Merge sort for a doubly-linked list, comparing elements by SSO string at offset 4 (ascending). Reads SSO string (checks capacity at offset 9), converts via compare_strings_as_wide_chars for wide string comparison. |
| 0x00952FB0 | 362 | std__list__merge_sort_by_string_field4_desc | Merge sort for a doubly-linked list, comparing elements by SSO string at offset 4 (descending). Same as ascending variant but reversed comparison. |
| 0x00953120 | 222 | std__list__merge_sort_by_field_0x78_desc | Merge sort for linked list by integer field at offset 0x78 (descending). |
| 0x00953200 | 222 | std__list__merge_sort_by_field_0x38_asc | Merge sort for linked list by integer field at offset 0x38 (ascending). |
| 0x009532E0 | 222 | std__list__merge_sort_by_field_0x38_desc | Merge sort for linked list by integer field at offset 0x38 (descending). |
| 0x009533C0 | 250 | std__list__merge_sort_by_float_0x70_asc | Merge sort for linked list by float field at offset 0x70 (ascending). Uses float comparison instead of integer. |
| 0x009534C0 | 234 | std__list__merge_sort_by_float_0x70_desc | Merge sort for linked list by float field at offset 0x70 (descending). Uses float comparison. |
| 0x00954180 | 70 | heap_free_0x80_at_offset4 | Frees a 0x80-byte heap allocation stored at this+4, if non-null. |
| 0x009541D0 | 67 | heap_free_0x38_at_offset4 | Frees a 0x38-byte heap allocation stored at this+4, if non-null. |
| 0x00954220 | 67 | heap_free_0x44_at_offset4 | Frees a 0x44-byte heap allocation stored at this+4, if non-null. |
| 0x00954270 | 67 | heap_free_0x20_at_offset4_b | Frees a 0x20-byte heap allocation stored at this+4, if non-null. |
| 0x009542C0 | 67 | heap_free_0x18_at_offset4_g | Frees a 0x18-byte heap allocation stored at this+4, if non-null. |
| 0x00954310 | 158 | linked_list_0x80__destroy_all_nodes | Destroys all nodes in a linked list of 0x80-byte elements. Each node contains 3 strings that are destroyed via STL_string_dtor. Unlinks the list, traverses all nodes, destroys strings and frees each 0x80-byte node. |
| 0x009543B0 | 126 | linked_list_0x38__destroy_all_nodes | Destroys all nodes in a linked list of 0x38-byte elements. Each node contains 1 string destroyed via STL_string_dtor. Unlinks the list, traverses all nodes, destroys string and frees each 0x38-byte node. |
| 0x00954430 | 76 | std__tree_destroy_0x44_root_b | Destroys a std::tree with 0x44-byte nodes containing strings. Calls std__tree_0x44__recursive_destroy then frees root node. |
| 0x00954490 | 111 | std__tree_destroy_0x20_all_nodes | Destroys all nodes in a std::tree with 0x20-byte nodes. Iterates through nodes, recursively destroys subtrees, frees each node, then frees the sentinel. |
| 0x00954510 | 111 | std__tree_destroy_0x18_all_nodes | Destroys all nodes in a std::tree with 0x18-byte nodes. Iterates through nodes, recursively destroys subtrees, frees each node, then frees the sentinel. |
| 0x00954610 | 78 | heap_free_0x20_at_offset4_c | Frees a 0x20-byte heap allocation stored at this+4, if non-null. |
| 0x00954660 | 78 | heap_free_0x18_at_offset4_h | Frees a 0x18-byte heap allocation stored at this+4, if non-null. |
| 0x009546B0 | 78 | heap_free_0x44_at_offset4_b | Frees a 0x44-byte heap allocation stored at this+4, if non-null. |
| 0x00955310 | 133 | STL_map_assign_from | Assignment operator for std::map; clears existing tree and copies from source tree with iterators |
| 0x009554A0 | 320 | std__map_int_to_entry_0x44__bracket_operator | std::map::operator[] for map<int, struct_0x30>. Searches the red-black tree for the given key. If not found, allocates a 0x44-byte node, initializes the 0x30-byte value with zeros and inserts it. Returns pointer to the value. |
| 0x009555F0 | 275 | std__map_int_to_entry_0x20__bracket_operator | std::map::operator[] for map<int, struct_0x0C>. Searches the red-black tree for the given key. If not found, allocates a 0x20-byte node, initializes the 0x0C-byte value with zeros and inserts it. Returns pointer to the value. |
| 0x00955710 | 263 | std__map_int_to_entry_0x18__bracket_operator | std::map::operator[] for map<int, int>. Searches the red-black tree for the given key. If not found, allocates a 0x18-byte node, initializes the value to 0 and inserts it. Returns pointer to the value. |
| 0x00965730 | 134 | std__vector_8byte__reserve | Reserves memory for a std::vector of 8-byte elements. Allocates count*8 bytes, handles alignment for large allocations (>0x1000 bytes, 32-byte aligned). Throws bad_array_new_length if count >= 0x20000000. |
| 0x009657E0 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x009659F0 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00965C00 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00965EC0 | 236 | std__vector_7dword_erase_range | Erases a range from a vector of 7-dword (0x1C byte) elements with embedded STL strings. Moves elements by destructing old strings and move-assigning new ones. Adjusts end pointer. |
| 0x009660F0 | 504 | std__vector_0xc__insert_single | Inserts a single 0xC-byte element into a std::vector at the given position. Reallocates with 1.5x growth, copies existing elements around the insertion point. |
| 0x009662F0 | 141 | std__rbtree_destroy_nodes_recursive | Recursively destroys all nodes in a red-black tree. For each node, recurses into right child, destructs STL string at offset +4, frees the 0x4C-byte node, then moves to left child. |
| 0x00966380 | 75 | std__rbtree_lower_bound | std::map lower_bound operation. Traverses the red-black tree to find the first node >= key. Returns iterator struct with node pointer, insert hint, and bound node. |
| 0x00966880 | 150 | std__vector_0xc__clear_and_free | Clears and frees a std::vector of 0xC-byte elements. Frees the backing buffer (with alignment handling for >0x1000 bytes) and zeros begin/end/capacity pointers. |
| 0x00966AB0 | 239 | std__map_GuildAlliance__bracket_operator | std::map operator[] for map with GuildAllianceEntry values. Uses lower_bound to find or insert position, allocates 0x4C-byte node with default-constructed entry if key not found. |
| 0x0096C2E0 | 517 | std__rbtree_insert_node | MSVC std::_Tree_val::_Insert_node. Inserts a node into a red-black tree at the specified position and rebalances via rotations and recoloring. Library function from Visual Studio 2019. |
| 0x0096C4F0 | 46 | std__copy_0xc_elements_forward | STL template instantiation: std copy 0xc elements forward |
| 0x0096C520 | 47 | std__copy_0xc_elements_forward_b | Copies a range of 0xC-byte elements forward (variant B). Uses offset-based copy instead of separate destination pointer. |
| 0x0096C550 | 10 | thunk_to_std__Xlength_error_0096c550 | Calls std::_Xlength_error with vector_too_long error message |
| 0x0096C560 | 61 | std__allocator_0xc__deallocate | MSVC std::allocator::deallocate for 0xC-byte elements. Handles aligned deallocation for buffers >0x1000 bytes (retrieves original pointer from -4 offset). |
| 0x0096C860 | 39 | std__vector_4byte__push_back | std::vector push_back for 4-byte elements. Appends element at end, calls realloc helper if at capacity. |
| 0x0096C890 | 49 | std__vector_0xc__push_back | std::vector push_back for 0xC-byte elements. Copies 12-byte struct at end, calls vector insert realloc if at capacity. |
| 0x0096DFD0 | 106 | std__tree_0x814__recursive_destroy | Recursively destroys a std::tree with 0x814-byte nodes (very large nodes, likely containing embedded data). Standard tree destroy pattern: destroys right subtree, frees node, continues with left child. |
| 0x0096E040 | 731 | std__list__merge_by_item_type_and_name | Merges two sorted linked list ranges by item type (via FUN_009967f0) and name (via CItemDB__build_item_tooltip_string + std::_Traits_compare). When item types match, falls back to alphabetical name comparison. Used as the merge step for item list sorting. |
| 0x0096E320 | 283 | std__list__merge_sort_by_item_type | Merge sort for item linked list by item type (via CItemDesc__get_item_type). Standard recursive merge sort that splits list in half, sorts each, then merges. |
| 0x0096E440 | 107 | std__list__merge_sort_by_item_name | Merge sort for item linked list by item name. Uses std__list__merge_by_item_type_and_name as the merge function, which compares by type first then name. Recursive divide-and-conquer. |
| 0x0096F4F0 | 70 | heap_free_0x814_at_offset4 | Frees a 0x814-byte heap allocation stored at this+4, if non-null. |
| 0x0096F550 | 79 | std__tree_destroy_0x814_root | Destroys a std::tree with 0x814-byte nodes. Calls std__tree_0x814__recursive_destroy then frees root/sentinel node. |
| 0x0096F5B0 | 81 | heap_free_0x814_at_offset4_b | Frees a 0x814-byte heap allocation stored at this+4, if non-null. Second instance of this pattern. |
| 0x0096F610 | 81 | heap_free_0x814_at_offset4_c | Frees a 0x814-byte heap allocation stored at this+4, if non-null. Third instance. |
| 0x00995AE0 | 517 | std__Tree_val__Insert_node_00995ae0 | MSVC STL std::_Tree_val::_Insert_node. Inserts a new node into a red-black tree, performs rotations to maintain balance. Library function from Visual Studio 2019 Release. |
| 0x0099AD50 | 272 | STL_vector_pair8__insert_0099ad50 | STL vector insert for 8-byte pair elements. Grows vector with 1.5x capacity, copies element at insert position, relocates existing elements. |
| 0x0099AE80 | 214 | STL_vector_pair8__resize_fill_0099ae80 | STL vector resize+fill for 8-byte pair elements. Grows with 1.5x capacity strategy, fills new elements with given value, relocates existing data. |
| 0x0099AF80 | 280 | STL_map_int_pair__emplace_0099af80 | STL map emplace for int-key, 8-byte pair value. Traverses RB-tree to find insertion point, allocates 0x18-byte node, inserts via Insert_node. Returns iterator+bool pair. |
| 0x0099B380 | 83 | operator++ | STL red-black tree iterator prefix increment (operator++). Advances to the in-order successor by traversing right subtree or walking up to parent. |
| 0x0099DD70 | 90 | STL_vector__Change_array_0099dd70 | STL vector::_Change_array. Frees old buffer, then sets begin/end/capacity pointers to the new buffer. |
| 0x0099DE10 | 580 | STL_vector_3c__insert_reallocate_0099de10 | STL vector insert with reallocation for 0x3C-byte elements (MapMarkerEntry). Grows with 1.5x capacity, copy-constructs new element, relocates existing elements, destructs old array. |
| 0x0099E1A0 | 183 | STL_vector_3c__clear_and_free_0099e1a0 | Clears and frees STL vector of 0x3C-byte elements. Calls virtual destructor on each element (via vtable), then frees the buffer memory. Zeros out begin/end/capacity pointers. |
| 0x0099F570 | 37 | STL_vector_3c__destruct_range_0099f570 | STL template instantiation: STL vector 3c destruct range 0099f570 |
| 0x0099F5A0 | 182 | STL_vector_3c__copy_construct_range_0099f5a0 | Copy-constructs a range of MapMarkerEntry (0x3C bytes) elements. Sets vtable, copies two strings and two ints per element. Returns pointer past last constructed element. |
| 0x0099F660 | 180 | STL_vector_3c__relocate_range_0099f660 | Relocates (move-constructs) a range of MapMarkerEntry elements to a new buffer. Same as copy but does not return end pointer. |
| 0x0099F720 | 10 | thunk_to_std__Xlength_error_0099f720 | Wrapper that calls std::_Xlength_error with vector_too_long message |
| 0x0099F730 | 64 | STL_vector_3c__free_buffer_0099f730 | Frees the buffer of a vector of 0x3C-byte elements. Handles aligned allocation (checks for oversized allocation header). |
| 0x0099FA60 | 67 | linked_list_sentinel__free_0099fa60 | Frees a 0x20-byte linked list sentinel node at offset+4 if it exists. |
| 0x0099FAB0 | 78 | linked_list_sentinel__free_alt_0099fab0 | Frees a 0x20-byte linked list sentinel node at offset+4 if it exists (alternate version with SEH setup). |
| 0x0099FB00 | 103 | linked_list__clear_and_free_sentinel_0099fb00 | Clears a linked list of 0x20-byte nodes and frees the sentinel. Walks the list freeing each node, then frees the sentinel itself. |
| 0x009AAD30 | 34 | memcpy_range_009aad30 | Copies memory range [param_1, param_2) to param_3. Returns pointer past end of copied data. |
| 0x009AAD60 | 447 | std__vector_ushort__insert_realloc_009aad60 | STL vector<unsigned short> insert with reallocation. Grows capacity by 1.5x, copies elements before and after insertion point, inserts new element. Frees old buffer. Standard MSVC vector insert implementation for 2-byte elements. |
| 0x009AAFE0 | 129 | std__vector_ushort__clear_and_free_009aafe0 | Clears and frees a vector<unsigned short> buffer. Frees the data pointer (with alignment handling for large blocks), then zeroes out begin/end/capacity pointers. |
| 0x009ABF80 | 10 | thunk_to_std__Xlength_error_009abf80 | Calls std::_Xlength_error with vector_too_long error message |
| 0x009ABFD0 | 103 | std__map__recursive_destroy_nodes_009abfd0 | Recursively destroys nodes of an std::map red-black tree. Walks left subtree recursively, then follows right pointers iteratively, freeing each 0x1c-byte node. Stops at sentinel nodes (flag at offset 0xd). |
| 0x009AC170 | 102 | std__list_12byte__clear_009ac170 | Clears an std::list with 12-byte nodes. Disconnects head/tail, walks the tail chain freeing each 0xc-byte node. Used by scroll panel for offset entry cleanup. |
| 0x009AC1E0 | 111 | std__map__destroy_tree_009ac1e0 | Destroys an entire std::map red-black tree. Iterates through root's left children, recursively destroying subtrees via recursive_destroy_nodes, freeing 0x1c-byte nodes. Finally frees the root sentinel node. |
| 0x009AC260 | 65 | std__map__destroy_wrapper_009ac260 | Thin wrapper around std__map__destroy_tree. Sets up SEH frame and delegates to the tree destroyer. |
| 0x009AC380 | 264 | std__map_uint__bracket_insert_009ac380 | std::map<uint, ...> operator[] with insert. Searches red-black tree for key, inserts new node (0x1c bytes) if not found with zeroed value fields. Returns pointer to value portion (node+5 dwords). Throws on max size exceeded (0x9249249). |
| 0x009AC490 | 83 | operator++ | STL red-black tree iterator prefix increment (operator++). Advances to the in-order successor by traversing right subtree or walking up to parent. |
| 0x009ADB10 | 704 | STL_rbtree_erase_node | Red-black tree node removal with rebalancing; standard STL _Tree::_Extract implementation |
| 0x009ADDD0 | 84 | STL_rbtree_rotate_left_9addd0 | Left rotation of a red-black tree node; maintains parent/child links and updates root if needed |
| 0x009ADE30 | 88 | STL_rbtree_rotate_right_9ade30 | Right rotation of a red-black tree node; maintains parent/child links and updates root if needed |
| 0x009ADE90 | 115 | STL_rbtree_clear_all | Clears all nodes from red-black tree, freeing each 0x1C-byte node and resetting head to empty |
| 0x009B41B0 | 107 | std__list_16byte__clear_009b41b0 | Clears an std::list with 16-byte nodes. Disconnects sentinel, walks forward chain freeing each 0x10-byte node. Resets head/tail to self and count to 0. |
| 0x009B4390 | 43 | STL_vector_string_push_back | Pushes a string copy onto the vector, growing if at capacity |
| 0x009B43C0 | 250 | STL_vector_string_push_back_range | Pushes a string constructed from char range [begin,end) onto string vector, growing if needed |
| 0x009B44C0 | 261 | std__vector_string__push_back_cstr_009b44c0 | Pushes a C-string onto a vector<string>. Creates temporary std::string from the C-string, then either inserts with reallocation (if at capacity) or copy-constructs in place. Frees temporary string buffer. |
| 0x009B4EF0 | 82 | STL_vector_24byte__at_seh_wrapper | SEH-wrapped call to std::vector<24byte>::at(). Sets up structured exception handling frame around a bounds-checked vector element access for 24-byte (0x18) elements. |
| 0x009B5290 | 10 | STL_throw_vector_subscript_out_of_range | Throws std::out_of_range("invalid vector subscript"). Called by vector::at() when index is out of bounds. Does not return. |
| 0x009B52A0 | 51 | std__vector_24byte__at_009b52a0 | Bounds-checked access to vector of 24-byte elements. Returns pointer to element at index param_2. Throws out_of_range if index >= size. |
| 0x009B5580 | 120 | std__vector_string__push_back_009b5580 | Pushes a string onto a vector<string> at offset 0x1f0 of the object. If at capacity, does insert with realloc; otherwise copy-constructs in place and advances end pointer by 0x18. |
| 0x009B5600 | 189 | std__vector_string__get_at_009b5600 | Gets string at index from vector<string> at offset 0x1f0. If index is out of range, returns empty string. Otherwise copy-constructs the string at the given index into param_2. |
| 0x009B56C0 | 30 | std__vector_string__size_009b56c0 | Returns the number of elements in vector<string> at offset 0x1f0. Computes (end - begin) / 0x18. |
| 0x009B5760 | 34 | memcpy_range_009b5760 | Copies memory range [param_1, param_2) to param_3. Returns pointer past end of copied data. Duplicate of memcpy_range_009aad30. |
| 0x009B5790 | 452 | std__vector_int__insert_realloc_009b5790 | STL vector<int> insert with reallocation. Grows capacity by 1.5x, allocates new buffer, copies elements before and after insertion point, inserts new element. Frees old buffer. Standard MSVC vector insert for 4-byte elements. |
| 0x009B5960 | 527 | std__vector_64byte__insert_realloc_009b5960 | STL vector insert with reallocation for 64-byte (0x40) element objects. Grows capacity by 1.5x. Calls element constructors/destructors during copy. Uses FUN_009b70a0 for element construction and FUN_009bc870/FUN_009bc650 for batch move. |
| 0x009B5B80 | 564 | std__vector_36byte__insert_realloc_009b5b80 | STL vector insert with reallocation for 36-byte (0x24) element objects. Grows capacity by 1.5x. Calls element constructors/destructors during copy. Uses FUN_009b7120 for element construction and FUN_009bc930/FUN_009bc710 for batch move. |
| 0x009B5DC0 | 594 | std__vector_56byte__insert_realloc_009b5dc0 | STL vector insert with reallocation for 56-byte (0x38) element objects. Standard 1.5x growth pattern with element constructor/destructor calls. |
| 0x009B7470 | 129 | std__vector_int__clear_and_free_009b7470 | Clears and frees a vector<int> buffer. Frees data with alignment handling for large blocks, zeroes begin/end/capacity. |
| 0x009B7500 | 185 | std__vector_56byte__destroy_009b7500 | Destroys vector of 56-byte (0x38) elements. Calls each element's destructor via vtable[0] with param 0, then frees the buffer with alignment handling. |
| 0x009B75C0 | 156 | std__vector_64byte__destroy_009b75c0 | Destroys vector of 64-byte (0x40) elements. Calls each element's destructor via vtable[0] with param 0, then frees the buffer with alignment handling. |
| 0x009B7670 | 176 | std__vector_36byte__destroy_009b7670 | Destroys vector of 36-byte (0x24) elements. Calls each element's destructor via vtable[0] with param 0, then frees the buffer with alignment handling. |
| 0x009BC9E0 | 10 | thunk_to_std__Xlength_error_009bc9e0 | Wrapper that calls std::_Xlength_error with vector_too_long message |
| 0x009BC9F0 | 10 | thunk_to_std__Xlength_error_009bc9f0 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x009BCA00 | 10 | thunk_to_std__Xlength_error_009bca00 | Calls std::_Xlength_error with vector_too_long error message |
| 0x009BCA10 | 10 | thunk_to_std__Xlength_error_009bca10 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x009BCA20 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x009BCAF0 | 61 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x009BCBF0 | 34 | memcpy_range_009bcbf0 | Copies memory range [param_1, param_2) to param_3. Returns pointer past end. |
| 0x009BCC20 | 34 | memcpy_range_009bcc20 | Copies memory range [param_1, param_2) to param_3. Returns pointer past end. |
| 0x009BCC50 | 34 | memcpy_range_009bcc50 | Copies memory range [param_1, param_2) to param_3. Returns pointer past end. |
| 0x009BCC80 | 34 | memcpy_range_009bcc80 | Copies memory range [param_1, param_2) to param_3. Returns pointer past end. |
| 0x009BCCB0 | 135 | std__map__recursive_destroy_sprite_nodes_009bccb0 | Recursively destroys map nodes (0x18 bytes each) containing sprite references. For each non-sentinel node: recurses on left subtree, destroys sprite at field[5] via FUN_00af0be0 if non-null, frees node. |
| 0x009BCD40 | 131 | std__map__recursive_destroy_string_nodes_009bcd40 | Recursively destroys map nodes (0x2c bytes each) containing strings. For each non-sentinel node: recurses on left subtree, destroys string, frees node. |
| 0x009BCDD0 | 75 | std__map_int__lower_bound_009bcdd0 | std::map<int,...> lower_bound operation. Walks the red-black tree comparing key at node offset 4*4 with *param_3. Returns iterator (node pointer + found flag + end pointer) in param_2. |
| 0x009BCE20 | 418 | STL_vector_int_resize_grow_009bce20 | Resizes a vector<int> to param_2 elements. Allocates new buffer with 1.5x growth, zero-fills new elements, copies existing data, frees old buffer. Standard MSVC vector resize implementation. |
| 0x009BCFD0 | 418 | STL_vector_int_resize_grow | STL vector<int> resize with growth. Allocates new buffer with 1.5x growth policy, copies existing elements, zero-fills new elements, frees old buffer. Max capacity 0x3fffffff. Element size is 4 bytes (int/pointer). |
| 0x009BD180 | 418 | STL_vector_int_resize_grow_009bd180 | STL vector<int> resize with growth (duplicate instance). Same logic as STL_vector_int_resize_grow but with different exception handler thunks. |
| 0x009BD330 | 418 | STL_vector_int_resize_grow_009bd330 | STL vector<int> resize with growth (duplicate instance). Same logic as STL_vector_int_resize_grow but with different exception handler thunks. |
| 0x009BD5D0 | 28 | _Zero_range<> | STL _Zero_range. Zeroes a memory range using memset from first to last pointer. |
| 0x009BD5F0 | 28 | _Zero_range<> | STL _Zero_range. Zeroes a memory range using memset from first to last pointer. |
| 0x009BD610 | 28 | _Zero_range<> | STL _Zero_range. Zeroes a memory range using memset from first to last pointer. |
| 0x009BD630 | 28 | _Zero_range<> | STL _Zero_range. Zeroes a memory range using memset from first to last pointer. |
| 0x009BD650 | 85 | std__rotate_int_009bd650 | std::rotate for int arrays. Rotates [param_2, param_4) around param_3. Uses three reverse operations (FUN_00e614e1). Returns new position of the original first element in param_1. |
| 0x009BD6B0 | 85 | std__rotate_array_int | STL rotate implementation for int arrays. Rotates elements in range [param_2, param_4) around pivot param_3. Sets *param_1 to the new position of the original first element. Uses swap operations (FUN_00e614e1) for the rotation. |
| 0x009BD710 | 85 | std__rotate_array_int_009bd710 | Identical STL rotate implementation for int arrays. Duplicate of std__rotate_array_int for a different instantiation. |
| 0x009BD770 | 85 | std__rotate_array_int_009bd770 | Identical STL rotate implementation for int arrays. Third duplicate for another instantiation. |
| 0x009BDED0 | 105 | std__map_string__ctor_009bded0 | Constructs an std::map with string values. Allocates 0x2c-byte sentinel node, sets self-referencing pointers and nil flags. Returns initialized map. |
| 0x009BEE30 | 67 | free_map_sentinel_node_2c_009bee30 | Frees a 0x2c-byte map sentinel node if it exists (offset 4 of the param). |
| 0x009BEE80 | 67 | free_map_sentinel_node_40 | Frees a 0x40-byte map sentinel node at offset+4 if it exists. Same pattern as free_map_sentinel_node_2c but for larger nodes. |
| 0x009BF080 | 76 | std__map_sprite__destroy_tree_009bf080 | Destroys an std::map with sprite values. Recursively destroys all sprite nodes, then frees the 0x18-byte sentinel. |
| 0x009BF0E0 | 76 | std__map_string__destroy_and_free | Destroys a std::map with string keys. Recursively destroys all nodes via std__map__recursive_destroy_string_nodes, then frees the sentinel/head node (0x2c bytes). |
| 0x009BF9F0 | 87 | std__map_sprite__destroy_tree_alt_009bf9f0 | Same as std__map_sprite__destroy_tree_009bf080. Destroys all sprite nodes recursively, frees 0x18-byte sentinel. |
| 0x009BFA50 | 87 | std__map_string__destroy_and_free_009bfa50 | Destroys a std::map with string keys (duplicate instance). Same as std__map_string__destroy_and_free. |
| 0x009BFB70 | 129 | STL_vector_int_deallocate | Deallocates an STL vector<int> buffer. Handles aligned allocation (checks if size >= 0x1000 for aligned free). Zeros all three vector fields (data, end, capacity) after freeing. |
| 0x009BFC00 | 129 | STL_vector_int_deallocate_009bfc00 | Deallocates an STL vector<int> buffer (duplicate instance). Handles aligned allocation (checks if size >= 0x1000 for aligned free). Zeros all three vector fields after freeing. |
| 0x009BFC90 | 129 | STL_vector_int_deallocate_009bfc90 | STL vector<int> deallocate: frees the internal buffer and resets begin/end/capacity pointers to 0. Uses security cookie and SEH. |
| 0x009BFD20 | 129 | STL_vector_int_deallocate_009bfd20 | STL vector<int> deallocate: frees the internal buffer and resets begin/end/capacity pointers to 0. Identical pattern to 009bfc90. |
| 0x009C0640 | 290 | std__map_int_string__subscript_009c0640 | std::map<int,string>::operator[]: searches red-black tree for int key. If not found and map is not full (checks against 0x5d1745d limit), allocates new 0x2c-byte node with the key, inserts via Insert_node, and returns pointer to the value (string at offset +5 dwords). |
| 0x009D6C70 | 517 | STL_tree_val__Insert_node_009d6c70 | STL std::_Tree_val::_Insert_node, inserts a node into a red-black tree and rebalances. Library function (VS2019). Matches multiple template instantiations (uint, string, PCTableEntry). |
| 0x009D6E80 | 517 | STL_tree_val__Insert_node_009d6e80 | STL std::_Tree_val::_Insert_node, inserts a node into a red-black tree and rebalances. Library function (VS2019). Duplicate instantiation of same template. |
| 0x009D7370 | 22 | std__any__init_vtable_009d7370 | std::any vtable initializer. Sets vtable pointer from PTR_FUN_01149644 and copies member at offset +4. |
| 0x009D7390 | 22 | std__any__init_vtable_009d7390 | std::any vtable initializer. Sets vtable pointer from PTR_FUN_0114960c and copies member at offset +4. |
| 0x009D73B0 | 22 | std__any__init_vtable_009d73b0 | std::any vtable initializer. Sets vtable pointer from PTR_FUN_0114936c and copies member at offset +4. |
| 0x009D73D0 | 22 | std__any__init_vtable_009d73d0 | std::any vtable initializer. Sets vtable pointer from PTR_FUN_01149484 and copies member at offset +4. |
| 0x009D73F0 | 22 | std__any__init_vtable_009d73f0 | std::any vtable initializer. Sets vtable pointer from PTR_FUN_01149430 and copies member at offset +4. |
| 0x009D7410 | 22 | std__any__init_vtable_009d7410 | std::any vtable initializer. Sets vtable pointer from PTR_FUN_011493c0 and copies member at offset +4. |
| 0x009D7430 | 22 | std__any__init_vtable_009d7430 | std::any vtable initializer. Sets vtable pointer from PTR_FUN_01149388 and copies member at offset +4. |
| 0x009D7450 | 22 | std__any__init_vtable_009d7450 | std::any vtable initializer. Sets vtable pointer from PTR_FUN_011494f4 and copies member at offset +4. |
| 0x009D7470 | 341 | std__any__swap_009d7470 | std::any::swap implementation. Swaps the contained values of two std::any objects. Uses vtable virtual calls for move construction and destruction when either any holds a small-buffer-optimized value. |
| 0x009D75D0 | 341 | std__any__swap_009d75d0 | std::any::swap implementation. Swaps the contained values of two std::any objects. Uses vtable virtual calls for move construction and destruction when either any holds a small-buffer-optimized value. |
| 0x009D7730 | 341 | std__any__swap_009d7730 | std::any::swap implementation. Swaps the contained values of two std::any objects. Uses vtable virtual calls for move construction and destruction when either any holds a small-buffer-optimized value. |
| 0x009D7890 | 341 | std__any__swap_009d7890 | std::any::swap implementation. Swaps the contained values of two std::any objects. |
| 0x009D79F0 | 341 | std__any__swap_009d79f0 | std::any::swap implementation. Swaps the contained values of two std::any objects. |
| 0x009D7B50 | 341 | std__any__swap_009d7b50 | std::any::swap implementation. Swaps the contained values of two std::any objects. |
| 0x009D7CB0 | 341 | std__any__swap_009d7cb0 | std::any::swap implementation. Swaps the contained values of two std::any objects. |
| 0x009D7E10 | 341 | std__any__swap_009d7e10 | std::any::swap implementation. Swaps the contained values of two std::any objects. |
| 0x009D7F70 | 341 | std__any__swap_009d7f70 | std::any::swap implementation. Swaps the contained values of two std::any objects. |
| 0x009D82C0 | 10 | thunk_to_std__Xlength_error_009d82c0 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x009D82D0 | 10 | thunk_to_std__Xlength_error_009d82d0 | Wrapper that calls std::_Xlength_error with vector_too_long message |
| 0x009D82E0 | 10 | thunk_to_std__Xlength_error_009d82e0 | Calls std::_Xlength_error with vector_too_long error message |
| 0x009D82F0 | 10 | thunk_to_std__Xlength_error_009d82f0 | Calls std::_Xlength_error with vector_too_long message |
| 0x009D8300 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x009D8340 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x009D8380 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x009D83C0 | 62 | deallocate | STL allocator::deallocate. Frees memory, handling aligned blocks (>0xFFF bytes) specially. |
| 0x009D8400 | 103 | std__tree__destroy_nodes_009d8400 | Recursively destroys tree nodes (std::_Tree). Traverses left subtree via recursion, then walks right via iteration. Frees each node (0x18 bytes) via operator delete. |
| 0x009D8470 | 103 | std__tree__destroy_nodes_009d8470 | Recursively destroys tree nodes (std::_Tree). Same pattern as 009d8400 but for a different tree instantiation. Frees each node (0x18 bytes). |
| 0x009D84E0 | 445 | std__tree__find_hint_009d84e0 | std::_Tree find with hint for std::set<unsigned int>. Given a hint iterator and a key, finds the correct insertion point. Returns a 3-field result: node pointer, direction (0=left, 1=right, 2=at), and found flag. |
| 0x009D86A0 | 516 | std__tree__find_insert_hint_009d86a0 | std::_Tree find/insert with hint for std::set<unsigned int>. Extended version that handles predecessor/successor comparison for optimal insertion. Falls back to lower_bound search via 009d88b0. |
| 0x009D88B0 | 75 | std__tree__lower_bound_009d88b0 | std::_Tree lower_bound for std::set<unsigned int>. Walks tree from root comparing keys, tracking the last node where key <= search value. Returns result with node, direction, and parent. |
| 0x009D8900 | 142 | linked_list__destroy_with_string_009d8900 | Destroys a singly-linked list. Sets tail to null, iterates each node calling CFmt cleanup, destroying one STL string, then freeing node (0x40 bytes). |
| 0x009D8990 | 154 | linked_list__destroy_with_two_strings_009d8990 | Destroys a singly-linked list. Sets tail to null, iterates each node calling CFmt cleanup, destroying two STL strings, then freeing node (0x5c bytes). |
| 0x009D8B10 | 436 | std__set__range_insert_with_filter_009d8b10 | Iterates a tree range [param_2, param_3), filters nodes via CPacketSerializer bulk_processor, and inserts matching ones into the destination set. Allocates 0x38-byte nodes with string copy. Uses find_hint for insertion. |
| 0x009D9670 | 67 | std__any__delete_small_009d9670 | std::any destructor helper. Frees the heap-allocated object at offset+4 (0xc bytes) if non-null. |
| 0x009D96C0 | 67 | std__any__delete_small_009d96c0 | std::any destructor helper. Frees the heap-allocated object at offset+4 (0xc bytes) if non-null. |
| 0x009D9710 | 67 | std__any__delete_009d9710 | std::any destructor helper. Frees the heap-allocated object at offset+4 (0x38 bytes) if non-null. |
| 0x009D9760 | 67 | std__any__delete_009d9760 | std::any destructor helper. Frees the heap-allocated object at offset+4 (0x40 bytes) if non-null. |
| 0x009D97B0 | 67 | std__any__delete_009d97b0 | std::any destructor helper. Frees the heap-allocated object at offset+4 (0x2c bytes) if non-null. |
| 0x009D9800 | 67 | std__any__delete_009d9800 | std::any destructor helper. Frees the heap-allocated object at offset+4 (0x5c bytes) if non-null. |
| 0x009D9850 | 67 | std__any__delete_009d9850 | std::any destructor helper. Frees the heap-allocated object at offset+4 (0x18 bytes) if non-null. |
| 0x009D98A0 | 78 | std__any__delete_009d98a0 | std::any destructor helper. Frees the heap-allocated object at offset+4 (0xc bytes) if non-null. |
| 0x009D98F0 | 78 | std__any__delete_009d98f0 | std::any destructor helper. Frees heap-allocated object at offset+4 (0xc bytes) if non-null. |
| 0x009D9940 | 129 | std__any__destroy_with_strings_009d9940 | std::any destructor for a type containing 2 STL strings. Destroys strings, then frees heap object (0x38 bytes) at offset+4. |
| 0x009D99D0 | 140 | std__any__destroy_with_fmt_string_009d99d0 | std::any destructor for a type containing CFmt + STL string. Calls CFmt cleanup, then destroys string, then frees heap object (0x40 bytes). |
| 0x009D9A60 | 129 | std__any__destroy_with_fmt_string_009d9a60 | std::any destructor for a type containing CFmt + STL string. Calls CFmt cleanup, destroys string, frees heap object (0x2c bytes). |
| 0x009D9AF0 | 152 | std__any__destroy_with_fmt_two_strings_009d9af0 | std::any destructor for a type containing CFmt + 2 STL strings. Calls CFmt cleanup, destroys both strings, frees heap object (0x5c bytes). |
| 0x009D9B90 | 102 | linked_list__destroy_simple_009d9b90 | Destroys a singly-linked list of simple nodes. Clears head/tail pointers, then walks the list freeing each 0xc-byte node. |
| 0x009D9C10 | 111 | std__set__clear_and_destroy_009d9c10 | Clears and destroys an std::set (tree). Recursively destroys all nodes via std__tree__destroy_nodes_009d8400, then frees the sentinel node (0x18 bytes). |
| 0x009D9C90 | 111 | std__set__clear_and_destroy_009d9c90 | Clears and destroys an std::set (tree). Recursively destroys all nodes via std__tree__destroy_nodes_009d8470, then frees the sentinel node (0x18 bytes). |
| 0x009D9D10 | 78 | std__any__delete_009d9d10 | std::any destructor helper. Frees heap-allocated object at offset+4 (0x18 bytes) if non-null. |
| 0x009D9D60 | 78 | std__any__delete_009d9d60 | std::any destructor helper. Frees heap-allocated object at offset+4 (0x18 bytes) if non-null. |
| 0x009D9DB0 | 165 | linked_list__destroy_with_string_009d9db0 | Destroys a linked list with CFmt+string nodes. Walks list freeing each 0x3c-byte node after cleaning up CFmt and one STL string. Also frees the sentinel/head node. |
| 0x009D9E60 | 177 | linked_list__destroy_with_two_strings_009d9e60 | Destroys a linked list with CFmt+2 strings per node. Walks list freeing each 0x58-byte node after cleaning up CFmt and two STL strings. Also frees the sentinel/head node. |
| 0x009D9F20 | 126 | std__set__clear_and_destroy_009d9f20 | Clears and destroys an std::set (tree). Same as 009d9c10, recursively destroys nodes then frees sentinel. |
| 0x009D9FA0 | 65 | std__set__dtor_wrapper_009d9fa0 | Wrapper that calls std__set__clear_and_destroy_009d9c90 to destroy an std::set. |
| 0x009DA700 | 83 | operator++ | STL red-black tree iterator increment (operator++). Moves to the next in-order node. |
| 0x009DBFD0 | 219 | std__set__insert_uint_009dbfd0 | Inserts an unsigned int into an std::set. Calls _Find_lower_bound to find position, allocates a 0x14-byte tree node if not already present, then calls Insert_node to link it into the RB-tree. |
| 0x009E0BA0 | 517 | STL_tree_insert_node_009e0ba0 | STL std::_Tree_val::_Insert_node. Inserts a new node into a red-black tree, maintains parent pointers, and rebalances via rotations. Handles both left and right child insertion. MSVC VS2019 library code. |
| 0x009E0E70 | 129 | std__vector_int_deallocate | Deallocates std::vector<int> buffer. Handles aligned deallocation for buffers >0xFFF bytes. Zeros out begin/end/capacity pointers. |
| 0x009E0F00 | 92 | std__vector_int_allocate_elements | Allocates memory for vector<int> elements. Multiplies count by 4 (sizeof int). Uses aligned allocation for sizes >0x1000. Throws bad_array_new_length if count >= 0x40000000. |
| 0x009E0F60 | 206 | std__string_find_last_not_of | std::string::find_last_not_of implementation. Builds 256-byte character lookup table from search set (marking each byte as 0x01), then scans backward from position param_3 to find last character NOT in the set. Returns index or -1 (npos). |
| 0x009E1030 | 144 | std__sub_match_to_string | Converts a std::sub_match<const char*> to std::string. Checks the matched flag at offset+8; if matched, copies the character range [begin, end) into the output string. If not matched, returns an empty string. Used by regex match result extraction. |
| 0x009E10C0 | 207 | std__int_to_string | Converts signed integer to std::string. Uses _UIntegral_to_buff to convert digits, prepends '-' for negative values. Initializes output as empty SSO string then assigns the result. |
| 0x009E1190 | 103 | std__tree_destroy_nodes_recursive | Recursively destroys all nodes in a red-black tree. Walks right subtree recursively, then iterates left children, freeing each 0x18-byte node. Stops at sentinel (isNil flag at offset+0xD). |
| 0x009E1200 | 75 | std__tree_lower_bound | std::_Tree lower_bound. Traverses red-black tree comparing key at node offset+0x10 against search key. Returns iterator pointing to first element not less than key. |
| 0x009E13D0 | 67 | std__tree_sentinel_dealloc_a | Deallocates a tree sentinel node (0x18 bytes) if non-null. SEH protected. |
| 0x009E1420 | 67 | std__tree_sentinel_dealloc_b | Deallocates a tree sentinel node (0x18 bytes) if non-null. SEH protected. Variant b. |
| 0x009E1470 | 111 | std__tree_destroy_all_nodes_a | Destroys all nodes in a red-black tree. Iterates left children while recursively destroying right subtrees, frees each 0x18-byte node, then frees the sentinel. |
| 0x009E14F0 | 78 | std__tree_sentinel_dealloc_c | Deallocates a tree sentinel node (0x18 bytes) if non-null. SEH protected. Variant c. |
| 0x009E1540 | 120 | std__tree_destroy_with_resource_cleanup | Destroys tree node with optional resource cleanup. If node exists and has a resource pointer at offset+0x14, calls CResource__release_ref first, then frees the 0x18-byte node. |
| 0x009E15C0 | 78 | std__tree_sentinel_dealloc_d | Deallocates a tree sentinel node (0x18 bytes) if non-null. SEH protected. Variant d. |
| 0x009E1610 | 78 | std__tree_sentinel_dealloc_e | Deallocates a tree sentinel node (0x18 bytes) if non-null. SEH protected. Variant e. |
| 0x009E1660 | 126 | std__tree_destroy_all_nodes_b | Destroys all nodes in a red-black tree variant. Same as tree_destroy_all_nodes_a but different exception handler. Iterates and frees all 0x18-byte tree nodes plus sentinel. |
| 0x009E1990 | 263 | std__map_int_insert_or_find | std::map<int,int> insert-or-find. Walks tree to find key; if not found and size < 0xAAAAAAA, allocates 0x18-byte node, sets key, and inserts via Insert_node. Returns pointer to value field. |
| 0x009E1AA0 | 236 | std__map_int_insert_or_find_with_lower_bound | std::map<int,int> insert-or-find using lower_bound. Finds insertion point via lower_bound, allocates node if key not found, inserts via Insert_node. Returns pointer to value field at node+0x14. |
| 0x009E1B90 | 236 | std__map_int_insert_or_find_with_lower_bound_b | std::map<int,int> insert-or-find variant b. Same logic as insert_or_find_with_lower_bound but for a different map instantiation. Returns pointer to value at node+0x14. |
| 0x009E2D90 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree and rebalances. |
| 0x009E2FA0 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree and rebalances. |
| 0x009E32B0 | 78 | std__tree_find_floor | Red-black tree floor search: finds the last node whose key is <= the search key. Returns iterator to that node, or sentinel if all keys are greater. Used by UIButton to look up the highest state sprite index <= the current button state. |
| 0x009E3580 | 330 | std__vector_0x24_emplace_with_realloc | std::vector emplace with reallocation for 0x24-byte elements. Grows capacity by 1.5x (max 0x71C71C7 elements). Constructs new element at insert position, moves existing elements around it, replaces old buffer. |
| 0x009E3700 | 333 | std__vector_0x24_elem__reallocate_insert_009e3700 | Reallocates a vector of 0x24-byte elements (containing STL strings) to insert a new element. Grows capacity using 1.5x strategy, copies/moves elements around the insertion point, and updates the vector pointers. |
| 0x009E3880 | 208 | std__vector_0x24_elem__uninitialized_move_range_009e3880 | Move-constructs a range of 0x24-byte elements (each containing a 4-int header + STL string + 3 extra fields) from [param_1, param_2) into uninitialized memory at param_3. Transfers string ownership (nullifies source strings). |
| 0x009E3950 | 150 | std__vector_0x24_elem__default_construct_element_009e3950 | Default-constructs a single 0x24-byte element in-place. Zeros out all fields including embedded STL string (sets capacity to 0xF for SSO). |
| 0x009E39F0 | 103 | std__vector_0x24_elem__copy_construct_element_009e39f0 | Copy-constructs a 0x24-byte element at param_2 from source param_3. Copies the embedded STL string via STL_string_copy_construct, then copies 3 trailing fields (byte + 2 ints at offsets 0x18, 0x1C, 0x20). |
| 0x009E3F50 | 90 | std__vector_0x24_elem__destroy_elements_009e3f50 | Destroys all elements in a vector of 0x24-byte structs by iterating from begin to end and calling STL_string_dtor on each element's embedded string. |
| 0x009E3FB0 | 197 | std__vector_0x24_elem__clear_and_free_009e3fb0 | Clears and frees a vector of 0x24-byte elements. Destroys each element's embedded STL string, then frees the backing buffer (with debug heap validation). Resets begin/end/capacity pointers to 0. |
| 0x009E6600 | 208 | std__vector_0x24_elem__replace_buffer_009e6600 | Replaces the internal buffer of a vector of 0x24-byte elements. Destroys all existing elements' strings, frees old buffer, then sets begin/end/capacity to the new buffer (param_2) with param_3 elements and param_4 capacity. |
| 0x009E66E0 | 92 | std__vector_0x24_destroy_range | Destroys a range of 0x24-byte elements by calling STL_string_dtor on each. Iterates from param_1 to param_2 in 0x24 steps. |
| 0x009E6740 | 10 | thunk_to_std__Xlength_error_009e6740 | Calls std::_Xlength_error with vector_too_long error message |
| 0x009E6750 | 95 | std__vector_0x24_allocate_elements | Allocates memory for vector of 0x24-byte elements. Multiplies count by 0x24. Uses aligned allocation for large sizes. Max 0x71C71C7 elements before throwing bad_array_new_length. |
| 0x009E67B0 | 61 | deallocate | STL allocator::deallocate. Frees memory, handling aligned blocks (>0xFFF bytes) specially. |
| 0x009E67F0 | 67 | std__tree_sentinel_dealloc_0x1c | Deallocates tree sentinel node of 0x1C bytes if non-null. SEH protected. |
| 0x009E6840 | 67 | free_0x1c_node_at_offset4_009e6840 | Frees a 0x1C-byte node stored at offset 4 of the struct, if non-null. Used as a cleanup/destructor helper for tree map nodes. |
| 0x009E6890 | 78 | free_0x1c_node_at_offset4_009e6890 | Frees a 0x1C-byte node stored at offset 4 of the struct, if non-null. Cleanup helper for tree map nodes (variant with different SEH label). |
| 0x009E68E0 | 78 | free_0x1c_node_at_offset4_009e68e0 | Frees a 0x1C-byte node stored at offset 4 of the struct, if non-null. Cleanup helper for tree map nodes (variant with different SEH label). |
| 0x009E6930 | 78 | free_0x1c_node_at_offset4_009e6930 | Frees a 0x1C-byte node stored at offset 4 of the struct, if non-null. Cleanup helper for tree map nodes (variant with different SEH label). |
| 0x009E6980 | 78 | free_0x1c_node_at_offset4_009e6980 | Frees a 0x1C-byte node stored at offset 4 of the struct, if non-null. Cleanup helper for tree map nodes (variant with different SEH label). |
| 0x009E6DD0 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree and rebalances. |
| 0x009E6FE0 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree and rebalances. |
| 0x009EAEC0 | 103 | std__map_0x1c__recursive_destroy_nodes_009eaec0 | Recursively destroys all nodes in a red-black tree map with 0x1C-byte nodes. Traverses right subtree recursively, then walks left chain freeing each node. |
| 0x009EAF30 | 103 | std__map_0x1c__recursive_destroy_nodes_b_009eaf30 | Recursively destroys all nodes in a red-black tree map with 0x1C-byte nodes. Same pattern as the other variant with a different SEH label. |
| 0x009EAFA0 | 165 | std__map_0x40__recursive_destroy_nodes_009eafa0 | Recursively destroys all nodes in a red-black tree map with 0x40-byte nodes. Each node has a polymorphic child at offset 0xF (field index 15) that gets destroyed via virtual destructor before the node is freed. |
| 0x009EB050 | 75 | std__map_int__lower_bound_009eb050 | Performs lower_bound search on an int-keyed std::map. Returns iterator struct in param_2 with: [0]=last visited node, [1]=direction flag, [2]=lower_bound result node. |
| 0x009EB0A0 | 75 | std__map_int__lower_bound_b_009eb0a0 | Performs lower_bound search on an int-keyed std::map. Identical pattern to std__map_int__lower_bound (different instantiation). |
| 0x009EB300 | 111 | std__map_0x1c__destroy_all_and_free_sentinel_009eb300 | Destroys all nodes in a 0x1C-byte node map by recursively freeing, then frees the sentinel node itself. |
| 0x009EB380 | 111 | std__map_0x1c__destroy_all_and_free_sentinel_b_009eb380 | Destroys all nodes in a 0x1C-byte node map and frees the sentinel. Variant using destroy_nodes_b. |
| 0x009EB400 | 76 | std__map_0x40__destroy_all_and_free_sentinel_009eb400 | Destroys all nodes in a 0x40-byte node map (with polymorphic children) and frees the sentinel node. |
| 0x009EB460 | 65 | std__map_0x1c__destroy_all_seh_wrapper_009eb460 | SEH wrapper around std__map_0x1c__destroy_all_and_free_sentinel. Sets up exception frame before calling the destroy function. |
| 0x009EB4B0 | 65 | std__map_0x1c__destroy_all_seh_wrapper_b_009eb4b0 | SEH wrapper around std__map_0x1c__destroy_all_and_free_sentinel_b. Sets up exception frame before calling the destroy function. |
| 0x009EB500 | 87 | std__map_0x40__destroy_all_seh_wrapper_009eb500 | SEH wrapper around std__map_0x40__destroy_all_and_free_sentinel. Sets up exception frame before calling the destroy function. |
| 0x009EC3E0 | 75 | std__tree_lower_bound_b | std::_Tree lower_bound variant b. Traverses red-black tree comparing key at node offset+0x10 against search key. Returns iterator pointing to first element not less than key. |
| 0x009EC850 | 223 | std__map_int_insert_or_find_c | std::map<int,int> insert-or-find variant c. Uses lower_bound to find position, allocates 0x18-byte node if key not found, inserts via Insert_node. Returns pointer to value at node+0x14. |
| 0x009EFBE0 | 75 | std__map_lower_bound_009efbe0 | STL map lower_bound implementation. Traverses red-black tree from root (field +4) comparing keys. Returns iterator pointing to first element with key >= param_3. |
| 0x009EFF10 | 67 | std__map_node_dtor_009eff10 | Destructor for a map node. Frees the node memory (0x18 bytes) at field+4 via operator delete. SEH protected. |
| 0x009EFF60 | 78 | std__map_node_dtor_b_009eff60 | Variant B of map node destructor. Frees 0x18 byte node at field+4 via operator delete. SEH protected. |
| 0x009EFFB0 | 78 | std__map_node_dtor_c_009effb0 | Variant C of map node destructor. Frees 0x18 byte node at field+4 via operator delete. SEH protected. |
| 0x009F0000 | 223 | STL_map_insert_or_find_9f0000 | STL map insert-or-find: inserts new 0x18-byte node with key if not found, returns value pointer |
| 0x009F0570 | 517 | std__tree_val__insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree and rebalances. |
| 0x009F67B0 | 34 | memcpy_range_a_009f67b0 | Copies memory range [param_1, param_2) to destination param_3. Returns pointer past last written byte. Used for vector relocation. |
| 0x009F67E0 | 34 | memcpy_range_b_009f67e0 | Copies memory range [param_1, param_2) to destination param_3. Returns pointer past last written byte. Variant B for different vector type. |
| 0x009F6810 | 103 | std__tree__destroy_nodes_recursive_009f6810 | Recursively destroys red-black tree nodes. For each non-nil node, recursively destroys right subtree (field[2]), then frees node (0x18 bytes) and advances to next (field[0]). Continues until hitting nil sentinel (field+0xd != 0). |
| 0x009F6880 | 418 | std__vector_int__reallocate_009f6880 | std::vector<int> reallocation. Grows to max(param_2, 1.5x current capacity). Allocates new buffer, zero-fills new elements, copies existing data, frees old buffer. Throws length_error if > 0x3fffffff elements. |
| 0x009F6A30 | 418 | std__vector_int__reallocate_b_009f6a30 | std::vector<int> reallocation variant B. Same logic as 009f6880 but for a different vector instance/type. Grows capacity, allocates, copies, and frees old buffer. |
| 0x009F6C40 | 28 | _Zero_range<> | STL _Zero_range: fills a memory range with zeros using element-sized strides |
| 0x009F6C60 | 28 | _Zero_range<> | STL _Zero_range: fills a memory range with zeros using element-sized strides |
| 0x009F6C80 | 85 | std__rotate_int_ptr_009f6c80 | std::rotate implementation for int pointers. Rotates range [param_2, param_4) around pivot param_3. Handles edge cases where pivot equals begin or end. Returns new pivot position. |
| 0x009F6CE0 | 85 | std__rotate_int_ptr_b_009f6ce0 | std::rotate variant B for int pointers. Same logic as 009f6c80. |
| 0x009F77D0 | 67 | std__map_node_free_009f77d0 | Frees a 0x18 byte map node at field+4 via operator delete. SEH protected. |
| 0x009F7910 | 111 | std__map__destroy_all_nodes_009f7910 | Destroys entire std::map. Iterates tree from root, recursively destroys child subtrees via std__tree__destroy_nodes_recursive, frees each node (0x18 bytes), then frees the sentinel node. |
| 0x009F7990 | 78 | std__map_node_dtor_variant_a_009f7990 | Map node destructor variant. Frees 0x18 byte node at field+4. SEH protected. |
| 0x009F79E0 | 78 | std__map_node_dtor_variant_b_009f79e0 | Map node destructor variant B. Frees 0x18 byte node at field+4. SEH protected. |
| 0x009F7C10 | 103 | std__forward_list_destroy_0xc_nodes | Destroys all nodes in a forward_list with 0xC-byte nodes. Zeros the tail pointer, walks and frees each node, then frees the header. |
| 0x009F7C80 | 103 | std__forward_list_destroy_0x10_nodes | Destroys all nodes in a forward_list with 0x10-byte nodes. Zeros the tail pointer, walks and frees each node, then frees the header. |
| 0x009F7CF0 | 65 | std__map_destroy_wrapper_009f7cf0 | Wrapper that calls std::map destroy_all_nodes to fully clear a map. SEH protected. |
| 0x009F7D40 | 129 | std__vector_ptr_deallocate_a | Deallocates std::vector pointer buffer. Handles aligned deallocation for buffers >0xFFF bytes. Zeros begin/end/capacity pointers. |
| 0x009F7DD0 | 129 | std__vector_ptr_deallocate_b | Deallocates std::vector pointer buffer (variant b). Same pattern as vector_ptr_deallocate_a. |
| 0x009F8780 | 164 | std__any_clone_and_swap_a | Clones a std::any callback from source (offset 0x24) into destination. Creates local copy via virtual clone, then swaps into target callback object. |
| 0x009F8830 | 164 | std__any_clone_and_swap_b | Clones a std::any callback from source (offset 0x24) into destination (variant b). Same pattern as clone_and_swap_a. |
| 0x009F88E0 | 263 | std__map_int_insert_or_find_d | std::map<int,int> insert-or-find variant d. Same pattern as other insert_or_find functions. Returns pointer to value field. |
| 0x00A02F50 | 22 | callback_functor__init_vtable_00a02f50 | Initializes a callback functor: sets vtable to PTR_FUN_0114e35c and copies target pointer from this+4 into param_2[1]. |
| 0x00A02F70 | 22 | callback_functor__init_vtable_00a02f70 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A02F90 | 22 | callback_functor__init_vtable_00a02f90 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A02FB0 | 22 | callback_functor__init_vtable_00a02fb0 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A02FD0 | 22 | callback_functor__init_vtable_00a02fd0 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A02FF0 | 22 | callback_functor__init_vtable_00a02ff0 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03010 | 22 | callback_functor__init_vtable_00a03010 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03030 | 22 | callback_functor__init_vtable_00a03030 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03050 | 22 | callback_functor__init_vtable_00a03050 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03070 | 22 | callback_functor__init_vtable_00a03070 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03090 | 22 | callback_functor__init_vtable_00a03090 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A030B0 | 22 | callback_functor__init_vtable_00a030b0 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A030D0 | 22 | callback_functor__init_vtable_00a030d0 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A030F0 | 22 | callback_functor__init_vtable_00a030f0 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03110 | 22 | callback_functor__init_vtable_00a03110 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03130 | 22 | callback_functor__init_vtable_00a03130 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03150 | 22 | callback_functor__init_vtable_00a03150 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03170 | 68 | conditional_free_8bytes_00a03170 | If param_2 is nonzero, frees 8 bytes of memory at param_1 via FUN_00e6227f (operator delete). |
| 0x00A031C0 | 68 | conditional_free_8bytes_00a031c0 | If param_2 is nonzero, frees 8 bytes of memory at param_1 via operator delete. |
| 0x00A03210 | 68 | conditional_free_8bytes_00a03210 | If param_2 is nonzero, frees 8 bytes of memory at param_1 via operator delete. |
| 0x00A03260 | 68 | conditional_free_8bytes_00a03260 | If param_2 is nonzero, frees 8 bytes of memory at param_1 via operator delete. |
| 0x00A032B0 | 68 | conditional_free_8bytes_00a032b0 | If param_2 is nonzero, frees 8 bytes of memory at param_1 via operator delete. |
| 0x00A03300 | 68 | conditional_free_8bytes_00a03300 | If param_2 is nonzero, frees 8 bytes of memory at param_1 via operator delete. |
| 0x00A03350 | 68 | conditional_free_8bytes_00a03350 | If param_2 is nonzero, frees 8 bytes of memory at param_1 via operator delete. |
| 0x00A033A0 | 68 | conditional_free_8bytes_00a033a0 | If param_2 is nonzero, frees 8 bytes of memory at param_1 via operator delete. |
| 0x00A033F0 | 68 | conditional_free_8bytes_00a033f0 | If param_2 is nonzero, frees 8 bytes of memory at param_1 via operator delete. |
| 0x00A03440 | 68 | conditional_free_8bytes_00a03440 | If param_2 is nonzero, frees 8 bytes of memory at param_1 via operator delete. |
| 0x00A03490 | 68 | conditional_free_8bytes_00a03490 | If param_2 is nonzero, frees 8 bytes of memory at param_1 via operator delete. |
| 0x00A034E0 | 68 | conditional_free_8bytes_00a034e0 | If param_2 is nonzero, frees 8 bytes of memory at param_1 via operator delete. |
| 0x00A03530 | 68 | conditional_free_8bytes_00a03530 | If param_2 is nonzero, frees 8 bytes of memory at param_1 via operator delete. |
| 0x00A03580 | 68 | conditional_free_8bytes_00a03580 | If param_2 is nonzero, frees 8 bytes of memory at param_1 via operator delete. |
| 0x00A035D0 | 68 | conditional_free_8bytes_00a035d0 | If param_2 is nonzero, frees 8 bytes of memory at param_1 via operator delete. |
| 0x00A03620 | 68 | conditional_free_8bytes_00a03620 | If param_2 is nonzero, frees 8 bytes of memory at param_1 via operator delete. |
| 0x00A03670 | 68 | conditional_free_8bytes_00a03670 | If param_2 is nonzero, frees 8 bytes of memory at param_1 via operator delete. |
| 0x00A03BD0 | 517 | STL_Tree_val__Insert_node | MSVC STL std::_Tree_val::_Insert_node. Inserts a node into a red-black tree (std::set/map). Handles tree rotation and rebalancing after insertion. |
| 0x00A03DE0 | 22 | callback_functor__init_vtable_00a03de0 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03E00 | 22 | callback_functor__init_vtable_00a03e00 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03E20 | 22 | callback_functor__init_vtable_00a03e20 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03E40 | 22 | callback_functor__init_vtable_00a03e40 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03E60 | 22 | callback_functor__init_vtable_00a03e60 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03E80 | 22 | callback_functor__init_vtable_00a03e80 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03EA0 | 22 | callback_functor__init_vtable_00a03ea0 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03EC0 | 22 | callback_functor__init_vtable_00a03ec0 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03EE0 | 22 | callback_functor__init_vtable_00a03ee0 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03F00 | 22 | callback_functor__init_vtable_00a03f00 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03F20 | 22 | callback_functor__init_vtable_00a03f20 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03F40 | 22 | callback_functor__init_vtable_00a03f40 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03F60 | 22 | callback_functor__init_vtable_00a03f60 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03F80 | 22 | callback_functor__init_vtable_00a03f80 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03FA0 | 22 | callback_functor__init_vtable_00a03fa0 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03FC0 | 22 | callback_functor__init_vtable_00a03fc0 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A03FE0 | 22 | callback_functor__init_vtable_00a03fe0 | Callback functor initializer: sets vtable and copies target pointer from this+4. |
| 0x00A043D0 | 10 | thunk_to_std__Xlength_error_00a043d0 | Calls std::_Xlength_error with vector_too_long message |
| 0x00A043E0 | 10 | thunk_to_std__Xlength_error_00a043e0 | Calls std::_Xlength_error with vector_too_long message string |
| 0x00A043F0 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00A04430 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00A04720 | 67 | conditional_free_12bytes_00a04720 | If this+4 is nonzero, frees 0xc bytes via operator delete. |
| 0x00A04770 | 67 | conditional_free_16bytes_00a04770 | If this+4 is nonzero, frees 0x10 bytes via operator delete. |
| 0x00A047C0 | 78 | conditional_free_12bytes_00a047c0 | If this+4 is nonzero, frees 0xc bytes via operator delete. |
| 0x00A04810 | 78 | conditional_free_16bytes_00a04810 | If this+4 is nonzero, frees 0x10 bytes via operator delete. |
| 0x00A04900 | 263 | std__map_int__subscript_or_insert_00a04900 | std::map<int,T> subscript operator. Searches the RB-tree for key *param_2. If found, returns pointer to value. If not found, allocates a 0x18-byte node, inserts it into the tree, and returns pointer to the value field (node+5). Throws on overflow (0xaaaaaaa max). |
| 0x00A04A10 | 83 | operator++ | STL red-black tree iterator prefix increment (operator++). Advances to the in-order successor by traversing right subtree or walking up to parent. |
| 0x00A04A70 | 83 | operator++ | STL red-black tree iterator prefix increment (operator++). Advances to the in-order successor by traversing right subtree or walking up to parent. |
| 0x00A04AD0 | 83 | operator++ | STL red-black tree iterator prefix increment (operator++). Advances to the in-order successor by traversing right subtree or walking up to parent. |
| 0x00A08190 | 78 | std__map_lower_bound | std::map/set RB-tree lower_bound implementation. Searches for key >= *param_3 in the tree rooted at *param_1. Stores result iterator in *param_2. Returns sentinel node if not found. |
| 0x00A081E0 | 78 | std__map_lower_bound_00a081e0 | std::map/set RB-tree lower_bound implementation (duplicate). Searches for key >= *param_3 in the tree rooted at *param_1. Stores result iterator in *param_2. |
| 0x00A08230 | 34 | memcpy_range_to_dest_00a08230 | Copies a range [param_1, param_2) to destination param_3 using memcpy. Returns pointer past end of copied data. |
| 0x00A08260 | 418 | std__vector_int_resize_and_copy | Resizes std::vector<int> to param_2 elements. Allocates new buffer with 1.5x growth, zero-fills new elements, copies old data, frees old buffer. Max 0x3FFFFFFF elements. |
| 0x00A08440 | 28 | _Zero_range<> | STL _Zero_range. Zeroes a memory range using memset from first to last pointer. |
| 0x00A08460 | 85 | std__rotate_int_ptr | std::rotate for int pointers. Rotates range [first, middle, last) using 3 reverse operations. Handles degenerate cases (first==middle, middle==last). Returns iterator to new position of old first element. |
| 0x00A087E0 | 33 | std__any_release_callback_f | Releases std::any callback at offset 9 (variant f, no SEH). Calls virtual destroy if non-null, zeroes pointer. |
| 0x00A08810 | 33 | std__any_release_callback_g | Releases std::any callback at offset 9 (variant g, no SEH). Calls virtual destroy if non-null, zeroes pointer. |
| 0x00A0D9D0 | 68 | delegate_scalar_deleting_dtor_00a0d9d0 | Scalar deleting destructor for 8-byte delegate object. Conditionally frees the allocation if param_2 is nonzero. |
| 0x00A0DA20 | 68 | delegate_scalar_deleting_dtor_00a0da20 | Scalar deleting destructor for 8-byte delegate object. Conditionally frees the allocation if param_2 is nonzero. |
| 0x00A0DA70 | 68 | delegate_scalar_deleting_dtor_00a0da70 | Scalar deleting destructor for 8-byte delegate object. Conditionally frees the allocation if param_2 is nonzero. |
| 0x00A0DAC0 | 68 | delegate_scalar_deleting_dtor_00a0dac0 | Scalar deleting destructor for 8-byte delegate object. Conditionally frees the allocation if param_2 is nonzero. |
| 0x00A0DB10 | 68 | delegate_scalar_deleting_dtor_00a0db10 | Scalar deleting destructor for 8-byte delegate object. Conditionally frees the allocation if param_2 is nonzero. |
| 0x00A0DB60 | 68 | delegate_scalar_deleting_dtor_00a0db60 | Scalar deleting destructor for 8-byte delegate object. Conditionally frees the allocation if param_2 is nonzero. |
| 0x00A0DBB0 | 68 | delegate_scalar_deleting_dtor_00a0dbb0 | Scalar deleting destructor for 8-byte delegate object. Conditionally frees the allocation if param_2 is nonzero. |
| 0x00A0DC00 | 68 | delegate_scalar_deleting_dtor_00a0dc00 | Scalar deleting destructor for 8-byte delegate object. Conditionally frees the allocation if param_2 is nonzero. |
| 0x00A0DC50 | 68 | delegate_scalar_deleting_dtor_00a0dc50 | Scalar deleting destructor for 8-byte delegate object. Conditionally frees the allocation if param_2 is nonzero. |
| 0x00A0DD40 | 68 | delegate_scalar_deleting_dtor_00a0dd40 | Scalar deleting destructor for 8-byte delegate object. Conditionally frees the allocation if param_2 is nonzero. |
| 0x00A0DD90 | 68 | delegate_scalar_deleting_dtor_00a0dd90 | Scalar deleting destructor for 8-byte delegate object. Conditionally frees the allocation if param_2 is nonzero. |
| 0x00A0DDE0 | 68 | delegate_scalar_deleting_dtor_00a0dde0 | Scalar deleting destructor for 8-byte delegate object. Conditionally frees the allocation if param_2 is nonzero. |
| 0x00A0DE30 | 68 | delegate_scalar_deleting_dtor_00a0de30 | Scalar deleting destructor for 8-byte delegate object. Conditionally frees the allocation if param_2 is nonzero. |
| 0x00A0DE80 | 68 | delegate_scalar_deleting_dtor_00a0de80 | Scalar deleting destructor for 8-byte delegate object. Conditionally frees the allocation if param_2 is nonzero. |
| 0x00A0DED0 | 68 | delegate_scalar_deleting_dtor_00a0ded0 | Scalar deleting destructor for 8-byte delegate object. Conditionally frees the allocation if param_2 is nonzero. |
| 0x00A0EA00 | 10 | thunk_to_std__Xlength_error_00a0ea00 | Thunk calling std::_Xlength_error with vector_too_long message |
| 0x00A0EA10 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00A0EA50 | 103 | std__list_string__compare_equal_00a0ea50 | Compares two STL list<string> objects for equality. First checks if sizes match, then iterates both lists in parallel comparing each string element using std::char_traits::eq. Returns true if all elements match. |
| 0x00A0EAC0 | 37 | std__list_string__swap_00a0eac0 | Swaps two STL list<string> objects by exchanging their head pointer (field 0) and size (field 1). Simple 2-field swap, no deep copy needed. |
| 0x00A0F5B0 | 34 | std__copy_memmove | STL _Copy_memmove implementation. Copies contiguous range [first, last) to destination using memcpy. Returns pointer past end of copied data. Used by std::vector during reallocation. |
| 0x00A0F5E0 | 418 | std__vector_ptr__reallocate_and_grow_00a0f5e0 | Reallocates an STL vector<ptr> to at least param_2 elements. Computes new capacity (1.5x growth), allocates aligned buffer, memset-zeroes new elements, memcpy's old data, frees old buffer, updates begin/end/capacity pointers. Throws length_error or bad_alloc on overflow. |
| 0x00A0F7C0 | 28 | _Zero_range<> | STL _Zero_range. Zeroes a memory range using memset from first to last pointer. |
| 0x00A0F7E0 | 85 | std__rotate_ptrs_00a0f7e0 | Rotates a range of pointers. Three swap operations: [first,mid), [mid,last). If first==mid, sets output=last; if mid==last, sets output=first. Otherwise performs three reverse operations and stores resulting midpoint. Used by STL algorithm std::rotate. |
| 0x00A15D00 | 68 | delegate_scalar_deleting_dtor_00a15d00 | Scalar deleting destructor for a delegate object. Calls destructor and optionally frees memory. |
| 0x00A15D50 | 68 | delegate_scalar_deleting_dtor_00a15d50 | Scalar deleting destructor for a delegate object. Calls destructor and optionally frees memory. |
| 0x00A15DA0 | 68 | delegate_scalar_deleting_dtor_00a15da0 | Scalar deleting destructor for a delegate object. Calls destructor and optionally frees memory. |
| 0x00A15DF0 | 68 | delegate_scalar_deleting_dtor_00a15df0 | Scalar deleting destructor for a delegate object. Calls destructor and optionally frees memory. |
| 0x00A15E40 | 68 | delegate_scalar_deleting_dtor_00a15e40 | Scalar deleting destructor for a delegate object. Calls destructor and optionally frees memory. |
| 0x00A15E90 | 68 | delegate_scalar_deleting_dtor_00a15e90 | Scalar deleting destructor for a delegate object. Calls destructor and optionally frees memory. |
| 0x00A15EE0 | 68 | delegate_scalar_deleting_dtor_00a15ee0 | Scalar deleting destructor for a delegate object. Calls destructor and optionally frees memory. |
| 0x00A16070 | 68 | delegate_scalar_deleting_dtor_00a16070 | Scalar deleting destructor for a delegate object. Calls destructor and optionally frees memory. |
| 0x00A168C0 | 10 | thunk_to_std__Xlength_error_00a168c0 | Calls std::_Xlength_error with vector_too_long error message |
| 0x00A168D0 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00A16F70 | 99 | std__pair_string_dtor | Destroys a pair of two std::strings. SEH protected. |
| 0x00A18B30 | 34 | std__copy_range_to_buffer_00a18b30 | Copies a range [param_1, param_2) to destination param_3 using memcpy. Returns pointer past the copied data in destination. |
| 0x00A18B60 | 34 | std__copy_range_to_buffer_00a18b60 | Copies a range [param_1, param_2) to destination param_3 using memcpy. Returns pointer past the copied data in destination. |
| 0x00A18B90 | 34 | std__copy_range_to_buffer_00a18b90 | Copies a range [param_1, param_2) to destination param_3 using memcpy. Returns pointer past the copied data in destination. |
| 0x00A18BC0 | 452 | std__vector_int_emplace_00a18bc0 | STL vector<int> emplace/insert at position. Allocates new buffer with 1.5x growth, copies element, splits existing data around insertion point, frees old buffer. Returns pointer to inserted element. |
| 0x00A18D90 | 418 | std__vector_int_resize_00a18d90 | STL vector<int> resize to param_2 elements. Zero-initializes new elements. Uses 1.5x growth strategy. Max size 0x3FFFFFFF elements (4-byte elements). |
| 0x00A18F40 | 418 | std__vector_ptr_resize_00a18f40 | STL vector<pointer> resize to param_2 elements. Zero-initializes new elements. Uses 1.5x growth strategy. Max size 0x3FFFFFFF elements. |
| 0x00A192A0 | 28 | _Zero_range<> | STL _Zero_range. Zeroes a memory range using memset from first to last pointer. |
| 0x00A192C0 | 28 | _Zero_range<> | STL _Zero_range. Zeroes a memory range using memset from first to last pointer. |
| 0x00A192E0 | 85 | std__rotate_int_ptrs_00a192e0 | STL rotate implementation for int* iterators. Rotates range [param_2, param_4) around param_3. Uses swap_ranges. Returns new middle position. |
| 0x00A19340 | 85 | std__rotate_ptr_ptrs_00a19340 | STL rotate implementation for pointer iterators. Rotates range [param_2, param_4) around param_3. Uses swap_ranges. Returns new middle position. |
| 0x00A1AD60 | 129 | std__vector_free_buffer_00a1ad60 | Frees the backing buffer of an STL vector. Handles aligned allocation cleanup for buffers > 0xFFF bytes. Zeros the begin/end/capacity pointers. |
| 0x00A1ADF0 | 129 | std__vector_free_buffer_00a1adf0 | Frees the backing buffer of an STL vector. Handles aligned allocation cleanup for buffers > 0xFFF bytes. Zeros the begin/end/capacity pointers. |
| 0x00A3B2C0 | 341 | std__any__swap_00a3b2c0 | Swaps two polymorphic wrapper objects (std::any or std::function). Uses SEH. If both store external pointers, swaps them directly. If either stores inline (SBO), uses virtual copy+destroy to safely exchange via temp buffer. |
| 0x00A3B420 | 341 | std__any__swap_00a3b420 | Swaps two polymorphic wrapper objects. Uses SEH. Handles both inline (SBO) and heap-allocated storage with virtual copy+destroy. |
| 0x00A3B580 | 341 | std__any__swap_00a3b580 | Swaps two polymorphic wrapper objects. Uses SEH. Handles both inline (SBO) and heap-allocated storage with virtual copy+destroy. |
| 0x00A3B6E0 | 341 | std__any__swap_00a3b6e0 | Swaps two polymorphic wrapper objects. Uses SEH. Handles both inline (SBO) and heap-allocated storage with virtual copy+destroy. |
| 0x00A3B840 | 341 | std__any__swap_00a3b840 | Swaps two polymorphic wrapper objects. Uses SEH. Handles both inline (SBO) and heap-allocated storage with virtual copy+destroy. |
| 0x00A3BE00 | 10 | thunk_to_std__Xlength_error_00a3be00 | Calls std::_Xlength_error with vector_too_long message |
| 0x00A3BE10 | 10 | thunk_to_std__Xlength_error_00a3be10 | Wrapper that calls std::_Xlength_error with vector_too_long message |
| 0x00A3BE20 | 10 | thunk_to_std__Xlength_error_00a3be20 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x00A3BE30 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00A3BE70 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00A3BEB0 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00A3BEF0 | 103 | std__vector__resize_int_00a3bef0 | Resizes a vector of 4-byte elements (int/ptr). If new size is smaller, truncates. If larger, zero-fills new elements via memset. If exceeds capacity, calls reallocation helper. |
| 0x00A3BF60 | 103 | std__map__destroy_subtree_00a3bf60 | Recursively destroys a red-black tree subtree. For each non-nil node, recursively destroys right child, then iteratively destroys left children. Frees each 0x18-byte node via operator delete. |
| 0x00A3BFD0 | 516 | std__map__find_insert_position_00a3bfd0 | Finds the correct insertion position in a red-black tree (std::map) for a given key. Returns a result struct with: parent node, direction (left=1/right=0), and whether key already exists. Uses integer key comparison. Handles hint-based optimization and falls back to full tree traversal. |
| 0x00A3C1E0 | 75 | std__map__lower_bound_00a3c1e0 | Performs lower_bound search in a red-black tree (std::map) for an integer key. Traverses the BST recording the last node where key <= node.key. Returns result struct with found node, direction flag, and boundary node. |
| 0x00A3C230 | 128 | linked_list__clear_with_two_strings_00a3c230 | Clears a singly-linked list. For each 0x70-byte node, destroys two STL strings then frees the node. Resets list count to 0. |
| 0x00A3C2B0 | 111 | linked_list__clear_with_string_00a3c2b0 | Clears a singly-linked list. For each 0x2c-byte node, destroys one STL string then frees the node. Resets list count to 0. |
| 0x00A3C320 | 111 | linked_list__clear_with_string_00a3c320 | Clears a singly-linked list. For each 0x24-byte node, destroys one STL string then frees the node. Resets list count to 0. |
| 0x00A3D190 | 67 | free_node_0x70_00a3d190 | Frees a 0x70-byte heap node if the pointer at offset+4 is non-null. Used as a deleter for linked list nodes containing two strings. |
| 0x00A3D1E0 | 67 | free_node_0x2c_00a3d1e0 | Frees a 0x2c-byte heap node if the pointer at offset+4 is non-null. Used as a deleter for linked list nodes containing one string. |
| 0x00A3D230 | 67 | free_node_0x24_00a3d230 | Frees a 0x24-byte heap node if the pointer at offset+4 is non-null. |
| 0x00A3D280 | 67 | free_node_0x18_00a3d280 | Frees a 0x18-byte heap node if the pointer at offset+4 is non-null. |
| 0x00A3D460 | 111 | std__map__clear_and_destroy_00a3d460 | Destroys an entire std::map. Iterates from leftmost node, recursively destroys right subtrees via std__map__destroy_subtree, then frees each 0x18-byte node. Finally frees the sentinel/header node. |
| 0x00A3D4E0 | 78 | free_node_0x18_alt_00a3d4e0 | Frees a 0x18-byte heap node if the pointer at offset+4 is non-null. SEH-wrapped variant. |
| 0x00A3D530 | 78 | free_node_0x18_alt2_00a3d530 | Frees a 0x18-byte heap node if the pointer at offset+4 is non-null. SEH-wrapped variant. |
| 0x00A3D580 | 129 | std__vector__dealloc_00a3d580 | Deallocates a std::vector's internal buffer. Computes allocation size from capacity - begin, handles debug heap alignment (>0xFFF gets original ptr from -4 offset + 0x23 alignment). Zeroes all 3 vector pointers after free. |
| 0x00A43E20 | 517 | std__Tree_val__Insert_node_00a43e20 | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00A47D40 | 418 | STL_vector_int__resize_and_copy | Resizes a std::vector<int> to param_2 elements. Allocates new buffer with 1.5x growth factor (capped at 0x3FFFFFFF), copies existing data, zero-fills new elements, frees old buffer. Updates the vector's begin/end/capacity pointers. Throws length_error if size exceeds max. |
| 0x00A47F20 | 28 | _Zero_range<> | STL _Zero_range. Zeroes a memory range using memset from first to last pointer. |
| 0x00A47F40 | 85 | STL_vector_int__rotate_ranges | Rotates elements in a vector using three range swap operations. Handles edge cases where param_2==param_3 (just set result to param_4) or param_3==param_4 (just set result to param_2). Otherwise does three FUN_00e614e1 swaps and calculates the new midpoint. |
| 0x00A4D0C0 | 341 | std__any__swap_variant_00a4d0c0 | Swaps the std::any-like variant at field[9] between two objects. If both hold external pointers, swaps directly. If one or both hold internal (in-situ) storage, uses clone (vtable+4) and destroy (vtable+0x10) to safely swap. |
| 0x00A4D2B0 | 10 | thunk_to_std__Xlength_error_00a4d2b0 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x00A4D2C0 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00A4D300 | 111 | linked_list__clear_nodes_00a4d300 | Clears all nodes from a circular doubly-linked list. Resets tail count to 0, walks from head, destroys STL string in each 0x30-byte node, frees node memory. |
| 0x00A4D370 | 335 | STL_wstring__insert_grow_00a4d370 | STL wstring insert with grow. Grows the wstring buffer using 1.5x growth strategy (min 7 extra). Copies prefix, inserted data, and suffix using memcpy. Handles freeing old buffer for heap-allocated strings. Returns param_1. |
| 0x00A4D4C0 | 222 | linked_list__merge_sort_00a4d4c0 | Merge sort for a circular doubly-linked list. Recursive divide-and-conquer: splits list in half, sorts each, merges by comparing field[9] (sort key). Used for sorting list items. |
| 0x00A4D5A0 | 66 | linked_list__find_by_string_00a4d5a0 | linked_list: find by string 00a4d5a0 |
| 0x00A4D5F0 | 47 | linked_list__advance_iterator_00a4d5f0 | Advances a linked list iterator by param_3 steps. Positive = forward (follow node[0]), negative = backward (follow node[1]). Stores result in *param_1. |
| 0x00A4D7E0 | 67 | linked_list__free_sentinel_00a4d7e0 | Frees the 0x30-byte sentinel node at field+4. SEH-wrapped. Only frees if non-null. |
| 0x00A4D830 | 116 | linked_list__destroy_sentinel_and_string_00a4d830 | Destroys the sentinel node at field+4, including its embedded STL string. Frees the 0x30-byte node. SEH-wrapped. |
| 0x00A4D8B0 | 126 | linked_list__clear_all_nodes_00a4d8b0 | Clears all nodes from a linked list. Resets head/count at field+8/+0xC to 0, walks from tail node, destroys STL string in each 0x28-byte node, frees memory. |
| 0x00A4D930 | 68 | STL_string__dtor_seh_wrapper_00a4d930 | SEH-wrapped STL string destructor. Calls STL_string_dtor on param_1. |
| 0x00A4EBC0 | 10 | thunk_to_std__Xout_of_range_00a4ebc0 | Thunk that calls std::_Xout_of_range with invalid_string_position error |
| 0x00A4F2B0 | 227 | STL_wstring__insert_at_00a4f2b0 | STL wstring insert at position. Inserts param_4 wchars from param_3 at position param_2. If buffer has capacity, shifts existing content and copies in-place. If not, delegates to STL_wstring__insert_grow. Handles overlapping source ranges. |
| 0x00A4F3A0 | 34 | memcpy_range_to_dest_00a4f3a0 | Copies memory from param_1 to param_3, size = param_2 - param_1. Returns end of copied data in param_3. |
| 0x00A4F3D0 | 418 | STL_vector__resize_and_copy_00a4f3d0 | STL vector resize with 1.5x growth. Allocates new buffer, zero-fills new elements, copies old data via memcpy. Frees old buffer. Max capacity 0x3FFFFFFF. Uses aligned allocation for large buffers (>0xFFF). |
| 0x00A4F5B0 | 28 | _Zero_range<> | STL _Zero_range. Zeroes a memory range using memset from first to last pointer. |
| 0x00A4F5D0 | 85 | STL_vector__rotate_range_00a4f5d0 | Rotates a range of vector elements. Three-way swap using FUN_00e614e1 to move block [param_2,param_3) before [param_3,param_4). Returns new position of the original first element. |
| 0x00A54A20 | 341 | std__any_swap_00a54a20 | Swaps two std::any-like objects. If both have external storage, swaps pointers directly. Otherwise uses virtual clone/destroy to handle local/remote storage correctly via vtable calls at offsets +4 (clone) and +0x10 (destroy). |
| 0x00A54C00 | 10 | thunk_to_std__Xlength_error_00a54c00 | Forwards to std::_Xlength_error for vector allocation failure |
| 0x00A54C10 | 62 | deallocate | STL allocator deallocate function. Frees memory for an array of elements (count * 4 bytes). Handles over-aligned allocations (>0xFFF bytes) by looking up the original allocation pointer at offset -4. |
| 0x00A550A0 | 67 | free_member_buffer_00a550a0 | Frees a 0x10-byte buffer at this+4 if non-null, via FUN_00e6227f (operator delete). |
| 0x00A550F0 | 78 | free_member_buffer_alt_00a550f0 | Frees a 0x10-byte buffer at this+4 if non-null (same pattern as free_member_buffer_00a550a0, different SEH setup). |
| 0x00A56660 | 34 | memcpy_range_00a56660 | Copies a memory range [param_1, param_2) to param_3 via memcpy. Returns pointer past the end of destination. |
| 0x00A56690 | 452 | std__vector_int__emplace_grow_00a56690 | std::vector<int> growth/emplace helper. Reallocates with 1.5x growth, inserts a new element at param_2 position, copies existing elements around insertion point via memcpy. Handles aligned allocation for large buffers. Max capacity 0x3fffffff. |
| 0x00A58470 | 22 | callback_functor_init_a_00a58470 | Initializes a callback functor. Sets vtable to PTR_FUN_01154348 and copies the owner pointer from this+4. |
| 0x00A58490 | 22 | callback_functor_init_b_00a58490 | Initializes a callback functor. Sets vtable to PTR_FUN_01154364 and copies the owner pointer from this+4. |
| 0x00A584B0 | 68 | callback_functor_scalar_deleting_dtor_a_00a584b0 | Scalar deleting destructor for 8-byte callback functor. Frees if param_2 != 0. |
| 0x00A58500 | 68 | callback_functor_scalar_deleting_dtor_b_00a58500 | Scalar deleting destructor for 8-byte callback functor (variant b). Frees if param_2 != 0. |
| 0x00A58590 | 22 | callback_functor_init_c_00a58590 | Initializes a callback functor. Sets vtable to PTR_FUN_01154348 and copies the owner pointer from this+4. |
| 0x00A585B0 | 22 | callback_functor_init_d_00a585b0 | Initializes a callback functor. Sets vtable to PTR_FUN_01154364 and copies the owner pointer from this+4. |
| 0x00A585F0 | 10 | thunk_to_std__Xlength_error_00a585f0 | Calls std::_Xlength_error with vector_too_long message |
| 0x00A58600 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00A58880 | 129 | STL_vector_ptr__clear_and_free | Clears and frees a std::vector of pointers. If the buffer is non-null, calculates the allocation size (capacity - begin, aligned to 4 bytes), frees it via FUN_00e6227f, and zeroes begin/end/capacity pointers. |
| 0x00A592C0 | 93 | std__any_emplace_00a592c0 | std::any emplace constructor. Sets vtable to PTR_FUN_01154878, stores value at [1], sets storage pointer at [9] to self (small object optimization). |
| 0x00A59320 | 93 | std__any_emplace_00a59320 | std::any emplace constructor variant. Same pattern as 00a592c0 with different vtable. |
| 0x00A59380 | 93 | std__any_emplace_00a59380 | std::any emplace constructor variant. Same pattern as 00a592c0 with different vtable. |
| 0x00A593E0 | 93 | std__any_emplace_00a593e0 | std::any emplace constructor variant. Same pattern as 00a592c0 with different vtable. |
| 0x00A59440 | 93 | std__any_emplace_00a59440 | std::any emplace constructor variant. Same pattern as 00a592c0 with different vtable. |
| 0x00A594A0 | 93 | std__any_emplace_00a594a0 | std::any emplace constructor variant. Same pattern as 00a592c0 with different vtable. |
| 0x00A59500 | 93 | std__any_emplace_00a59500 | std::any emplace constructor variant. Same pattern as 00a592c0 with different vtable. |
| 0x00A59560 | 34 | memcpy_range_00a59560 | Copies memory range [param_1, param_2) to param_3 via memcpy. Returns pointer past end of destination. |
| 0x00A59590 | 34 | memcpy_range_00a59590 | Copies memory range [param_1, param_2) to param_3 via memcpy. Returns pointer past end of destination. Same pattern as 00a59560. |
| 0x00A595C0 | 452 | std__vector_int__emplace_grow_00a595c0 | std::vector<int> growth/emplace helper. Same pattern as 00a56690: reallocates with 1.5x growth, inserts element, copies existing data around insertion point. |
| 0x00A59790 | 418 | std__vector_int__resize_00a59790 | std::vector<int> resize. Allocates new buffer with 1.5x growth, zero-fills new elements, copies existing data, frees old buffer. Max capacity 0x3fffffff. |
| 0x00A59970 | 28 | _Zero_range<> | STL _Zero_range. Zeroes a memory range using memset from first to last pointer. |
| 0x00A59990 | 85 | std__rotate_int_ptr_00a59990 | std::rotate for int pointers. Rotates range [param_2, param_4) around pivot param_3. Uses FUN_00e614e1 for swapping sub-ranges. Returns iterator to new position of original first element. |
| 0x00A59E10 | 33 | std__any_reset_00a59e10 | Resets/destroys a std::any object. If storage pointer at [9] is non-null, calls virtual destroy method at vtable+0x10, then sets [9] to null. |
| 0x00A59E40 | 92 | std__any_reset_seh_00a59e40 | Resets/destroys a std::any object with SEH protection. Same as std__any_reset but wrapped in exception handler. |
| 0x00A59EA0 | 129 | std__vector_int__clear_and_free_00a59ea0 | Clears and frees a std::vector<int>. Frees the underlying buffer (handling aligned allocation), then zeros the begin/end/capacity pointers. |
| 0x00A59F30 | 164 | std__function_copy_construct_00a59f30 | Copy constructor for std::function. Clones the callable from source (param_2+0x24) via virtual clone, then swaps into the destination via std__function_swap. |
| 0x00A64320 | 22 | callback_functor_init_00a64320 | Initializes a callback functor. Sets vtable to PTR_FUN_0115477c and copies owner pointer from this+4. |
| 0x00A64340 | 22 | callback_functor_init_00a64340 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A64360 | 22 | callback_functor_init_00a64360 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A64380 | 22 | callback_functor_init_00a64380 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A643A0 | 22 | callback_functor_init_00a643a0 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A643C0 | 22 | callback_functor_init_00a643c0 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A643E0 | 22 | callback_functor_init_00a643e0 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A64400 | 22 | callback_functor_init_00a64400 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A64420 | 22 | callback_functor_init_00a64420 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A64440 | 22 | callback_functor_init_00a64440 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A64460 | 22 | callback_functor_init_00a64460 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A64480 | 22 | callback_functor_init_00a64480 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A644A0 | 22 | callback_functor_init_00a644a0 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A644C0 | 22 | callback_functor_init_00a644c0 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A644E0 | 22 | callback_functor_init_00a644e0 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A64500 | 22 | callback_functor_init_00a64500 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A64520 | 22 | callback_functor_init_00a64520 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A64540 | 22 | callback_functor_init_00a64540 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A64560 | 22 | callback_functor_init_00a64560 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A64580 | 22 | callback_functor_init_00a64580 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A645A0 | 22 | callback_functor_init_00a645a0 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A645C0 | 22 | callback_functor_init_00a645c0 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A645E0 | 22 | callback_functor_init_00a645e0 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A64600 | 22 | callback_functor_init_00a64600 | Initializes a callback functor. Sets vtable and copies owner pointer. |
| 0x00A64620 | 68 | callback_functor_scalar_deleting_dtor_00a64620 | Scalar deleting destructor for 8-byte callback functor. Frees if param_2 != 0. |
| 0x00A64670 | 68 | callback_functor_scalar_deleting_dtor_00a64670 | Scalar deleting destructor for 8-byte callback functor. Frees if param_2 != 0. |
| 0x00A646C0 | 68 | callback_functor_scalar_deleting_dtor_00a646c0 | Scalar deleting destructor for 8-byte callback functor. Frees if param_2 != 0. |
| 0x00A64710 | 68 | callback_functor_scalar_deleting_dtor_00a64710 | Scalar deleting destructor for a callback functor. Calls destructor and optionally frees memory. |
| 0x00A64760 | 68 | callback_functor_scalar_deleting_dtor_00a64760 | Scalar deleting destructor for 8-byte callback functor. Frees if param_2 != 0. |
| 0x00A647B0 | 68 | callback_functor_scalar_deleting_dtor_00a647b0 | Scalar deleting destructor for 8-byte callback functor. Frees if param_2 != 0. |
| 0x00A64800 | 68 | callback_functor_scalar_deleting_dtor_00a64800 | Scalar deleting destructor for 8-byte callback functor. Frees if param_2 != 0. |
| 0x00A64850 | 68 | callback_functor_scalar_deleting_dtor_00a64850 | Scalar deleting destructor for 8-byte callback functor. Frees if param_2 != 0. |
| 0x00A648A0 | 68 | callback_functor_scalar_deleting_dtor_00a648a0 | Scalar deleting destructor for 8-byte callback functor. Frees if param_2 != 0. |
| 0x00A648F0 | 68 | callback_functor_scalar_deleting_dtor_00a648f0 | Scalar deleting destructor for 8-byte callback functor. Frees if param_2 != 0. |
| 0x00A64940 | 68 | callback_functor_scalar_deleting_dtor_00a64940 | Scalar deleting destructor for 8-byte callback functor. Frees if param_2 != 0. |
| 0x00A64990 | 68 | callback_functor_scalar_deleting_dtor_00a64990 | Scalar deleting destructor for 8-byte callback functor. Frees if param_2 != 0. |
| 0x00A649E0 | 68 | callback_functor_scalar_deleting_dtor_00a649e0 | Scalar deleting destructor for 8-byte callback functor. Frees if param_2 != 0. |
| 0x00A64A30 | 68 | callback_functor_scalar_deleting_dtor_00a64a30 | Scalar deleting destructor for 8-byte callback functor. Frees if param_2 != 0. |
| 0x00A65540 | 341 | std__function_swap_00a65540 | Swaps two std::function objects. Uses small-buffer optimization: if both have external storage, swaps pointers directly. Otherwise, uses copy-construct + destroy pattern via vtable methods (clone at vtable+4, destroy at vtable+0x10). |
| 0x00A65820 | 10 | thunk_to_std__Xlength_error_00a65820 | Forwards to std::_Xlength_error with vector_too_long error message |
| 0x00A65830 | 10 | thunk_to_std__Xlength_error_00a65830 | Calls std::_Xlength_error with vector_too_long error message |
| 0x00A65840 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00A65880 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00A65C70 | 129 | STL_vector_ptr__clear_and_free_00a65c70 | Clears and frees a std::vector of pointers. Same pattern as STL_vector_ptr__clear_and_free: frees buffer, zeroes begin/end/capacity. Duplicate at different address for UITabControl context. |
| 0x00A67FC0 | 34 | memcpy_range_00a67fc0 | Copies a memory range [param_1, param_2) to destination param_3 using memcpy. Returns pointer past the end of copied data. |
| 0x00A67FF0 | 34 | memcpy_range_00a67ff0 | Copies a memory range [param_1, param_2) to destination param_3 using memcpy. Returns pointer past the end of copied data. |
| 0x00A68020 | 418 | std__vector_reallocate_00a68020 | std::vector reallocation with growth factor 1.5x. Allocates new buffer, zero-fills new elements, copies old data, frees old buffer. Throws length_error if param_2 > 0x3FFFFFFF. |
| 0x00A681D0 | 418 | std__vector_reallocate_00a681d0 | std::vector reallocation with growth factor 1.5x. Allocates new buffer, zero-fills new elements, copies old data, frees old buffer. Throws length_error if param_2 > 0x3FFFFFFF. |
| 0x00A683E0 | 28 | _Zero_range<> | STL _Zero_range. Zeroes a memory range using memset from first to last pointer. |
| 0x00A68400 | 28 | _Zero_range<> | STL _Zero_range. Zeroes a memory range using memset from first to last pointer. |
| 0x00A68420 | 85 | std__rotate_int_ptr_00a68420 | Rotates elements in a range of int pointers. Handles trivial cases (first==mid, mid==last), otherwise performs 3 reverse operations to rotate. Returns pointer to new position of first element. |
| 0x00A68480 | 85 | std__rotate_int_ptr_00a68480 | Rotates elements in a range of int pointers. Same as 00a68420 but different instantiation. |
| 0x00A68B20 | 33 | std__function_destroy_00a68b20 | Destroys a std::function object stored at this+9. Calls the destroy method (vtable+0x10), passing whether storage is external. Nulls the pointer. |
| 0x00A68B50 | 33 | std__function_destroy_00a68b50 | Destroys a std::function object stored at this+9. Same pattern as 00a68b20. |
| 0x00A68B80 | 92 | std__function_destroy_seh_00a68b80 | Destroys a std::function with SEH frame. Same logic as std__function_destroy but wrapped in SEH. |
| 0x00A68BE0 | 92 | std__function_destroy_seh_00a68be0 | Destroys a std::function with SEH frame. Same logic as std__function_destroy but wrapped in SEH. |
| 0x00A68CD0 | 129 | std__vector_free_buffer_00a68cd0 | Frees the std::vector internal buffer. Handles aligned allocation (>0xFFF) by looking up original pointer. Sets all three vector pointers (begin/end/capacity) to 0. |
| 0x00A68D60 | 129 | std__vector_free_buffer_00a68d60 | Frees the std::vector internal buffer. Same as 00a68cd0 - different instantiation. |
| 0x00A6F2E0 | 10 | thunk_to_std__Xlength_error_00a6f2e0 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x00A6F2F0 | 10 | thunk_to_std__Xlength_error_00a6f2f0 | Calls std::_Xlength_error with vector_too_long error message |
| 0x00A6F300 | 62 | std__allocator_deallocate_00a6f300 | std::allocator::deallocate - frees memory allocated for elements. Multiplies count by 4 (sizeof uint/pointer). For large allocations (>0xFFF bytes), retrieves the original allocation pointer from offset -4 and adds alignment padding (0x23 bytes). |
| 0x00A6F340 | 62 | std__allocator_deallocate_00a6f340 | std::allocator::deallocate - frees memory allocated for elements. Multiplies count by 4 (sizeof uint/pointer). For large allocations (>0xFFF bytes), retrieves the original allocation pointer from offset -4 and adds alignment padding (0x23 bytes). Duplicate of 00a6f300 for a different template instantiation. |
| 0x00A6F380 | 111 | linked_list__clear_with_string_dtor | Clears a linked list, destroying each 0x28-byte node that contains a std::string. Zeroes the count, iterates the forward list, calls STL_string_dtor on each node's string, then frees each node. |
| 0x00A6F5E0 | 67 | linked_list_node__free_0x28 | Frees a 0x28-byte linked list node. Checks if the node pointer at offset +4 is non-null before freeing. |
| 0x00A6F630 | 116 | linked_list_node__dtor_string_and_free | Destroys a linked list node containing a std::string. First destroys the string (STL_string_dtor) if the node exists, then frees the 0x28-byte node. |
| 0x00A6F6B0 | 68 | STL_string_dtor_wrapper | Simple wrapper around STL_string_dtor. Destroys a std::string object passed as parameter. |
| 0x00A70C20 | 452 | STL_vector_int__insert_and_grow | Inserts an element into a std::vector<int> at position param_2, growing if needed. Allocates new buffer with 1.5x growth factor, copies data before and after insertion point, places new value from param_3. Frees old buffer. Updates begin/end/capacity. Returns pointer to inserted element. |
| 0x00A70DF0 | 118 | std__map_int__destroy_tree | Destroys a std::map<int,...> tree structure. Iterates the tree's linked nodes (checking the sentinel flag at offset +0xD), recursively destroys child subtrees via FUN_00a70e70, frees each 0x18-byte node. Also frees the root sentinel node. |
| 0x00A70E70 | 103 | std__map_int__recursive_destroy_subtree | Recursively destroys a subtree of a std::map. For each non-sentinel node (flag at +0xD is 0), recursively destroys the child subtree (offset +2), then frees the 0x18-byte node and advances to the next sibling. |
| 0x00A70EE0 | 418 | STL_vector_int__resize_and_copy_00a70ee0 | Resizes a std::vector<int> to param_2 elements with 1.5x growth. Copies existing data, zero-fills new elements. Duplicate of STL_vector_int__resize_and_copy at different address. |
| 0x00A710C0 | 28 | _Zero_range<> | STL _Zero_range. Zeroes a memory range using memset from first to last pointer. |
| 0x00A710E0 | 85 | STL_vector_int__rotate_ranges_00a710e0 | Rotates elements in a vector using three swap operations. Duplicate of STL_vector_int__rotate_ranges. |
| 0x00A715A0 | 66 | std__map_int__destroy_tree_wrapper | Simple wrapper around std__map_int__destroy_tree with SEH frame setup. Destroys a map tree structure. |
| 0x00A715F0 | 129 | STL_vector_ptr__clear_and_free_00a715f0 | Clears and frees a std::vector of pointers. Frees the buffer, zeroes begin/end/capacity. Duplicate at different address for ShopListCtrl context. |
| 0x00A76DC0 | 10 | thunk_to_std__Xlength_error_00a76dc0 | Throws std::length_error for vector overflow condition |
| 0x00A76DD0 | 10 | thunk_to_std__Xlength_error_00a76dd0 | Calls std::_Xlength_error with vector_too_long message, never returns |
| 0x00A76DE0 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00A76E20 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00A76E60 | 238 | std__map__recursive_copy_tree | Recursively copies a std::map tree. For each non-sentinel node, allocates a 0x18-byte node, copies key/value (offsets +4/+5), recursively copies left and right subtrees. Returns pointer to the root of the copied tree. |
| 0x00A76FE0 | 103 | std__map__recursive_destroy_subtree_0x18 | Recursively destroys a std::map subtree. For each non-sentinel node (flag at +0xD is 0), recursively destroys child subtree at offset +2, frees 0x18-byte node, advances to next sibling. Same pattern as std__map_int__recursive_destroy_subtree. |
| 0x00A770D0 | 144 | std__map__move_construct | Move-constructs a std::map. Copies the comparator, allocates a sentinel node, then swaps the root pointer and count with the source map (effectively moving ownership). |
| 0x00A773D0 | 67 | linked_list_node__free_0x14 | Frees a 0x14-byte linked list node if the pointer at offset +4 is non-null. |
| 0x00A77420 | 67 | linked_list_node__free_0x18 | Frees a 0x18-byte linked list node if the pointer at offset +4 is non-null. |
| 0x00A77470 | 124 | linked_list_node__dtor_map_and_free_0x14 | Destroys a 0x14-byte linked list node containing a std::map tree at offset +0xC. First destroys the map tree, then frees the node. |
| 0x00A77510 | 129 | STL_vector_ptr__clear_and_free_00a77510 | Clears and frees a std::vector of pointers. Frees the buffer, zeroes begin/end/capacity. Duplicate at different address for UIListMenu context. |
| 0x00A775A0 | 178 | STL_vector_map__clear_and_free | Clears and frees a std::vector of std::map objects. Iterates each 8-byte element, calls std__map_int__destroy_tree on each, then frees the vector buffer and zeroes begin/end/capacity. |
| 0x00A78DF0 | 153 | std__vector_copy_range_ctor | std::vector copy constructor from range [param_2, param_3). Allocates buffer, memcpy's source data. Element size determined by range difference. |
| 0x00A79050 | 105 | std__vector_destroy_range_3c | Destroys elements in a vector range. Iterates from param_1 to param_2 in 0x3C-byte steps, calling string destructors for each element. |
| 0x00A790C0 | 104 | std__vector_destroy_range_1c | Destroys elements in a vector range. Iterates from param_1 to param_2 in 0x1C-byte steps, calling destructors for each element. |
| 0x00A79130 | 166 | std__list_insert_node_00a79130 | Inserts a new node into a std::list. Allocates 0xC-byte node, copies value from param_3. Links into doubly-linked list before param_2. Max size 0x15555555. |
| 0x00A791E0 | 581 | std__vector_emplace_grow_3c | std::vector grow-and-emplace for 0x3C-byte elements. Calculates new capacity (1.5x growth), allocates new buffer, constructs new element, relocates existing elements, frees old buffer. Max 0x4444444 elements. |
| 0x00A79430 | 464 | std__vector_emplace_grow_1c | std::vector grow-and-emplace for 0x1C-byte elements. 1.5x growth policy, max 0x9249249 elements. Allocates new buffer, constructs element, relocates existing data, frees old buffer. |
| 0x00A79630 | 337 | std__vector_emplace_grow_4 | std::vector grow-and-emplace for 4-byte (pointer) elements. 1.5x growth, max 0x3FFFFFFF. Uses memcpy for relocation since elements are trivially copyable. |
| 0x00A797A0 | 137 | std__vector_relocate_elements_3c | Relocates 0x3C-byte vector elements from [param_1,param_2) to destination at param_3 using move construction. Destroys leftover elements at destination end. |
| 0x00A79830 | 117 | std__element_copy_construct_3c | Copy-constructs a 0x3C-byte element. Copies 3 scalar fields then copy-constructs two embedded strings (at offset 12 and 36). |
| 0x00A798B0 | 103 | std__element_copy_construct_1c | Copy-constructs a 0x1C-byte element. Calls vector copy ctor for first sub-element, copies scalar at offset 0xC, then copies second sub-element at offset 0x10. |
| 0x00A79920 | 152 | std__vector_copy_ctor | std::vector copy constructor. Initializes empty vector, allocates buffer matching source size, memcpy's all data from source. |
| 0x00A799C0 | 204 | std__element_move_construct_3c | Move-constructs a 0x3C-byte element with two embedded strings. Copies scalar fields, moves string data by stealing internal buffer pointers, resets source strings to empty state (capacity 0xF). |
| 0x00A79D30 | 129 | std__vector_free_buffer_00a79d30 | Frees a std::vector's internal buffer and resets begin/end/capacity pointers to 0. Handles aligned allocation (4KB+ buffers have offset stored at ptr-4). |
| 0x00A79DD0 | 86 | std__element_destroy_1c | Destroys a single 0x1C-byte element by calling two sub-object destructors. |
| 0x00A79E30 | 87 | std__element_destroy_3c | Destroys a single 0x3C-byte element by calling two string destructors. |
| 0x00A86C40 | 22 | std__vector_destroy_range_3c_wrapper | Wrapper that forwards to std__vector_destroy_range_3c with reordered parameters. |
| 0x00A86C60 | 22 | std__vector_destroy_range_1c_wrapper | Wrapper that forwards to std__vector_destroy_range_1c with reordered parameters. |
| 0x00A86E90 | 174 | std__vector_clear_and_free_1c_00a86e90 | Clears and frees a std::vector with 0x1C-byte elements. Destroys all elements, frees buffer (handles aligned allocations), resets to empty. |
| 0x00A86F50 | 176 | std__vector_relocate_range_1c | Relocates a range of 0x1C-byte elements. For each element, copy-constructs to new location (copies 2 sub-vectors + 1 scalar). Destroys leftover elements. |
| 0x00A87000 | 174 | std__vector_copy_range_1c | Copies a range of 0x1C-byte elements (each containing 2 sub-vectors + 1 scalar at +0xC). Destroys leftover elements at end. |
| 0x00A870B0 | 10 | thunk_to_std__Xlength_error_00a870b0 | Calls std::_Xlength_error with vector_too_long error message |
| 0x00A870C0 | 10 | thunk_to_std__Xlength_error_00a870c0 | Forwards to std::_Xlength_error with vector_too_long message |
| 0x00A870D0 | 10 | thunk_to_std__Xlength_error_00a870d0 | Wrapper calling std::_Xlength_error for vector allocation failure |
| 0x00A870E0 | 92 | std__vector_allocate_aligned_4byte | Allocates aligned buffer for a std::vector of 4-byte elements. Multiplies count by 4. For >=4096 bytes uses 32-byte aligned allocation with stored original pointer. Max 0x40000000 elements. |
| 0x00A87140 | 102 | std__vector_allocate_aligned_1c | Allocates aligned buffer for std::vector of 0x1C-byte elements. For >=4096 bytes uses 32-byte aligned allocation. Max 0x924924A elements. |
| 0x00A87220 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00A87260 | 64 | std__allocator_deallocate_3c | Deallocates buffer for std::vector of 0x3C-byte elements. Handles aligned allocations (>=4096 bytes have stored original pointer at offset -4). |
| 0x00A872B0 | 67 | std__allocator_deallocate_1c | Deallocates buffer for std::vector of 0x1C-byte elements. Handles aligned allocations (>=4096 bytes have stored original pointer at offset -4). |
| 0x00A874B0 | 108 | std__deque_find_element | Searches a std::deque for an element matching *param_2. Iterates from offset param_1[3] through param_1[3]+param_1[4] elements. Returns packed result with found flag in low byte. |
| 0x00A87520 | 116 | std__tree_copy_and_update_bounds | Copies a std::tree (red-black tree) from source to destination. Copies all nodes via std__tree_copy_nodes_0x18, updates size, and recalculates leftmost/rightmost bounds. |
| 0x00A875A0 | 34 | std__uninitialized_copy_buffer | Copies a contiguous memory range via memcpy. Copies from param_1 to param_3, length is (param_2 - param_1). Returns end pointer in destination. |
| 0x00A875D0 | 34 | std__uninitialized_copy_buffer_00a875d0 | Copies a contiguous memory range via memcpy. Copies from param_1 to param_3, length is (param_2 - param_1). Returns end pointer in destination. |
| 0x00A87600 | 34 | memcpy_and_return_end_00a87600 | Copies memory from param_1 to param_3 for (param_2 - param_1) bytes. Returns pointer past the end of the destination. |
| 0x00A87630 | 452 | std__vector_insert_and_grow_4byte | STL vector insert-and-grow operation for 4-byte elements. Inserts a new element at given position, reallocating with 1.5x growth factor if capacity is exceeded. Copies existing elements around the insertion point. |
| 0x00A87800 | 103 | std__tree_destroy_nodes_20bytes | Recursively destroys STL tree nodes of 0x14 (20) bytes each. Walks the linked list, recursively processes child at offset+8, then frees each node. Stops at sentinel node (byte 0xD != 0). |
| 0x00A87870 | 103 | std__tree_destroy_nodes_24bytes | Recursively destroys STL tree nodes of 0x18 (24) bytes each. Walks the linked list, recursively processes child at offset+8, then frees each node. Stops at sentinel node (byte 0xD != 0). |
| 0x00A878E0 | 128 | std__tree_destroy_nodes_with_string_44bytes | Recursively destroys STL tree nodes of 0x2C (44) bytes. For each node, recursively processes child at offset+8, destroys an embedded STL string, then frees the node. Stops at sentinel (byte 0xD != 0). |
| 0x00A87960 | 103 | std__tree_destroy_nodes_24bytes_00a87960 | Recursively destroys STL tree nodes of 0x18 (24) bytes each. Identical pattern to other tree destroy functions. Stops at sentinel node. |
| 0x00A879D0 | 103 | std__tree_destroy_nodes_24bytes_00a879d0 | Recursively destroys STL tree nodes of 0x18 (24) bytes each. Identical pattern to other tree destroy functions. Stops at sentinel node. |
| 0x00A87A40 | 103 | std__tree_destroy_nodes_24bytes_00a87a40 | Recursively destroys STL tree nodes of 0x18 (24) bytes each. Identical pattern to other tree destroy functions. Stops at sentinel node. |
| 0x00A87AB0 | 103 | std__tree_destroy_nodes_68bytes | Recursively destroys STL tree nodes of 0x44 (68) bytes each. Walks linked list, recursively processes child at offset+8, then frees each node. Stops at sentinel node. |
| 0x00A87B20 | 99 | _Find_last<> | STL _Find_last. Searches backward through a range to find the last matching element. |
| 0x00A87B90 | 75 | std__tree_lower_bound_int_00a87b90 | STL RB-tree lower_bound for integer keys. Walks tree comparing key at node+0x10 against search key. Returns iterator result (current, found-flag, bound-node). |
| 0x00A87BE0 | 75 | _Find_lower_bound<> | STL _Find_lower_bound. Binary search helper that finds the lower bound position in a sorted tree. |
| 0x00A87C30 | 75 | _Find_lower_bound<> | STL _Find_lower_bound. Binary search helper that finds the lower bound position in a sorted tree. |
| 0x00A87C80 | 75 | _Find_lower_bound<> | STL _Find_lower_bound. Binary search helper that finds the lower bound position in a sorted tree. |
| 0x00A87CD0 | 129 | std__tree_lower_bound_by_string | STL RB-tree lower_bound for string keys. Walks tree comparing STL string at node+0x10 against search string using std::char_traits::compare. Returns iterator result. |
| 0x00A87D60 | 75 | std__tree_lower_bound_int_00a87d60 | STL RB-tree lower_bound for integer keys. Duplicate instance operating on a different tree. Same pattern as std__tree_lower_bound_int. |
| 0x00A87DB0 | 75 | std__tree_lower_bound_int | STL std::_Tree lower_bound implementation for integer keys. Traverses BST comparing key at node+0x10 against search key. |
| 0x00A87F80 | 37 | _Uninitialized_value_construct_n<struct_std::_Parallelism_allocator<unsigned_int>_> | STL _Uninitialized_value_construct_n. Zero-initializes a range of elements using memset. |
| 0x00A87FB0 | 28 | _Zero_range<> | STL _Zero_range. Zeroes a memory range using memset from first to last pointer. |
| 0x00A87FD0 | 519 | std__unordered_map_emplace_00a87fd0 | std::unordered_map emplace operation. Hashes key with FNV-1a, finds bucket via _Find_last, allocates new node if not found. Handles rehashing when load factor exceeded. Throws std::_Xlength_error if at max capacity. |
| 0x00A881E0 | 97 | fill<> | STL std::fill for 4-byte pointer ranges. Uses unrolled 4-element loop for large ranges, then fills remainder one at a time. |
| 0x00A88250 | 240 | std__tree_emplace_24bytes | STL tree emplace for nodes of 0x18 (24) bytes. Uses _Find_lower_bound to locate insertion point, allocates node, calls Insert_node. Returns iterator+bool pair. |
| 0x00A88350 | 234 | std__tree_emplace_20bytes | STL tree emplace for nodes of 0x14 (20) bytes. Uses _Find_lower_bound to locate insertion point, allocates node, calls Insert_node. Returns iterator+bool pair. |
| 0x00A88440 | 34 | memcpy_range_to_dest_00a88440 | Copies memory range [param_1, param_2) to param_3. Returns pointer past the end of copied data. |
| 0x00A88BC0 | 67 | std__tree_free_node_12bytes | STL tree node deallocator. Frees a 0xC (12) byte tree node if non-null. |
| 0x00A88C10 | 67 | std__tree_free_node_20bytes | STL tree node deallocator. Frees a 0x14 (20) byte tree node if non-null. |
| 0x00A88C60 | 67 | std__tree_free_node_36bytes | STL tree node deallocator. Frees a 0x24 (36) byte tree node if non-null. |
| 0x00A88CB0 | 67 | std__tree_free_node_12bytes_00a88cb0 | STL tree node deallocator. Frees a 0xC (12) byte tree node if non-null. |
| 0x00A88D00 | 67 | std__tree_free_node_20bytes_00a88d00 | STL tree node deallocator. Frees a 0x14 (20) byte tree node if non-null. |
| 0x00A88D50 | 67 | std__tree_free_node_24bytes | STL tree node deallocator. Frees a 0x18 (24) byte tree node if non-null. |
| 0x00A88DA0 | 67 | std__tree_free_node_44bytes | STL tree node deallocator. Frees a 0x2C (44) byte tree node if non-null. |
| 0x00A88DF0 | 67 | std__tree_free_node_24bytes_00a88df0 | STL tree node deallocator. Frees a 0x18 (24) byte tree node if non-null. |
| 0x00A88E40 | 67 | std__tree_free_node_24bytes_00a88e40 | STL tree node deallocator. Frees a 0x18 (24) byte tree node if non-null. |
| 0x00A88E90 | 67 | std__tree_free_node_24bytes_00a88e90 | STL tree node deallocator. Frees a 0x18 (24) byte tree node if non-null. |
| 0x00A88EE0 | 67 | std__tree_free_node_68bytes | STL tree node deallocator. Frees a 0x44 (68) byte tree node if non-null. |
| 0x00A88F30 | 131 | std__list_clear_and_free_12byte_nodes | Clears a std::list with 0xC byte nodes. Calls vector deallocate, then iterates linked list freeing each node, then frees sentinel. |
| 0x00A88FC0 | 125 | std__vector_deallocate | Deallocates std::vector internal buffer. Handles aligned allocation (>0xFFF bytes check backing pointer at buf[-4]). Resets begin/end/capacity to 0. |
| 0x00A89050 | 78 | std__list_free_sentinel_12bytes | Frees a std::list sentinel node (0xC bytes) if non-null. Used in list destructor. |
| 0x00A890A0 | 78 | std__list_free_sentinel_20bytes | Frees a std::list sentinel node (0x14 bytes) if non-null. Used in list destructor. |
| 0x00A890F0 | 113 | std__tree_node_destroy_with_string_36bytes | Destroys a std::_Tree node (0x24 bytes) that contains an embedded std::string. Calls STL_string_dtor first, then frees the node. |
| 0x00A89170 | 78 | std__list_free_sentinel_12bytes_00a89170 | Frees a std::list sentinel node (0xC bytes) if non-null. Duplicate instance for different container type. |
| 0x00A891C0 | 111 | std__tree_clear_and_destroy_24byte_nodes_a | Clears a std::_Tree with 0x18 (24) byte nodes. Iterates all nodes calling std__tree_destroy_nodes_24bytes to recursively clean up, frees each node, then frees sentinel. |
| 0x00A89240 | 111 | std__tree_clear_and_destroy_24byte_nodes_b | Clears a std::_Tree with 0x18 (24) byte nodes. Iterates all nodes calling std__tree_destroy_nodes_24bytes_00a87a40 to recursively clean up, frees each node, then frees sentinel. |
| 0x00A892C0 | 111 | std__tree_clear_and_destroy_68byte_nodes | Clears a std::_Tree with 0x44 (68) byte nodes. Iterates all nodes calling std__tree_destroy_nodes_68bytes to recursively clean up, frees each node, then frees sentinel. |
| 0x00A89340 | 76 | std__tree_clear_and_destroy_44byte_nodes | Clears a std::_Tree with 0x2C (44) byte nodes containing embedded strings. Calls std__tree_destroy_nodes_with_string_44bytes to recursively destroy children, then frees sentinel. |
| 0x00A893A0 | 111 | std__tree_clear_and_destroy_24byte_nodes_c | Clears a std::_Tree with 0x18 byte nodes. Iterates all nodes calling FUN_00a87960 to clean up node data, frees each 0x18 node, then frees sentinel. |
| 0x00A89420 | 111 | std__tree_clear_and_destroy_24byte_nodes_d | Clears a std::_Tree with 0x18 byte nodes. Iterates all nodes calling FUN_00a879d0 to clean up node data, frees each 0x18 node, then frees sentinel. |
| 0x00A894A0 | 111 | std__tree_clear_and_destroy_20byte_nodes | Clears a std::_Tree with 0x14 byte nodes. Iterates all nodes calling FUN_00a87800 to clean up node data, frees each 0x14 node, then frees sentinel. |
| 0x00A89520 | 78 | std__list_free_sentinel_20bytes_00a89520 | Frees a std::list sentinel node (0x14 bytes) if non-null. |
| 0x00A89570 | 78 | std__list_free_sentinel_24bytes | Frees a std::list sentinel node (0x18 bytes) if non-null. |
| 0x00A895C0 | 113 | std__tree_node_destroy_with_string_44bytes | Destroys a std::_Tree node (0x2C bytes) that contains an embedded std::string. Calls STL_string_dtor first, then frees the node. |
| 0x00A89640 | 78 | std__list_free_sentinel_24bytes_00a89640 | Frees a std::list sentinel node (0x18 bytes) if non-null. |
| 0x00A89690 | 78 | std__list_free_sentinel_24bytes_00a89690 | Frees a std::list sentinel node (0x18 bytes) if non-null. |
| 0x00A896E0 | 78 | std__list_free_sentinel_24bytes_00a896e0 | Frees a std::list sentinel node (0x18 bytes) if non-null. |
| 0x00A89730 | 78 | std__list_free_sentinel_68bytes | Frees a std::list sentinel node (0x44 bytes) if non-null. |
| 0x00A89780 | 78 | std__list_free_sentinel_20bytes_00a89780 | Frees a std::list sentinel node (0x14 bytes) if non-null. |
| 0x00A897D0 | 78 | std__list_free_sentinel_24bytes_00a897d0 | Frees a std::list sentinel node (0x18 bytes) if non-null. |
| 0x00A89820 | 78 | std__list_free_sentinel_44bytes | Frees a std::list sentinel node (0x2C bytes) if non-null. |
| 0x00A89870 | 78 | std__list_free_sentinel_24bytes_00a89870 | Frees a std::list sentinel node (0x18 bytes) if non-null. |
| 0x00A898C0 | 78 | std__list_free_sentinel_24bytes_00a898c0 | Frees a std::list sentinel node (0x18 bytes) if non-null. |
| 0x00A89910 | 78 | std__list_free_sentinel_24bytes_00a89910 | Frees a std::list sentinel node (0x18 bytes) if non-null. |
| 0x00A89960 | 78 | std__list_free_sentinel_68bytes_00a89960 | Frees a std::list sentinel node (0x44 bytes) if non-null. |
| 0x00A89A80 | 103 | std__list_clear_and_free_12byte_nodes_00a89a80 | Clears a std::list with 0xC (12) byte nodes. Walks linked list freeing each node, then frees sentinel. |
| 0x00A89AF0 | 131 | std__list_clear_and_free_36byte_string_nodes | Clears a std::list with 0x24 (36) byte nodes that contain embedded std::strings. Destroys each string before freeing node, then frees sentinel. |
| 0x00A89B80 | 103 | std__list_clear_and_free_12byte_nodes_00a89b80 | Clears a std::list with 0xC (12) byte nodes. Walks linked list freeing each node, then frees sentinel. |
| 0x00A89BF0 | 65 | std__tree_dtor_wrapper_24byte_a | SEH wrapper around std::_Tree destructor for 24-byte nodes (variant a). |
| 0x00A89C40 | 65 | std__tree_dtor_wrapper_24byte_b | SEH wrapper around std::_Tree destructor for 24-byte nodes (variant b). |
| 0x00A89C90 | 65 | std__tree_dtor_wrapper_68byte | SEH wrapper around std::_Tree destructor for 68-byte nodes. |
| 0x00A89CE0 | 87 | std__tree_clear_and_destroy_44byte_nodes_00a89ce0 | Clears a std::_Tree with 0x2C byte nodes. Recursively destroys child nodes then frees sentinel. |
| 0x00A89D40 | 65 | std__tree_dtor_wrapper_24byte_c | SEH wrapper around std::_Tree destructor for 24-byte nodes (variant c). |
| 0x00A89D90 | 65 | std__tree_dtor_wrapper_24byte_d | SEH wrapper around std::_Tree destructor for 24-byte nodes (variant d). |
| 0x00A89DE0 | 65 | std__string_dtor_wrapper | SEH wrapper around STL_string_dtor. Used as cleanup handler in exception frames. |
| 0x00A89E30 | 65 | std__tree_dtor_wrapper_20byte | SEH wrapper around std::_Tree destructor for 20-byte nodes. |
| 0x00A89ED0 | 65 | std__list_dtor_wrapper_12byte | SEH wrapper around std__list_clear_and_free_12byte_nodes. |
| 0x00A89F20 | 129 | std__vector_deallocate_if_nonempty | Deallocates a std::vector buffer if non-null. Handles aligned alloc (>0xFFF check). Resets begin/end/capacity to 0. |
| 0x00A89FB0 | 177 | std__vector_destroy_strings_and_deallocate | Destroys a std::vector<std::string>. Iterates elements calling STL_string_dtor for each 0x20-byte string, then deallocates vector buffer. |
| 0x00A8A070 | 65 | std__string_dtor_wrapper_00a8a070 | SEH wrapper around STL_string_dtor. Duplicate cleanup handler for a different exception frame. |
| 0x00A8A6C0 | 68 | std__vector_string_dtor_wrapper | SEH wrapper around std__vector_destroy_strings_and_deallocate. |
| 0x00A8A710 | 223 | std__tree_insert_or_find_24byte | std::_Tree insert-or-find for 0x18 (24) byte nodes. Searches tree via FUN_00a87d60, inserts new node if key not found (throws at max 0xAAAAAAA). Returns pointer to value field (node+0x14). |
| 0x00A8A7F0 | 83 | operator++ | STL red-black tree iterator prefix increment (operator++). Advances to the in-order successor by traversing right subtree or walking up to parent. |
| 0x00A8A850 | 83 | operator++ | STL red-black tree iterator prefix increment (operator++). Advances to the in-order successor by traversing right subtree or walking up to parent. |
| 0x00A8A8B0 | 83 | operator++ | STL red-black tree iterator prefix increment (operator++). Advances to the in-order successor by traversing right subtree or walking up to parent. |
| 0x00A8A910 | 83 | operator++ | STL red-black tree iterator prefix increment (operator++). Advances to the in-order successor by traversing right subtree or walking up to parent. |
| 0x00A8A970 | 83 | operator++ | STL red-black tree iterator prefix increment (operator++). Advances to the in-order successor by traversing right subtree or walking up to parent. |
| 0x00A8A9D0 | 83 | operator++ | STL red-black tree iterator prefix increment (operator++). Advances to the in-order successor by traversing right subtree or walking up to parent. |
| 0x00A8AA30 | 83 | operator++ | STL red-black tree iterator prefix increment (operator++). Advances to the in-order successor by traversing right subtree or walking up to parent. |
| 0x00A8AA90 | 83 | operator++ | STL red-black tree iterator prefix increment (operator++). Advances to the in-order successor by traversing right subtree or walking up to parent. |
| 0x00A8AAF0 | 132 | std__tree_iterator_increment | std::_Tree in-order iterator increment (operator++). From current node, descends to leftmost of right subtree, or walks up to first unvisited ancestor. Used for BST in-order traversal. |
| 0x00AADBE0 | 235 | STL_vector_resize_fill_uint | STL vector resize with fill. If param_2 <= current size, fills existing elements with param_3. Otherwise allocates new buffer of param_2*4 bytes, frees old, fills all elements with param_3. Max size check at 0x3FFFFFFF elements. |
| 0x00AADCD0 | 704 | std__tree_extract_and_rebalance_0x14 | STL red-black tree node extraction and rebalancing. Removes a node from the tree, fixes parent/child pointers, and performs rotations to maintain red-black properties. Decrements node count. Uses 0x14-byte nodes with rotations via FUN_00ab04a0 and FUN_00ab07a0. |
| 0x00AADF90 | 704 | std__tree_extract_and_rebalance_0x18 | STL red-black tree node extraction and rebalancing for 0x18-byte nodes. Same algorithm as the 0x14 variant but uses FUN_00ab0500 and FUN_00ab0800 for rotations. |
| 0x00AAE250 | 704 | std__tree_extract_and_rebalance_00aae250 | STL red-black tree node extraction and rebalancing. Same algorithm as other variants, uses FUN_00ab0560 and FUN_00ab0860 for rotations. |
| 0x00AAE510 | 704 | std__tree_extract_and_rebalance_00aae510 | STL red-black tree node extraction and rebalancing. Template instantiation variant. |
| 0x00AAE7D0 | 704 | std__tree_extract_and_rebalance_00aae7d0 | STL red-black tree node extraction and rebalancing. Template instantiation variant. |
| 0x00AAEA90 | 704 | std__tree_extract_and_rebalance_00aaea90 | STL red-black tree node extraction and rebalancing. Template instantiation variant. |
| 0x00AAED50 | 704 | std__tree_extract_and_rebalance_00aaed50 | STL red-black tree node extraction and rebalancing. Template instantiation variant. |
| 0x00AAF010 | 704 | std__tree_extract_and_rebalance_00aaf010 | STL red-black tree node extraction and rebalancing. Template instantiation variant. |
| 0x00AAF2D0 | 426 | std__unordered_map_rehash_00aaf2d0 | Rehashes an unordered map/set. Resizes bucket array to next power of 2 >= param_2, recalculates bucket assignments using FNV-1a hash on 4-byte keys. Moves nodes between buckets by relinking the doubly-linked list. |
| 0x00AAF630 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00AAF840 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00AAFA50 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00AAFC60 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00AAFE70 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00AB0080 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00AB0290 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00AB04A0 | 84 | std__tree_rotate_left | Left rotation for red-black tree. Rotates param_2 node left, promoting its right child. Updates parent, child, and root pointers. |
| 0x00AB0500 | 84 | std__tree_rotate_left_00ab0500 | Left rotation for red-black tree. Identical code to std__tree_rotate_left but for a different tree instantiation. |
| 0x00AB0560 | 84 | std__tree_rotate_left_00ab0560 | Left rotation for red-black tree. Identical code for another tree instantiation. |
| 0x00AB05C0 | 84 | std__tree_rotate_left_00ab05c0 | Left rotation for red-black tree. Identical code for another tree instantiation. |
| 0x00AB0620 | 84 | std__tree_rotate_left_00ab0620 | Left rotation for red-black tree. Identical code for another tree instantiation. |
| 0x00AB0680 | 84 | std__tree_rotate_left_00ab0680 | Left rotation for red-black tree. Identical code for another tree instantiation. |
| 0x00AB06E0 | 84 | std__tree_rotate_left_00ab06e0 | Left rotation for red-black tree. Identical code for another tree instantiation. |
| 0x00AB0740 | 84 | std__tree_rotate_left_00ab0740 | Left rotation for red-black tree. Identical code for another tree instantiation. |
| 0x00AB07A0 | 88 | std__tree_rotate_right | Right rotation for red-black tree. Rotates param_2 node right, promoting its left child. Updates parent, child, and root pointers. |
| 0x00AB0800 | 88 | std__tree_rotate_right_00ab0800 | Right rotation for red-black tree. Template instantiation variant. |
| 0x00AB0860 | 88 | std__tree_rotate_right_00ab0860 | Right rotation for red-black tree. Template instantiation variant. |
| 0x00AB08C0 | 88 | std__tree_rotate_right_00ab08c0 | Right rotation for red-black tree. Template instantiation variant. |
| 0x00AB0920 | 88 | std__tree_rotate_right_00ab0920 | Right rotation for red-black tree. Template instantiation variant. |
| 0x00AB0980 | 88 | std__tree_rotate_right_00ab0980 | Right rotation for red-black tree. Template instantiation variant. |
| 0x00AB09E0 | 88 | std__tree_rotate_right_00ab09e0 | Right rotation for red-black tree. Template instantiation variant. |
| 0x00AB0A40 | 88 | std__tree_rotate_right_00ab0a40 | Right rotation for red-black tree. Template instantiation variant. |
| 0x00AB0AA0 | 478 | std__unordered_map_erase_range_00ab0aa0 | Erases a range of elements [param_2, param_3) from an unordered map. Frees 0xc-byte nodes, decrements count, and updates bucket pointers. Uses FNV-1a hash to find correct buckets for relinking. |
| 0x00AB0C80 | 10 | thunk_to_std__Xlength_error_00ab0c80 | Forwards to std::_Xlength_error for deque overflow handling |
| 0x00AB0C90 | 10 | thunk_to_std__Xlength_error_00ab0c90 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x00AB0CA0 | 95 | STL_aligned_alloc_0x18 | Allocates param_1 * 0x18 bytes with 32-byte alignment for large allocations (>=0x1000 bytes). Returns the aligned pointer with the original allocation address stored at ptr-4. |
| 0x00AB0D00 | 115 | std__tree_clear_0x44_nodes | Clears all nodes from an STL tree, freeing 0x44-byte nodes. Iterates from the leftmost node, calls FUN_00a87ab0 to clean up each node's key, frees the node memory, then resets the tree head to empty state. |
| 0x00AB0D80 | 115 | std__tree_clear_0x14_nodes | Clears all nodes from an STL tree, freeing 0x14-byte nodes. Iterates from the leftmost node, calls FUN_00a87800 to clean up each node's key, frees the node memory, then resets the tree head to empty state. |
| 0x00AB0E00 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00AB0E40 | 286 | std__tree_erase_range_by_key | Erases a range of tree nodes matching a key value. Finds lower and upper bounds for the key, counts matching nodes, then either clears the entire tree (if range covers all) or removes individual nodes using tree extract+rebalance, freeing 0x14-byte nodes. |
| 0x00AB0F60 | 95 | std__list_remove_node | Removes a node (param_3) from a doubly-linked list. Unlinks the node, decrements count at param_1+4, frees the 0xc-byte node. Writes the successor node's address to *param_2. |
| 0x00AB0FD0 | 106 | std__map_find_string | Finds an exact match in a string-keyed std::map. Performs lower_bound lookup then verifies key equality via std::char_traits::compare. Returns iterator to found node, or end() if not found. |
| 0x00AB1150 | 165 | std__list_push_back_int | Pushes an integer value to the back of a doubly-linked list. Allocates a 0xc-byte node, sets the data field, links it at the end. Throws if list exceeds 0x15555555 elements. |
| 0x00AB5310 | 241 | STL_tree__copy_node_recursive | Recursively copies a binary tree (STL red-black tree). Allocates 0x1C-byte nodes, copies key/color from source. Recursively copies left and right subtrees. Used by map/set copy constructors. |
| 0x00AB5420 | 103 | STL_tree__destroy_nodes_postorder | Post-order recursive destruction of STL tree nodes. Traverses right subtree first, then frees current node (0x28 bytes each), continues with left child iteratively. Stops at sentinel nodes (byte 0xd != 0). |
| 0x00AB5490 | 169 | STL_tree__destroy_nodes_with_nested_map | Post-order recursive destruction of tree nodes that contain nested maps. For each node: destroys right subtree recursively, then destroys nested map at node+0x14 via STL_map_destroy_subtree, frees the nested header (0x20 bytes), and frees the node itself (0x1C bytes). |
| 0x00AB5540 | 75 | STL_tree__lower_bound_by_int_key | STL tree lower_bound search by integer key. Traverses binary search tree comparing key at node offset 0x10 against search key. Returns iterator struct with: found node, direction flag (0=right, 1=left), and closest >= node. |
| 0x00AB5590 | 228 | STL_vector__grow_ptr_array | STL vector grow/reserve for pointer-sized (4-byte) elements. Computes new capacity as max(requested, old_capacity * 1.5), capped at 0x3FFFFFFF. Allocates new buffer, memsets new portion to 0, copies existing data, then replaces internal pointers. |
| 0x00AB56A0 | 460 | STL_vector__grow_36byte_elements | STL vector grow/reserve for 0x24-byte (36 decimal) elements. Standard capacity growth (1.5x or requested size). Allocates aligned memory for large allocations. Initializes new elements via FUN_00abc860, copies existing via FUN_00abc900. |
| 0x00AB5880 | 28 | _Zero_range<> | STL _Zero_range. Zeroes a memory range using memset from first to last pointer. |
| 0x00AB58A0 | 251 | STL_tree__copy_ctor_with_fixup | Copy constructor for an STL tree/map. Copies header, allocates 0x20-byte sentinel node, recursively copies all tree nodes via CRsmModel__copy_tree_node. Then fixes up leftmost and rightmost pointers by traversing to tree extremes. |
| 0x00AB5FC0 | 67 | STL_tree__free_header_12byte | Frees a 0xC-byte STL tree/list header node if it exists (offset +4 non-null check). |
| 0x00AB6010 | 67 | STL_tree__free_header_40byte | Frees a 0x28-byte (40 decimal) STL tree header node if it exists (offset +4 non-null check). |
| 0x00AB6060 | 78 | STL_tree__free_header_12byte_00ab6060 | Frees a 0xC-byte STL tree/list header node if it exists. Similar to STL_tree__free_header_12byte but different calling convention. |
| 0x00AB60B0 | 111 | STL_tree__destroy_all_and_free_header | Destroys all nodes in an STL tree via STL_tree__destroy_nodes_postorder (post-order traversal freeing 0x28-byte nodes), then frees the 0x28-byte tree header itself. |
| 0x00AB6130 | 84 | STL_map__destroy_subtree_and_free_header_20byte | Destroys an STL map subtree via STL_map_destroy_subtree, then frees the 0x20-byte header node. Null-safe (checks offset+4 for existence). |
| 0x00AB6190 | 78 | STL_tree__free_header_40byte_00ab6190 | Frees a 0x28-byte STL tree header if it exists. Variant with different stack cookie handling from STL_tree__free_header_40byte. |
| 0x00AB61E0 | 78 | STL_tree__free_header_40byte_00ab61e0 | Frees a 0x28-byte STL tree header if it exists. Another variant of the 40-byte tree header deallocation. |
| 0x00AB6230 | 103 | linked_list__destroy_all_nodes_12byte | Destroys all nodes in a singly-linked list. Zeroes the tail pointer, then iterates through the list freeing each 0xC-byte node. Finally frees the list header itself. |
| 0x00AB62A0 | 65 | STL_tree__destroy_wrapper | Wrapper that calls STL_tree__destroy_all_and_free_header within an SEH frame. |
| 0x00AB62F0 | 151 | STL_vector__free_36byte_buffer | Frees the backing buffer of an STL vector with 0x24-byte (36 decimal) elements. Handles aligned memory (>0xFFF bytes checks stored original pointer at buf[-4]). Zeroes the vector's begin/end/capacity pointers. |
| 0x00AB6390 | 129 | STL_vector__free_32byte_buffer | Frees the backing buffer of an STL vector with 0x20-byte (32 decimal) elements. Handles aligned memory deallocation for large buffers. Zeroes begin/end/capacity pointers. |
| 0x00AB6940 | 65 | STL_vector__free_32byte_wrapper | Wrapper that calls STL_vector__free_32byte_buffer within an SEH frame. |
| 0x00AB77A0 | 105 | STL_vector__resize_32byte_elements | Resizes an STL vector of 0x20-byte (32 decimal) elements. If new size < current, truncates. If new size > current but within capacity, extends via FUN_00abc8a0. Returns pointer to element at (new_end - param_2). |
| 0x00ABC2B0 | 257 | STL_vector__reallocate_16byte_elements | Reallocates STL vector for 0x10-byte (16 decimal) elements. Frees old buffer (handles aligned memory), allocates new buffer with 1.5x growth. Sets begin/end/capacity pointers. |
| 0x00ABC3C0 | 278 | STL_vector__reallocate_20byte_elements | Reallocates STL vector for 0x14-byte (20 decimal) elements. Frees old buffer (handles aligned memory), allocates new with 1.5x growth. Sets begin/end/capacity pointers. |
| 0x00ABC620 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00ABC940 | 10 | thunk_to_std__Xlength_error_00abc940 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x00ABCB30 | 61 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00ABCB70 | 165 | linked_list__push_back | Pushes an element to the back of a doubly-linked list. Allocates 0xC-byte node, stores data pointer at [2], increments count at [1]. Inserts before the sentinel. Throws length_error if list at max (0x15555555). |
| 0x00ABCC20 | 149 | STL_vector__resize_36byte_elements | Resizes STL vector of 0x24-byte (36 decimal) elements. Truncates if smaller, grows with STL_vector__grow_36byte_elements if beyond capacity, or memsets new elements to zero if within capacity. |
| 0x00ABCCC0 | 34 | memcpy_range_to_dest_00abccc0 | Copies memory range [param_1, param_2) to param_3 via memcpy. Returns end pointer (param_3 + size). Generic range copy utility. |
| 0x00ABCCF0 | 34 | memcpy_range_to_dest_00abccf0 | Copies memory range [param_1, param_2) to param_3 via memcpy. Returns end pointer. Duplicate of memcpy_range_to_dest. |
| 0x00ABCD20 | 34 | memcpy_range_to_dest_00abcd20 | Copies memory range [param_1, param_2) to param_3 via memcpy. Returns end pointer. Duplicate of memcpy_range_to_dest. |
| 0x00ABCD50 | 276 | STL_vector__insert_ptr_element | Inserts a single pointer-sized element into an STL vector at position param_2. Allocates new buffer with 1.5x growth, copies before/after segments around insertion point. Returns pointer to inserted element. |
| 0x00ABCE90 | 461 | STL_vector__grow_12byte_elements | Grows/reallocates STL vector for 0xC-byte (12 decimal) elements. Standard 1.5x capacity growth with aligned allocation for large buffers. Initializes new elements via FUN_00ac3b10, copies existing via memcpy. |
| 0x00ABD070 | 450 | STL_vector__grow_84byte_elements | Grows STL vector for 0x54-byte (84 decimal) elements. Standard 1.5x capacity growth with aligned allocation. Initializes new elements via FUN_00ac3a70, copies existing via FUN_00ac3b40. |
| 0x00ABD240 | 493 | STL_vector__grow_156byte_elements | Grows STL vector for 0x9C-byte (156 decimal) elements. Standard 1.5x capacity growth with aligned allocation. Initializes new elements via FUN_00ac3aa0, copies existing via FUN_00ac3ba0. |
| 0x00ABD440 | 499 | STL_vector__grow_56byte_elements | Grows STL vector for 0x38-byte (56 decimal) elements. Standard 1.5x capacity growth with aligned allocation. Initializes new elements via FUN_00ac3ad0, copies existing via memcpy. |
| 0x00ABDA10 | 148 | STL_vector__free_84byte_buffer | Frees STL vector backing buffer for 0x54-byte (84 decimal) elements. Handles aligned memory (checks stored pointer at buf[-4] for large allocations). Zeroes begin/end/capacity. |
| 0x00ABDAB0 | 153 | STL_vector__free_156byte_buffer | Frees STL vector backing buffer for 0x9C-byte (156 decimal) elements. Handles aligned memory deallocation. Zeroes begin/end/capacity. |
| 0x00ABDB50 | 159 | STL_vector__free_56byte_buffer | Frees STL vector backing buffer for 0x38-byte (56 decimal) elements. Handles aligned memory deallocation. Zeroes begin/end/capacity. |
| 0x00ABDC00 | 150 | STL_vector__free_12byte_buffer | Frees STL vector backing buffer for 0xC-byte (12 decimal) elements. Handles aligned memory deallocation. Zeroes begin/end/capacity. |
| 0x00AC38C0 | 162 | STL_vector__reallocate_dword | Reallocates STL vector for dword (4-byte) elements. Frees old buffer with aligned memory handling, allocates new with 1.5x growth. Standard vector reallocate pattern. |
| 0x00AC3970 | 183 | STL_vector__reallocate_36byte | Reallocates STL vector for 0x24-byte (36 decimal) elements. Frees old buffer, allocates new with 1.5x growth. Uses std__vector_allocate_0x24 for aligned allocation. |
| 0x00AC3BE0 | 10 | thunk_to_std__Xlength_error_00ac3be0 | Wrapper that calls std::_Xlength_error with vector_too_long message |
| 0x00AC3BF0 | 10 | thunk_to_std__Xlength_error_00ac3bf0 | Calls std::_Xlength_error with vector_too_long error message |
| 0x00AC3C00 | 10 | thunk_to_std__Xlength_error_00ac3c00 | Calls std::_Xlength_error with vector_too_long error message |
| 0x00AC3C10 | 10 | thunk_to_std__Xlength_error_00ac3c10 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x00AC3C20 | 56 | deallocate_aligned_84byte_buffer | Deallocates aligned buffer sized for count * 0x54 bytes. Handles aligned allocation (retrieves original pointer from buf[-4] for large allocations). |
| 0x00AC3C60 | 59 | deallocate_aligned_156byte_buffer | Deallocates aligned buffer sized for count * 0x9C bytes. Handles aligned allocation deallocation. |
| 0x00AC3CA0 | 67 | deallocate_aligned_56byte_buffer | Deallocates aligned buffer sized for count * 0x38 bytes. Handles aligned allocation deallocation. |
| 0x00AC3CF0 | 61 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00AC5210 | 34 | memcpy_range_to_dest_00ac5210 | Copies a memory range by computing size from begin/end pointers and calling memcpy. |
| 0x00AC5240 | 276 | STL_vector__insert_ptr_element_00ac5240 | Inserts a single pointer-sized element into an STL vector at a given position. Allocates new buffer with 1.5x growth via aligned_vector_alloc, copies segments before/after insertion point. Returns pointer to inserted element. |
| 0x00AC5380 | 439 | STL_vector__insert_8byte_element | Inserts a single 8-byte (2x dword) element into an STL vector at a given position. Allocates new buffer with 1.5x growth, copies segments before/after insertion point using 8-byte pair copy helpers. Returns pointer to inserted element. |
| 0x00AC5540 | 183 | STL_tree__destroy_nodes_recursive_1c | Recursively destroys all nodes in an STL tree with 0x1C-byte nodes. Each node has a linked list at offset+0x14 (0x0C-byte sub-nodes) which is also freed. Post-order traversal: recurse on right child (offset+8), free sub-list, free node, advance to left child (offset+0). |
| 0x00AC5600 | 99 | _Find_last<> | STL _Find_last. Searches backward through a range to find the last matching element. |
| 0x00AC5670 | 76 | STL_tree__lower_bound_by_float_key | STL tree lower_bound search using a float key. Walks the tree comparing float values at node offset+0x10. Returns iterator-like struct with last visited node, comparison result flag, and bound node pointer. |
| 0x00AC57E0 | 350 | STL_make_heap_float_pair | STL make_heap for an array of float pairs (8 bytes each). Builds a max-heap using sift-down, comparing by first float then second float as tiebreaker. Standard heap construction algorithm. |
| 0x00AC5940 | 292 | STL_sort3_float_pair | STL median-of-three sort for float pairs (8 bytes each). Sorts 3 elements pointed to by param_1, param_2, param_3 in ascending order by first float, second float as tiebreaker. Used as pivot selection in introsort. |
| 0x00AC5A70 | 1137 | STL_nth_element_float_pair | STL nth_element / introsort partition for float pairs (8 bytes each). Partitions array around median-of-3 pivot, with Hoare-style bidirectional scanning. Returns partition bounds via param_1. Used for partial sorting of keyframe arrays. |
| 0x00AC5EF0 | 321 | STL_adjust_heap_float_pair | STL heap adjust / sift-down for float pairs (8 bytes each). Moves element at param_2 down the heap to restore heap property. Used by pop_heap and sort_heap operations. Compares by first float, second as tiebreaker. |
| 0x00AC6040 | 254 | STL_introsort_float_pair | STL introsort for float pairs (8 bytes each). Recursive quicksort with depth limit fallback to heap sort. When partition size drops below 0x101 bytes (~32 elements), falls back to insertion sort. Standard std::sort implementation. |
| 0x00AC6140 | 113 | STL_list__destroy_nodes_0c | Destroys all nodes in an STL linked list with 0xC-byte nodes. Zeros the tail pointer, traverses the forward chain freeing each node, then frees the sentinel/head node. |
| 0x00AC61C0 | 531 | STL_unordered_map__emplace_float_key | STL unordered_map emplace with float key. Computes FNV-1a hash of the float, checks if key exists via _Find_last. If not found, allocates new node, rehashes if load factor exceeded, inserts into bucket chain. Returns iterator and bool (true if inserted). |
| 0x00AC63E0 | 97 | fill<> | STL std::fill for 4-byte pointer ranges. Uses unrolled 4-element loop for large ranges, then fills remainder one at a time. |
| 0x00AC6450 | 145 | STL_unordered_map__ctor | STL unordered_map constructor. Allocates 0xC-byte sentinel node (self-referencing next/prev), initializes bucket array pointer, size, bucket count, and max load factor fields to zero. |
| 0x00AC6840 | 67 | STL_tree__free_header_12byte_00ac6840 | Frees a 0x0C-byte (12 decimal) STL tree header node if it exists (checks offset+4). SEH-wrapped deallocation. |
| 0x00AC6890 | 67 | STL_tree__free_header_12byte_00ac6890 | Frees a 0x0C-byte (12 decimal) STL tree header node if it exists (checks offset+4). SEH-wrapped deallocation. |
| 0x00AC68E0 | 67 | STL_tree__free_header_1c_byte_00ac68e0 | Frees a 0x1C-byte (28 decimal) STL tree header node if it exists (checks offset+4). SEH-wrapped deallocation. |
| 0x00AC6990 | 78 | STL_tree__free_header_0c_byte_00ac6990 | Frees a 0x0C-byte (12 decimal) STL tree header node if it exists (checks offset+4). SEH-wrapped deallocation. |
| 0x00AC69E0 | 78 | STL_tree__free_header_0c_byte_00ac69e0 | Frees a 0x0C-byte (12 decimal) STL tree header node if it exists (checks offset+4). SEH-wrapped deallocation. |
| 0x00AC6A30 | 76 | STL_map__destroy_and_free_header_1c | Destroys all nodes in an STL map and frees the header/sentinel node. |
| 0x00AC6B00 | 78 | STL_tree__free_header_1c_byte_00ac6b00 | Frees a 0x1C-byte (28 decimal) STL tree header node if it exists (checks offset+4). SEH-wrapped deallocation. |
| 0x00AC6C10 | 103 | linked_list_clear_and_free_00ac6c10 | Clears a singly-linked list: walks the list from *param_1, frees each 12-byte node, then frees the sentinel. Sets tail count to 0. |
| 0x00AC6C80 | 103 | linked_list_clear_and_free_00ac6c80 | Clears a singly-linked list: walks the list from *param_1, frees each 12-byte node, then frees the sentinel. Sets tail count to 0. |
| 0x00AC6CF0 | 103 | linked_list_clear_and_free_00ac6cf0 | Clears a singly-linked list: walks the list from *param_1, frees each 12-byte node, then frees the sentinel. Sets tail count to 0. |
| 0x00AC6D60 | 103 | linked_list_clear_and_free_00ac6d60 | Clears a singly-linked list: walks the list from *param_1, frees each 12-byte node, then frees the sentinel. Sets tail count to 0. |
| 0x00AC6DD0 | 103 | linked_list_clear_and_free_00ac6dd0 | Clears a singly-linked list: walks the list from *param_1, frees each 12-byte node, then frees the sentinel. Sets tail count to 0. |
| 0x00AC6EA0 | 116 | linked_list_clear_from_offset4 | Clears a singly-linked list stored at param_1+4: walks all nodes, frees each 12-byte node, then frees the sentinel. |
| 0x00AC6F20 | 129 | vector_clear_and_free | Clears and frees a vector's backing buffer. Computes allocation size from (end-begin) & ~3, handles large allocations (>0xfff) with debug header. Zeroes begin/end/capacity pointers. |
| 0x00AC7340 | 66 | free_24byte_block | Frees a 24-byte (0x18) heap block pointed to by *param_1, if non-null. |
| 0x00AC7390 | 66 | free_24byte_block_00ac7390 | Frees a 24-byte (0x18) heap block pointed to by *param_1, if non-null. |
| 0x00AC8070 | 65 | linked_list_clear_all_nodes | Clears all nodes from a doubly-linked list. Walks from the first node, unlinks and frees each 12-byte node until it wraps back to the sentinel. Decrements the count. |
| 0x00AC80C0 | 58 | free_four_quadtree_root_nodes | Frees the 4 quadtree root nodes stored at offsets 0x5C-0x68. For each non-null root, recursively frees all children via quadtree_node_recursive_free, then frees the 0x7C-byte root node itself. |
| 0x00ACB700 | 90 | STL_vector__Change_array_00acb700 | STL vector::_Change_array. Frees old buffer, then sets begin/end/capacity pointers to the new buffer. |
| 0x00ACBDD0 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00ACC080 | 197 | vector_reallocate_and_copy | Reallocates a vector to hold param_2 elements. Allocates new buffer via FUN_00acc430, copies existing data via memcpy, frees old buffer (handling large allocation debug headers), and updates begin/end/capacity pointers. |
| 0x00ACC410 | 10 | thunk_to_std__Xlength_error_00acc410 | Throws std::length_error for vector allocation failure |
| 0x00ACC420 | 10 | thunk_to_std__Xlength_error_00acc420 | Calls std::_Xlength_error with vector_too_long error message |
| 0x00ACC510 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00ACC550 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00ACC590 | 165 | linked_list_push_back | Appends a value (*param_2) to a doubly-linked list (param_1). Allocates a 12-byte node, inserts it before the sentinel. Increments the list count. Throws _Xlength_error if list is at max size (0x15555555). |
| 0x00ACCF70 | 67 | free_12byte_list_sentinel | Frees the 12-byte linked list sentinel node at offset 4, if non-null. |
| 0x00ACCFC0 | 78 | free_12byte_list_sentinel_00accfc0 | Frees the 12-byte linked list sentinel node at offset 4, if non-null. |
| 0x00ACD0D0 | 103 | linked_list_clear_and_free_00acd0d0 | Clears a singly-linked list: walks from *param_1, frees each 12-byte node, then frees the sentinel. |
| 0x00ACF750 | 29 | memcpy_backward_by_offset | Copies memory from [param_1, param_2) backward to a destination computed as param_3 - (param_2 - param_1). Used for shifting data in buffer insertions. |
| 0x00ACFAB0 | 472 | std__sort_uint_introsort | STL introsort implementation for uint arrays. Uses quicksort with median-of-three pivot selection, falls back to heapsort when recursion depth limit is reached, and uses insertion sort for small partitions (<=32 elements). Standard std::sort algorithm. |
| 0x00ACFC90 | 69 | vector_assign_from_range | Assigns a vector's contents from a memory range [param_2, param_3). If the vector's capacity is too small, grows it. Copies data via memcpy and updates the end pointer. |
| 0x00AD7650 | 34 | memcpy_range_to_dest_00ad7650 | Copies memory range [param_1, param_2) to param_3 via memcpy. Returns pointer past the end of the copied data. |
| 0x00AD7680 | 34 | memcpy_range_to_dest_00ad7680 | Copies memory range [param_1, param_2) to param_3 via memcpy. Returns pointer past the end of the copied data. |
| 0x00AD76B0 | 34 | memcpy_range_to_dest_00ad76b0 | Copies memory range [param_1, param_2) to param_3 via memcpy. Returns pointer past the end of the copied data. |
| 0x00AD76E0 | 452 | vector_insert_and_grow | Inserts an element at position param_2 in a vector, growing its capacity using 1.5x growth strategy. Allocates new buffer (with alignment for large allocs), copies elements before/after the insertion point, inserts the new value from param_3, frees old buffer, and updates begin/end/capacity pointers. |
| 0x00AD7AD0 | 406 | STL_vector_16byte_reallocate_and_fill | STL vector reallocation for 16-byte elements (0x10 stride). Grows capacity by 1.5x, copies existing data, fills new slots. Used by pathfinding waypoint vector. |
| 0x00AD7C70 | 499 | STL_vector_28byte_reallocate_and_fill | STL vector reallocation for 28-byte (0x1c) elements. Grows capacity by 1.5x, copies existing data via memcpy, fills new slots. Used by pathfinding node array. |
| 0x00AD7FE0 | 67 | free_18byte_node | Frees a 0x18-byte allocated node if the pointer at offset +4 is non-null. SEH-protected free operation. |
| 0x00AD8030 | 67 | free_2C_byte_node | Frees a 0x2C-byte allocated node if the pointer at offset +4 is non-null. SEH-protected free operation. |
| 0x00AD8160 | 78 | free_18byte_node_seh | SEH-wrapped free of 0x18-byte node. Checks if pointer at offset+4 is non-null before freeing. Variant of free_18byte_node. |
| 0x00AD81B0 | 113 | free_2C_node_with_string_dtor | Frees a 0x2C-byte node that contains a string. First destroys the embedded STL string, then frees the 0x2C-byte allocation if non-null. |
| 0x00AD8230 | 78 | free_18byte_node_seh_v2 | SEH-wrapped free of 0x18-byte node, variant. Frees allocation at offset+4 if non-null. Nearly identical to free_18byte_node_seh. |
| 0x00AD8280 | 78 | free_2C_byte_node_seh | SEH-wrapped free of 0x2C-byte node. Frees allocation at offset+4 if non-null. |
| 0x00AD8380 | 65 | STL_string_dtor_seh_wrapper | SEH-wrapped STL string destructor. Calls STL_string_dtor within structured exception handling frame. |
| 0x00AD83D0 | 129 | STL_vector_4byte_free | Frees the backing storage of an STL vector with 4-byte (int/pointer) elements. Handles aligned allocation (>0x1000 bytes uses offset pointer at [-4]). Zeroes all three vector fields after free. |
| 0x00AD8460 | 129 | STL_vector_16byte_free | Frees the backing storage of an STL vector with 16-byte elements. Computes allocation size via capacity mask (& 0xFFFFFFF0). Handles aligned allocation for large blocks. Zeroes all three vector fields. |
| 0x00AD84F0 | 159 | STL_vector_28byte_free | Frees the backing storage of an STL vector with 28-byte (0x1C) elements. Computes capacity via division by 0x1C then multiplies back. Handles aligned allocation. Zeroes all three vector fields. |
| 0x00AD86F0 | 65 | STL_vector_4byte_free_seh | SEH-wrapped call to STL_vector_4byte_free. Frees 4-byte element vector storage within exception handling frame. |
| 0x00AD8740 | 83 | operator++ | STL red-black tree iterator prefix increment (operator++). Advances to the in-order successor by traversing right subtree or walking up to parent. |
| 0x00AD9900 | 11 | STL_vector_clear_by_reset_end | Clears an STL vector by resetting the end pointer to the begin pointer. Does not free memory, just marks as empty. |
| 0x00AD9E60 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00ADA070 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00ADA3F0 | 10 | thunk_to_std__Xlength_error_00ada3f0 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x00ADA400 | 10 | thunk_to_std__Xlength_error_00ada400 | Calls std::_Xlength_error with vector_too_long error message |
| 0x00ADA410 | 10 | thunk_to_std__Xlength_error_00ada410 | Calls std::_Xlength_error with vector_too_long message |
| 0x00ADA420 | 62 | STL_allocator_deallocate_4byte | STL allocator deallocate for 4-byte elements. Computes total size as count*4, handles over-aligned allocations (>=0x1000 bytes) by retrieving original pointer from [-4] offset. |
| 0x00ADA460 | 58 | free_aligned_16byte_array | Frees an aligned allocation of 16-byte elements. For allocations >= 0x1000 bytes, retrieves the original pointer from [-4] offset. Validates alignment offset before freeing. |
| 0x00ADA4A0 | 67 | free_aligned_28byte_array | Frees an aligned allocation of 28-byte (0x1C) elements. For allocations >= 0x1000 bytes, retrieves the original pointer from [-4] offset. Validates alignment offset before freeing. |
| 0x00ADCB60 | 165 | linked_list_push_front | Pushes an element to the front of a doubly-linked list with 0x0C-byte nodes. Allocates a new node, stores the data pointer (from *param_2) at node[2], links it after the sentinel. Increments list count at param_1[1]. Throws if list size exceeds max (0x15555555). |
| 0x00ADD780 | 129 | STL_vector_2byte_free | Frees the backing storage of an STL vector with 2-byte (short/wchar_t) elements. Handles aligned allocation for large blocks. Zeroes all three vector fields. |
| 0x00ADDB40 | 67 | free_28byte_tree_sentinel | Frees a 0x28-byte red-black tree sentinel node if the pointer at offset+4 is non-null. |
| 0x00ADDBF0 | 132 | free_28byte_node_with_json_cleanup | Frees a 0x28-byte tree node that contains a json-like object. Sets vtable to PTR_FUN_01159a18, calls json cleanup, then frees the 0x28-byte allocation. |
| 0x00ADDC80 | 78 | free_28byte_tree_sentinel_seh | SEH-wrapped free of 0x28-byte tree sentinel node. Frees allocation at offset+4 if non-null. |
| 0x00ADE7C0 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00ADED20 | 111 | linked_list_24byte_destroy_with_string | Destroys all nodes in a singly-linked list of 0x24-byte nodes that contain embedded STL strings. Clears the tail pointer, traverses the list calling STL_string_dtor on each node, then frees each 0x24-byte node. |
| 0x00ADEEE0 | 73 | linked_list_24byte_destroy_and_free_sentinel | Destroys all nodes in a 0x24-byte linked list (with embedded strings) and frees the sentinel node. |
| 0x00ADF570 | 70 | free_A4_byte_sentinel | Frees a 0xA4-byte red-black tree sentinel node if the pointer at offset+4 is non-null. |
| 0x00ADF620 | 119 | free_A4_node_with_cleanup | Frees a 0xA4-byte tree node that contains embedded data needing cleanup. Calls FUN_00adf820 for cleanup if node exists, then frees the 0xA4-byte allocation. |
| 0x00ADF6A0 | 81 | free_A4_byte_sentinel_seh | SEH-wrapped free of 0xA4-byte sentinel node. Frees allocation at offset+4 if non-null. |
| 0x00AE0590 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00AE1290 | 105 | destroy_range_of_3C_elements | Destroys a range of 0x3C-byte elements from param_1 to param_2. Each element contains 2 STL strings that need destruction. |
| 0x00AE1300 | 458 | STL_vector_3C_insert_and_reallocate | Inserts a single 0x3C-byte element into a vector at a given position, reallocating if needed. Grows capacity by 1.5x. Allocates via CTownInfoMgr__alloc_town_array, constructs new element, moves existing elements before/after insertion point, destroys old storage. |
| 0x00AE1BC0 | 67 | free_34byte_sentinel | Frees a 0x34-byte red-black tree sentinel node if the pointer at offset+4 is non-null. |
| 0x00AE1C80 | 129 | free_34byte_node_with_town_cleanup | Frees a 0x34-byte tree node containing town vector data and an STL string. Clears the town vector, destroys the string, then frees the 0x34-byte node. |
| 0x00AE1D10 | 78 | free_34byte_sentinel_seh | SEH-wrapped free of 0x34-byte sentinel node. Frees allocation at offset+4 if non-null. |
| 0x00AE2BA0 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00AE2E70 | 10 | thunk_to_std__Xlength_error_00ae2e70 | Wrapper that calls std::_Xlength_error with vector_too_long message |
| 0x00AE51E0 | 435 | vector_0xc__insert_realloc | STL vector insert with reallocation for 0xc-byte elements. Grows capacity by 1.5x, moves elements around insertion point, constructs the new element. Frees old buffer. |
| 0x00AE53C0 | 162 | vector_0xc__move_range | Moves a range of 0xc-byte (3 dword) elements from [param_1, param_2) to param_3 by copying fields and zeroing originals. Used during vector reallocation. |
| 0x00AE5A70 | 36 | vector_0xc__destruct_range | vector_0xc: destruct range |
| 0x00AE5AA0 | 174 | vector_0xc__clear_and_free | Clears a vector of 0xc-byte elements. Destructs each element, then frees the backing memory with aligned deallocation. Zeroes the vector pointers. |
| 0x00AE5B60 | 10 | thunk_to_std__Xlength_error_00ae5b60 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x00AE5BD0 | 61 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00AE5C10 | 438 | STL_vector_4byte_insert_realloc_00ae5c10 | STL vector insert with reallocation for 4-byte (int/pointer) elements. Grows capacity by 1.5x, copies elements around insertion point, frees old buffer. Updates vector begin/end/capacity pointers. |
| 0x00AE5DD0 | 82 | vector_int__ctor | Default constructor for a vector of ints. Zeroes begin, end, and capacity pointers. |
| 0x00AE5E50 | 129 | vector_int__clear_and_free | Clears and frees a vector of 4-byte (int/pointer) elements. Handles aligned deallocation for large buffers (>= 0x1000). Zeroes vector pointers. |
| 0x00AE5EE0 | 65 | vector_int__dtor | Destructor for vector of ints. Calls vector_int__clear_and_free to release memory. |
| 0x00AE7130 | 10 | thunk_to_std__Xlength_error_00ae7130 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x00AE7140 | 368 | STL_wstring_append | STL wstring append. Appends param_3 wide characters from param_2. If capacity is sufficient, copies in-place. Otherwise allocates new buffer (1.5x growth), copies old data + new data, frees old buffer. |
| 0x00AE72C0 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00AE7300 | 152 | STL_wstring_substr | STL wstring substr. Extracts substring starting at param_3 with length param_4 into param_2. Throws out_of_range if start exceeds string length. |
| 0x00AE9530 | 67 | free_0x10_member | Frees a 0x10-byte buffer at offset +4 if non-null. |
| 0x00AE9580 | 78 | free_0x10_member_with_seh | Frees a 0x10-byte buffer at offset +4 if non-null. Wrapped in SEH frame. |
| 0x00AE9640 | 151 | vector_0x120__clear_and_free | Clears and frees a vector of 0x120-byte elements. Handles aligned deallocation for large buffers. Zeroes vector pointers. |
| 0x00AEB500 | 484 | vector_0x120__resize_with_fill | Resizes a vector of 0x120-byte elements. Allocates new buffer (1.5x growth), fills new elements via FUN_00aeca10, moves existing elements, frees old buffer. Max 0xe38e38 elements. |
| 0x00AECD60 | 128 | vector_0x120__resize | Resizes a vector of 0x120-byte elements. Shrinks by adjusting end pointer, grows by initializing new elements or calling resize_with_fill if beyond capacity. |
| 0x00AED180 | 34 | memcpy_range_to_dst_00aed180 | Copies a byte range [param_1, param_2) to destination param_3 using memcpy. Returns pointer past last written byte in destination. |
| 0x00AED1B0 | 238 | std__tree_0x18__deep_copy_node | Deep copies a tree node (0x18 bytes each). Allocates new node, copies key (offsets +4,+5), sets color/links. Recursively copies left (offset 0) and right (offset 2) children. Returns the copy of the leftmost leaf node. |
| 0x00AED2C0 | 452 | STL_vector_4byte_insert_realloc_00aed2c0 | STL vector insert with reallocation for 4-byte elements. Grows capacity by 1.5x, copies elements around insertion point via memcpy, frees old buffer. Max 0x3FFFFFFF elements. |
| 0x00AED490 | 118 | std__tree_0x18__destroy_all_nodes | Destroys all nodes in a tree (0x18-byte nodes). Walks the leftmost chain, recursively destroying right subtrees, freeing each 0x18-byte node. Finally frees the sentinel. |
| 0x00AED510 | 103 | std__tree_0x18__recursive_destroy_a | Recursively destroys 0x18-byte tree nodes. Walks left chain (offset 0), recursively destroys right subtrees (offset 2), frees each node. |
| 0x00AED580 | 103 | std__tree_0x18__recursive_destroy_b | Recursively destroys 0x18-byte tree nodes (variant B). Same structure as variant A - walks left, destroys right subtrees, frees nodes. |
| 0x00AED5F0 | 103 | std__tree_0x18__recursive_destroy_c | Recursively destroys 0x18-byte tree nodes (variant C). Same structure - walks left, destroys right subtrees, frees nodes. |
| 0x00AED660 | 86 | std__tree_0x18__lower_bound | Binary search tree lower_bound using CGrfFileRecord__compare_less_than. Traverses the tree, tracking the last node where key was not less. Returns iterator struct with {current, found_flag, bound_node}. |
| 0x00AED6C0 | 114 | std__tree_0x18__lower_bound_str | Binary search tree lower_bound using direct string comparison. Compares node name at offset +4 with param_3 string byte-by-byte. Returns iterator struct with {current, found_flag, bound_node}. |
| 0x00AED740 | 475 | vector_8byte__resize_with_trees | Resizes a vector of 8-byte elements (each containing a tree). Allocates new buffer (1.5x growth), initializes new elements, moves existing ones. Destroys old tree nodes before freeing old buffer. Max 0x1FFFFFFF elements. |
| 0x00AED920 | 234 | std__tree_0x18__copy_ctor | Copy constructor for a tree with 0x18-byte nodes. Allocates sentinel node, deep copies all nodes from param_2's tree, then finds and sets min/max pointers. |
| 0x00AEDBE0 | 67 | free_0x18_sentinel_a | Frees a 0x18-byte sentinel node at offset +4 if non-null. |
| 0x00AEDC30 | 67 | free_0x18_sentinel_b | Frees a 0x18-byte sentinel node at offset +4 if non-null. Identical to free_0x18_sentinel_a. |
| 0x00AEDC90 | 111 | std__tree_0x18__destroy_all_and_sentinel | Destroys all nodes in a 0x18-byte tree and frees the sentinel. Recursively destroys right subtrees using std__tree_0x18__recursive_destroy_b, walks left chain freeing nodes, finally frees sentinel. |
| 0x00AEDD30 | 78 | free_0x18_sentinel_with_seh_a | Frees a 0x18-byte sentinel node at offset +4 if non-null. Wrapped in SEH frame (variant A). |
| 0x00AEDD80 | 78 | free_0x18_sentinel_with_seh_b | Frees a 0x18-byte sentinel node at offset +4 if non-null. Wrapped in SEH frame (variant B). |
| 0x00AEDDD0 | 78 | free_0x18_sentinel_with_seh_c | Frees a 0x18-byte sentinel node at offset +4 if non-null. Wrapped in SEH frame (variant C). |
| 0x00AEDE20 | 78 | free_0x18_sentinel_with_seh_d | Frees a 0x18-byte sentinel node at offset +4 if non-null. Wrapped in SEH frame (variant D). |
| 0x00AEDE70 | 91 | STL_vector_of_trees__destroy_all | Destroys all tree structures in a vector. Iterates from begin to end (stride=8), calling std__tree_0x18__destroy_all_nodes on each element. |
| 0x00AEDED0 | 65 | std__tree_0x18__destroy_wrapper | Wrapper to destroy a std::tree with 0x18-byte nodes including the sentinel node. |
| 0x00AEDF20 | 129 | STL_vector_int_deallocate_00aedf20 | Deallocates an STL vector<int> buffer (duplicate instance). Same as STL_vector_int_deallocate. |
| 0x00AEDFB0 | 178 | STL_vector_of_trees__destroy_all_and_free | Destroys all tree structures in a vector and frees the vector buffer. Iterates elements (stride=8), destroys each tree's nodes, then deallocates the underlying buffer with aligned-free support. |
| 0x00AEE2B0 | 83 | operator++ | STL red-black tree iterator prefix increment (operator++). Advances to the in-order successor by traversing right subtree or walking up to parent. |
| 0x00AF0C40 | 93 | std__tree_0x18__destroy_range | Destroys a range of tree containers from param_1 to param_2. Each element is 8 bytes (tree root + count). Calls std__tree_0x18__destroy_all_nodes on each tree in the range. |
| 0x00AF0CA0 | 704 | std__tree_0x18__erase_node | Red-black tree node erasure with rebalancing. Removes param_2 from the tree rooted at param_1. Handles the standard RB-tree cases: node with two children (swap with successor), node with one child, and leaf. Performs rotations and color fixes to maintain RB-tree invariants. Decrements tree size. Returns the erased node pointer. |
| 0x00AF0F80 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00AF1190 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00AF13A0 | 84 | std__tree_0x18__rotate_left | Red-black tree left rotation. Rotates the subtree rooted at param_2 to the left. The right child of param_2 becomes the new root of the subtree. Updates parent/child pointers including the tree root if necessary. |
| 0x00AF1400 | 88 | std__tree_0x18__rotate_right | Red-black tree right rotation. Rotates the subtree rooted at param_2 to the right. The left child of param_2 becomes the new root of the subtree. Updates parent/child pointers including the tree root if necessary. |
| 0x00AF1460 | 153 | std__tree_0x18__init_n_empty_trees | Initializes N empty 0x18-byte tree sentinel nodes. For each tree, allocates a 0x18-byte header node, sets left/right/parent to self (empty tree sentinel), and sets color flags to 0x0101. Returns pointer past the last initialized pair. |
| 0x00AF1500 | 120 | std__tree_0x18__copy_range | Copy-constructs a range of 8-byte tree objects from param_1 to param_2. Iterates 8 bytes at a time, calling std__tree_0x18__copy_ctor for each element. |
| 0x00AF1580 | 10 | thunk_to_std__Xlength_error_00af1580 | Calls std::_Xlength_error with vector_too_long error message |
| 0x00AF1590 | 10 | thunk_to_std__Xlength_error_00af1590 | Wrapper that calls std::_Xlength_error with vector_too_long message |
| 0x00AF15A0 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00AF15E0 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00AF1870 | 39 | STL_vector_push_back_4byte | Pushes a 4-byte value onto a vector. If capacity is available, copies the value directly and increments the end pointer. Otherwise calls the reallocation path. |
| 0x00AF1C60 | 34 | memcpy_range_00af1c60 | Copies a range [param_1, param_2) to destination param_3 via memcpy. Returns pointer past the end of the copied data in the destination buffer. |
| 0x00AF1C90 | 279 | vector_8byte__emplace_with_realloc | Inserts an 8-byte element pair into a vector at position param_2, reallocating if needed. Uses 1.5x growth factor. Copies/moves existing elements around the insertion point. Calls FID_conflict__Change_array to finalize the reallocation. |
| 0x00AF2940 | 287 | STL_vector_8byte__resize_grow | Resizes an 8-byte element vector to param_2 elements, growing with 1.5x factor. Allocates new aligned buffer, zero-fills new elements, copies existing data via memcpy, frees old buffer. Max 0x1FFFFFFF elements. |
| 0x00AF2A90 | 457 | STL_vector_12byte__resize_grow | Resizes a 12-byte element vector (likely std::vector<sub_match>) to param_2 elements, growing with 1.5x factor. Allocates aligned buffer (32-byte alignment for >=0x1000), default-constructs new elements, moves existing data, frees old buffer. Max 0x15555555 elements. |
| 0x00AF3480 | 219 | STL_vector_4byte__copy_ctor | Copy constructor for a vector-like structure (5 fields). Copies field[0] directly, allocates memory for the data buffer, memcpy's the existing elements, and copies field[4]. The data buffer uses 4-byte aligned elements. Returns the constructed object. |
| 0x00AF37D0 | 497 | std__basic_ofstream__ctor_open | Constructor for std::basic_ofstream that opens a file. Initializes the ostream and streambuf base classes, opens the file via std::_Fiopen with write mode (\|2), sets up buffer pointers via get_stream_buffer_pointers, checks locale codec for conversion needs. Sets failbit if the file cannot be opened. |
| 0x00AF39D0 | 111 | STL_wstring__move_ctor | Move constructor for std::wstring (basic_string<wchar_t>). Transfers the internal buffer (4 dwords of SSO data + size + capacity) from param_2 to param_1, then resets param_2 to an empty string (size=0, capacity=7, first wchar=0). |
| 0x00AF3A50 | 67 | STL_wstring__ctor_from_wchar_ptr | Constructs a std::wstring from a null-terminated wchar_t* pointer. Initializes with empty state (size=0, capacity=7), calculates the string length via wcslen-equivalent loop, then calls STL_wstring_assign to copy the data. Returns the constructed string. |
| 0x00AF3C20 | 190 | std__basic_ofstream__dtor | Destructor for std::basic_ofstream. Resets vtable pointers, flushes the streambuf if it has pending writes, destroys the streambuf and ostream base classes. Handles the complex MSVC layout with offset-to-top adjustments. |
| 0x00AF3CE0 | 68 | STL_vector_12byte__dealloc_wrapper | Wrapper that deallocates a 12-byte element vector. Simply calls FUN_00af3d80 to perform the actual deallocation. |
| 0x00AF3D80 | 150 | STL_vector_12byte__dealloc | Deallocates a 12-byte element vector's buffer. Computes the total allocation size from (capacity - begin) / 12 * 12, handles aligned deallocation (32-byte alignment for blocks >= 0x1000), frees the memory, and zeros the begin/end/capacity pointers. |
| 0x00AF3E30 | 117 | STL_vector_4byte__copy_assign | Copy assignment for a 5-field vector structure. Copies field[0], reallocates the data buffer if capacity is insufficient via STL_lib_func_004f6780, memcpy's the elements, and updates end pointer and field[4]. Returns the assigned object. |
| 0x00AF3F50 | 199 | std__basic_ofstream__vbase_dtor | Complete (vbase) destructor for std::basic_ofstream. Destroys streambuf, ostream, and the basic_ios virtual base. Called when the ofstream is the most-derived class being destroyed. |
| 0x00AF8B80 | 90 | STL_vector__Change_array_00af8b80 | STL vector::_Change_array. Frees old buffer, then sets begin/end/capacity pointers to the new buffer. |
| 0x00AF8BE0 | 162 | STL_vector_float_pair_reallocate | Reallocates a vector of float pairs (8 bytes each). Frees old buffer, allocates new one with capacity param_2 * 8 bytes, updates begin/end/capacity pointers. Used by generate_diamond_grid_positions and generate_square_grid_positions. |
| 0x00AF9A60 | 189 | STL_vector_8byte_grow | Grows a vector of 8-byte elements. Allocates new buffer via FUN_00afa090, moves existing elements, frees old buffer, updates begin/end/capacity pointers. |
| 0x00AF9B50 | 125 | STL_vector_12byte_resize | Resizes a vector of 12-byte elements. Shrinks by updating end pointer, or grows by either calling default-construct fill or reallocating. Element stride is 0xC (12 bytes). |
| 0x00AF9E30 | 129 | STL_vector_8byte_dealloc | Deallocates a vector of 8-byte elements. Frees the buffer using aligned deallocation (handles >0xFFF alignment), zeroes begin/end/capacity pointers. |
| 0x00AF9F60 | 10 | thunk_to_std__Xlength_error_00af9f60 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x00AF9F70 | 10 | thunk_to_std__Xlength_error_00af9f70 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x00AFA030 | 92 | STL_aligned_alloc_8byte_array | Allocates aligned memory for an array of param_1 elements of 8 bytes each. Uses aligned allocation (32-byte aligned) for allocations >= 0x1000 bytes. Throws bad_array_new_length if count >= 0x20000000. |
| 0x00AFA090 | 92 | STL_aligned_alloc_8byte_array_00afa090 | Identical to STL_aligned_alloc_8byte_array, allocates aligned memory for an array of param_1 8-byte elements. Duplicate code at different address. |
| 0x00AFA0F0 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00AFA130 | 61 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00AFC3A0 | 446 | STL_vector_8byte_emplace_grow | Grows a vector of 8-byte elements when inserting via emplace. Allocates new buffer with 1.5x growth factor, moves elements before and after insertion point, inserts new element. Returns pointer to inserted element. |
| 0x00AFC570 | 548 | STL_vector_0x30_emplace_grow | Grows a vector of 0x30-byte elements (CTextLineObj) when inserting. Allocates new buffer with 1.5x growth, move-constructs elements, inserts new element at position. Element stride 0x30 (48 bytes). Max elements 0x5555555. |
| 0x00AFC7A0 | 137 | STL_vector_0x30_relocate_elements | Relocates 0x30-byte elements by move-constructing from source range [param_1, param_2) to destination param_3. Destroys any leftover elements at destination after copy. |
| 0x00AFEBB0 | 22 | std__destroy_range_0x30_wrapper | Thin wrapper that calls std__destroy_range_0x30_elements to destroy a range of 0x30-byte elements. |
| 0x00AFECB0 | 10 | thunk_to_std__Xlength_error_00afecb0 | Calls std::_Xlength_error with vector_too_long error message |
| 0x00AFECC0 | 10 | thunk_to_std__Xlength_error_00afecc0 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x00AFECD0 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00AFED10 | 61 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00B00050 | 99 | _Find_last<> | STL _Find_last. Searches backward through a range to find the last matching element. |
| 0x00B000C0 | 111 | linked_list_0x24__clear_all | Clears a singly-linked list of 0x24-byte nodes. Sets the count to 0, then walks the list freeing each node. Each node contains a string (destroyed via STL_string_dtor) and a next pointer at offset 0. Frees each 0x24-byte node. |
| 0x00B00360 | 97 | fill<> | STL std::fill for 4-byte pointer ranges. Uses unrolled 4-element loop for large ranges, then fills remainder one at a time. |
| 0x00B00460 | 67 | free_0x24_node | Frees a 0x24-byte node pointed to by param_1+4 if it's not null. Used for cleanup of hash map or linked list nodes. |
| 0x00B00520 | 125 | STL_vector_4byte__dealloc_aligned | Deallocates a 4-byte element vector with aligned memory handling. Computes buffer size, handles 32-byte alignment for blocks >= 0x1000, frees the memory, and zeros the begin/end/capacity pointers. |
| 0x00B00630 | 73 | linked_list_0x24__clear_and_free_sentinel | Clears all nodes in a 0x24-byte linked list and frees the sentinel node. Calls linked_list_0x24__clear_all to destroy all data nodes, then frees the sentinel/header node (0x24 bytes). |
| 0x00B01B50 | 235 | STL_vector_4byte__resize_fill | Resizes a 4-byte element vector to param_2 elements, filling with param_3. If new size <= current, fills existing elements. Otherwise allocates new aligned buffer, frees old, and fills all elements with the given value. Max 0x3FFFFFFF elements. |
| 0x00B01DB0 | 103 | std__tree_0x20__recursive_destroy_00b01db0 | Recursively destroys all nodes in a 0x20-byte RB-tree. For each non-sentinel node, recursively destroys the right subtree, then frees the current node (0x20 bytes), and moves to the left child. Iterative on left, recursive on right. |
| 0x00B01E20 | 75 | std__tree_0x20__lower_bound | Finds the lower_bound position for a key in a 0x20-byte node RB-tree. Walks the tree comparing the key at node+0x10 against *param_3. Returns an iterator structure with the node pointer, comparison flag, and bound position. |
| 0x00B01E70 | 124 | std__tree_0x20__ctor | Constructor for a 0x20-byte node RB-tree. Allocates a 0x20-byte sentinel node, initializes it (left=right=parent=self, color flags 0x0101), sets element count to 0. Then calls FUN_00b02260 for additional initialization. Returns the constructed tree. |
| 0x00B01EF0 | 67 | free_0x20_node | Frees a single 0x20-byte node pointed to by param_1+4 if it's not null. |
| 0x00B01F40 | 111 | std__tree_0x20__destroy_all_and_sentinel | Destroys all nodes in a 0x20-byte RB-tree and frees the sentinel. Iterates from the first element, recursively destroying right subtrees and freeing each 0x20-byte node. Finally frees the sentinel node itself. |
| 0x00B01FC0 | 78 | free_0x20_node_00b01fc0 | Frees a single 0x20-byte node at param_1+4 if not null. Identical to free_0x20_node but in a different context. |
| 0x00B02010 | 78 | free_0x20_node_00b02010 | Frees a single 0x20-byte node at param_1+4 if not null. Another instance of the same pattern. |
| 0x00B02060 | 65 | std__tree_0x20__destroy_all_wrapper | Wrapper that calls std__tree_0x20__destroy_all_and_sentinel to destroy and deallocate all nodes in a 0x20-byte RB-tree. |
| 0x00B020B0 | 77 | std__tree_0x20__destroy_all_wrapper2 | Another wrapper that calls std__tree_0x20__destroy_all_and_sentinel. Used from a different destruction context. |
| 0x00B02100 | 264 | std__tree_0x20__insert_key_value | Inserts a key-value pair into a 0x20-byte node RB-tree (std::map). Uses lower_bound to find insertion position. If the key doesn't exist, allocates a 0x20-byte node, stores the key at offset 0x10, an 8-byte value at offsets 0x14-0x18, and a 4-byte value at offset 0x1C. Calls Insert_node for RB-tree balancing. |
| 0x00B02210 | 69 | std__tree_0x20__find_value_by_key | Looks up a value in a 0x20-byte node RB-tree by key. Uses lower_bound to find the node. If found and key matches, returns the value at offset 0x1C. Returns 0 if not found. |
| 0x00B09ED0 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00B16210 | 83 | operator++ | STL red-black tree iterator prefix increment (operator++). Advances to the in-order successor by traversing right subtree or walking up to parent. |
| 0x00B16530 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00B16800 | 10 | thunk_to_std__Xout_of_range_00b16800 | Throws std::out_of_range exception for invalid vector subscript |
| 0x00B18430 | 34 | memcpy_range_to_dest_00b18430 | Copies memory range [param_1, param_2) to param_3. Returns pointer past end of destination. Essentially memcpy with range semantics. |
| 0x00B18760 | 131 | std__tree_0x20__recursive_destroy_with_vector_cleanup | Recursively destroys a 0x20-byte node RB-tree, with additional cleanup of a vector member via CEffectManager__deallocate_vector on each node before freeing. Used for effect-related tree structures. |
| 0x00B188E0 | 113 | linked_list_0xc_destroy | Destroys a singly-linked list of 0xC-byte nodes. Zeroes the count via the tail pointer, walks the list freeing each node, then frees the head node. SEH-wrapped. |
| 0x00B1D980 | 83 | operator++ | STL red-black tree iterator prefix increment (operator++). Advances to the in-order successor by traversing right subtree or walking up to parent. |
| 0x00B3B720 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00B3B930 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00B3BB40 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00B3BD50 | 10 | thunk_to_std__Xlength_error_00b3bd50 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x00B3BD60 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00B3BDA0 | 165 | linked_list_push_back_00b3bda0 | Pushes a value onto the back of a doubly-linked list. Allocates a 0xC-byte node, sets data from param_2, links at tail. Throws std::length_error if list is at max capacity (0x15555555). |
| 0x00B3C970 | 265 | std__regex_match | STL std::regex_match implementation. Initializes regex match context from compiled regex pattern and input string, then performs full match. Returns match result. Cleans up temporary vectors on exit. |
| 0x00B3CA80 | 280 | std__regex_search | STL std::regex_search implementation. Performs a partial regex search on a string. Initializes regex match context, searches for first occurrence, cleans up. Returns 0 if regex is null. |
| 0x00B402A0 | 75 | _Find_lower_bound<> | STL _Find_lower_bound. Binary search helper that finds the lower bound position in a sorted tree. |
| 0x00B406E0 | 83 | operator++ | STL red-black tree iterator prefix increment (operator++). Advances to the in-order successor by traversing right subtree or walking up to parent. |
| 0x00B40910 | 517 | Insert_node | STL _Tree_val::_Insert_node. Inserts a node into a red-black tree, links as left or right child, then rebalances with rotations and recoloring. |
| 0x00B4D770 | 574 | STL_vector_effect_insert_grow | STL vector insert with reallocation for effect structs (element size 0x24). Computes new capacity (1.5x growth), allocates new buffer, copies elements before/after insertion point using move semantics, inserts new element, frees old buffer. Updates vector pointers (begin, end, capacity). |
| 0x00B4D9B0 | 205 | STL_vector_effect_move_range | Moves a range of effect structs (size 0x24 each, containing 3 ints + std::string + 2 more ints) from source to destination buffer. Performs element-wise move with string move semantics (transfers pointer, resets source). |
| 0x00B4DA80 | 94 | STL_vector_effect_copy_construct_element | Copy-constructs a single effect element (3 plain fields + an std::string) into a destination slot. Uses SEH for exception safety. |
| 0x00B4DBE0 | 91 | STL_vector_effect_destroy_elements | Destroys all elements in a vector of effect structs (element size 0x24). Iterates from begin to end, calling std::string destructor on each element's string member. |
| 0x00B4DC40 | 198 | STL_vector_effect_clear_and_free | Clears and frees a vector of effect structs. Destroys each element's std::string, then frees the backing buffer (with aligned allocation support for buffers > 0xFFF). Resets all three vector pointers to null. |
| 0x00B4DD60 | 68 | STL_string_dtor_wrapper_00b4dd60 | Thin SEH wrapper around std::string destructor. Sets up exception handler, calls STL_string_dtor, restores FS chain. |
| 0x00B4E580 | 93 | STL_vector_effect_destroy_range | Destroys a range of effect elements (size 0x24 each) by calling std::string destructor on each element's string member. SEH protected. |
| 0x00B4E5E0 | 10 | thunk_to_std__Xlength_error_00b4e5e0 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x00B4E5F0 | 61 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00B80CD0 | 34 | memcpy_range_to_dest_00b80cd0 | Copies a memory range [param_1, param_2) to param_3 destination. Returns pointer past the copied data in destination. |
| 0x00B80D00 | 34 | memcpy_range_to_dest_00b80d00 | Copies a memory range [param_1, param_2) to param_3 destination. Returns pointer past the copied data. Identical to memcpy_range_to_dest at different address. |
| 0x00B80D30 | 34 | memcpy_range_to_dest_00b80d30 | Copies a memory range [param_1, param_2) to param_3 destination. Returns pointer past the copied data. Identical to memcpy_range_to_dest at different address. |
| 0x00B80D60 | 34 | memcpy_range_to_dest_00b80d60 | Copies a memory range [param_1, param_2) to param_3 destination. Returns pointer past the copied data. |
| 0x00B80D90 | 452 | std__vector_int__insert_and_grow | STL vector<int> insert with reallocation. Allocates new buffer (1.5x growth), copies element at insertion point, copies data before and after insertion point, frees old buffer. Handles aligned allocation for sizes >= 0x1000. |
| 0x00B80F60 | 37 | _Uninitialized_value_construct_n<struct_std::_Parallelism_allocator<unsigned_int>_> | STL _Uninitialized_value_construct_n. Zero-initializes a range of elements using memset. |
| 0x00B80F90 | 37 | _Uninitialized_value_construct_n<struct_std::_Parallelism_allocator<unsigned_int>_> | STL _Uninitialized_value_construct_n. Zero-initializes a range of elements using memset. |
| 0x00B80FC0 | 37 | _Uninitialized_value_construct_n<struct_std::_Parallelism_allocator<unsigned_int>_> | STL _Uninitialized_value_construct_n. Zero-initializes a range of elements using memset. |
| 0x00B80FF0 | 37 | _Uninitialized_value_construct_n<struct_std::_Parallelism_allocator<unsigned_int>_> | STL _Uninitialized_value_construct_n. Zero-initializes a range of elements using memset. |
| 0x00B81020 | 28 | _Zero_range<> | STL _Zero_range. Zeroes a memory range using memset from first to last pointer. |
| 0x00B81040 | 28 | _Zero_range<> | STL _Zero_range. Zeroes a memory range using memset from first to last pointer. |
| 0x00B81060 | 28 | _Zero_range<> | STL _Zero_range. Zeroes a memory range using memset from first to last pointer. |
| 0x00B81080 | 28 | _Zero_range<> | STL _Zero_range. Zeroes a memory range using memset from first to last pointer. |
| 0x00B810A0 | 34 | memcpy_range_to_dest_00b810a0 | Copies a memory range [param_1, param_2) to param_3 destination. Returns pointer past the copied data. |
| 0x00B810D0 | 34 | memcpy_range_to_dest_00b810d0 | Copies a memory range [param_1, param_2) to param_3 destination. Returns pointer past the copied data. |
| 0x00B81100 | 34 | memcpy_range_to_dest_00b81100 | Copies a memory range [param_1, param_2) to param_3 destination. Returns pointer past the copied data. |
| 0x00B81130 | 34 | memcpy_range_to_dest_00b81130 | Copies a memory range [param_1, param_2) to param_3 destination. Returns pointer past the copied data. |
| 0x00B81820 | 129 | std__vector_ptr__free_buffer | Frees the buffer of a vector<ptr>. Handles aligned deallocation for buffers > 0xFFF bytes. Zeros out start/end/capacity pointers after freeing. |
| 0x00B82E40 | 10 | thunk_to_std__Xlength_error_00b82e40 | Thunk that calls std::_Xlength_error for deque length overflow |
| 0x00B82E50 | 10 | thunk_to_std__Xlength_error_00b82e50 | Calls std::_Xlength_error with deque length error message |
| 0x00B82E60 | 10 | thunk_to_std__Xlength_error_00b82e60 | Throws deque length error exception |
| 0x00B82E70 | 10 | thunk_to_std__Xlength_error_00b82e70 | Thunk that calls std::_Xlength_error for deque length overflow |
| 0x00B82E80 | 10 | thunk_to_std__Xlength_error_00b82e80 | Calls std::_Xlength_error with vector_too_long error message |
| 0x00B82E90 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00B83500 | 59 | std__vector_assign_range | Assigns a range [param_2, param_3) to the vector. Reallocates if needed, copies data via memcpy, updates end pointer. |
| 0x00B87540 | 10 | thunk_to_std__Xlength_error_00b87540 | Throws std::length_error for vector size overflow |
| 0x00B87550 | 10 | thunk_to_std__Xlength_error_00b87550 | Calls std::_Xlength_error with vector_too_long error message |
| 0x00B87560 | 58 | free_aligned_16byte_buffer | Frees a buffer of 16-byte entries. Handles aligned deallocation for sizes > 0xFFF by reading the original pointer from -4 offset. |
| 0x00B875A0 | 59 | free_aligned_108byte_buffer | Frees a buffer of 0x108-byte entries. Handles aligned deallocation for sizes > 0xFFF. |
| 0x00B877D0 | 34 | memcpy_range_to_dest_00b877d0 | Copies a memory range [param_1, param_2) to param_3 destination. Returns pointer past copied data. |
| 0x00B87800 | 34 | memcpy_range_to_dest_00b87800 | Copies a memory range [param_1, param_2) to param_3 destination. Returns pointer past copied data. |
| 0x00B87830 | 276 | std__vector_int__insert_and_grow_00b87830 | STL vector<int> insert with reallocation. 1.5x growth, copies at insertion point, uses STL_allocate_4byte_elements for allocation. |
| 0x00B87970 | 452 | std__vector_int__insert_and_grow_00b87970 | STL vector<int> insert with reallocation. 1.5x growth, aligned alloc for >0xFFF. Copies at insertion point, frees old buffer. |
| 0x00B87B40 | 264 | std__vector_byte__insert_and_grow | STL vector<byte> insert with reallocation. 1.5x growth, inserts single byte at position, copies before/after data. Uses STL_aligned_heap_alloc and SpriteAction__swap_buffer for buffer management. |
| 0x00B87C70 | 276 | std__vector_int__insert_and_grow_00b87c70 | STL vector<int> insert with reallocation. 1.5x growth, uses STL_allocate_4byte_elements and FID_conflict__Change_array for buffer management. |
| 0x00B87DB0 | 574 | std__vector_12byte__insert_and_grow | STL vector of 12-byte elements insert with reallocation. 1.5x growth (max 0x15555555), copies 12-byte entries using copy_12byte_entries_range, resets old entries to (-1,0,0) before freeing. |
| 0x00B881F0 | 129 | std__vector_4byte__free_buffer_00b881f0 | Frees a vector buffer (4-byte aligned elements). Handles aligned deallocation for >0xFFF, zeros pointers. |
| 0x00B88280 | 129 | std__vector_4byte__free_buffer_00b88280 | Frees a vector buffer (4-byte aligned elements). Identical pattern at different address. |
| 0x00B88310 | 129 | std__vector_8byte__free_buffer | Frees a vector buffer (8-byte aligned elements). Handles aligned deallocation for >0xFFF, zeros pointers. |
| 0x00B883A0 | 162 | std__vector_40byte__free_buffer | Frees a vector buffer of 0x28-byte (40-byte) elements. Calls FUN_00b8a640 to destroy entries first, then aligned free for >0xFFF. |
| 0x00B88450 | 185 | std__vector_12byte__free_buffer | Frees a vector buffer of 12-byte elements. Resets each entry to (-1, 0, 0) before freeing. Handles aligned deallocation. |
| 0x00B89970 | 9 | std__vector_4byte__size | Returns the number of elements in a vector of 4-byte elements. Computes (end - begin) / 4. |
| 0x00B8A5E0 | 90 | STL_vector__Change_array_00b8a5e0 | STL vector::_Change_array. Frees old buffer, then sets begin/end/capacity pointers to the new buffer. |
| 0x00B8A960 | 10 | thunk_to_std__Xlength_error_00b8a960 | Throws std::length_error for vector size violation |
| 0x00B8A970 | 10 | thunk_to_std__Xlength_error_00b8a970 | Thunk that calls std::_Xlength_error with vector_too_long message |
| 0x00B8A980 | 10 | thunk_to_std__Xlength_error_00b8a980 | Calls std::_Xlength_error with vector_too_long message, never returns |
| 0x00B8A990 | 92 | STL_allocate_4byte_elements | STL vector allocator for 4-byte elements. Multiplies count by 4, allocates via operator new. For allocations >= 0x1000 bytes, adds 0x23 alignment overhead. Throws bad_array_new_length if count >= 0x40000000. |
| 0x00B8A9F0 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00B8AA30 | 62 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00B8AA70 | 61 | deallocate | STL allocator::deallocate. Computes total byte size, retrieves original allocation pointer for large blocks (>0xFFF bytes), then calls operator delete. |
| 0x00B8AAB0 | 44 | STL_vector_push_back_24byte | Push back a 24-byte element (0x18) to an STL vector. If capacity available, copies via string copy construct and advances end pointer. Otherwise calls vector insert to grow. |
| 0x00B8AAE0 | 358 | STL_vector_assign_8byte_pairs | Assigns a range of 8-byte pair elements to an STL vector. If new count <= current count, overwrites in place. Otherwise reallocates with 1.5x growth strategy. Copies existing elements and appends new ones. Frees old buffer if needed. |
| 0x00B8AC50 | 29 | memcpy_backward_offset | Copies memory range [param_1..param_2) to a destination computed by subtracting the range size from param_3. Used for backward element relocation in containers. |
| 0x00B8AC70 | 29 | memcpy_backward_offset_00b8ac70 | Copies memory range [param_1..param_2) to a destination computed by subtracting the range size from param_3. Identical to memcpy_backward_offset, duplicate at different address. |
| 0x00B8AC90 | 34 | memcpy_forward_return_end | Copies memory range [param_1..param_2) to param_3. Returns pointer to end of destination (param_3 + copied size). Used for forward element relocation in containers. |
| 0x00B8AD50 | 452 | STL_vector_insert_single_4byte_00b8ad50 | Inserts a single 4-byte element into an STL vector at the given position. Reallocates with 1.5x growth, copies elements before/after insertion point, frees old buffer. Returns pointer to inserted element. |
| 0x00B8AF20 | 333 | STL_vector_insert_single_8byte_00b8af20 | Inserts a single 8-byte element into an STL vector at the given position. Reallocates with 1.5x growth, copies 8-byte pair elements before/after insertion point, frees old buffer. Returns pointer to inserted element. |
| 0x00B8B090 | 550 | STL_vector_insert_single_40byte | Inserts a single 40-byte (0x28) element into an STL vector. Reallocates with 1.5x growth, relocates elements via pathfind node copy helpers, resets and frees old nodes. Max element count 0x6666666. Returns pointer to inserted element. |
| 0x00B8B2C0 | 563 | STL_vector_insert_single_24byte_wstr | Inserts a single 24-byte (0x18) element containing a wstring into an STL vector. Reallocates with 1.5x growth, moves elements via wstring-aware copy, destroys old wstrings. Returns pointer to inserted element. |
| 0x00B8BB80 | 472 | std__sort_uint_introsort_00b8bb80 | STL introsort implementation for uint arrays. Uses quicksort with median-of-three partitioning, falls back to heapsort when recursion depth exceeded, and insertion sort for small ranges (<= 32 elements). Recursive with 3/4 depth reduction per level. |
Part 3 of STL: functions 4,140 to 6,932, 0x00B8BD60 to 0x01034520
No function in this part matches that. Search all 47,061 functions instead.