Back to legacygamers.net
WARPGATE

fmtlib

fmtlib ({fmt}) library: CFmt__ format/parse/write functions

Functions 542Code 139 KBAddresses 0x0057E620 to 0x010B97D0Group Library
542 functions
AddressSizeNameDescription
0x0057E62027CFmt__write_bytes_and_storeWrites bytes and stores result
0x0057E64027CFmt__write_bytes_and_store_0057e640Writes bytes and stores result
0x0057E660132CFmt__get_locale_decimal_pointGets locale decimal point
0x0057E6F0126CFmt__get_locale_decimal_point_defaultGets default decimal point
0x0057E770126CFmt__get_locale_thousands_sepGets thousands separator
0x0057E7F0441CFmt__parse_arg_id_charParses arg ID for char type
0x0057E9B0432CFmt__parse_arg_id_wcharParses arg ID for wchar type
0x0057EB601267CFmt__format_floatCfmt: format float, small utility function
0x0057F0601593CFmt__format_float_uint64Formats uint64 as float
0x0057F6A01302CFmt__format_float_with_groupingFormats float with grouping
0x0057FBC081CFmt__write_padding_charsWrites N padding chars
0x0057FC2079CFmt__write_fill_char_n_timesWrites fill char N times
0x0057FC7079CFmt__write_fill_char_n_times_0057fc70Writes fill char N times
0x0057FCC0132CFmt__scan_for_special_charCFmt: scan for special char
0x0057FD50782CFmt__compute_utf8_display_widthComputes UTF-8 display width
0x0058006096CFmt__uint32_to_decimal_charsConverts uint32 to decimal
0x005800C0279CFmt__uint64_to_decimal_charsConverts uint64 to decimal
0x005801E01186CFmt__format_double_to_digitsConverts double to digits
0x00580690163CFmt__format_codepoint_escapeFormats codepoint escape
0x00580740216CFmt__write_hex_digitsCFmt: write hex digits
0x00580820242CFmt__init_localeInitializes formatting locale
0x00580920162CFmt__resolve_precision_argResolves precision arg
0x00580A00162CFmt__resolve_width_argCFmt: resolve width arg
0x00580AE0253CFmt__find_named_arg_indexFinds named arg index
0x00580BE013CFmt__store_result_ptrStores result pointer
0x00580BF017CFmt__is_type_signed_intChecks if type is signed int
0x00580C1017CFmt__is_type_signed_int_00580c10Checks if type is signed int
0x00580EE0328CFmt__parse_arg_id_auto_or_namedParses arg ID with auto-numbering
0x00581030202CFmt__resolve_float_type_specResolves float type specifier
0x005811301193CFmt__parse_format_specParses complete format specification
0x005815E0476CFmt__vformat_to_bufferMain format string parser
0x005817C0116CFmt__parse_nonneg_intParses non-negative integer
0x00581840105CFmt__parse_type_char_00581840Parses format type character
0x00581940667CFmt__handle_replacement_fieldHandles format replacement field
0x00581BE041CFmt__pow_int_to_doubleConverts int to double and computes pow() via libm_sse2_pow_precise. Used for float formatting exponent calculations.
0x00581C1037CFmt__pow_doubleComputes pow() on a double via libm_sse2_pow_precise. Used for float formatting exponent calculations.
0x00581C40253CFmt__format_hex_floatFormats a floating-point value as hexadecimal float (%a/%A format specifier). Uses snprintf internally with precision and alternate form (#) flags.
0x00581D40142CFmt__format_int_valueFormats integer with spec
0x00581DD0156CFmt__format_uint_valueFormats unsigned integer
0x00581E70176CFmt__format_uint64_valueFormats an unsigned 64-bit integer value. Takes two 32-bit parts (low from param_5, high from param_6) and passes type 0x11 to the formatting engine.
0x00581F20156CFmt__format_int64_valueCFmt: format int64 value
0x00581FC0307CFmt__format_int64_value_00581fc0Formats a 64-bit integer value into an SSO string. Calls CFmt__format_value_with_locale_char to produce the formatted text, then copies the result into param_1 as an std::string (handling both SSO inline and heap-allocated cases). Frees the temporary string afterward.
0x00582100330CFmt__format_value_with_locale_charFormats a value using locale-aware char numpunct facet. Initializes locale, gets numpunct facet via CFmt__func_00582ce0, formats result into output string param_1.
0x00582250334CFmt__format_value_with_locale_wcharFormats a value using locale-aware wchar numpunct facet. Initializes locale, gets numpunct<wchar_t> facet via CFmt__func_00582e60, formats result into output string param_1.
0x005823A0666CFmt__float_to_shortest_decimalConverts a 32-bit float to shortest decimal representation using Dragonbox/Grisu algorithm. Extracts IEEE754 mantissa and exponent, computes shortest decimal digits and decimal exponent. Returns packed (digits, exponent) as int64.
0x005826401126CFmt__double_to_shortest_decimalConverts a 64-bit double to shortest decimal representation using Dragonbox/Grisu algorithm. Extracts IEEE754 mantissa and exponent, computes shortest decimal digits and decimal exponent. Returns result struct with digits (uint64), exponent, and auxiliary data.
0x00582AB041CFmt__buffer_reserveReserves space in a format buffer. Checks if (current_pos + param_2) fits within capacity. If yes, advances position and returns pointer to the reserved region. Returns 0 if insufficient space.
0x00582AE0124CFmt__buffer_to_stringConverts a format buffer to a std::string. Initializes an empty SSO string in param_1, then assigns the buffer contents (data pointer at offset+4, length at offset+8) via STL_string_assign_buffer.
0x00582B6034CFmt__copy_range_charCopies a byte range [param_1, param_2) to destination param_3. Returns pointer past end of copied data in destination.
0x00582B9034CFmt__copy_range_char_00582b90Copies a byte range [param_1, param_2) to destination param_3. Returns pointer past end of copied data in destination. Duplicate instantiation of copy_range for different template parameters.
0x00582BC034CFmt__copy_range_char_00582bc0Copies a byte range [param_1, param_2) to destination param_3. Returns pointer past end of copied data in destination. Duplicate instantiation of copy_range for different template parameters.
0x00582BF034CFmt__copy_range_char_00582bf0Copies a byte range [param_1, param_2) to destination param_3. Returns pointer past end of copied data in destination. Duplicate instantiation of copy_range for different template parameters.
0x00582C2041CFmt__copy_n_bytesCopies param_2 bytes from param_1 to param_3. Returns pointer past end of copied data. No-op if count is 0.
0x00582C5043CFmt__copy_n_wcharsCopies param_2 wide characters (2 bytes each) from param_1 to param_3. Returns pointer past end of copied data. No-op if count is 0.
0x00582C8085CFmt__fill_int32_arrayFills param_1 with param_2 copies of the int32 value at *param_3. If value is 0, uses memset for efficiency. Returns pointer past end of filled region.
0x00582CE0370CFmt__get_numpunct_char_facetGets or creates the numpunct<char> locale facet for formatting. Looks up the facet in the locale; if not found, creates a new one and registers it globally. Used by locale-aware number formatting.
0x00582E60244CFmt__get_numpunct_wchar_facetGets or creates the numpunct<wchar_t> locale facet for formatting. Looks up the facet in the locale; if not found, creates one via CFmt__func_0058be70 and registers it globally.
0x00582F60155CFmt__vformat_toTop-level vformat_to implementation. If format string is "{}" (2 chars, 0x7d7b), fast-paths by formatting the first arg directly. Otherwise calls CFmt__vformat_to_buffer to parse the full format string and process all arguments.
0x0058300051CFmt__format_to_wrapperThin wrapper around CFmt__vformat_to. Passes format args through with a trailing 0 parameter, then stores result in param_1.
0x005830401195CFmt__format_arg_by_type_charDispatches formatting of a single argument based on its type ID (param_3[2]). Handles: 1-2=unsigned int, 3=signed int64, 4=unsigned int64, 7=bool, 8=char, 9=float, 10-11=double/long double, 12=c-string, 13=string_view, 14=pointer, and custom formatters via switch.
0x005835301115CFmt__format_arg_by_type_autoDispatches formatting of a single argument based on its runtime type. Large switch on type discriminator: handles int, uint, int64, uint64, float, double, bool, char, c-string, string_view, pointer, and custom formatter callbacks. This is the auto-detect version used by fmt::format("{}", arg).
0x005839D0333CFmt__create_format_errorCreates a fmt::format_error exception object. Initializes a static vtable via thread-safe init, constructs the error message using CFmt__func_00591270, and sets the exception vtable. Used for runtime format string errors.
0x00583B20119CFmt__write_cstring_to_bufferWrites a null-terminated C string to a format output buffer, character by character. If the string is null, calls CFmt__func_00590df0 with "string pointer is null" error. Grows buffer as needed via the buffer's grow callback.
0x00583BA013CFmt__store_resultTrivially stores param_2 into *param_1. Used as a result passthrough in formatting pipelines.
0x00583BB0545CFmt__write_string_with_paddingWrites a string (param_3, param_4 bytes) to the format output with alignment/padding per format spec (param_5). Handles debug/escaped mode (type 0x12), UTF-8 display width calculation, left/right/center alignment via CFmt__write_padding_chars, and quoted string escaping.
0x00583E30116CFmt__format_signed_int_with_signFormats a signed 32-bit integer with sign handling. Negative values get '-' prefix. Positive values get '+', ' ', or nothing based on format spec sign bits. Delegates to CFmt__func_00585790 for actual output.
0x00583EB0172CFmt__write_uint32_to_bufferWrites a uint32 value as decimal digits to a format buffer. Counts digits using lookup table, tries direct write if buffer has space, otherwise writes to temp buffer and appends via CBigInteger__append_bytes.
0x00583F60918CFmt__format_float_valueFormats a 32-bit float value according to format spec. Handles sign, NaN/Inf, hex float format (type 3), and general/fixed/scientific formats (types 0-2). Uses stack buffer of 500 bytes, falls back to heap allocation. Calls CFmt__format_hex_float or CFmt__format_double_to_digits depending on type.
0x00584300935CFmt__format_double_valueFormats a 64-bit double value according to format spec. Handles sign, NaN/Inf, hex float format (type 3), and general/fixed/scientific formats (types 0-2). Uses stack buffer of 500 bytes, falls back to heap allocation. Calls CFmt__format_hex_float or CFmt__format_double_to_digits depending on type.
0x005846B0935CFmt__format_long_double_valueFormats a long double value according to format spec. Nearly identical to CFmt__format_double_value - on MSVC, long double is same as double. Handles sign, NaN/Inf, hex format, and general/fixed/scientific formats with stack buffer.
0x00584A6055CFmt__format_pointer_valueFormats a pointer value. Validates that the type specifier is 0 or 0x11 (pointer type); throws "invalid type specifier" otherwise. Delegates to CFmt__func_00587260 for hex output.
0x00584AA0335CFmt__write_int64_to_bufferWrites a signed 64-bit integer as decimal digits to a format buffer. Handles negative sign, counts digits using lookup table, tries direct write to buffer, falls back to temp buffer + append. Uses CFmt__uint64_to_decimal_chars for digit conversion.
0x00584BF0212CFmt__write_uint64_to_bufferWrites an unsigned 64-bit integer as decimal digits to a format buffer. Counts digits using lookup table, tries direct write to buffer, falls back to temp buffer + append. Uses CFmt__uint64_to_decimal_chars for digit conversion.
0x00584CD0227CFmt__format_bool_valueFormats a boolean value. If type specifier is 0 or 0x10, writes "true" or "false" string with alignment/padding. Otherwise delegates to CFmt__format_signed_int_with_sign to format as integer (0 or 1).
0x00584DC0145CFmt__write_padded_dataWrites data (param_3 pointer, param_4 length) to the format output with alignment/padding per format spec (param_5). Calculates left/right padding based on width and alignment mode, writes padding chars before and after the data.
0x00584E6048CFmt__format_char_valueFormats a single character value. Checks if type specifier is 0x12 (debug/escaped mode) and delegates to CFmt__func_00586cd0 with the char as a 1-byte string.
0x00584E90139CFmt__write_escape_hex2Writes a backslash escape sequence with 2-digit hex suffix to the format buffer. Writes '\\', then the escape prefix char (param_4), then converts param_5 to hex digits using "0123456789abcdef". Used for \\xNN escapes.
0x00584F2018CFmt__count_escape_hex2_sizeReturns the output size for a 2-digit hex escape sequence: input + 4 bytes (backslash + prefix + 2 hex digits).
0x00584F40137CFmt__write_escape_hex4Writes a backslash escape sequence with up to 4-digit hex suffix. Writes '\\', then prefix char (param_3), then converts param_4 to hex using "0123456789abcdef" with leading zeros (4 digits). Used for \\uNNNN escapes.
0x00584FD018CFmt__count_escape_hex4_sizeReturns the output size for a 4-digit hex escape sequence: input + 6 bytes (backslash + prefix + 4 hex digits).
0x00584FF0173CFmt__write_escape_hex8Writes a backslash escape sequence with up to 8-digit hex suffix. Writes '\\', then prefix char (param_3), then converts param_4 to hex using "0123456789abcdef" with leading zeros (8 digits). Used for \\UNNNNNNNN escapes.
0x005850A016CFmt__count_escape_hex8_sizeReturns the output size for an 8-digit hex escape sequence: input + 10 bytes (backslash + prefix + 8 hex digits).
0x005850B0205CFmt__write_escaped_charWrites a single character in escaped/debug format. Wraps the char in single quotes. Printable chars (except double-quote and single-quote) are written directly; control chars and special chars are written via CFmt__write_escape_sequence.
0x00585180256CFmt__write_escape_sequenceWrites a single escape sequence to the output buffer. Handles: tab->\\t, newline->\\n, carriage return->\\r, quote/backslash->backslash-prefixed literal. For other non-printable bytes, writes each byte as \\xNN hex escape via CFmt__write_escape_hex2.
0x005852F066CFmt__count_escape_sequence_sizeCalculates the output size of an escape sequence. Known escapes (tab, newline, CR, quote, backslash) take 2 bytes. Other non-printable bytes take 4 bytes each (\\xNN). Returns accumulated size added to param_2.
0x005853A0326CFmt__write_escaped_stringWrites a string in escaped/debug format wrapped in double quotes. Scans param_3 (param_4 bytes) for chars needing escaping (control chars, quotes, backslash, non-ASCII). Printable segments are copied directly; special chars go through CFmt__write_escape_sequence.
0x005854F0251CFmt__count_escaped_string_sizeCalculates the total output size needed for an escaped/quoted string. Accounts for surrounding quotes (+2), and for each char needing escape: known escapes +2, other non-printable +4 per byte. Returns total size in *param_1.
0x00585650316CFmt__write_exponentWrites scientific notation exponent
0x00585790529CFmt__format_uint32_with_specFormats a uint32 value according to the full format spec. Dispatches by type: 0/1=decimal, 2=octal, 3/4=hex lower/upper, 5/6=binary lower/upper, 0xf=char. Handles locale-aware grouping, 0x/0b/0o prefix with # flag, zero-fill padding.
0x005859D0618CFmt__format_uint64_with_specFormats a uint64 value according to the full format spec. Dispatches by type: 0/1=decimal, 2=octal, 3/4=hex lower/upper, 5/6=binary lower/upper, 0xf=char. Handles locale-aware grouping, 0x/0b/0o prefix with # flag, zero-fill padding. 64-bit version of CFmt__format_uint32_with_spec.
0x00585C70433CFmt__write_decimal_with_paddingWrites a decimal-formatted uint32 value with alignment/padding. If format spec has no width/precision, writes digits directly with optional sign prefix. Otherwise computes padding, writes sign prefix, zero-fills if needed, writes decimal digits, then trailing padding.
0x00585E30451CFmt__write_decimal_int_paddedfmtlib: Writes a decimal integer to output buffer with alignment, padding, sign prefix, and zero-fill. Handles format specs for width, alignment (left/right/center), and fill character.
0x00586000413CFmt__write_hex_int_paddedfmtlib: Writes a hex integer to output buffer with alignment, padding, sign prefix, and zero-fill. Calls CFmt__write_hex_digits for the actual hex conversion.
0x005861A0409CFmt__write_bin_int_paddedfmtlib: Writes a binary-formatted integer to output buffer with alignment and padding. Delegates to func_00589100 for binary digit output.
0x00586340413CFmt__write_oct_int_paddedfmtlib: Writes an octal-formatted integer to output buffer with alignment and padding. Delegates to func_00589950 for octal digit output.
0x005864E0409CFmt__write_uint64_binary_paddedfmtlib: Writes a 64-bit unsigned integer in binary format with alignment and padding. Delegates to CFmt__write_uint64_binary for digit output.
0x00586680413CFmt__write_uint32_octal_paddedfmtlib: Writes a 32-bit unsigned integer in octal format with alignment and padding. Delegates to CFmt__write_uint32_octal for digit output.
0x00586820409CFmt__write_uint64_octal_paddedfmtlib: Writes a 64-bit unsigned integer in octal format with alignment and padding. Delegates to CFmt__write_uint64_octal for digit output.
0x005869C0336CFmt__write_uint64_decimal_paddedfmtlib: Writes a uint64 value in decimal with padding/alignment. Counts decimal digits using a lookup table, handles sign prefix, then writes via CFmt__uint64_to_decimal_chars with thousands separator support.
0x00586B10156CFmt__format_int64_with_signfmtlib: Wrapper that formats an int64 value with sign handling. Calls format_int64_to_string to get the string representation, then write_uint64_decimal_padded for output with padding.
0x00586BB0276CFmt__write_inf_or_nanfmtlib: Writes infinity or NaN special float values to output buffer. Handles sign character (+/-/space), selects uppercase or lowercase text ("inf"/"INF", "nan"/"NAN"), and applies alignment/padding.
0x00586CD0346CFmt__write_char_escaped_paddedfmtlib: Writes a character value to output with optional quoting/escaping and padding. If quoting enabled, wraps in single quotes and escapes special characters via CFmt__func_00585180.
0x00586E30367CFmt__write_float_parts_32fmtlib: Writes formatted float components (sign, integer part, decimal point, fractional part, exponent) to output buffer using 32-bit decimal conversion. Handles padding and alignment.
0x00586FA0370CFmt__write_float_parts_64fmtlib: Writes formatted float components (sign, integer part, decimal point, fractional part, exponent) to output buffer using 64-bit decimal conversion. Handles padding and alignment.
0x00587120312CFmt__write_string_paddedfmtlib: Writes a string argument to output buffer with padding and alignment. Handles sign character prefix, decimal point, fill characters, and left/right/center alignment.
0x00587260185CFmt__write_pointer_paddedfmtlib: Writes a pointer value (formatted as hex) to output buffer with "0x" prefix and padding/alignment. Calculates hex digit count via bit scanning.
0x00587320518CFmt__write_digits_with_groupingfmtlib: Writes decimal digits to output buffer with optional thousands grouping separator. If locale grouping enabled, uses a temporary 500-byte buffer; otherwise writes directly.
0x00587530214CFmt__write_uint32_grouped_decimalfmtlib: Converts a uint32 value to decimal string with optional thousands grouping separator character. Writes digit pairs from lookup table, inserts separator at group boundaries.
0x00587610452CFmt__write_uint64_grouped_decimalfmtlib: Converts a uint64 value to decimal string with optional thousands grouping separator character. Uses 128-bit division to extract digit pairs, inserts separator at group boundaries.
0x005877E0350CFmt__format_int64_to_stringfmtlib: Constructs an std::string containing the formatted representation of an int64 value. Initializes SSO string, calls format_int64_value, then moves result into this->string.
0x00587940196CFmt__fopen_or_throwfmtlib: Opens a file using fopen(). If fopen fails, formats an error message with errno and the filename, then throws fmt::system_error via CxxThrowException.
0x00587A10209CFmt__sopen_or_throwfmtlib: Opens a file using _sopen_s() with shared read access. If open fails, formats an error message with errno and the filename, then throws fmt::system_error.
0x00587AF0126CFmt__system_error_copy_ctorfmtlib: Copy constructor for fmt::system_error. Copies the exception base via __std_exception_copy, then sets the vtable to the system_error vtable.
0x00587B70135CFmt__system_error_ctor_from_stringfmtlib: Constructs fmt::system_error from an error message string. Initializes exception base, copies message via __std_exception_copy, sets system_error vtable.
0x00587C00260CFmt__format_error_ctorfmtlib: Constructs fmt::format_error (type error). Takes an error message C-string, creates a temporary std::string, calls STL_json_type_error_ctor with the formatted message, then sets the format_error vtable.
0x00587D10110CFmt__format_windows_error_messagefmtlib: Calls FormatMessageW to get a Windows error message string for a given error code. Trims trailing whitespace (spaces, newlines, tabs, carriage returns) from the result.
0x00587D80209CFmt__utf8_to_wchar_converter_ctorfmtlib: Constructs a UTF-8 to wchar_t string converter buffer. Initializes a 500-element inline buffer, then calls the UTF conversion function. Throws system_error with "cannot convert string from UTF-8" on failure.
0x00587E6088CFmt__char_buffer_ctorfmtlib: Default constructor for a character memory_buffer with 500-byte inline storage. Sets vtable, buffer pointer to inline array, size=0, capacity=500.
0x00587EC0485CFmt__utf8_to_wbuffer_ctorfmtlib: Constructs a wchar_t buffer by converting UTF-8 input. Initializes a 500-element inline wchar_t buffer, iterates through UTF-8 bytes via CFmt__func_00591120 (decode) and CFmt__func_00588d10 (encode to wchar_t), then null-terminates.
0x005880B068CFmt__dynamic_buffer_dtorfmtlib: Destructor for a dynamic buffer. If the buffer pointer does not point to the inline storage (this+4), frees the dynamically allocated memory.
0x0058810083CFmt__locale_facet_buffers_dtorfmtlib: Destructor that frees three locale facet buffer pointers at offsets +8, +0x10, +0x14 of the pointed-to structure. Only frees if the structure pointer is non-null.
0x0058816083CFmt__locale_facet_buffers_dtor_00588160fmtlib: Destructor that frees three locale facet buffer pointers at offsets +8, +0x10, +0x14. Identical to CFmt__locale_facet_buffers_dtor at 00588100 (duplicate for different unwind path).
0x005881D0112CFmt__char_memory_buffer_dtorfmtlib: Destructor for char memory_buffer. Sets vtable to base buffer vtable, then frees the dynamic buffer if it differs from the inline storage (this+16). Handles large allocation tracking.
0x00588250115CFmt__uint32_memory_buffer_dtorfmtlib: Destructor for uint32 memory_buffer. Sets vtable, then frees dynamic buffer if capacity*4 exceeds inline storage. Element size is 4 bytes.
0x005882D0115CFmt__uint32_memory_buffer_dtor_Bfmtlib: Destructor for uint32 memory_buffer (variant B, different vtable). Sets vtable, then frees dynamic buffer if capacity*4 exceeds inline storage.
0x00588350114CFmt__wchar_memory_buffer_dtorfmtlib: Destructor for wchar_t memory_buffer. Sets vtable, then frees dynamic buffer if capacity*2 exceeds inline storage. Element size is 2 bytes (wchar_t).
0x005883D0115CFmt__ostream_wrapper_dtorfmtlib: Destructor for ostream wrapper. Sets ios_base vtable, adjusts vbase offset, calls custom_streambuf_dtor, then calls ~basic_ostream.
0x00588450233CFmt__custom_streambuf_dtorfmtlib: Destructor for custom streambuf used by fmt::ostream. Sets vtable, frees the allocated character buffer if the owned flag (offset 0x3c bit 0) is set, zeros all buffer pointers, then calls ~basic_streambuf.
0x0058854077CFmt__unwind_string_dtor_00588540fmtlib: Compiler-generated unwind destructor. Calls STL_string_dtor to destroy a local std::string during exception unwinding.
0x00588590111CFmt__codecvt_facet_dtor_Afmtlib: Destructor for codecvt locale facet (variant A). Sets vtable, frees three internal buffers at offsets +8, +0x10, +0x14, then calls ~codecvt base destructor.
0x00588600111CFmt__codecvt_facet_dtor_Bfmtlib: Destructor for codecvt locale facet (variant B, different vtable). Sets vtable, frees three internal buffers at offsets +8, +0x10, +0x14, then calls ~codecvt base destructor.
0x0058867065CFmt__unwind_string_dtor_00588670fmtlib: Compiler-generated unwind destructor. Calls STL_string_dtor to destroy a local std::string during exception unwinding.
0x005886C065CFmt__unwind_string_dtor_005886c0fmtlib: Compiler-generated unwind destructor. Calls STL_string_dtor to destroy a local std::string during exception unwinding.
0x005887105CFmt__vector_of_structs_dtorfmtlib: Destructor for a vector of 24-byte structs (each containing a std::string). Iterates elements calling STL_string_dtor on each, then frees the vector's backing allocation.
0x0058872065CFmt__unwind_uint32_buffer_dtorfmtlib: Compiler-generated unwind destructor. Delegates to CFmt__uint32_memory_buffer_dtor_B to destroy a uint32 memory_buffer during exception unwinding.
0x0058877095CFmt__fclose_with_errorfmtlib: Destructor for FILE* wrapper. If the file pointer is non-null, calls fclose(). If fclose fails, reports the error via CFmt__func_00590430 with errno and "cannot close file" message.
0x005887E096CFmt__close_fd_with_errorfmtlib: Destructor for file descriptor wrapper. If fd != -1, calls _close(fd). If _close fails, reports the error via CFmt__func_00590430 with errno and "cannot close file" message.
0x0058885078CFmt__exception_base_dtorfmtlib: Destructor for the exception base class. Sets vtable to exception_base, calls __std_exception_destroy to free the exception message string.
0x005888A058CFmt__local_free_buffer_dtorfmtlib: Destructor for Windows error message buffer. Calls LocalFree on the HLOCAL buffer at offset +4 that was allocated by FormatMessageW.
0x005888E065CFmt__unwind_char_buffer_dtorfmtlib: Compiler-generated unwind destructor. Delegates to CFmt__char_memory_buffer_dtor to destroy a char memory_buffer during exception unwinding.
0x0058893065CFmt__unwind_wchar_buffer_dtorfmtlib: Compiler-generated unwind destructor. Delegates to CFmt__wchar_memory_buffer_dtor to destroy a wchar_t memory_buffer during exception unwinding.
0x0058898054CFmt__buffer_append_byteAppends a single byte to a growable buffer. Checks capacity and calls grow callback if needed, then writes the byte at the current position and increments count.
0x005889C0184CFmt__uint128_shift_rightPerforms a logical right shift on a 128-bit integer by param_3 bits. Handles shifts of exactly 64 bits, greater than 64 bits (recursive), and less than 64 bits (cross-word shift). Part of fmtlib bignum support.
0x00588A80183CFmt__uint128_shift_leftPerforms a logical left shift on a 128-bit integer by param_3 bits. Handles shifts of exactly 64 bits, greater than 64 bits (recursive), and less than 64 bits (cross-word shift). Part of fmtlib bignum support.
0x00588B40351CFmt__write_json_escaped_stringWrites a JSON-escaped string to the output buffer. Wraps the string in double quotes (0x22), scans for characters that need escaping (control chars, backslash, quotes, high bytes), and emits escape sequences via CFmt__func_00585180 for special characters.
0x00588CA0105CFmt__write_hex_with_prefixWrites a hex value with "0x" prefix. Appends '0' (0x30) then 'x' (0x78) to the output buffer, then calls CFmt__write_hex_digits to write the actual hex digits.
0x00588D10354CFmt__encode_utf16_codepointEncodes a Unicode codepoint as UTF-16. For codepoints < 0x10000, writes a single 16-bit value. For codepoints >= 0x10000, generates a surrogate pair (high surrogate + low surrogate). Throws json "invalid utf8" exception if codepoint is 0xFFFFFFFF.
0x00588E80182CFmt__write_float32_scientificWrites a 32-bit float in scientific notation. Outputs optional sign character, grouped decimal digits, fill characters, decimal separator byte, and exponent via CFmt__write_exponent.
0x00588F40185CFmt__write_float64_scientificWrites a 64-bit float in scientific notation. Same structure as float32 version but reads wider data fields. Outputs sign, grouped decimal digits, fill chars, decimal separator, and exponent.
0x00589000246CFmt__write_float32_fixedWrites a 32-bit float in fixed-point notation. Outputs optional sign, integer digits with decimal point separator, fill characters, trailing byte, and exponent via CFmt__write_exponent.
0x00589100247CFmt__write_hex_digits_uint64Writes hex digits for a 64-bit value into a buffer. Supports uppercase (0123456789ABCDEF) and lowercase (0123456789abcdef) based on a flag. Tries direct write to output buffer first, falls back to stack buffer if insufficient space.
0x00589200621CFmt__format_uint32_decimalFormats a uint32 as decimal string with sign prefix, optional zero padding, and optional thousands grouping separator. Uses CFmt__uint32_to_decimal_chars for digit conversion. Supports locale-aware grouping via temporary buffer.
0x00589470642CFmt__format_uint64_decimalFormats a uint64 as decimal string with sign prefix, optional zero padding, and optional thousands grouping separator. Uses CFmt__uint64_to_decimal_chars for digit conversion. Supports locale-aware grouping via temporary buffer.
0x00589700583CFmt__format_string_decimalFormats a raw digit string as decimal with sign prefix, optional zero padding, and optional thousands grouping separator. Reads pre-computed digit string rather than converting from integer. Supports locale-aware grouping.
0x00589950147CFmt__write_uint32_binaryWrites a uint32 value as a binary string (base 2). Extracts bits one at a time from LSB, converts each to '0' or '1', and writes right-to-left. Tries direct output buffer write first, falls back to stack buffer.
0x005899F0169CFmt__write_uint64_binaryWrites a uint64 value as a binary string (base 2). Extracts bits from a 64-bit value (two 32-bit words) one at a time, converts each to '0'/'1', writes right-to-left. Tries direct output buffer write first, falls back to stack buffer.
0x00589AA0537CFmt__format_uint32_groupedFormats a uint32 with grouping separators (e.g. thousands separators). Writes sign prefix, uses CFmt__write_uint32_grouped_decimal for the digit portion with separator character, then appends optional fill characters.
0x00589CC0558CFmt__format_uint64_groupedFormats a uint64 with grouping separators (e.g. thousands separators). Writes sign prefix, uses CFmt__write_uint64_grouped_decimal for the digit portion with separator character, then appends optional fill characters.
0x00589EF0150CFmt__write_uint32_octalWrites a uint32 value as an octal string (base 8). Extracts 3-bit groups from the value, converts each to '0'-'7', writes right-to-left. Tries direct buffer write first, falls back to stack buffer.
0x00589F90178CFmt__write_uint64_octalWrites a uint64 value as an octal string (base 8). Extracts 3-bit groups from a 64-bit value (two 32-bit words), converts each to '0'-'7', writes right-to-left. Tries direct buffer write first, falls back to stack buffer.
0x0058A050182CFmt__write_literal_textWrites literal text from a format string to the output buffer. Scans for '}' characters and handles '}}' escape sequences (collapsed to single '}'), throwing an error for unmatched '}'. Appends each run of plain text to the output.
0x0058A1C0124CFmt__ostringstream_dtorDestructor for CFmt's custom ostringstream. Updates vtable pointers, destroys the custom stringbuf via CFmt__func_00588450, then destroys the base basic_ostream and basic_ios.
0x0058A250151CFmt__ostringstream_scalar_deleting_dtorScalar deleting destructor for CFmt's custom ostringstream. Updates vtable, destroys stringbuf, destroys basic_ostream and basic_ios, then optionally frees memory (0x98 bytes) if param_2 bit 0 is set.
0x0058A320132CFmt__codecvt_facet_scalar_deleting_dtorScalar deleting destructor for a custom codecvt facet. Sets vtable, frees three allocated buffers (offsets +8, +0x10, +0x14), calls base codecvt destructor, then optionally frees the 0x18-byte facet object.
0x0058A3B0132CFmt__codecvt_facet_scalar_deleting_dtor_0058a3b0Scalar deleting destructor for a second custom codecvt facet variant (different vtable at 010dd874). Same logic as 0058a320: frees three buffers, calls base codecvt dtor, optionally frees 0x18-byte object.
0x0058A440103CFmt__json_exception_base_scalar_deleting_dtorScalar deleting destructor for json exception base class. Sets vtable to json_exception_base, calls __std_exception_destroy on the exception message, then optionally frees the 0xC-byte exception object.
0x0058A4B030CFmt__small_object_scalar_deleting_dtorMinimal scalar deleting destructor for a small 8-byte object. No member cleanup needed, just optionally frees the 8-byte allocation if param_2 bit 0 is set.
0x0058A62043CFmt__string_containsChecks if a std::string (param_1) contains a substring (param_2, length param_3). Uses std::_Traits_find internally. Returns true if found (result != npos), false otherwise.
0x0058A650229CFmt__path_get_stemExtracts the stem (filename without extension) from a file path string. First gets the filename portion, then searches backward for the last '.' and truncates there. Validates the dot position is after any directory separator. Returns the modified string.
0x0058A740173CFmt__path_get_parentExtracts the parent directory from a file path. Finds the last path separator via CFmt__func_0058d8f0 and returns the substring before it. Returns an empty string if no separator is found.
0x0058A7F0256CFmt__path_get_extensionExtracts the file extension (including the dot) from a path string. Searches backward for the last '.', validates the dot is in the filename portion (after last path separator). Returns empty string if no valid extension found.
0x0058A8F0157CFmt__path_get_filenameExtracts the filename portion from a path string. Finds the last path separator via CFmt__func_0058d8f0 and returns everything after it as a substring. If no separator found, returns a copy of the entire path string.
0x0058AC3040CFmt__string_remove_allRemoves all occurrences of a substring from a std::string. Wrapper that calls CFmt__string_replace_all with an empty replacement string (null ptr, length 0).
0x0058AC60451CFmt__string_replace_allFinds and replaces all occurrences of a search string with a replacement string in a std::string. Handles three cases: same length (memcpy in-place), shrinking (shift remainder left), and growing (check capacity, reallocate if needed). Returns the number of replacements made.
0x0058AE30825CFmt__format_double_to_stringFormats a double value to a std::string with given precision. Rounds the value using pow(10, precision), formats via ostringstream with std::setprecision. Optionally strips trailing zeros and lone decimal point when param_4 is non-zero. Returns the formatted string.
0x0058B170557CFmt__string_splitSplits a string into a vector of substrings by a delimiter pattern. Uses STL_search_bytes to find delimiter matches, then builds substrings between matches. Supports both empty and non-empty delimiter modes. Returns a vector of std::string segments.
0x0058B3A0133CFmt__path_strip_extensionStrips the file extension from a path string in-place. Searches backward for the last '.', validates it is in the filename portion (after last path separator), then truncates the string at the dot position by setting length and null terminator.
0x0058B43068CFmt__path_strip_filenameStrips the filename from a path, keeping only the directory portion. Finds the last path separator via CFmt__func_0058d8f0 and truncates the string there. If no separator found, does nothing.
0x0058B48062CFmt__string_to_lowerConverts all characters in a std::string to lowercase in-place using tolower(). Iterates through each byte from the string buffer start to the end (based on length field at offset +0x10).
0x0058B4C0293CFmt__string_to_lower_and_moveConverts a string to lowercase and transfers ownership to param_1. Applies tolower() to each byte in the source buffer, then moves the string's internal pointers (buffer, SSO data, length, capacity) into param_1. Handles both SSO and heap-allocated string cases.
0x0058B5F062CFmt__string_to_upperConverts all characters in a std::string to uppercase in-place using toupper(). Iterates through each byte from the string buffer start to the end (based on length field at offset +0x10).
0x0058B630293CFmt__string_to_upper_and_moveConverts all characters in an SSO string buffer to uppercase using toupper(), then moves the string's internal representation (ptr, size, capacity) to the output struct param_1.
0x0058B76036CFmt__string_trimTrims a string by calling trim_left then trim_right. Removes characters from both ends that are in the given character set (or whitespace if no set provided).
0x0058B790148CFmt__string_trim_copyCreates a new SSO string, copies the source buffer into it, then trims both left and right (removes whitespace or specified characters from both ends). Returns the trimmed copy.
0x0058B830360CFmt__string_trim_rightTrims trailing characters from an SSO string. If a character set is provided (param_3 != 0), builds a 256-byte lookup table and scans backwards to find last non-matching char. If no set, trims trailing whitespace using isspace(). Truncates string in-place.
0x0058B9A0136CFmt__string_trim_right_copyCreates a new SSO string, copies the source buffer into it, then trims trailing characters (whitespace or specified set). Returns the trimmed copy.
0x0058BA30306CFmt__string_trim_leftTrims leading characters from an SSO string. If a character set is provided (param_3 != 0), builds a 256-byte lookup table and finds the first non-matching char, then shifts string left. If no set, trims leading whitespace using isspace().
0x0058BB70136CFmt__string_trim_left_copyCreates a new SSO string, copies the source buffer into it, then trims leading characters (whitespace or specified set). Returns the trimmed copy.
0x0058BC00616CFmt__string_pad_or_truncatePads or truncates an SSO string to a specified width. If the string is longer than the target width, it is truncated. If shorter, it is padded (prepended with fill characters). Handles SSO buffer management including small string optimization.
0x0058BE70523CFmt__create_codecvt_facetCreates a locale codecvt facet for character conversion. Allocates a facet object, initializes it with locale info (decimal point '.', thousands separator ','), gets false/true name strings via CString__multibyte_to_wide. Sets vtable to codecvt facet dtor. Part of fmtlib locale support.
0x0058C080422CFmt__init_numpunct_facetInitializes a numpunct locale facet from _Locinfo. Copies grouping string, falsename, and truename strings via calloc+memcpy. Sets decimal_point and thousands_sep characters (defaults to '.' and ',' if param_3 is non-zero, otherwise from localeconv).
0x0058C230175CFmt__destroy_string_vectorDestroys a vector of SSO strings. Iterates through each element calling STL_string_dtor, then frees the backing array with operator_delete. Resets all three vector pointers (begin, end, capacity) to 0.
0x0058C51043CFmt__assertion_failedHandles assertion failures in fmtlib. Prints formatted assertion message to stderr using the format "%s:%d: assertion failed: %s", then calls terminate() to abort the program.
0x0058C660187CFmt__file_closeCloses a FILE* stream. If the pointer is non-null, calls fclose(). If fclose fails, reads errno and throws a system_error with "cannot close file" message.
0x0058C720188CFmt__fd_closeCloses a file descriptor. If fd != -1, calls _close(). Sets fd to -1 after closing. If _close fails, reads errno and throws a system_error with "cannot close file" message.
0x0058C7E084CFmt__wchar_compareCompares two wide character (ushort) arrays of length param_3. Returns -1 if first < second, 0 if equal, 1 if first > second. Used by CFmt__wstring_find for substring matching.
0x0058CA10209CFmt__wide_to_utf8Converts a wide string (LPCWSTR) to UTF-8 using WideCharToMultiByte with codepage 0xFDE9 (UTF-8). Stores the result in a char_memory_buffer object. Returns 0 on success, or Win32 error code on failure.
0x0058CAF089CFmt__count_digitsCounts the number of decimal digits needed to represent a 64-bit unsigned integer. Uses a lookup table at DAT_010dd9f0/DAT_010dda30 to quickly determine digit count from the bit position of the highest set bit.
0x0058CB50122CFmt__count_separatorsCounts how many thousand-separator positions exist for a number with the given digit count. Iterates through the grouping string (SSO string at this+0x18) to determine separator placement. Used for locale-aware number formatting.
0x0058CBD055CFmt__guarded_freeFrees a heap allocation with size validation. If size > 0xFFF, checks that the stored pointer (at allocation-4) is within 0x1F bytes of the given pointer, calling _invalid_parameter_noinfo_noreturn on failure. Used by fmtlib bignum cleanup.
0x0058CC10246CFmt__fileno_or_throwGets the file descriptor from a FILE* using _fileno(). Returns the fd on success. On failure (fd == -1), reads errno and throws a system_error with "cannot get file descriptor" message.
0x0058CEE0133CFmt__numpunct_get_groupingReturns the grouping string from a numpunct facet. Reads the char* at this+0x10, computes its length with strlen, and assigns it to the output SSO string.
0x0058CF70139CFmt__numpunct_get_falsename_wideReturns the falsename as a wide string from a numpunct<wchar_t> facet. Reads the wchar_t* at this+0x10, computes its length, and assigns it to the output SSO wstring.
0x0058D000133CFmt__numpunct_get_falsenameReturns the falsename string from a numpunct<char> facet. Reads the char* at this+0x8, computes its length with strlen, and assigns it to the output SSO string.
0x0058D090133CFmt__numpunct_get_truenameReturns the truename string from a numpunct<char> facet. Reads the char* at this+0x8, computes its length with strlen, and assigns it to the output SSO string.
0x0058D140133CFmt__numpunct_get_truename_strReturns the truename string from a numpunct facet (alternate accessor). Reads the char* at this+0x14, computes its length with strlen, and assigns it to the output SSO string.
0x0058D1D0139CFmt__numpunct_get_truename_wideReturns the truename as a wide string from a numpunct<wchar_t> facet. Reads the wchar_t* at this+0x14, computes its length, and assigns it to the output SSO wstring.
0x0058D260280CFmt__fd_dup2_or_throwDuplicates a file descriptor onto another using _dup2(this->fd, target_fd). Throws a system_error with "cannot duplicate file descriptor" on failure, including both source and target fd values in the error.
0x0058D38090CFmt__fd_dup2_noexceptNon-throwing version of fd_dup2. Calls _dup2(this->fd, target_fd). On failure, writes errno and error category pointer to the output error_code parameter instead of throwing.
0x0058D3E0288CFmt__fd_dup_or_throwDuplicates a file descriptor using _dup(fd). Stores the new fd in the output object. Throws a system_error with "cannot duplicate file descriptor" on failure.
0x0058D51099CFmt__string_erase_rangeErases a range of characters from an SSO string. Given begin and end iterators, computes the range to remove, uses memcpy to shift the remaining characters, and updates the string length. Handles both small (inline) and heap-allocated SSO buffers.
0x0058D580291CFmt__fd_open_or_throwAssociates a file descriptor with a FILE* stream using _fdopen(fd, mode). On success, stores the FILE* and sets the fd to -1 (ownership transferred). On failure, throws a system_error with "cannot associate stream with file descriptor".
0x0058D6B0576CFmt__wstring_findFinds the first occurrence of a wide string pattern within a wide string. Converts both input char strings to wide strings using CFmt__func_00590eb0, then performs a linear search with CFmt__wchar_compare for substring matching. Returns the position or -1 if not found.
0x0058D8F0208CFmt__string_find_last_ofFinds the last position in an SSO string where any character from the given set appears, searching backwards from a given start position. Builds a 256-byte lookup table for the character set. Returns the position or -1 if not found.
0x0058D9C026CFmt__set_unitbuf_flagSets the unitbuf flag on a stream object. Clears bit 0x1000 and sets bit 0x2000 in the flags field at this+0x14. This enables automatic flushing after each output operation.
0x0058D9E049CFmt__vsnprintf_sWrapper around __stdio_common_vsnprintf_s. Gets a global buffer singleton, calls vsnprintf_s with the buffer and its size. Returns the number of characters written, or -1 on error.
0x0058DA203005CFmt__grisu_gen_digitsCore Grisu/Dragon4 digit generation algorithm for float-to-decimal conversion. Takes a floating-point significand (128-bit), exponent, rounding flags, and output buffer. Uses big integer arithmetic (multiply, compare, divide) to generate decimal digits one at a time. Handles both fixed and free-format output with correct rounding. This is the main inner loop of fmtlib's float formatting.
0x0058E5E0302CFmt__format_decimal_errorFormats a decimal error message for float formatting. Computes the number of decimal digits for the given exponent, checks if the number can be represented, and formats it using CFmt__func_00582f60. Falls back to an "error" format if the number is too large.
0x0058E720138CFmt__format_system_error_to_bufferFormats a system error into a buffer. Creates a format_error from the error code and message, then calls the virtual what() method to get the error string. Passes the result to CFmt__func_00583b20 for buffer formatting.
0x0058E7F0358CFmt__format_windows_errorFormats a Windows error message. Calls FormatMessageW to get the Windows error string, converts it to UTF-8 via CFmt__wide_to_utf8, then formats it with CFmt__format_codepoint_escape. Falls back to CFmt__format_decimal_error if FormatMessage or UTF-8 conversion fails.
0x0058E980260CFmt__fwrite_or_throwWrites data to a FILE* using fwrite(). If the number of items written is less than requested, reads errno and throws a system_error with "cannot write to file" message.
0x0058EA90128CFmt__get_cached_powerGets a cached power of 10 from a precomputed table. Supports two formats: compact (8-byte entries for indices < 15, using bit extraction) and extended (16-byte entries for larger indices). Returns a struct with mantissa and metadata. Used in Grisu float formatting.
0x0058EB10325CFmt__compute_cached_powerComputes a cached power of 10 for a given binary exponent. Uses a precomputed table of powers at DAT_010de2e8 (indexed by exponent/27) and interpolates with 64-bit multiply from DAT_010de458. Handles carry propagation. Core helper for Grisu float-to-decimal conversion.
0x0058EC60162CFmt__grisu_roundGrisu rounding decision function. Given the difference between the value and its decimal approximation, the divisor error, and an ulp value, determines whether to round up (return 2), round down (return 1), or the result is ambiguous (return 0). Used after digit generation to ensure correct rounding.
0x0058ED1023CFmt__get_system_page_sizeReturns the system memory page size via GetSystemInfo. Used by fmtlib for aligned buffer allocation.
0x0058ED301102CFmt__grisu_digit_genGrisu algorithm digit generation for float-to-string conversion. Extracts decimal digits from a 64-bit significand using power-of-10 division, with rounding via CFmt__grisu_round. Part of fmtlib's Grisu2 implementation.
0x0058F1B084CFmt__streambuf_seekoffCalls the virtual seekoff method (vtable offset 0x14) on a streambuf. Returns the position parameter. SEH frame for exception safety.
0x0058F21084CFmt__streambuf_seekoff_BSecond variant of streambuf seekoff virtual call (vtable offset 0x14). Identical structure to CFmt__streambuf_seekoff, used for a different streambuf instance.
0x0058F270189CFmt__byte_buffer_growGrows a byte-element memory buffer (element size 1). Uses 1.5x growth factor. Allocates aligned memory for buffers >= 0x1000 bytes, copies existing data via memcpy, and frees old buffer.
0x0058F330236CFmt__uint32_buffer_growGrows a uint32-element memory buffer (element size 4). Uses 1.5x growth factor with max 0x3FFFFFFF elements. Allocates aligned memory, copies existing data, frees old buffer.
0x0058F420236CFmt__uint32_buffer_grow_BSecond variant of uint32 buffer grow. Identical to CFmt__uint32_buffer_grow with same 1.5x growth factor and 0x3FFFFFFF element limit.
0x0058F510230CFmt__wchar_buffer_growGrows a wchar_t (2-byte) element memory buffer. Uses 1.5x growth factor with max 0x7FFFFFFF elements. Allocates aligned memory, copies existing data, frees old buffer.
0x0058F600285CFmt__flush_write_bufferFlushes the write buffer to the underlying file descriptor via _write(). If the buffer is full (size==capacity and non-empty), writes all data and resets size to 0. Throws system_error on write failure with "cannot write to file" message.
0x0058F720185CFmt__unicode_codepoint_lookupLooks up a Unicode codepoint in a property table. Searches a range table (param_2/param_3) by high byte, then checks low byte in a secondary table (param_4). Falls back to a variable-length encoded table (param_5/param_6). Used for printability/escape checks.
0x0058F7E0215CFmt__is_printable_codepointChecks if a Unicode codepoint is printable. For BMP (< 0x10000) and SMP (0x10000-0x1FFFF), uses table lookups. For higher planes, checks specific CJK/emoji ranges. Returns true if printable.
0x0058F8C0567CFmt__get_windows_error_stringGets a Windows error message as a UTF-8 std::string. Calls FormatMessageW then converts wide string to UTF-8. Returns "unknown error" if conversion fails. Used by fmtlib's system_error formatting.
0x0058FB10260CFmt__needs_escapeDetermines if a Unicode codepoint needs escaping in formatted output. Returns 1 (needs escape) for control chars (< 0x20), DEL (0x7F), quote (0x22), backslash (0x5C), and non-printable codepoints. Returns 0 for printable chars.
0x0058FC2097CFmt__format_cached_argFetches a cached power-of-10 for format argument handling. Throws "argument not found" if cache lookup fails. Copies format state from this+0x10..0x28 and calls CFmt__func_00583530 to apply the cached power.
0x0058FC9095CFmt__set_sign_flagValidates and sets the sign flag on a format specifier. Requires numeric type (throws "format specifier requires numeric argument" otherwise). Requires signed type (throws "format specifier requires signed argument" for unsigned). Sets bits 4-6 of the spec byte at offset 9.
0x0058FCF0335CFmt__stringbuf_overflowstringbuf overflow virtual implementation. When put area is full, allocates a new buffer (min 0x20, max 2x growth, capped at 0x7FFFFFFF), copies existing data, updates get/put area pointers, frees old buffer if owned. Writes the overflow character to the new position.
0x0058FEA0373CFmt__create_pipeCreates a pipe via _pipe() with 64KB buffer and binary mode (0x8000). Stores read/write file descriptors to output params. Throws system_error with "cannot create pipe" on failure. Closes any previous FDs first.
0x00590020251CFmt__write_to_file_or_consoleWrites data to a FILE, with special handling for console output. If the file is a TTY, converts UTF-8 to wide chars and uses WriteConsoleW for proper Unicode display. Falls back to fwrite for non-TTY files.
0x0059012046CFmt__buffer_push_bytePushes a single byte into a memory buffer. If the buffer is full (size >= capacity), calls the grow function via vtable. Appends the byte at the current position and increments size.
0x00590150262CFmt__read_from_fdReads data from a file descriptor via _read(). Throws system_error with "cannot read from file" message on failure (return < 0). Returns the number of bytes read on success.
0x0059026080CFmt__count_trailing_zeros_32Counts and removes trailing decimal zeros from a 32-bit Grisu remainder. Divides by 100 repeatedly then by 10, updating the value in-place. Returns the number of trailing zeros removed. Part of Grisu float formatting.
0x005902B0380CFmt__count_trailing_zeros_64Counts and removes trailing decimal zeros from a 64-bit Grisu remainder. Uses 128-bit multiply by reciprocal of 100, then checks remainder. Updates the 64-bit value in-place. Part of Grisu float formatting for double precision.
0x00590430303CFmt__format_and_print_stderrFormats a message using a callback function into a stack buffer (500 bytes, growable), then writes the result to stderr via fwrite followed by a newline. Cleans up the buffer after output.
0x0059056024CFmt__report_system_errorReports a POSIX system error to stderr. Wrapper that calls CFmt__format_and_print_stderr with CFmt__format_system_error_to_buffer as the formatter callback.
0x0059058024CFmt__report_windows_errorReports a Windows system error to stderr. Wrapper that calls CFmt__format_and_print_stderr with CFmt__format_windows_error as the formatter callback.
0x005905A0373CFmt__stringbuf_seekoffstringbuf seekoff virtual implementation. Repositions get/put pointers based on seek mode (0=beg, 1=cur, 2=end). Validates that the new position is within buffer bounds. Updates get area (flag bit 0) and/or put area (flag bit 1) pointers as requested.
0x00590720246CFmt__stringbuf_seekposstringbuf seekpos virtual implementation. Repositions get/put pointers to an absolute position (param_3+param_5). Validates bounds and updates get area (flag bit 0) and put area (flag bit 1) as specified by param_9.
0x00590820206CFmt__get_file_sizeGets the size of a file via GetFileSize + _get_osfhandle. Returns the 64-bit file size. Throws system_error with "cannot get file size" on failure.
0x005908F01100CFmt__bigint_squareBigInteger squaring (self-multiply). Copies input to temp buffer, ensures output capacity is 2x input size, then performs schoolbook multiplication of the number with itself. Stores result back, trims leading zeros, and doubles the exponent. Part of Grisu/Dragonbox big number arithmetic.
0x00590D40163CFmt__get_locale_singletonReturns the singleton locale facet instance. Thread-safe initialization via init_thread_header/epoch_counter. Constructs the facet on first call with a vtable pointer and registers atexit cleanup.
0x00590DF0190CFmt__throw_format_errorThrows a fmt::format_error exception. Constructs an exception object with the given error message string, wraps it in a system_error, and throws via _CxxThrowException. Does not return.
0x00590EB0334CFmt__to_lower_wstringConverts a multibyte string to a lowercase wide string. First converts the input std::string to a wide string via convert_multibyte_to_widechar, then applies towlower to each character. Returns the result as a std::wstring.
0x0059100039CFmt__buffer_set_sizeSets the logical size of a memory buffer. If the requested size exceeds capacity, calls the grow function via vtable first. Clamps the size to capacity if needed.
0x00591030138CFmt__multiply_64x64_to_128Performs 64-bit x 64-bit multiplication producing a 128-bit result. Input is two 32-bit pairs (param_2:param_3 and param_4:param_5). Result stored in param_1[0..3] from low to high. Used by Grisu/Dragonbox for extended precision arithmetic.
0x00591120334CFmt__utf8_decodeDecodes a UTF-8 byte sequence into a Unicode codepoint. Handles 1-4 byte sequences using lookup tables for masks, shifts, and validation. Stores decoded codepoint in param_2, error flags in param_3. Returns pointer past the consumed bytes.
0x00591270382CFmt__format_to_string_00591270Formats arguments into a std::string using fmtlib. Formats into a 500-byte stack buffer (growable), then assigns the result to the output string via STL_string_assign_buffer. Cleans up the temporary buffer.
0x005913F0475CFmt__format_print_to_fileFormats arguments and prints to a FILE with console-aware output. Formats into a stack buffer, then checks if the file is a TTY. If TTY, converts UTF-8 to wide and uses WriteConsoleW. Otherwise falls back to fwrite. Cleans up buffer.
0x005915D0479CFmt__format_print_to_stdoutFormats arguments and prints to stdout with console-aware output. Gets stdout via __acrt_iob_func(1), formats into a stack buffer, then writes via WriteConsoleW (if TTY) or fwrite (if redirected). Implements fmt::print().
0x005917B0295CFmt__format_write_to_fileFormats arguments and writes to a FILE without console detection. Formats into a 500-byte stack buffer (growable), then writes via CFmt__fwrite_or_throw. Simpler than format_print_to_file -- no WriteConsoleW path.
0x005918E0168CFmt__make_system_errorCreates a system_error exception object. Formats an error message string, constructs an STL exception with error code, and sets the vtable to the fmtlib system_error type. Used by file I/O error reporting.
0x00591990281CFmt__make_system_error_with_localeCreates a system_error with locale-aware formatting. Similar to CFmt__make_system_error but initializes the locale singleton first (thread-safe). Formats error message, constructs exception, sets fmtlib system_error vtable.
0x00591AB0262CFmt__write_to_fdWrites data to a file descriptor via _write(). Throws system_error with "cannot write to file" message if _write returns -1. Returns bytes written on success.
0x00591BC0221CFmt__try_write_consoleAttempts to write data to a console using WriteConsoleW. Checks if the file is a TTY, converts UTF-8 to wide chars, then calls WriteConsoleW. Returns 1 on success, 0 if not a TTY or WriteConsoleW fails (caller should use fwrite instead).
0x00591CA0131CFmt__locale_facet_ctorConstructs a fmtlib locale facet object. Sets vtable pointers (_Facet_base and locale_facet), initializes two fields by calling CFmt__func_00599ca0 for thousands_sep (arg=2) and decimal_point (arg=1) locale data.
0x00591D3072CFmt__locale_facet_dtorDestructor for fmtlib locale facet. Resets vtable pointers in reverse order of construction (locale_facet vtable first, then _Facet_base vtable). SEH frame for exception safety.
0x00591D9097CFmt__locale_facet_scalar_deleting_dtorScalar deleting destructor for fmtlib locale facet. Sets vtable pointers, then conditionally frees the 12-byte object (if bit 0 of param_2 is set). SEH frame for exception safety.
0x00591E3037CFmt__locale_facet_reinitReinitializes locale facet data fields without full reconstruction. Updates thousands_sep (offset +4, arg=2) and decimal_point (offset +8, arg=1) by calling CFmt__func_00599ca0.
0x00591E6074CFmt__locale_lookup_stringLooks up a string by name using the locale facet. Computes the string length, converts it via CFmt__func_005994b0, then calls the virtual lookup method (vtable offset +4) on the facet's cached data. Returns the lookup result or 0 if the string is null/empty.
0x00596CA0102CFmt__destroy_arg_vector_and_nodes_24fmtlib type-erased format arg destructor. Deallocates internal vector via CFmt__deallocate_vector_00597160, destroys 0x24-byte hash/node entries via CFmt__func_00593050, then frees the node buffer.
0x00596D10102CFmt__destroy_arg_vector_and_nodes_2cfmtlib type-erased format arg destructor. Deallocates internal vector via CFmt__deallocate_vector_005971f0, destroys 0x2C-byte hash/node entries via CFmt__func_005930c0, then frees the node buffer.
0x00596D80102CFmt__destroy_arg_vector_and_nodes_18fmtlib type-erased format arg destructor. Deallocates internal vector via CFmt__deallocate_vector_00597280, destroys 0x18-byte hash/node entries via CFmt__func_00593160, then frees the node buffer.
0x00596DF0102CFmt__destroy_arg_vector_and_nodes_3cfmtlib type-erased format arg destructor. Deallocates internal vector via CFmt__deallocate_vector_00597310, destroys 0x3C-byte hash/node entries via CFmt__func_005931d0, then frees the node buffer.
0x00596E60102CFmt__destroy_arg_vector_and_nodes_24bfmtlib type-erased format arg destructor. Deallocates internal vector via CFmt__deallocate_vector_005973a0, destroys 0x24-byte hash/node entries via CFmt__func_00593250, then frees the node buffer.
0x00596ED0102CFmt__destroy_arg_vector_and_nodes_24cfmtlib type-erased format arg destructor. Deallocates internal vector via CFmt__deallocate_vector_00597430, destroys 0x24-byte hash/node entries via CFmt__func_005932c0, then frees the node buffer.
0x00596F40102CFmt__destroy_arg_vector_and_nodes_28fmtlib type-erased format arg destructor. Deallocates internal vector via CFmt__deallocate_vector_005974c0, destroys 0x28-byte hash/node entries via CFmt__func_00593330, then frees the node buffer.
0x00596FB0131CFmt__destroy_arg_linked_list_and_vectorfmtlib type-erased format arg destructor. Deallocates internal vector via CFmt__deallocate_vector_00597550, then walks a singly-linked list of 0x10-byte nodes freeing each, and frees the sentinel/head (0x10 bytes).
0x00597040125CFmt__deallocate_vector_00597040fmtlib internal vector deallocator. Computes buffer size from (end - begin) masked to 4-byte alignment, handles large allocations (>0xFFF) by finding the real allocation base at ptr[-1], then frees and zeros begin/end/capacity pointers.
0x005970D0125CFmt__deallocate_vector_005970d0fmtlib internal vector deallocator. Same pattern as 00597040: computes buffer size from (end - begin) & ~3, handles large allocs via backing pointer, frees and zeros the vector triple (begin/end/capacity).
0x00597160125CFmt__deallocate_vector_00597160fmtlib internal vector deallocator. Same pattern: computes buffer size from (end - begin) & ~3, handles large allocs via backing pointer, frees and zeros the vector triple.
0x005971F0125CFmt__deallocate_vector_005971f0fmtlib internal vector deallocator. Same pattern: computes buffer size, handles large allocs, frees and zeros vector triple.
0x00597280125CFmt__deallocate_vector_00597280fmtlib internal vector deallocator. Same pattern: computes buffer size, handles large allocs, frees and zeros vector triple.
0x00597310125CFmt__deallocate_vector_00597310fmtlib internal vector deallocator. Same pattern: computes buffer size, handles large allocs, frees and zeros vector triple.
0x005973A0125CFmt__deallocate_vector_005973a0fmtlib internal vector deallocator. Same pattern: computes buffer size, handles large allocs, frees and zeros vector triple.
0x00597430125CFmt__deallocate_vector_00597430fmtlib internal vector deallocator. Same pattern: computes buffer size, handles large allocs, frees and zeros vector triple.
0x005974C0125CFmt__deallocate_vector_005974c0fmtlib internal vector deallocator. Same pattern: computes buffer size, handles large allocs, frees and zeros vector triple.
0x00597550125CFmt__deallocate_vector_00597550fmtlib internal vector deallocator. Same pattern: computes buffer size, handles large allocs, frees and zeros vector triple.
0x005975E078CFmt__destroy_arg_simple_10fmtlib simple format arg destructor. Checks if member at [this+4] is non-null, if so frees it as a 0x10-byte allocation.
0x00597630123CFmt__destroy_arg_string_and_delete_40fmtlib format arg destructor for string-containing type. If member at [this+4] is non-null, destroys the embedded STL string via STL_string_dtor, then frees the 0x40-byte container.
0x005976B0116CFmt__destroy_arg_string_and_delete_24fmtlib format arg destructor for string-containing type. If member at [this+4] is non-null, destroys the embedded STL string, then frees the 0x24-byte container.
0x00597730155CFmt__destroy_arg_compound_vector_and_nodesfmtlib compound format arg destructor. If inner pointer at [this+4] is non-null: deallocates the inner vector, destroys 0x3C-byte node entries at offset+0x10, then frees the 0x2C-byte outer container.
0x005977D0116CFmt__destroy_arg_json_vector_and_delete_18fmtlib format arg destructor for JSON vector type. If member at [this+4] is non-null, clears the JSON vector via json__vector_clear_and_free_4byte, then frees the 0x18-byte container.
0x00597850126CFmt__destroy_arg_string_and_delete_3cfmtlib format arg destructor for string-containing type. Destroys embedded STL string at [this+4], then frees the 0x3C-byte container.
0x005978D0113CFmt__destroy_arg_string_and_delete_24bfmtlib format arg destructor for string-containing type. Destroys embedded STL string at [this+4], then frees the 0x24-byte container.
0x00597950113CFmt__destroy_arg_string_and_delete_24cfmtlib format arg destructor for string-containing type. Destroys embedded STL string at [this+4], then frees the 0x24-byte container. Variant c.
0x005979D0113CFmt__destroy_arg_string_and_delete_28fmtlib format arg destructor for string-containing type. Destroys embedded STL string at [this+4], then frees the 0x28-byte container.
0x00597A5078CFmt__destroy_arg_simple_10bfmtlib simple format arg destructor. Checks if member at [this+4] is non-null, frees as 0x10-byte allocation. Same pattern as 005975e0.
0x00597AA0116CFmt__destroy_arg_stub_and_delete_10fmtlib format arg destructor. Calls null_stub_00ae81a0 on the member, then frees the 0x10-byte container. The stub call may be a no-op dtor for a trivial type.
0x00597B2092CFmt__destroy_arg_virtual_releasefmtlib format arg destructor with virtual release. Reads a pointer at param_1[9], calls its virtual method at vtable+0x10 (likely Release/destroy), then zeros the pointer. Used for ref-counted or COM-like format arg types.
0x00597B80103CFmt__destroy_linked_list_nodesfmtlib linked list destructor. Zeros the count via sentinel->next->value=0, then walks the singly-linked list from head, freeing each 0x10-byte node, and finally frees the sentinel node.
0x00597BF073CFmt__destroy_nodes_and_delete_40fmtlib node array destructor. Calls CFmt__func_00592fd0 to destroy elements in the 0x40-byte node buffer, then frees the buffer.
0x00597C4073CFmt__destroy_nodes_and_delete_24fmtlib node array destructor. Calls CFmt__func_00593050 to destroy elements in the 0x24-byte node buffer, then frees the buffer.
0x00597C9073CFmt__destroy_nodes_and_delete_2cfmtlib node array destructor. Calls CFmt__func_005930c0 to destroy elements in the 0x2C-byte node buffer, then frees the buffer.
0x00597CE073CFmt__destroy_nodes_and_delete_18fmtlib node array destructor. Calls CFmt__func_00593160 to destroy elements in the 0x18-byte node buffer, then frees the buffer.
0x00597D3073CFmt__destroy_nodes_and_delete_3cfmtlib node array destructor. Calls CFmt__func_005931d0 to destroy elements in the 0x3C-byte node buffer, then frees the buffer.
0x00597D8073CFmt__destroy_nodes_and_delete_24bfmtlib node array destructor. Calls CFmt__func_00593250 to destroy elements in the 0x24-byte node buffer, then frees the buffer.
0x00597DD073CFmt__destroy_nodes_and_delete_24cfmtlib node array destructor. Calls CFmt__func_005932c0 to destroy elements in the 0x24-byte node buffer, then frees the buffer.
0x00597E2073CFmt__destroy_nodes_and_delete_28fmtlib node array destructor. Calls CFmt__func_00593330 to destroy elements in the 0x28-byte node buffer, then frees the buffer.
0x00597E70103CFmt__destroy_linked_list_nodes_bfmtlib linked list destructor. Zeros count via sentinel, walks singly-linked list of 0x10-byte nodes freeing each, then frees the sentinel. Same pattern as 00597b80.
0x00597EE073CFmt__destroy_nodes_and_delete_10fmtlib node array destructor. Calls CFmt__func_005933a0 to destroy elements in the 0x10-byte node buffer, then frees the buffer.
0x00597F3080CFmt__destroy_arg_string_memberfmtlib format arg destructor. Destroys the STL string member at [this+4] via STL_string_dtor. Does not free the container itself (string is embedded, not heap-allocated separately).
0x00597F80115CFmt__destroy_arg_vector_and_nodes_3c_offset8fmtlib compound format arg destructor. Deallocates the vector at offset 0 via CFmt__deallocate_vector_00597310, then destroys 0x3C-byte node entries at [this+8] and frees the node buffer. Uses offset 8 instead of 4 for the node pointer.
0x0059800083CFmt__destroy_arg_string_member_bfmtlib format arg destructor. Destroys the STL string member at [this+4] via STL_string_dtor. Same pattern as 00597f30.
0x0059806065CFmt__destroy_arg_string_directfmtlib format arg destructor. Directly destroys an STL string at the given param address via STL_string_dtor. Minimal wrapper with SEH frame.
0x005980B065CFmt__destroy_arg_delegatedfmtlib format arg destructor. Delegates destruction to CFmt__func_00596ba0 which handles the actual cleanup. Thin SEH wrapper.
0x00598100102CFmt__destroy_arg_hash_string_40fmtlib format arg destructor for hash map type. Deallocates vector via CFmt__deallocate_vector_005970d0, then destroys hash bucket list with 0x40-byte string nodes via STL_hash_list_destroy_string_nodes_40, and frees the bucket array.
0x00598170102CFmt__destroy_arg_hash_string_24fmtlib format arg destructor for hash map type. Deallocates vector via CFmt__deallocate_vector_00597160, then destroys hash bucket list with 0x24-byte string nodes via STL_hash_list_destroy_string_nodes_24, and frees the bucket array.
0x005981E0102CFmt__destroy_arg_hash_complex_2cfmtlib format arg destructor for hash map type. Deallocates vector via CFmt__deallocate_vector_005971f0, then destroys hash bucket list with 0x2C-byte complex nodes via STL_hash_list_destroy_complex_nodes_2c, and frees the bucket array.
0x00598250102CFmt__destroy_arg_hash_vector_18fmtlib format arg destructor for hash map type. Deallocates vector via CFmt__deallocate_vector_00597280, then destroys hash bucket list with 0x18-byte vector nodes via STL_hash_list_destroy_vector_nodes_18, and frees the bucket array.
0x005982C0102CFmt__destroy_hashmap_3c_entrySEH-protected destructor for a CFmt hash map entry with 0x3c-byte string nodes. Deallocates the vector then destroys hash list nodes and frees the bucket array.
0x00598330102CFmt__destroy_hashmap_24a_entrySEH-protected destructor for a CFmt hash map entry with 0x24-byte string nodes (variant A). Deallocates vector then destroys hash list nodes and frees bucket array.
0x005983A0102CFmt__destroy_hashmap_24b_entrySEH-protected destructor for a CFmt hash map entry with 0x24-byte string nodes (variant B). Deallocates vector then destroys hash list nodes and frees bucket array.
0x00598410102CFmt__destroy_hashmap_28_entrySEH-protected destructor for a CFmt hash map entry with 0x28-byte string nodes. Deallocates vector then destroys hash list nodes and frees bucket array.
0x0059848065CFmt__destroy_arg_list_seh_wrapperSEH wrapper that calls CFmt__destroy_arg_linked_list_and_vector to clean up an argument linked list and its associated vector.
0x005984D068CFmt__destroy_string_seh_wrapperSEH wrapper that calls STL_string_dtor to destroy an STL string member of CFmt.
0x00598520799CFmt__dtorCFmt destructor. Tears down the entire object: sets vtable, releases ref-counted object at +8, deactivates UI events (counters 5/6/7), destroys 13+ internal hash maps of various node types (string 0x40/0x24/0x28/0x3c, complex 0x2c, vector 0x18, trivial 0x10), deallocates associated vectors, and frees bucket arrays. Object size is 0x1d8 bytes.
0x0059891075CFmt__clear_name_hashmapClears the name hash map (0x40-byte string nodes). Destroys all nodes, resets sentinel pointers and count, then fills bucket array with sentinel pointer.
0x0059896075CFmt__clear_category_hashmapClears a category hash map (0x24-byte string nodes). Destroys all nodes, resets sentinel and count, fills bucket array with sentinel.
0x005989B075CFmt__clear_complex_node_hashmapClears a complex node hash map (0x2c-byte nodes). Destroys all nodes, resets sentinel and count, fills bucket array with sentinel.
0x00598A0075CFmt__clear_vector_node_hashmapClears a vector node hash map (0x18-byte nodes containing vectors). Destroys all nodes, resets sentinel and count, fills bucket array with sentinel.
0x00598A5075CFmt__clear_string_3c_hashmapClears a string hash map with 0x3c-byte nodes. Destroys all nodes, resets sentinel and count, fills bucket array with sentinel.
0x00598AD0145CFmt__clear_trivial_int_hashmapClears an unordered_map with trivial 0x10-byte int nodes. Walks the linked list freeing each node, resets sentinel and count, fills bucket array. SEH-protected.
0x00598BF065CFmt__destroy_string_seh_wrapper_2SEH wrapper that calls STL_string_dtor to destroy an STL string. Second variant used in a different destruction context.
0x00598C4038CFmt__scalar_deleting_dtorCFmt scalar deleting destructor. Calls CFmt__dtor, then optionally frees the 0x1d8-byte object if bit 0 of param_2 is set.
0x00598C70654CFmt__clear_all_dataClears all CFmt data containers: name map (0x40 nodes), complex map (0x2c nodes), vector map (0x18 nodes), two int-keyed maps, category maps (0x24 nodes), linked list entries (frees string+vector per entry), resets counters at +0x19c/0x1a8/0x1bc, and calls additional clear helpers.
0x00598F0060CFmt__clear_priority_list_and_countersClears the priority linked list at offset +0x1b0 (trivial 0x10 nodes), resets counters at +0x1a8 and +0x1bc to their base values at +0x1a4 and +0x1b8.
0x00598F40218CFmt__clear_sortable_list_entriesIterates the sortable list linked list at offset +0x17c, destroying each entry's vector (with large-block deallocation) and string, then frees the 0x24-byte entry. Finishes by clearing the associated hash map.
0x0059902018CFmt__hide_child_panelHides the child panel by calling UIWindow__toggle_child_panel_visibility(0), but only if the global CFmt instance (DAT_01457848) is non-null.
0x005990401057CFmt__rebuild_sortable_list_with_time_filterRebuilds the sortable list from source data. First clears existing entries, gets current time, then iterates all categories. For each item: checks if current category matches, checks exclusion list and time-based availability windows, computes FNV-1a hash of category string for hash map lookup, creates CSortableListItem entries, inserts into hash map (with rehash if needed), or appends to existing entries.
0x0059947050CFmt__find_index_by_string_keyLooks up a string key in the hash map at offset +0x118 (via STL_unordered_map_find_string_key). Returns the value at node+0x20 if found, or -1 (0xFFFFFFFF) if not found.
0x005994B0376CFmt__find_index_by_cstringLooks up a C-string in the hash map at offset +0x118. Computes strlen, creates temp STL string, computes FNV-1a hash, searches hash map. Returns value at node+0x20 if found, or -1 if null/empty/not found. Frees temp string on exit.
0x0059963022CFmt__calc_elapsed_time_offsetCalculates elapsed time offset: returns (param_2 - field_0x1d0) - field_0x1cc. Used for time-based availability filtering of items.
0x00599650162CFmt__get_or_create_instanceSingleton getter/creator for CFmt. If global DAT_013896c4 is null, allocates 0x1d8 bytes and calls CHashTable__ctor. If construction succeeds (flag at +4 is set), returns 1. Otherwise destroys via virtual dtor and returns 0.
0x0059970042CFmt__destroy_instanceDestroys the CFmt singleton. If DAT_013896c4 is non-null: clears all data via CFmt__clear_all_data, then calls virtual destructor with delete flag, sets global pointer to null.
0x00599730257CFmt__handle_chat_commandHandles a chat command string. If global instance exists and its +0x13c field is set: parses the command (strips leading '/'), looks up in hash map via STL_unordered_map_find_string_key_v2. If found, shows panel and calls UIPartyMatchWnd__set_data_source. If not found or null/empty, hides the child panel.
0x00599840127CFmt__lookup_and_apply_formatWrapper that sets up a hash iterator callback context and calls CFmt__lookup_or_insert_by_lowercase_string with member offsets +0xb0 and +0x90.
0x005998C074CFmt__find_string_by_int_key_94Finds a string value by integer key in the hash map at offset +0x94. Uses _Find_last to locate the node; returns pointer to string data (handles SSO: inline if <= 0xF bytes, else follows pointer), or null if not found.
0x0059991018CFmt__find_string_by_category_and_itemThin wrapper: calls CFmt__find_item_string_by_category_and_id with the current category ID (field +0xC) and the given item param.
0x00599930814CFmt__search_items_by_patternSearches items by string pattern. Gets current category items, then for each item: looks up subcategory and item details via nested hash maps. If param_3 is non-null, uses strstr to match the search pattern against item strings. Matching items go to front of result vector, non-matching to back. Results are sorted via CListView__introsort. Returns vector of matching item IDs.
0x00599C6060CFmt__get_current_category_dataGets the current category's data node. Looks up current category ID (field +0xC) in hash map at +0x34 via _Find_last. Returns node+0xC if found, or 0 if not found.
0x00599CA087CFmt__get_emote_effect_by_charGets emote effect ID by character key. First looks up in the char-keyed hash map at +0x13c via STL_hash_find_last_by_char. If found, returns value at node+0xC. If not found, falls back to CEmoteMgr__get_emote_effect_id.
0x00599D00110CFmt__find_item_node_by_category_and_idTwo-level lookup: finds an item node by category ID (param_2) and item ID (param_3). Both must be >= 0. Looks up category in hash map at +0x34, then item within category's submap at +0x10. Returns node+0xC if found, or 0.
0x00599D70110CFmt__find_item_string_by_category_and_idTwo-level lookup returning a string pointer. Finds category by param_2 in hash map at +0x34, then item by param_3 in submap at +0x10. Returns pointer to string data (handles SSO: inline if capacity <= 0xF, else follows pointer), or null if not found.
0x00599DE0337CFmt__get_items_vector_by_categoryGets a vector of item IDs for a given category. Looks up category by param_3 in hash map at +0x54 via _Find_last. If found, copies the item ID vector from the category node. Returns output vector param_2 (empty if category not found).
0x00599F5049CFmt__find_sortable_entry_by_stringFinds a sortable entry by string key in hash map at +0x15c via STL_unordered_map_find_string_key_v2. Returns value at node+0x20 if found, or 0 if not found.
0x00599F90122CFmt__find_data_by_string_key_70Finds data by string key in the hash map at offset +0x70. Computes FNV-1a hash of the string (handles SSO), searches via STL_hash_find_last_by_string_00592e90. Returns pointer to node+0x20 data if found, or 0 if not found.
0x0059A01035CFmt__get_min_priorityFinds the minimum priority value across all nodes in the linked list at offset +0x1b0. Iterates all nodes checking field at node+3 (node[3]). Returns the minimum value found, or 0x7FFFFFFF if the list is empty.
0x0059A04063CFmt__find_subcategory_by_int_keyFinds a subcategory node by integer key in hash map at +0x34. Uses _Find_last for lookup. Returns node+0xC if found, or 0 if not found.
0x0059A08063CFmt__find_name_entry_by_int_keyFinds a name entry node by integer key in hash map at +0x14. Uses _Find_last for lookup. Returns node+0xC if found, or 0 if not found.
0x0059A0C071CFmt__get_name_string_ptr_by_int_keyGets name string pointer by integer key from hash map at +0x14. Uses _Find_last for lookup. Returns pointer to string data (handles SSO: returns inline buffer if capacity <= 0xF, else follows pointer), or null if not found.
0x0059A11064CFmt__get_name_int_value_by_keyGets an integer value (at node offset +0x24) by integer key from hash map at +0x14. Returns -1 (0xFFFFFFFF) if not found.
0x0059A15046CFmt__find_priority_node_by_idFinds a priority node by ID in the linked list at offset +0x1b0. Iterates nodes comparing node[2] to param_2. Returns pointer to node[3] (priority value) if found, or null if not found.
0x0059A18049CFmt__find_sortable_data_by_stringFinds sortable data by string key in hash map at +0x17c via STL_unordered_map_find_string_key_v2. Returns value at node+0x20 if found, or 0 if not found.
0x0059A1C094CFmt__get_filtered_exclusion_listWrapper that calls CFmt__func_0059a820 with the exclusion list vector at offset +0x1a4 and the given parameters. Used to get a filtered list excluding certain entries.
0x0059A220830CFmt__lookup_or_insert_by_lowercase_stringComplex lookup/insert by lowercase string. Converts input string to lowercase, computes FNV-1a hash, searches hash map. If not found and a callback is provided: invokes callback to generate a value, inserts into hash map (string key -> value), optionally also inserts into secondary emplace map. If found, returns stored value. Returns -1 if not found and no callback.
0x0059A56067CFmt__get_string_ptr_from_member_mapGets string pointer by integer key from a member hash map at offset +0x4 (relative to param_1). Uses _Find_last for lookup. Returns string data pointer (handles SSO), or null if not found.
0x0059A5B063CFmt__get_field_2c_by_int_keyGets integer value at node offset +0x2c by integer key from hash map at +0x14. Uses _Find_last for lookup. Returns 0 if not found.
0x0059A5F063CFmt__get_field_28_by_int_keyGets integer value at node offset +0x28 by integer key from hash map at +0x14. Uses _Find_last for lookup. Returns 0 if not found.
0x0068DFA0825CFmt__out_write_with_line_breaks_narrow{fmt} library: Writes narrow (char) format output into a wchar buffer with line-break tracking. Reads chars from an SSO string, accumulates line positions, and copies source data with separator insertions. Uses CFmt__uint32_buffer_grow for overflow.
0x0068E2E0821CFmt__out_write_with_line_breaks_wide{fmt} library: Writes wide (wchar) format output into a wchar buffer with line-break tracking. Same logic as narrow variant but reads wchar input. Uses CFmt__uint32_buffer_grow for overflow.
0x0068E62094CFmt__out_copy_wchars_to_buffer{fmt} library: Copies a range of wchars [param_2, param_3) into the output buffer at param_4. Grows buffer via vtable call if capacity exceeded.
0x0068E680101CFmt__out_copy_chars_to_wbuffer{fmt} library: Copies narrow chars [param_2, param_3) into a wchar output buffer, widening each char to short. Grows buffer via vtable if needed.
0x0068E6F094CFmt__out_copy_wchars_to_buffer_0068e6f0{fmt} library: Copies wchars to wchar output buffer. Identical to CFmt__out_copy_wchars_to_buffer but at different address (template instantiation).
0x0068E75074CFmt__out_copy_chars_to_wbuffer_0068e750{fmt} library: Copies narrow chars to wchar buffer with widening. Identical to CFmt__out_copy_chars_to_wbuffer but at different address (template instantiation).
0x0068E7A0488CFmt__out_parse_arg_id_wide{fmt} library: Parses an argument ID from format string for precision resolution. Handles numeric IDs (0-9...), named IDs (identifiers), and validates against auto/manual indexing mode. Calls CFmt__parse_validate_precision on the resolved argument.
0x0068E990487CFmt__out_parse_arg_id_for_width{fmt} library: Parses an argument ID from format string for width resolution. Same as precision variant but calls CFmt__parse_validate_width.
0x0068EB801291CFmt__out_format_float32{fmt} library: Formats a 32-bit float value with alignment, sign, locale, fixed/scientific/general notation. Handles decimal point positioning, padding, sign prefix, and locale-aware grouping. Delegates to CFmt__render_* and CFmt__buf_* for final output.
0x0068F0901611CFmt__out_format_float64{fmt} library: Formats a 64-bit double value with alignment, sign, locale, fixed/scientific/general notation. Extended version of float32 formatter handling 64-bit mantissa/exponent. Delegates to CFmt__render_* and CFmt__buf_* for final output.
0x0068F6E01286CFmt__out_format_float_general{fmt} library: General float formatting for values whose digits come from an external digits buffer (param_3). Handles fixed/scientific/general notation, sign prefix, locale grouping, and padding. Uses CFmt__render_* and CFmt__buf_* helpers.
0x0068FBF037CFmt__out_compare_two_wchars{fmt} library: Compares two wchar pairs. Returns 1 in low byte if both pairs match; otherwise returns difference info in high byte.
0x0068FC20158CFmt__out_fill_padding{fmt} library: Fills output buffer with padding. If fill pattern is 1 wchar, delegates to single-char repeat. Otherwise copies the multi-char fill pattern param_3 times.
0x0068FCC081CFmt__out_fill_wchar_n_times{fmt} library: Writes a single wchar value (param_4) into output buffer param_3 times. Only writes if param_3 > 0. Grows buffer via vtable if capacity exceeded.
0x0068FD2081CFmt__out_fill_wchar_repeat{fmt} library: Writes a single wchar value into output buffer N times. Similar to fill_wchar_n_times but checks param_3 != 0 instead of > 0.
0x0068FD80102CFmt__out_find_escape_charCFmt: out find escape char
0x0068FEF0194CFmt__out_format_escaped_pair{fmt} library: Formats an escaped string pair (two wstring arguments). Extracts the SSO buffer pointers and lengths, then calls CFmt__vformat_to_wstring with type code 0xdd.
0x0068FFC0161CFmt__out_format_escaped_single{fmt} library: Formats a single escaped wstring argument. Extracts SSO buffer pointer and length, then calls CFmt__vformat_to_wstring with type code 0xd.
0x00690070183CFmt__parse_format_double_arg{fmt} library: Formats a double argument using format_to_string. Extracts the 8-byte double and an extra param, then calls CFmt__format_to_string_00591270 with type code 0x1a.
0x00690130138CFmt__write_uint32_decimal_to_wbuffer{fmt} library: Writes a uint32 value as decimal digits into a wchar buffer. Uses a lookup table for 2-digit pairs (00-99) to convert efficiently. Writes in reverse from the end of the buffer.
0x006901C0309CFmt__write_uint64_decimal_to_wbuffer{fmt} library: Writes a uint64 value (param_2:param_3) as decimal digits into a wchar buffer. Uses 64-bit division by 100 with the lookup table for 2-digit pairs. Writes in reverse from position param_4.
0x00690300216CFmt__write_uint32_hex_to_wbuffer{fmt} library: Writes a uint32 as hexadecimal digits into a wchar output buffer. Supports uppercase (ABCDEF) or lowercase (abcdef) based on param_5. Tries in-place write first; falls back to stack buffer + copy.
0x006903E0162CFmt__parse_validate_precision{fmt} library: Validates a precision value from a format argument. Handles 4 cases: (1) use value, error if negative; (2) use zero; (3) keep existing, error if negative; (4) pass-through. Errors if value >= 0x80000000.
0x006904C0162CFmt__parse_validate_width{fmt} library: Validates a width value from a format argument. Same logic as precision validator but with "negative width" and "width is not integer" error messages.
0x006905A0180CFmt__parse_find_named_arg{fmt} library: Searches for a named argument by comparing wchar name (param_2, length param_3) against a list of registered named arguments. Returns the argument index or -1 if not found. Only active if arg list has the 0x40000000 flag.
0x00690660234CFmt__parse_rbtree_insert_uint{fmt} library: Inserts a uint key into a red-black tree (std::set<uint>). Uses _Find_lower_bound to locate insertion point. If key already exists, returns existing node. Otherwise allocates a 0x14-byte node and calls Insert_node.
0x00690750388CFmt__parse_arg_index{fmt} library: Parses an argument index from the format string. Handles auto-indexing (} or :), explicit numeric index, and named argument lookup. Validates against auto/manual mode switching. Returns the resolved argument index.
0x006908E0202CFmt__parse_float_type_specifier{fmt} library: Converts a float type specifier enum to an output format descriptor. Maps type codes (0=default, 7=a, 8=A, 9=e, 10=E, 11=f, 12=F, 13=d, 14=g) to internal representation with sign/uppercase flags.
0x006909E01245CFmt__parse_format_specs{fmt} library: Parses the full format specification after the colon in {id:spec}. Handles fill/align, sign (+/-/space), # flag, 0 flag, width (literal or {arg}), precision (.N or .{arg}), L locale flag, and type character (d,x,o,b,s,c,p,etc). Returns pointer past the closing }.
0x00690EC0407CFmt__parse_format_string_body{fmt} library: Parses the body of a format string, processing literal text and {replacement fields}. For short strings (<64 wchars), uses inline loop. For longer strings, calls a separate path. Handles escaped {{ and }} (doubled braces). Calls CFmt__parse_replacement_field for each { found.
0x00691060140CFmt__parse_nonneg_int_0068{fmt} library: Parses a non-negative integer from a wchar string. Reads decimal digits, accumulates value. Returns param_3 (max value) if the number overflows (>10 digits or >INT_MAX). Updates the position pointer past the digits.
0x006910F0105CFmt__parse_type_char_to_enum{fmt} library: Converts a type specifier character to its internal enum value. Maps: d=1, o=2, x=3, X=4, b=5, B=6, a=7, A=8, e=9, E=10, f=11, F=12, g=13, G=14, c=15, s=16, p=17, ?=18. Returns 0 for unknown.
0x006911F0677CFmt__parse_replacement_field{fmt} library: Parses a single replacement field {...} from a format string. Resolves the argument index (auto or explicit), parses format specs after ':', invokes the appropriate formatter via CFmt__format_arg_dispatch, and returns pointer past the closing }.
0x006914A042CFmt__buffer_try_reserve{fmt} library: Tries to reserve space in the wchar output buffer. If offset+count <= capacity, advances offset and returns the write pointer. Otherwise returns 0 (caller must grow buffer).
0x006914D0126CFmt__buffer_to_wstring{fmt} library: Converts a wchar buffer (pointer + count from param_2+8/param_2+4) into an std::wstring. Initializes the SSO wstring and copies the buffer contents via STL_wstring_assign.
0x00691550387CFmt__vformat_to_wstring{fmt} library: Top-level vformat_to_wstring. Allocates a 500-wchar stack buffer, calls CFmt__vformat_dispatch to process the format string and args, then converts the result buffer to an std::wstring. Frees heap buffer if it grew beyond stack.
0x006916E0158CFmt__vformat_dispatch{fmt} library: Dispatch function for vformat. Short-circuits the common case of a single "{}" by directly formatting arg 0. Otherwise calls CFmt__parse_format_string_body to process the full format string.
0x006917801099CFmt__format_arg_dispatch{fmt} library: Dispatches formatting based on the argument's type tag. Handles: int (1-4), bool (7), char (8), float (9), double (10-11), string/wstring (12-14), and custom formatters (15/default). Each case delegates to the appropriate render/format function.
0x00691C101629CFmt__format_value_by_type{fmt} library: Formats a value by its runtime type. Massive switch handling: signed int (case 1), unsigned int (case 2), signed int64 (case 3), unsigned int64 (case 4), bool (case 7), char (case 8), float (case 9), double (case 10/11), wstring (case 12-14), custom (case 15). Each case converts the value and writes formatted output to the buffer.
0x006922B013CFmt__store_result_ptr_006922b0{fmt} library: Simple helper that stores a result pointer. Sets *param_1 = param_2.
0x006922C0341CFmt__format_string_with_specs{fmt} library: Formats a wchar string with format specs applied. Validates type specifier (must be default, 's', or '?'). Computes truncated length from precision. If type is '?' (escaped), calculates escaped output length by scanning for special chars. Delegates to CFmt__render_00695340 for final output.
0x00692480116CFmt__format_signed_int_with_sign_00692480{fmt} library: Formats a signed 32-bit integer with sign handling. Negates if negative and prepends '-'. For non-negative values, applies sign policy from format specs ('+', ' ', or none). Delegates to CFmt__render_00694b50.
0x00692500933CFmt__format_float_value_00692500{fmt} library: Formats a single-precision float with full format spec support. Resolves format type via CFmt__parse_float_type_specifier. Handles sign, infinity/NaN (via CFmt__render_00695230), hex float (via CFmt__format_hex_float), and decimal notation (via CFmt__format_double_to_digits + CFmt__out_format_float_general). Uses a 500-byte stack buffer with heap fallback.
0x006928B0950CFmt__format_float_32bitFormats a 32-bit float value. Parses format spec, handles sign, checks for NaN/Inf, dispatches to hex float or decimal formatting paths. Uses digit buffer with auto-grow.
0x00692C70950CFmt__format_float_64bitFormats a 64-bit float (double) value. Nearly identical to 32-bit variant. Parses format spec, handles sign, NaN/Inf check, dispatches to hex float or decimal formatting.
0x0069303055CFmt__render_pointer_valueRenders a pointer value. Validates type specifier (must be default or 0x11), then delegates to CFmt__render_pointer_hex for actual hex output.
0x00693070367CFmt__render_signed_int64Renders a signed 64-bit integer into a wide-char buffer. Handles negative sign (0x2d = '-'), counts decimal digits, and writes with alignment padding.
0x006931E0233CFmt__render_boolRenders a boolean value as "true" or "false" string. Validates type specifier (0x10 = bool presentation). Applies width/alignment padding.
0x006932D0148CFmt__render_padded_stringRenders a byte string with alignment padding. Calculates left/right padding based on alignment flags, outputs content between padding fills.
0x00693370145CFmt__render_charRenders a single character with alignment. Checks type specifier 0x12 for char presentation type. Applies width padding around the character output.
0x00693410150CFmt__render_hex_escape_shortRenders a short hex escape sequence (\xNN). Writes backslash + escape char, then hex digits using "0123456789abcdef" lookup table.
0x006934B018CFmt__skip_escape_width_4Returns pointer advanced by 4 bytes. Used to skip a 4-byte escape sequence width in format processing.
0x006934D0183CFmt__render_hex_escape_8digitRenders an 8-digit hex escape sequence (\xNNNNNNNN). Similar to short variant but with 8-byte buffer for wider codepoints.
0x0069359016CFmt__skip_escape_width_6Returns pointer advanced by 6 bytes. Used to skip a 6-byte escape sequence width in format processing.
0x006935A0180CFmt__render_hex_escape_wideRenders a wide hex escape sequence with 16-byte buffer. Writes backslash + type char, then variable-length hex digits for wide codepoints.
0x0069366016CFmt__skip_escape_width_10Returns pointer advanced by 10 bytes. Used to skip a 10-byte escape sequence width in format processing.
0x00693670239CFmt__render_char_literal_quotedRenders a character literal wrapped in single quotes. Handles printable chars directly, non-printable/special chars via escape sequences. Special-cases single quote (0x27).
0x00693760290CFmt__render_escape_sequenceRenders escape sequences for special characters. Maps: 9->\\t, 10->\\n, 13->\\r, 0x22/0x27/0x5c->backslash prefix. Other non-printable chars use \\xNN hex escapes.
0x006938F071CFmt__calc_escape_widthCalculates the rendered width of an escape sequence. Known escapes (\\t, \\n, etc.) return 2. Unknown escapes iterate codepoints, each contributing 4 chars (\\xNN).
0x006939D41CFmt__format_and_write_outputCFmt output formatter: iterates format string, copies literal chars to buffer, processes escape sequences via render_escape_sequence
0x00693AA0143CFmt__calc_escaped_string_widthCalculates total rendered width of a string with escape sequences. Iterates codepoints, counting 1 for printable chars and escape width for non-printable. Adds 2 for surrounding quotes.
0x00693B90350CFmt__render_exponentRenders a scientific notation exponent. Writes sign (+/-), then 2-4 digit exponent value using digit pair lookup table. Used by float formatting.
0x00693CF0490CFmt__render_decimal_int32_paddedRenders a 32-bit decimal integer with padding/alignment. Handles sign prefix bytes, zero-padding for precision, left/right/center alignment, and fill character.
0x00693EE0502CFmt__render_decimal_int64_paddedRenders a 64-bit decimal integer with padding/alignment. Same logic as 32-bit variant but accepts 64-bit digit buffer parameters for larger values.
0x006940E0423CFmt__render_hex_int32_paddedRenders a 32-bit integer in hexadecimal with padding/alignment. Handles 0x prefix, zero-padding, and fill character alignment.
0x00694290434CFmt__render_hex_int64_paddedRenders a 64-bit integer in hexadecimal with padding/alignment. Handles 0x/0X prefix, zero-padding, and fill character alignment.
0x00694450434CFmt__render_binary_int32_paddedRenders a 32-bit integer in binary with padding/alignment. Handles 0b prefix, zero-padding, and fill character alignment.
0x00694610434CFmt__render_binary_int64_paddedRenders a 64-bit integer in binary with padding/alignment. Handles 0b/0B prefix, zero-padding, and fill character alignment.
0x006947D0434CFmt__render_octal_int32_paddedRenders a 32-bit integer in octal with padding/alignment. Handles 0 prefix (alternate form), zero-padding, and fill character alignment.
0x00694990434CFmt__render_octal_int64_paddedRenders a 64-bit integer in octal with padding/alignment. Handles 0 prefix (alternate form), zero-padding, and fill character alignment.
0x00694B50529CFmt__format_uint32_dispatchDispatches unsigned 32-bit integer formatting based on type specifier. Cases: 0/1=decimal, 2=octal, 3/4=hex, 5/6=binary, 0xf=char. Handles locale grouping and 0x/0b/0o prefixes.
0x00694D90618CFmt__format_uint64_dispatchDispatches unsigned 64-bit integer formatting based on type specifier. Same cases as 32-bit variant but counts digits for 64-bit values with appropriate shift operations.
0x00695030345CFmt__render_int64_with_locale_groupingRenders a 64-bit integer with locale-aware digit grouping (thousands separators). Counts digits, calculates group separator positions, then writes with padding/alignment.
0x00695190156CFmt__render_locale_aware_intWrapper for locale-aware integer rendering. Initializes locale format string via CFmt__init_locale_format_wstring, then delegates to CFmt__render_int64_with_locale_grouping.
0x00695230271CFmt__render_nan_infRenders NaN or Inf special float values. Selects "nan"/"inf" string based on sign, handles sign prefix character, applies width padding/alignment.
0x00695340370CFmt__render_string_valueRenders a string value with optional debug quoting. Plain mode outputs raw wide chars. Debug mode wraps in double quotes and escapes special characters via CFmt__render_escape_sequence.
0x006954C0389CFmt__render_float_with_exponent_32bitRenders a formatted float number with sign, decimal point, and exponent (32-bit). Handles sign prefix, decimal separator, fractional digits, and exponent suffix.
0x00695650392CFmt__render_float_with_exponent_64bitRenders a formatted float number with sign, decimal point, and exponent (64-bit). Same structure as 32-bit variant but uses 64-bit digit conversion.
0x006957E0327CFmt__render_float_with_exponent_narrowRenders a formatted float number with sign, decimal, and exponent using narrow (byte) string output. Uses CFmt__out_0068e680 for byte-width output instead of wide chars.
0x00695930185CFmt__render_pointer_hexRenders a pointer as hexadecimal. Calculates hex digit count from bit width, prefixes with "0x", then outputs hex digits with alignment padding.
0x006959F0237CFmt__render_digits_with_separator_32bitFormats 32-bit digits with a decimal separator. Converts integer to digit chars using pair lookup, inserts separator at specified position. Used for locale-aware number formatting.
0x00695AE0480CFmt__render_digits_with_separator_64bitFormats 64-bit digits with a decimal separator. Uses 64-bit division (div by 100 via multiply-shift) to extract digit pairs. Inserts separator at specified position.
0x00695CC0118CFmt__render_string_segment_with_separatorOutputs a string segment with optional separator character. Writes first segment, optionally appends separator char, then writes remainder. Used for locale grouping output.
0x00695D40376CFmt__init_locale_format_wstringInitializes a locale-aware format wstring. Constructs an STL wstring, calls CFmt__format_value_with_locale_wchar to populate locale separator info. Stores locale separator char at offset +24.
0x0069641078CFmt__dtor_free_buffer_0x14Destructor: frees a 0x14-byte buffer at this+4 if non-null
0x0069646078CFmt__dtor_free_buffer_0x18Destructor: frees a 0x18-byte buffer at this+4 if non-null
0x006964B078CFmt__dtor_free_buffer_0x1cDestructor: frees a 0x1c-byte buffer at this+4 if non-null
0x0069650077CFmt__dtor_stringDestructor: calls STL_string_dtor on the contained string
0x0069655080CFmt__dtor_rbtreeDestructor: destroys all nodes in the RB-tree at this+4
0x006965A0397CFmt__dtor_report_containerFull destructor for a report container: iterates tree calling destructors on subtrees, clears RB-tree nodes, clears hashmap, frees vector, then destroys the root tree and hashmap sentinel
0x0069673056CFmt__wbuffer_append_wcharAppends a single wchar_t to the format output buffer, growing the buffer if needed
0x0069677040CFmt__string_assign_from_otherAssigns a string from another string object (SSO-aware: checks capacity threshold at offset+5)
0x006967A0223CFmt__report_map_find_or_insert_uintFinds a uint key in the RB-tree map or inserts a new 0x18-byte node if not found. Returns pointer to value field at node+0x14
0x00696880321CFmt__report_map_find_or_insert_with_subtreeFinds a uint key in the RB-tree map or inserts a new 0x1c-byte node with a nested RB-tree subtree. Returns pointer to the subtree at node+5
0x00696AF0132CFmt__report_tree_iterator_decrementRB-tree iterator decrement (moves to previous in-order node). Handles both left-subtree traversal and parent backtracking
0x00696B80288CFmt__format_char_with_quotesFormats a character with surrounding single quotes. Non-printable, control chars, backslash, and double-quote get escape sequences via CFmt__render_escape_sequence
0x00696CA0115CFmt__format_hex_prefix_and_valueWrites '0x' prefix followed by a hex-formatted uint32 value to the wide-char output buffer
0x00696D20194CFmt__format_float_fixed_32bitFormats a 32-bit float in fixed notation: optional sign char, digits with separator, optional fill chars, decimal separator, and exponent
0x00696DF0197CFmt__format_float_fixed_64bitFormats a 64-bit float in fixed notation: optional sign char, digits with separator, optional fill chars, decimal separator, and exponent
0x00696EC0194CFmt__format_float_generalFormats a float in general notation: optional sign, string segment with separator, optional fill, decimal separator, and exponent
0x00696F90246CFmt__write_uint64_hex_to_wbufferConverts a 64-bit unsigned int to hexadecimal wchar string. Supports upper/lower case via flag at param_1[3]. Uses fast path when buffer has enough space, falls back to stack buffer + copy
0x00697090647CFmt__format_int32_decimal_with_groupingFormats a 32-bit integer as decimal with optional sign char, locale-aware grouping/fill, and exponent suffix. Uses narrow byte buffer for locale grouping path
0x00697320668CFmt__format_int64_decimal_with_groupingFormats a 64-bit integer as decimal with optional sign char, locale-aware grouping/fill, and exponent suffix. Uses narrow byte buffer for locale grouping path
0x006975C0606CFmt__format_string_decimal_with_groupingFormats a string-based decimal number with optional sign char, locale-aware grouping/fill, and exponent suffix. Copies raw char digits for non-locale path
0x00697820152CFmt__write_uint32_binary_to_wbufferConverts a 32-bit unsigned int to binary (base-2) wchar string. Shifts right by 1, masks with &1, adds 0x30. Fast path for in-place write, fallback to stack buffer
0x006978C0173CFmt__write_uint64_binary_to_wbufferConverts a 64-bit unsigned int to binary (base-2) wchar string. Uses double-register shift (hi:lo >> 1). Fast path for in-place write, fallback to stack buffer
0x00697970564CFmt__format_int32_with_locale_groupingFormats a 32-bit integer with locale-aware digit grouping (thousands separators). Checks locale flag at offset+0x18, uses wchar buffer for locale grouping path. Appends optional fill characters at end
0x00697BB0585CFmt__format_int64_with_locale_groupingFormats a 64-bit integer with locale-aware digit grouping. Same structure as 32-bit version but uses 64-bit digit separator. Checks locale flag at offset+0x18
0x00697E00564CFmt__format_string_with_locale_groupingFormats a string-representation number with locale-aware digit grouping. Same pattern as int32/int64 versions but operates on char-based digit strings
0x00698040158CFmt__write_uint32_octal_to_wbufferConverts a 32-bit unsigned int to octal (base-8) wchar string. Shifts right by 3, masks with &7, adds 0x30. Fast path for in-place write, fallback to stack buffer
0x006980E0174CFmt__write_uint64_octal_to_wbufferConverts a 64-bit unsigned int to octal (base-8) wchar string. Uses double-register shift (hi:lo >> 3). Fast path for in-place write, fallback to stack buffer
0x00698190151CFmt__write_escaped_closing_bracesWrites format string literal text to output, handling escaped closing braces (}} -> }). Throws format error on unmatched single }
0x00698230138CFmt__report_accumulate_valueAccumulates a single report value. Uses RTDynamicCast to get the report entry, then switches on aggregation mode: 0=sum, 1=count, 2=max, 4=max-or-zero. Optionally inserts into filter RB-tree
0x00698330204CFmt__report_accumulate_tree_valuesAccumulates report values from a tree of entries. Iterates the entry tree, for each node calls CEntity__map_insert_or_get_layer_priority and applies aggregation (sum/count/max/concat/max-or-zero). Mode 3 creates linked list pairs
0x006985601736CFmt__report_merge_treesMerges two report trees. For each entry in source tree: finds/creates matching key in destination, then either creates or merges subtree entries including nested RB-trees. Complex nested map-of-maps structure
0x00698C30165CFmt__report_insert_or_merge_entryInserts a report entry or merges it with existing. If key exists in outer map and inner subtree matches, calls merge callback; otherwise inserts into subtree via find_or_insert
0x00698CE0253CFmt__report_clear_tree_with_subtreesClears the report tree by iterating all nodes, calling destructors on their subtrees (via vtable), then destroying the tree nodes, hashmap, and resetting counts
0x00698DE0145CFmt__report_clone_node_simpleClones a simple report tree node (0x14 bytes). Copies the RB-tree via STL_rbtree_copy_ctor and sets vtable to CEnchantRBTreeNode scalar deleting dtor. Copies value at offset+0x10
0x00698E80312CFmt__report_clone_node_with_subtreeClones a report node with nested subtree (0x18 bytes). Copies the outer RB-tree, then deep-copies the inner subtree via CEnchantRBTree__deep_copy_recursive. Fixes up min/max pointers
0x00698FC0118CFmt__report_clone_rbtreeClones a simple RB-tree (0x10 bytes). Allocates new node and copies tree via STL_rbtree_copy_ctor
0x006990403CFmt__report_identity_returnIdentity function: returns the input parameter unchanged. Used as a no-op clone/copy callback
0x0069907041CFmt__report_set_value_and_insertSets a value at this+0x10 from param_2, then optionally inserts param_3 into the RB-tree filter set (if *param_3 != -1)
0x006990A057CFmt__report_map_set_value_and_insertInserts a value into the map via CEntity__map_insert_or_get_layer_priority, then optionally inserts param_3 into the RB-tree filter set (if *param_3 != -1)
0x006990E01543CFmt__report_format_single_valueFormats a single report value as string. Applies scaling (pow, floor), locale formatting via CFmt__parse_format_double_arg, then formats with skill/bonus name lookup and escape sequences. Handles both single-format and pair-format templates
0x006996F02980CFmt__report_format_bonus_descriptionFormats a full bonus description string by iterating report tree entries. For each entry: looks up bonus name via hash (skill name, item bonus, or numeric ID), applies scaling and formatting via locale-aware templates, builds concatenated description. Handles CDataTable lookups for item bonuses and CSkillManager for skill names
0x0069A2A0589CFmt__report_format_with_locale_encodingFormats a report value with locale/encoding conversion. For single-template mode: copies the format string directly. For pair-template mode: converts to wchar, formats via CFmt__out_format_escaped_single, converts back to multibyte
0x0069A4F0569CFmt__report_deduplicate_entriesDeduplicates report entries by iterating the tree and checking string-keyed subtrees. For each entry with a string key, checks if an identical key exists in the dedup set. If new, adds to set; if duplicate with non-null handler, calls the handler destructor and removes the subtree node
0x0069B590121CFmt__find_char_index_by_widthFinds the character index in a string whose cumulative width reaches a given pixel target. Iterates characters, summing widths (using char values for ASCII, lookup table at offset 0x10 for special chars). Returns index when accumulated width >= target.
0x0069B610228CFmt__map_find_and_get_valueLooks up a key in the format library's internal map using lower_bound. If found, returns the mapped value via CFmt__impl_0069a730. If not found, returns {0, false}.
0x0069B700128CFmt__get_arg_by_indexGets a format argument by index from the argument store. Supports two storage modes: packed (16-byte entries) and bitfield-indexed (8-byte entries with presence bits). Returns the arg data in param_2.
0x0069B780310CFmt__map_emplaceEmplaces a key-value pair into the format library's named argument map. Uses lower_bound to check for existing key; if found returns existing node, otherwise inserts a new tree node. Throws if map is at max capacity (0xAAAAAAA entries).
0x0069B8C092CFmt__format_argRetrieves a format argument by index and formats it. Throws 'argument not found' if index is invalid. Dispatches to CFmt__format_value_by_type with the format specs and retrieved arg.
0x0069B92095CFmt__set_sign_format_specSets the sign flag in a format specifier. Validates that the argument type is numeric (throws 'format specifier requires numeric argument' if not). Also validates signed types specifically. Writes sign bits into the spec byte at offset 9.
0x0069B980103CFmt__delete_tree_nodes_recursiveRecursively deletes all nodes in a red-black tree used by the format library. Traverses right subtrees recursively, then walks left children iteratively, freeing 0x20-byte nodes.
0x0069B9F0178CFmt__named_arg_store_ctorConstructor for CFmt named argument store. Initializes an SSO string from param_2 (the format string), then allocates a 0x20-byte sentinel node for the internal red-black tree (named arg map).
0x0069BAB0111CFmt__destroy_treeDestroys the entire named argument tree. Iterates from the root's left child, recursively deleting right subtrees and walking left, then frees the sentinel node.
0x0069BB3065CFmt__destroy_tree_wrapperSEH-wrapped destructor wrapper that calls CFmt__destroy_tree. Sets up structured exception handling frame then delegates.
0x0069BB80367CFmt__dtor_0069bb80CFmt destructor. Iterates through all entries in the named argument tree, destroying each entry's sub-objects (strings, vectors, sub-trees with 0x18-byte nodes), then frees the entry (0x80 bytes). Finally destroys the tree itself and the format string.
0x0069BD004CFmt__get_named_arg_mapReturns pointer to the named argument map (this + 0x18). Simple accessor for the internal tree used to store named format arguments.
0x0069C3A015CFmt__tw_0069c3a0Type-erased format wrapper forwarding to formatter
0x0069C3C0267CFmt__copy_construct_treeCopy constructor for CFmt tree structure. Copies scalar value, copy-constructs a string, allocates a red-black tree sentinel (0x20 bytes), then recursively clones tree nodes via CFmt__clone_tree_nodes_recursive.
0x0069C4D0187CFmt__init_hash_table_16Initializes a CFmt hash table with 0x10-byte nodes. Sets load factor to 1.0f, bucket count params to 7/8, allocates sentinel node, then resizes the bucket vector to 16 entries.
0x0069C590187CFmt__init_hash_table_44Initializes a CFmt hash table with 0x2c-byte nodes. Sets load factor to 1.0f, bucket count params to 7/8, allocates sentinel node, then resizes the bucket vector to 16 entries.
0x0069C650187CFmt__init_hash_table_16bInitializes a CFmt hash table with 0x10-byte nodes (variant b). Sets load factor to 1.0f, bucket count params to 7/8, allocates sentinel node, then resizes the bucket vector to 16 entries.
0x0069C710187CFmt__init_hash_table_44bInitializes a CFmt hash table with 0x2c-byte nodes (variant b). Sets load factor to 1.0f, bucket count params to 7/8, allocates sentinel node, then resizes the bucket vector to 16 entries.
0x0069D420236CFmt__clone_tree_nodes_recursiveRecursively clones red-black tree nodes (0x20 bytes each) from source to destination. Copies 4 data words per node, sets up parent/left/right/color links. Used by CFmt__copy_construct_tree.
0x0069D530118CFmt__destroy_tree_32byte_nodesDestructor that recursively frees 0x20-byte red-black tree nodes. Walks left children iteratively, recursively destroys right subtrees via CFmt__delete_tree_nodes_recursive, then frees the sentinel.
0x0069D5B0103CFmt__destroy_tree_24byte_nodesRecursively frees 0x18-byte red-black tree nodes. Walks left children iteratively, recursively destroys right subtrees, then frees each node.
0x0069D620131CFmt__destroy_tree_44byte_string_nodesRecursively frees 0x2c-byte red-black tree nodes that contain embedded STL strings. Calls STL_string_dtor for each node's string before freeing the 0x2c-byte node.
0x0069D6B0131CFmt__destroy_tree_52byte_nodesRecursively frees 0x34-byte red-black tree nodes that contain embedded CFmt objects. Calls CFmt__dtor for each node before freeing the 0x34-byte node.
0x0069D740103CFmt__destroy_tree_24byte_nodes_bRecursively frees 0x18-byte red-black tree nodes (variant b). Walks left children iteratively, recursively destroys right subtrees, then frees each node. Identical pattern to CFmt__destroy_tree_24byte_nodes.
0x006A0A80173CFmt__arg_006a0a80Format argument wrapper
0x006A0B30153CFmt__arg_006a0b30Format argument wrapper
0x006A0BD0173CFmt__arg_006a0bd0Format argument wrapper
0x006A0C80215CFmt__arg_006a0c80Format argument wrapper
0x006A0D60180CFmt__arg_006a0d60Format argument wrapper
0x006A0E20242CFmt__arg_006a0e20Format argument wrapper
0x006A0F20173CFmt__arg_006a0f20Format argument wrapper
0x006A0FD0161CFmt__arg_006a0fd0Format argument wrapper
0x006A1080208CFmt__arg_006a1080Format argument wrapper
0x006A1150229CFmt__arg_006a1150Format argument wrapper
0x006A1240229CFmt__arg_006a1240Format argument wrapper
0x006A1330173CFmt__arg_006a1330Format argument wrapper
0x006A13E0206CFmt__arg_006a13e0Format argument wrapper
0x007468D065CFmt__cleanup_wrapperWrapper that calls CFmt cleanup function. Simple forwarding call.
0x00ACD08075CFmt__reset_and_advanceResets a format buffer object (sets vtable to PTR_FUN_01159564). Updates write position by adding the bytes-written count. Resets the count. If the buffer pointer matches the internal buffer, sets capacity to 256 and adjusts the total size.
0x00ACF65078CFmt__flush_buffer_stateFlushes a format buffer state. If the current write count equals the buffer capacity, advances the total position, computes remaining available space, and if the internal buffer pointer matches the secondary buffer, resets capacity to 256 and adjusts the size limit. Resets the write count to 0.
0x0109223010thunk_to_CFmt__vector_of_structs_dtorThunk that calls CFmt__vector_of_structs_dtor and returns.
0x010989C010thunk_to_CFmt__destroy_string_vectorThunk: jumps to CFmt__destroy_string_vector.
0x010B97C010thunk_to_CFmt__destroy_string_vector_010b97c0Wrapper that calls CFmt__func_0058c230 and returns
0x010B97D010thunk_to_CFmt__destroy_string_vector_010b97d0Wrapper that calls CFmt__func_0058c230 and returns