{"type": "func", "start": 6442517088, "end": 6442517266, "name": "cocos2d::extension::CCScale9Sprite::setOpacity", "pseudocode": "// \n// cocos2d::extension::CCScale9Sprite::setOpacity from 0x180010260 to 0x180010312 (178 bytes)\n// \n// 5 xrefs:\n// > <???> @ 0x180027500\n// > <???> @ 0x18002e550\n// > <???> @ 0x18002e5a8\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x18004a0ec\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\nvoid __fastcall cocos2d::extension::CCScale9Sprite::setOpacity(\n        cocos2d::extension::CCScale9Sprite *this,\n        unsigned __int8 a2)\n{\n  __int64 v4; // rcx\n  __int64 v5; // rax\n  unsigned int *v6; // rbx\n  __int64 v7; // rax\n  _QWORD *v8; // rbx\n  _QWORD *i; // rdi\n  __int64 v10; // rax\n\n  v4 = *((_QWORD *)this + 15);\n  if ( v4 )\n  {\n    *((_BYTE *)this + 201) = a2;\n    v5 = (*(__int64 (__fastcall **)(__int64))(*(_QWORD *)v4 + 464LL))(v4);\n    if ( v5 )\n    {\n      v6 = *(unsigned int **)(v5 + 56);\n      v7 = *v6;\n      if ( (_DWORD)v7 )\n      {\n        v8 = *((_QWORD **)v6 + 2);\n        for ( i = &v8[v7 - 1]; v8 <= i; ++v8 )\n        {\n          if ( !*v8 )\n            break;\n          v10 = _RTDynamicCast(\n                  *v8,\n                  0,\n                  &cocos2d::CCObject `RTTI Type Descriptor',\n                  &cocos2d::CCRGBAProtocol `RTTI Type Descriptor',\n                  0);\n          if ( v10 )\n            (*(void (__fastcall **)(__int64, _QWORD))(*(_QWORD *)v10 + 40LL))(v10, a2);\n        }\n      }\n    }\n  }\n}", "assembly": "; \n; cocos2d::extension::CCScale9Sprite::setOpacity from 0x180010260 to 0x180010312 (178 bytes)\n; \n; 5 xrefs:\n; > <???> @ 0x180027500\n; > <???> @ 0x18002e550\n; > <???> @ 0x18002e5a8\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x18004a0ec\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    rsi                                                            ; +0x0, 0x180010260\nsub     rsp, 30h                                                       ; +0x2, 0x180010262\nmov     rax, rcx                                                       ; +0x6, 0x180010266\nmovzx   esi, dl                                                        ; +0x9, 0x180010269\nmov     rcx, [rcx+78h]                                                 ; +0xc, 0x18001026c\ntest    rcx, rcx                                                       ; +0x10, 0x180010270\njz      loc_18001030C                                                  ; +0x13, 0x180010273\nmov     [rax+0C9h], dl                                                 ; +0x19, 0x180010279\nmov     rax, [rcx]                                                     ; +0x1f, 0x18001027f\ncall    qword ptr [rax+1D0h]                                           ; +0x22, 0x180010282\ntest    rax, rax                                                       ; +0x28, 0x180010288\njz      short loc_18001030C                                            ; +0x2b, 0x18001028b\nmov     [rsp+38h+arg_0], rbx                                           ; +0x2d, 0x18001028d\nmov     rbx, [rax+38h]                                                 ; +0x32, 0x180010292\nmov     eax, [rbx]                                                     ; +0x36, 0x180010296\ntest    eax, eax                                                       ; +0x38, 0x180010298\njz      short loc_180010307                                            ; +0x3a, 0x18001029a\nmov     rbx, [rbx+10h]                                                 ; +0x3c, 0x18001029c\nmov     [rsp+38h+arg_10], rdi                                          ; +0x40, 0x1800102a0\nlea     rdi, [rax-1]                                                   ; +0x45, 0x1800102a5\nlea     rdi, [rbx+rdi*8]                                               ; +0x49, 0x1800102a9\ncmp     rbx, rdi                                                       ; +0x4d, 0x1800102ad\nja      short loc_180010302                                            ; +0x50, 0x1800102b0\nmov     [rsp+38h+arg_8], rbp                                           ; +0x52, 0x1800102b2\nxor     ebp, ebp                                                       ; +0x57, 0x1800102b7\nnop     dword ptr [rax+00000000h]                                      ; +0x59, 0x1800102b9\nmov     rcx, [rbx]                                                     ; +0x60, 0x1800102c0\ntest    rcx, rcx                                                       ; +0x63, 0x1800102c3\njz      short loc_1800102FD                                            ; +0x66, 0x1800102c6\nlea     r9, ??_R0?AVCCRGBAProtocol@cocos2d@@@8; cocos2d::CCRGBAProtocol `RTTI Type Descriptor' ; +0x68, 0x1800102c8\nmov     [rsp+38h+var_18], ebp                                          ; +0x6f, 0x1800102cf\nlea     r8, ??_R0?AVCCObject@cocos2d@@@8; cocos2d::CCObject `RTTI Type Descriptor' ; +0x73, 0x1800102d3\nxor     edx, edx                                                       ; +0x7a, 0x1800102da\ncall    __RTDynamicCast                                                ; +0x7c, 0x1800102dc\ntest    rax, rax                                                       ; +0x81, 0x1800102e1\njz      short loc_1800102F4                                            ; +0x84, 0x1800102e4\nmov     r8, [rax]                                                      ; +0x86, 0x1800102e6\nmovzx   edx, sil                                                       ; +0x89, 0x1800102e9\nmov     rcx, rax                                                       ; +0x8d, 0x1800102ed\ncall    qword ptr [r8+28h]                                             ; +0x90, 0x1800102f0\nadd     rbx, 8                                                         ; +0x94, 0x1800102f4\ncmp     rbx, rdi                                                       ; +0x98, 0x1800102f8\njbe     short loc_1800102C0                                            ; +0x9b, 0x1800102fb\nmov     rbp, [rsp+38h+arg_8]                                           ; +0x9d, 0x1800102fd\nmov     rdi, [rsp+38h+arg_10]                                          ; +0xa2, 0x180010302\nmov     rbx, [rsp+38h+arg_0]                                           ; +0xa7, 0x180010307\nadd     rsp, 30h                                                       ; +0xac, 0x18001030c\npop     rsi                                                            ; +0xb0, 0x180010310\nretn                                                                   ; +0xb1, 0x180010311", "xrefs": ["<???> @ 0x180027500", "<???> @ 0x18002e550", "<???> @ 0x18002e5a8", "<???> @ 0x18002fdf8", "<???> @ 0x18004a0ec"], "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"}