{"type": "func", "start": 6442523296, "end": 6442523679, "name": "cocos2d::extension::CCEditBoxImplWin::setText", "pseudocode": "// \n// cocos2d::extension::CCEditBoxImplWin::setText from 0x180011aa0 to 0x180011c1f (383 bytes)\n// \n// 3 xrefs:\n// > <???> @ 0x1800281a8\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x18004a2d8\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\n// Hidden C++ exception states: #wind=1\nvoid __fastcall cocos2d::extension::CCEditBoxImplWin::setText(void **this, char *a2)\n{\n  size_t v3; // r8\n  size_t *v4; // rbx\n  __int64 v5; // rdx\n  __int64 *v6; // rcx\n  __int64 v7; // rax\n  const char *v8; // rdx\n  int v9; // eax\n  __int64 v10; // rbx\n  void *v11; // rdx\n  void **v12; // rdx\n  void *v13; // rcx\n  void *Block[2]; // [rsp+20h] [rbp-38h] BYREF\n  __m128i si128; // [rsp+30h] [rbp-28h]\n\n  if ( a2 )\n  {\n    v3 = -1;\n    do\n      ++v3;\n    while ( a2[v3] );\n    v4 = (size_t *)(this + 7);\n    sub_180003BC0(this + 7, a2, v3);\n    v6 = (__int64 *)*(this + 4);\n    v7 = *v6;\n    if ( *(this + 9) )\n    {\n      (*(void (__fastcall **)(__int64 *, _QWORD))(v7 + 320))(v6, 0);\n      *(_OWORD *)Block = 0;\n      si128 = _mm_load_si128((const __m128i *)&xmmword_1800295E0);\n      LOBYTE(Block[0]) = 0;\n      if ( *((_DWORD *)this + 11) )\n      {\n        if ( Block != (void **)v4 )\n        {\n          v11 = v4;\n          if ( v4[3] > 0xF )\n            v11 = (void *)*v4;\n          sub_180003BC0(Block, v11, v4[2]);\n        }\n      }\n      else\n      {\n        if ( v4[3] > 0xF )\n          v4 = (size_t *)*v4;\n        v9 = cocos2d::cc_utf8_strlen((cocos2d *)v4, v8);\n        if ( v9 > 0 )\n        {\n          v10 = (unsigned int)v9;\n          do\n          {\n            sub_1800039A0(Block, \"*\", 1u);\n            --v10;\n          }\n          while ( v10 );\n        }\n      }\n      v12 = Block;\n      if ( si128.m128i_i64[1] > 0xFuLL )\n        v12 = (void **)Block[0];\n      (**((void (__fastcall ***)(__int64, void **))*(this + 3) + 75))((__int64)*(this + 3) + 600, v12);\n      if ( si128.m128i_i64[1] > 0xFuLL )\n      {\n        v13 = Block[0];\n        if ( (unsigned __int64)(si128.m128i_i64[1] + 1) >= 0x1000 )\n        {\n          v13 = *((void **)Block[0] - 1);\n          if ( (unsigned __int64)((char *)Block[0] - (char *)v13 - 8) > 0x1F )\n            invalid_parameter_noinfo_noreturn();\n        }\n        j_j_free(v13);\n      }\n    }\n    else\n    {\n      LOBYTE(v5) = 1;\n      (*(void (__fastcall **)(__int64 *, __int64))(v7 + 320))(v6, v5);\n      (**((void (__fastcall ***)(__int64, char *))*(this + 3) + 75))((__int64)*(this + 3) + 600, byte_180023460);\n    }\n  }\n}", "assembly": "; \n; cocos2d::extension::CCEditBoxImplWin::setText from 0x180011aa0 to 0x180011c1f (383 bytes)\n; \n; 3 xrefs:\n; > <???> @ 0x1800281a8\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x18004a2d8\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\ntest    rdx, rdx                                                       ; +0x0, 0x180011aa0\njz      locret_180011C1E                                               ; +0x3, 0x180011aa3\nmov     [rsp+arg_10], rbx                                              ; +0x9, 0x180011aa9\npush    rdi                                                            ; +0xe, 0x180011aae\nsub     rsp, 50h                                                       ; +0xf, 0x180011aaf\nmov     rax, cs:__security_cookie                                      ; +0x13, 0x180011ab3\nxor     rax, rsp                                                       ; +0x1a, 0x180011aba\nmov     [rsp+58h+var_18], rax                                          ; +0x1d, 0x180011abd\nmov     rdi, rcx                                                       ; +0x22, 0x180011ac2\nmov     r8, 0FFFFFFFFFFFFFFFFh                                         ; +0x25, 0x180011ac5\nnop     dword ptr [rax+00h]                                            ; +0x2c, 0x180011acc\ninc     r8; Size                                                       ; +0x30, 0x180011ad0\ncmp     byte ptr [rdx+r8], 0                                           ; +0x33, 0x180011ad3\njnz     short loc_180011AD0                                            ; +0x38, 0x180011ad8\nlea     rbx, [rcx+38h]                                                 ; +0x3a, 0x180011ada\nmov     rcx, rbx; void *                                               ; +0x3e, 0x180011ade\ncall    sub_180003BC0                                                  ; +0x41, 0x180011ae1\nmov     rcx, [rdi+20h]                                                 ; +0x46, 0x180011ae6\nmov     rax, [rcx]                                                     ; +0x4a, 0x180011aea\ncmp     qword ptr [rdi+48h], 0                                         ; +0x4d, 0x180011aed\njbe     loc_180011BE8                                                  ; +0x52, 0x180011af2\nxor     edx, edx                                                       ; +0x58, 0x180011af8\ncall    qword ptr [rax+140h]                                           ; +0x5a, 0x180011afa\nxorps   xmm0, xmm0                                                     ; +0x60, 0x180011b00\nmovups  xmmword ptr [rsp+58h+Block], xmm0                              ; +0x63, 0x180011b03\nmovdqa  xmm1, cs:xmmword_1800295E0                                     ; +0x68, 0x180011b08\nmovdqu  [rsp+58h+var_28], xmm1                                         ; +0x70, 0x180011b10\nmov     byte ptr [rsp+58h+Block], 0                                    ; +0x76, 0x180011b16\ncmp     dword ptr [rdi+2Ch], 0                                         ; +0x7b, 0x180011b1b\njnz     short loc_180011B5F                                            ; +0x7f, 0x180011b1f\ncmp     qword ptr [rbx+18h], 0Fh                                       ; +0x81, 0x180011b21\njbe     short loc_180011B2B                                            ; +0x86, 0x180011b26\nmov     rbx, [rbx]                                                     ; +0x88, 0x180011b28\nmov     rcx, rbx                                                       ; +0x8b, 0x180011b2b\ncall    cs:?cc_utf8_strlen@cocos2d@@YAJPEBD@Z; cocos2d::cc_utf8_strlen(char const *) ; +0x8e, 0x180011b2e\ntest    eax, eax                                                       ; +0x94, 0x180011b34\njle     short loc_180011B84                                            ; +0x96, 0x180011b36\nmov     ebx, eax                                                       ; +0x98, 0x180011b38\nnop     word ptr [rax+rax+00h]                                         ; +0x9a, 0x180011b3a\nmov     r8d, 1                                                         ; +0xa0, 0x180011b40\nlea     rdx, asc_18002813C; \"*\"                                        ; +0xa6, 0x180011b46\nlea     rcx, [rsp+58h+Block]; Src                                      ; +0xad, 0x180011b4d\ncall    sub_1800039A0                                                  ; +0xb2, 0x180011b52\nsub     rbx, 1                                                         ; +0xb7, 0x180011b57\njnz     short loc_180011B40                                            ; +0xbb, 0x180011b5b\njmp     short loc_180011B84                                            ; +0xbd, 0x180011b5d\nlea     rax, [rsp+58h+Block]                                           ; +0xbf, 0x180011b5f\ncmp     rax, rbx                                                       ; +0xc4, 0x180011b64\njz      short loc_180011B84                                            ; +0xc7, 0x180011b67\nmov     rdx, rbx                                                       ; +0xc9, 0x180011b69\ncmp     qword ptr [rbx+18h], 0Fh                                       ; +0xcc, 0x180011b6c\njbe     short loc_180011B76                                            ; +0xd1, 0x180011b71\nmov     rdx, [rbx]; Src                                                ; +0xd3, 0x180011b73\nmov     r8, [rbx+10h]; Size                                            ; +0xd6, 0x180011b76\nlea     rcx, [rsp+58h+Block]; void *                                   ; +0xda, 0x180011b7a\ncall    sub_180003BC0                                                  ; +0xdf, 0x180011b7f\nlea     rdx, [rsp+58h+Block]                                           ; +0xe4, 0x180011b84\ncmp     qword ptr [rsp+58h+var_28+8], 0Fh                              ; +0xe9, 0x180011b89\ncmova   rdx, [rsp+58h+Block]                                           ; +0xef, 0x180011b8f\nmov     rcx, [rdi+18h]                                                 ; +0xf5, 0x180011b95\nadd     rcx, 258h                                                      ; +0xf9, 0x180011b99\nmov     rax, [rcx]                                                     ; +0x100, 0x180011ba0\ncall    qword ptr [rax]                                                ; +0x103, 0x180011ba3\nnop                                                                    ; +0x105, 0x180011ba5\nmov     rdx, qword ptr [rsp+58h+var_28+8]                              ; +0x106, 0x180011ba6\ncmp     rdx, 0Fh                                                       ; +0x10b, 0x180011bab\njbe     short loc_180011C07                                            ; +0x10f, 0x180011baf\ninc     rdx                                                            ; +0x111, 0x180011bb1\nmov     rcx, [rsp+58h+Block]; Block                                    ; +0x114, 0x180011bb4\nmov     rax, rcx                                                       ; +0x119, 0x180011bb9\ncmp     rdx, 1000h                                                     ; +0x11c, 0x180011bbc\njb      short loc_180011BE1                                            ; +0x123, 0x180011bc3\nadd     rdx, 27h ; '''                                                 ; +0x125, 0x180011bc5\nmov     rcx, [rcx-8]                                                   ; +0x129, 0x180011bc9\nsub     rax, rcx                                                       ; +0x12d, 0x180011bcd\nadd     rax, 0FFFFFFFFFFFFFFF8h                                        ; +0x130, 0x180011bd0\ncmp     rax, 1Fh                                                       ; +0x134, 0x180011bd4\njbe     short loc_180011BE1                                            ; +0x138, 0x180011bd8\ncall    cs:_invalid_parameter_noinfo_noreturn                          ; +0x13a, 0x180011bda\ndb 0CCh                                                                ; +0x140, 0x180011be0\ncall    j_j_free                                                       ; +0x141, 0x180011be1\njmp     short loc_180011C07                                            ; +0x146, 0x180011be6\nmov     dl, 1                                                          ; +0x148, 0x180011be8\ncall    qword ptr [rax+140h]                                           ; +0x14a, 0x180011bea\nmov     rcx, [rdi+18h]                                                 ; +0x150, 0x180011bf0\nadd     rcx, 258h                                                      ; +0x154, 0x180011bf4\nmov     rax, [rcx]                                                     ; +0x15b, 0x180011bfb\nlea     rdx, byte_180023460                                            ; +0x15e, 0x180011bfe\ncall    qword ptr [rax]                                                ; +0x165, 0x180011c05\nmov     rcx, [rsp+58h+var_18]                                          ; +0x167, 0x180011c07\nxor     rcx, rsp; StackCookie                                          ; +0x16c, 0x180011c0c\ncall    __security_check_cookie                                        ; +0x16f, 0x180011c0f\nmov     rbx, [rsp+58h+arg_10]                                          ; +0x174, 0x180011c14\nadd     rsp, 50h                                                       ; +0x179, 0x180011c19\npop     rdi                                                            ; +0x17d, 0x180011c1d\nretn                                                                   ; +0x17e, 0x180011c1e", "xrefs": ["<???> @ 0x1800281a8", "<???> @ 0x18002fdf8", "<???> @ 0x18004a2d8"], "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"}