{"type": "func", "start": 6442519056, "end": 6442519389, "name": "cocos2d::extension::CCEditBox::initWithSizeAndBackgroundSprite", "pseudocode": "// \n// cocos2d::extension::CCEditBox::initWithSizeAndBackgroundSprite from 0x180010a10 to 0x180010b5d (333 bytes)\n// \n// 3 xrefs:\n// > cocos2d::extension::CCEditBox::create @ 0x18001098e\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x18004a17c\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\nchar __fastcall cocos2d::extension::CCEditBox::initWithSizeAndBackgroundSprite(\n        cocos2d::CCDictionary **this,\n        const struct cocos2d::CCSize *a2,\n        struct cocos2d::extension::CCScale9Sprite *a3)\n{\n  struct cocos2d::CCLabelTTF *v6; // rax\n  __int64 v7; // rax\n  cocos2d::CCDictionary *v8; // rbx\n  __int64 v9; // rax\n  cocos2d::CCDictionary *v10; // rbx\n  __int64 v11; // rax\n  struct cocos2d::CCObject *v12; // rsi\n  struct cocos2d::CCObject *v13; // rbx\n  cocos2d::extension::CCEditBoxImplWin *v15; // [rsp+30h] [rbp+8h] BYREF\n\n  v6 = cocos2d::CCLabelTTF::create(byte_180023460, \"Arial\", 30.0);\n  if ( !(*((unsigned __int8 (__fastcall **)(cocos2d::CCDictionary **, struct cocos2d::CCLabelTTF *, struct cocos2d::extension::CCScale9Sprite *))*this\n         + 146))(\n          this,\n          v6,\n          a3) )\n    return 0;\n  v15 = (cocos2d::extension::CCEditBoxImplWin *)operator new(0x90u);\n  v7 = cocos2d::extension::CCEditBoxImplWin::CCEditBoxImplWin(v15, (struct cocos2d::extension::CCEditBox *)this);\n  *(this + 72) = (cocos2d::CCDictionary *)v7;\n  (*(void (__fastcall **)(__int64, const struct cocos2d::CCSize *))(*(_QWORD *)v7 + 8LL))(v7, a2);\n  (*((void (__fastcall **)(cocos2d::CCDictionary **, _QWORD))*this + 142))(this, 0);\n  v8 = *this;\n  v9 = cocos2d::CCSize::CCSize((cocos2d::CCSize *)&v15, a2);\n  (*((void (__fastcall **)(cocos2d::CCDictionary **, __int64))v8 + 140))(this, v9);\n  v10 = *this;\n  cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)&v15, 0.0, 0.0);\n  (*((void (__fastcall **)(cocos2d::CCDictionary **, __int64))v10 + 23))(this, v11);\n  v12 = cocos2d::extension::CCInvocation::create(\n          (__int64)this,\n          (__int64)cocos2d::extension::CCEditBox::touchDownAction,\n          32);\n  v13 = cocos2d::CCDictionary::objectForKey(*(this + 56), 32);\n  if ( !v13 )\n  {\n    v13 = cocos2d::CCArray::createWithCapacity(1u);\n    cocos2d::CCDictionary::setObject(*(this + 56), v13, 32);\n  }\n  cocos2d::CCArray::addObject(v13, v12);\n  return 1;\n}", "assembly": "; \n; cocos2d::extension::CCEditBox::initWithSizeAndBackgroundSprite from 0x180010a10 to 0x180010b5d (333 bytes)\n; \n; 3 xrefs:\n; > cocos2d::extension::CCEditBox::create @ 0x18001098e\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x18004a17c\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\nmov     [rsp+arg_8], rbx                                               ; +0x0, 0x180010a10\nmov     [rsp+arg_10], rsi                                              ; +0x5, 0x180010a15\npush    rdi                                                            ; +0xa, 0x180010a1a\nsub     rsp, 20h                                                       ; +0xb, 0x180010a1b\nmov     rbx, r8                                                        ; +0xf, 0x180010a1f\nmov     rsi, rdx                                                       ; +0x12, 0x180010a22\nmov     rdi, rcx                                                       ; +0x15, 0x180010a25\nmovss   xmm2, cs:dword_1800295A0                                       ; +0x18, 0x180010a28\nlea     rdx, aArial; \"Arial\"                                           ; +0x20, 0x180010a30\nlea     rcx, byte_180023460                                            ; +0x27, 0x180010a37\ncall    cs:?create@CCLabelTTF@cocos2d@@SAPEAV12@PEBD0M@Z; cocos2d::CCLabelTTF::create(char const *,char const *,float) ; +0x2e, 0x180010a3e\nmov     r9, [rdi]                                                      ; +0x34, 0x180010a44\nmov     r8, rbx                                                        ; +0x37, 0x180010a47\nmov     rdx, rax                                                       ; +0x3a, 0x180010a4a\nmov     rcx, rdi                                                       ; +0x3d, 0x180010a4d\ncall    qword ptr [r9+490h]                                            ; +0x40, 0x180010a50\ntest    al, al                                                         ; +0x47, 0x180010a57\njz      loc_180010B4B                                                  ; +0x49, 0x180010a59\nmov     ecx, 90h; Size                                                 ; +0x4f, 0x180010a5f\ncall    ??2@YAPEAX_K@Z; operator new(unsigned __int64)                 ; +0x54, 0x180010a64\nmov     [rsp+28h+arg_0], rax                                           ; +0x59, 0x180010a69\nmov     rdx, rdi; struct cocos2d::extension::CCEditBox *               ; +0x5e, 0x180010a6e\nmov     rcx, rax; this                                                 ; +0x61, 0x180010a71\ncall    ??0CCEditBoxImplWin@extension@cocos2d@@QEAA@PEAVCCEditBox@12@@Z; cocos2d::extension::CCEditBoxImplWin::CCEditBoxImplWin(cocos2d::extension::CCEditBox *) ; +0x64, 0x180010a74\nnop                                                                    ; +0x69, 0x180010a79\nmov     [rdi+240h], rax                                                ; +0x6a, 0x180010a7a\nmov     r8, [rax]                                                      ; +0x71, 0x180010a81\nmov     rdx, rsi                                                       ; +0x74, 0x180010a84\nmov     rcx, rax                                                       ; +0x77, 0x180010a87\ncall    qword ptr [r8+8]                                               ; +0x7a, 0x180010a8a\nmov     rax, [rdi]                                                     ; +0x7e, 0x180010a8e\nxor     edx, edx                                                       ; +0x81, 0x180010a91\nmov     rcx, rdi                                                       ; +0x83, 0x180010a93\ncall    qword ptr [rax+470h]                                           ; +0x86, 0x180010a96\nmov     rbx, [rdi]                                                     ; +0x8c, 0x180010a9c\nmov     rdx, rsi                                                       ; +0x8f, 0x180010a9f\nlea     rcx, [rsp+28h+arg_0]                                           ; +0x92, 0x180010aa2\ncall    cs:??0CCSize@cocos2d@@QEAA@AEBV01@@Z; cocos2d::CCSize::CCSize(cocos2d::CCSize const &) ; +0x97, 0x180010aa7\nmov     rdx, rax                                                       ; +0x9d, 0x180010aad\nmov     rcx, rdi                                                       ; +0xa0, 0x180010ab0\ncall    qword ptr [rbx+460h]                                           ; +0xa3, 0x180010ab3\nmov     rbx, [rdi]                                                     ; +0xa9, 0x180010ab9\nxorps   xmm2, xmm2                                                     ; +0xac, 0x180010abc\nxorps   xmm1, xmm1                                                     ; +0xaf, 0x180010abf\nlea     rcx, [rsp+28h+arg_0]                                           ; +0xb2, 0x180010ac2\ncall    cs:??0CCPoint@cocos2d@@QEAA@MM@Z; cocos2d::CCPoint::CCPoint(float,float) ; +0xb7, 0x180010ac7\nmov     rdx, rax                                                       ; +0xbd, 0x180010acd\nmov     rcx, rdi                                                       ; +0xc0, 0x180010ad0\ncall    qword ptr [rbx+0B8h]                                           ; +0xc3, 0x180010ad3\nmov     r8d, 20h ; ' '                                                 ; +0xc9, 0x180010ad9\nlea     rdx, ?touchDownAction@CCEditBox@extension@cocos2d@@QEAAXPEAVCCObject@3@I@Z; cocos2d::extension::CCEditBox::touchDownAction(cocos2d::CCObject *,uint) ; +0xcf, 0x180010adf\nmov     rcx, rdi                                                       ; +0xd6, 0x180010ae6\ncall    ?create@CCInvocation@extension@cocos2d@@SAPEAV123@PEAVCCObject@3@P843@EAAX0I@ZI@Z; cocos2d::extension::CCInvocation::create(cocos2d::CCObject *,void (cocos2d::CCObject::*)(cocos2d::CCObject *,uint),uint) ; +0xd9, 0x180010ae9\nmov     rsi, rax                                                       ; +0xde, 0x180010aee\nmov     edx, 20h ; ' '                                                 ; +0xe1, 0x180010af1\nmov     rcx, [rdi+1C0h]                                                ; +0xe6, 0x180010af6\ncall    cs:?objectForKey@CCDictionary@cocos2d@@QEAAPEAVCCObject@2@_J@Z; cocos2d::CCDictionary::objectForKey(__int64) ; +0xed, 0x180010afd\nmov     rbx, rax                                                       ; +0xf3, 0x180010b03\ntest    rax, rax                                                       ; +0xf6, 0x180010b06\njnz     short loc_180010B2D                                            ; +0xf9, 0x180010b09\nlea     ecx, [rax+1]                                                   ; +0xfb, 0x180010b0b\ncall    cs:?createWithCapacity@CCArray@cocos2d@@SAPEAV12@I@Z; cocos2d::CCArray::createWithCapacity(uint) ; +0xfe, 0x180010b0e\nmov     rbx, rax                                                       ; +0x104, 0x180010b14\nmov     r8d, 20h ; ' '                                                 ; +0x107, 0x180010b17\nmov     rdx, rax                                                       ; +0x10d, 0x180010b1d\nmov     rcx, [rdi+1C0h]                                                ; +0x110, 0x180010b20\ncall    cs:?setObject@CCDictionary@cocos2d@@QEAAXPEAVCCObject@2@_J@Z; cocos2d::CCDictionary::setObject(cocos2d::CCObject *,__int64) ; +0x117, 0x180010b27\nmov     rdx, rsi                                                       ; +0x11d, 0x180010b2d\nmov     rcx, rbx                                                       ; +0x120, 0x180010b30\ncall    cs:?addObject@CCArray@cocos2d@@QEAAXPEAVCCObject@2@@Z; cocos2d::CCArray::addObject(cocos2d::CCObject *) ; +0x123, 0x180010b33\nmov     al, 1                                                          ; +0x129, 0x180010b39\nmov     rbx, [rsp+28h+arg_8]                                           ; +0x12b, 0x180010b3b\nmov     rsi, [rsp+28h+arg_10]                                          ; +0x130, 0x180010b40\nadd     rsp, 20h                                                       ; +0x135, 0x180010b45\npop     rdi                                                            ; +0x139, 0x180010b49\nretn                                                                   ; +0x13a, 0x180010b4a\nxor     al, al                                                         ; +0x13b, 0x180010b4b\nmov     rbx, [rsp+28h+arg_8]                                           ; +0x13d, 0x180010b4d\nmov     rsi, [rsp+28h+arg_10]                                          ; +0x142, 0x180010b52\nadd     rsp, 20h                                                       ; +0x147, 0x180010b57\npop     rdi                                                            ; +0x14b, 0x180010b5b\nretn                                                                   ; +0x14c, 0x180010b5c", "xrefs": ["cocos2d::extension::CCEditBox::create @ 0x18001098e", "<???> @ 0x18002fdf8", "<???> @ 0x18004a17c"], "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"}