{"type": "func", "start": 361344, "end": 361612, "name": "sub_58380", "pseudocode": "// \n// sub_58380 from 0x58380 to 0x5848c (268 bytes)\n// \n// 2 xrefs:\n// > sub_584E4 @ 0x58568\n// > sub_7C13C @ 0x7c178\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_58380(__int64 a1, __int64 a2, char a3)\n{\n  int v4; // w20\n  __int64 result; // x0\n  unsigned int i; // w20\n  __int64 v8; // x8\n  float v9; // s0\n  int v10; // w8\n  __int64 v11; // [xsp+0h] [xbp-30h] BYREF\n  int v12; // [xsp+Ch] [xbp-24h] BYREF\n\n  v4 = a2;\n  result = sub_55DCC((__int64 *)a1, a2, a3 & 1, 0);\n  if ( !(_DWORD)result )\n  {\n    if ( (*(_BYTE *)(a1 + 512) & 0x10) == 0 || (result = sub_54DB0(a1, v4, a3 & 1), !(_DWORD)result) )\n    {\n      result = (*(__int64 (__fastcall **)(__int64, int *))(*(_QWORD *)a1 + 296LL))(a1, &v12);\n      if ( !(_DWORD)result )\n      {\n        for ( i = 0; (int)i < v12; ++i )\n        {\n          result = sub_59358(a1, i, &v11);\n          if ( (_DWORD)result )\n            return result;\n          if ( v11 && *(_DWORD *)(v11 + 256) == 35 )\n          {\n            v8 = *(_QWORD *)(a1 + 32);\n            v9 = 1.0;\n            if ( v8 )\n              v9 = *(float *)(v8 + 488);\n            sub_CBD5C(v11, 8, v9);\n          }\n        }\n        v10 = *(_DWORD *)(a1 + 72);\n        if ( (v10 & 4) != 0 )\n          goto LABEL_17;\n        if ( (sub_55C5C(*(_QWORD *)(a1 + 8)) & 1) != 0 )\n        {\n          v10 = *(_DWORD *)(a1 + 72);\nLABEL_17:\n          *(_DWORD *)(a1 + 72) = v10 & 0xFFFFFFFB;\n          return 0;\n        }\n        return 0;\n      }\n    }\n  }\n  return result;\n}", "assembly": "; \n; sub_58380 from 0x58380 to 0x5848c (268 bytes)\n; \n; 2 xrefs:\n; > sub_584E4 @ 0x58568\n; > sub_7C13C @ 0x7c178\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, #0x40                                          ; +0x0, 0x58380\nSTR             X21, [SP,#0x30+var_18]                                 ; +0x4, 0x58384\nMOV             W21, W2                                                ; +0x8, 0x58388\nAND             W2, W2, #1                                             ; +0xc, 0x5838c\nMOV             W3, WZR                                                ; +0x10, 0x58390\nSTR             D8, [SP,#0x30+var_20]                                  ; +0x14, 0x58394\nSTP             X20, X19, [SP,#0x30+var_10]                            ; +0x18, 0x58398\nSTP             X29, X30, [SP,#0x30+var_s0]                            ; +0x1c, 0x5839c\nADD             X29, SP, #0x30                                         ; +0x20, 0x583a0\nMOV             W20, W1                                                ; +0x24, 0x583a4\nMOV             X19, X0                                                ; +0x28, 0x583a8\nBL              sub_55DCC                                              ; +0x2c, 0x583ac\nCBNZ            W0, loc_58474                                          ; +0x30, 0x583b0\nLDRB            W8, [X19,#0x200]                                       ; +0x34, 0x583b4\nTBZ             W8, #4, loc_583D0                                      ; +0x38, 0x583b8\nAND             W2, W21, #1                                            ; +0x3c, 0x583bc\nMOV             X0, X19                                                ; +0x40, 0x583c0\nMOV             W1, W20                                                ; +0x44, 0x583c4\nBL              sub_54DB0                                              ; +0x48, 0x583c8\nCBNZ            W0, loc_58474                                          ; +0x4c, 0x583cc\nLDR             X8, [X19]                                              ; +0x50, 0x583d0\nADD             X1, SP, #0x30+var_24                                   ; +0x54, 0x583d4\nMOV             X0, X19                                                ; +0x58, 0x583d8\nLDR             X8, [X8,#0x128]                                        ; +0x5c, 0x583dc\nBLR             X8                                                     ; +0x60, 0x583e0\nCBNZ            W0, loc_58474                                          ; +0x64, 0x583e4\nMOV             W20, WZR                                               ; +0x68, 0x583e8\nFMOV            S8, #1.0                                               ; +0x6c, 0x583ec\nLDR             W8, [SP,#0x30+var_24]                                  ; +0x70, 0x583f0\nCMP             W20, W8                                                ; +0x74, 0x583f4\nB.GE            loc_58448                                              ; +0x78, 0x583f8\nLDR             X8, [X19]                                              ; +0x7c, 0x583fc\nMOV             X2, SP                                                 ; +0x80, 0x58400\nMOV             X0, X19                                                ; +0x84, 0x58404\nMOV             W1, W20                                                ; +0x88, 0x58408\nBL              sub_59358                                              ; +0x8c, 0x5840c\nCBNZ            W0, loc_58474                                          ; +0x90, 0x58410\nLDR             X0, [SP,#0x30+var_30]                                  ; +0x94, 0x58414\nCBZ             X0, loc_58440                                          ; +0x98, 0x58418\nLDR             W8, [X0,#0x100]                                        ; +0x9c, 0x5841c\nCMP             W8, #0x23 ; '#'                                        ; +0xa0, 0x58420\nB.NE            loc_58440                                              ; +0xa4, 0x58424\nLDR             X8, [X19,#0x20]                                        ; +0xa8, 0x58428\nMOV             V0.16B, V8.16B                                         ; +0xac, 0x5842c\nCBZ             X8, loc_58438                                          ; +0xb0, 0x58430\nLDR             S0, [X8,#0x1E8]                                        ; +0xb4, 0x58434\nMOV             W1, #8                                                 ; +0xb8, 0x58438\nBL              sub_CBD5C                                              ; +0xbc, 0x5843c\nADD             W20, W20, #1                                           ; +0xc0, 0x58440\nB               loc_583F0                                              ; +0xc4, 0x58444\nLDR             W8, [X19,#0x48]                                        ; +0xc8, 0x58448\nTBNZ            W8, #2, loc_58460                                      ; +0xcc, 0x5844c\nLDR             X0, [X19,#8]                                           ; +0xd0, 0x58450\nBL              sub_55C5C                                              ; +0xd4, 0x58454\nTBZ             W0, #0, loc_58470                                      ; +0xd8, 0x58458\nLDR             W8, [X19,#0x48]                                        ; +0xdc, 0x5845c\nMOV             W0, WZR                                                ; +0xe0, 0x58460\nAND             W8, W8, #0xFFFFFFFB                                    ; +0xe4, 0x58464\nSTR             W8, [X19,#0x48]                                        ; +0xe8, 0x58468\nB               loc_58474                                              ; +0xec, 0x5846c\nMOV             W0, WZR                                                ; +0xf0, 0x58470\nLDP             X29, X30, [SP,#0x30+var_s0]                            ; +0xf4, 0x58474\nLDP             X20, X19, [SP,#0x30+var_10]                            ; +0xf8, 0x58478\nLDR             X21, [SP,#0x30+var_18]                                 ; +0xfc, 0x5847c\nLDR             D8, [SP,#0x30+var_20]                                  ; +0x100, 0x58480\nADD             SP, SP, #0x40 ; '@'                                    ; +0x104, 0x58484\nRET                                                                    ; +0x108, 0x58488", "xrefs": ["sub_584E4 @ 0x58568", "sub_7C13C @ 0x7c178"], "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"}