; ; cocos2d::extension::CCTableView::_addCellIfNecessary from 0x180015840 to 0x180015971 (305 bytes) ; ; 4 xrefs: ; > cocos2d::extension::CCTableView::updateCellAtIndex @ 0x18001536d ; > cocos2d::extension::CCTableView::insertCellAtIndex @ 0x18001552f ; > @ 0x18002fdf8 ; > @ 0x18004a830 ; ; 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_0], rbx ; +0x0, 0x180015840 mov [rsp+arg_8], rbp ; +0x5, 0x180015845 mov [rsp+arg_10], rsi ; +0xa, 0x18001584a push rdi ; +0xf, 0x18001584f sub rsp, 50h ; +0x10, 0x180015850 mov rdi, rdx ; +0x14, 0x180015854 mov rsi, rcx ; +0x17, 0x180015857 mov rbx, [rcx+1C0h] ; +0x1a, 0x18001585a mov rax, [rdx] ; +0x21, 0x180015861 mov rcx, rdx ; +0x24, 0x180015864 call qword ptr [rax+1E8h] ; +0x27, 0x180015867 cmp rax, rbx ; +0x2d, 0x18001586d jz short loc_180015885 ; +0x30, 0x180015870 mov rcx, [rsi+1C0h] ; +0x32, 0x180015872 mov rax, [rcx] ; +0x39, 0x180015879 mov rdx, rdi ; +0x3c, 0x18001587c call qword ptr [rax+1C0h] ; +0x3f, 0x18001587f lea rdx, [rdi+140h] ; +0x45, 0x180015885 xor ebp, ebp ; +0x4c, 0x18001588c test rdi, rdi ; +0x4e, 0x18001588e cmovz rdx, rbp; struct cocos2d::extension::CCSortableObject * ; +0x51, 0x180015891 mov rcx, [rsi+270h]; this ; +0x55, 0x180015895 call ?insertSortedObject@CCArrayForObjectSorting@extension@cocos2d@@QEAAXPEAVCCSortableObject@23@@Z; cocos2d::extension::CCArrayForObjectSorting::insertSortedObject(cocos2d::extension::CCSortableObject *) ; +0x5c, 0x18001589c mov ebx, [rdi+148h] ; +0x61, 0x1800158a1 mov rdi, [rsi+250h] ; +0x67, 0x1800158a7 mov rsi, [rdi] ; +0x6e, 0x1800158ae mov rax, [rsi+8] ; +0x71, 0x1800158b1 mov qword ptr [rsp+58h+var_28], rax ; +0x75, 0x1800158b5 mov dword ptr [rsp+58h+var_28+8], ebp ; +0x7a, 0x1800158ba mov rcx, rsi ; +0x7e, 0x1800158be cmp [rax+19h], bpl ; +0x81, 0x1800158c1 jnz short loc_1800158F8 ; +0x85, 0x1800158c5 nop word ptr [rax+rax+00000000h] ; +0x87, 0x1800158c7 mov qword ptr [rsp+58h+var_28], rax ; +0x90, 0x1800158d0 cmp [rax+1Ch], ebx ; +0x95, 0x1800158d5 jnb short loc_1800158E4 ; +0x98, 0x1800158d8 mov dword ptr [rsp+58h+var_28+8], ebp ; +0x9a, 0x1800158da mov rax, [rax+10h] ; +0x9e, 0x1800158de jmp short loc_1800158F2 ; +0xa2, 0x1800158e2 mov dword ptr [rsp+58h+var_28+8], 1 ; +0xa4, 0x1800158e4 mov rcx, rax ; +0xac, 0x1800158ec mov rax, [rax] ; +0xaf, 0x1800158ef cmp [rax+19h], bpl ; +0xb2, 0x1800158f2 jz short loc_1800158D0 ; +0xb6, 0x1800158f6 cmp [rcx+19h], bpl ; +0xb8, 0x1800158f8 jnz short loc_180015903 ; +0xbc, 0x1800158fc cmp ebx, [rcx+1Ch] ; +0xbe, 0x1800158fe jnb short loc_180015956 ; +0xc1, 0x180015901 mov rax, 7FFFFFFFFFFFFFFh ; +0xc3, 0x180015903 cmp [rdi+8], rax ; +0xcd, 0x18001590d jz short loc_18001596B ; +0xd1, 0x180015911 mov qword ptr [rsp+58h+var_38], rdi ; +0xd3, 0x180015913 mov qword ptr [rsp+58h+var_38+8], rbp ; +0xd8, 0x180015918 mov ecx, 20h ; ' '; Size ; +0xdd, 0x18001591d call ??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0xe2, 0x180015922 nop ; +0xe7, 0x180015927 mov [rax+1Ch], ebx ; +0xe8, 0x180015928 mov [rax], rsi ; +0xeb, 0x18001592b mov [rax+8], rsi ; +0xee, 0x18001592e mov [rax+10h], rsi ; +0xf2, 0x180015932 mov word ptr [rax+18h], 0 ; +0xf6, 0x180015936 movups xmm0, [rsp+58h+var_28] ; +0xfc, 0x18001593c movaps [rsp+58h+var_38], xmm0 ; +0x101, 0x180015941 mov r8, rax ; +0x106, 0x180015946 lea rdx, [rsp+58h+var_38] ; +0x109, 0x180015949 mov rcx, rdi ; +0x10e, 0x18001594e call sub_180004DA0 ; +0x111, 0x180015951 mov rbx, [rsp+58h+arg_0] ; +0x116, 0x180015956 mov rbp, [rsp+58h+arg_8] ; +0x11b, 0x18001595b mov rsi, [rsp+58h+arg_10] ; +0x120, 0x180015960 add rsp, 50h ; +0x125, 0x180015965 pop rdi ; +0x129, 0x180015969 retn ; +0x12a, 0x18001596a call sub_1800054D0 ; +0x12b, 0x18001596b db 0CCh ; +0x130, 0x180015970