{"type": "func", "start": 6442540768, "end": 6442541104, "name": "cocos2d::extension::CCTableView::_updateCellPositions", "pseudocode": "// \n// cocos2d::extension::CCTableView::_updateCellPositions from 0x180015ee0 to 0x180016030 (336 bytes)\n// \n// 7 xrefs:\n// > cocos2d::extension::CCTableView::create @ 0x180014ca6\n// > cocos2d::extension::CCTableView::reloadData @ 0x1800151e4\n// > cocos2d::extension::CCTableView::insertCellAtIndex @ 0x180015537\n// > cocos2d::extension::CCTableView::removeCellAtIndex @ 0x180015773\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x18004a884\n// > <???> @ 0x18004a890\n// \n// This function is hookable on this platform!\n// \n// Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA\n// Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings\n// \n\nvoid __fastcall cocos2d::extension::CCTableView::_updateCellPositions(cocos2d::extension::CCTableView *this)\n{\n  int v2; // eax\n  _QWORD *v3; // rsi\n  __int64 v4; // rbp\n  char *v5; // rdi\n  float v6; // xmm6_4\n  unsigned __int64 v7; // rbx\n  __int64 v8; // rdx\n  unsigned __int64 v9; // rcx\n  size_t v10; // rbx\n  unsigned int v11; // edi\n  __int64 i; // rbx\n  __int64 v13; // rax\n  float v14; // [rsp+50h] [rbp+8h] BYREF\n  float v15; // [rsp+54h] [rbp+Ch]\n  char v16; // [rsp+58h] [rbp+10h] BYREF\n\n  v2 = (*(__int64 (__fastcall **)(_QWORD, cocos2d::extension::CCTableView *))(**((_QWORD **)this + 80) + 32LL))(\n         *((_QWORD *)this + 80),\n         this);\n  v3 = (_QWORD *)((char *)this + 600);\n  v4 = v2;\n  v5 = *((char **)this + 76);\n  v6 = 0.0;\n  v14 = 0.0;\n  v7 = v2 + 1;\n  v8 = *((_QWORD *)this + 75);\n  v9 = (__int64)&v5[-v8] >> 2;\n  if ( v7 >= v9 )\n  {\n    if ( v7 > v9 )\n    {\n      if ( v7 <= (*((_QWORD *)this + 77) - v8) >> 2 )\n      {\n        v10 = 4 * (v7 - v9);\n        memset(v5, 0, v10);\n        *((_QWORD *)this + 76) = &v5[v10];\n      }\n      else\n      {\n        sub_180016A10((char *)this + 600, v7, &v14);\n      }\n    }\n  }\n  else\n  {\n    *((_QWORD *)this + 76) = v8 + 4 * v7;\n  }\n  if ( (int)v4 > 0 )\n  {\n    cocos2d::CCSize::CCSize((cocos2d::CCSize *)&v14);\n    v11 = 0;\n    for ( i = 0; i < v4; ++i )\n    {\n      *(float *)(*v3 + 4 * i) = v6;\n      v13 = (*(__int64 (__fastcall **)(_QWORD, char *, cocos2d::extension::CCTableView *, _QWORD))(**((_QWORD **)this + 80)\n                                                                                                 + 8LL))(\n              *((_QWORD *)this + 80),\n              &v16,\n              this,\n              v11);\n      cocos2d::CCSize::operator=(&v14, v13);\n      if ( *((_DWORD *)this + 108) )\n        v6 = v6 + v15;\n      else\n        v6 = v6 + v14;\n      ++v11;\n    }\n    *(float *)(*v3 + 4 * v4) = v6;\n  }\n}", "assembly": "; \n; cocos2d::extension::CCTableView::_updateCellPositions from 0x180015ee0 to 0x180016030 (336 bytes)\n; \n; 7 xrefs:\n; > cocos2d::extension::CCTableView::create @ 0x180014ca6\n; > cocos2d::extension::CCTableView::reloadData @ 0x1800151e4\n; > cocos2d::extension::CCTableView::insertCellAtIndex @ 0x180015537\n; > cocos2d::extension::CCTableView::removeCellAtIndex @ 0x180015773\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x18004a884\n; > <???> @ 0x18004a890\n; \n; This function is hookable on this platform!\n; \n; Using BromaIDA 8.0.0 @ https:;github.com/Stazzical/BromaIDA\n; Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https:;github.com/geode-sdk/bindings\n; \n\nmov     [rsp+arg_10], rbx                                              ; +0x0, 0x180015ee0\nmov     [rsp+arg_18], rbp                                              ; +0x5, 0x180015ee5\npush    rsi                                                            ; +0xa, 0x180015eea\npush    rdi                                                            ; +0xb, 0x180015eeb\npush    r14                                                            ; +0xc, 0x180015eec\nsub     rsp, 30h                                                       ; +0xe, 0x180015eee\nmov     r14, rcx                                                       ; +0x12, 0x180015ef2\nmovaps  [rsp+48h+var_28], xmm6                                         ; +0x15, 0x180015ef5\nmov     rcx, [rcx+280h]                                                ; +0x1a, 0x180015efa\nmov     rdx, r14                                                       ; +0x21, 0x180015f01\nmov     rax, [rcx]                                                     ; +0x24, 0x180015f04\ncall    qword ptr [rax+20h]                                            ; +0x27, 0x180015f07\nlea     rsi, [r14+258h]                                                ; +0x2a, 0x180015f0a\nmovsxd  rbp, eax                                                       ; +0x31, 0x180015f11\nmov     rdi, [rsi+8]                                                   ; +0x34, 0x180015f14\nxorps   xmm6, xmm6                                                     ; +0x38, 0x180015f18\nmov     rcx, rdi                                                       ; +0x3b, 0x180015f1b\nmovss   [rsp+48h+arg_0], xmm6                                          ; +0x3e, 0x180015f1e\nlea     edx, [rbp+1]                                                   ; +0x44, 0x180015f24\nmovsxd  rbx, edx                                                       ; +0x47, 0x180015f27\nmov     rdx, [rsi]                                                     ; +0x4a, 0x180015f2a\nsub     rcx, rdx                                                       ; +0x4d, 0x180015f2d\nsar     rcx, 2                                                         ; +0x50, 0x180015f30\ncmp     rbx, rcx                                                       ; +0x54, 0x180015f34\njnb     short loc_180015F43                                            ; +0x57, 0x180015f37\nlea     rax, [rdx+rbx*4]                                               ; +0x59, 0x180015f39\nmov     [rsi+8], rax                                                   ; +0x5d, 0x180015f3d\njmp     short loc_180015FA8                                            ; +0x61, 0x180015f41\njbe     short loc_180015FA8                                            ; +0x63, 0x180015f43\nmov     rax, [rsi+10h]                                                 ; +0x65, 0x180015f45\nsub     rax, rdx                                                       ; +0x69, 0x180015f49\nsar     rax, 2                                                         ; +0x6c, 0x180015f4c\ncmp     rbx, rax                                                       ; +0x70, 0x180015f50\njbe     short loc_180015F67                                            ; +0x73, 0x180015f53\nlea     r8, [rsp+48h+arg_0]                                            ; +0x75, 0x180015f55\nmov     rdx, rbx                                                       ; +0x7a, 0x180015f5a\nmov     rcx, rsi                                                       ; +0x7d, 0x180015f5d\ncall    sub_180016A10                                                  ; +0x80, 0x180015f60\njmp     short loc_180015FA8                                            ; +0x85, 0x180015f65\nsub     rbx, rcx                                                       ; +0x87, 0x180015f67\nmovd    eax, xmm6                                                      ; +0x8a, 0x180015f6a\nmovd    ecx, xmm6                                                      ; +0x8e, 0x180015f6e\ncmp     ecx, eax                                                       ; +0x92, 0x180015f72\njnz     short loc_180015F83                                            ; +0x94, 0x180015f74\nlea     rbx, ds:0[rbx*4]                                               ; +0x96, 0x180015f76\nmov     r8, rbx                                                        ; +0x9e, 0x180015f7e\njmp     short loc_180015F97                                            ; +0xa1, 0x180015f81\ntest    rbx, rbx                                                       ; +0xa3, 0x180015f83\njz      short loc_180015FA4                                            ; +0xa6, 0x180015f86\nlea     rbx, ds:0[rbx*4]                                               ; +0xa8, 0x180015f88\nmov     r8, rbx                                                        ; +0xb0, 0x180015f90\nand     r8, 0FFFFFFFFFFFFFFFCh; Size                                   ; +0xb3, 0x180015f93\nxor     edx, edx; Val                                                  ; +0xb7, 0x180015f97\nmov     rcx, rdi; void *                                               ; +0xb9, 0x180015f99\ncall    memset                                                         ; +0xbc, 0x180015f9c\nadd     rdi, rbx                                                       ; +0xc1, 0x180015fa1\nmov     [rsi+8], rdi                                                   ; +0xc4, 0x180015fa4\ntest    ebp, ebp                                                       ; +0xc8, 0x180015fa8\njle     short loc_180016018                                            ; +0xca, 0x180015faa\nlea     rcx, [rsp+48h+arg_0]                                           ; +0xcc, 0x180015fac\ncall    cs:??0CCSize@cocos2d@@QEAA@XZ; cocos2d::CCSize::CCSize(void)   ; +0xd1, 0x180015fb1\nxor     edi, edi                                                       ; +0xd7, 0x180015fb7\ntest    rbp, rbp                                                       ; +0xd9, 0x180015fb9\njle     short loc_180016010                                            ; +0xdc, 0x180015fbc\nmov     ebx, edi                                                       ; +0xde, 0x180015fbe\nmov     rax, [rsi]                                                     ; +0xe0, 0x180015fc0\nlea     rdx, [rsp+48h+arg_8]                                           ; +0xe3, 0x180015fc3\nmov     r9d, edi                                                       ; +0xe8, 0x180015fc8\nmov     r8, r14                                                        ; +0xeb, 0x180015fcb\nmovss   dword ptr [rax+rbx*4], xmm6                                    ; +0xee, 0x180015fce\nmov     rcx, [r14+280h]                                                ; +0xf3, 0x180015fd3\nmov     rax, [rcx]                                                     ; +0xfa, 0x180015fda\ncall    qword ptr [rax+8]                                              ; +0xfd, 0x180015fdd\nmov     rdx, rax                                                       ; +0x100, 0x180015fe0\nlea     rcx, [rsp+48h+arg_0]                                           ; +0x103, 0x180015fe3\ncall    cs:??4CCSize@cocos2d@@QEAAAEAV01@AEBV01@@Z; cocos2d::CCSize::operator=(cocos2d::CCSize const &) ; +0x108, 0x180015fe8\ncmp     dword ptr [r14+1B0h], 0                                        ; +0x10e, 0x180015fee\njz      short loc_180016000                                            ; +0x116, 0x180015ff6\naddss   xmm6, [rsp+48h+arg_4]                                          ; +0x118, 0x180015ff8\njmp     short loc_180016006                                            ; +0x11e, 0x180015ffe\naddss   xmm6, [rsp+48h+arg_0]                                          ; +0x120, 0x180016000\ninc     edi                                                            ; +0x126, 0x180016006\ninc     rbx                                                            ; +0x128, 0x180016008\ncmp     rbx, rbp                                                       ; +0x12b, 0x18001600b\njl      short loc_180015FC0                                            ; +0x12e, 0x18001600e\nmov     rax, [rsi]                                                     ; +0x130, 0x180016010\nmovss   dword ptr [rax+rbp*4], xmm6                                    ; +0x133, 0x180016013\nmov     rbx, [rsp+48h+arg_10]                                          ; +0x138, 0x180016018\nmov     rbp, [rsp+48h+arg_18]                                          ; +0x13d, 0x18001601d\nmovaps  xmm6, [rsp+48h+var_28]                                         ; +0x142, 0x180016022\nadd     rsp, 30h                                                       ; +0x147, 0x180016027\npop     r14                                                            ; +0x14b, 0x18001602b\npop     rdi                                                            ; +0x14d, 0x18001602d\npop     rsi                                                            ; +0x14e, 0x18001602e\nretn                                                                   ; +0x14f, 0x18001602f", "xrefs": ["cocos2d::extension::CCTableView::create @ 0x180014ca6", "cocos2d::extension::CCTableView::reloadData @ 0x1800151e4", "cocos2d::extension::CCTableView::insertCellAtIndex @ 0x180015537", "cocos2d::extension::CCTableView::removeCellAtIndex @ 0x180015773", "<???> @ 0x18002fdf8", "<???> @ 0x18004a884", "<???> @ 0x18004a890"], "is_objc": false, "is_arm32": false, "is_arm64": false, "bida_info": "8.0.0 @ https://github.com/Stazzical/BromaIDA", "bindings_info": "commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings"}