{"type": "func", "start": 369508, "end": 369812, "name": "sub_5A364", "pseudocode": "// \n// sub_5A364 from 0x5a364 to 0x5a494 (304 bytes)\n// \n// 4 xrefs:\n// > sub_59AE8 @ 0x59c50\n// > sub_6E374 @ 0x6e3f8\n// > sub_7C19C @ 0x7c490\n// > sub_7C19C @ 0x7c650\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_5A364(__int64 a1, __int64 a2, __int64 a3, char a4, char a5, char a6)\n{\n  __int64 v6; // x8\n  __int64 result; // x0\n  float v13; // s0\n\n  v6 = *(_QWORD *)(a1 + 472);\n  if ( !v6 )\n    return 30;\n  if ( !a3 && (*(_BYTE *)(v6 + 62) & 1) == 0 )\n    sub_5C678(a1);\n  result = sub_5C618(a1);\n  if ( !(_DWORD)result )\n  {\n    result = sub_5AF44(a1, a2, a5 & 1);\n    if ( !(_DWORD)result )\n    {\n      result = sub_5C54C();\n      if ( !(_DWORD)result )\n      {\n        v13 = 1.0;\n        if ( (a6 & 1) != 0 )\n          v13 = 0.0;\n        *(float *)(a1 + 536) = v13;\n        *(float *)(a1 + 540) = v13;\n        if ( (a5 & 1) == 0 || (result = sub_595BC(), !(_DWORD)result) && (result = sub_5A918(a1, 0, 2), !(_DWORD)result) )\n        {\n          result = sub_5AF2C(a1);\n          if ( !(_DWORD)result )\n          {\n            if ( (a5 & 1) != 0 )\n              result = sub_5C658();\n            if ( (a4 & 1) != 0 )\n              return 0;\n            result = sub_5C624(result);\n            if ( !(_DWORD)result )\n              return 0;\n          }\n        }\n      }\n    }\n  }\n  return result;\n}", "assembly": "; \n; sub_5A364 from 0x5a364 to 0x5a494 (304 bytes)\n; \n; 4 xrefs:\n; > sub_59AE8 @ 0x59c50\n; > sub_6E374 @ 0x6e3f8\n; > sub_7C19C @ 0x7c490\n; > sub_7C19C @ 0x7c650\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, #0x50                                          ; +0x0, 0x5a364\nSTP             X22, X21, [SP,#0x40+var_20]                            ; +0x4, 0x5a368\nSTP             X20, X19, [SP,#0x40+var_10]                            ; +0x8, 0x5a36c\nSTP             X29, X30, [SP,#0x40+var_s0]                            ; +0xc, 0x5a370\nLDR             X8, [X0,#0x1D8]                                        ; +0x10, 0x5a374\nSTR             X23, [SP,#0x40+var_30]                                 ; +0x14, 0x5a378\nADD             X29, SP, #0x40                                         ; +0x18, 0x5a37c\nCBZ             X8, loc_5A3B0                                          ; +0x1c, 0x5a380\nMOV             W22, W5                                                ; +0x20, 0x5a384\nMOV             W21, W4                                                ; +0x24, 0x5a388\nMOV             W20, W3                                                ; +0x28, 0x5a38c\nMOV             X19, X0                                                ; +0x2c, 0x5a390\nMOV             X23, X1                                                ; +0x30, 0x5a394\nCBNZ            X2, loc_5A3BC                                          ; +0x34, 0x5a398\nLDRB            W8, [X8,#0x3E]                                         ; +0x38, 0x5a39c\nTBNZ            W8, #0, loc_5A3B8                                      ; +0x3c, 0x5a3a0\nBL              sub_5C678                                              ; +0x40, 0x5a3a4\nLDR             X2, [X8,X9]                                            ; +0x44, 0x5a3a8\nB               loc_5A3BC                                              ; +0x48, 0x5a3ac\nMOV             W0, #0x1E                                              ; +0x4c, 0x5a3b0\nB               loc_5A3E8                                              ; +0x50, 0x5a3b4\nMOV             X2, XZR                                                ; +0x54, 0x5a3b8\nMOV             X0, X19                                                ; +0x58, 0x5a3bc\nMOV             X1, X2                                                 ; +0x5c, 0x5a3c0\nBL              sub_5C618                                              ; +0x60, 0x5a3c4\nCBNZ            W0, loc_5A3E8                                          ; +0x64, 0x5a3c8\nAND             W2, W21, #1                                            ; +0x68, 0x5a3cc\nMOV             X0, X19                                                ; +0x6c, 0x5a3d0\nMOV             X1, X23                                                ; +0x70, 0x5a3d4\nBL              sub_5AF44                                              ; +0x74, 0x5a3d8\nCBNZ            W0, loc_5A3E8                                          ; +0x78, 0x5a3dc\nBL              sub_5C54C                                              ; +0x7c, 0x5a3e0\nCBZ             W0, loc_5A3FC                                          ; +0x80, 0x5a3e4\nLDP             X29, X30, [SP,#0x40+var_s0]                            ; +0x84, 0x5a3e8\nLDP             X20, X19, [SP,#0x40+var_10]                            ; +0x88, 0x5a3ec\nLDP             X22, X21, [SP,#0x40+var_20]                            ; +0x8c, 0x5a3f0\nLDR             X23, [SP,#0x40+var_30]                                 ; +0x90, 0x5a3f4\nB               loc_5C6BC                                              ; +0x94, 0x5a3f8\nTST             W22, #1                                                ; +0x98, 0x5a3fc\nFMOV            S0, #1.0                                               ; +0x9c, 0x5a400\nFMOV            S1, WZR                                                ; +0xa0, 0x5a404\nFCSEL           S0, S1, S0, NE                                         ; +0xa4, 0x5a408\nSTR             S0, [X19,#0x218]                                       ; +0xa8, 0x5a40c\nSTR             S0, [X19,#0x21C]                                       ; +0xac, 0x5a410\nTBZ             W21, #0, loc_5A438                                     ; +0xb0, 0x5a414\nMOV             X0, X19                                                ; +0xb4, 0x5a418\nBL              sub_595BC                                              ; +0xb8, 0x5a41c\nCBNZ            W0, loc_5A3E8                                          ; +0xbc, 0x5a420\nMOV             W2, #2                                                 ; +0xc0, 0x5a424\nMOV             X0, X19                                                ; +0xc4, 0x5a428\nMOV             W1, WZR                                                ; +0xc8, 0x5a42c\nBL              sub_5A918                                              ; +0xcc, 0x5a430\nCBNZ            W0, loc_5A3E8                                          ; +0xd0, 0x5a434\nMOV             X0, X19                                                ; +0xd4, 0x5a438\nBL              sub_5AF2C                                              ; +0xd8, 0x5a43c\nCBNZ            W0, loc_5A3E8                                          ; +0xdc, 0x5a440\nTBZ             W21, #0, loc_5A480                                     ; +0xe0, 0x5a444\nSTR             WZR, [SP,#0x40+var_24]                                 ; +0xe4, 0x5a448\nLDR             X8, [X19]                                              ; +0xe8, 0x5a44c\nADD             X1, SP, #0x40+var_24                                   ; +0xec, 0x5a450\nBL              sub_5C658                                              ; +0xf0, 0x5a454\nLDRB            W8, [SP,#0x40+var_24]                                  ; +0xf4, 0x5a458\nTBZ             W8, #4, loc_5A480                                      ; +0xf8, 0x5a45c\nSTR             WZR, [SP,#0x40+var_38]                                 ; +0xfc, 0x5a460\nSTR             XZR, [SP,#0x40+var_40]                                 ; +0x100, 0x5a464\nLDP             X8, X9, [X19]                                          ; +0x104, 0x5a468\nMOV             W10, #0x10A70                                          ; +0x108, 0x5a46c\nMOV             X2, SP                                                 ; +0x110, 0x5a474\nBL              sub_5C694                                              ; +0x114, 0x5a478\nCBNZ            W0, loc_5A3E8                                          ; +0x118, 0x5a47c\nTBNZ            W20, #0, loc_5A48C                                     ; +0x11c, 0x5a480\nBL              sub_5C624                                              ; +0x120, 0x5a484\nCBNZ            W0, loc_5A3E8                                          ; +0x124, 0x5a488\nMOV             W0, WZR                                                ; +0x128, 0x5a48c\nB               loc_5A3E8                                              ; +0x12c, 0x5a490", "xrefs": ["sub_59AE8 @ 0x59c50", "sub_6E374 @ 0x6e3f8", "sub_7C19C @ 0x7c490", "sub_7C19C @ 0x7c650"], "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"}