// // cocos2d::extension::CCControlStepper::initWithMinusSpriteAndPlusSprite from 0x18000b320 to 0x18000b7a4 (1156 bytes) // // 5 xrefs: // > cocos2d::extension::CCControlStepper::create @ 0x18000b7ed // > @ 0x18002debc // > @ 0x18002def8 // > @ 0x18002fdf8 // > @ 0x180049c6c // // This function is hookable on this platform! // // Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA // Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings // char __fastcall cocos2d::extension::CCControlStepper::initWithMinusSpriteAndPlusSprite( cocos2d::extension::CCControlStepper *this, struct cocos2d::CCSprite *a2, struct cocos2d::CCSprite *a3) { __int64 v6; // rdx __int64 v7; // rax struct cocos2d::CCSprite *v8; // rbx cocos2d::CCObject *v9; // rcx __int64 v10; // rbx float v11; // xmm6_4 float *v12; // rax __int64 v13; // rax cocos2d::CCObject *v14; // rax cocos2d::CCObject *v15; // rcx cocos2d::CCObject *v16; // rbx cocos2d::CCObject *v17; // rcx __int64 v18; // rbx float v19; // xmm6_4 float *v20; // rax __int64 v21; // rax struct cocos2d::CCSprite *v22; // rbx cocos2d::CCObject *v23; // rcx __int64 v24; // rbx float v25; // xmm7_4 float v26; // xmm6_4 float v27; // xmm6_4 __int64 v28; // rax cocos2d::CCObject *v29; // rax cocos2d::CCObject *v30; // rcx cocos2d::CCObject *v31; // rbx cocos2d::CCObject *v32; // rcx __int64 v33; // rbx float v34; // xmm6_4 float *v35; // rax __int64 v36; // rax __int64 v37; // rbx __int64 v38; // rax __int64 v39; // rdi __int64 v40; // rbx float *v41; // rax __int64 v42; // rax char v44[12]; // [rsp+20h] [rbp-68h] BYREF float v45; // [rsp+2Ch] [rbp-5Ch] char v46[16]; // [rsp+30h] [rbp-58h] BYREF char v47[16]; // [rsp+40h] [rbp-48h] BYREF _BYTE v48[3]; // [rsp+A8h] [rbp+20h] BYREF if ( !cocos2d::extension::CCControl::init(this) ) return 0; LOBYTE(v6) = 1; (*(void (__fastcall **)(cocos2d::extension::CCControlStepper *, __int64))(*(_QWORD *)this + 904LL))(this, v6); *((_WORD *)this + 256) = 257; *((_QWORD *)this + 65) = 0; *((_QWORD *)this + 66) = 0x4059000000000000LL; *((_QWORD *)this + 63) = 0; *((_QWORD *)this + 67) = 0x3FF0000000000000LL; v7 = *(_QWORD *)this; *((_BYTE *)this + 514) = 0; (*(void (__fastcall **)(cocos2d::extension::CCControlStepper *, _QWORD))(v7 + 416))(this, 0); v8 = *((struct cocos2d::CCSprite **)this + 59); if ( v8 != a2 ) { if ( a2 ) cocos2d::CCObject::retain(a2); v9 = *((cocos2d::CCObject **)this + 59); if ( v9 ) cocos2d::CCObject::release(v9); *((_QWORD *)this + 59) = a2; v8 = a2; } v10 = *(_QWORD *)v8; v11 = *(float *)((*(__int64 (__fastcall **)(struct cocos2d::CCSprite *))(*(_QWORD *)a2 + 304LL))(a2) + 4); v12 = (float *)(*(__int64 (__fastcall **)(struct cocos2d::CCSprite *))(*(_QWORD *)a2 + 304LL))(a2); cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)v48, *v12 * 0.5, v11 * 0.5); (*(void (__fastcall **)(_QWORD, __int64))(v10 + 184))(*((_QWORD *)this + 59), v13); (*(void (__fastcall **)(cocos2d::extension::CCControlStepper *, _QWORD))(*(_QWORD *)this + 448LL))( this, *((_QWORD *)this + 59)); v14 = cocos2d::CCLabelTTF::create("-", "CourierNewPSMT", 40.0); v15 = *((cocos2d::CCObject **)this + 61); v16 = v14; if ( v15 != v14 ) { if ( v14 ) cocos2d::CCObject::retain(v14); v17 = *((cocos2d::CCObject **)this + 61); if ( v17 ) cocos2d::CCObject::release(v17); *((_QWORD *)this + 61) = v16; v15 = v16; } memset(v48, 147, sizeof(v48)); (**((void (__fastcall ***)(__int64, _BYTE *))v15 + 40))((__int64)v15 + 320, v48); v18 = **((_QWORD **)this + 61); v19 = *(float *)((*(__int64 (__fastcall **)(_QWORD))(**((_QWORD **)this + 59) + 304LL))(*((_QWORD *)this + 59)) + 4); v20 = (float *)(*(__int64 (__fastcall **)(_QWORD))(**((_QWORD **)this + 59) + 304LL))(*((_QWORD *)this + 59)); cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)v48, *v20 * 0.5, v19 * 0.5); (*(void (__fastcall **)(_QWORD, __int64))(v18 + 184))(*((_QWORD *)this + 61), v21); (*(void (__fastcall **)(_QWORD, _QWORD))(**((_QWORD **)this + 59) + 448LL))( *((_QWORD *)this + 59), *((_QWORD *)this + 61)); v22 = *((struct cocos2d::CCSprite **)this + 60); if ( v22 != a3 ) { if ( a3 ) cocos2d::CCObject::retain(a3); v23 = *((cocos2d::CCObject **)this + 60); if ( v23 ) cocos2d::CCObject::release(v23); *((_QWORD *)this + 60) = a3; v22 = a3; } v24 = *(_QWORD *)v22; v25 = *(float *)((*(__int64 (__fastcall **)(struct cocos2d::CCSprite *))(*(_QWORD *)a2 + 304LL))(a2) + 4); v26 = *(float *)(*(__int64 (__fastcall **)(struct cocos2d::CCSprite *))(*(_QWORD *)a3 + 304LL))(a3); v27 = (float)(v26 * 0.5) + *(float *)(*(__int64 (__fastcall **)(struct cocos2d::CCSprite *))(*(_QWORD *)a2 + 304LL))(a2); cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)v48, v27, v25 * 0.5); (*(void (__fastcall **)(_QWORD, __int64))(v24 + 184))(*((_QWORD *)this + 60), v28); (*(void (__fastcall **)(cocos2d::extension::CCControlStepper *, _QWORD))(*(_QWORD *)this + 448LL))( this, *((_QWORD *)this + 60)); v29 = cocos2d::CCLabelTTF::create("+", "CourierNewPSMT", 40.0); v30 = *((cocos2d::CCObject **)this + 62); v31 = v29; if ( v30 != v29 ) { if ( v29 ) cocos2d::CCObject::retain(v29); v32 = *((cocos2d::CCObject **)this + 62); if ( v32 ) cocos2d::CCObject::release(v32); *((_QWORD *)this + 62) = v31; v30 = v31; } memset(v48, 55, sizeof(v48)); (**((void (__fastcall ***)(__int64, _BYTE *))v30 + 40))((__int64)v30 + 320, v48); v33 = **((_QWORD **)this + 62); v34 = *(float *)((*(__int64 (__fastcall **)(_QWORD))(**((_QWORD **)this + 60) + 304LL))(*((_QWORD *)this + 60)) + 4); v35 = (float *)(*(__int64 (__fastcall **)(_QWORD))(**((_QWORD **)this + 60) + 304LL))(*((_QWORD *)this + 60)); cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)v48, *v35 * 0.5, v34 * 0.5); (*(void (__fastcall **)(_QWORD, __int64))(v33 + 184))(*((_QWORD *)this + 62), v36); (*(void (__fastcall **)(_QWORD, _QWORD))(**((_QWORD **)this + 60) + 448LL))( *((_QWORD *)this + 60), *((_QWORD *)this + 62)); v37 = cocos2d::CCNode::boundingBox(*((_QWORD *)this + 60), v46); v38 = cocos2d::CCNode::boundingBox(*((_QWORD *)this + 59), v47); cocos2d::extension::CCControlUtils::CCRectUnion(v44, v38, v37); v39 = *(_QWORD *)this; v40 = (*(__int64 (__fastcall **)(_QWORD))(**((_QWORD **)this + 60) + 304LL))(*((_QWORD *)this + 60)); v41 = (float *)(*(__int64 (__fastcall **)(_QWORD))(**((_QWORD **)this + 59) + 304LL))(*((_QWORD *)this + 59)); v42 = cocos2d::CCSize::CCSize((cocos2d::CCSize *)v48, *(float *)(v40 + 4) + *v41, v45); (*(void (__fastcall **)(cocos2d::extension::CCControlStepper *, __int64))(v39 + 296))(this, v42); return 1; }