{"type": "func", "start": 6442499392, "end": 6442499700, "name": "cocos2d::extension::CCControlStepper::ccTouchMoved", "pseudocode": "// \n// cocos2d::extension::CCControlStepper::ccTouchMoved from 0x18000bd40 to 0x18000be74 (308 bytes)\n// \n// 3 xrefs:\n// > <???> @ 0x180026030\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x180049d08\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::CCControlStepper::ccTouchMoved(\n        cocos2d::extension::CCControlStepper *this,\n        struct cocos2d::CCTouch *a2,\n        struct cocos2d::CCEvent *a3)\n{\n  _DWORD *v3; // rdi\n  float *v6; // rax\n  __int64 v7; // r8\n  bool v8; // zf\n  void (__fastcall ***v9)(_QWORD, void *); // rcx\n  char v10; // [rsp+40h] [rbp+8h] BYREF\n  char v11; // [rsp+58h] [rbp+20h] BYREF\n\n  v3 = (_DWORD *)((char *)this - 320);\n  if ( (*(unsigned __int8 (__fastcall **)(char *, struct cocos2d::CCTouch *, struct cocos2d::CCEvent *))(*((_QWORD *)this - 40) + 1104LL))(\n         (char *)this - 320,\n         a2,\n         a3) )\n  {\n    (*(void (__fastcall **)(_DWORD *, char *, struct cocos2d::CCTouch *))(*(_QWORD *)v3 + 1096LL))(v3, &v10, a2);\n    v6 = (float *)cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)&v11, (const struct cocos2d::CCPoint *)&v10);\n    cocos2d::extension::CCControlStepper::updateLayoutUsingTouchLocation((__int64)v3, v6);\n    if ( !*((_BYTE *)this + 224) )\n    {\n      v8 = *((_BYTE *)this + 193) == 0;\n      *((_BYTE *)this + 224) = 1;\n      if ( !v8 )\n      {\n        v3[138] = -1;\n        cocos2d::CCNode::schedule(v3, sub_18000BF64, v7, 4294967294LL, 1055286887);\n      }\n    }\n  }\n  else\n  {\n    v9 = (void (__fastcall ***)(_QWORD, void *))(*((_QWORD *)this + 19) + 320LL);\n    *((_BYTE *)this + 224) = 0;\n    *((_DWORD *)this + 57) = 2;\n    (**v9)(v9, &unk_1800234B0);\n    (**(void (__fastcall ***)(__int64, void *))(*((_QWORD *)this + 20) + 320LL))(\n      *((_QWORD *)this + 20) + 320LL,\n      &unk_1800234B0);\n    if ( *((_BYTE *)this + 193) )\n      cocos2d::CCNode::unschedule(v3, sub_18000BF64);\n  }\n}", "assembly": "; \n; cocos2d::extension::CCControlStepper::ccTouchMoved from 0x18000bd40 to 0x18000be74 (308 bytes)\n; \n; 3 xrefs:\n; > <???> @ 0x180026030\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x180049d08\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], rbx                                               ; +0x0, 0x18000bd40\nmov     [rsp+arg_10], rsi                                              ; +0x5, 0x18000bd45\npush    rdi                                                            ; +0xa, 0x18000bd4a\nsub     rsp, 30h                                                       ; +0xb, 0x18000bd4b\nlea     rdi, [rcx-140h]                                                ; +0xf, 0x18000bd4f\nmov     rbx, rcx                                                       ; +0x16, 0x18000bd56\nmov     rax, [rdi]                                                     ; +0x19, 0x18000bd59\nmov     rcx, rdi                                                       ; +0x1c, 0x18000bd5c\nmov     rsi, rdx                                                       ; +0x1f, 0x18000bd5f\ncall    qword ptr [rax+450h]                                           ; +0x22, 0x18000bd62\ntest    al, al                                                         ; +0x28, 0x18000bd68\njz      loc_18000BE06                                                  ; +0x2a, 0x18000bd6a\nmov     rax, [rdi]                                                     ; +0x30, 0x18000bd70\nlea     rdx, [rsp+38h+arg_0]                                           ; +0x33, 0x18000bd73\nmov     r8, rsi                                                        ; +0x38, 0x18000bd78\nmov     rcx, rdi                                                       ; +0x3b, 0x18000bd7b\ncall    qword ptr [rax+448h]                                           ; +0x3e, 0x18000bd7e\nlea     rdx, [rsp+38h+arg_0]                                           ; +0x44, 0x18000bd84\nlea     rcx, [rsp+38h+arg_18]                                          ; +0x49, 0x18000bd89\ncall    cs:??0CCPoint@cocos2d@@QEAA@AEBV01@@Z; cocos2d::CCPoint::CCPoint(cocos2d::CCPoint const &) ; +0x4e, 0x18000bd8e\nmov     rdx, rax                                                       ; +0x54, 0x18000bd94\nmov     rcx, rdi                                                       ; +0x57, 0x18000bd97\ncall    ?updateLayoutUsingTouchLocation@CCControlStepper@extension@cocos2d@@QEAAXVCCPoint@3@@Z; cocos2d::extension::CCControlStepper::updateLayoutUsingTouchLocation(cocos2d::CCPoint) ; +0x5a, 0x18000bd9a\ncmp     byte ptr [rbx+0E0h], 0                                         ; +0x5f, 0x18000bd9f\njnz     loc_18000BE64                                                  ; +0x66, 0x18000bda6\ncmp     byte ptr [rbx+0C1h], 0                                         ; +0x6c, 0x18000bdac\nmov     byte ptr [rbx+0E0h], 1                                         ; +0x73, 0x18000bdb3\njz      loc_18000BE64                                                  ; +0x7a, 0x18000bdba\nmovss   xmm0, cs:dword_18002950C                                       ; +0x80, 0x18000bdc0\nlea     rdx, sub_18000BF64                                             ; +0x88, 0x18000bdc8\nmovss   xmm2, cs:flt_180029504                                         ; +0x8f, 0x18000bdcf\nmov     r9d, 0FFFFFFFEh                                                ; +0x97, 0x18000bdd7\nmov     rcx, rdi                                                       ; +0x9d, 0x18000bddd\nmovss   [rsp+38h+var_18], xmm0                                         ; +0xa0, 0x18000bde0\nmov     dword ptr [rdi+228h], 0FFFFFFFFh                               ; +0xa6, 0x18000bde6\ncall    cs:?schedule@CCNode@cocos2d@@QEAAXP8CCObject@2@EAAXM@ZMIM@Z; cocos2d::CCNode::schedule(void (cocos2d::CCObject::*)(float),float,uint,float) ; +0xb0, 0x18000bdf0\nmov     rbx, [rsp+38h+arg_8]                                           ; +0xb6, 0x18000bdf6\nmov     rsi, [rsp+38h+arg_10]                                          ; +0xbb, 0x18000bdfb\nadd     rsp, 30h                                                       ; +0xc0, 0x18000be00\npop     rdi                                                            ; +0xc4, 0x18000be04\nretn                                                                   ; +0xc5, 0x18000be05\nmov     rcx, [rbx+98h]                                                 ; +0xc6, 0x18000be06\nlea     rdx, unk_1800234B0                                             ; +0xcd, 0x18000be0d\nadd     rcx, 140h                                                      ; +0xd4, 0x18000be14\nmov     byte ptr [rbx+0E0h], 0                                         ; +0xdb, 0x18000be1b\nmov     dword ptr [rbx+0E4h], 2                                        ; +0xe2, 0x18000be22\nmov     rax, [rcx]                                                     ; +0xec, 0x18000be2c\ncall    qword ptr [rax]                                                ; +0xef, 0x18000be2f\nmov     rcx, [rbx+0A0h]                                                ; +0xf1, 0x18000be31\nlea     rdx, unk_1800234B0                                             ; +0xf8, 0x18000be38\nadd     rcx, 140h                                                      ; +0xff, 0x18000be3f\nmov     rax, [rcx]                                                     ; +0x106, 0x18000be46\ncall    qword ptr [rax]                                                ; +0x109, 0x18000be49\ncmp     byte ptr [rbx+0C1h], 0                                         ; +0x10b, 0x18000be4b\njz      short loc_18000BE64                                            ; +0x112, 0x18000be52\nlea     rdx, sub_18000BF64                                             ; +0x114, 0x18000be54\nmov     rcx, rdi                                                       ; +0x11b, 0x18000be5b\ncall    cs:?unschedule@CCNode@cocos2d@@QEAAXP8CCObject@2@EAAXM@Z@Z; cocos2d::CCNode::unschedule(void (cocos2d::CCObject::*)(float)) ; +0x11e, 0x18000be5e\nmov     rbx, [rsp+38h+arg_8]                                           ; +0x124, 0x18000be64\nmov     rsi, [rsp+38h+arg_10]                                          ; +0x129, 0x18000be69\nadd     rsp, 30h                                                       ; +0x12e, 0x18000be6e\npop     rdi                                                            ; +0x132, 0x18000be72\nretn                                                                   ; +0x133, 0x18000be73", "xrefs": ["<???> @ 0x180026030", "<???> @ 0x18002fdf8", "<???> @ 0x180049d08"], "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"}