{"type": "func", "start": 380804, "end": 381048, "name": "sub_5CF84", "pseudocode": "// \n// sub_5CF84 from 0x5cf84 to 0x5d078 (244 bytes)\n// \n// 5 xrefs:\n// > sub_54DB0 @ 0x54ec0\n// > sub_5CE24 @ 0x5cea0\n// > sub_5CE24 @ 0x5ced8\n// > sub_6FA5C @ 0x6fa9c\n// > sub_7BF50 @ 0x7c034\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_5CF84(__int64 a1, __int64 *a2, __int64 *a3, float *a4, float *a5)\n{\n  __int64 v10; // x9\n  int v16; // w8\n  __int64 v17; // x9\n  __int64 v19; // [xsp+8h] [xbp-68h] BYREF\n  int v20; // [xsp+10h] [xbp-60h]\n  __int64 v21; // [xsp+14h] [xbp-5Ch]\n  int v22; // [xsp+1Ch] [xbp-54h]\n  __int64 v23; // [xsp+20h] [xbp-50h]\n  __int64 v24; // [xsp+28h] [xbp-48h]\n  __int64 v25; // [xsp+30h] [xbp-40h] BYREF\n  char v26; // [xsp+38h] [xbp-38h]\n\n  if ( *(_QWORD *)(a1 + 416) )\n  {\n    v25 = *(_QWORD *)(a1 + 400);\n    FMOD_OS_CriticalSection_Enter(v25);\n    v26 = 1;\n    sub_5D454(a1);\n    v10 = *a2;\n    __asm { FMOV            V0.2S, #1.0 }\n    v20 = *((_DWORD *)a2 + 2);\n    v19 = v10;\n    v16 = *((_DWORD *)a3 + 2);\n    v17 = *a3;\n    v23 = _D0;\n    v24 = 0;\n    v22 = v16;\n    v21 = v17;\n    sub_611CC(*(_QWORD *)(a1 + 416), sub_5D414, &v19, a2, a3);\n    if ( a4 )\n      *a4 = 1.0 - *(float *)&v23;\n    if ( a5 )\n      *a5 = 1.0 - *((float *)&v23 + 1);\n    sub_52090((__int64)&v25);\n  }\n  else\n  {\n    if ( a4 )\n      *a4 = 0.0;\n    if ( a5 )\n      *a5 = 0.0;\n  }\n  return 0;\n}", "assembly": "; \n; sub_5CF84 from 0x5cf84 to 0x5d078 (244 bytes)\n; \n; 5 xrefs:\n; > sub_54DB0 @ 0x54ec0\n; > sub_5CE24 @ 0x5cea0\n; > sub_5CE24 @ 0x5ced8\n; > sub_6FA5C @ 0x6fa9c\n; > sub_7BF50 @ 0x7c034\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, #0x80                                          ; +0x0, 0x5cf84\nSTP             X22, X21, [SP,#0x70+var_20]                            ; +0x4, 0x5cf88\nSTP             X20, X19, [SP,#0x70+var_10]                            ; +0x8, 0x5cf8c\nSTP             X29, X30, [SP,#0x70+var_s0]                            ; +0xc, 0x5cf90\nLDR             X8, [X0,#0x1A0]                                        ; +0x10, 0x5cf94\nMOV             X19, X4                                                ; +0x14, 0x5cf98\nMOV             X20, X3                                                ; +0x18, 0x5cf9c\nSTR             X23, [SP,#0x70+var_30]                                 ; +0x1c, 0x5cfa0\nADD             X29, SP, #0x70                                         ; +0x20, 0x5cfa4\nCBZ             X8, loc_5D04C                                          ; +0x24, 0x5cfa8\nMOV             X23, X0                                                ; +0x28, 0x5cfac\nLDR             X0, [X0,#0x190]                                        ; +0x2c, 0x5cfb0\nMOV             X21, X2                                                ; +0x30, 0x5cfb4\nMOV             X22, X1                                                ; +0x34, 0x5cfb8\nSTR             X0, [SP,#0x70+var_40]                                  ; +0x38, 0x5cfbc\nBL              .FMOD_OS_CriticalSection_Enter                         ; +0x3c, 0x5cfc0\nMOV             W8, #1                                                 ; +0x40, 0x5cfc4\nMOV             X0, X23                                                ; +0x44, 0x5cfc8\nSTRB            W8, [SP,#0x70+var_38]                                  ; +0x48, 0x5cfcc\nBL              sub_5D454                                              ; +0x4c, 0x5cfd0\nLDR             W8, [X22,#8]                                           ; +0x50, 0x5cfd4\nLDR             X9, [X22]                                              ; +0x54, 0x5cfd8\nFMOV            V0.2S, #1.0                                            ; +0x58, 0x5cfdc\nADRP            X1, #sub_5D414@PAGE                                    ; +0x5c, 0x5cfe0\nSTR             W8, [SP,#0x70+var_60]                                  ; +0x60, 0x5cfe4\nSTR             X9, [SP,#0x70+var_68]                                  ; +0x64, 0x5cfe8\nLDR             W8, [X21,#8]                                           ; +0x68, 0x5cfec\nLDR             X9, [X21]                                              ; +0x6c, 0x5cff0\nSTR             D0, [SP,#0x70+var_50]                                  ; +0x70, 0x5cff4\nSTR             XZR, [SP,#0x70+var_48]                                 ; +0x74, 0x5cff8\nSTR             W8, [SP,#0x70+var_54]                                  ; +0x78, 0x5cffc\nSTUR            X9, [SP,#0x70+var_5C]                                  ; +0x7c, 0x5d000\nLDR             X0, [X23,#0x1A0]                                       ; +0x80, 0x5d004\nADD             X1, X1, #sub_5D414@PAGEOFF                             ; +0x84, 0x5d008\nADD             X2, SP, #0x70+var_68                                   ; +0x88, 0x5d00c\nMOV             X3, X22                                                ; +0x8c, 0x5d010\nMOV             X4, X21                                                ; +0x90, 0x5d014\nBL              sub_611CC                                              ; +0x94, 0x5d018\nFMOV            S0, #1.0                                               ; +0x98, 0x5d01c\nCBZ             X20, loc_5D030                                         ; +0x9c, 0x5d020\nLDR             S1, [SP,#0x70+var_50]                                  ; +0xa0, 0x5d024\nFSUB            S1, S0, S1                                             ; +0xa4, 0x5d028\nSTR             S1, [X20]                                              ; +0xa8, 0x5d02c\nCBZ             X19, loc_5D040                                         ; +0xac, 0x5d030\nLDR             S1, [SP,#0x70+var_50+4]                                ; +0xb0, 0x5d034\nFSUB            S0, S0, S1                                             ; +0xb4, 0x5d038\nSTR             S0, [X19]                                              ; +0xb8, 0x5d03c\nADD             X0, SP, #0x70+var_40                                   ; +0xbc, 0x5d040\nBL              sub_52090                                              ; +0xc0, 0x5d044\nB               loc_5D05C                                              ; +0xc4, 0x5d048\nCBZ             X20, loc_5D054                                         ; +0xc8, 0x5d04c\nSTR             WZR, [X20]                                             ; +0xcc, 0x5d050\nCBZ             X19, loc_5D05C                                         ; +0xd0, 0x5d054\nSTR             WZR, [X19]                                             ; +0xd4, 0x5d058\nLDP             X29, X30, [SP,#0x70+var_s0]                            ; +0xd8, 0x5d05c\nLDP             X20, X19, [SP,#0x70+var_10]                            ; +0xdc, 0x5d060\nLDP             X22, X21, [SP,#0x70+var_20]                            ; +0xe0, 0x5d064\nLDR             X23, [SP,#0x70+var_30]                                 ; +0xe4, 0x5d068\nMOV             W0, WZR                                                ; +0xe8, 0x5d06c\nADD             SP, SP, #0x80                                          ; +0xec, 0x5d070\nRET                                                                    ; +0xf0, 0x5d074", "xrefs": ["sub_54DB0 @ 0x54ec0", "sub_5CE24 @ 0x5cea0", "sub_5CE24 @ 0x5ced8", "sub_6FA5C @ 0x6fa9c", "sub_7BF50 @ 0x7c034"], "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"}