{"type": "func", "start": 379356, "end": 379432, "name": "sub_5C9DC", "pseudocode": "// \n// sub_5C9DC from 0x5c9dc to 0x5ca28 (76 bytes)\n// \n// 3 xrefs:\n// > sub_93B20 @ 0x94304\n// > sub_E47E0 @ 0xe48b8\n// > sub_E4ED0 @ 0xe4f9c\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\n_QWORD *__fastcall sub_5C9DC(__int64 a1, __int64 a2, __int64 a3)\n{\n  __int64 v3; // x8\n\n  if ( (a2 & 0x80000000) != 0 || !a3 || *(_DWORD *)a1 <= (int)a2 )\n    return &off_18 + 7;\n  *(_QWORD *)(*(_QWORD *)(a1 + 24) + 8LL * (int)a2) = a3;\n  v3 = *(_QWORD *)(a1 + 24);\n  *(_QWORD *)(*(_QWORD *)(v3 + 8LL * (int)a2) + 16LL) = a1;\n  return (*(_QWORD *(__fastcall **)(_QWORD *__return_ptr, _QWORD, __int64, _QWORD, _QWORD))(**(_QWORD **)(v3 + 8LL * (int)a2)\n                                                                                          + 24LL))(\n           *(_QWORD **)(v3 + 8LL * (int)a2),\n           *(_QWORD *)(v3 + 8LL * (int)a2),\n           a2,\n           *(_QWORD *)(a1 + 8),\n           *(_QWORD *)(a1 + 16));\n}", "assembly": "; \n; sub_5C9DC from 0x5c9dc to 0x5ca28 (76 bytes)\n; \n; 3 xrefs:\n; > sub_93B20 @ 0x94304\n; > sub_E47E0 @ 0xe48b8\n; > sub_E4ED0 @ 0xe4f9c\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\nTBNZ            W1, #0x1F, loc_5CA1C                                   ; +0x0, 0x5c9dc\nCBZ             X2, loc_5CA1C                                          ; +0x4, 0x5c9e0\nLDR             W8, [X0]                                               ; +0x8, 0x5c9e4\nCMP             W8, W1                                                 ; +0xc, 0x5c9e8\nB.LE            loc_5CA1C                                              ; +0x10, 0x5c9ec\nLDR             X8, [X0,#0x18]                                         ; +0x14, 0x5c9f0\nSTR             X2, [X8,W1,SXTW#3]                                     ; +0x18, 0x5c9f4\nLDR             X8, [X0,#0x18]                                         ; +0x1c, 0x5c9f8\nLDR             X9, [X8,W1,SXTW#3]                                     ; +0x20, 0x5c9fc\nSTR             X0, [X9,#0x10]                                         ; +0x24, 0x5ca00\nLDR             X8, [X8,W1,SXTW#3]                                     ; +0x28, 0x5ca04\nLDP             X2, X3, [X0,#8]                                        ; +0x2c, 0x5ca08\nLDR             X9, [X8]                                               ; +0x30, 0x5ca0c\nMOV             X0, X8                                                 ; +0x34, 0x5ca10\nLDR             X4, [X9,#0x18]                                         ; +0x38, 0x5ca14\nBR              X4                                                     ; +0x3c, 0x5ca18\nB               loc_5CA20                                              ; +0x40, 0x5ca1c\nMOV             W0, #0x1F                                              ; +0x44, 0x5ca20\nRET                                                                    ; +0x48, 0x5ca24", "xrefs": ["sub_93B20 @ 0x94304", "sub_E47E0 @ 0xe48b8", "sub_E4ED0 @ 0xe4f9c"], "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"}