; ; cocos2d::extension::CCTableView::removeCellAtIndex from 0x180015560 to 0x1800157ca (618 bytes) ; ; 4 xrefs: ; > @ 0x18002ee4c ; > @ 0x18002eec4 ; > @ 0x18002fdf8 ; > @ 0x18004a7c4 ; ; 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 ; cmp edx, 0FFFFFFFFh ; +0x0, 0x180015560 jz locret_1800157C9 ; +0x3, 0x180015563 push rbx ; +0x9, 0x180015569 push rsi ; +0xa, 0x18001556a sub rsp, 58h ; +0xb, 0x18001556b mov rsi, rcx ; +0xf, 0x18001556f mov ebx, edx ; +0x12, 0x180015572 mov rcx, [rcx+280h] ; +0x14, 0x180015574 mov rdx, rsi ; +0x1b, 0x18001557b mov rax, [rcx] ; +0x1e, 0x18001557e call qword ptr [rax+20h] ; +0x21, 0x180015581 test eax, eax ; +0x24, 0x180015584 jz loc_1800157C3 ; +0x26, 0x180015586 dec eax ; +0x2c, 0x18001558c cmp ebx, eax ; +0x2e, 0x18001558e ja loc_1800157C3 ; +0x30, 0x180015590 mov rax, [rsi+250h] ; +0x36, 0x180015596 mov rax, [rax] ; +0x3d, 0x18001559d mov rdx, rax ; +0x40, 0x1800155a0 mov rcx, [rax+8] ; +0x43, 0x1800155a3 cmp byte ptr [rcx+19h], 0 ; +0x47, 0x1800155a7 jnz short loc_1800155C7 ; +0x4b, 0x1800155ab nop dword ptr [rax] ; +0x4d, 0x1800155ad cmp [rcx+1Ch], ebx ; +0x50, 0x1800155b0 jnb short loc_1800155BB ; +0x53, 0x1800155b3 mov rcx, [rcx+10h] ; +0x55, 0x1800155b5 jmp short loc_1800155C1 ; +0x59, 0x1800155b9 mov rdx, rcx ; +0x5b, 0x1800155bb mov rcx, [rcx] ; +0x5e, 0x1800155be cmp byte ptr [rcx+19h], 0 ; +0x61, 0x1800155c1 jz short loc_1800155B0 ; +0x65, 0x1800155c5 cmp byte ptr [rdx+19h], 0 ; +0x67, 0x1800155c7 jnz loc_1800157C3 ; +0x6b, 0x1800155cb cmp ebx, [rdx+1Ch] ; +0x71, 0x1800155d1 jb loc_1800157C3 ; +0x74, 0x1800155d4 cmp rdx, rax ; +0x7a, 0x1800155da jz loc_1800157C3 ; +0x7d, 0x1800155dd mov rcx, [rsi+270h]; this ; +0x83, 0x1800155e3 mov edx, ebx; unsigned int ; +0x8a, 0x1800155ea call ?objectWithObjectID@CCArrayForObjectSorting@extension@cocos2d@@QEAAPEAVCCSortableObject@23@I@Z; cocos2d::extension::CCArrayForObjectSorting::objectWithObjectID(uint) ; +0x8c, 0x1800155ec test rax, rax ; +0x91, 0x1800155f1 jz loc_1800157C3 ; +0x94, 0x1800155f4 mov [rsp+68h+var_20], r14 ; +0x9a, 0x1800155fa lea r14, [rax-140h] ; +0x9f, 0x1800155ff test r14, r14 ; +0xa6, 0x180015606 jz loc_1800157BE ; +0xa9, 0x180015609 mov [rsp+68h+arg_0], rbp ; +0xaf, 0x18001560f lea rcx, [r14+140h] ; +0xb4, 0x180015614 mov rax, [rcx] ; +0xbb, 0x18001561b mov [rsp+68h+arg_8], rdi ; +0xbe, 0x18001561e mov rdi, [rsi+270h] ; +0xc3, 0x180015623 mov [rsp+68h+arg_18], r12 ; +0xca, 0x18001562a xor r12d, r12d ; +0xd2, 0x180015632 mov [rsp+68h+var_28], r15 ; +0xd5, 0x180015635 xor r15d, r15d ; +0xda, 0x18001563a call qword ptr [rax+10h] ; +0xdd, 0x18001563d mov rdx, r14 ; +0xe0, 0x180015640 mov ebp, eax ; +0xe3, 0x180015643 test rdi, rdi ; +0xe5, 0x180015645 jz short loc_1800156C9 ; +0xe8, 0x180015648 mov rdi, [rdi+38h] ; +0xea, 0x18001564a mov eax, [rdi] ; +0xee, 0x18001564e test eax, eax ; +0xf0, 0x180015650 jz short loc_1800156C9 ; +0xf2, 0x180015652 mov rdi, [rdi+10h] ; +0xf4, 0x180015654 mov [rsp+68h+var_18], r13 ; +0xf8, 0x180015658 lea r13, [rax-1] ; +0xfd, 0x18001565d lea r13, [rdi+r13*8] ; +0x101, 0x180015661 cmp rdi, r13 ; +0x105, 0x180015665 ja short loc_1800156C4 ; +0x108, 0x180015668 mov [rsp+68h+arg_10], r14 ; +0x10a, 0x18001566a xor r14d, r14d ; +0x112, 0x180015672 mov rcx, [rdi] ; +0x115, 0x180015675 test rcx, rcx ; +0x118, 0x180015678 jz short loc_1800156BC ; +0x11b, 0x18001567b lea r9, ??_R0?AVCCSortableObject@extension@cocos2d@@@8; cocos2d::extension::CCSortableObject `RTTI Type Descriptor' ; +0x11d, 0x18001567d mov [rsp+68h+var_48], r14d ; +0x124, 0x180015684 lea r8, ??_R0?AVCCObject@cocos2d@@@8; cocos2d::CCObject `RTTI Type Descriptor' ; +0x129, 0x180015689 xor edx, edx ; +0x130, 0x180015690 call __RTDynamicCast ; +0x132, 0x180015692 mov rcx, rax ; +0x137, 0x180015697 mov rdx, [rax] ; +0x13a, 0x18001569a call qword ptr [rdx+10h] ; +0x13d, 0x18001569d cmp ebp, eax ; +0x140, 0x1800156a0 jz short loc_1800156BC ; +0x142, 0x1800156a2 cmp ebp, r12d ; +0x144, 0x1800156a4 jb short loc_1800156AD ; +0x147, 0x1800156a7 cmp ebp, eax ; +0x149, 0x1800156a9 jb short loc_1800156BC ; +0x14b, 0x1800156ab inc r15d ; +0x14d, 0x1800156ad add rdi, 8 ; +0x150, 0x1800156b0 mov r12d, eax ; +0x154, 0x1800156b4 cmp rdi, r13 ; +0x157, 0x1800156b7 jbe short loc_180015675 ; +0x15a, 0x1800156ba mov rdx, [rsp+68h+arg_10]; struct cocos2d::extension::CCTableViewCell * ; +0x15c, 0x1800156bc mov r13, [rsp+68h+var_18] ; +0x164, 0x1800156c4 mov rcx, rsi; this ; +0x169, 0x1800156c9 call ?_moveCellOutOfSight@CCTableView@extension@cocos2d@@IEAAXPEAVCCTableViewCell@23@@Z; cocos2d::extension::CCTableView::_moveCellOutOfSight(cocos2d::extension::CCTableViewCell *) ; +0x16c, 0x1800156cc mov r10, [rsi+250h] ; +0x171, 0x1800156d1 mov r12, [rsp+68h+arg_18] ; +0x178, 0x1800156d8 mov rdi, [rsp+68h+arg_8] ; +0x180, 0x1800156e0 mov rbp, [rsp+68h+arg_0] ; +0x185, 0x1800156e5 mov r9, [r10] ; +0x18a, 0x1800156ea mov rdx, r9 ; +0x18d, 0x1800156ed mov rcx, [r9+8] ; +0x190, 0x1800156f0 mov rax, rcx ; +0x194, 0x1800156f4 cmp byte ptr [rcx+19h], 0 ; +0x197, 0x1800156f7 jnz short loc_180015728 ; +0x19b, 0x1800156fb nop dword ptr [rax] ; +0x19d, 0x1800156fd mov r8d, [rax+1Ch] ; +0x1a0, 0x180015700 cmp r8d, ebx ; +0x1a4, 0x180015704 jnb short loc_18001570F ; +0x1a7, 0x180015707 mov rax, [rax+10h] ; +0x1a9, 0x180015709 jmp short loc_180015722 ; +0x1ad, 0x18001570d cmp byte ptr [rdx+19h], 0 ; +0x1af, 0x18001570f jz short loc_18001571C ; +0x1b3, 0x180015713 cmp ebx, r8d ; +0x1b5, 0x180015715 cmovb rdx, rax ; +0x1b8, 0x180015718 mov r9, rax ; +0x1bc, 0x18001571c mov rax, [rax] ; +0x1bf, 0x18001571f cmp byte ptr [rax+19h], 0 ; +0x1c2, 0x180015722 jz short loc_180015700 ; +0x1c6, 0x180015726 cmp byte ptr [rdx+19h], 0 ; +0x1c8, 0x180015728 jnz short loc_180015731 ; +0x1cc, 0x18001572c mov rcx, [rdx] ; +0x1ce, 0x18001572e cmp byte ptr [rcx+19h], 0 ; +0x1d1, 0x180015731 jnz short loc_18001574E ; +0x1d5, 0x180015735 cmp ebx, [rcx+1Ch] ; +0x1d7, 0x180015737 jnb short loc_180015744 ; +0x1da, 0x18001573a mov rdx, rcx ; +0x1dc, 0x18001573c mov rcx, [rcx] ; +0x1df, 0x18001573f jmp short loc_180015748 ; +0x1e2, 0x180015742 mov rcx, [rcx+10h] ; +0x1e4, 0x180015744 cmp byte ptr [rcx+19h], 0 ; +0x1e8, 0x180015748 jz short loc_180015737 ; +0x1ec, 0x18001574c mov qword ptr [rsp+68h+var_38+8], rdx ; +0x1ee, 0x18001574e mov rcx, r10 ; +0x1f3, 0x180015753 mov qword ptr [rsp+68h+var_38], r9 ; +0x1f6, 0x180015756 lea rdx, [rsp+68h+var_38] ; +0x1fb, 0x18001575b movaps xmm0, [rsp+68h+var_38] ; +0x200, 0x180015760 movdqa [rsp+68h+var_38], xmm0 ; +0x205, 0x180015765 call sub_180016820 ; +0x20b, 0x18001576b mov rcx, rsi; this ; +0x210, 0x180015770 call ?_updateCellPositions@CCTableView@extension@cocos2d@@IEAAXXZ; cocos2d::extension::CCTableView::_updateCellPositions(void) ; +0x213, 0x180015773 mov rcx, [rsi+270h] ; +0x218, 0x180015778 call cs:?count@CCArray@cocos2d@@QEBAIXZ; cocos2d::CCArray::count(void) ; +0x21f, 0x18001577f lea ebx, [rax-1] ; +0x225, 0x180015785 cmp ebx, r15d ; +0x228, 0x180015788 jbe short loc_1800157B9 ; +0x22b, 0x18001578b nop dword ptr [rax] ; +0x22d, 0x18001578d mov rcx, [rsi+270h] ; +0x230, 0x180015790 mov edx, ebx ; +0x237, 0x180015797 call cs:?objectAtIndex@CCArray@cocos2d@@QEAAPEAVCCObject@2@I@Z; cocos2d::CCArray::objectAtIndex(uint) ; +0x239, 0x180015799 mov r8, rax; struct cocos2d::extension::CCTableViewCell * ; +0x23f, 0x18001579f mov rcx, rsi; this ; +0x242, 0x1800157a2 mov edx, [rax+148h] ; +0x245, 0x1800157a5 dec edx; unsigned int ; +0x24b, 0x1800157ab call ?_setIndexForCell@CCTableView@extension@cocos2d@@IEAAXIPEAVCCTableViewCell@23@@Z; cocos2d::extension::CCTableView::_setIndexForCell(uint,cocos2d::extension::CCTableViewCell *) ; +0x24d, 0x1800157ad dec ebx ; +0x252, 0x1800157b2 cmp ebx, r15d ; +0x254, 0x1800157b4 ja short loc_180015790 ; +0x257, 0x1800157b7 mov r15, [rsp+68h+var_28] ; +0x259, 0x1800157b9 mov r14, [rsp+68h+var_20] ; +0x25e, 0x1800157be add rsp, 58h ; +0x263, 0x1800157c3 pop rsi ; +0x267, 0x1800157c7 pop rbx ; +0x268, 0x1800157c8 retn ; +0x269, 0x1800157c9