{"type": "func", "start": 380152, "end": 380356, "name": "sub_5CCF8", "pseudocode": "// \n// sub_5CCF8 from 0x5ccf8 to 0x5cdc4 (204 bytes)\n// \n// 1 xrefs:\n// > sub_5D2B8 @ 0x5d2f4\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 sub_5CCF8(__int64 a1, __int64 a2)\n{\n  __int64 result; // x0\n  __int64 v4; // x20\n  __int64 v5; // x0\n  char v6; // [xsp+0h] [xbp-20h]\n\n  *(_QWORD *)(a1 + 376) = a2;\n  result = FMOD_OS_CriticalSection_Create(a1 + 368, 0);\n  if ( !(_DWORD)result )\n  {\n    v4 = *(unsigned int *)(**(_QWORD **)(a1 + 376) + 480LL);\n    v5 = sub_E2AC4(\n           *(__int64 *)((char *)&qword_1B0 + (_QWORD)off_114000),\n           (unsigned int)((_DWORD)v4 << 6),\n           \"../../src/fmod_geometry_mgr.cpp\",\n           82,\n           0);\n    *(_QWORD *)(a1 + 336) = v5;\n    if ( v5 )\n    {\n      for ( ; v4; v5 += 64 )\n      {\n        *(_DWORD *)(v5 + 24) = 0;\n        *(_QWORD *)v5 = v5;\n        *(_QWORD *)(v5 + 8) = v5;\n        *(_QWORD *)(v5 + 16) = 0;\n        --v4;\n      }\n      v6 = 1;\n      return sub_E42FC(a1, \"FMOD geometry thread\", 0, 0, 6, 0, 0, **(_QWORD **)(a1 + 376), v6);\n    }\n    else\n    {\n      return 38;\n    }\n  }\n  return result;\n}", "assembly": "; \n; sub_5CCF8 from 0x5ccf8 to 0x5cdc4 (204 bytes)\n; \n; 1 xrefs:\n; > sub_5D2B8 @ 0x5d2f4\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\nSUB             SP, SP, #0x30                                          ; +0x0, 0x5ccf8\nSTP             X20, X19, [SP,#0x20+var_10]                            ; +0x4, 0x5ccfc\nSTP             X29, X30, [SP,#0x20+var_s0]                            ; +0x8, 0x5cd00\nMOV             X19, X0                                                ; +0xc, 0x5cd04\nSTR             X1, [X0,#0x178]                                        ; +0x10, 0x5cd08\nADD             X0, X0, #0x170                                         ; +0x14, 0x5cd0c\nMOV             W1, WZR                                                ; +0x18, 0x5cd10\nADD             X29, SP, #0x20                                         ; +0x1c, 0x5cd14\nBL              .FMOD_OS_CriticalSection_Create                        ; +0x20, 0x5cd18\nCBNZ            W0, loc_5CDB4                                          ; +0x24, 0x5cd1c\nLDR             X8, [X19,#0x178]                                       ; +0x28, 0x5cd20\nADRP            X9, #off_10F7A0@PAGE                                   ; +0x2c, 0x5cd24\nADRL            X2, aSrcFmodGeometr_0; \"../../src/fmod_geometry_mgr.cpp\" ; +0x30, 0x5cd28\nLDR             X8, [X8]                                               ; +0x38, 0x5cd30\nLDR             X9, [X9,#off_10F7A0@PAGEOFF]; off_114000               ; +0x3c, 0x5cd34\nMOV             W3, #0x52 ; 'R'                                        ; +0x40, 0x5cd38\nMOV             W4, WZR                                                ; +0x44, 0x5cd3c\nLDR             W20, [X8,#0x1E0]                                       ; +0x48, 0x5cd40\nLDR             X9, [X9]; unk_11F800                                   ; +0x4c, 0x5cd44\nLSL             W1, W20, #6                                            ; +0x50, 0x5cd48\nLDR             X0, [X9,#(qword_11F9B0 - 0x11F800)]                    ; +0x54, 0x5cd4c\nBL              sub_E2AC4                                              ; +0x58, 0x5cd50\nSTR             X0, [X19,#0x150]                                       ; +0x5c, 0x5cd54\nCBZ             X0, loc_5CDB0                                          ; +0x60, 0x5cd58\nCBZ             X20, loc_5CD78                                         ; +0x64, 0x5cd5c\nSTR             WZR, [X0,#0x18]                                        ; +0x68, 0x5cd60\nSTP             X0, X0, [X0]                                           ; +0x6c, 0x5cd64\nSTR             XZR, [X0,#0x10]                                        ; +0x70, 0x5cd68\nSUB             X20, X20, #1                                           ; +0x74, 0x5cd6c\nADD             X0, X0, #0x40 ; '@'                                    ; +0x78, 0x5cd70\nCBNZ            X20, loc_5CD60                                         ; +0x7c, 0x5cd74\nLDR             X8, [X19,#0x178]                                       ; +0x80, 0x5cd78\nADRL            X1, aFmodGeometryTh; \"FMOD geometry thread\"            ; +0x84, 0x5cd7c\nMOV             W4, #6                                                 ; +0x8c, 0x5cd84\nLDR             X7, [X8]                                               ; +0x90, 0x5cd88\nMOV             W8, #1                                                 ; +0x94, 0x5cd8c\nMOV             X0, X19                                                ; +0x98, 0x5cd90\nMOV             X2, XZR                                                ; +0x9c, 0x5cd94\nMOV             X3, XZR                                                ; +0xa0, 0x5cd98\nMOV             W5, WZR                                                ; +0xa4, 0x5cd9c\nMOV             W6, WZR                                                ; +0xa8, 0x5cda0\nSTRB            W8, [SP,#0x20+var_20]                                  ; +0xac, 0x5cda4\nBL              sub_E42FC                                              ; +0xb0, 0x5cda8\nB               loc_5CDB4                                              ; +0xb4, 0x5cdac\nMOV             W0, #0x26 ; '&'                                        ; +0xb8, 0x5cdb0\nLDP             X29, X30, [SP,#0x20+var_s0]                            ; +0xbc, 0x5cdb4\nLDP             X20, X19, [SP,#0x20+var_10]                            ; +0xc0, 0x5cdb8\nADD             SP, SP, #0x30 ; '0'                                    ; +0xc4, 0x5cdbc\nRET                                                                    ; +0xc8, 0x5cdc0", "xrefs": ["sub_5D2B8 @ 0x5d2f4"], "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"}