; ; cocos2d::extension::CCScrollView::ccTouchBegan from 0x180013980 to 0x180013bdc (604 bytes) ; ; 5 xrefs: ; > cocos2d::extension::CCTableView::ccTouchBegan @ 0x1800164a7 ; > @ 0x1800282d8 ; > @ 0x18002fdf8 ; > @ 0x18004a56c ; > @ 0x18004a578 ; ; 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 ; mov [rsp+arg_8], rbx ; +0x0, 0x180013980 mov [rsp+arg_10], rsi ; +0x5, 0x180013985 push rdi ; +0xa, 0x18001398a sub rsp, 40h ; +0xb, 0x18001398b lea rsi, [rcx-140h] ; +0xf, 0x18001398f mov rdi, rcx ; +0x16, 0x180013996 mov rax, [rsi] ; +0x19, 0x180013999 mov rcx, rsi ; +0x1c, 0x18001399c mov rbx, rdx ; +0x1f, 0x18001399f call qword ptr [rax+148h] ; +0x22, 0x1800139a2 test al, al ; +0x28, 0x1800139a8 jz loc_180013BCA ; +0x2a, 0x1800139aa lea rdx, [rsp+48h+var_18] ; +0x30, 0x1800139b0 mov rcx, rsi ; +0x35, 0x1800139b5 call ?getViewRect@CCScrollView@extension@cocos2d@@IEAA?AVCCRect@3@XZ; cocos2d::extension::CCScrollView::getViewRect(void) ; +0x38, 0x1800139b8 mov rcx, [rdi+0B8h] ; +0x3d, 0x1800139bd call cs:?count@CCArray@cocos2d@@QEBAIXZ; cocos2d::CCArray::count(void) ; +0x44, 0x1800139c4 cmp eax, 2 ; +0x4a, 0x1800139ca ja loc_180013BCA ; +0x4d, 0x1800139cd cmp byte ptr [rdi+88h], 0 ; +0x53, 0x1800139d3 jnz loc_180013BCA ; +0x5a, 0x1800139da mov rcx, [rdi+80h] ; +0x60, 0x1800139e0 lea rdx, [rsp+48h+arg_0] ; +0x67, 0x1800139e7 mov r8, rbx ; +0x6c, 0x1800139ec call cs:?convertTouchToNodeSpace@CCNode@cocos2d@@QEAA?AVCCPoint@2@PEAVCCTouch@2@@Z; cocos2d::CCNode::convertTouchToNodeSpace(cocos2d::CCTouch *) ; +0x6f, 0x1800139ef mov rcx, [rdi+80h] ; +0x75, 0x1800139f5 lea rdx, [rsp+48h+arg_18] ; +0x7c, 0x1800139fc mov r8, rax ; +0x81, 0x180013a01 call cs:?convertToWorldSpace@CCNode@cocos2d@@QEAA?AVCCPoint@2@AEBV32@@Z; cocos2d::CCNode::convertToWorldSpace(cocos2d::CCPoint const &) ; +0x84, 0x180013a04 mov rdx, rax ; +0x8a, 0x180013a0a lea rcx, [rsp+48h+var_18] ; +0x8d, 0x180013a0d call cs:?containsPoint@CCRect@cocos2d@@QEBA_NAEBVCCPoint@2@@Z; cocos2d::CCRect::containsPoint(cocos2d::CCPoint const &) ; +0x92, 0x180013a12 test al, al ; +0x98, 0x180013a18 jz loc_180013BCA ; +0x9a, 0x180013a1a mov rcx, [rdi+0B8h] ; +0xa0, 0x180013a20 mov rdx, rbx ; +0xa7, 0x180013a27 call cs:?containsObject@CCArray@cocos2d@@QEBA_NPEAVCCObject@2@@Z; cocos2d::CCArray::containsObject(cocos2d::CCObject *) ; +0xaa, 0x180013a2a test al, al ; +0xb0, 0x180013a30 jnz short loc_180013A44 ; +0xb2, 0x180013a32 mov rcx, [rdi+0B8h] ; +0xb4, 0x180013a34 mov rdx, rbx ; +0xbb, 0x180013a3b call cs:?addObject@CCArray@cocos2d@@QEAAXPEAVCCObject@2@@Z; cocos2d::CCArray::addObject(cocos2d::CCObject *) ; +0xbe, 0x180013a3e mov rcx, [rdi+0B8h] ; +0xc4, 0x180013a44 call cs:?count@CCArray@cocos2d@@QEBAIXZ; cocos2d::CCArray::count(void) ; +0xcb, 0x180013a4b cmp eax, 1 ; +0xd1, 0x180013a51 jnz short loc_180013ABF ; +0xd4, 0x180013a54 mov r8, rbx ; +0xd6, 0x180013a56 lea rdx, [rsp+48h+arg_0] ; +0xd9, 0x180013a59 mov rcx, rsi ; +0xde, 0x180013a5e call cs:?convertTouchToNodeSpace@CCNode@cocos2d@@QEAA?AVCCPoint@2@PEAVCCTouch@2@@Z; cocos2d::CCNode::convertTouchToNodeSpace(cocos2d::CCTouch *) ; +0xe1, 0x180013a61 mov rdx, rax ; +0xe7, 0x180013a67 lea rcx, [rdi+0A8h] ; +0xea, 0x180013a6a call cs:??4CCPoint@cocos2d@@QEAAAEAV01@AEBV01@@Z; cocos2d::CCPoint::operator=(cocos2d::CCPoint const &) ; +0xf1, 0x180013a71 xorps xmm2, xmm2 ; +0xf7, 0x180013a77 mov byte ptr [rdi+88h], 0 ; +0xfa, 0x180013a7a xorps xmm1, xmm1 ; +0x101, 0x180013a81 mov byte ptr [rdi+74h], 1 ; +0x104, 0x180013a84 lea rcx, [rsp+48h+arg_0] ; +0x108, 0x180013a88 call cs:??0CCPoint@cocos2d@@QEAA@MM@Z; cocos2d::CCPoint::CCPoint(float,float) ; +0x10d, 0x180013a8d mov rdx, rax ; +0x113, 0x180013a93 lea rcx, [rdi+0A0h] ; +0x116, 0x180013a96 call cs:??4CCPoint@cocos2d@@QEAAAEAV01@AEBV01@@Z; cocos2d::CCPoint::operator=(cocos2d::CCPoint const &) ; +0x11d, 0x180013a9d mov al, 1 ; +0x123, 0x180013aa3 mov dword ptr [rdi+0B0h], 0 ; +0x125, 0x180013aa5 mov rbx, [rsp+48h+arg_8] ; +0x12f, 0x180013aaf mov rsi, [rsp+48h+arg_10] ; +0x134, 0x180013ab4 add rsp, 40h ; +0x139, 0x180013ab9 pop rdi ; +0x13d, 0x180013abd retn ; +0x13e, 0x180013abe mov rcx, [rdi+0B8h] ; +0x13f, 0x180013abf call cs:?count@CCArray@cocos2d@@QEBAIXZ; cocos2d::CCArray::count(void) ; +0x146, 0x180013ac6 cmp eax, 2 ; +0x14c, 0x180013acc jnz loc_180013BB8 ; +0x14f, 0x180013acf mov rcx, [rdi+0B8h] ; +0x155, 0x180013ad5 lea edx, [rax-1] ; +0x15c, 0x180013adc call cs:?objectAtIndex@CCArray@cocos2d@@QEAAPEAVCCObject@2@I@Z; cocos2d::CCArray::objectAtIndex(uint) ; +0x15f, 0x180013adf lea rdx, [rsp+48h+arg_18] ; +0x165, 0x180013ae5 mov rcx, rsi ; +0x16a, 0x180013aea mov r8, rax ; +0x16d, 0x180013aed call cs:?convertTouchToNodeSpace@CCNode@cocos2d@@QEAA?AVCCPoint@2@PEAVCCTouch@2@@Z; cocos2d::CCNode::convertTouchToNodeSpace(cocos2d::CCTouch *) ; +0x170, 0x180013af0 mov rcx, [rdi+0B8h] ; +0x176, 0x180013af6 xor edx, edx ; +0x17d, 0x180013afd mov rbx, rax ; +0x17f, 0x180013aff call cs:?objectAtIndex@CCArray@cocos2d@@QEAAPEAVCCObject@2@I@Z; cocos2d::CCArray::objectAtIndex(uint) ; +0x182, 0x180013b02 lea rdx, [rsp+48h+var_28] ; +0x188, 0x180013b08 mov rcx, rsi ; +0x18d, 0x180013b0d mov r8, rax ; +0x190, 0x180013b10 call cs:?convertTouchToNodeSpace@CCNode@cocos2d@@QEAA?AVCCPoint@2@PEAVCCTouch@2@@Z; cocos2d::CCNode::convertTouchToNodeSpace(cocos2d::CCTouch *) ; +0x193, 0x180013b13 mov r8, rbx ; +0x199, 0x180013b19 lea rdx, [rsp+48h+var_20] ; +0x19c, 0x180013b1c mov rcx, rax ; +0x1a1, 0x180013b21 call cs:??HCCPoint@cocos2d@@QEBA?AV01@AEBV01@@Z; cocos2d::CCPoint::operator+(cocos2d::CCPoint const &) ; +0x1a4, 0x180013b24 movss xmm2, cs:Y ; +0x1aa, 0x180013b2a lea rdx, [rsp+48h+arg_0] ; +0x1b2, 0x180013b32 mov rcx, rax ; +0x1b7, 0x180013b37 call cs:??KCCPoint@cocos2d@@QEBA?AV01@M@Z; cocos2d::CCPoint::operator/(float) ; +0x1ba, 0x180013b3a lea rcx, [rdi+0A8h] ; +0x1c0, 0x180013b40 lea rdx, [rsp+48h+arg_0] ; +0x1c7, 0x180013b47 call cs:??4CCPoint@cocos2d@@QEAAAEAV01@AEBV01@@Z; cocos2d::CCPoint::operator=(cocos2d::CCPoint const &) ; +0x1cc, 0x180013b4c mov rcx, [rdi+0B8h] ; +0x1d2, 0x180013b52 mov edx, 1 ; +0x1d9, 0x180013b59 call cs:?objectAtIndex@CCArray@cocos2d@@QEAAPEAVCCObject@2@I@Z; cocos2d::CCArray::objectAtIndex(uint) ; +0x1de, 0x180013b5e mov rcx, [rdi+80h] ; +0x1e4, 0x180013b64 lea rdx, [rsp+48h+arg_0] ; +0x1eb, 0x180013b6b mov r8, rax ; +0x1f0, 0x180013b70 call cs:?convertTouchToNodeSpace@CCNode@cocos2d@@QEAA?AVCCPoint@2@PEAVCCTouch@2@@Z; cocos2d::CCNode::convertTouchToNodeSpace(cocos2d::CCTouch *) ; +0x1f3, 0x180013b73 mov rcx, [rdi+0B8h] ; +0x1f9, 0x180013b79 xor edx, edx ; +0x200, 0x180013b80 mov rbx, rax ; +0x202, 0x180013b82 call cs:?objectAtIndex@CCArray@cocos2d@@QEAAPEAVCCObject@2@I@Z; cocos2d::CCArray::objectAtIndex(uint) ; +0x205, 0x180013b85 mov rcx, [rdi+80h] ; +0x20b, 0x180013b8b lea rdx, [rsp+48h+arg_18] ; +0x212, 0x180013b92 mov r8, rax ; +0x217, 0x180013b97 call cs:?convertTouchToNodeSpace@CCNode@cocos2d@@QEAA?AVCCPoint@2@PEAVCCTouch@2@@Z; cocos2d::CCNode::convertTouchToNodeSpace(cocos2d::CCTouch *) ; +0x21a, 0x180013b9a mov rcx, rax ; +0x220, 0x180013ba0 mov rdx, rbx ; +0x223, 0x180013ba3 call cs:?ccpDistance@cocos2d@@YAMAEBVCCPoint@1@0@Z; cocos2d::ccpDistance(cocos2d::CCPoint const &,cocos2d::CCPoint const &) ; +0x226, 0x180013ba6 movss dword ptr [rdi+0B0h], xmm0 ; +0x22c, 0x180013bac mov byte ptr [rdi+74h], 0 ; +0x234, 0x180013bb4 mov al, 1 ; +0x238, 0x180013bb8 mov rbx, [rsp+48h+arg_8] ; +0x23a, 0x180013bba mov rsi, [rsp+48h+arg_10] ; +0x23f, 0x180013bbf add rsp, 40h ; +0x244, 0x180013bc4 pop rdi ; +0x248, 0x180013bc8 retn ; +0x249, 0x180013bc9 mov rbx, [rsp+48h+arg_8] ; +0x24a, 0x180013bca xor al, al ; +0x24f, 0x180013bcf mov rsi, [rsp+48h+arg_10] ; +0x251, 0x180013bd1 add rsp, 40h ; +0x256, 0x180013bd6 pop rdi ; +0x25a, 0x180013bda retn ; +0x25b, 0x180013bdb