DataTable
CDataTable, JsonCpp (JsonReader/Value/Writer), nlohmann::json internals
| Address | Size | Name | Description |
|---|---|---|---|
| 0x00509130 | 2034 | json__parse_uint_array_per_level_00509130 | JSON config parser: iterates object entries, resolves a key to a JSON array of uint values, and populates an output vector<uint> per-level. Used for SkillCostSP, SkillRange, etc. Returns 1 on success, 0 on missing/null key. |
| 0x00509940 | 1020 | json__parse_bool_map_from_object_00509940 | JSON config parser: iterates object entries, resolves each key-value pair to a bool via json__internal_0051e290, populates a map<string,bool>. Used for MapStringBoolValue parsing. Returns 1 on success. |
| 0x00509D40 | 261 | json__parse_uint_array_from_key_00509d40 | JSON config parser: resolves a string key to a JSON array, iterates elements converting each to uint via json__variant_to_uint, pushes into output vector<uint>. Returns 1 on success, 0 on missing/null/wrong type. |
| 0x00509E50 | 280 | json__parse_double_array_from_key_00509e50 | JSON config parser: resolves a string key to a JSON array, iterates elements converting each to double via json__internal_0051e4c0, pushes into output vector<double>. Returns 1 on success, 0 on missing/null/wrong type. |
| 0x00509F70 | 169 | json__parse_bool_value_from_key_00509f70 | JSON config parser: resolves a string key to a bool value via json__internal_0051e290, writes result to output param. Returns 1 on success, 0 on missing/null key. |
| 0x0050A020 | 493 | json__parse_int_keyed_string_map_0050a020 | JSON config parser: iterates object entries where keys are integer strings (via atoi), converts values to strings, populates a map<int,string> (red-black tree). Used for int-keyed string mapping config data. |
| 0x0050A210 | 1418 | json__parse_nprotect_gameguard_config_0050a210 | JSON config parser for NProtect GameGuard settings. Parses NProtectGameGuardCSAuthErrorCode section with fields: ErrorCode (uint array), BanCount (uint), IntervalMinute (uint), BlockPeriodDay (uint). Stores into output struct. |
| 0x0050A7A0 | 550 | json__parse_string_list_from_array_0050a7a0 | JSON config parser: reads a JSON array, converts each string/number element to a string via json__value_to_string, appends to a linked list of strings. Used for string list config fields. |
| 0x0050A9D0 | 1119 | json__parse_setting_int_string_vectors_map_0050a9d0 | JSON config parser: parses a settings object with IntValue (uint), StringValue (string), VectorIntValue (uint array), MapStringBoolValue (map<string,bool>), and MapStringStringValue (map<string,string>). Stores into multi-field output struct. |
| 0x0050AE30 | 2552 | json__parse_repute_group_entries_0050ae30 | JSON config parser for ReputeGroup entries. Iterates array, parses each entry with ID (string, converted to int via strtol), Name (string), ReputeList (uint array). Inserts into a red-black tree keyed by integer ID. |
| 0x0050B830 | 2668 | json__parse_repute_info_entries_0050b830 | JSON config parser for reputeInfo entries. Parses each entry with Name (string), MaxPoint_Positive (uint), MaxPoint_Negative (uint), Invisible (string). Key is string ID converted via strtol. Inserts into red-black tree (0x4C node). |
| 0x0050C2A0 | 3846 | json__parse_ez2str_effect_entries_0050c2a0 | JSON config parser for EZ2STREffect entries. Parses FilePath (string), PosX/PosY (double), IsInfinite/IsFloor/IsAboveUI/IsSoundLoop/IsToGround (bool), SoundPath (string), QuakeDelay/StartDelayTime (uint). Inserts into map via 0x80-byte nodes. |
| 0x0050D1B0 | 3600 | json__parse_formula_data_entries_0050d1b0 | JSON config parser for formula data entries. Parses FormulaVersion (uint) and FormulaData (array of arrays of ints). Builds nested vector<vector<int>> structures. Inserts into red-black tree with string key and tree value (0x34 node). |
| 0x0050E020 | 2927 | json__parse_skill_data_entries_0050e020 | JSON config parser for skill data entries. Parses SkillMaxLevel (uint array), SkillType/SkillPattern (string arrays), SkillCostSP/SkillRange/SkillCastFixedDelay/SkillCastStatDelay/SkillSinglePostDelay/SkillGlobalPostDelay/SkillData1/SkillData2 (uint arrays per level). Inserts into map via 0x98-byte nodes. |
| 0x0050EBF0 | 3773 | json__parse_select_package_item_data_0050ebf0 | JSON config parser for SelectPackageItemData. Iterates object/array entries, parses sub-items with Name (string), Cnt (uint), Bind (uint), Mark (bool), refine (uint), randomOption (string). Stores into vector of 68-byte (0x44) structs grouped by package ID. |
| 0x0050FD50 | 484 | json__parse_object_keys_to_string_vector_0050fd50 | JSON config parser: reads a JSON array or object, converts each element/key to a string via json__value_to_string, pushes into a vector<string>. Handles both array iteration and object key enumeration. |
| 0x0050FF40 | 356 | json__vector_assign_68byte_elements_0050ff40 | Vector assign/reallocate for 0x44 (68-byte) elements. Copies source range [param_2, param_3) into the vector at param_1. Reallocates with 1.5x growth if needed. Destroys old elements via json__destroy_68byte_elements. |
| 0x005100B0 | 34 | json__memcpy_range_forward_005100b0 | Simple memcpy range helper: copies [param_1, param_2) to param_3, returns end pointer (param_3 + size). Used for trivially-copyable element ranges. |
| 0x005100E0 | 34 | json__memcpy_range_forward_005100e0 | Simple memcpy range helper: copies [param_1, param_2) to param_3, returns end pointer (param_3 + size). Duplicate of 005100b0 for a different element type. |
| 0x00510110 | 265 | json__rbtree_copy_nodes_0x2c_00510110 | Red-black tree recursive copy for 0x2C-byte nodes (string key + uint value). Allocates new node, copies string via STL_string_copy_construct, copies uint at offset 0x28, recursively copies left/right children. |
| 0x00510240 | 271 | json__rbtree_copy_nodes_0x40_00510240 | Red-black tree recursive copy for 0x40-byte nodes (two strings). Allocates new node, copies both strings via STL_string_copy_construct, recursively copies left/right subtrees. |
| 0x00510370 | 271 | json__rbtree_copy_nodes_string_vec_00510370 | Red-black tree recursive copy for 0x34-byte nodes (string key + vector<int>). Allocates new node, copies string and vector via STL_vector__copy_construct_4byte_elements, recursively copies left/right subtrees. |
| 0x005104A0 | 271 | json__rbtree_copy_nodes_12byte_vec_005104a0 | Red-black tree recursive copy for 0x34-byte nodes (string key + vector of 12-byte elements). Allocates new node, copies string and vector via json__vector_copy_construct_12byte_elements, recursively copies subtrees. |
| 0x005105D0 | 137 | json__copy_assign_68byte_elements_005105d0 | Copy-assigns a range of 0x44 (68-byte) elements from source to dest. Each element contains two strings (at offset 0 and offset 0x28) plus scalar fields. Copies strings via STL_string_assign_buffer, copies scalar fields directly. |
| 0x00510660 | 104 | json__destroy_68byte_elements_00510660 | Destructor loop for 0x44 (68-byte) elements. Iterates [param_1, param_2) destroying two strings per element (at offsets 0 and 0x28) via STL_string_dtor. Stride is 0x44 bytes. |
| 0x005106D0 | 414 | json__rbtree_emplace_string_uint_005106d0 | Red-black tree emplace for map<string,uint> (0x2C-byte nodes). Searches tree using std::_Traits_compare, if key not found allocates new 0x2C node with string copy + uint value, inserts via Insert_node. Returns iterator + inserted flag. |
| 0x00510870 | 398 | json__rbtree_emplace_0x80_node_00510870 | Red-black tree emplace for 0x80-byte nodes (EZ2STREffect entries). Searches by string key, if not found allocates 0x80-byte node via json__node_entry_move_construct, inserts via Insert_node. Returns iterator + inserted flag. |
| 0x00510A00 | 395 | json__rbtree_emplace_string_tree_00510a00 | Red-black tree emplace for 0x34-byte nodes (string key + tree value). Searches by string key, if not found allocates 0x34-byte node via json__node_with_tree_move_construct, inserts via Insert_node. Returns iterator + inserted flag. |
| 0x00510B90 | 423 | json__rbtree_emplace_0x98_node_00510b90 | Red-black tree emplace for 0x98-byte nodes (skill data entries). Searches by string key, if not found allocates 0x98-byte node copying string + calling json__internal_00518120 for the data payload, inserts via Insert_node. |
| 0x00510D40 | 395 | json__rbtree_emplace_key_value_pair_00510d40 | Red-black tree emplace for 0x40-byte nodes (key-value pair with two fields). Searches by string key, if not found allocates 0x40-byte node via json__key_value_pair_move_construct, inserts via Insert_node. Returns iterator + inserted flag. |
| 0x00510ED0 | 447 | json__rbtree_emplace_string_vector_00510ed0 | Red-black tree emplace for 0x34-byte nodes (string key + 12-byte vector moved from source). Copies string, moves vector data (3 ints at offsets 0x18-0x20), zeros source. Inserts via Insert_node if key not found. |
| 0x00511090 | 447 | json__rbtree_emplace_string_vector_00511090 | Red-black tree emplace for 0x34-byte nodes. Identical pattern to 00510ed0: copies string key, moves 12-byte vector payload from source (zeroing original), inserts via Insert_node. Different max-count threshold (0x4ec4ec4). |
| 0x00511250 | 447 | json__rbtree_emplace_string_vector_00511250 | Red-black tree emplace for 0x34-byte nodes. Same pattern as 00511090: copies string key, moves 12-byte payload from source, inserts via Insert_node. Used for a different map instance with same node layout. |
| 0x00511410 | 414 | json__rbtree_emplace_string_bool_00511410 | Red-black tree emplace for map<string,bool> (0x2C-byte nodes). Copies string key, copies 1-byte bool value at offset 0x18. Inserts via Insert_node. Max count threshold 0x5d1745d. |
| 0x005115B0 | 452 | json__vector_reallocate_68byte_elements_005115b0 | Vector reallocate+insert for 0x44 (68-byte) elements. Grows with 1.5x strategy, copies existing elements via json__move_node_array_68byte_elements, inserts new element at position via json__copy_node_fields_with_strings. Frees old buffer. |
| 0x005117A0 | 435 | json__vector_reallocate_12byte_with_copy_005117a0 | Vector reallocate+insert for 0xC (12-byte) elements. Grows with 1.5x strategy, copies via STL_vector__copy_construct_4byte_elements, moves existing elements via STL_string__move_range_12byte_elements. Destroys old elements and frees old buffer. |
| 0x00511980 | 264 | json__vector_reallocate_1byte_elements_00511980 | Vector reallocate+insert for 1-byte elements. Grows with 1.5x strategy, allocates via STL_aligned_heap_alloc, copies data via memcpy, inserts single byte at position. Replaces old buffer via STL_regex_vector_replace_buffer. |
| 0x00511AB0 | 337 | json__vector_reallocate_4byte_elements_00511ab0 | Vector reallocate+insert for 4-byte elements. Grows with 1.5x strategy, allocates aligned buffer, inserts single element at position, copies before/after ranges via memcpy. Frees old buffer. Max capacity 0x3fffffff elements. |
| 0x00511C20 | 456 | json__vector_reallocate_8byte_elements_00511c20 | Vector reallocate+insert for 8-byte (double/uint64) elements. Grows with 1.5x strategy, allocates aligned buffer, inserts single 8-byte element at position via memcpy. Frees old buffer. Max capacity 0x1fffffff elements. |
| 0x00511DF0 | 526 | json__vector_reallocate_24byte_elements_00511df0 | Vector reallocate+insert for 0x18 (24-byte) elements containing strings. Grows with 1.5x strategy, moves elements via STL_string__move_range_24byte_elements, constructs new element via STL_string__move_construct_24byte. Destroys old strings and frees old buffer. |
| 0x00512030 | 337 | json__vector_reallocate_40byte_elements_00512030 | Vector reallocate+insert for 0x28 (40-byte) elements. Grows with 1.5x strategy, allocates via STL_allocate_array_40byte, moves elements via STL_uninitialized_move_0x28_with_cleanup_v2, constructs new element via STL_json_stringbuf_move_ctor. |
| 0x005121B0 | 445 | json__vector_reallocate_8byte_with_null_005121b0 | Vector reallocate+insert for 8-byte elements where second dword is zeroed. Grows with 1.5x strategy, inserts element (copies first dword, zeros second), moves before/after ranges. Frees old buffer. Max capacity 0x1fffffff. |
| 0x00512380 | 128 | json__rbtree_destroy_nodes_0x2c_00512380 | Red-black tree recursive destructor for 0x2C-byte nodes (string key + uint value). Recursively destroys right subtree, then iterates left children destroying string at offset 0x10 and freeing each 0x2C-byte node. |
| 0x00512400 | 144 | json__rbtree_destroy_nodes_0x40_00512400 | Red-black tree recursive destructor for 0x40-byte nodes (two strings). Recursively destroys right subtree, then iterates left children destroying both strings and freeing each 0x40-byte node. |
| 0x00512490 | 144 | json__rbtree_destroy_nodes_vec_0x34_00512490 | Red-black tree recursive destructor for 0x34-byte nodes (string + vector). Recursively destroys right subtree, then iterates left children calling json__internal_0051dab0 (vector destroy) + STL_string_dtor, frees each 0x34-byte node. |
| 0x00512520 | 144 | json__rbtree_destroy_nodes_tree_0x34_00512520 | Red-black tree recursive destructor for 0x34-byte nodes (string + tree value). Recursively destroys right subtree, then iterates left children calling json__internal_0051dbf0 (tree destroy) + STL_string_dtor, frees each 0x34-byte node. |
| 0x005125B0 | 128 | json__rbtree_destroy_nodes_simple_0x2c_005125b0 | Red-black tree recursive destructor for 0x2C-byte nodes (string key only, no second dtor needed). Recursively destroys right subtree, iterates left children destroying string + freeing 0x2C-byte node. Same as 00512380 but without local_8 state tracking. |
| 0x00512630 | 144 | json__rbtree_destroy_nodes_dual_str_0x40_00512630 | Red-black tree recursive destructor for 0x40-byte nodes (two strings). Recursively destroys right subtree, iterates left children destroying both strings and freeing 0x40-byte node. Same pattern as 00512400. |
| 0x005126C0 | 144 | json__destroy_tree_nodes_recursive_005126c0 | Recursively destroys JSON tree nodes via post-order traversal |
| 0x00512750 | 144 | json__destroy_tree_nodes_recursive_00512750 | Recursively destroys JSON tree nodes with different destructor |
| 0x00512AC0 | 211 | json__copy_node_array_with_strings | Copies JSON node array 0x44 bytes each with embedded strings |
| 0x00512BA0 | 137 | json__move_node_array_68byte_elements | Moves JSON node array with 0x44-byte elements |
| 0x00512D90 | 143 | json__convert_value_wrapper | Wrapper for json value conversion with type parameter 2 |
| 0x00512E20 | 304 | json__variant_to_uint | Converts JSON variant to uint32 based on type tag |
| 0x00512F80 | 749 | json__value_to_string | Converts JSON value to std::string based on type tag |
| 0x00513290 | 133 | json__copy_node_fields_with_strings | Copies JSON node fields with two embedded strings |
| 0x00513360 | 215 | json__encode_binary_to_string | Encodes binary data using hex or base64 encoding |
| 0x00513440 | 106 | json__allocate_and_copy_string_node | Allocates 16-byte node and copy-constructs string |
| 0x005134D0 | 106 | json__allocate_and_assign_string_node | Allocates 16-byte node and assigns string |
| 0x00513560 | 486 | json__double_to_string_fixed_notation | Formats double with f format handles NaN Inf |
| 0x00513750 | 486 | json__double_to_string_fixed_notation_v2 | Formats double with f format variant |
| 0x00513940 | 303 | json__double_to_decimal_string | Formats double to decimal string returns success |
| 0x00513A70 | 480 | json__double_to_string_g_format | Formats double with g format handles NaN Inf |
| 0x00513C50 | 480 | json__double_to_string_g_format_v2 | Formats double with g format variant |
| 0x00513E30 | 303 | json__double_to_general_string | Formats double to general notation string |
| 0x00513F60 | 303 | json__double_to_scientific_string | Formats double to scientific notation |
| 0x00514090 | 131 | json__emit_decimal_digits_with_locale | Emits decimal digits replacing locale separator |
| 0x00514160 | 98 | json__push_back_string_to_vector | Pushes std::string onto vector end |
| 0x005141D0 | 729 | json__encode_bytes_to_hex_uppercase | json: encode bytes to hex uppercase |
| 0x005144B0 | 84 | json__emit_bytes_as_hex_uppercase | json: emit bytes as hex uppercase |
| 0x00514510 | 27 | json__base64url_encode_to_string | Base64url encode using URL-safe alphabet |
| 0x00514530 | 27 | json__base64_encode_to_stream | Base64 encode to stream |
| 0x00514550 | 27 | json__base64_encode_to_stream_v2 | Base64 encode variant to stream |
| 0x00514570 | 1348 | json__base64_encode_to_string_impl | Base64 encode 3-byte to 4-char via alphabet table |
| 0x00514AC0 | 354 | json__base64_encode_to_stream_impl | Base64 encode to stream via alphabet |
| 0x00514C30 | 382 | json__base64_encode_to_stream_impl_v2 | Base64 encode variant to stream |
| 0x00514DB0 | 27 | json__base64url_encode_to_string_nopad | Base64url encode without padding |
| 0x00514DD0 | 27 | json__base64_standard_encode_to_stream | Standard base64 encode with padding |
| 0x00514DF0 | 27 | json__base64_padded_encode_to_stream | Padded base64 encode variant |
| 0x00514E10 | 450 | json__sorted_map_equal_range | Binary search equal range in sorted kv array |
| 0x00514FE0 | 877 | json__escape_string_for_output | JSON string escaping for special chars |
| 0x005153D0 | 547 | json__emit_signed_exponent | Emits signed exponent with plus minus prefix |
| 0x00515600 | 358 | json__emit_signed_int32 | Emits signed 32-bit integer to output |
| 0x00515770 | 367 | json__emit_signed_int64 | Emits signed 64-bit integer |
| 0x005158E0 | 430 | json__emit_unsigned_int64 | Emits unsigned 64-bit integer to output |
| 0x00515A90 | 1068 | json__parse_decimal_digits_to_bignum | Parses decimal digits into bignum |
| 0x00515ED0 | 407 | json__emit_float_formatted_digits | Formats float with decimal point placement |
| 0x00516070 | 314 | json__decode_utf8_codepoint | Decodes UTF-8 to Unicode codepoint |
| 0x005161D0 | 186 | json__parse_integer_from_string | Parses integer from string |
| 0x00516290 | 147 | json__scan_decimal_digits | Scans for decimal digits |
| 0x005165D0 | 864 | json__sorted_map_insert_or_find | Inserts into sorted array or finds existing |
| 0x00516930 | 1143 | json__parse_msgpack_int_value | Parses msgpack integer from byte stream |
| 0x00516DB0 | 159 | json__bignum_copy_or_allocate | Copies bignum inline for small heap for large |
| 0x00516E50 | 180 | json__serializer_create | Creates JSON serializer with output adapter |
| 0x00516F10 | 441 | json__serializer_init_fields | Initializes serializer formatting and locale |
| 0x005170D0 | 449 | json__output_adapter_init | Initializes output adapter with defaults |
| 0x005172A0 | 411 | json__output_adapter_reset_strings | Resets output adapter string fields |
| 0x005174C0 | 187 | json__parse_error_ctor_from_cstr | Constructs json parse_error from C string |
| 0x00517580 | 203 | json__parse_error_ctor_from_string | Constructs json parse_error from std::string |
| 0x00517650 | 174 | json__type_error_ctor_from_cstr | Constructs json type_error from C string |
| 0x00517700 | 190 | json__type_error_ctor_from_string | Constructs json type_error from std::string |
| 0x005177C0 | 234 | json__rbtree_copy_construct | Copy-constructs red-black tree map |
| 0x005178B0 | 234 | json__rbtree_copy_construct_34byte_nodes | Copy-constructs rbtree with 0x34-byte nodes |
| 0x005179A0 | 244 | json__token_move_construct | Move-constructs 64-byte token struct |
| 0x00517AA0 | 210 | json__parse_result_move_construct | Move-constructs parse result |
| 0x00517B80 | 279 | json__node_entry_move_construct | Move-constructs 0x6C-byte node entry |
| 0x00517CA0 | 166 | json__node_with_tree_move_construct | Move-constructs node with embedded rbtree |
| 0x00517D50 | 143 | json__key_value_pair_move_construct | Move-constructs key-value pair |
| 0x00517EA0 | 184 | json__vector_copy_construct_68byte_elements | Copy-constructs vector of 0x44-byte entries |
| 0x00517F60 | 220 | json__vector_copy_construct_12byte_elements | Copy-constructs vector of 0xC-byte elements |
| 0x00518040 | 220 | json__node_44byte_move_construct | Move-constructs 0x44-byte node with two strings |
| 0x00518120 | 887 | json__schema_data_move_construct | Move-constructs schema data object. Swaps 11 rbtree pairs (sizes 0x2C, 0x40, 0x40, 0x34x8) from source to dest via allocate-and-swap pattern, then move-constructs a trailing std::string. |
| 0x005184A0 | 416 | json__schema_data_copy_construct | Copy-constructs schema data with rbtrees |
| 0x00518640 | 604 | json__schema_data_default_construct | Default-constructs schema with 11 empty rbtrees |
| 0x005188A0 | 130 | json__logic_error_ctor_from_string | Constructs json exception from std::string |
| 0x00518930 | 122 | json__logic_error_ctor_from_cstr | Constructs json exception from C string |
| 0x005189B0 | 178 | json__other_error_ctor | Constructs json other_error with MI vtable |
| 0x00518A70 | 67 | json__free_32byte_block | Frees 0x20-byte heap block |
| 0x00518AC0 | 67 | json__free_80byte_block | Frees 0x50-byte heap block |
| 0x00518B10 | 67 | json__free_76byte_block | Frees 0x4C-byte heap block |
| 0x00518B60 | 67 | json__free_44byte_block_00518b60 | Frees 0x2C-byte heap block |
| 0x00518BB0 | 67 | json__free_44byte_block_00518bb0 | Frees 0x2C-byte heap block |
| 0x00518C00 | 70 | json__free_128byte_block | Frees 0x80-byte heap block |
| 0x00518C50 | 67 | json__free_52byte_block_00518c50 | Frees 0x34-byte heap block |
| 0x00518CA0 | 70 | json__free_152byte_block | Frees 0x98-byte heap block |
| 0x00518CF0 | 67 | json__free_64byte_block | Frees 0x40-byte heap block |
| 0x00518D40 | 67 | json__free_52byte_block_00518d40 | Frees 0x34-byte heap block |
| 0x00518D90 | 67 | json__free_52byte_block_00518d90 | Frees 0x34-byte heap block |
| 0x00518DE0 | 67 | json__free_52byte_block_00518de0 | Frees 0x34-byte heap block |
| 0x00518E30 | 67 | json__free_44byte_block_00518e30 | Frees 0x2C-byte heap block |
| 0x00518E80 | 87 | json__destroy_shared_ptr_ref | Destroys shared pointer calls dtor then releases |
| 0x00518EE0 | 104 | json__destroy_and_free_32byte_block | Destroys then frees 0x20-byte block |
| 0x00518F90 | 76 | json__rbtree_destroy_44byte_nodes | Destroys rbtree then frees 0x2C-byte header |
| 0x00518FF0 | 76 | json__rbtree_destroy_64byte_nodes | Destroys rbtree then frees 0x40-byte header |
| 0x00519050 | 76 | json__rbtree_destroy_52byte_nodes_00519050 | Destroys rbtree then frees 0x34-byte header |
| 0x005190B0 | 76 | json__rbtree_destroy_52byte_nodes_005190b0 | Destroys rbtree then frees 0x34-byte header |
| 0x00519110 | 84 | json__rbtree_destroy_indirect_44byte | Destroys rbtree via indirect pointer |
| 0x00519170 | 84 | json__rbtree_destroy_indirect_64byte | Destroys rbtree via indirect pointer |
| 0x005191D0 | 84 | json__rbtree_destroy_indirect_52byte_005191d0 | Destroys rbtree via indirect pointer |
| 0x00519230 | 84 | json__rbtree_destroy_indirect_52byte_00519230 | Destroys rbtree via indirect pointer |
| 0x00519290 | 151 | json__destroy_and_free_80byte_with_dtors | Destroys 0x50-byte object with dtors |
| 0x00519330 | 139 | json__destroy_and_free_76byte_with_dtors | Destroys 0x4C-byte object with dtor |
| 0x005193C0 | 116 | json__destroy_and_free_44byte_005193c0 | Calls dtor then frees 0x2C-byte block |
| 0x00519440 | 113 | json__destroy_and_free_44byte_00519440 | Calls dtor then frees 0x2C-byte block |
| 0x005194C0 | 155 | json__destroy_and_free_128byte_with_dtors | Calls 3 dtors then frees 0x80-byte block |
| 0x00519560 | 168 | json__destroy_tree_and_free_52byte | Destroys embedded rbtree then frees block |
| 0x00519610 | 132 | json__destroy_and_free_152byte_with_dtor | Calls schema dtor then frees 0x98-byte block |
| 0x005196A0 | 129 | json__destroy_and_free_64byte_with_dtors | Calls 2 dtors then frees 0x40-byte block |
| 0x00519730 | 129 | json__destroy_and_free_52byte_with_dtor_a | Calls tree dtor A then frees block |
| 0x005197C0 | 129 | json__destroy_and_free_52byte_with_dtor_b | Calls tree dtor B then frees block |
| 0x00519850 | 129 | json__destroy_and_free_52byte_with_dtor_c | Calls tree dtor C then frees block |
| 0x005198E0 | 113 | json__destroy_and_free_44byte_005198e0 | Calls dtor then frees 0x2C-byte block |
| 0x00519960 | 78 | json__free_80byte_block_00519960 | Frees 0x50-byte (80-byte) heap block if non-null. Cleanup callback in destructor chain. |
| 0x005199B0 | 78 | json__free_76byte_block_005199b0 | Frees 0x4C-byte (76-byte) heap block if non-null. Cleanup callback in destructor chain. |
| 0x00519A00 | 78 | json__free_44byte_block_00519a00 | Frees 0x2C-byte (44-byte) heap block if non-null. Cleanup callback in destructor chain. |
| 0x00519A50 | 78 | json__free_44byte_block_00519a50 | Frees 0x2C-byte (44-byte) heap block if non-null. Cleanup callback in destructor chain. |
| 0x00519AA0 | 81 | json__free_128byte_block_00519aa0 | Frees 0x80-byte (128-byte) heap block if non-null. Cleanup callback in destructor chain. |
| 0x00519B00 | 78 | json__free_52byte_block_00519b00 | Frees 0x34-byte (52-byte) heap block if non-null. Cleanup callback in destructor chain. |
| 0x00519B50 | 81 | json__destroy_with_dtor_00519b50 | JSON library destructor cleanup function |
| 0x00519BB0 | 78 | json__destroy_with_dtor_00519bb0 | JSON library destructor cleanup function |
| 0x00519C00 | 78 | json__destroy_with_dtor_00519c00 | JSON library destructor cleanup function |
| 0x00519C50 | 78 | json__destroy_with_dtor_00519c50 | JSON library destructor cleanup function |
| 0x00519CA0 | 78 | json__destroy_with_dtor_00519ca0 | JSON library destructor cleanup function |
| 0x00519CF0 | 78 | json__destroy_with_dtor_00519cf0 | JSON library destructor cleanup function |
| 0x00519DF0 | 110 | json__bignum_free_buffer_00519df0 | Frees the dynamically allocated bignum digit buffer at offset+0x14. Checks allocation alignment for large buffers (>0xfff). Clears buffer only if the dynamic flag (bit 0 of byte at offset+8) is set. |
| 0x00519E70 | 170 | json__string_destructor_00519e70 | Destroys std::string and releases memory |
| 0x00519F30 | 87 | json__rbtree_destroy_0x2c_00519f30 | Destroys a red-black tree with 0x2c-byte nodes. Recursively destroys all child nodes via json__rbtree_destroy_nodes_0x2c, then frees the sentinel/root node. |
| 0x00519F90 | 87 | json__rbtree_destroy_0x40_00519f90 | Destroys a red-black tree with 0x40-byte nodes. Recursively destroys all child nodes via json__rbtree_destroy_nodes_0x40, then frees the sentinel/root node. |
| 0x00519FF0 | 87 | json__rbtree_destroy_vec_0x34_00519ff0 | Destroys a red-black tree with 0x34-byte nodes containing vectors. Recursively destroys nodes via json__rbtree_destroy_nodes_vec_0x34, then frees the root node. |
| 0x0051A050 | 87 | json__rbtree_destroy_tree_0x34_0051a050 | Destroys a red-black tree with 0x34-byte nodes containing sub-trees. Recursively destroys nodes via json__rbtree_destroy_nodes_tree_0x34, then frees the root node. |
| 0x0051A0B0 | 111 | json__dtor_vector_and_two_strings_0051a0b0 | Exception/unwind destructor that clears a vector (via json__vector_clear_and_free) and then destroys two std::string members in sequence. |
| 0x0051A120 | 99 | json__dtor_two_strings_0051a120 | Exception/unwind destructor that destroys two std::string members in sequence. |
| 0x0051A190 | 68 | json__dtor_string_wrapper_0051a190 | Simple SEH unwind handler that destroys a single std::string member. |
| 0x0051A1E0 | 65 | json__dtor_string_wrapper_0051a1e0 | Simple SEH unwind handler that destroys a single std::string member. |
| 0x0051A230 | 111 | json__dtor_three_strings_0051a230 | Exception/unwind destructor that destroys three std::string members in sequence with staged unwind state tracking. |
| 0x0051A2A0 | 127 | json__dtor_rbtree_and_string_0051a2a0 | Exception/unwind destructor that destroys a red-black tree (0x34-byte nodes) at offset+0x1c and then destroys a std::string member. |
| 0x0051A320 | 86 | json__dtor_multi_rbtree_and_string_0051a320 | Exception/unwind destructor that calls json__destroy_11_rbtrees to destroy a multi-rbtree container, then destroys a std::string member. |
| 0x0051A380 | 86 | json__dtor_string_pair_0051a380 | Exception/unwind destructor that destroys two std::string members in sequence (a string pair). |
| 0x0051A3E0 | 86 | json__dtor_vector_and_string_0051a3e0 | Exception/unwind destructor that clears a vector (via json__vector_clear_and_free) then destroys a std::string member. |
| 0x0051A440 | 86 | json__dtor_nested_vector_and_string_0051a440 | Exception/unwind destructor that clears a nested vector (via json__nested_vector_clear_and_free) then destroys a std::string member. |
| 0x0051A4A0 | 86 | json__dtor_dcb0_and_string_0051a4a0 | Exception/unwind destructor that calls json__internal_0051dcb0 to destroy a container, then destroys a std::string member. |
| 0x0051A500 | 65 | json__dtor_string_wrapper_0051a500 | Simple SEH unwind handler that destroys a single std::string member. |
| 0x0051A550 | 5 | json__vector_clear_and_free_0051a550 | Frees a vector's dynamically allocated buffer. Handles large allocation alignment check (>0xfff). Zeros out the vector's begin/end/capacity pointers after freeing. Elements are 4 bytes each. |
| 0x0051A570 | 5 | json__nested_vector_clear_and_free_0051a570 | Destroys a vector of vectors. Iterates through each 0xc-byte element calling json__vector_clear_and_free on each sub-vector, then frees the outer vector's buffer and zeros its pointers. |
| 0x0051A590 | 129 | json__vector_free_8byte_elems_0051a590 | Frees a vector's dynamically allocated buffer with 8-byte elements. Handles large allocation alignment check (>0xfff). Zeros out begin/end/capacity pointers after freeing. |
| 0x0051A620 | 86 | json__dtor_two_strings_0051a620 | Exception/unwind destructor that destroys two std::string members in sequence. |
| 0x0051A680 | 65 | json__vector_clear_wrapper_0051a680 | SEH unwind handler that wraps json__vector_clear_and_free to clear/free a vector buffer. |
| 0x0051A6D0 | 98 | json__dtor_vector_and_two_strings_0051a6d0 | Exception/unwind destructor that clears a vector (via json__vector_clear_and_free) then destroys two std::string members in sequence. |
| 0x0051A740 | 86 | json__dtor_two_strings_0051a740 | Exception/unwind destructor that destroys two std::string members in sequence. |
| 0x0051A7A0 | 86 | json__dtor_two_strings_0051a7a0 | Exception/unwind destructor that destroys two std::string members in sequence. |
| 0x0051A800 | 102 | json__rbtree_destroy_at_offset4_0051a800 | Destroys a red-black tree (0x34-byte nodes) located at offset+4 of the object. Recursively destroys child nodes then frees the root. |
| 0x0051A870 | 508 | json__destroy_11_rbtrees_0051a870 | Major compound destructor that tears down 11 red-black trees in reverse order: 1 string dtor, 8 rbtrees with 0x34 vec nodes, 2 rbtrees with 0x40 nodes, and 1 rbtree with 0x2c nodes. Used for a large JSON container class with multiple sorted maps. |
| 0x0051AA70 | 71 | json__free_locale_wrapper_0051aa70 | SEH unwind handler that calls _free_locale on the locale object stored in param_1[0]. Frees the C runtime locale associated with a JSON parser/formatter. |
| 0x0051AAC0 | 148 | json__bignum_copy_assign_0051aac0 | Bignum copy/assignment operator. Copies digit array data from param_2 to param_1, resizing the destination if source is larger (memset zeros new space). Copies the dynamic allocation flag (bit 1) and uses memcpy for the digit data. Elements are 8 bytes each (64-bit limbs). |
| 0x0051AB60 | 126 | json__object_items_accessor_0051ab60 | JSON object items accessor. Checks type field: type 10 (array) calls pbackfail for iteration, type 11 (object) returns iterator pair from param_3. Throws json type_error for other types. Returns pointer to param_2 with object ptr and iterator range. |
| 0x0051ABE0 | 570 | json__subscript_operator_0051abe0 | JSON subscript operator (operator[]). Supports array type (9) and object/ordered_map type (11). For arrays: validates index bounds, returns pointer to element at index*0x10. For objects: validates index bounds, returns pointer at index*0x28+0x18. Throws parse_error for out-of-bounds, type_error for unsupported types. Also handles auto-vivification for object key access. |
| 0x0051AE20 | 213 | json__bignum_multiply_assign_0051ae20 | Bignum multiply-assign operation. Takes a signed 64-bit value (param_10:param_11), handles sign via absolute value, calls json__bignum_multiply, then copies result back. Frees temp buffer if dynamically allocated. Flips sign bit if input was negative. |
| 0x0051AF00 | 112 | json__bignum_negate_0051af00 | Bignum unary negation. Copies the bignum via json__bignum_copy_or_allocate then flips the sign bit (bit 1 of byte at offset+8) via XOR. |
| 0x0051AF70 | 163 | json__bignum_subtract_assign_0051af70 | Bignum subtract-assign. Calls json__bignum_subtract to compute the difference, copies result back via json__bignum_copy_or_allocate, then frees temporary buffer if dynamically allocated. |
| 0x0051B020 | 310 | json__bignum_subtract_signed_0051b020 | Bignum subtract with sign handling. Handles negative input by negating and setting sign flag. Constructs a temporary bignum from signed 64-bit value, calls json__bignum_subtract, copies result back, and frees both temporary buffers. |
| 0x0051B160 | 571 | json__bignum_multiply_0051b160 | Bignum multiplication (schoolbook algorithm). Multiplies each 64-bit limb of this by (param_2:param_3) using __allmul for 64-bit multiply, accumulating carries. Stores results in the digit array. Trims leading zero limbs. Clears sign if result is zero. |
| 0x0051B3A0 | 581 | json__bignum_add_0051b3a0 | Bignum addition. If signs differ, delegates to subtraction (negate + subtract). Otherwise: takes max(len1,len2)+1 limbs, adds limb-by-limb with carry propagation. Trims leading zeros. Clears sign if result is zero. |
| 0x0051B5F0 | 697 | json__bignum_subtract_0051b5f0 | Bignum subtraction. If signs differ, delegates to addition (negate + add). If same sign: compares magnitudes -- if \|this\| > \|other\|, subtracts normally with borrow; otherwise swaps operands, subtracts, and negates result. Trims leading zeros. |
| 0x0051B8B0 | 456 | json__bignum_shift_right_0051b8b0 | Bignum right shift by param_2 bits. First shifts by whole 64-bit words (param_2>>6), then shifts remaining bits within words using __aullshr, propagating bits from higher words into lower words. Trims leading zeros. Clears sign if result is zero. |
| 0x0051BA80 | 480 | json__bignum_shift_left_0051ba80 | Bignum left shift by param_2 bits. First shifts by whole 64-bit words (param_2>>6) by moving data upward, then shifts remaining bits within words using __allshl, propagating overflow bits between adjacent words. Trims leading zeros. Clears sign if result is zero. |
| 0x0051BC60 | 80 | json__dtor_string_and_regex_0051bc60 | Exception/unwind destructor that destroys a std::string member followed by a regex pattern (9-string) destructor. Used for JSON parser regex cleanup. |
| 0x0051BCB0 | 111 | json__exception_dtor_0051bcb0 | JSON exception destructor. Sets vtable pointers for the exception class hierarchy (primary + secondary base), adjusts vbase offset, then resets to json_exception_base vtable and calls __std_exception_destroy to free the exception message string. |
| 0x0051BD20 | 111 | json__exception_dtor_variant_0051bd20 | JSON exception destructor variant. Same pattern as json__exception_dtor_0051bcb0 but with different vtable pointers (different exception subclass). Sets vtable, adjusts vbase, resets to base vtable, calls __std_exception_destroy. |
| 0x0051BDB0 | 38 | json__object_scalar_deleting_dtor_0051bdb0 | JSON object scalar deleting destructor (0x13c bytes). Calls json__string_destructor then conditionally frees the object. |
| 0x0051BDE0 | 108 | json__regex_object_scalar_deleting_dtor_0051bde0 | JSON regex object scalar deleting destructor (0x114 bytes). Destructs STL string and regex pattern, then conditionally frees at offset -0x2c from this pointer. |
| 0x0051BE50 | 136 | json__exception_scalar_deleting_dtor_0051be50 | JSON exception scalar deleting destructor (0x18 bytes). Resets vtable pointers, calls __std_exception_destroy, conditionally frees. |
| 0x0051BEE0 | 136 | json__exception_scalar_deleting_dtor_0051bee0 | JSON exception scalar deleting destructor variant (0x18 bytes). Same pattern as 0051be50 with different vtable. |
| 0x0051BF70 | 30 | json__small_object_scalar_deleting_dtor_0051bf70 | JSON small object scalar deleting destructor (8 bytes). No member cleanup, just conditionally frees memory. |
| 0x0051BFC0 | 162 | json__vector_ptr_reallocate_0051bfc0 | JSON vector reallocate for pointer-sized (4-byte) elements. Checks max capacity (0x3FFFFFFF), frees old buffer with alignment handling, allocates new via json__allocate_4byte_element_array. Updates begin/end/capacity pointers. |
| 0x0051C070 | 22 | json__destroy_68byte_elements_wrapper_0051c070 | Wrapper that forwards to json__destroy_68byte_elements_00510660 with reordered parameters. |
| 0x0051C090 | 36 | json__destroy_range_24byte_string_elements_0051c090 | json: destroy range 24byte string elements 0051c090 |
| 0x0051C0C0 | 36 | json__destroy_range_12byte_vector_elements_0051c0c0 | json: destroy range 12byte vector elements 0051c0c0 |
| 0x0051C0F0 | 36 | json__destroy_range_12byte_nested_elements_0051c0f0 | json: destroy range 12byte nested elements 0051c0f0 |
| 0x0051C120 | 103 | json__buffer_equals_0051c120 | JSON buffer equality comparison. Compares two buffers byte-by-byte. First checks if lengths match (param_1[1] vs param_3), then compares in 4-byte chunks with byte-level tail comparison. Returns 1 if equal, 0 if not. |
| 0x0051DAA0 | 10 | json__throw_map_set_too_long_0051daa0 | Throws std::_Xlength_error with message "map_set_too_long". Called when JSON map/set container exceeds maximum size. |
| 0x0051DAB0 | 129 | json__vector_clear_and_free_4byte_0051dab0 | Clears and frees a JSON vector of 4-byte elements. Handles large allocation alignment (>0xFFF bytes reads original pointer from offset -4). Sets begin/end/capacity to 0. |
| 0x0051DB40 | 170 | json__vector_destroy_68byte_elements_and_free_0051db40 | Destroys a JSON vector of 0x44-byte (68-byte) elements. First calls json__destroy_68byte_elements to destruct each element, then frees the buffer with alignment handling. Zeroes the vector state. |
| 0x0051DBF0 | 174 | json__vector_destroy_12byte_vector_elements_0051dbf0 | Destroys a JSON vector of 0xc-byte (12-byte) elements that each contain a sub-vector. Iterates each element calling json__vector_clear_and_free_4byte, then frees the outer buffer. Zeroes vector state. |
| 0x0051DCB0 | 174 | json__vector_destroy_12byte_nested_elements_0051dcb0 | Destroys a JSON vector of 0xc-byte (12-byte) elements that each contain a nested 68-byte-element vector. Iterates each element calling json__vector_destroy_68byte_elements_and_free, then frees outer buffer. |
| 0x0051DD70 | 122 | json__init_zero_12byte_array_0051dd70 | Initializes an array of 12-byte (3-field) structs to all zeros. param_1 = destination array, param_2 = count. Each struct has 3 DWORD fields set to 0 (typical vector init: begin=0, end=0, capacity=0). |
| 0x0051DDF0 | 44 | json__copy_8byte_elements_0051ddf0 | json: copy 8byte elements 0051ddf0 |
| 0x0051DE20 | 164 | json__move_12byte_elements_0051de20 | Move-copies a range of 12-byte (3-DWORD) elements from [param_1, param_2) to param_3. Copies all 3 fields then zeroes the source element (move semantics). Used for vector reallocation. |
| 0x0051DED0 | 45 | json__copy_8byte_elements_offset_0051ded0 | Copies a range of 8-byte (2-DWORD) elements using offset-based addressing. param_3 is the offset from source to destination. Copies in-place with displacement. |
| 0x0051DF00 | 10 | json__throw_vector_too_long_0051df00 | Throws std::_Xlength_error("vector_too_long"). Called when JSON vector exceeds maximum capacity. |
| 0x0051DF10 | 10 | json__throw_vector_too_long_0051df10 | Throws std::_Xlength_error("vector_too_long"). Called when JSON vector exceeds maximum capacity. |
| 0x0051DF20 | 10 | json__throw_vector_too_long_0051df20 | Throws std::_Xlength_error("vector_too_long"). Called when JSON vector exceeds maximum capacity. |
| 0x0051DF30 | 10 | json__throw_vector_too_long_0051df30 | Throws std::_Xlength_error("vector_too_long"). Called when JSON vector exceeds maximum capacity. |
| 0x0051DF40 | 10 | json__throw_vector_too_long_0051df40 | Throws std::_Xlength_error("vector_too_long"). Called when JSON vector exceeds maximum capacity. |
| 0x0051DF50 | 10 | json__throw_vector_too_long_0051df50 | Throws std::_Xlength_error("vector_too_long"). Called when JSON vector exceeds maximum capacity. |
| 0x0051DF60 | 10 | json__throw_vector_too_long_0051df60 | Throws std::_Xlength_error("vector_too_long"). Called when JSON vector exceeds maximum capacity. |
| 0x0051DF70 | 92 | json__allocate_4byte_element_array_0051df70 | Allocates array for 4-byte (pointer-sized) elements. Max count 0x40000000. For allocations >0xFFF bytes, uses aligned allocation (32-byte alignment) with original pointer stored at offset -4. Returns pointer to usable memory. |
| 0x0051DFD0 | 100 | json__allocate_68byte_element_array_0051dfd0 | Allocates array for 0x44-byte (68-byte) elements. Max count 0x3C3C3C4. For allocations >0xFFF bytes, uses 32-byte aligned allocation. Returns pointer to usable memory. |
| 0x0051E040 | 95 | json__allocate_12byte_element_array_0051e040 | Allocates array for 0xc-byte (12-byte) elements. Max count 0x15555556. For allocations >0xFFF bytes, uses 32-byte aligned allocation. Returns pointer to usable memory. |
| 0x0051E0A0 | 95 | json__allocate_12byte_element_array_0051e0a0 | Allocates array for 0xc-byte (12-byte) elements. Duplicate of json__allocate_12byte_element_array_0051e040 (same max count 0x15555556, same alignment logic). Likely a separate template instantiation. |
| 0x0051E100 | 58 | json__get_child_string_and_insert | Gets the string data pointer from a JSON node's first child and calls json__internal_00520680. Handles SSO: if string length > 15, uses heap pointer; otherwise uses inline buffer. |
| 0x0051E140 | 159 | json__get_array_iterators_0051e140 | Gets array begin/end iterator pair from a JSON value. Checks type nibble == 9 (array). Returns pair of iterators in param_2. Throws "Not an array" (CxxThrowException) if type mismatch. |
| 0x0051E1E0 | 174 | json__get_array_iterators_recursive_0051e1e0 | Gets array begin/end iterator pair with tag indirection support. Type 9 = direct array, type 0xC = tagged/indirect (follows pointer and recurses). Throws "Not an array" for other types. |
| 0x0051E290 | 199 | json__get_bool_value_0051e290 | Gets boolean value from JSON node. Type 1 = direct bool (byte at offset 2). Types 2/3 = numeric (returns 0 if both DWORDs at offset 8/12 are zero, else 1). Type 0xC = tagged indirect (follows pointer). Throws "Not a bool" for other types. |
| 0x0051E380 | 159 | json__get_byte_string_0051e380 | Gets byte string begin/end pair from JSON value. Type 8 = byte string (reads data ptr and end from child node at offsets 4 and 8). Type 0xC = tagged indirect (follows pointer and recurses). Throws "Not a byte string" for other types. |
| 0x0051E420 | 158 | json__get_cstring_ptr_0051e420 | Gets C string pointer from JSON value. Type 6 = short string (inline at offset 2). Type 7 = long string (pointer at child node offset 4). Type 0xC = tagged indirect (follows pointer, loops). Throws "Not a cstring" for other types. |
| 0x0051E4C0 | 318 | json__value_to_double_0051e4c0 | Converts a JSON value to double. Handles int64 (case 2), uint64 (case 3), half-float (case 4), double (case 5), string-to-double via strtod (cases 6/7), and indirect references (case 0xc). Throws "Not a double" for unsupported types. |
| 0x0051E630 | 181 | json__value_get_string_view_0051e630 | Gets a string view (pointer + length) from a JSON value. Handles short strings (type 6), long strings (type 7), and indirect references (type 0xc). Throws "Not a string" for non-string types. |
| 0x0051E6F0 | 275 | json__bignum_compare_0051e6f0 | Compares two bignum values. First checks sign difference, then compares digit counts, then compares digits element-by-element (64-bit limbs). Negates result if both values are negative. Returns -1/0/1. |
| 0x0051E810 | 165 | json__object_contains_key_0051e810 | Checks if a JSON object contains a given key. Uses equal_range on the sorted object map. Returns true if key found, false otherwise. Follows indirect references (type 0xc). |
| 0x0051E8C0 | 185 | json__bignum_allocate_buffer_0051e8c0 | Allocates buffer for bignum storage. Rounds up capacity to next multiple of 4, allocates capacity*8 bytes (64-bit limbs). Uses aligned allocation for large buffers (>0xFFF bytes). Throws bad_array_new_length on overflow. |
| 0x0051E9A0 | 14 | json__bignum_get_data_ptr_0051e9a0 | Returns pointer to bignum digit data. If bit 0 of flags byte is set, returns the heap-allocated buffer pointer; otherwise returns the inline buffer at offset 0x10. |
| 0x0051EA70 | 64 | json__deallocate_0x44_stride_0051ea70 | Deallocator for 0x44-byte (68 decimal) stride elements. Frees aligned memory with validation for large allocations. Used by JSON library containers. |
| 0x0051EBC0 | 647 | json__grisu2_digit_gen_0051ebc0 | Grisu2 digit generation core algorithm for double-to-string conversion. Generates decimal digits from the scaled mantissa, handling both small and large exponents. Calls grisu2_round_digit for final rounding. Part of the JSON float serialization pipeline. |
| 0x0051EE50 | 3591 | json__bignum_divide_0051ee50 | Bignum division algorithm. Divides this bignum by the divisor, storing quotient in param_10 and remainder in param_11. Handles single-word and multi-word divisors with Knuth's Algorithm D for multi-word case. Includes normalization shift and correction steps. |
| 0x0051FC60 | 110 | json__value_visit_with_error_0051fc60 | Visits a JSON value using a visitor pattern with error handling. Calls value_accept_visitor first, then invokes a vtable callback if initial visit reports no error. Throws json other_error if errors occur during visitation. |
| 0x0051FCD0 | 801 | json__value_accept_visitor_0051fcd0 | JSON value visitor dispatcher. Switches on value type (null=0, bool=1, int64=2, uint64=3, half=4, double=5, string=6/7, tagged=8, array=9, empty=10, object=11, indirect=12) and calls the appropriate visitor vtable method. Recursively visits array/object children. |
| 0x00520030 | 180 | json__get_tag_type_singleton_00520030 | Gets a singleton tag type descriptor. Initializes a static object on first call (thread-safe via init_thread_header/epoch_counter). Returns the type byte and a pointer to the static singleton. |
| 0x005200F0 | 276 | json__object_at_key_005200f0 | Accesses a JSON object value by key. Throws out_of_range if the value is empty (type 10) or key not found. Throws type_error if value is not an object (type 11). Returns pointer to the value associated with the key (at offset 0x18 in the map entry). |
| 0x00520210 | 49 | json__value_get_tag_data_00520210 | Gets tag data (8 bytes at offset 0x10) from a tagged JSON value (type 8). Follows indirect references (type 0xc). Returns 0 for non-tagged types. |
| 0x00520250 | 167 | json__value_find_key_iterator_00520250 | Finds a key in a JSON object and returns an iterator pair. For empty objects (type 10), returns default empty iterator. For objects (type 11), uses sorted_map_equal_range. Throws type_error for other types. |
| 0x00520300 | 767 | json__grisu2_double_to_digits_00520300 | Grisu2 double-to-decimal-digits conversion. Extracts mantissa and exponent from IEEE 754 double, computes boundaries (minus/plus), looks up cached power of 10, performs 64x64 multiplications, then calls grisu2_digit_gen to produce decimal digits. |
| 0x00520600 | 119 | json__serializer_get_inf_string_00520600 | Gets the infinity string representation from the JSON serializer options. If flag bit 2 is set, uses the override string at offset 0x6c; otherwise uses the default or custom string based on field at offset 5. |
| 0x00520680 | 206 | json__string_insert_at_00520680 | Inserts a buffer of characters at a given position in a string. Handles overlapping source/dest regions. If capacity is insufficient, delegates to STL_string__grow_and_insert. Otherwise shifts existing content and copies in-place. |
| 0x00520750 | 41 | json__value_is_array_type_00520750 | Checks if a JSON value is an array type (type 9). Follows indirect references (type 0xc). Returns 1 for array, 0 for other types. |
| 0x00520780 | 32 | json__value_is_string_type_00520780 | Checks if a JSON value is a string type (type 6 or 7). Follows indirect references (type 0xc). Returns 1 for string types, 0 for other types. |
| 0x005207A0 | 91 | json__invoke_visitor_callback_005207a0 | Invokes a visitor callback through a vtable. Calls the method at vtable offset 8 with the stored value and visitor state. Used as part of the JSON visitor pattern dispatch. |
| 0x00520800 | 286 | json__make_integer_error_string_00520800 | Constructs an error message string for integer conversion errors. Error codes: 1="Integer overflow", 2="Invalid digit", 3="Invalid number", default="Unknown to_integer_unchecked error". Allocates heap for longer messages. |
| 0x00520920 | 141 | json__grisu2_multiply_64x64_00520920 | Grisu2 64-bit by 64-bit multiplication producing a 96-bit result (high 64 bits + combined exponent). Used to scale mantissa values by cached powers of 10 during double-to-string conversion. Result stored in param_1[0..2]. |
| 0x005209C0 | 119 | json__serializer_get_nan_string_005209c0 | Gets the NaN string representation from JSON serializer options. If flag bit 1 is set, uses override string at offset 0x54; otherwise uses default or custom string based on field at offset 4. |
| 0x00520A40 | 324 | json__serializer_get_number_string_00520a40 | Gets the number-as-string representation from serializer options. If flag bit 4 is set, uses override at offset 0x84. If flag bit 2, prepends '-' to the infinity string at 0x6c. Otherwise uses default/custom string at offset 0x38/0x84. |
| 0x00520B90 | 222 | json__value_get_object_iterator_range_00520b90 | Gets begin/end iterator range for a JSON object's sorted map. For empty objects (type 10), returns empty range. For objects (type 11), returns {begin, is_object=1, end, is_object=1}. Throws "Not an object" for other types. |
| 0x00520C70 | 79 | json__bignum_trim_leading_zeros_00520c70 | Trims trailing zero limbs from a bignum. Iterates backwards from the last limb, decrementing the count for each zero 64-bit pair. If the result is zero (count reaches 0), clears the sign bit. |
| 0x00520CC0 | 524 | json__bignum_ensure_capacity_00520cc0 | Ensures bignum has at least param_2 limb capacity. If current capacity is sufficient, returns immediately. For heap-allocated bignums, reallocates and copies. For inline bignums, transitions to heap allocation, copying the 2 inline limbs. |
| 0x00520ED0 | 68 | json__bignum_resize_00520ed0 | Resizes bignum to param_2 limbs. Calls ensure_capacity to guarantee space, updates count, then zero-fills any newly added limbs beyond the old count. |
| 0x00520F20 | 367 | json__grisu2_round_digit_00520f20 | Grisu2 rounding algorithm. Decides whether to round up the last generated digit based on the distance to boundaries (delta, dist, rest) and unit size. Decrements the last digit while conditions are met. Returns 1 if rounding succeeded within tolerance, 0 otherwise. |
| 0x00521090 | 210 | json__serializer_begin_array_00521090 | JSON serializer: begins an array. Increments depth counter, checks max nesting depth limit. Writes comma separator if not first element, pushes array state onto stack, writes '['. Handles stack reallocation if needed. |
| 0x00521170 | 210 | json__serializer_begin_object_00521170 | JSON serializer: begins an object. Increments depth counter, checks max nesting depth limit. Writes comma separator if not first element, pushes object state (type=0) onto stack, writes '{'. Handles stack reallocation if needed. |
| 0x00521250 | 170 | json__serializer_write_bool_00521250 | JSON serializer: writes a boolean value ("true" or "false"). Writes comma separator if not first element. Inserts the literal string at the current output position. Increments the parent container's element count. |
| 0x00521300 | 333 | json__serializer_write_binary_00521300 | JSON serializer: writes a binary byte array value. Encodes as hex (mode 1), base64 (mode 2), or base64url (mode 3) based on serializer config. Wraps output in quotes. Writes comma separator if not first element. Increments parent element count. |
| 0x00521450 | 791 | json__serializer_write_double_00521450 | JSON serializer: writes a double value. Handles special cases: NaN (uses nan_string or quoted replacement), infinity (uses inf_string or quoted replacement), negative infinity. For normal values, uses float_to_string_formatter. Falls back to "null" if no special handling configured. Increments parent element count. |
| 0x00521770 | 179 | json__serializer_end_array_00521770 | JSON serializer: ends an array. Decrements depth counter, pops array state from stack, writes ']'. Increments parent container's element count. Throws assertion error if stack is empty. |
| 0x00521830 | 179 | json__serializer_end_object_00521830 | JSON serializer: ends an object. Decrements depth counter, pops object state from stack, writes '}'. Increments parent container's element count. Throws assertion error if stack is empty. |
| 0x00521900 | 408 | json__serializer_write_int64_00521900 | JSON serializer: writes a signed 64-bit integer. Converts int64 to decimal string by repeated division by 10, then outputs digits in reverse order. Prepends '-' for negative values. Writes comma separator if not first element. Throws assertion on buffer overflow. |
| 0x00521AA0 | 119 | json__serializer_write_key_00521aa0 | JSON serializer: writes an object key. Outputs comma if not first key, then writes the key as a quoted+escaped string followed by ':'. Uses escape_string_for_output with the serializer's escape settings. |
| 0x00521B20 | 111 | json__serializer_write_null_00521b20 | JSON serializer: writes a null value. Writes comma separator if not first element, then inserts the literal "null" string. Increments parent container's element count. |
| 0x00521B90 | 157 | json__serializer_write_string_00521b90 | JSON serializer: writes a string value. Writes comma if not first element. For bignum strings (type 6), delegates to serializer_write_bignum. For regular strings, writes quoted+escaped output. Increments parent element count. |
| 0x00521C30 | 488 | json__serializer_write_uint64_00521c30 | JSON serializer: writes an unsigned 64-bit integer. Converts uint64 to decimal string using multiplication by 0xCCCCCCCD (division by 10 via reciprocal), outputs digits in reverse order. Writes comma separator if not first element. Throws assertion on buffer overflow. |
| 0x00521E60 | 832 | json__serializer_write_bignum_00521e60 | JSON serializer: writes a bignum value. Mode 0: writes as unquoted decimal string. Mode 1: quotes+escapes. Mode 2: converts to base64 (standard alphabet). Mode 3: converts to base64url. For modes 2/3, parses decimal digits to bignum, optionally negates, converts to binary, then base64-encodes. Frees temp buffers. |
| 0x006A1890 | 168 | CDataTable__init_hashmap_006a1890 | Initializes hashmap: allocs sentinel node, sets load factor 1.0, prime bucket sizes 7/8, resizes to 16 buckets |
| 0x006A1940 | 168 | CDataTable__init_hashmap_006a1940 | Initializes hashmap variant; same pattern as 006a1890 |
| 0x006A19F0 | 168 | CDataTable__init_hashmap_006a19f0 | Initializes hashmap variant; same pattern as 006a1890 |
| 0x006A2180 | 67 | CDataTable__free_node_0xC_006a2180 | Frees 0xC-byte node at param_1+4 if non-null |
| 0x006A21D0 | 67 | CDataTable__free_node_0x10_006a21d0 | Frees 0x10-byte node at param_1+4 if non-null |
| 0x006A2220 | 67 | CDataTable__free_node_0x10_006a2220 | Frees 0x10-byte node at param_1+4 if non-null |
| 0x006A2270 | 67 | CDataTable__free_node_0x10_006a2270 | Frees 0x10-byte node at param_1+4 if non-null |
| 0x006A22C0 | 67 | CDataTable__free_node_0x10_006a22c0 | Frees 0x10-byte node at param_1+4 if non-null |
| 0x006A2310 | 67 | CDataTable__free_node_0x10_006a2310 | Frees 0x10-byte node at param_1+4 if non-null |
| 0x006A2360 | 67 | CDataTable__free_node_0x10_006a2360 | Frees 0x10-byte node at param_1+4 if non-null |
| 0x006A23B0 | 67 | CDataTable__free_node_0x10_006a23b0 | Frees 0x10-byte node at param_1+4 if non-null |
| 0x006A2400 | 67 | CDataTable__free_node_0x50_006a2400 | Frees 0x50-byte node at param_1+4 if non-null |
| 0x006A2450 | 67 | CDataTable__free_node_0x14_006a2450 | Frees 0x14-byte node at param_1+4 if non-null |
| 0x006A24A0 | 67 | CDataTable__free_node_0x2C_006a24a0 | Frees 0x2C-byte node at param_1+4 if non-null |
| 0x006A24F0 | 67 | CDataTable__free_node_0x10_006a24f0 | Frees 0x10-byte node at param_1+4 if non-null |
| 0x006A2540 | 67 | CDataTable__free_node_0x2C_006a2540 | Frees 0x2C-byte node at param_1+4 if non-null |
| 0x006A2590 | 67 | CDataTable__free_node_0x10_006a2590 | Frees 0x10-byte node at param_1+4 if non-null |
| 0x006A25E0 | 67 | CDataTable__free_node_0x2C_006a25e0 | Frees 0x2C-byte node at param_1+4 if non-null |
| 0x006A2630 | 67 | CDataTable__free_node_0x2C_006a2630 | Frees 0x2C-byte node at param_1+4 if non-null |
| 0x006A2680 | 67 | CDataTable__free_node_0x18_006a2680 | Frees 0x18-byte node at param_1+4 if non-null |
| 0x006A26D0 | 67 | CDataTable__free_node_0x18_006a26d0 | Frees 0x18-byte node at param_1+4 if non-null |
| 0x006A2720 | 67 | CDataTable__free_node_0x2C_006a2720 | Frees 0x2C-byte node at param_1+4 if non-null |
| 0x006A2770 | 67 | CDataTable__free_node_0x34_006a2770 | Frees 0x34-byte node at param_1+4 if non-null |
| 0x006A27C0 | 67 | CDataTable__free_node_0x20_006a27c0 | Frees 0x20-byte node at param_1+4 if non-null |
| 0x006A2810 | 67 | CDataTable__free_node_0x18_006a2810 | Frees 0x18-byte node at param_1+4 if non-null |
| 0x006A2860 | 131 | CDataTable__destroy_list_0x10_006a2860 | Destroys vector then walks+frees 0x10-byte linked list nodes and sentinel from param_1+4 |
| 0x006A28F0 | 131 | CDataTable__destroy_list_0x10_006a28f0 | Destroys vector then walks+frees 0x10-byte linked list nodes and sentinel |
| 0x006A2980 | 131 | CDataTable__destroy_list_0x10_006a2980 | Destroys vector then walks+frees 0x10-byte linked list nodes and sentinel |
| 0x006A2A10 | 131 | CDataTable__destroy_list_0x10_006a2a10 | Destroys vector then walks+frees 0x10-byte linked list nodes and sentinel |
| 0x006A2AA0 | 131 | CDataTable__destroy_list_0x10_006a2aa0 | Destroys vector then walks+frees 0x10-byte linked list nodes and sentinel |
| 0x006A2B30 | 131 | CDataTable__destroy_list_0x10_006a2b30 | Destroys vector then walks+frees 0x10-byte linked list nodes and sentinel |
| 0x006A2BC0 | 131 | CDataTable__destroy_list_0x10_006a2bc0 | Destroys vector then walks+frees 0x10-byte linked list nodes and sentinel |
| 0x006A2C50 | 102 | CDataTable__destroy_umap_0x50_006a2c50 | Destroys vector then frees unordered_map nodes and 0x50-byte sentinel from param_1+4 |
| 0x006A2CC0 | 102 | CDataTable__destroy_umap_0x14_006a2cc0 | Destroys vector then frees unordered_map with 0x14-byte sentinel |
| 0x006A2D30 | 102 | CDataTable__destroy_umap_0x2C_006a2d30 | Destroys vector then frees unordered_map with 0x2C-byte sentinel |
| 0x006A2DA0 | 131 | CDataTable__destroy_list_0x10_006a2da0 | Destroys vector then walks+frees 0x10-byte linked list nodes and sentinel |
| 0x006A2E30 | 102 | CDataTable__destroy_umap_0x2C_006a2e30 | Destroys vector then frees unordered_map with 0x2C-byte sentinel (nested destroy) |
| 0x006A2EA0 | 131 | CDataTable__destroy_list_0x10_006a2ea0 | Destroys vector then walks+frees 0x10-byte linked list nodes and sentinel |
| 0x006A2F30 | 102 | CDataTable__destroy_umap_0x2C_006a2f30 | Destroys vector then frees unordered_map with 0x2C-byte sentinel |
| 0x006A2FA0 | 102 | CDataTable__destroy_umap_0x2C_006a2fa0 | Destroys vector then frees unordered_map with 0x2C-byte sentinel (nested destroy) |
| 0x006A3010 | 131 | CDataTable__destroy_list_0x18_006a3010 | Destroys vector then walks+frees 0x18-byte linked list nodes and sentinel |
| 0x006A30A0 | 125 | CDataTable__free_vector_buffer_006a30a0 | Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers |
| 0x006A3130 | 125 | CDataTable__free_vector_buffer_006a3130 | Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers |
| 0x006A31C0 | 125 | CDataTable__free_vector_buffer_006a31c0 | Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers |
| 0x006A3250 | 125 | CDataTable__free_vector_buffer_006a3250 | Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers |
| 0x006A32E0 | 125 | CDataTable__free_vector_buffer_006a32e0 | Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers |
| 0x006A3370 | 125 | CDataTable__free_vector_buffer_006a3370 | Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers |
| 0x006A3400 | 125 | CDataTable__free_vector_buffer_006a3400 | Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers |
| 0x006A3490 | 125 | CDataTable__free_vector_buffer_006a3490 | Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers |
| 0x006A3520 | 125 | CDataTable__free_vector_buffer_006a3520 | Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers |
| 0x006A35B0 | 125 | CDataTable__free_vector_buffer_006a35b0 | Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers |
| 0x006A3640 | 125 | CDataTable__free_vector_buffer_006a3640 | Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers |
| 0x006A36D0 | 125 | CDataTable__free_vector_buffer_006a36d0 | Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers |
| 0x006A3760 | 125 | CDataTable__free_vector_buffer_006a3760 | Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers |
| 0x006A37F0 | 125 | CDataTable__free_vector_buffer_006a37f0 | Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers |
| 0x006A3880 | 125 | CDataTable__free_vector_buffer_006a3880 | Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers |
| 0x006A3910 | 125 | CDataTable__free_vector_buffer_006a3910 | Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers |
| 0x006A39A0 | 78 | CDataTable__free_node_0xC_006a39a0 | Frees 0xC-byte node at param_1+4 if non-null |
| 0x006A39F0 | 78 | CDataTable__free_node_0x10_006a39f0 | Frees 0x10-byte node at param_1+4 if non-null |
| 0x006A3A40 | 78 | CDataTable__free_node_0x10_006a3a40 | Frees 0x10-byte node at param_1+4 if non-null |
| 0x006A3A90 | 78 | CDataTable__free_node_0x10_006a3a90 | Frees 0x10-byte node at param_1+4 if non-null |
| 0x006A3AE0 | 78 | CDataTable__free_node_0x10_006a3ae0 | Frees 0x10-byte node at param_1+4 if non-null |
| 0x006A3B30 | 78 | CDataTable__free_node_0x10_006a3b30 | Frees 0x10-byte node at param_1+4 if non-null |
| 0x006A3B80 | 78 | CDataTable__free_node_0x10_006a3b80 | Frees 0x10-byte node at param_1+4 if non-null |
| 0x006A3BD0 | 78 | CDataTable__free_node_0x10_006a3bd0 | Frees 0x10-byte node at param_1+4 if non-null |
| 0x006A3C20 | 154 | CDataTable__destroy_compound_0x50_006a3c20 | Destroys compound struct: calls two sub-destructors for lists, then frees 0x50-byte allocation |
| 0x006A3CC0 | 110 | CDataTable__destroy_tree_0x14_006a3cc0 | Destroys BST via umap clear, then frees 0x14-byte tree sentinel node |
| 0x006A3D30 | 123 | CDataTable__destroy_list_and_free_0x2C | Destroys inner list then frees outer 0x2C-byte node at param_1+4 |
| 0x006A3DB0 | 78 | CDataTable__free_node_0x10_006a3db0 | Frees 0x10-byte node at param_1+4 if non-null |
| 0x006A3E00 | 155 | CDataTable__destroy_compound_0x2C_006a3e00 | Destroys vector + umap at inner offset 0x10, then frees outer 0x2C-byte node |
| 0x006A3EA0 | 78 | CDataTable__free_node_0x10_006a3ea0 | Frees 0x10-byte node at param_1+4 if non-null |
| 0x006A3EF0 | 123 | CDataTable__destroy_list_and_free_0x2C_v2 | Destroys inner list then frees 0x2C-byte node; same pattern as 006a3d30 |
| 0x006A3F70 | 155 | CDataTable__destroy_compound_0x2C_006a3f70 | Destroys vector + umap at inner offset, then frees 0x2C-byte node |
| 0x006A4010 | 78 | CDataTable__free_node_0x18_006a4010 | Frees 0x18-byte node at param_1+4 if non-null |
| 0x006A4060 | 76 | CDataTable__free_alloc_0x14_006a4060 | Frees 0x14-byte allocation at *param_1 if non-null, then zeros pointer |
| 0x006A40C0 | 111 | CDataTable__destroy_tree_and_free_0x18 | Traverses tree calling CFmt__destroy_tree_24byte_nodes on each subtree, then frees 0x18-byte nodes in linked list |
| 0x006A4140 | 76 | CDataTable__destroy_string_tree_and_free_0x2C | Destroys tree with 44-byte string nodes via CFmt__destroy_tree_44byte_string_nodes, then frees 0x2C-byte root allocation |
| 0x006A41A0 | 76 | CDataTable__destroy_tree_and_free_0x34 | Destroys tree with 52-byte nodes via CFmt__destroy_tree_52byte_nodes, then frees 0x34-byte root allocation |
| 0x006A4210 | 111 | CDataTable__destroy_tree_and_free_0x18_v2 | Traverses tree calling CFmt__destroy_tree_24byte_nodes_b on each subtree, then frees 0x18-byte nodes in linked list |
| 0x006A42B0 | 78 | CDataTable__free_node_0x18_006a42b0 | Frees 0x18-byte node at param_1+4 if non-null |
| 0x006A4300 | 116 | CDataTable__destroy_string_and_free_0x2C | Destroys string member then frees 0x2C-byte node at param_1+4 |
| 0x006A4380 | 116 | CDataTable__destroy_fmt_and_free_0x34 | Calls CFmt destructor on inner object, then frees 0x34-byte node at param_1+4 |
| 0x006A4400 | 78 | CDataTable__free_node_0x20_006a4400 | Frees 0x20-byte node at param_1+4 if non-null |
| 0x006A4450 | 78 | CDataTable__free_node_0x18_006a4450 | Frees 0x18-byte node at param_1+4 if non-null |
| 0x006A44A0 | 78 | CDataTable__free_node_0x18_006a44a0 | Frees 0x18-byte node at param_1+4 if non-null |
| 0x006A44F0 | 78 | CDataTable__free_node_0x2C_006a44f0 | Frees 0x2C-byte node at param_1+4 if non-null |
| 0x006A4540 | 78 | CDataTable__free_node_0x34_006a4540 | Frees 0x34-byte node at param_1+4 if non-null |
| 0x006A4590 | 78 | CDataTable__free_node_0x20_006a4590 | Frees 0x20-byte node at param_1+4 if non-null |
| 0x006A45E0 | 78 | CDataTable__free_node_0x18_006a45e0 | Frees 0x18-byte node at param_1+4 if non-null |
| 0x006A4630 | 103 | CDataTable__destroy_list_0xC_006a4630 | Walks and frees 0xC-byte linked list nodes from *param_1, then frees sentinel |
| 0x006A46A0 | 103 | CDataTable__destroy_list_0x10_006a46a0 | Walks and frees 0x10-byte linked list nodes, then frees sentinel |
| 0x006A4710 | 103 | CDataTable__destroy_list_0x10_006a4710 | Walks and frees 0x10-byte linked list nodes, then frees sentinel |
| 0x006A4780 | 103 | CDataTable__destroy_list_0x10_006a4780 | Walks and frees 0x10-byte linked list nodes, then frees sentinel |
| 0x006A47F0 | 103 | CDataTable__destroy_list_0x10_006a47f0 | Walks and frees 0x10-byte linked list nodes, then frees sentinel |
| 0x006A4860 | 103 | CDataTable__destroy_list_0x10_006a4860 | Walks and frees 0x10-byte linked list nodes, then frees sentinel |
| 0x006A48D0 | 103 | CDataTable__destroy_list_0x10_006a48d0 | Walks and frees 0x10-byte linked list nodes, then frees sentinel |
| 0x006A4940 | 103 | CDataTable__destroy_list_0x10_006a4940 | Walks and frees 0x10-byte linked list nodes, then frees sentinel |
| 0x006A49B0 | 73 | CDataTable__destroy_umap_0x50_006a49b0 | Destroys unordered_map nodes and frees 0x50-byte sentinel |
| 0x006D9620 | 661 | CDataTable__load_int_pairs_from_file | Loads tab-separated integer pairs from text file, strips comments, stores in vector |
| 0x006DA6A0 | 9 | CDataTable__read_stream_line | Tail-calls STL_istream_getline_delim to read a line from the data table's input stream. |
| 0x006DA720 | 264 | CDataTable__ctor_with_key | Constructor for CDataTable entry. Initializes two linked list heads (8-byte nodes), two SSO strings, and stores a 2-byte key from param_2. |
| 0x006DA830 | 258 | CDataTable__ctor_default | Default constructor for CDataTable entry. Initializes two linked list heads, two SSO strings, and sets the key to 1. |
| 0x006DA940 | 68 | CDataTable__dtor_string | Destroys a CDataTable string member via STL_string_dtor within a SEH frame. |
| 0x006DA990 | 69 | CDataTable__stream_sentry_dtor | Destructor for stream sentry object. Calls virtual release method on the streambuf lock. |
| 0x006DA9E0 | 80 | CDataTable__stream_sentry_dtor_unlock | Destructor for stream sentry object. Calls virtual unlock/release on the streambuf, variant with SEH frame. |
| 0x006DAA30 | 1385 | JsonReader__parse_from_istream | Reads entire input stream into a string via STL_istream_getline_delim, then calls JsonReader__parse_document. On parse failure, throws logic_error with formatted error messages. Cleans up two deques of parse nodes/errors. |
| 0x006DAFA0 | 418 | JsonReader__deque_grow_A | Grows a deque's backing array (power-of-2 capacity). Doubles size until enough free slots exist, reallocates and rearranges the circular buffer. Used by JsonReader for node/error storage. |
| 0x006DB150 | 400 | JsonReader__deque_grow_B | Grows a deque's backing array (power-of-2 capacity), variant B. Similar to deque_grow_A but uses different element size divisor (0x6666666 overflow check vs 0xfffffff). |
| 0x006DB2F0 | 227 | JsonReader__dtor_deque | Destructor for JsonReader's deque. Destroys string elements in reverse, frees 0x28-byte node blocks, and frees the backing pointer array. |
| 0x006DB400 | 417 | JsonReader__append_comment_text | Appends comment text to the JsonReader's comment buffer. If comment placement is not 1 (before), prepends a newline separator first. Builds temporary string from [param_2, param_3) range. |
| 0x006DB5B0 | 400 | JsonReader__push_error | Pushes a parse error onto the JsonReader's error deque. Stores error message string, token range (begin/end offsets), and an extra field. Grows the deque if needed, allocates 0x28-byte error nodes. |
| 0x006DB740 | 34 | JsonReader__add_error_and_recover | Convenience wrapper: calls push_error then recover_from_error. Used when a parse error is non-fatal and the reader should attempt recovery. |
| 0x006DB770 | 13 | JsonReader__set_collect_comments_flag | Sets the collect-comments flag to 1 (true). Stored as a 2-byte field on the reader. |
| 0x006DB780 | 549 | JsonReader__encode_unicode_to_utf8 | Encodes a Unicode codepoint (param_2) to UTF-8 into a std::string (param_1). Handles 1-byte (ASCII < 0x80), 2-byte (< 0x800), 3-byte (< 0x10000), and 4-byte (<= 0x10FFFF) encodings. Rejects codepoints > 0x10FFFF. |
| 0x006DB9B0 | 41 | JsonReader__contains_newline | JsonReader: contains newline |
| 0x006DB9E0 | 48 | JsonReader__deque_back | Returns pointer to the back element of a deque. Computes (front + count - 1) modulo capacity using the deque's map/block structure. |
| 0x006DBA10 | 781 | JsonReader__parse_float_value | Parses floating point JSON value via sscanf, stores as double in JsonValue |
| 0x006DBD20 | 738 | JsonReader__parse_number_value | Parses JSON number: detects float chars (.eE+-), delegates to float parser or parses integer |
| 0x006DC010 | 294 | JsonReader__parse_string_value | Parses JSON quoted string token, creates string JsonValue from parsed content |
| 0x006DC140 | 778 | JsonReader__decode_string | Decodes JSON string with escape sequences (\\n,\\t,\\u etc), handles unicode surrogates |
| 0x006DC4D0 | 656 | JsonReader__decode_unicode_surrogate_pair | Decodes UTF-16 surrogate pair from \\uXXXX\\uXXXX escape sequences into codepoint |
| 0x006DC760 | 640 | JsonReader__decode_unicode_escape | Reads 4 hex digits after \\u escape, converts to 16-bit codepoint value |
| 0x006DCA20 | 269 | JsonReader__match_token_end | Skips whitespace then verifies expected end token matches, reports error on mismatch |
| 0x006DCB30 | 1389 | JsonReader__get_formatted_error_messages | Builds formatted error string from all collected parse errors with line/column info |
| 0x006DD0A0 | 234 | JsonReader__get_location_line_column | Counts lines and columns from document start to given position, returns "Line N, Column M" |
| 0x006DD190 | 83 | JsonReader__get_line_and_column | Calculates line number and column from document start, handles CR/LF/CRLF |
| 0x006DD210 | 80 | JsonReader__match_keyword | Matches expected keyword (true/false/null) against current parser position |
| 0x006DD260 | 280 | JsonReader__parse_from_string | Entry point for parsing JSON from std::string, converts to char range and calls parse_document |
| 0x006DD380 | 71 | JsonReader__parse_from_std_string | Parses JSON from a std::string. Copies the input string to internal document buffer, then calls parse_document on it. |
| 0x006DD3D0 | 552 | JsonReader__parse_document | Core document parser: initializes state, reads tokens, validates root is object/array |
| 0x006DD600 | 133 | JsonReader__deque_push_back | Pushes an element onto the back of a deque. Grows the deque if (front + count) would exceed capacity. Allocates 0x10-byte blocks as needed. |
| 0x006DD690 | 744 | JsonReader__parse_array | Parses JSON array: reads '[', iterates values separated by commas, expects ']' |
| 0x006DD980 | 74 | JsonReader__skip_block_comment | Skips a C-style block comment (/* ... |
| 0x006DD9D0 | 216 | JsonReader__parse_comment | Parses a JSON comment starting after '/'. Handles both C-style (/* ... |
| 0x006DDAB0 | 40 | JsonReader__skip_cpp_comment | Skips characters until end-of-line (\\r or \\n) for C++-style // comments. Returns 1 always (comment is valid). |
| 0x006DDB20 | 1271 | JsonReader__parse_object | Parses JSON object: reads '{', iterates key:value pairs separated by commas, expects '}' |
| 0x006DE060 | 736 | JsonReader__read_token | Tokenizer: skips whitespace, reads next JSON token (string/number/true/false/null/brackets/etc.) |
| 0x006DE400 | 1019 | JsonReader__parse_value | Dispatches parsing by token type: object, array, string, number, bool, null |
| 0x006DE820 | 328 | JsonReader__recover_from_error | Error recovery: skips tokens until matching close bracket/brace found |
| 0x006DE970 | 276 | JsonValue__resize_node_stack | Resizes the parser node stack to target size, creating or destroying nodes as needed |
| 0x006DEA90 | 48 | JsonReader__read_token_skip_comments | Reads next token, skipping comment tokens if comments are allowed |
| 0x006DEAF0 | 13 | JsonFeatures__init_strict_mode | Initializes Json::Features with strict mode flags (no comments, strict root) |
| 0x006DEB30 | 289 | JsonValue__map_equals | Compares two Json::Value object maps for equality by iterating all key-value pairs |
| 0x006DEC60 | 39 | JsonValue__map_compare | Lexicographic comparison of two Json::Value object maps via tree iteration |
| 0x006DECC0 | 241 | JsonValue__copy_tree_recursive | Recursively copies red-black tree nodes for deep-copying Json::Value object maps |
| 0x006DEDD0 | 277 | JsonValue__vector_insert_with_grow | Inserts element into vector with reallocation (32-byte elements), used for Path args |
| 0x006DEF10 | 452 | JsonValue__vector_insert_ptr | Inserts pointer element into vector with reallocation (4-byte elements) |
| 0x006DF0E0 | 274 | JsonPath__vector_insert_arg | Inserts PathArgument into vector with grow, 32-byte stride per element |
| 0x006DF220 | 162 | JsonValue__destroy_tree_nodes | Recursively destroys red-black tree nodes, freeing string keys and node memory |
| 0x006DF2D0 | 162 | JsonValue__destroy_tree_nodes_alt | Alternate recursive tree node destruction with different traversal order |
| 0x006DF380 | 442 | JsonValue__map_find_insert_pos | Finds insertion position for key in RB-tree map, returns node and insert direction |
| 0x006DF540 | 141 | JsonValue__map_lower_bound | RB-tree lower_bound: finds first node with key >= given key via strcmp |
| 0x006DF5D0 | 94 | JsonValue__map_key_not_less | Checks if given key is not less than node's key via strcmp comparison |
| 0x006DF630 | 202 | JsonValue__move_construct_range | Move-constructs a range of JsonValue elements (32-byte stride) to destination buffer |
| 0x006DF700 | 97 | JsonPath__copy_path_argument | Copy-constructs PathArgument: copies string key and index/kind fields |
| 0x006DF770 | 234 | JsonValue__map_insert_or_find | Finds key in map or inserts new node if not found, returns iterator to element |
| 0x006DF860 | 443 | JsonValue__map_tree_compare | JsonValue: map tree compare |
| 0x006DFA20 | 145 | JsonValue__copy_cz_string | Copies CZString key: duplicates string via allocator if owned, copies flags |
| 0x006DFAC0 | 78 | JsonValue__copy_cz_string_simple | Simple CZString copy: duplicates via allocator if owned, no deep value copy |
| 0x006DFB10 | 21 | JsonValue__init_cz_string_index | Initializes CZString with integer index (no string pointer), used for array keys |
| 0x006DFB30 | 59 | JsonValue__init_cz_string_ptr | Initializes CZString with string pointer, optionally duplicating via allocator |
| 0x006DFB80 | 401 | JsonPath__resolve | Resolves a JSON path expression against a value, returns matching sub-values |
| 0x006DFD20 | 139 | JsonValue__move_construct | Move-constructs JsonValue: copies type/data/string, resets source to empty |
| 0x006DFDB0 | 141 | JsonPath__init_arg_from_string | Initializes PathArgument from std::string key with kind=2 (named member) |
| 0x006DFE40 | 107 | JsonPath__init_arg_from_index | Initializes PathArgument from integer index with kind=1 (array element) |
| 0x006DFEB0 | 140 | JsonPath__init_arg_from_cstr | Initializes PathArgument from C-string key with kind=2 (named member) |
| 0x006DFF40 | 99 | JsonPath__init_arg_default | Default-initializes PathArgument with kind=0 (unset), empty string |
| 0x006DFFB0 | 560 | JsonValue__deep_copy | Deep copies JsonValue: handles all types including string duplication, map/array tree copy, comments |
| 0x006E0200 | 65 | JsonValue__init_from_string_owned | Initializes JsonValue as owned string type by duplicating std::string via allocator |
| 0x006E0250 | 34 | JsonValue__init_from_string_ref | Initializes JsonValue as non-owned string reference (no allocation) |
| 0x006E0280 | 25 | JsonValue__init_from_int | Initializes JsonValue as signed integer type (type=1) |
| 0x006E02A0 | 25 | JsonValue__init_from_uint | Initializes JsonValue as unsigned integer type (type=2) |
| 0x006E02C0 | 29 | JsonValue__init_from_double | Initializes JsonValue as double/real type (type=3) |
| 0x006E02E0 | 59 | JsonValue__init_from_char_range | Initializes JsonValue as owned string from char pointer range [begin, end) |
| 0x006E0320 | 50 | JsonValue__init_from_cstr | Initializes JsonValue as owned string type from C-string via allocator duplication |
| 0x006E0360 | 205 | JsonValue__init_by_type | Constructs empty JsonValue by type enum: allocates map for object/array, zeros for scalars |
| 0x006E0450 | 25 | JsonValue__init_from_bool | Initializes JsonValue as boolean type (type=5) |
| 0x006E0470 | 20 | JsonValue__iterator_init | Initializes JsonValue iterator from source, copies pointer and clears flag |
| 0x006E04A0 | 20 | JsonValue__iterator_init_alt | Alternate iterator initialization, copies pointer and clears flag |
| 0x006E04C0 | 22 | JsonValue__get_int_value | Returns integer value from JsonValue, reads from value union |
| 0x006E04E0 | 22 | JsonValue__get_uint_value | Returns unsigned integer value from JsonValue, reads from value union |
| 0x006E0510 | 20 | JsonValue__get_double_value | Returns double/float value from JsonValue |
| 0x006E0540 | 67 | JsonValue__free_map_head | Frees the head/sentinel node of the RB-tree map (0x28 bytes) |
| 0x006E0590 | 76 | JsonValue__destroy_map | Destroys entire map: recursively frees tree nodes then frees head node |
| 0x006E05F0 | 84 | JsonValue__destroy_map_and_container | Destroys map tree, frees head node, then frees 8-byte map container |
| 0x006E0650 | 147 | JsonValue__destroy_single_node | Destroys a single map node: frees owned string key via allocator, frees node memory |
| 0x006E06F0 | 78 | JsonValue__free_owned_node | Frees an owned RB-tree node: deletes the 0x28-byte node memory if non-null |
| 0x006E0740 | 90 | JsonValue__destroy_string_vector_elements | Iterates a vector of 0x20-byte string elements, calling STL_string_dtor on each to destroy them |
| 0x006E07A0 | 104 | JsonValue__destroy_and_free_owned_key | Destroys a JsonValue then frees the owned key string via the allocator's release function if owned |
| 0x006E0810 | 129 | JsonValue__free_ptr_vector | Frees a vector of pointers: deallocates buffer and resets size/capacity to zero |
| 0x006E08A0 | 177 | JsonValue__destroy_string_vector_and_free | Destroys all 0x20-byte string elements in a vector, then frees the vector buffer and resets ptr/size/capacity to zero |
| 0x006E0960 | 78 | JsonValue__free_owned_key_via_allocator | Frees an owned key string pointer via the allocator's release function if non-null and owned |
| 0x006E09C0 | 72 | JsonValue__free_comment_string | Frees an owned comment string via allocator's release function |
| 0x006E0A10 | 72 | JsonValue__init_vtable | Initializes vtable pointers for a JsonValue-related class (sets two vtable entries sequentially) |
| 0x006E0A60 | 65 | JsonValue__destroy_string_wrapper | Wrapper that destroys a single std::string via STL_string_dtor |
| 0x006E0AB0 | 194 | JsonValue__destructor | Destroys JsonValue: frees owned strings, maps, arrays, and comment storage |
| 0x006E0B90 | 177 | JsonValue__swap | Swaps contents of two JsonValues: exchanges type, value union, and comment data |
| 0x006E0C50 | 182 | JsonValue__copy_assign | Copy assignment operator: deep copies source then destroys old value |
| 0x006E0D10 | 16 | JsonValue__copy_value_4byte | Copies a single 4-byte value from source to destination (trivial copy helper) |
| 0x006E0D20 | 16 | JsonValue__copy_value_4byte_alt | Copies a single 4-byte value from source to destination (alternate trivial copy helper) |
| 0x006E0D40 | 82 | JsonValue__cz_string_compare | Compares two CZString keys: if both have char* pointers, does byte-by-byte strcmp; if null pointers, compares integer index values |
| 0x006E0DA0 | 422 | JsonValue__operator_equals | Equality comparison operator: compares by type then by value (int/double/string/map) |
| 0x006E0F70 | 17 | JsonValue__operator_not_equal_006e0f70 | Inequality operator: calls operator_equals and inverts the result |
| 0x006E0F90 | 26 | JsonValue__init_cz_string_from_stl | Creates CZString key from std::string, extracting raw pointer |
| 0x006E0FB0 | 19 | JsonValue__resolve_index_by_cstr | Resolves a C-string key to a map entry via operator_index_cstr_nonconst with flag=1 |
| 0x006E0FD0 | 522 | JsonValue__operator_index_int | Array subscript operator[int]: auto-converts null to array, inserts new element if needed |
| 0x006E11E0 | 17 | JsonValue__resolve_index_by_cstr_readonly | Resolves a C-string key to a map entry via operator_index_cstr_nonconst with flag=0 (read-only access) |
| 0x006E1200 | 23 | JsonValue__as_double_wrapper | Thin wrapper that delegates to JsonValue__as_double |
| 0x006E1220 | 160 | JsonValue__as_string | Converts JsonValue to std::string representation |
| 0x006E12C0 | 222 | JsonValue__as_double | Converts JsonValue to double, handles int/uint/real/null/bool types |
| 0x006E1400 | 132 | JsonValue__rbtree_decrement | RB-tree iterator decrement: moves to previous in-order node |
| 0x006E1490 | 78 | JsonValue__cz_string_compare_keys | Compares two CZString keys for ordering: if both have char* pointers, does byte-by-byte comparison; if null, compares integer index values. Returns comparison result for RB-tree key lookup. |
| 0x006E14E0 | 228 | JsonValue__operator_less_than | Less-than comparison operator: compares by type then value (int/real/string/map) |
| 0x006E15F0 | 20 | JsonValue__operator_greater_equal | Greater-or-equal comparison: calls operator_less_than and inverts the result |
| 0x006E1610 | 16 | JsonValue__operator_less_than_wrapper | Thin wrapper that delegates directly to operator_less_than |
| 0x006E1620 | 20 | JsonValue__operator_greater_than | Greater-than comparison: calls operator_less_than with swapped args and inverts result |
| 0x006E1640 | 82 | JsonValue__cz_string_less_than | CZString less-than comparator for RB-tree ordering via strcmp |
| 0x006E16A0 | 169 | JsonValue__conditional_destructor | Conditional destructor: if flags&2, destroys vector elements via _eh_vector_destructor_iterator and optionally frees buffer; otherwise frees owned string via allocator and optionally frees self |
| 0x006E1750 | 97 | JsonValue__vtable_scalar_deleting_dtor | Scalar deleting destructor for JsonValue-related vtable class: sets vtable pointers and optionally frees memory |
| 0x006E17F0 | 186 | JsonValue__replace_vector_buffer | Replaces vector backing buffer: frees old allocation, sets new ptr/size/capacity |
| 0x006E18B0 | 92 | JsonValue__destroy_string_vector_range | Destroys a range of 0x20-byte string elements in a vector by calling STL_string_dtor on each from param_1 to param_2 |
| 0x006E1910 | 151 | JsonValue__map_erase_by_iterator | Erases a map entry by iterator: advances iterator via operator++, calls rbtree_erase_node to remove the node, destroys the value, frees the owned key if applicable, and deletes the 0x28-byte node |
| 0x006E19B0 | 704 | JsonValue__rbtree_erase_node | RB-tree erase: removes node, rebalances with rotations, maintains red-black invariants |
| 0x006E1E90 | 84 | JsonValue__rbtree_rotate_right | RB-tree right rotation for rebalancing after insert/delete |
| 0x006E1EF0 | 144 | JsonValue__vector_reallocate_24byte | Reallocates a vector of 24-byte (0x18) elements: allocates new buffer, moves existing elements, frees old buffer and updates ptr/size/capacity |
| 0x006E1FB0 | 88 | JsonValue__rbtree_rotate_left | RB-tree left rotation for rebalancing after insert/delete |
| 0x006E2010 | 10 | JsonValue__throw_length_error_ptr | Throws std::length_error for pointer vector overflow |
| 0x006E2020 | 10 | JsonValue__throw_length_error_value | Throws std::length_error for value vector overflow |
| 0x006E2030 | 157 | JsonValue__remove_member | Removes member by C-string key from object, returns removed value |
| 0x006E20D0 | 92 | JsonValue__allocate_value_array | Allocates aligned buffer for array of 32-byte JsonValue elements |
| 0x006E2130 | 34 | JsonValue__clear | Clears JsonValue container: resets array/object to empty state |
| 0x006E2160 | 74 | JsonValue__asBool | Converts JsonValue to bool based on type: null=false, int/uint=nonzero, real=nonzero, string=non-empty, bool=direct, array/object=non-empty |
| 0x006E21D0 | 3 | JsonValue__noop_stub | Empty stub function, does nothing (3-byte ret) |
| 0x006E21E0 | 147 | JsonValue__asDouble | Converts JsonValue to double. Returns value directly for int/uint/real types, converts bool (true=1.0, false=0.0). Throws logic_error for string/array/object types. |
| 0x006E22A0 | 133 | JsonValue__asInt | Converts JsonValue to signed int. Handles int (direct), uint (range check), real (range check against INT_MIN/INT_MAX), bool (0/1). Throws logic_error for string/array/object. |
| 0x006E2350 | 269 | JsonValue__operator_asString | JsonValue conversion to std::string. Returns empty string for null, string value for string type, "true"/"false" for bool type. Throws logic_error for int/real/array/object types. |
| 0x006E2480 | 131 | JsonValue__operator_asUInt | JsonValue conversion to unsigned int. Handles int (reject negative), uint (direct), real (range-check against [0, UINT_MAX]), bool (0/1). Throws logic_error for string/array/object types. |
| 0x006E2530 | 57 | JsonValue__get_first_element | Returns first element from array/object (types 6/7) via dereferencing data pointer. Returns null value if type is not array/object or data is null. |
| 0x006E2570 | 57 | JsonValue__get_first_element_006e2570 | Returns first element from array/object (types 6/7) via dereferencing data pointer. Returns null value if type is not array/object or data is null. Variant for cstr key access. |
| 0x006E2610 | 70 | JsonValue__rbtree_distance | Computes distance between two RB-tree iterators by incrementing from begin to end, counting steps. Returns the number of elements in range. |
| 0x006E2660 | 14 | JsonValue__get_with_default_int | Returns member value or integer default if not found |
| 0x006E2700 | 6 | JsonValue__rbtree_node_get_value | Returns pointer to value payload at offset 0x18 within an RB-tree map node. Used internally to access the JsonValue stored in a map entry. |
| 0x006E2710 | 65 | json__strdup | Duplicates a C string: computes length (if -1 passed), allocates buffer via malloc, copies with null terminator. Used by Json internals for string storage. |
| 0x006E2760 | 29 | JsonValue__empty_006e2760 | Returns true if JsonValue is empty: null type returns true, array/object types check if size() == 0. Other types return false. |
| 0x006E2780 | 55 | JsonValue__get_first_element_006e2780 | Returns first element from array/object (types 6/7). Returns null value for other types or empty collections. |
| 0x006E27C0 | 55 | JsonValue__get_first_element_006e27c0 | Returns first element from array/object (types 6/7). Returns null value for other types or empty collections. |
| 0x006E2800 | 674 | JsonValue__remove_member_range | Removes range of members by key from object RB-tree map, returns count removed |
| 0x006E2AB0 | 138 | JsonValue__begin_iterator | Returns begin iterator for array or object traversal |
| 0x006E2B40 | 102 | JsonValue__end_iterator | Returns end iterator for array or object traversal |
| 0x006E2BB0 | 102 | JsonValue__begin_const_iterator | Returns const begin iterator for array or object traversal |
| 0x006E2C20 | 218 | JsonValue__get_comment | Returns comment string at specified placement index (before/after/inside). Accesses comment array at offset 0xc, computes strlen, and constructs std::string result. Returns empty string if no comments. |
| 0x006E2D00 | 533 | JsonValue__getMemberNames | Returns vector of member name strings for object-type value. Iterates RB-tree map nodes, extracts key strings from offset 0x10, and pushes into result vector. Returns empty vector for null type. |
| 0x006E2F20 | 31 | JsonValue__has_comment | Returns true if JsonValue has a comment at specified placement |
| 0x006E2F60 | 166 | JsonValue__operator_index_path | Subscript operator with Json::Path: resolves path expression against value |
| 0x006E3020 | 17 | JsonValue__isArray_or_null | Returns true if JsonValue type is null (0) or array (6). Used for type checking before array operations. |
| 0x006E3050 | 29 | JsonValue__isConvertibleTo | Checks if JsonValue can be converted to target type. Large type-to-type matrix: null converts to anything, int/uint check range for target, real checks range, string/bool/array/object have specific rules. |
| 0x006E31F0 | 30 | JsonValue__rbtree_iterator_equal | Compares two RB-tree iterators for equality. Handles nil node case via is_nil flag, otherwise compares node pointers. |
| 0x006E3240 | 32 | JsonValue__isMember_cstr | Checks if object has member with given C-string key. Looks up key via as_double (find in map) and returns true if found (not sentinel). |
| 0x006E3260 | 23 | JsonValue__isMember_string | Checks if object has member with given std::string key. Extracts c_str from SSO buffer and delegates to isMember_cstr. |
| 0x006E3280 | 8 | JsonValue__isNull | Returns true if this JsonValue is null type (type byte == 0) |
| 0x006E32B0 | 17 | JsonValue__isNull_or_object | Returns true if JsonValue type is null (0) or object (7). Used for type checking before object operations. |
| 0x006E3300 | 18 | JsonValue__compare_less | Comparison helper: calls size() on one value and compares against another. Used to implement relational operators on JsonValue. |
| 0x006E3320 | 285 | JsonPath__constructor | Constructs Json::Path from string path expression, no arguments |
| 0x006E3440 | 76 | JsonPath__resolve_006e3440 | Resolves full path against a JsonValue by iterating PathArgument vector. Type 1 args use integer index (operator[int]), type 2 args use string key (operator[cstr]). Returns final resolved value. |
| 0x006E3490 | 17 | JsonValue__vtable_dispatch | Virtual table dispatch: calls method at vtable offset 0xc with param and -1. Used for allocator-based operations. |
| 0x006E34B0 | 1101 | JsonPath__parse_path_args | Parses path string into PathArgument vector: handles [N], [%], .key, % patterns |
| 0x006E3910 | 9 | JsonValue__vtable_dispatch_006e3910 | Virtual table dispatch: calls method at vtable offset 0x10. Used for allocator-based free operations. |
| 0x006E3920 | 24 | json__free_string | Frees a dynamically allocated string if non-null. Used by Json internals for comment and key cleanup. |
| 0x006E3940 | 96 | JsonPath__resolve_from_string | Resolves a Json path from std::string: extracts c_str from SSO buffer, then delegates to JsonPath__resolve_value. |
| 0x006E39A0 | 310 | JsonPath__resolve_value | Resolves path arguments against a JsonValue, navigating by index or key |
| 0x006E3AE0 | 444 | JsonValue__resize | Resizes JsonValue container. For null type, converts to empty object. For arrays/objects: if target is 0, clears all nodes; if target > current size, expands via operator[]; if target < current size, removes excess elements. |
| 0x006E3CA0 | 228 | JsonPath__resolve_const | Const path resolution: iterates PathArgument vector, for each arg: type 1 accesses by int index (falls back to default if out of range), type 2 accesses by string key (falls back to default if not found). Returns deep copy of final value. |
| 0x006E3D90 | 257 | JsonPath__resolve_nonconst | Non-const path resolution: iterates PathArgument vector. Type 1 args access by int index (returns sentinel if out of range). Type 2 args do map lower_bound lookup by string key (returns sentinel if not found). |
| 0x006E3EA0 | 577 | JsonValue__operator_index_cstr_nonconst | Non-const object operator[const char*]: auto-converts null to object, inserts key if needed |
| 0x006E40F0 | 94 | JsonValue__set_comment | Sets comment string on JsonValue at current placement. Frees old comment via allocator, validates new comment starts with '/' or '*', then duplicates and stores. |
| 0x006E4150 | 152 | JsonReader__add_comment_to_node | Attaches parsed comment to current node value at specified placement |
| 0x006E41F0 | 142 | JsonValue__set_comment_at_placement | Ensures comment array exists (allocates 3-slot array for before/after/inside placements if needed), then delegates to set_comment for the specified placement index. |
| 0x006E4280 | 67 | JsonValue__size | Returns the number of elements in JsonValue. For object (type 6): counts RB-tree nodes via decrement from last. For array (type 7): returns count field directly. Other types return 0. |
| 0x006E42F0 | 36 | JsonValue__swap_8byte | Swaps two 8-byte values (two dwords each) between param_1 and param_2 |
| 0x006E4320 | 81 | JsonValue__swap_12byte_with_flags | Swaps two 12-byte structures including a flags byte at offset 8, with bit 0x100 mask on the flags dword |
| 0x006E4380 | 182 | JsonStyledWriter__write | StyledWriter::write - serializes a JsonValue to a formatted string with indentation. Creates document string, writes value with indent, and cleans up temporary buffers. |
| 0x006E4440 | 5 | JsonValue__get_type_byte | Returns the type byte at offset 8 of a JsonValue, indicating value type (null/int/uint/real/string/bool/array/object) |
| 0x006E4450 | 143 | JsonValue__get_global_singleton | Returns a global singleton pointer, lazy-initializing on first call with thread-safe static init and atexit destructor registration. Used by Json::Value for shared state. |
| 0x006E47A0 | 114 | JsonFastWriter__ctor | Constructor for Json::FastWriter. Sets vtable (first to base Writer, then to FastWriter), initializes document string and flags to zero. |
| 0x006E4820 | 167 | JsonStyledWriter__ctor | Constructor for Json::StyledWriter. Initializes document string, indent string (copies from param), and sets rightMargin to 74 (0x4A). Zeroes child values vector. |
| 0x006E48D0 | 178 | JsonStyledStreamWriter__ctor | Constructor for Json::StyledStreamWriter. Sets vtable, initializes document string, indent string, indentString, rightMargin=0, and addChildValues flag. Larger object than StyledWriter. |
| 0x006E4990 | 91 | JsonStyledWriter__dtor | Destructor for Json::StyledWriter. Resets vtable to StyledWriter then to base Writer, destroys indent string. |
| 0x006E49F0 | 98 | JsonStyledStreamWriter__dtor | Destructor for Json::StyledStreamWriter. Destroys two strings (document + indent) and the child values vector. |
| 0x006E4A60 | 7 | JsonWriter__ctor | Base Json::Writer constructor. Sets vtable to Writer base class (scalar_deleting_destructor vtable). Called by derived writer constructors (FastWriter, StyledWriter, StyledStreamWriter). |
| 0x006E4A70 | 546 | JsonFastWriter__write | FastWriter::write: serializes JsonValue to compact single-line JSON string |
| 0x006E4CA0 | 112 | JsonStyledWriter__scalar_deleting_dtor | Scalar deleting destructor for Json::StyledWriter. Calls StyledWriter dtor, resets vtable to base Writer, then optionally frees memory if flag bit 0 is set. |
| 0x006E4D50 | 58 | JsonWriter__has_comment_for_value | Checks if value has any comments that need to be written |
| 0x006E4D90 | 58 | JsonWriter__has_comment_for_value_alt | Checks if a JsonValue has any comments (before, on-same-line, or after). Identical logic to has_comment_for_value, used by a different writer class. |
| 0x006E4E10 | 125 | JsonStyledWriter__push_indent | Creates an indent string of N space characters and appends it to the current indentation buffer. Used to increase indentation level in StyledWriter. |
| 0x006E4E90 | 293 | JsonStyledWriter__is_multiline_array | Determines if a JSON array should be formatted across multiple lines. Checks element count*3 against rightMargin, tries compact serialization of each element, returns true if total width exceeds margin. |
| 0x006E4FC0 | 296 | JsonStyledStreamWriter__is_multiline_array | StyledStreamWriter version of is_multiline_array. Checks array elements against rightMargin, uses styled recursive write for trial serialization. Returns true if array needs multiline formatting. |
| 0x006E50F0 | 807 | JsonWriter__normalize_eol | Normalizes line endings: converts CR/CRLF to LF in output string |
| 0x006E5420 | 807 | JsonWriter__normalize_eol_alt | Alternate EOL normalizer, same logic as normalize_eol for different context |
| 0x006E5750 | 82 | JsonWriter__push_value_or_write | If addChildValues flag is false, writes string directly to ostream. If true, pushes string into childValues vector (for later compact/multiline decision). |
| 0x006E57B0 | 81 | JsonWriter__push_value_or_append | If addChildValues flag is false, appends string to document buffer. If true, pushes string into childValues vector (for later compact/multiline decision). |
| 0x006E6130 | 285 | JsonWriter__float_to_string | Converts float/double to string with trailing zero stripping for JSON output |
| 0x006E62A0 | 147 | JsonWriter__bool_to_string | Returns "true" or "false" string based on boolean param |
| 0x006E6340 | 132 | JsonStyledWriter__write_value_to_document | StyledWriter::write - clears document, recursively writes the JSON value with pretty formatting, appends newline, and copies result to output string. |
| 0x006E63D0 | 88 | JsonStyledStreamWriter__write | StyledStreamWriter::write - sets output stream, clears document, writes pre-comment + value recursively (compact) + post-comment, outputs newline to stream, then clears stream pointer. |
| 0x006E6430 | 170 | JsonStyledStreamWriter__write_value_to_document | StyledStreamWriter's main value serialization. Clears document and indent, writes pre-comment (pretty), value recursively (styled), post-comment (pretty), appends newline, copies to member at offset 0x10. |
| 0x006E64E0 | 1340 | JsonStyledStreamWriter__write_array_value | Writes JSON array to output stream (StyledStreamWriter). Handles compact single-line format for small arrays and multi-line with indentation for large/complex arrays. Writes [ ], elements, commas, and comments. |
| 0x006E6A20 | 1062 | JsonStyledWriter__write_array_value | Writes JSON array to document string (StyledWriter). Handles compact single-line for small arrays and multi-line with indentation for large arrays. Appends to document member string. |
| 0x006E6E50 | 504 | JsonStyledStreamWriter__write_comment_after_value | Writes post-value comments to output stream (StyledStreamWriter). Handles commentAfterOnSameLine (type 1) with normalized EOL and prefix space, and commentAfter (type 2) on new line with normalized EOL. |
| 0x006E7050 | 489 | JsonStyledWriter__write_comment_after_value | Writes post-value comments to document string (StyledWriter). Handles commentAfterOnSameLine (type 1) with normalized EOL and space prefix, and commentAfter (type 2) on new line with normalized EOL. |
| 0x006E7240 | 196 | JsonStyledStreamWriter__write_pre_comment | Writes commentBefore (type 0) to output stream with EOL normalization. Appends newline separator after the comment. |
| 0x006E7310 | 189 | JsonStyledWriter__write_pre_comment | Writes commentBefore (type 0) to document string with EOL normalization. Appends newline separator after the comment. |
| 0x006E7400 | 68 | JsonStyledWriter__write_indent | Writes indentation to document string (StyledWriter). If last char is not space or newline, appends newline first. Then appends the current indent string. |
| 0x006E7450 | 656 | JsonStyledWriter__write_value_recursive | Recursively writes JSON value by type to document string (StyledWriter). Handles null, int, uint, real, string, bool, array (with comma-separated elements), and object (with key:value pairs). Uses json_int_to_string, json_value_to_quoted_string, etc. |
| 0x006E7700 | 1101 | JsonStyledStreamWriter__write_value_recursive | Recursively writes JSON value by type to output stream (StyledStreamWriter). Handles null, int, uint, real, string, bool, array (delegates to write_array_value), and object (with key:value pairs, indentation, comments). |
| 0x006E7B70 | 1031 | JsonWriter__write_value_recursive_styled | Recursively writes JSON value with styled formatting (key:value with separators) |
| 0x006E7FA0 | 78 | JsonWriter__write_indent_and_value_compact | Writes indentation followed by string value to compact packet stream |
| 0x006E7FF0 | 103 | JsonWriter__write_indent_and_value_pretty | Writes indentation with newline handling followed by string value in pretty mode |
| 0x00AFDE60 | 1611 | CDataTableMgr__load_data_file | Loads a data file by name. Checks if the file exists (in GRF or filesystem depending on param_3 flag), tries alternate paths with prefix substitution if not found. Opens via CFileStream, reads entire content, validates JSON structure (checking for parsing errors), shows a messagebox on error. Returns 1 on success, 0 on failure. |
| 0x01033380 | 10 | thunk_to_JsonValue__destructor_01033380 | Wrapper that calls JsonValue destructor |
No function here matches that. Search all 47,061 functions instead.