{"type": "func", "start": 6442500112, "end": 6442500353, "name": "sub_18000C010", "pseudocode": "// \n// sub_18000C010 from 0x18000c010 to 0x18000c101 (241 bytes)\n// \n// 3 xrefs:\n// > sub_18000D2F0 @ 0x18000d2f7\n// > <???> @ 0x180026c20\n// > <???> @ 0x180049d2c\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\n_QWORD *__fastcall sub_18000C010(_QWORD *Block, char a2)\n{\n  cocos2d::CCObject *v4; // rcx\n  cocos2d::CCObject *v5; // rcx\n  cocos2d::CCObject *v6; // rcx\n  cocos2d::CCObject *v7; // rcx\n  cocos2d::CCObject *v8; // rcx\n  cocos2d::CCObject *v9; // rcx\n\n  *Block = &cocos2d::extension::CCControlSwitchSprite::`vftable';\n  Block[40] = &cocos2d::extension::CCControlSwitchSprite::`vftable';\n  Block[43] = &cocos2d::extension::CCControlSwitchSprite::`vftable';\n  Block[75] = &cocos2d::extension::CCControlSwitchSprite::`vftable';\n  v4 = (cocos2d::CCObject *)Block[80];\n  if ( v4 )\n    cocos2d::CCObject::release(v4);\n  v5 = (cocos2d::CCObject *)Block[81];\n  if ( v5 )\n    cocos2d::CCObject::release(v5);\n  v6 = (cocos2d::CCObject *)Block[82];\n  if ( v6 )\n    cocos2d::CCObject::release(v6);\n  v7 = (cocos2d::CCObject *)Block[83];\n  if ( v7 )\n    cocos2d::CCObject::release(v7);\n  v8 = (cocos2d::CCObject *)Block[84];\n  if ( v8 )\n    cocos2d::CCObject::release(v8);\n  v9 = (cocos2d::CCObject *)Block[78];\n  if ( v9 )\n    cocos2d::CCObject::release(v9);\n  cocos2d::CCActionTweenDelegate::~CCActionTweenDelegate((cocos2d::CCActionTweenDelegate *)(Block + 75));\n  cocos2d::CCSprite::~CCSprite((cocos2d::CCSprite *)Block);\n  if ( (a2 & 1) != 0 )\n    j_j_free(Block);\n  return Block;\n}", "assembly": "; \n; sub_18000C010 from 0x18000c010 to 0x18000c101 (241 bytes)\n; \n; 3 xrefs:\n; > sub_18000D2F0 @ 0x18000d2f7\n; > <???> @ 0x180026c20\n; > <???> @ 0x180049d2c\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_0], rbx                                               ; +0x0, 0x18000c010\nmov     [rsp+arg_8], rsi                                               ; +0x5, 0x18000c015\npush    rdi                                                            ; +0xa, 0x18000c01a\nsub     rsp, 20h                                                       ; +0xb, 0x18000c01b\nmov     esi, edx                                                       ; +0xf, 0x18000c01f\nmov     rbx, rcx                                                       ; +0x11, 0x18000c021\nlea     rax, ??_7CCControlSwitchSprite@extension@cocos2d@@6B@; const cocos2d::extension::CCControlSwitchSprite::`vftable' ; +0x14, 0x18000c024\nmov     [rcx], rax                                                     ; +0x1b, 0x18000c02b\nlea     rax, ??_7CCControlSwitchSprite@extension@cocos2d@@6B@_0; const cocos2d::extension::CCControlSwitchSprite::`vftable' ; +0x1e, 0x18000c02e\nmov     [rcx+140h], rax                                                ; +0x25, 0x18000c035\nlea     rax, ??_7CCControlSwitchSprite@extension@cocos2d@@6B@_1; const cocos2d::extension::CCControlSwitchSprite::`vftable' ; +0x2c, 0x18000c03c\nmov     [rcx+158h], rax                                                ; +0x33, 0x18000c043\nlea     rax, ??_7CCControlSwitchSprite@extension@cocos2d@@6B@_2; const cocos2d::extension::CCControlSwitchSprite::`vftable' ; +0x3a, 0x18000c04a\nmov     [rcx+258h], rax                                                ; +0x41, 0x18000c051\nmov     rcx, [rcx+280h]                                                ; +0x48, 0x18000c058\ntest    rcx, rcx                                                       ; +0x4f, 0x18000c05f\njz      short loc_18000C06A                                            ; +0x52, 0x18000c062\ncall    cs:?release@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::release(void) ; +0x54, 0x18000c064\nmov     rcx, [rbx+288h]                                                ; +0x5a, 0x18000c06a\ntest    rcx, rcx                                                       ; +0x61, 0x18000c071\njz      short loc_18000C07C                                            ; +0x64, 0x18000c074\ncall    cs:?release@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::release(void) ; +0x66, 0x18000c076\nmov     rcx, [rbx+290h]                                                ; +0x6c, 0x18000c07c\ntest    rcx, rcx                                                       ; +0x73, 0x18000c083\njz      short loc_18000C08E                                            ; +0x76, 0x18000c086\ncall    cs:?release@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::release(void) ; +0x78, 0x18000c088\nmov     rcx, [rbx+298h]                                                ; +0x7e, 0x18000c08e\ntest    rcx, rcx                                                       ; +0x85, 0x18000c095\njz      short loc_18000C0A0                                            ; +0x88, 0x18000c098\ncall    cs:?release@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::release(void) ; +0x8a, 0x18000c09a\nmov     rcx, [rbx+2A0h]                                                ; +0x90, 0x18000c0a0\ntest    rcx, rcx                                                       ; +0x97, 0x18000c0a7\njz      short loc_18000C0B2                                            ; +0x9a, 0x18000c0aa\ncall    cs:?release@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::release(void) ; +0x9c, 0x18000c0ac\nmov     rcx, [rbx+270h]                                                ; +0xa2, 0x18000c0b2\ntest    rcx, rcx                                                       ; +0xa9, 0x18000c0b9\njz      short loc_18000C0C4                                            ; +0xac, 0x18000c0bc\ncall    cs:?release@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::release(void) ; +0xae, 0x18000c0be\nlea     rcx, [rbx+258h]                                                ; +0xb4, 0x18000c0c4\ncall    cs:??1CCActionTweenDelegate@cocos2d@@UEAA@XZ; cocos2d::CCActionTweenDelegate::~CCActionTweenDelegate(void) ; +0xbb, 0x18000c0cb\nmov     rcx, rbx                                                       ; +0xc1, 0x18000c0d1\ncall    cs:??1CCSprite@cocos2d@@UEAA@XZ; cocos2d::CCSprite::~CCSprite(void) ; +0xc4, 0x18000c0d4\nnop                                                                    ; +0xca, 0x18000c0da\ntest    sil, 1                                                         ; +0xcb, 0x18000c0db\njz      short loc_18000C0EE                                            ; +0xcf, 0x18000c0df\nmov     edx, 2A8h                                                      ; +0xd1, 0x18000c0e1\nmov     rcx, rbx; Block                                                ; +0xd6, 0x18000c0e6\ncall    j_j_free                                                       ; +0xd9, 0x18000c0e9\nmov     rax, rbx                                                       ; +0xde, 0x18000c0ee\nmov     rbx, [rsp+28h+arg_0]                                           ; +0xe1, 0x18000c0f1\nmov     rsi, [rsp+28h+arg_8]                                           ; +0xe6, 0x18000c0f6\nadd     rsp, 20h                                                       ; +0xeb, 0x18000c0fb\npop     rdi                                                            ; +0xef, 0x18000c0ff\nretn                                                                   ; +0xf0, 0x18000c100", "xrefs": ["sub_18000D2F0 @ 0x18000d2f7", "<???> @ 0x180026c20", "<???> @ 0x180049d2c"], "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"}