Back to legacygamers.net
WARPGATE

DataTable

CDataTable, JsonCpp (JsonReader/Value/Writer), nlohmann::json internals

Functions 607Code 149 KBAddresses 0x00509130 to 0x01033380Group Systems
607 functions
AddressSizeNameDescription
0x005091302034json__parse_uint_array_per_level_00509130JSON 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.
0x005099401020json__parse_bool_map_from_object_00509940JSON 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.
0x00509D40261json__parse_uint_array_from_key_00509d40JSON 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.
0x00509E50280json__parse_double_array_from_key_00509e50JSON 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.
0x00509F70169json__parse_bool_value_from_key_00509f70JSON 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.
0x0050A020493json__parse_int_keyed_string_map_0050a020JSON 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.
0x0050A2101418json__parse_nprotect_gameguard_config_0050a210JSON config parser for NProtect GameGuard settings. Parses NProtectGameGuardCSAuthErrorCode section with fields: ErrorCode (uint array), BanCount (uint), IntervalMinute (uint), BlockPeriodDay (uint). Stores into output struct.
0x0050A7A0550json__parse_string_list_from_array_0050a7a0JSON 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.
0x0050A9D01119json__parse_setting_int_string_vectors_map_0050a9d0JSON 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.
0x0050AE302552json__parse_repute_group_entries_0050ae30JSON 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.
0x0050B8302668json__parse_repute_info_entries_0050b830JSON 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).
0x0050C2A03846json__parse_ez2str_effect_entries_0050c2a0JSON 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.
0x0050D1B03600json__parse_formula_data_entries_0050d1b0JSON 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).
0x0050E0202927json__parse_skill_data_entries_0050e020JSON 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.
0x0050EBF03773json__parse_select_package_item_data_0050ebf0JSON 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.
0x0050FD50484json__parse_object_keys_to_string_vector_0050fd50JSON 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.
0x0050FF40356json__vector_assign_68byte_elements_0050ff40Vector 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.
0x005100B034json__memcpy_range_forward_005100b0Simple memcpy range helper: copies [param_1, param_2) to param_3, returns end pointer (param_3 + size). Used for trivially-copyable element ranges.
0x005100E034json__memcpy_range_forward_005100e0Simple 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.
0x00510110265json__rbtree_copy_nodes_0x2c_00510110Red-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.
0x00510240271json__rbtree_copy_nodes_0x40_00510240Red-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.
0x00510370271json__rbtree_copy_nodes_string_vec_00510370Red-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.
0x005104A0271json__rbtree_copy_nodes_12byte_vec_005104a0Red-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.
0x005105D0137json__copy_assign_68byte_elements_005105d0Copy-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.
0x00510660104json__destroy_68byte_elements_00510660Destructor 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.
0x005106D0414json__rbtree_emplace_string_uint_005106d0Red-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.
0x00510870398json__rbtree_emplace_0x80_node_00510870Red-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.
0x00510A00395json__rbtree_emplace_string_tree_00510a00Red-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.
0x00510B90423json__rbtree_emplace_0x98_node_00510b90Red-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.
0x00510D40395json__rbtree_emplace_key_value_pair_00510d40Red-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.
0x00510ED0447json__rbtree_emplace_string_vector_00510ed0Red-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.
0x00511090447json__rbtree_emplace_string_vector_00511090Red-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).
0x00511250447json__rbtree_emplace_string_vector_00511250Red-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.
0x00511410414json__rbtree_emplace_string_bool_00511410Red-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.
0x005115B0452json__vector_reallocate_68byte_elements_005115b0Vector 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.
0x005117A0435json__vector_reallocate_12byte_with_copy_005117a0Vector 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.
0x00511980264json__vector_reallocate_1byte_elements_00511980Vector 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.
0x00511AB0337json__vector_reallocate_4byte_elements_00511ab0Vector 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.
0x00511C20456json__vector_reallocate_8byte_elements_00511c20Vector 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.
0x00511DF0526json__vector_reallocate_24byte_elements_00511df0Vector 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.
0x00512030337json__vector_reallocate_40byte_elements_00512030Vector 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.
0x005121B0445json__vector_reallocate_8byte_with_null_005121b0Vector 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.
0x00512380128json__rbtree_destroy_nodes_0x2c_00512380Red-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.
0x00512400144json__rbtree_destroy_nodes_0x40_00512400Red-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.
0x00512490144json__rbtree_destroy_nodes_vec_0x34_00512490Red-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.
0x00512520144json__rbtree_destroy_nodes_tree_0x34_00512520Red-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.
0x005125B0128json__rbtree_destroy_nodes_simple_0x2c_005125b0Red-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.
0x00512630144json__rbtree_destroy_nodes_dual_str_0x40_00512630Red-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.
0x005126C0144json__destroy_tree_nodes_recursive_005126c0Recursively destroys JSON tree nodes via post-order traversal
0x00512750144json__destroy_tree_nodes_recursive_00512750Recursively destroys JSON tree nodes with different destructor
0x00512AC0211json__copy_node_array_with_stringsCopies JSON node array 0x44 bytes each with embedded strings
0x00512BA0137json__move_node_array_68byte_elementsMoves JSON node array with 0x44-byte elements
0x00512D90143json__convert_value_wrapperWrapper for json value conversion with type parameter 2
0x00512E20304json__variant_to_uintConverts JSON variant to uint32 based on type tag
0x00512F80749json__value_to_stringConverts JSON value to std::string based on type tag
0x00513290133json__copy_node_fields_with_stringsCopies JSON node fields with two embedded strings
0x00513360215json__encode_binary_to_stringEncodes binary data using hex or base64 encoding
0x00513440106json__allocate_and_copy_string_nodeAllocates 16-byte node and copy-constructs string
0x005134D0106json__allocate_and_assign_string_nodeAllocates 16-byte node and assigns string
0x00513560486json__double_to_string_fixed_notationFormats double with f format handles NaN Inf
0x00513750486json__double_to_string_fixed_notation_v2Formats double with f format variant
0x00513940303json__double_to_decimal_stringFormats double to decimal string returns success
0x00513A70480json__double_to_string_g_formatFormats double with g format handles NaN Inf
0x00513C50480json__double_to_string_g_format_v2Formats double with g format variant
0x00513E30303json__double_to_general_stringFormats double to general notation string
0x00513F60303json__double_to_scientific_stringFormats double to scientific notation
0x00514090131json__emit_decimal_digits_with_localeEmits decimal digits replacing locale separator
0x0051416098json__push_back_string_to_vectorPushes std::string onto vector end
0x005141D0729json__encode_bytes_to_hex_uppercasejson: encode bytes to hex uppercase
0x005144B084json__emit_bytes_as_hex_uppercasejson: emit bytes as hex uppercase
0x0051451027json__base64url_encode_to_stringBase64url encode using URL-safe alphabet
0x0051453027json__base64_encode_to_streamBase64 encode to stream
0x0051455027json__base64_encode_to_stream_v2Base64 encode variant to stream
0x005145701348json__base64_encode_to_string_implBase64 encode 3-byte to 4-char via alphabet table
0x00514AC0354json__base64_encode_to_stream_implBase64 encode to stream via alphabet
0x00514C30382json__base64_encode_to_stream_impl_v2Base64 encode variant to stream
0x00514DB027json__base64url_encode_to_string_nopadBase64url encode without padding
0x00514DD027json__base64_standard_encode_to_streamStandard base64 encode with padding
0x00514DF027json__base64_padded_encode_to_streamPadded base64 encode variant
0x00514E10450json__sorted_map_equal_rangeBinary search equal range in sorted kv array
0x00514FE0877json__escape_string_for_outputJSON string escaping for special chars
0x005153D0547json__emit_signed_exponentEmits signed exponent with plus minus prefix
0x00515600358json__emit_signed_int32Emits signed 32-bit integer to output
0x00515770367json__emit_signed_int64Emits signed 64-bit integer
0x005158E0430json__emit_unsigned_int64Emits unsigned 64-bit integer to output
0x00515A901068json__parse_decimal_digits_to_bignumParses decimal digits into bignum
0x00515ED0407json__emit_float_formatted_digitsFormats float with decimal point placement
0x00516070314json__decode_utf8_codepointDecodes UTF-8 to Unicode codepoint
0x005161D0186json__parse_integer_from_stringParses integer from string
0x00516290147json__scan_decimal_digitsScans for decimal digits
0x005165D0864json__sorted_map_insert_or_findInserts into sorted array or finds existing
0x005169301143json__parse_msgpack_int_valueParses msgpack integer from byte stream
0x00516DB0159json__bignum_copy_or_allocateCopies bignum inline for small heap for large
0x00516E50180json__serializer_createCreates JSON serializer with output adapter
0x00516F10441json__serializer_init_fieldsInitializes serializer formatting and locale
0x005170D0449json__output_adapter_initInitializes output adapter with defaults
0x005172A0411json__output_adapter_reset_stringsResets output adapter string fields
0x005174C0187json__parse_error_ctor_from_cstrConstructs json parse_error from C string
0x00517580203json__parse_error_ctor_from_stringConstructs json parse_error from std::string
0x00517650174json__type_error_ctor_from_cstrConstructs json type_error from C string
0x00517700190json__type_error_ctor_from_stringConstructs json type_error from std::string
0x005177C0234json__rbtree_copy_constructCopy-constructs red-black tree map
0x005178B0234json__rbtree_copy_construct_34byte_nodesCopy-constructs rbtree with 0x34-byte nodes
0x005179A0244json__token_move_constructMove-constructs 64-byte token struct
0x00517AA0210json__parse_result_move_constructMove-constructs parse result
0x00517B80279json__node_entry_move_constructMove-constructs 0x6C-byte node entry
0x00517CA0166json__node_with_tree_move_constructMove-constructs node with embedded rbtree
0x00517D50143json__key_value_pair_move_constructMove-constructs key-value pair
0x00517EA0184json__vector_copy_construct_68byte_elementsCopy-constructs vector of 0x44-byte entries
0x00517F60220json__vector_copy_construct_12byte_elementsCopy-constructs vector of 0xC-byte elements
0x00518040220json__node_44byte_move_constructMove-constructs 0x44-byte node with two strings
0x00518120887json__schema_data_move_constructMove-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.
0x005184A0416json__schema_data_copy_constructCopy-constructs schema data with rbtrees
0x00518640604json__schema_data_default_constructDefault-constructs schema with 11 empty rbtrees
0x005188A0130json__logic_error_ctor_from_stringConstructs json exception from std::string
0x00518930122json__logic_error_ctor_from_cstrConstructs json exception from C string
0x005189B0178json__other_error_ctorConstructs json other_error with MI vtable
0x00518A7067json__free_32byte_blockFrees 0x20-byte heap block
0x00518AC067json__free_80byte_blockFrees 0x50-byte heap block
0x00518B1067json__free_76byte_blockFrees 0x4C-byte heap block
0x00518B6067json__free_44byte_block_00518b60Frees 0x2C-byte heap block
0x00518BB067json__free_44byte_block_00518bb0Frees 0x2C-byte heap block
0x00518C0070json__free_128byte_blockFrees 0x80-byte heap block
0x00518C5067json__free_52byte_block_00518c50Frees 0x34-byte heap block
0x00518CA070json__free_152byte_blockFrees 0x98-byte heap block
0x00518CF067json__free_64byte_blockFrees 0x40-byte heap block
0x00518D4067json__free_52byte_block_00518d40Frees 0x34-byte heap block
0x00518D9067json__free_52byte_block_00518d90Frees 0x34-byte heap block
0x00518DE067json__free_52byte_block_00518de0Frees 0x34-byte heap block
0x00518E3067json__free_44byte_block_00518e30Frees 0x2C-byte heap block
0x00518E8087json__destroy_shared_ptr_refDestroys shared pointer calls dtor then releases
0x00518EE0104json__destroy_and_free_32byte_blockDestroys then frees 0x20-byte block
0x00518F9076json__rbtree_destroy_44byte_nodesDestroys rbtree then frees 0x2C-byte header
0x00518FF076json__rbtree_destroy_64byte_nodesDestroys rbtree then frees 0x40-byte header
0x0051905076json__rbtree_destroy_52byte_nodes_00519050Destroys rbtree then frees 0x34-byte header
0x005190B076json__rbtree_destroy_52byte_nodes_005190b0Destroys rbtree then frees 0x34-byte header
0x0051911084json__rbtree_destroy_indirect_44byteDestroys rbtree via indirect pointer
0x0051917084json__rbtree_destroy_indirect_64byteDestroys rbtree via indirect pointer
0x005191D084json__rbtree_destroy_indirect_52byte_005191d0Destroys rbtree via indirect pointer
0x0051923084json__rbtree_destroy_indirect_52byte_00519230Destroys rbtree via indirect pointer
0x00519290151json__destroy_and_free_80byte_with_dtorsDestroys 0x50-byte object with dtors
0x00519330139json__destroy_and_free_76byte_with_dtorsDestroys 0x4C-byte object with dtor
0x005193C0116json__destroy_and_free_44byte_005193c0Calls dtor then frees 0x2C-byte block
0x00519440113json__destroy_and_free_44byte_00519440Calls dtor then frees 0x2C-byte block
0x005194C0155json__destroy_and_free_128byte_with_dtorsCalls 3 dtors then frees 0x80-byte block
0x00519560168json__destroy_tree_and_free_52byteDestroys embedded rbtree then frees block
0x00519610132json__destroy_and_free_152byte_with_dtorCalls schema dtor then frees 0x98-byte block
0x005196A0129json__destroy_and_free_64byte_with_dtorsCalls 2 dtors then frees 0x40-byte block
0x00519730129json__destroy_and_free_52byte_with_dtor_aCalls tree dtor A then frees block
0x005197C0129json__destroy_and_free_52byte_with_dtor_bCalls tree dtor B then frees block
0x00519850129json__destroy_and_free_52byte_with_dtor_cCalls tree dtor C then frees block
0x005198E0113json__destroy_and_free_44byte_005198e0Calls dtor then frees 0x2C-byte block
0x0051996078json__free_80byte_block_00519960Frees 0x50-byte (80-byte) heap block if non-null. Cleanup callback in destructor chain.
0x005199B078json__free_76byte_block_005199b0Frees 0x4C-byte (76-byte) heap block if non-null. Cleanup callback in destructor chain.
0x00519A0078json__free_44byte_block_00519a00Frees 0x2C-byte (44-byte) heap block if non-null. Cleanup callback in destructor chain.
0x00519A5078json__free_44byte_block_00519a50Frees 0x2C-byte (44-byte) heap block if non-null. Cleanup callback in destructor chain.
0x00519AA081json__free_128byte_block_00519aa0Frees 0x80-byte (128-byte) heap block if non-null. Cleanup callback in destructor chain.
0x00519B0078json__free_52byte_block_00519b00Frees 0x34-byte (52-byte) heap block if non-null. Cleanup callback in destructor chain.
0x00519B5081json__destroy_with_dtor_00519b50JSON library destructor cleanup function
0x00519BB078json__destroy_with_dtor_00519bb0JSON library destructor cleanup function
0x00519C0078json__destroy_with_dtor_00519c00JSON library destructor cleanup function
0x00519C5078json__destroy_with_dtor_00519c50JSON library destructor cleanup function
0x00519CA078json__destroy_with_dtor_00519ca0JSON library destructor cleanup function
0x00519CF078json__destroy_with_dtor_00519cf0JSON library destructor cleanup function
0x00519DF0110json__bignum_free_buffer_00519df0Frees 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.
0x00519E70170json__string_destructor_00519e70Destroys std::string and releases memory
0x00519F3087json__rbtree_destroy_0x2c_00519f30Destroys 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.
0x00519F9087json__rbtree_destroy_0x40_00519f90Destroys 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.
0x00519FF087json__rbtree_destroy_vec_0x34_00519ff0Destroys 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.
0x0051A05087json__rbtree_destroy_tree_0x34_0051a050Destroys 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.
0x0051A0B0111json__dtor_vector_and_two_strings_0051a0b0Exception/unwind destructor that clears a vector (via json__vector_clear_and_free) and then destroys two std::string members in sequence.
0x0051A12099json__dtor_two_strings_0051a120Exception/unwind destructor that destroys two std::string members in sequence.
0x0051A19068json__dtor_string_wrapper_0051a190Simple SEH unwind handler that destroys a single std::string member.
0x0051A1E065json__dtor_string_wrapper_0051a1e0Simple SEH unwind handler that destroys a single std::string member.
0x0051A230111json__dtor_three_strings_0051a230Exception/unwind destructor that destroys three std::string members in sequence with staged unwind state tracking.
0x0051A2A0127json__dtor_rbtree_and_string_0051a2a0Exception/unwind destructor that destroys a red-black tree (0x34-byte nodes) at offset+0x1c and then destroys a std::string member.
0x0051A32086json__dtor_multi_rbtree_and_string_0051a320Exception/unwind destructor that calls json__destroy_11_rbtrees to destroy a multi-rbtree container, then destroys a std::string member.
0x0051A38086json__dtor_string_pair_0051a380Exception/unwind destructor that destroys two std::string members in sequence (a string pair).
0x0051A3E086json__dtor_vector_and_string_0051a3e0Exception/unwind destructor that clears a vector (via json__vector_clear_and_free) then destroys a std::string member.
0x0051A44086json__dtor_nested_vector_and_string_0051a440Exception/unwind destructor that clears a nested vector (via json__nested_vector_clear_and_free) then destroys a std::string member.
0x0051A4A086json__dtor_dcb0_and_string_0051a4a0Exception/unwind destructor that calls json__internal_0051dcb0 to destroy a container, then destroys a std::string member.
0x0051A50065json__dtor_string_wrapper_0051a500Simple SEH unwind handler that destroys a single std::string member.
0x0051A5505json__vector_clear_and_free_0051a550Frees 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.
0x0051A5705json__nested_vector_clear_and_free_0051a570Destroys 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.
0x0051A590129json__vector_free_8byte_elems_0051a590Frees a vector's dynamically allocated buffer with 8-byte elements. Handles large allocation alignment check (>0xfff). Zeros out begin/end/capacity pointers after freeing.
0x0051A62086json__dtor_two_strings_0051a620Exception/unwind destructor that destroys two std::string members in sequence.
0x0051A68065json__vector_clear_wrapper_0051a680SEH unwind handler that wraps json__vector_clear_and_free to clear/free a vector buffer.
0x0051A6D098json__dtor_vector_and_two_strings_0051a6d0Exception/unwind destructor that clears a vector (via json__vector_clear_and_free) then destroys two std::string members in sequence.
0x0051A74086json__dtor_two_strings_0051a740Exception/unwind destructor that destroys two std::string members in sequence.
0x0051A7A086json__dtor_two_strings_0051a7a0Exception/unwind destructor that destroys two std::string members in sequence.
0x0051A800102json__rbtree_destroy_at_offset4_0051a800Destroys a red-black tree (0x34-byte nodes) located at offset+4 of the object. Recursively destroys child nodes then frees the root.
0x0051A870508json__destroy_11_rbtrees_0051a870Major 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.
0x0051AA7071json__free_locale_wrapper_0051aa70SEH 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.
0x0051AAC0148json__bignum_copy_assign_0051aac0Bignum 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).
0x0051AB60126json__object_items_accessor_0051ab60JSON 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.
0x0051ABE0570json__subscript_operator_0051abe0JSON 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.
0x0051AE20213json__bignum_multiply_assign_0051ae20Bignum 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.
0x0051AF00112json__bignum_negate_0051af00Bignum 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.
0x0051AF70163json__bignum_subtract_assign_0051af70Bignum 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.
0x0051B020310json__bignum_subtract_signed_0051b020Bignum 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.
0x0051B160571json__bignum_multiply_0051b160Bignum 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.
0x0051B3A0581json__bignum_add_0051b3a0Bignum 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.
0x0051B5F0697json__bignum_subtract_0051b5f0Bignum 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.
0x0051B8B0456json__bignum_shift_right_0051b8b0Bignum 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.
0x0051BA80480json__bignum_shift_left_0051ba80Bignum 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.
0x0051BC6080json__dtor_string_and_regex_0051bc60Exception/unwind destructor that destroys a std::string member followed by a regex pattern (9-string) destructor. Used for JSON parser regex cleanup.
0x0051BCB0111json__exception_dtor_0051bcb0JSON 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.
0x0051BD20111json__exception_dtor_variant_0051bd20JSON 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.
0x0051BDB038json__object_scalar_deleting_dtor_0051bdb0JSON object scalar deleting destructor (0x13c bytes). Calls json__string_destructor then conditionally frees the object.
0x0051BDE0108json__regex_object_scalar_deleting_dtor_0051bde0JSON regex object scalar deleting destructor (0x114 bytes). Destructs STL string and regex pattern, then conditionally frees at offset -0x2c from this pointer.
0x0051BE50136json__exception_scalar_deleting_dtor_0051be50JSON exception scalar deleting destructor (0x18 bytes). Resets vtable pointers, calls __std_exception_destroy, conditionally frees.
0x0051BEE0136json__exception_scalar_deleting_dtor_0051bee0JSON exception scalar deleting destructor variant (0x18 bytes). Same pattern as 0051be50 with different vtable.
0x0051BF7030json__small_object_scalar_deleting_dtor_0051bf70JSON small object scalar deleting destructor (8 bytes). No member cleanup, just conditionally frees memory.
0x0051BFC0162json__vector_ptr_reallocate_0051bfc0JSON 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.
0x0051C07022json__destroy_68byte_elements_wrapper_0051c070Wrapper that forwards to json__destroy_68byte_elements_00510660 with reordered parameters.
0x0051C09036json__destroy_range_24byte_string_elements_0051c090json: destroy range 24byte string elements 0051c090
0x0051C0C036json__destroy_range_12byte_vector_elements_0051c0c0json: destroy range 12byte vector elements 0051c0c0
0x0051C0F036json__destroy_range_12byte_nested_elements_0051c0f0json: destroy range 12byte nested elements 0051c0f0
0x0051C120103json__buffer_equals_0051c120JSON 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.
0x0051DAA010json__throw_map_set_too_long_0051daa0Throws std::_Xlength_error with message "map_set_too_long". Called when JSON map/set container exceeds maximum size.
0x0051DAB0129json__vector_clear_and_free_4byte_0051dab0Clears 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.
0x0051DB40170json__vector_destroy_68byte_elements_and_free_0051db40Destroys 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.
0x0051DBF0174json__vector_destroy_12byte_vector_elements_0051dbf0Destroys 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.
0x0051DCB0174json__vector_destroy_12byte_nested_elements_0051dcb0Destroys 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.
0x0051DD70122json__init_zero_12byte_array_0051dd70Initializes 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).
0x0051DDF044json__copy_8byte_elements_0051ddf0json: copy 8byte elements 0051ddf0
0x0051DE20164json__move_12byte_elements_0051de20Move-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.
0x0051DED045json__copy_8byte_elements_offset_0051ded0Copies 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.
0x0051DF0010json__throw_vector_too_long_0051df00Throws std::_Xlength_error("vector_too_long"). Called when JSON vector exceeds maximum capacity.
0x0051DF1010json__throw_vector_too_long_0051df10Throws std::_Xlength_error("vector_too_long"). Called when JSON vector exceeds maximum capacity.
0x0051DF2010json__throw_vector_too_long_0051df20Throws std::_Xlength_error("vector_too_long"). Called when JSON vector exceeds maximum capacity.
0x0051DF3010json__throw_vector_too_long_0051df30Throws std::_Xlength_error("vector_too_long"). Called when JSON vector exceeds maximum capacity.
0x0051DF4010json__throw_vector_too_long_0051df40Throws std::_Xlength_error("vector_too_long"). Called when JSON vector exceeds maximum capacity.
0x0051DF5010json__throw_vector_too_long_0051df50Throws std::_Xlength_error("vector_too_long"). Called when JSON vector exceeds maximum capacity.
0x0051DF6010json__throw_vector_too_long_0051df60Throws std::_Xlength_error("vector_too_long"). Called when JSON vector exceeds maximum capacity.
0x0051DF7092json__allocate_4byte_element_array_0051df70Allocates 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.
0x0051DFD0100json__allocate_68byte_element_array_0051dfd0Allocates array for 0x44-byte (68-byte) elements. Max count 0x3C3C3C4. For allocations >0xFFF bytes, uses 32-byte aligned allocation. Returns pointer to usable memory.
0x0051E04095json__allocate_12byte_element_array_0051e040Allocates array for 0xc-byte (12-byte) elements. Max count 0x15555556. For allocations >0xFFF bytes, uses 32-byte aligned allocation. Returns pointer to usable memory.
0x0051E0A095json__allocate_12byte_element_array_0051e0a0Allocates 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.
0x0051E10058json__get_child_string_and_insertGets 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.
0x0051E140159json__get_array_iterators_0051e140Gets 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.
0x0051E1E0174json__get_array_iterators_recursive_0051e1e0Gets 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.
0x0051E290199json__get_bool_value_0051e290Gets 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.
0x0051E380159json__get_byte_string_0051e380Gets 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.
0x0051E420158json__get_cstring_ptr_0051e420Gets 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.
0x0051E4C0318json__value_to_double_0051e4c0Converts 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.
0x0051E630181json__value_get_string_view_0051e630Gets 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.
0x0051E6F0275json__bignum_compare_0051e6f0Compares 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.
0x0051E810165json__object_contains_key_0051e810Checks 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).
0x0051E8C0185json__bignum_allocate_buffer_0051e8c0Allocates 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.
0x0051E9A014json__bignum_get_data_ptr_0051e9a0Returns 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.
0x0051EA7064json__deallocate_0x44_stride_0051ea70Deallocator for 0x44-byte (68 decimal) stride elements. Frees aligned memory with validation for large allocations. Used by JSON library containers.
0x0051EBC0647json__grisu2_digit_gen_0051ebc0Grisu2 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.
0x0051EE503591json__bignum_divide_0051ee50Bignum 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.
0x0051FC60110json__value_visit_with_error_0051fc60Visits 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.
0x0051FCD0801json__value_accept_visitor_0051fcd0JSON 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.
0x00520030180json__get_tag_type_singleton_00520030Gets 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.
0x005200F0276json__object_at_key_005200f0Accesses 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).
0x0052021049json__value_get_tag_data_00520210Gets 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.
0x00520250167json__value_find_key_iterator_00520250Finds 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.
0x00520300767json__grisu2_double_to_digits_00520300Grisu2 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.
0x00520600119json__serializer_get_inf_string_00520600Gets 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.
0x00520680206json__string_insert_at_00520680Inserts 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.
0x0052075041json__value_is_array_type_00520750Checks if a JSON value is an array type (type 9). Follows indirect references (type 0xc). Returns 1 for array, 0 for other types.
0x0052078032json__value_is_string_type_00520780Checks 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.
0x005207A091json__invoke_visitor_callback_005207a0Invokes 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.
0x00520800286json__make_integer_error_string_00520800Constructs 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.
0x00520920141json__grisu2_multiply_64x64_00520920Grisu2 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].
0x005209C0119json__serializer_get_nan_string_005209c0Gets 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.
0x00520A40324json__serializer_get_number_string_00520a40Gets 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.
0x00520B90222json__value_get_object_iterator_range_00520b90Gets 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.
0x00520C7079json__bignum_trim_leading_zeros_00520c70Trims 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.
0x00520CC0524json__bignum_ensure_capacity_00520cc0Ensures 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.
0x00520ED068json__bignum_resize_00520ed0Resizes bignum to param_2 limbs. Calls ensure_capacity to guarantee space, updates count, then zero-fills any newly added limbs beyond the old count.
0x00520F20367json__grisu2_round_digit_00520f20Grisu2 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.
0x00521090210json__serializer_begin_array_00521090JSON 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.
0x00521170210json__serializer_begin_object_00521170JSON 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.
0x00521250170json__serializer_write_bool_00521250JSON 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.
0x00521300333json__serializer_write_binary_00521300JSON 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.
0x00521450791json__serializer_write_double_00521450JSON 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.
0x00521770179json__serializer_end_array_00521770JSON 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.
0x00521830179json__serializer_end_object_00521830JSON 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.
0x00521900408json__serializer_write_int64_00521900JSON 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.
0x00521AA0119json__serializer_write_key_00521aa0JSON 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.
0x00521B20111json__serializer_write_null_00521b20JSON serializer: writes a null value. Writes comma separator if not first element, then inserts the literal "null" string. Increments parent container's element count.
0x00521B90157json__serializer_write_string_00521b90JSON 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.
0x00521C30488json__serializer_write_uint64_00521c30JSON 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.
0x00521E60832json__serializer_write_bignum_00521e60JSON 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.
0x006A1890168CDataTable__init_hashmap_006a1890Initializes hashmap: allocs sentinel node, sets load factor 1.0, prime bucket sizes 7/8, resizes to 16 buckets
0x006A1940168CDataTable__init_hashmap_006a1940Initializes hashmap variant; same pattern as 006a1890
0x006A19F0168CDataTable__init_hashmap_006a19f0Initializes hashmap variant; same pattern as 006a1890
0x006A218067CDataTable__free_node_0xC_006a2180Frees 0xC-byte node at param_1+4 if non-null
0x006A21D067CDataTable__free_node_0x10_006a21d0Frees 0x10-byte node at param_1+4 if non-null
0x006A222067CDataTable__free_node_0x10_006a2220Frees 0x10-byte node at param_1+4 if non-null
0x006A227067CDataTable__free_node_0x10_006a2270Frees 0x10-byte node at param_1+4 if non-null
0x006A22C067CDataTable__free_node_0x10_006a22c0Frees 0x10-byte node at param_1+4 if non-null
0x006A231067CDataTable__free_node_0x10_006a2310Frees 0x10-byte node at param_1+4 if non-null
0x006A236067CDataTable__free_node_0x10_006a2360Frees 0x10-byte node at param_1+4 if non-null
0x006A23B067CDataTable__free_node_0x10_006a23b0Frees 0x10-byte node at param_1+4 if non-null
0x006A240067CDataTable__free_node_0x50_006a2400Frees 0x50-byte node at param_1+4 if non-null
0x006A245067CDataTable__free_node_0x14_006a2450Frees 0x14-byte node at param_1+4 if non-null
0x006A24A067CDataTable__free_node_0x2C_006a24a0Frees 0x2C-byte node at param_1+4 if non-null
0x006A24F067CDataTable__free_node_0x10_006a24f0Frees 0x10-byte node at param_1+4 if non-null
0x006A254067CDataTable__free_node_0x2C_006a2540Frees 0x2C-byte node at param_1+4 if non-null
0x006A259067CDataTable__free_node_0x10_006a2590Frees 0x10-byte node at param_1+4 if non-null
0x006A25E067CDataTable__free_node_0x2C_006a25e0Frees 0x2C-byte node at param_1+4 if non-null
0x006A263067CDataTable__free_node_0x2C_006a2630Frees 0x2C-byte node at param_1+4 if non-null
0x006A268067CDataTable__free_node_0x18_006a2680Frees 0x18-byte node at param_1+4 if non-null
0x006A26D067CDataTable__free_node_0x18_006a26d0Frees 0x18-byte node at param_1+4 if non-null
0x006A272067CDataTable__free_node_0x2C_006a2720Frees 0x2C-byte node at param_1+4 if non-null
0x006A277067CDataTable__free_node_0x34_006a2770Frees 0x34-byte node at param_1+4 if non-null
0x006A27C067CDataTable__free_node_0x20_006a27c0Frees 0x20-byte node at param_1+4 if non-null
0x006A281067CDataTable__free_node_0x18_006a2810Frees 0x18-byte node at param_1+4 if non-null
0x006A2860131CDataTable__destroy_list_0x10_006a2860Destroys vector then walks+frees 0x10-byte linked list nodes and sentinel from param_1+4
0x006A28F0131CDataTable__destroy_list_0x10_006a28f0Destroys vector then walks+frees 0x10-byte linked list nodes and sentinel
0x006A2980131CDataTable__destroy_list_0x10_006a2980Destroys vector then walks+frees 0x10-byte linked list nodes and sentinel
0x006A2A10131CDataTable__destroy_list_0x10_006a2a10Destroys vector then walks+frees 0x10-byte linked list nodes and sentinel
0x006A2AA0131CDataTable__destroy_list_0x10_006a2aa0Destroys vector then walks+frees 0x10-byte linked list nodes and sentinel
0x006A2B30131CDataTable__destroy_list_0x10_006a2b30Destroys vector then walks+frees 0x10-byte linked list nodes and sentinel
0x006A2BC0131CDataTable__destroy_list_0x10_006a2bc0Destroys vector then walks+frees 0x10-byte linked list nodes and sentinel
0x006A2C50102CDataTable__destroy_umap_0x50_006a2c50Destroys vector then frees unordered_map nodes and 0x50-byte sentinel from param_1+4
0x006A2CC0102CDataTable__destroy_umap_0x14_006a2cc0Destroys vector then frees unordered_map with 0x14-byte sentinel
0x006A2D30102CDataTable__destroy_umap_0x2C_006a2d30Destroys vector then frees unordered_map with 0x2C-byte sentinel
0x006A2DA0131CDataTable__destroy_list_0x10_006a2da0Destroys vector then walks+frees 0x10-byte linked list nodes and sentinel
0x006A2E30102CDataTable__destroy_umap_0x2C_006a2e30Destroys vector then frees unordered_map with 0x2C-byte sentinel (nested destroy)
0x006A2EA0131CDataTable__destroy_list_0x10_006a2ea0Destroys vector then walks+frees 0x10-byte linked list nodes and sentinel
0x006A2F30102CDataTable__destroy_umap_0x2C_006a2f30Destroys vector then frees unordered_map with 0x2C-byte sentinel
0x006A2FA0102CDataTable__destroy_umap_0x2C_006a2fa0Destroys vector then frees unordered_map with 0x2C-byte sentinel (nested destroy)
0x006A3010131CDataTable__destroy_list_0x18_006a3010Destroys vector then walks+frees 0x18-byte linked list nodes and sentinel
0x006A30A0125CDataTable__free_vector_buffer_006a30a0Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers
0x006A3130125CDataTable__free_vector_buffer_006a3130Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers
0x006A31C0125CDataTable__free_vector_buffer_006a31c0Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers
0x006A3250125CDataTable__free_vector_buffer_006a3250Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers
0x006A32E0125CDataTable__free_vector_buffer_006a32e0Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers
0x006A3370125CDataTable__free_vector_buffer_006a3370Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers
0x006A3400125CDataTable__free_vector_buffer_006a3400Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers
0x006A3490125CDataTable__free_vector_buffer_006a3490Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers
0x006A3520125CDataTable__free_vector_buffer_006a3520Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers
0x006A35B0125CDataTable__free_vector_buffer_006a35b0Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers
0x006A3640125CDataTable__free_vector_buffer_006a3640Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers
0x006A36D0125CDataTable__free_vector_buffer_006a36d0Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers
0x006A3760125CDataTable__free_vector_buffer_006a3760Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers
0x006A37F0125CDataTable__free_vector_buffer_006a37f0Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers
0x006A3880125CDataTable__free_vector_buffer_006a3880Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers
0x006A3910125CDataTable__free_vector_buffer_006a3910Frees vector buffer (aligned-aware); zeros begin/end/capacity pointers
0x006A39A078CDataTable__free_node_0xC_006a39a0Frees 0xC-byte node at param_1+4 if non-null
0x006A39F078CDataTable__free_node_0x10_006a39f0Frees 0x10-byte node at param_1+4 if non-null
0x006A3A4078CDataTable__free_node_0x10_006a3a40Frees 0x10-byte node at param_1+4 if non-null
0x006A3A9078CDataTable__free_node_0x10_006a3a90Frees 0x10-byte node at param_1+4 if non-null
0x006A3AE078CDataTable__free_node_0x10_006a3ae0Frees 0x10-byte node at param_1+4 if non-null
0x006A3B3078CDataTable__free_node_0x10_006a3b30Frees 0x10-byte node at param_1+4 if non-null
0x006A3B8078CDataTable__free_node_0x10_006a3b80Frees 0x10-byte node at param_1+4 if non-null
0x006A3BD078CDataTable__free_node_0x10_006a3bd0Frees 0x10-byte node at param_1+4 if non-null
0x006A3C20154CDataTable__destroy_compound_0x50_006a3c20Destroys compound struct: calls two sub-destructors for lists, then frees 0x50-byte allocation
0x006A3CC0110CDataTable__destroy_tree_0x14_006a3cc0Destroys BST via umap clear, then frees 0x14-byte tree sentinel node
0x006A3D30123CDataTable__destroy_list_and_free_0x2CDestroys inner list then frees outer 0x2C-byte node at param_1+4
0x006A3DB078CDataTable__free_node_0x10_006a3db0Frees 0x10-byte node at param_1+4 if non-null
0x006A3E00155CDataTable__destroy_compound_0x2C_006a3e00Destroys vector + umap at inner offset 0x10, then frees outer 0x2C-byte node
0x006A3EA078CDataTable__free_node_0x10_006a3ea0Frees 0x10-byte node at param_1+4 if non-null
0x006A3EF0123CDataTable__destroy_list_and_free_0x2C_v2Destroys inner list then frees 0x2C-byte node; same pattern as 006a3d30
0x006A3F70155CDataTable__destroy_compound_0x2C_006a3f70Destroys vector + umap at inner offset, then frees 0x2C-byte node
0x006A401078CDataTable__free_node_0x18_006a4010Frees 0x18-byte node at param_1+4 if non-null
0x006A406076CDataTable__free_alloc_0x14_006a4060Frees 0x14-byte allocation at *param_1 if non-null, then zeros pointer
0x006A40C0111CDataTable__destroy_tree_and_free_0x18Traverses tree calling CFmt__destroy_tree_24byte_nodes on each subtree, then frees 0x18-byte nodes in linked list
0x006A414076CDataTable__destroy_string_tree_and_free_0x2CDestroys tree with 44-byte string nodes via CFmt__destroy_tree_44byte_string_nodes, then frees 0x2C-byte root allocation
0x006A41A076CDataTable__destroy_tree_and_free_0x34Destroys tree with 52-byte nodes via CFmt__destroy_tree_52byte_nodes, then frees 0x34-byte root allocation
0x006A4210111CDataTable__destroy_tree_and_free_0x18_v2Traverses tree calling CFmt__destroy_tree_24byte_nodes_b on each subtree, then frees 0x18-byte nodes in linked list
0x006A42B078CDataTable__free_node_0x18_006a42b0Frees 0x18-byte node at param_1+4 if non-null
0x006A4300116CDataTable__destroy_string_and_free_0x2CDestroys string member then frees 0x2C-byte node at param_1+4
0x006A4380116CDataTable__destroy_fmt_and_free_0x34Calls CFmt destructor on inner object, then frees 0x34-byte node at param_1+4
0x006A440078CDataTable__free_node_0x20_006a4400Frees 0x20-byte node at param_1+4 if non-null
0x006A445078CDataTable__free_node_0x18_006a4450Frees 0x18-byte node at param_1+4 if non-null
0x006A44A078CDataTable__free_node_0x18_006a44a0Frees 0x18-byte node at param_1+4 if non-null
0x006A44F078CDataTable__free_node_0x2C_006a44f0Frees 0x2C-byte node at param_1+4 if non-null
0x006A454078CDataTable__free_node_0x34_006a4540Frees 0x34-byte node at param_1+4 if non-null
0x006A459078CDataTable__free_node_0x20_006a4590Frees 0x20-byte node at param_1+4 if non-null
0x006A45E078CDataTable__free_node_0x18_006a45e0Frees 0x18-byte node at param_1+4 if non-null
0x006A4630103CDataTable__destroy_list_0xC_006a4630Walks and frees 0xC-byte linked list nodes from *param_1, then frees sentinel
0x006A46A0103CDataTable__destroy_list_0x10_006a46a0Walks and frees 0x10-byte linked list nodes, then frees sentinel
0x006A4710103CDataTable__destroy_list_0x10_006a4710Walks and frees 0x10-byte linked list nodes, then frees sentinel
0x006A4780103CDataTable__destroy_list_0x10_006a4780Walks and frees 0x10-byte linked list nodes, then frees sentinel
0x006A47F0103CDataTable__destroy_list_0x10_006a47f0Walks and frees 0x10-byte linked list nodes, then frees sentinel
0x006A4860103CDataTable__destroy_list_0x10_006a4860Walks and frees 0x10-byte linked list nodes, then frees sentinel
0x006A48D0103CDataTable__destroy_list_0x10_006a48d0Walks and frees 0x10-byte linked list nodes, then frees sentinel
0x006A4940103CDataTable__destroy_list_0x10_006a4940Walks and frees 0x10-byte linked list nodes, then frees sentinel
0x006A49B073CDataTable__destroy_umap_0x50_006a49b0Destroys unordered_map nodes and frees 0x50-byte sentinel
0x006D9620661CDataTable__load_int_pairs_from_fileLoads tab-separated integer pairs from text file, strips comments, stores in vector
0x006DA6A09CDataTable__read_stream_lineTail-calls STL_istream_getline_delim to read a line from the data table's input stream.
0x006DA720264CDataTable__ctor_with_keyConstructor for CDataTable entry. Initializes two linked list heads (8-byte nodes), two SSO strings, and stores a 2-byte key from param_2.
0x006DA830258CDataTable__ctor_defaultDefault constructor for CDataTable entry. Initializes two linked list heads, two SSO strings, and sets the key to 1.
0x006DA94068CDataTable__dtor_stringDestroys a CDataTable string member via STL_string_dtor within a SEH frame.
0x006DA99069CDataTable__stream_sentry_dtorDestructor for stream sentry object. Calls virtual release method on the streambuf lock.
0x006DA9E080CDataTable__stream_sentry_dtor_unlockDestructor for stream sentry object. Calls virtual unlock/release on the streambuf, variant with SEH frame.
0x006DAA301385JsonReader__parse_from_istreamReads 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.
0x006DAFA0418JsonReader__deque_grow_AGrows 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.
0x006DB150400JsonReader__deque_grow_BGrows 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).
0x006DB2F0227JsonReader__dtor_dequeDestructor for JsonReader's deque. Destroys string elements in reverse, frees 0x28-byte node blocks, and frees the backing pointer array.
0x006DB400417JsonReader__append_comment_textAppends 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.
0x006DB5B0400JsonReader__push_errorPushes 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.
0x006DB74034JsonReader__add_error_and_recoverConvenience wrapper: calls push_error then recover_from_error. Used when a parse error is non-fatal and the reader should attempt recovery.
0x006DB77013JsonReader__set_collect_comments_flagSets the collect-comments flag to 1 (true). Stored as a 2-byte field on the reader.
0x006DB780549JsonReader__encode_unicode_to_utf8Encodes 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.
0x006DB9B041JsonReader__contains_newlineJsonReader: contains newline
0x006DB9E048JsonReader__deque_backReturns pointer to the back element of a deque. Computes (front + count - 1) modulo capacity using the deque's map/block structure.
0x006DBA10781JsonReader__parse_float_valueParses floating point JSON value via sscanf, stores as double in JsonValue
0x006DBD20738JsonReader__parse_number_valueParses JSON number: detects float chars (.eE+-), delegates to float parser or parses integer
0x006DC010294JsonReader__parse_string_valueParses JSON quoted string token, creates string JsonValue from parsed content
0x006DC140778JsonReader__decode_stringDecodes JSON string with escape sequences (\\n,\\t,\\u etc), handles unicode surrogates
0x006DC4D0656JsonReader__decode_unicode_surrogate_pairDecodes UTF-16 surrogate pair from \\uXXXX\\uXXXX escape sequences into codepoint
0x006DC760640JsonReader__decode_unicode_escapeReads 4 hex digits after \\u escape, converts to 16-bit codepoint value
0x006DCA20269JsonReader__match_token_endSkips whitespace then verifies expected end token matches, reports error on mismatch
0x006DCB301389JsonReader__get_formatted_error_messagesBuilds formatted error string from all collected parse errors with line/column info
0x006DD0A0234JsonReader__get_location_line_columnCounts lines and columns from document start to given position, returns "Line N, Column M"
0x006DD19083JsonReader__get_line_and_columnCalculates line number and column from document start, handles CR/LF/CRLF
0x006DD21080JsonReader__match_keywordMatches expected keyword (true/false/null) against current parser position
0x006DD260280JsonReader__parse_from_stringEntry point for parsing JSON from std::string, converts to char range and calls parse_document
0x006DD38071JsonReader__parse_from_std_stringParses JSON from a std::string. Copies the input string to internal document buffer, then calls parse_document on it.
0x006DD3D0552JsonReader__parse_documentCore document parser: initializes state, reads tokens, validates root is object/array
0x006DD600133JsonReader__deque_push_backPushes an element onto the back of a deque. Grows the deque if (front + count) would exceed capacity. Allocates 0x10-byte blocks as needed.
0x006DD690744JsonReader__parse_arrayParses JSON array: reads '[', iterates values separated by commas, expects ']'
0x006DD98074JsonReader__skip_block_commentSkips a C-style block comment (/* ...
0x006DD9D0216JsonReader__parse_commentParses a JSON comment starting after '/'. Handles both C-style (/* ...
0x006DDAB040JsonReader__skip_cpp_commentSkips characters until end-of-line (\\r or \\n) for C++-style // comments. Returns 1 always (comment is valid).
0x006DDB201271JsonReader__parse_objectParses JSON object: reads '{', iterates key:value pairs separated by commas, expects '}'
0x006DE060736JsonReader__read_tokenTokenizer: skips whitespace, reads next JSON token (string/number/true/false/null/brackets/etc.)
0x006DE4001019JsonReader__parse_valueDispatches parsing by token type: object, array, string, number, bool, null
0x006DE820328JsonReader__recover_from_errorError recovery: skips tokens until matching close bracket/brace found
0x006DE970276JsonValue__resize_node_stackResizes the parser node stack to target size, creating or destroying nodes as needed
0x006DEA9048JsonReader__read_token_skip_commentsReads next token, skipping comment tokens if comments are allowed
0x006DEAF013JsonFeatures__init_strict_modeInitializes Json::Features with strict mode flags (no comments, strict root)
0x006DEB30289JsonValue__map_equalsCompares two Json::Value object maps for equality by iterating all key-value pairs
0x006DEC6039JsonValue__map_compareLexicographic comparison of two Json::Value object maps via tree iteration
0x006DECC0241JsonValue__copy_tree_recursiveRecursively copies red-black tree nodes for deep-copying Json::Value object maps
0x006DEDD0277JsonValue__vector_insert_with_growInserts element into vector with reallocation (32-byte elements), used for Path args
0x006DEF10452JsonValue__vector_insert_ptrInserts pointer element into vector with reallocation (4-byte elements)
0x006DF0E0274JsonPath__vector_insert_argInserts PathArgument into vector with grow, 32-byte stride per element
0x006DF220162JsonValue__destroy_tree_nodesRecursively destroys red-black tree nodes, freeing string keys and node memory
0x006DF2D0162JsonValue__destroy_tree_nodes_altAlternate recursive tree node destruction with different traversal order
0x006DF380442JsonValue__map_find_insert_posFinds insertion position for key in RB-tree map, returns node and insert direction
0x006DF540141JsonValue__map_lower_boundRB-tree lower_bound: finds first node with key >= given key via strcmp
0x006DF5D094JsonValue__map_key_not_lessChecks if given key is not less than node's key via strcmp comparison
0x006DF630202JsonValue__move_construct_rangeMove-constructs a range of JsonValue elements (32-byte stride) to destination buffer
0x006DF70097JsonPath__copy_path_argumentCopy-constructs PathArgument: copies string key and index/kind fields
0x006DF770234JsonValue__map_insert_or_findFinds key in map or inserts new node if not found, returns iterator to element
0x006DF860443JsonValue__map_tree_compareJsonValue: map tree compare
0x006DFA20145JsonValue__copy_cz_stringCopies CZString key: duplicates string via allocator if owned, copies flags
0x006DFAC078JsonValue__copy_cz_string_simpleSimple CZString copy: duplicates via allocator if owned, no deep value copy
0x006DFB1021JsonValue__init_cz_string_indexInitializes CZString with integer index (no string pointer), used for array keys
0x006DFB3059JsonValue__init_cz_string_ptrInitializes CZString with string pointer, optionally duplicating via allocator
0x006DFB80401JsonPath__resolveResolves a JSON path expression against a value, returns matching sub-values
0x006DFD20139JsonValue__move_constructMove-constructs JsonValue: copies type/data/string, resets source to empty
0x006DFDB0141JsonPath__init_arg_from_stringInitializes PathArgument from std::string key with kind=2 (named member)
0x006DFE40107JsonPath__init_arg_from_indexInitializes PathArgument from integer index with kind=1 (array element)
0x006DFEB0140JsonPath__init_arg_from_cstrInitializes PathArgument from C-string key with kind=2 (named member)
0x006DFF4099JsonPath__init_arg_defaultDefault-initializes PathArgument with kind=0 (unset), empty string
0x006DFFB0560JsonValue__deep_copyDeep copies JsonValue: handles all types including string duplication, map/array tree copy, comments
0x006E020065JsonValue__init_from_string_ownedInitializes JsonValue as owned string type by duplicating std::string via allocator
0x006E025034JsonValue__init_from_string_refInitializes JsonValue as non-owned string reference (no allocation)
0x006E028025JsonValue__init_from_intInitializes JsonValue as signed integer type (type=1)
0x006E02A025JsonValue__init_from_uintInitializes JsonValue as unsigned integer type (type=2)
0x006E02C029JsonValue__init_from_doubleInitializes JsonValue as double/real type (type=3)
0x006E02E059JsonValue__init_from_char_rangeInitializes JsonValue as owned string from char pointer range [begin, end)
0x006E032050JsonValue__init_from_cstrInitializes JsonValue as owned string type from C-string via allocator duplication
0x006E0360205JsonValue__init_by_typeConstructs empty JsonValue by type enum: allocates map for object/array, zeros for scalars
0x006E045025JsonValue__init_from_boolInitializes JsonValue as boolean type (type=5)
0x006E047020JsonValue__iterator_initInitializes JsonValue iterator from source, copies pointer and clears flag
0x006E04A020JsonValue__iterator_init_altAlternate iterator initialization, copies pointer and clears flag
0x006E04C022JsonValue__get_int_valueReturns integer value from JsonValue, reads from value union
0x006E04E022JsonValue__get_uint_valueReturns unsigned integer value from JsonValue, reads from value union
0x006E051020JsonValue__get_double_valueReturns double/float value from JsonValue
0x006E054067JsonValue__free_map_headFrees the head/sentinel node of the RB-tree map (0x28 bytes)
0x006E059076JsonValue__destroy_mapDestroys entire map: recursively frees tree nodes then frees head node
0x006E05F084JsonValue__destroy_map_and_containerDestroys map tree, frees head node, then frees 8-byte map container
0x006E0650147JsonValue__destroy_single_nodeDestroys a single map node: frees owned string key via allocator, frees node memory
0x006E06F078JsonValue__free_owned_nodeFrees an owned RB-tree node: deletes the 0x28-byte node memory if non-null
0x006E074090JsonValue__destroy_string_vector_elementsIterates a vector of 0x20-byte string elements, calling STL_string_dtor on each to destroy them
0x006E07A0104JsonValue__destroy_and_free_owned_keyDestroys a JsonValue then frees the owned key string via the allocator's release function if owned
0x006E0810129JsonValue__free_ptr_vectorFrees a vector of pointers: deallocates buffer and resets size/capacity to zero
0x006E08A0177JsonValue__destroy_string_vector_and_freeDestroys all 0x20-byte string elements in a vector, then frees the vector buffer and resets ptr/size/capacity to zero
0x006E096078JsonValue__free_owned_key_via_allocatorFrees an owned key string pointer via the allocator's release function if non-null and owned
0x006E09C072JsonValue__free_comment_stringFrees an owned comment string via allocator's release function
0x006E0A1072JsonValue__init_vtableInitializes vtable pointers for a JsonValue-related class (sets two vtable entries sequentially)
0x006E0A6065JsonValue__destroy_string_wrapperWrapper that destroys a single std::string via STL_string_dtor
0x006E0AB0194JsonValue__destructorDestroys JsonValue: frees owned strings, maps, arrays, and comment storage
0x006E0B90177JsonValue__swapSwaps contents of two JsonValues: exchanges type, value union, and comment data
0x006E0C50182JsonValue__copy_assignCopy assignment operator: deep copies source then destroys old value
0x006E0D1016JsonValue__copy_value_4byteCopies a single 4-byte value from source to destination (trivial copy helper)
0x006E0D2016JsonValue__copy_value_4byte_altCopies a single 4-byte value from source to destination (alternate trivial copy helper)
0x006E0D4082JsonValue__cz_string_compareCompares two CZString keys: if both have char* pointers, does byte-by-byte strcmp; if null pointers, compares integer index values
0x006E0DA0422JsonValue__operator_equalsEquality comparison operator: compares by type then by value (int/double/string/map)
0x006E0F7017JsonValue__operator_not_equal_006e0f70Inequality operator: calls operator_equals and inverts the result
0x006E0F9026JsonValue__init_cz_string_from_stlCreates CZString key from std::string, extracting raw pointer
0x006E0FB019JsonValue__resolve_index_by_cstrResolves a C-string key to a map entry via operator_index_cstr_nonconst with flag=1
0x006E0FD0522JsonValue__operator_index_intArray subscript operator[int]: auto-converts null to array, inserts new element if needed
0x006E11E017JsonValue__resolve_index_by_cstr_readonlyResolves a C-string key to a map entry via operator_index_cstr_nonconst with flag=0 (read-only access)
0x006E120023JsonValue__as_double_wrapperThin wrapper that delegates to JsonValue__as_double
0x006E1220160JsonValue__as_stringConverts JsonValue to std::string representation
0x006E12C0222JsonValue__as_doubleConverts JsonValue to double, handles int/uint/real/null/bool types
0x006E1400132JsonValue__rbtree_decrementRB-tree iterator decrement: moves to previous in-order node
0x006E149078JsonValue__cz_string_compare_keysCompares 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.
0x006E14E0228JsonValue__operator_less_thanLess-than comparison operator: compares by type then value (int/real/string/map)
0x006E15F020JsonValue__operator_greater_equalGreater-or-equal comparison: calls operator_less_than and inverts the result
0x006E161016JsonValue__operator_less_than_wrapperThin wrapper that delegates directly to operator_less_than
0x006E162020JsonValue__operator_greater_thanGreater-than comparison: calls operator_less_than with swapped args and inverts result
0x006E164082JsonValue__cz_string_less_thanCZString less-than comparator for RB-tree ordering via strcmp
0x006E16A0169JsonValue__conditional_destructorConditional 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
0x006E175097JsonValue__vtable_scalar_deleting_dtorScalar deleting destructor for JsonValue-related vtable class: sets vtable pointers and optionally frees memory
0x006E17F0186JsonValue__replace_vector_bufferReplaces vector backing buffer: frees old allocation, sets new ptr/size/capacity
0x006E18B092JsonValue__destroy_string_vector_rangeDestroys a range of 0x20-byte string elements in a vector by calling STL_string_dtor on each from param_1 to param_2
0x006E1910151JsonValue__map_erase_by_iteratorErases 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
0x006E19B0704JsonValue__rbtree_erase_nodeRB-tree erase: removes node, rebalances with rotations, maintains red-black invariants
0x006E1E9084JsonValue__rbtree_rotate_rightRB-tree right rotation for rebalancing after insert/delete
0x006E1EF0144JsonValue__vector_reallocate_24byteReallocates a vector of 24-byte (0x18) elements: allocates new buffer, moves existing elements, frees old buffer and updates ptr/size/capacity
0x006E1FB088JsonValue__rbtree_rotate_leftRB-tree left rotation for rebalancing after insert/delete
0x006E201010JsonValue__throw_length_error_ptrThrows std::length_error for pointer vector overflow
0x006E202010JsonValue__throw_length_error_valueThrows std::length_error for value vector overflow
0x006E2030157JsonValue__remove_memberRemoves member by C-string key from object, returns removed value
0x006E20D092JsonValue__allocate_value_arrayAllocates aligned buffer for array of 32-byte JsonValue elements
0x006E213034JsonValue__clearClears JsonValue container: resets array/object to empty state
0x006E216074JsonValue__asBoolConverts JsonValue to bool based on type: null=false, int/uint=nonzero, real=nonzero, string=non-empty, bool=direct, array/object=non-empty
0x006E21D03JsonValue__noop_stubEmpty stub function, does nothing (3-byte ret)
0x006E21E0147JsonValue__asDoubleConverts 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.
0x006E22A0133JsonValue__asIntConverts 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.
0x006E2350269JsonValue__operator_asStringJsonValue 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.
0x006E2480131JsonValue__operator_asUIntJsonValue 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.
0x006E253057JsonValue__get_first_elementReturns 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.
0x006E257057JsonValue__get_first_element_006e2570Returns 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.
0x006E261070JsonValue__rbtree_distanceComputes distance between two RB-tree iterators by incrementing from begin to end, counting steps. Returns the number of elements in range.
0x006E266014JsonValue__get_with_default_intReturns member value or integer default if not found
0x006E27006JsonValue__rbtree_node_get_valueReturns pointer to value payload at offset 0x18 within an RB-tree map node. Used internally to access the JsonValue stored in a map entry.
0x006E271065json__strdupDuplicates a C string: computes length (if -1 passed), allocates buffer via malloc, copies with null terminator. Used by Json internals for string storage.
0x006E276029JsonValue__empty_006e2760Returns true if JsonValue is empty: null type returns true, array/object types check if size() == 0. Other types return false.
0x006E278055JsonValue__get_first_element_006e2780Returns first element from array/object (types 6/7). Returns null value for other types or empty collections.
0x006E27C055JsonValue__get_first_element_006e27c0Returns first element from array/object (types 6/7). Returns null value for other types or empty collections.
0x006E2800674JsonValue__remove_member_rangeRemoves range of members by key from object RB-tree map, returns count removed
0x006E2AB0138JsonValue__begin_iteratorReturns begin iterator for array or object traversal
0x006E2B40102JsonValue__end_iteratorReturns end iterator for array or object traversal
0x006E2BB0102JsonValue__begin_const_iteratorReturns const begin iterator for array or object traversal
0x006E2C20218JsonValue__get_commentReturns 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.
0x006E2D00533JsonValue__getMemberNamesReturns 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.
0x006E2F2031JsonValue__has_commentReturns true if JsonValue has a comment at specified placement
0x006E2F60166JsonValue__operator_index_pathSubscript operator with Json::Path: resolves path expression against value
0x006E302017JsonValue__isArray_or_nullReturns true if JsonValue type is null (0) or array (6). Used for type checking before array operations.
0x006E305029JsonValue__isConvertibleToChecks 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.
0x006E31F030JsonValue__rbtree_iterator_equalCompares two RB-tree iterators for equality. Handles nil node case via is_nil flag, otherwise compares node pointers.
0x006E324032JsonValue__isMember_cstrChecks 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).
0x006E326023JsonValue__isMember_stringChecks if object has member with given std::string key. Extracts c_str from SSO buffer and delegates to isMember_cstr.
0x006E32808JsonValue__isNullReturns true if this JsonValue is null type (type byte == 0)
0x006E32B017JsonValue__isNull_or_objectReturns true if JsonValue type is null (0) or object (7). Used for type checking before object operations.
0x006E330018JsonValue__compare_lessComparison helper: calls size() on one value and compares against another. Used to implement relational operators on JsonValue.
0x006E3320285JsonPath__constructorConstructs Json::Path from string path expression, no arguments
0x006E344076JsonPath__resolve_006e3440Resolves 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.
0x006E349017JsonValue__vtable_dispatchVirtual table dispatch: calls method at vtable offset 0xc with param and -1. Used for allocator-based operations.
0x006E34B01101JsonPath__parse_path_argsParses path string into PathArgument vector: handles [N], [%], .key, % patterns
0x006E39109JsonValue__vtable_dispatch_006e3910Virtual table dispatch: calls method at vtable offset 0x10. Used for allocator-based free operations.
0x006E392024json__free_stringFrees a dynamically allocated string if non-null. Used by Json internals for comment and key cleanup.
0x006E394096JsonPath__resolve_from_stringResolves a Json path from std::string: extracts c_str from SSO buffer, then delegates to JsonPath__resolve_value.
0x006E39A0310JsonPath__resolve_valueResolves path arguments against a JsonValue, navigating by index or key
0x006E3AE0444JsonValue__resizeResizes 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.
0x006E3CA0228JsonPath__resolve_constConst 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.
0x006E3D90257JsonPath__resolve_nonconstNon-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).
0x006E3EA0577JsonValue__operator_index_cstr_nonconstNon-const object operator[const char*]: auto-converts null to object, inserts key if needed
0x006E40F094JsonValue__set_commentSets comment string on JsonValue at current placement. Frees old comment via allocator, validates new comment starts with '/' or '*', then duplicates and stores.
0x006E4150152JsonReader__add_comment_to_nodeAttaches parsed comment to current node value at specified placement
0x006E41F0142JsonValue__set_comment_at_placementEnsures comment array exists (allocates 3-slot array for before/after/inside placements if needed), then delegates to set_comment for the specified placement index.
0x006E428067JsonValue__sizeReturns 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.
0x006E42F036JsonValue__swap_8byteSwaps two 8-byte values (two dwords each) between param_1 and param_2
0x006E432081JsonValue__swap_12byte_with_flagsSwaps two 12-byte structures including a flags byte at offset 8, with bit 0x100 mask on the flags dword
0x006E4380182JsonStyledWriter__writeStyledWriter::write - serializes a JsonValue to a formatted string with indentation. Creates document string, writes value with indent, and cleans up temporary buffers.
0x006E44405JsonValue__get_type_byteReturns the type byte at offset 8 of a JsonValue, indicating value type (null/int/uint/real/string/bool/array/object)
0x006E4450143JsonValue__get_global_singletonReturns 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.
0x006E47A0114JsonFastWriter__ctorConstructor for Json::FastWriter. Sets vtable (first to base Writer, then to FastWriter), initializes document string and flags to zero.
0x006E4820167JsonStyledWriter__ctorConstructor for Json::StyledWriter. Initializes document string, indent string (copies from param), and sets rightMargin to 74 (0x4A). Zeroes child values vector.
0x006E48D0178JsonStyledStreamWriter__ctorConstructor for Json::StyledStreamWriter. Sets vtable, initializes document string, indent string, indentString, rightMargin=0, and addChildValues flag. Larger object than StyledWriter.
0x006E499091JsonStyledWriter__dtorDestructor for Json::StyledWriter. Resets vtable to StyledWriter then to base Writer, destroys indent string.
0x006E49F098JsonStyledStreamWriter__dtorDestructor for Json::StyledStreamWriter. Destroys two strings (document + indent) and the child values vector.
0x006E4A607JsonWriter__ctorBase Json::Writer constructor. Sets vtable to Writer base class (scalar_deleting_destructor vtable). Called by derived writer constructors (FastWriter, StyledWriter, StyledStreamWriter).
0x006E4A70546JsonFastWriter__writeFastWriter::write: serializes JsonValue to compact single-line JSON string
0x006E4CA0112JsonStyledWriter__scalar_deleting_dtorScalar deleting destructor for Json::StyledWriter. Calls StyledWriter dtor, resets vtable to base Writer, then optionally frees memory if flag bit 0 is set.
0x006E4D5058JsonWriter__has_comment_for_valueChecks if value has any comments that need to be written
0x006E4D9058JsonWriter__has_comment_for_value_altChecks 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.
0x006E4E10125JsonStyledWriter__push_indentCreates an indent string of N space characters and appends it to the current indentation buffer. Used to increase indentation level in StyledWriter.
0x006E4E90293JsonStyledWriter__is_multiline_arrayDetermines 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.
0x006E4FC0296JsonStyledStreamWriter__is_multiline_arrayStyledStreamWriter version of is_multiline_array. Checks array elements against rightMargin, uses styled recursive write for trial serialization. Returns true if array needs multiline formatting.
0x006E50F0807JsonWriter__normalize_eolNormalizes line endings: converts CR/CRLF to LF in output string
0x006E5420807JsonWriter__normalize_eol_altAlternate EOL normalizer, same logic as normalize_eol for different context
0x006E575082JsonWriter__push_value_or_writeIf addChildValues flag is false, writes string directly to ostream. If true, pushes string into childValues vector (for later compact/multiline decision).
0x006E57B081JsonWriter__push_value_or_appendIf addChildValues flag is false, appends string to document buffer. If true, pushes string into childValues vector (for later compact/multiline decision).
0x006E6130285JsonWriter__float_to_stringConverts float/double to string with trailing zero stripping for JSON output
0x006E62A0147JsonWriter__bool_to_stringReturns "true" or "false" string based on boolean param
0x006E6340132JsonStyledWriter__write_value_to_documentStyledWriter::write - clears document, recursively writes the JSON value with pretty formatting, appends newline, and copies result to output string.
0x006E63D088JsonStyledStreamWriter__writeStyledStreamWriter::write - sets output stream, clears document, writes pre-comment + value recursively (compact) + post-comment, outputs newline to stream, then clears stream pointer.
0x006E6430170JsonStyledStreamWriter__write_value_to_documentStyledStreamWriter'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.
0x006E64E01340JsonStyledStreamWriter__write_array_valueWrites 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.
0x006E6A201062JsonStyledWriter__write_array_valueWrites 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.
0x006E6E50504JsonStyledStreamWriter__write_comment_after_valueWrites 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.
0x006E7050489JsonStyledWriter__write_comment_after_valueWrites 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.
0x006E7240196JsonStyledStreamWriter__write_pre_commentWrites commentBefore (type 0) to output stream with EOL normalization. Appends newline separator after the comment.
0x006E7310189JsonStyledWriter__write_pre_commentWrites commentBefore (type 0) to document string with EOL normalization. Appends newline separator after the comment.
0x006E740068JsonStyledWriter__write_indentWrites indentation to document string (StyledWriter). If last char is not space or newline, appends newline first. Then appends the current indent string.
0x006E7450656JsonStyledWriter__write_value_recursiveRecursively 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.
0x006E77001101JsonStyledStreamWriter__write_value_recursiveRecursively 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).
0x006E7B701031JsonWriter__write_value_recursive_styledRecursively writes JSON value with styled formatting (key:value with separators)
0x006E7FA078JsonWriter__write_indent_and_value_compactWrites indentation followed by string value to compact packet stream
0x006E7FF0103JsonWriter__write_indent_and_value_prettyWrites indentation with newline handling followed by string value in pretty mode
0x00AFDE601611CDataTableMgr__load_data_fileLoads 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.
0x0103338010thunk_to_JsonValue__destructor_01033380Wrapper that calls JsonValue destructor