{"type": "func", "start": 345668, "end": 345804, "name": "sub_54644", "pseudocode": "// \n// sub_54644 from 0x54644 to 0x546cc (136 bytes)\n// \n// 1 xrefs:\n// > <???> @ 0x10c358\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_54644(__int64 a1, char a2)\n{\n  unsigned int v4; // w21\n  _BYTE v6[16]; // [xsp+0h] [xbp-30h] BYREF\n\n  sub_54CC4(v6);\n  v4 = ((__int64 (__fastcall *)(__int64, _QWORD))loc_52588)(a1, a2 & 1);\n  if ( !v4 )\n  {\n    if ( (*(_BYTE *)(a1 + 61) & 0x40) != 0 )\n      v4 = 0;\n    else\n      v4 = (*(__int64 (__fastcall **)(_QWORD, _QWORD))(**(_QWORD **)(a1 + 192) + 88LL))(*(_QWORD *)(a1 + 192), a2 & 1);\n  }\n  sub_51F94((__int64)v6);\n  return v4;\n}", "assembly": "; \n; sub_54644 from 0x54644 to 0x546cc (136 bytes)\n; \n; 1 xrefs:\n; > <???> @ 0x10c358\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, 0x54644\nSTP             X20, X19, [SP,#0x30+var_10]                            ; +0x4, 0x54648\nSTP             X29, X30, [SP,#0x30+var_s0]                            ; +0x8, 0x5464c\nLDR             X8, [X0,#8]                                            ; +0xc, 0x54650\nMOV             X20, X0                                                ; +0x10, 0x54654\nMOV             W9, #8                                                 ; +0x14, 0x54658\nMOV             X0, SP                                                 ; +0x18, 0x5465c\nSTR             X21, [SP,#0x30+var_20]                                 ; +0x1c, 0x54660\nADD             X29, SP, #0x30                                         ; +0x20, 0x54664\nMOV             W19, W1                                                ; +0x24, 0x54668\nBL              sub_54CC4                                              ; +0x28, 0x5466c\nAND             W1, W19, #1                                            ; +0x2c, 0x54670\nMOV             X0, X20                                                ; +0x30, 0x54674\nBL              loc_52588                                              ; +0x34, 0x54678\nMOV             W21, W0                                                ; +0x38, 0x5467c\nCBNZ            W0, loc_546AC                                          ; +0x3c, 0x54680\nLDRB            W8, [X20,#0x3D]                                        ; +0x40, 0x54684\nTBNZ            W8, #6, loc_546A8                                      ; +0x44, 0x54688\nLDR             X0, [X20,#0xC0]                                        ; +0x48, 0x5468c\nAND             W1, W19, #1                                            ; +0x4c, 0x54690\nLDR             X8, [X0]                                               ; +0x50, 0x54694\nLDR             X8, [X8,#0x58]                                         ; +0x54, 0x54698\nBLR             X8                                                     ; +0x58, 0x5469c\nMOV             W21, W0                                                ; +0x5c, 0x546a0\nB               loc_546AC                                              ; +0x60, 0x546a4\nMOV             W21, WZR                                               ; +0x64, 0x546a8\nMOV             X0, SP                                                 ; +0x68, 0x546ac\nBL              sub_51F94                                              ; +0x6c, 0x546b0\nMOV             W0, W21                                                ; +0x70, 0x546b4\nLDP             X29, X30, [SP,#0x30+var_s0]                            ; +0x74, 0x546b8\nLDP             X20, X19, [SP,#0x30+var_10]                            ; +0x78, 0x546bc\nLDR             X21, [SP,#0x30+var_20]                                 ; +0x7c, 0x546c0\nADD             SP, SP, #0x40 ; '@'                                    ; +0x80, 0x546c4\nRET                                                                    ; +0x84, 0x546c8", "xrefs": ["<???> @ 0x10c358"], "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"}