; ; cocos2d::extension::CCArrayForObjectSorting::setObjectID_ofSortedObject from 0x180014790 to 0x18001490f (383 bytes) ; ; 4 xrefs: ; > @ 0x18002ec1c ; > @ 0x18002ec2c ; > @ 0x18002fdf8 ; > @ 0x18004a680 ; ; 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, 0x180014790 mov [rsp+arg_10], rbp ; +0x5, 0x180014795 push rsi ; +0xa, 0x18001479a push rdi ; +0xb, 0x18001479b push r12 ; +0xc, 0x18001479c push r13 ; +0xe, 0x18001479e push r14 ; +0x10, 0x1800147a0 sub rsp, 30h ; +0x12, 0x1800147a2 xor edi, edi ; +0x16, 0x1800147a6 mov [rsp+58h+arg_0], r15 ; +0x18, 0x1800147a8 mov r12, r8 ; +0x1d, 0x1800147ad mov r13d, edx ; +0x20, 0x1800147b0 mov r14, rcx ; +0x23, 0x1800147b3 test r8, r8 ; +0x26, 0x1800147b6 jz short loc_180014831 ; +0x29, 0x1800147b9 mov rax, [r8] ; +0x2b, 0x1800147bb mov rcx, r8 ; +0x2e, 0x1800147be xor ebp, ebp ; +0x31, 0x1800147c1 call qword ptr [rax+10h] ; +0x33, 0x1800147c3 mov esi, eax ; +0x36, 0x1800147c6 test r14, r14 ; +0x38, 0x1800147c8 jz short loc_180014836 ; +0x3b, 0x1800147cb mov rbx, [r14+38h] ; +0x3d, 0x1800147cd mov eax, [rbx] ; +0x41, 0x1800147d1 test eax, eax ; +0x43, 0x1800147d3 jz short loc_180014836 ; +0x45, 0x1800147d5 mov rbx, [rbx+10h] ; +0x47, 0x1800147d7 lea r15, [rax-1] ; +0x4b, 0x1800147db lea r15, [rbx+r15*8] ; +0x4f, 0x1800147df cmp rbx, r15 ; +0x53, 0x1800147e3 ja short loc_180014836 ; +0x56, 0x1800147e6 mov rcx, [rbx] ; +0x58, 0x1800147e8 test rcx, rcx ; +0x5b, 0x1800147eb jz short loc_180014836 ; +0x5e, 0x1800147ee lea r9, ??_R0?AVCCSortableObject@extension@cocos2d@@@8; cocos2d::extension::CCSortableObject `RTTI Type Descriptor' ; +0x60, 0x1800147f0 mov [rsp+58h+var_38], 0 ; +0x67, 0x1800147f7 lea r8, ??_R0?AVCCObject@cocos2d@@@8; cocos2d::CCObject `RTTI Type Descriptor' ; +0x6f, 0x1800147ff xor edx, edx ; +0x76, 0x180014806 call __RTDynamicCast ; +0x78, 0x180014808 mov rcx, rax ; +0x7d, 0x18001480d mov rdx, [rax] ; +0x80, 0x180014810 call qword ptr [rdx+10h] ; +0x83, 0x180014813 cmp esi, eax ; +0x86, 0x180014816 jz short loc_180014836 ; +0x88, 0x180014818 cmp esi, ebp ; +0x8a, 0x18001481a jb short loc_180014822 ; +0x8c, 0x18001481c cmp esi, eax ; +0x8e, 0x18001481e jb short loc_180014836 ; +0x90, 0x180014820 inc edi ; +0x92, 0x180014822 add rbx, 8 ; +0x94, 0x180014824 mov ebp, eax ; +0x98, 0x180014828 cmp rbx, r15 ; +0x9a, 0x18001482a jbe short loc_1800147E8 ; +0x9d, 0x18001482d jmp short loc_180014836 ; +0x9f, 0x18001482f mov edi, 0FFFFFFFFh ; +0xa1, 0x180014831 mov rcx, r14 ; +0xa6, 0x180014836 call cs:?count@CCArray@cocos2d@@QEBAIXZ; cocos2d::CCArray::count(void) ; +0xa9, 0x180014839 mov r15, [rsp+58h+arg_0] ; +0xaf, 0x18001483f cmp edi, eax ; +0xb4, 0x180014844 jnb loc_1800148F8 ; +0xb6, 0x180014846 cmp edi, 0FFFFFFFFh ; +0xbc, 0x18001484c jz loc_1800148F8 ; +0xbf, 0x18001484f mov edx, edi ; +0xc5, 0x180014855 mov rcx, r14 ; +0xc7, 0x180014857 call cs:?objectAtIndex@CCArray@cocos2d@@QEAAPEAVCCObject@2@I@Z; cocos2d::CCArray::objectAtIndex(uint) ; +0xca, 0x18001485a lea r9, ??_R0?AVCCSortableObject@extension@cocos2d@@@8; cocos2d::extension::CCSortableObject `RTTI Type Descriptor' ; +0xd0, 0x180014860 mov [rsp+58h+var_38], 0 ; +0xd7, 0x180014867 mov rcx, rax ; +0xdf, 0x18001486f lea r8, ??_R0?AVCCObject@cocos2d@@@8; cocos2d::CCObject `RTTI Type Descriptor' ; +0xe2, 0x180014872 xor edx, edx ; +0xe9, 0x180014879 call __RTDynamicCast ; +0xeb, 0x18001487b lea r9, ??_R0?AVCCObject@cocos2d@@@8; cocos2d::CCObject `RTTI Type Descriptor' ; +0xf0, 0x180014880 mov [rsp+58h+var_38], 0 ; +0xf7, 0x180014887 lea r8, ??_R0?AVCCSortableObject@extension@cocos2d@@@8; cocos2d::extension::CCSortableObject `RTTI Type Descriptor' ; +0xff, 0x18001488f xor edx, edx ; +0x106, 0x180014896 mov rcx, rax ; +0x108, 0x180014898 mov rsi, rax ; +0x10b, 0x18001489b call __RTDynamicCast ; +0x10e, 0x18001489e mov rcx, rax ; +0x113, 0x1800148a3 mov rbp, rax ; +0x116, 0x1800148a6 call cs:?retain@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::retain(void) ; +0x119, 0x1800148a9 mov r8, [rsi] ; +0x11f, 0x1800148af mov rcx, rsi ; +0x122, 0x1800148b2 call qword ptr [r8+10h] ; +0x125, 0x1800148b5 mov r8, [r12] ; +0x129, 0x1800148b9 mov rcx, r12 ; +0x12d, 0x1800148bd mov ebx, eax ; +0x130, 0x1800148c0 call qword ptr [r8+10h] ; +0x132, 0x1800148c2 cmp ebx, eax ; +0x136, 0x1800148c6 jnz short loc_1800148EF ; +0x138, 0x1800148c8 mov r8b, 1 ; +0x13a, 0x1800148ca mov edx, edi ; +0x13d, 0x1800148cd mov rcx, r14 ; +0x13f, 0x1800148cf call cs:?removeObjectAtIndex@CCArray@cocos2d@@QEAAXI_N@Z; cocos2d::CCArray::removeObjectAtIndex(uint,bool) ; +0x142, 0x1800148d2 mov rax, [rsi] ; +0x148, 0x1800148d8 mov edx, r13d ; +0x14b, 0x1800148db mov rcx, rsi ; +0x14e, 0x1800148de call qword ptr [rax+8] ; +0x151, 0x1800148e1 mov rdx, rsi; struct cocos2d::extension::CCSortableObject * ; +0x154, 0x1800148e4 mov rcx, r14; this ; +0x157, 0x1800148e7 call ?insertSortedObject@CCArrayForObjectSorting@extension@cocos2d@@QEAAXPEAVCCSortableObject@23@@Z; cocos2d::extension::CCArrayForObjectSorting::insertSortedObject(cocos2d::extension::CCSortableObject *) ; +0x15a, 0x1800148ea mov rcx, rbp ; +0x15f, 0x1800148ef call cs:?release@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::release(void) ; +0x162, 0x1800148f2 mov rbx, [rsp+58h+arg_8] ; +0x168, 0x1800148f8 mov rbp, [rsp+58h+arg_10] ; +0x16d, 0x1800148fd add rsp, 30h ; +0x172, 0x180014902 pop r14 ; +0x176, 0x180014906 pop r13 ; +0x178, 0x180014908 pop r12 ; +0x17a, 0x18001490a pop rdi ; +0x17c, 0x18001490c pop rsi ; +0x17d, 0x18001490d retn ; +0x17e, 0x18001490e