{"type": "func", "start": 6443752048, "end": 6443752105, "name": "__crt_mbstring::__mbrtowc_utf8", "pseudocode": "// \n// __crt_mbstring::__mbrtowc_utf8 from 0x18013da70 to 0x18013daa9 (57 bytes)\n// \n// 2 xrefs:\n// > _mbtowc_l @ 0x18013730e\n// > <???> @ 0x180203b0c\n// \n// This function is hookable on this platform!\n// \n// Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA\n// Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings\n// \n\nunsigned __int64 __fastcall __crt_mbstring::__mbrtowc_utf8(\n        __crt_mbstring *this,\n        char32_t *a2,\n        const char *a3,\n        unsigned __int64 a4)\n{\n  unsigned __int64 result; // rax\n  __int16 v6; // dx\n  struct _Mbstatet *v7; // [rsp+20h] [rbp-18h] BYREF\n\n  result = __crt_mbstring::__mbrtoc32_utf8((__crt_mbstring *)&v7, a2, a3, a4, v7);\n  if ( result <= 4 )\n  {\n    v6 = (__int16)v7;\n    if ( (unsigned int)v7 > 0xFFFF )\n      v6 = -3;\n    if ( this )\n      *(_WORD *)this = v6;\n  }\n  return result;\n}", "assembly": "; \n; __crt_mbstring::__mbrtowc_utf8 from 0x18013da70 to 0x18013daa9 (57 bytes)\n; \n; 2 xrefs:\n; > _mbtowc_l @ 0x18013730e\n; > <???> @ 0x180203b0c\n; \n; This function is hookable on this platform!\n; \n; Using BromaIDA 8.0.0 @ https:;github.com/Stazzical/BromaIDA\n; Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https:;github.com/geode-sdk/bindings\n; \n\npush    rbx                                                            ; +0x0, 0x18013da70\nsub     rsp, 30h                                                       ; +0x2, 0x18013da72\nmov     rbx, rcx                                                       ; +0x6, 0x18013da76\nlea     rcx, [rsp+38h+var_18]; this                                    ; +0x9, 0x18013da79\ncall    ?__mbrtoc32_utf8@__crt_mbstring@@YA_KPEA_UPEBD_KPEAU_Mbstatet@@@Z ; +0xe, 0x18013da7e\ncmp     rax, 4                                                         ; +0x13, 0x18013da83\nja      short loc_18013DAA3                                            ; +0x17, 0x18013da87\nmov     edx, dword ptr [rsp+38h+var_18]                                ; +0x19, 0x18013da89\nmov     ecx, 0FFFDh                                                    ; +0x1d, 0x18013da8d\ncmp     edx, 0FFFFh                                                    ; +0x22, 0x18013da92\ncmova   edx, ecx                                                       ; +0x28, 0x18013da98\ntest    rbx, rbx                                                       ; +0x2b, 0x18013da9b\njz      short loc_18013DAA3                                            ; +0x2e, 0x18013da9e\nmov     [rbx], dx                                                      ; +0x30, 0x18013daa0\nadd     rsp, 30h                                                       ; +0x33, 0x18013daa3\npop     rbx                                                            ; +0x37, 0x18013daa7\nretn                                                                   ; +0x38, 0x18013daa8", "xrefs": ["_mbtowc_l @ 0x18013730e", "<???> @ 0x180203b0c"], "is_objc": false, "is_arm32": false, "is_arm64": false, "bida_info": "8.0.0 @ https://github.com/Stazzical/BromaIDA", "bindings_info": "commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings"}