{"type": "func", "start": 328004, "end": 328248, "name": "FMOD_Memory_GetStats", "pseudocode": "// \n// FMOD_Memory_GetStats from 0x50144 to 0x50238 (244 bytes)\n// \n// 4 xrefs:\n// > .FMOD_Memory_GetStats @ 0x10817c\n// > <???> @ 0x7ca8\n// > .FMOD_Memory_GetStats @ 0x108174\n// > <???> @ 0x110980\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__int64 __fastcall FMOD_Memory_GetStats(_DWORD *a1, _DWORD *a2, int a3)\n{\n  unsigned int v3; // w21\n  __int64 i; // x24\n  __int64 v7; // x22\n  __int64 v8; // x1\n  unsigned int v9; // w0\n  _BOOL4 v10; // w25\n  unsigned int v11; // w0\n  __int64 v13; // [xsp+8h] [xbp-38h] BYREF\n\n  if ( a3 )\n  {\n    for ( i = 368; ; i += 8 )\n    {\n      if ( i == 432 )\n        goto LABEL_14;\n      v7 = *(_QWORD *)((char *)off_114000 + i);\n      if ( v7 )\n      {\n        if ( *(_BYTE *)(v7 + 8) )\n          break;\n      }\nLABEL_11:\n      ;\n    }\n    v8 = *(_QWORD *)((char *)off_114000 + i);\n    v13 = 0;\n    v9 = sub_50238(&v13, v8);\n    if ( v9 )\n    {\n      v10 = 1;\n    }\n    else\n    {\n      v10 = 1;\n      v9 = sub_7755C(v7, 1);\n      if ( !v9 )\n      {\n        v11 = sub_77DB4(v7);\n        v10 = v11 != 0;\n        if ( v11 )\n          v3 = v11;\nLABEL_10:\n        sub_51968(&v13);\n        if ( v10 )\n          return v3;\n        goto LABEL_11;\n      }\n    }\n    v3 = v9;\n    goto LABEL_10;\n  }\nLABEL_14:\n  if ( a1 )\n    *a1 = *(_DWORD *)(*(__int64 *)((char *)&qword_1B0 + (_QWORD)off_114000) + 56);\n  v3 = 0;\n  if ( a2 )\n    *a2 = *(_DWORD *)(*(__int64 *)((char *)&qword_1B0 + (_QWORD)off_114000) + 60);\n  return v3;\n}", "assembly": "; \n; FMOD_Memory_GetStats from 0x50144 to 0x50238 (244 bytes)\n; \n; 4 xrefs:\n; > .FMOD_Memory_GetStats @ 0x10817c\n; > <???> @ 0x7ca8\n; > .FMOD_Memory_GetStats @ 0x108174\n; > <???> @ 0x110980\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\nSTR             X25, [SP,#-0x10+var_40]!                               ; +0x0, 0x50144\nSTP             X24, X23, [SP,#0x40+var_30]                            ; +0x4, 0x50148\nSTP             X22, X21, [SP,#0x40+var_20]                            ; +0x8, 0x5014c\nSTP             X20, X19, [SP,#0x40+var_10]                            ; +0xc, 0x50150\nSTP             X29, X30, [SP,#0x40+var_s0]                            ; +0x10, 0x50154\nADRP            X23, #off_10F7A0@PAGE                                  ; +0x14, 0x50158\nLDR             X23, [X23,#off_10F7A0@PAGEOFF]; off_114000             ; +0x18, 0x5015c\nMOV             X19, X1                                                ; +0x1c, 0x50160\nMOV             X20, X0                                                ; +0x20, 0x50164\nADD             X29, SP, #0x40                                         ; +0x24, 0x50168\nCBZ             W2, loc_501F0                                          ; +0x28, 0x5016c\nMOV             W24, #0x170                                            ; +0x2c, 0x50170\nCMP             X24, #0x1B0                                            ; +0x30, 0x50174\nB.EQ            loc_501F0                                              ; +0x34, 0x50178\nLDR             X8, [X23]; unk_11F800                                  ; +0x38, 0x5017c\nLDR             X22, [X8,X24]                                          ; +0x3c, 0x50180\nCBZ             X22, loc_501D0                                         ; +0x40, 0x50184\nLDRB            W8, [X22,#8]                                           ; +0x44, 0x50188\nCBZ             W8, loc_501D0                                          ; +0x48, 0x5018c\nADD             X0, SP, #0x40+var_38                                   ; +0x4c, 0x50190\nMOV             X1, X22                                                ; +0x50, 0x50194\nSTR             XZR, [SP,#0x40+var_38]                                 ; +0x54, 0x50198\nBL              sub_50238                                              ; +0x58, 0x5019c\nCBZ             W0, loc_501AC                                          ; +0x5c, 0x501a0\nMOV             W25, #1                                                ; +0x60, 0x501a4\nB               loc_501C0                                              ; +0x64, 0x501a8\nMOV             W1, #1                                                 ; +0x68, 0x501ac\nMOV             X0, X22                                                ; +0x6c, 0x501b0\nMOV             W25, #1                                                ; +0x70, 0x501b4\nBL              sub_7755C                                              ; +0x74, 0x501b8\nCBZ             W0, loc_501D8                                          ; +0x78, 0x501bc\nMOV             W21, W0                                                ; +0x7c, 0x501c0\nADD             X0, SP, #0x40+var_38                                   ; +0x80, 0x501c4\nBL              sub_51968                                              ; +0x84, 0x501c8\nCBNZ            W25, loc_5021C                                         ; +0x88, 0x501cc\nADD             X24, X24, #8                                           ; +0x8c, 0x501d0\nB               loc_50174                                              ; +0x90, 0x501d4\nMOV             X0, X22                                                ; +0x94, 0x501d8\nBL              sub_77DB4                                              ; +0x98, 0x501dc\nCMP             W0, #0                                                 ; +0x9c, 0x501e0\nCSET            W25, NE                                                ; +0xa0, 0x501e4\nCSEL            W21, W21, W0, EQ                                       ; +0xa4, 0x501e8\nB               loc_501C4                                              ; +0xa8, 0x501ec\nCBZ             X20, loc_50204                                         ; +0xac, 0x501f0\nLDR             X8, [X23]; unk_11F800                                  ; +0xb0, 0x501f4\nLDR             X8, [X8,#(qword_11F9B0 - 0x11F800)]                    ; +0xb4, 0x501f8\nLDR             W8, [X8,#0x38]                                         ; +0xb8, 0x501fc\nSTR             W8, [X20]                                              ; +0xbc, 0x50200\nMOV             W21, WZR                                               ; +0xc0, 0x50204\nCBZ             X19, loc_5021C                                         ; +0xc4, 0x50208\nLDR             X8, [X23]; unk_11F800                                  ; +0xc8, 0x5020c\nLDR             X8, [X8,#(qword_11F9B0 - 0x11F800)]                    ; +0xcc, 0x50210\nLDR             W8, [X8,#0x3C]                                         ; +0xd0, 0x50214\nSTR             W8, [X19]                                              ; +0xd4, 0x50218\nMOV             W0, W21                                                ; +0xd8, 0x5021c\nLDP             X29, X30, [SP,#0x40+var_s0]                            ; +0xdc, 0x50220\nLDP             X20, X19, [SP,#0x40+var_10]                            ; +0xe0, 0x50224\nLDP             X22, X21, [SP,#0x40+var_20]                            ; +0xe4, 0x50228\nLDP             X24, X23, [SP,#0x40+var_30]                            ; +0xe8, 0x5022c\nLDR             X25, [SP+0x40+var_40],#0x50                            ; +0xec, 0x50230\nRET                                                                    ; +0xf0, 0x50234", "xrefs": [".FMOD_Memory_GetStats @ 0x10817c", "<???> @ 0x7ca8", ".FMOD_Memory_GetStats @ 0x108174", "<???> @ 0x110980"], "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"}