{"type": "func", "start": 6442549792, "end": 6442550024, "name": "cocos2d::extension::CCHttpClient::dispatchResponseCallbacks", "pseudocode": "// \n// cocos2d::extension::CCHttpClient::dispatchResponseCallbacks from 0x180018220 to 0x180018308 (232 bytes)\n// \n// 4 xrefs:\n// > cocos2d::extension::CCHttpClient::CCHttpClient @ 0x1800176db\n// > cocos2d::extension::CCHttpClient::~CCHttpClient @ 0x18001778c\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x18004aab8\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::CCHttpClient::dispatchResponseCallbacks(\n        cocos2d::extension::CCHttpClient *this,\n        float a2)\n{\n  struct cocos2d::CCObject *v3; // rbx\n  __int64 v4; // rax\n  __int64 v5; // rcx\n  void (__fastcall *v6)(__int64, cocos2d::extension::CCHttpClient *, struct cocos2d::CCObject *); // r9\n\n  v3 = nullptr;\n  if ( Mtx_lock((_Mtx_t)&unk_180048630) )\n  {\n    std::_Throw_Cpp_error(5);\n    __debugbreak();\n  }\n  if ( dword_18004867C == 0x7FFFFFFF )\n  {\n    dword_18004867C = 2147483646;\n    std::_Throw_Cpp_error(6);\n  }\n  if ( cocos2d::CCArray::count((cocos2d::CCArray *)qword_1800486C8) )\n  {\n    v3 = cocos2d::CCArray::objectAtIndex((cocos2d::CCArray *)qword_1800486C8, 0);\n    cocos2d::CCObject::retain(v3);\n    cocos2d::CCArray::removeObjectAtIndex((cocos2d::CCArray *)qword_1800486C8, 0, 1);\n  }\n  Mtx_unlock((_Mtx_t)&unk_180048630);\n  if ( v3 )\n  {\n    v4 = *((_QWORD *)v3 + 7);\n    if ( v4 )\n    {\n      v5 = *(_QWORD *)(v4 + 152);\n      v6 = *(void (__fastcall **)(__int64, cocos2d::extension::CCHttpClient *, struct cocos2d::CCObject *))(v4 + 160);\n      if ( v5 )\n      {\n        if ( v6 )\n          v6(v5, this, v3);\n      }\n    }\n    cocos2d::CCObject::release(v3);\n  }\n}", "assembly": "; \n; cocos2d::extension::CCHttpClient::dispatchResponseCallbacks from 0x180018220 to 0x180018308 (232 bytes)\n; \n; 4 xrefs:\n; > cocos2d::extension::CCHttpClient::CCHttpClient @ 0x1800176db\n; > cocos2d::extension::CCHttpClient::~CCHttpClient @ 0x18001778c\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x18004aab8\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, 0x180018220\nmov     [rsp+arg_8], rsi                                               ; +0x5, 0x180018225\npush    rdi                                                            ; +0xa, 0x18001822a\nsub     rsp, 20h                                                       ; +0xb, 0x18001822b\nmov     rdi, rcx                                                       ; +0xf, 0x18001822f\nxor     ebx, ebx                                                       ; +0x12, 0x180018232\nlea     rsi, unk_180048630                                             ; +0x14, 0x180018234\nmov     [rsp+28h+arg_10], rsi                                          ; +0x1b, 0x18001823b\nmov     rcx, rsi; _Mtx_t                                               ; +0x20, 0x180018240\ncall    cs:_Mtx_lock                                                   ; +0x23, 0x180018243\ntest    eax, eax                                                       ; +0x29, 0x180018249\njz      short loc_180018257                                            ; +0x2b, 0x18001824b\nlea     ecx, [rbx+5]                                                   ; +0x2d, 0x18001824d\ncall    cs:?_Throw_Cpp_error@std@@YAXH@Z; std::_Throw_Cpp_error(int)   ; +0x30, 0x180018250\nint     3; Trap to Debugger                                            ; +0x36, 0x180018256\nmov     eax, cs:dword_18004867C                                        ; +0x37, 0x180018257\ncmp     eax, 7FFFFFFFh                                                 ; +0x3d, 0x18001825d\njnz     short loc_180018278                                            ; +0x42, 0x180018262\ndec     eax                                                            ; +0x44, 0x180018264\nmov     cs:dword_18004867C, eax                                        ; +0x46, 0x180018266\nmov     ecx, 6                                                         ; +0x4c, 0x18001826c\ncall    cs:?_Throw_Cpp_error@std@@YAXH@Z; std::_Throw_Cpp_error(int)   ; +0x51, 0x180018271\nnop                                                                    ; +0x57, 0x180018277\nmov     rcx, cs:qword_1800486C8                                        ; +0x58, 0x180018278\ncall    cs:?count@CCArray@cocos2d@@QEBAIXZ; cocos2d::CCArray::count(void) ; +0x5f, 0x18001827f\ntest    eax, eax                                                       ; +0x65, 0x180018285\njz      short loc_1800182B7                                            ; +0x67, 0x180018287\nxor     edx, edx                                                       ; +0x69, 0x180018289\nmov     rcx, cs:qword_1800486C8                                        ; +0x6b, 0x18001828b\ncall    cs:?objectAtIndex@CCArray@cocos2d@@QEAAPEAVCCObject@2@I@Z; cocos2d::CCArray::objectAtIndex(uint) ; +0x72, 0x180018292\nmov     rbx, rax                                                       ; +0x78, 0x180018298\nmov     rcx, rax                                                       ; +0x7b, 0x18001829b\ncall    cs:?retain@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::retain(void) ; +0x7e, 0x18001829e\nmov     r8b, 1                                                         ; +0x84, 0x1800182a4\nxor     edx, edx                                                       ; +0x87, 0x1800182a7\nmov     rcx, cs:qword_1800486C8                                        ; +0x89, 0x1800182a9\ncall    cs:?removeObjectAtIndex@CCArray@cocos2d@@QEAAXI_N@Z; cocos2d::CCArray::removeObjectAtIndex(uint,bool) ; +0x90, 0x1800182b0\nnop                                                                    ; +0x96, 0x1800182b6\nmov     rcx, rsi; _Mtx_t                                               ; +0x97, 0x1800182b7\ncall    cs:_Mtx_unlock                                                 ; +0x9a, 0x1800182ba\ntest    rbx, rbx                                                       ; +0xa0, 0x1800182c0\njz      short loc_1800182F8                                            ; +0xa3, 0x1800182c3\nmov     rax, [rbx+38h]                                                 ; +0xa5, 0x1800182c5\ntest    rax, rax                                                       ; +0xa9, 0x1800182c9\njz      short loc_1800182EF                                            ; +0xac, 0x1800182cc\nmov     rcx, [rax+98h]                                                 ; +0xae, 0x1800182ce\nmov     r9, [rax+0A0h]                                                 ; +0xb5, 0x1800182d5\ntest    rcx, rcx                                                       ; +0xbc, 0x1800182dc\njz      short loc_1800182EF                                            ; +0xbf, 0x1800182df\ntest    r9, r9                                                         ; +0xc1, 0x1800182e1\njz      short loc_1800182EF                                            ; +0xc4, 0x1800182e4\nmov     r8, rbx                                                        ; +0xc6, 0x1800182e6\nmov     rdx, rdi                                                       ; +0xc9, 0x1800182e9\ncall    r9                                                             ; +0xcc, 0x1800182ec\nmov     rcx, rbx                                                       ; +0xcf, 0x1800182ef\ncall    cs:?release@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::release(void) ; +0xd2, 0x1800182f2\nmov     rbx, [rsp+28h+arg_0]                                           ; +0xd8, 0x1800182f8\nmov     rsi, [rsp+28h+arg_8]                                           ; +0xdd, 0x1800182fd\nadd     rsp, 20h                                                       ; +0xe2, 0x180018302\npop     rdi                                                            ; +0xe6, 0x180018306\nretn                                                                   ; +0xe7, 0x180018307", "xrefs": ["cocos2d::extension::CCHttpClient::CCHttpClient @ 0x1800176db", "cocos2d::extension::CCHttpClient::~CCHttpClient @ 0x18001778c", "<???> @ 0x18002fdf8", "<???> @ 0x18004aab8"], "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"}