{"type": "func", "start": 6442487648, "end": 6442487984, "name": "cocos2d::extension::CCControlPotentiometer::initWithTrackSprite_ProgressTimer_ThumbSprite", "pseudocode": "// \n// cocos2d::extension::CCControlPotentiometer::initWithTrackSprite_ProgressTimer_ThumbSprite from 0x180008f60 to 0x1800090b0 (336 bytes)\n// \n// 5 xrefs:\n// > cocos2d::extension::CCControlPotentiometer::create @ 0x180008f22\n// > <???> @ 0x18002dbdc\n// > <???> @ 0x18002dbec\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x18004996c\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\nchar __fastcall cocos2d::extension::CCControlPotentiometer::initWithTrackSprite_ProgressTimer_ThumbSprite(\n        cocos2d::extension::CCControlPotentiometer *this,\n        struct cocos2d::CCSprite *a2,\n        struct cocos2d::CCProgressTimer *a3,\n        struct cocos2d::CCSprite *a4)\n{\n  __int64 v8; // rdx\n  cocos2d::CCObject *v9; // rcx\n  cocos2d::CCObject *v10; // rcx\n  __int64 v11; // rbx\n  __int64 v12; // rax\n  __int64 v13; // rbx\n  __int64 v14; // rax\n\n  if ( !cocos2d::extension::CCControl::init(this) )\n    return 0;\n  LOBYTE(v8) = 1;\n  (*(void (__fastcall **)(cocos2d::extension::CCControlPotentiometer *, __int64))(*(_QWORD *)this + 904LL))(this, v8);\n  if ( *((struct cocos2d::CCProgressTimer **)this + 60) != a3 )\n  {\n    if ( a3 )\n      cocos2d::CCObject::retain(a3);\n    v9 = *((cocos2d::CCObject **)this + 60);\n    if ( v9 )\n      cocos2d::CCObject::release(v9);\n    *((_QWORD *)this + 60) = a3;\n  }\n  if ( *((struct cocos2d::CCSprite **)this + 59) != a4 )\n  {\n    if ( a4 )\n      cocos2d::CCObject::retain(a4);\n    v10 = *((cocos2d::CCObject **)this + 59);\n    if ( v10 )\n      cocos2d::CCObject::release(v10);\n    *((_QWORD *)this + 59) = a4;\n  }\n  v11 = *(_QWORD *)a4;\n  v12 = (*(__int64 (__fastcall **)(struct cocos2d::CCProgressTimer *))(*(_QWORD *)a3 + 200LL))(a3);\n  (*(void (__fastcall **)(struct cocos2d::CCSprite *, __int64))(v11 + 184))(a4, v12);\n  (*(void (__fastcall **)(cocos2d::extension::CCControlPotentiometer *, struct cocos2d::CCSprite *, __int64))(*(_QWORD *)this + 440LL))(\n    this,\n    a4,\n    2);\n  (*(void (__fastcall **)(cocos2d::extension::CCControlPotentiometer *, struct cocos2d::CCProgressTimer *, __int64))(*(_QWORD *)this + 440LL))(\n    this,\n    a3,\n    1);\n  (*(void (__fastcall **)(cocos2d::extension::CCControlPotentiometer *, struct cocos2d::CCSprite *))(*(_QWORD *)this + 448LL))(\n    this,\n    a2);\n  v13 = *(_QWORD *)this;\n  v14 = (*(__int64 (__fastcall **)(struct cocos2d::CCSprite *))(*(_QWORD *)a2 + 304LL))(a2);\n  (*(void (__fastcall **)(cocos2d::extension::CCControlPotentiometer *, __int64))(v13 + 296))(this, v14);\n  *((_DWORD *)this + 125) = 0;\n  *((_DWORD *)this + 126) = 1065353216;\n  cocos2d::extension::CCControlPotentiometer::setValue(this, 0.0);\n  return 1;\n}", "assembly": "; \n; cocos2d::extension::CCControlPotentiometer::initWithTrackSprite_ProgressTimer_ThumbSprite from 0x180008f60 to 0x1800090b0 (336 bytes)\n; \n; 5 xrefs:\n; > cocos2d::extension::CCControlPotentiometer::create @ 0x180008f22\n; > <???> @ 0x18002dbdc\n; > <???> @ 0x18002dbec\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x18004996c\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], rsi                                               ; +0x0, 0x180008f60\nmov     [rsp+arg_10], rdi                                              ; +0x5, 0x180008f65\nmov     [rsp+arg_18], r14                                              ; +0xa, 0x180008f6a\npush    r15                                                            ; +0xf, 0x180008f6f\nsub     rsp, 20h                                                       ; +0x11, 0x180008f71\nmov     rsi, r9                                                        ; +0x15, 0x180008f75\nmov     r14, r8                                                        ; +0x18, 0x180008f78\nmov     r15, rdx                                                       ; +0x1b, 0x180008f7b\nmov     rdi, rcx                                                       ; +0x1e, 0x180008f7e\ncall    ?init@CCControl@extension@cocos2d@@UEAA_NXZ; cocos2d::extension::CCControl::init(void) ; +0x21, 0x180008f81\ntest    al, al                                                         ; +0x26, 0x180008f86\njz      loc_180009098                                                  ; +0x28, 0x180008f88\nmov     rax, [rdi]                                                     ; +0x2e, 0x180008f8e\nmov     dl, 1                                                          ; +0x31, 0x180008f91\nmov     rcx, rdi                                                       ; +0x33, 0x180008f93\nmov     [rsp+28h+arg_0], rbx                                           ; +0x36, 0x180008f96\ncall    qword ptr [rax+388h]                                           ; +0x3b, 0x180008f9b\ncmp     [rdi+1E0h], r14                                                ; +0x41, 0x180008fa1\njz      short loc_180008FD1                                            ; +0x48, 0x180008fa8\ntest    r14, r14                                                       ; +0x4a, 0x180008faa\njz      short loc_180008FB8                                            ; +0x4d, 0x180008fad\nmov     rcx, r14                                                       ; +0x4f, 0x180008faf\ncall    cs:?retain@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::retain(void) ; +0x52, 0x180008fb2\nmov     rcx, [rdi+1E0h]                                                ; +0x58, 0x180008fb8\ntest    rcx, rcx                                                       ; +0x5f, 0x180008fbf\njz      short loc_180008FCA                                            ; +0x62, 0x180008fc2\ncall    cs:?release@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::release(void) ; +0x64, 0x180008fc4\nmov     [rdi+1E0h], r14                                                ; +0x6a, 0x180008fca\ncmp     [rdi+1D8h], rsi                                                ; +0x71, 0x180008fd1\njz      short loc_180009001                                            ; +0x78, 0x180008fd8\ntest    rsi, rsi                                                       ; +0x7a, 0x180008fda\njz      short loc_180008FE8                                            ; +0x7d, 0x180008fdd\nmov     rcx, rsi                                                       ; +0x7f, 0x180008fdf\ncall    cs:?retain@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::retain(void) ; +0x82, 0x180008fe2\nmov     rcx, [rdi+1D8h]                                                ; +0x88, 0x180008fe8\ntest    rcx, rcx                                                       ; +0x8f, 0x180008fef\njz      short loc_180008FFA                                            ; +0x92, 0x180008ff2\ncall    cs:?release@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::release(void) ; +0x94, 0x180008ff4\nmov     [rdi+1D8h], rsi                                                ; +0x9a, 0x180008ffa\nmov     rax, [r14]                                                     ; +0xa1, 0x180009001\nmov     rcx, r14                                                       ; +0xa4, 0x180009004\nmov     rbx, [rsi]                                                     ; +0xa7, 0x180009007\ncall    qword ptr [rax+0C8h]                                           ; +0xaa, 0x18000900a\nmov     rdx, rax                                                       ; +0xb0, 0x180009010\nmov     rcx, rsi                                                       ; +0xb3, 0x180009013\ncall    qword ptr [rbx+0B8h]                                           ; +0xb6, 0x180009016\nmov     rax, [rdi]                                                     ; +0xbc, 0x18000901c\nmov     r8d, 2                                                         ; +0xbf, 0x18000901f\nmov     rdx, rsi                                                       ; +0xc5, 0x180009025\nmov     rcx, rdi                                                       ; +0xc8, 0x180009028\ncall    qword ptr [rax+1B8h]                                           ; +0xcb, 0x18000902b\nmov     rax, [rdi]                                                     ; +0xd1, 0x180009031\nmov     r8d, 1                                                         ; +0xd4, 0x180009034\nmov     rdx, r14                                                       ; +0xda, 0x18000903a\nmov     rcx, rdi                                                       ; +0xdd, 0x18000903d\ncall    qword ptr [rax+1B8h]                                           ; +0xe0, 0x180009040\nmov     rax, [rdi]                                                     ; +0xe6, 0x180009046\nmov     rdx, r15                                                       ; +0xe9, 0x180009049\nmov     rcx, rdi                                                       ; +0xec, 0x18000904c\ncall    qword ptr [rax+1C0h]                                           ; +0xef, 0x18000904f\nmov     rax, [r15]                                                     ; +0xf5, 0x180009055\nmov     rcx, r15                                                       ; +0xf8, 0x180009058\nmov     rbx, [rdi]                                                     ; +0xfb, 0x18000905b\ncall    qword ptr [rax+130h]                                           ; +0xfe, 0x18000905e\nmov     rdx, rax                                                       ; +0x104, 0x180009064\nmov     rcx, rdi                                                       ; +0x107, 0x180009067\ncall    qword ptr [rbx+128h]                                           ; +0x10a, 0x18000906a\nxorps   xmm1, xmm1; float                                              ; +0x110, 0x180009070\nmov     dword ptr [rdi+1F4h], 0                                        ; +0x113, 0x180009073\nmov     rcx, rdi; this                                                 ; +0x11d, 0x18000907d\nmov     dword ptr [rdi+1F8h], 3F800000h                                ; +0x120, 0x180009080\ncall    ?setValue@CCControlPotentiometer@extension@cocos2d@@QEAAXM@Z; cocos2d::extension::CCControlPotentiometer::setValue(float) ; +0x12a, 0x18000908a\nmov     rbx, [rsp+28h+arg_0]                                           ; +0x12f, 0x18000908f\nmov     al, 1                                                          ; +0x134, 0x180009094\njmp     short loc_18000909A                                            ; +0x136, 0x180009096\nxor     al, al                                                         ; +0x138, 0x180009098\nmov     rsi, [rsp+28h+arg_8]                                           ; +0x13a, 0x18000909a\nmov     rdi, [rsp+28h+arg_10]                                          ; +0x13f, 0x18000909f\nmov     r14, [rsp+28h+arg_18]                                          ; +0x144, 0x1800090a4\nadd     rsp, 20h                                                       ; +0x149, 0x1800090a9\npop     r15                                                            ; +0x14d, 0x1800090ad\nretn                                                                   ; +0x14f, 0x1800090af", "xrefs": ["cocos2d::extension::CCControlPotentiometer::create @ 0x180008f22", "<???> @ 0x18002dbdc", "<???> @ 0x18002dbec", "<???> @ 0x18002fdf8", "<???> @ 0x18004996c"], "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"}