; ; cocos2d::extension::CCTableView::scrollViewDidScroll from 0x180016030 to 0x18001634c (796 bytes) ; ; 6 xrefs: ; > @ 0x1800287d0 ; > @ 0x18002ef68 ; > @ 0x18002efdc ; > @ 0x18002fdf8 ; > @ 0x18004a890 ; > @ 0x18004a89c ; ; 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 ; push rbx ; +0x0, 0x180016030 push rbp ; +0x2, 0x180016032 push rdi ; +0x3, 0x180016033 sub rsp, 40h ; +0x4, 0x180016034 mov rdi, rcx ; +0x8, 0x180016038 mov rcx, [rcx+48h] ; +0xb, 0x18001603b mov rax, [rcx] ; +0xf, 0x18001603f lea rbx, [rdi-238h] ; +0x12, 0x180016042 mov rdx, rbx ; +0x19, 0x180016049 call qword ptr [rax+20h] ; +0x1c, 0x18001604c mov ebp, eax ; +0x1f, 0x18001604f test eax, eax ; +0x21, 0x180016051 jz loc_180016344 ; +0x23, 0x180016053 mov rcx, [rdi+50h] ; +0x29, 0x180016059 mov [rsp+58h+arg_8], rsi ; +0x2d, 0x18001605d mov [rsp+58h+var_20], r12 ; +0x32, 0x180016062 mov [rsp+58h+var_28], r13 ; +0x37, 0x180016067 mov [rsp+58h+var_30], r14 ; +0x3c, 0x18001606c mov [rsp+58h+var_38], r15 ; +0x41, 0x180016071 test rcx, rcx ; +0x46, 0x180016076 jz short loc_180016085 ; +0x49, 0x180016079 mov r8, [rcx] ; +0x4b, 0x18001607b mov rdx, rbx ; +0x4e, 0x18001607e call qword ptr [r8+8] ; +0x51, 0x180016081 mov rcx, [rdi-78h] ; +0x55, 0x180016085 mov rax, [rcx] ; +0x59, 0x180016089 call qword ptr [rax+0C8h] ; +0x5c, 0x18001608c mov rdx, rax ; +0x62, 0x180016092 lea rcx, [rsp+58h+arg_10] ; +0x65, 0x180016095 call cs:??0CCPoint@cocos2d@@QEAA@AEBV01@@Z; cocos2d::CCPoint::CCPoint(cocos2d::CCPoint const &) ; +0x6a, 0x18001609a movss xmm2, cs:dword_1800295CC ; +0x70, 0x1800160a0 lea rdx, [rsp+58h+arg_0] ; +0x78, 0x1800160a8 lea rcx, [rsp+58h+arg_10] ; +0x7d, 0x1800160ad call cs:??DCCPoint@cocos2d@@QEBA?AV01@M@Z; cocos2d::CCPoint::operator*(float) ; +0x82, 0x1800160b2 xor eax, eax ; +0x88, 0x1800160b8 lea r13d, [rbp-1] ; +0x8a, 0x1800160ba test r13d, r13d ; +0x8e, 0x1800160be lea rsi, [rdi-34h] ; +0x91, 0x1800160c1 mov r14d, r13d ; +0x95, 0x1800160c5 cmovz r14d, eax ; +0x98, 0x1800160c8 cmp [rdi+10h], eax ; +0x9c, 0x1800160cc jnz short loc_1800160F6 ; +0x9f, 0x1800160cf mov rcx, [rdi-78h] ; +0xa1, 0x1800160d1 mov rax, [rcx] ; +0xa5, 0x1800160d5 call qword ptr [rax+90h] ; +0xa8, 0x1800160d8 movss xmm1, dword ptr [rsi] ; +0xae, 0x1800160de movss xmm2, [rsp+58h+arg_4] ; +0xb2, 0x1800160e2 divss xmm1, xmm0 ; +0xb8, 0x1800160e8 addss xmm2, xmm1 ; +0xbc, 0x1800160ec movss [rsp+58h+arg_4], xmm2 ; +0xc0, 0x1800160f0 lea rdx, [rsp+58h+arg_0] ; +0xc6, 0x1800160f6 lea rcx, [rsp+58h+arg_10] ; +0xcb, 0x1800160fb call cs:??0CCPoint@cocos2d@@QEAA@AEBV01@@Z; cocos2d::CCPoint::CCPoint(cocos2d::CCPoint const &) ; +0xd0, 0x180016100 mov rcx, [rbx+280h] ; +0xd6, 0x180016106 mov rdx, rbx ; +0xdd, 0x18001610d mov r15, rax ; +0xe0, 0x180016110 mov r8, [rcx] ; +0xe3, 0x180016113 call qword ptr [r8+20h] ; +0xe6, 0x180016116 cmp dword ptr [rbx+248h], 0 ; +0xea, 0x18001611a lea r12d, [rax-1] ; +0xf1, 0x180016121 jnz short loc_180016148 ; +0xf5, 0x180016125 mov rcx, [rbx+1C0h] ; +0xf7, 0x180016127 mov rdx, [rcx] ; +0xfe, 0x18001612e call qword ptr [rdx+130h] ; +0x101, 0x180016131 movss xmm0, dword ptr [rax+4] ; +0x107, 0x180016137 subss xmm0, dword ptr [r15+4] ; +0x10c, 0x18001613c movss dword ptr [r15+4], xmm0 ; +0x112, 0x180016142 mov rdx, r15 ; +0x118, 0x180016148 lea rcx, [rsp+58h+arg_18] ; +0x11b, 0x18001614b call cs:??0CCPoint@cocos2d@@QEAA@AEBV01@@Z; cocos2d::CCPoint::CCPoint(cocos2d::CCPoint const &) ; +0x120, 0x180016150 mov rdx, rax ; +0x126, 0x180016156 mov rcx, rbx ; +0x129, 0x180016159 call ?__indexFromOffset@CCTableView@extension@cocos2d@@IEAAHVCCPoint@3@@Z; cocos2d::extension::CCTableView::__indexFromOffset(cocos2d::CCPoint) ; +0x12c, 0x18001615c mov r15, [rsp+58h+var_38] ; +0x131, 0x180016161 mov ebx, eax ; +0x136, 0x180016166 cmp eax, 0FFFFFFFFh ; +0x138, 0x180016168 jz short loc_180016182 ; +0x13b, 0x18001616b test eax, eax ; +0x13d, 0x18001616d mov eax, 0 ; +0x13f, 0x18001616f cmovs ebx, eax ; +0x144, 0x180016174 cmp ebx, r12d ; +0x147, 0x180016177 jle short loc_180016182 ; +0x14a, 0x18001617a lea rsi, [rdi-34h] ; +0x14c, 0x18001617c jmp short loc_180016187 ; +0x150, 0x180016180 cmp ebx, 0FFFFFFFFh ; +0x152, 0x180016182 jnz short loc_18001618A ; +0x155, 0x180016185 mov ebx, r13d ; +0x157, 0x180016187 cmp dword ptr [rdi+10h], 0 ; +0x15a, 0x18001618a mov rcx, [rdi-78h] ; +0x15e, 0x18001618e mov r13, [rsp+58h+var_28] ; +0x162, 0x180016192 mov r12, [rsp+58h+var_20] ; +0x167, 0x180016197 mov rax, [rcx] ; +0x16c, 0x18001619c jnz short loc_1800161BB ; +0x16f, 0x18001619f call qword ptr [rax+90h] ; +0x171, 0x1800161a1 movss xmm1, dword ptr [rsi] ; +0x177, 0x1800161a7 movss xmm2, [rsp+58h+arg_4] ; +0x17b, 0x1800161ab divss xmm1, xmm0 ; +0x181, 0x1800161b1 subss xmm2, xmm1 ; +0x185, 0x1800161b5 jmp short loc_1800161D3 ; +0x189, 0x1800161b9 call qword ptr [rax+90h] ; +0x18b, 0x1800161bb movss xmm1, dword ptr [rsi] ; +0x191, 0x1800161c1 movss xmm2, [rsp+58h+arg_4] ; +0x195, 0x1800161c5 divss xmm1, xmm0 ; +0x19b, 0x1800161cb addss xmm2, xmm1 ; +0x19f, 0x1800161cf mov rcx, [rdi-78h] ; +0x1a3, 0x1800161d3 movss [rsp+58h+arg_4], xmm2 ; +0x1a7, 0x1800161d7 mov rax, [rcx] ; +0x1ad, 0x1800161dd call qword ptr [rax+80h] ; +0x1b0, 0x1800161e0 movss xmm1, dword ptr [rdi-38h] ; +0x1b6, 0x1800161e6 lea rdx, [rsp+58h+arg_0] ; +0x1bb, 0x1800161eb movss xmm2, [rsp+58h+arg_0] ; +0x1c0, 0x1800161f0 lea rcx, [rsp+58h+arg_10] ; +0x1c6, 0x1800161f6 divss xmm1, xmm0 ; +0x1cb, 0x1800161fb addss xmm2, xmm1 ; +0x1cf, 0x1800161ff movss [rsp+58h+arg_0], xmm2 ; +0x1d3, 0x180016203 call cs:??0CCPoint@cocos2d@@QEAA@AEBV01@@Z; cocos2d::CCPoint::CCPoint(cocos2d::CCPoint const &) ; +0x1d9, 0x180016209 mov rdx, rax ; +0x1df, 0x18001620f lea rcx, [rdi-238h] ; +0x1e2, 0x180016212 call ?_indexFromOffset@CCTableView@extension@cocos2d@@IEAAIVCCPoint@3@@Z; cocos2d::extension::CCTableView::_indexFromOffset(cocos2d::CCPoint) ; +0x1e9, 0x180016219 mov esi, eax ; +0x1ee, 0x18001621e cmp eax, 0FFFFFFFFh ; +0x1f0, 0x180016220 jnz short loc_180016228 ; +0x1f3, 0x180016223 lea esi, [rbp-1] ; +0x1f5, 0x180016225 mov rcx, [rdi+38h] ; +0x1f8, 0x180016228 call cs:?count@CCArray@cocos2d@@QEBAIXZ; cocos2d::CCArray::count(void) ; +0x1fc, 0x18001622c test eax, eax ; +0x202, 0x180016232 jz short loc_180016281 ; +0x204, 0x180016234 mov rcx, [rdi+38h] ; +0x206, 0x180016236 xor edx, edx ; +0x20a, 0x18001623a call cs:?objectAtIndex@CCArray@cocos2d@@QEAAPEAVCCObject@2@I@Z; cocos2d::CCArray::objectAtIndex(uint) ; +0x20c, 0x18001623c cmp [rax+148h], ebx ; +0x212, 0x180016242 jnb short loc_180016281 ; +0x218, 0x180016248 nop word ptr [rax+rax+00h] ; +0x21a, 0x18001624a mov rdx, rax; struct cocos2d::extension::CCTableViewCell * ; +0x220, 0x180016250 lea rcx, [rdi-238h]; this ; +0x223, 0x180016253 call ?_moveCellOutOfSight@CCTableView@extension@cocos2d@@IEAAXPEAVCCTableViewCell@23@@Z; cocos2d::extension::CCTableView::_moveCellOutOfSight(cocos2d::extension::CCTableViewCell *) ; +0x22a, 0x18001625a mov rcx, [rdi+38h] ; +0x22f, 0x18001625f call cs:?count@CCArray@cocos2d@@QEBAIXZ; cocos2d::CCArray::count(void) ; +0x233, 0x180016263 test eax, eax ; +0x239, 0x180016269 jz short loc_180016281 ; +0x23b, 0x18001626b mov rcx, [rdi+38h] ; +0x23d, 0x18001626d xor edx, edx ; +0x241, 0x180016271 call cs:?objectAtIndex@CCArray@cocos2d@@QEAAPEAVCCObject@2@I@Z; cocos2d::CCArray::objectAtIndex(uint) ; +0x243, 0x180016273 cmp [rax+148h], ebx ; +0x249, 0x180016279 jb short loc_180016250 ; +0x24f, 0x18001627f mov rcx, [rdi+38h] ; +0x251, 0x180016281 call cs:?count@CCArray@cocos2d@@QEBAIXZ; cocos2d::CCArray::count(void) ; +0x255, 0x180016285 test eax, eax ; +0x25b, 0x18001628b jz short loc_1800162DA ; +0x25d, 0x18001628d mov rcx, [rdi+38h] ; +0x25f, 0x18001628f call cs:?lastObject@CCArray@cocos2d@@QEAAPEAVCCObject@2@XZ; cocos2d::CCArray::lastObject(void) ; +0x263, 0x180016293 mov ecx, [rax+148h] ; +0x269, 0x180016299 cmp ecx, r14d ; +0x26f, 0x18001629f ja short loc_1800162DA ; +0x272, 0x1800162a2 cmp ecx, esi ; +0x274, 0x1800162a4 jbe short loc_1800162DA ; +0x276, 0x1800162a6 mov rdx, rax; struct cocos2d::extension::CCTableViewCell * ; +0x278, 0x1800162a8 lea rcx, [rdi-238h]; this ; +0x27b, 0x1800162ab call ?_moveCellOutOfSight@CCTableView@extension@cocos2d@@IEAAXPEAVCCTableViewCell@23@@Z; cocos2d::extension::CCTableView::_moveCellOutOfSight(cocos2d::extension::CCTableViewCell *) ; +0x282, 0x1800162b2 mov rcx, [rdi+38h] ; +0x287, 0x1800162b7 call cs:?count@CCArray@cocos2d@@QEBAIXZ; cocos2d::CCArray::count(void) ; +0x28b, 0x1800162bb test eax, eax ; +0x291, 0x1800162c1 jz short loc_1800162DA ; +0x293, 0x1800162c3 mov rcx, [rdi+38h] ; +0x295, 0x1800162c5 call cs:?lastObject@CCArray@cocos2d@@QEAAPEAVCCObject@2@XZ; cocos2d::CCArray::lastObject(void) ; +0x299, 0x1800162c9 mov ecx, [rax+148h] ; +0x29f, 0x1800162cf cmp ecx, r14d ; +0x2a5, 0x1800162d5 jbe short loc_1800162A4 ; +0x2a8, 0x1800162d8 mov r14, [rsp+58h+var_30] ; +0x2aa, 0x1800162da cmp ebx, esi ; +0x2af, 0x1800162df ja short loc_18001633F ; +0x2b1, 0x1800162e1 nop dword ptr [rax+00h] ; +0x2b3, 0x1800162e3 nop word ptr [rax+rax+00000000h] ; +0x2b7, 0x1800162e7 mov rax, [rdi+18h] ; +0x2c0, 0x1800162f0 mov rax, [rax] ; +0x2c4, 0x1800162f4 mov rdx, rax ; +0x2c7, 0x1800162f7 mov rcx, [rax+8] ; +0x2ca, 0x1800162fa cmp byte ptr [rcx+19h], 0 ; +0x2ce, 0x1800162fe jnz short loc_18001631B ; +0x2d2, 0x180016302 cmp [rcx+1Ch], ebx ; +0x2d4, 0x180016304 jnb short loc_18001630F ; +0x2d7, 0x180016307 mov rcx, [rcx+10h] ; +0x2d9, 0x180016309 jmp short loc_180016315 ; +0x2dd, 0x18001630d mov rdx, rcx ; +0x2df, 0x18001630f mov rcx, [rcx] ; +0x2e2, 0x180016312 cmp byte ptr [rcx+19h], 0 ; +0x2e5, 0x180016315 jz short loc_180016304 ; +0x2e9, 0x180016319 cmp byte ptr [rdx+19h], 0 ; +0x2eb, 0x18001631b jnz short loc_18001632B ; +0x2ef, 0x18001631f cmp ebx, [rdx+1Ch] ; +0x2f1, 0x180016321 jb short loc_18001632B ; +0x2f4, 0x180016324 cmp rdx, rax ; +0x2f6, 0x180016326 jnz short loc_180016339 ; +0x2f9, 0x180016329 mov edx, ebx; unsigned int ; +0x2fb, 0x18001632b lea rcx, [rdi-238h]; this ; +0x2fd, 0x18001632d call ?updateCellAtIndex@CCTableView@extension@cocos2d@@QEAAXI@Z; cocos2d::extension::CCTableView::updateCellAtIndex(uint) ; +0x304, 0x180016334 inc ebx ; +0x309, 0x180016339 cmp ebx, esi ; +0x30b, 0x18001633b jbe short loc_1800162F0 ; +0x30d, 0x18001633d mov rsi, [rsp+58h+arg_8] ; +0x30f, 0x18001633f add rsp, 40h ; +0x314, 0x180016344 pop rdi ; +0x318, 0x180016348 pop rbp ; +0x319, 0x180016349 pop rbx ; +0x31a, 0x18001634a retn ; +0x31b, 0x18001634b