{"type": "func", "start": 345412, "end": 345668, "name": "sub_54544", "pseudocode": "// \n// sub_54544 from 0x54544 to 0x54644 (256 bytes)\n// \n// 1 xrefs:\n// > <???> @ 0x10c350\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_54544(__int64 a1)\n{\n  __int64 v2; // x0\n  char v3; // w20\n  __int64 v4; // x0\n  __int64 v5; // x8\n  __int64 v6; // x8\n  __int64 v7; // x0\n  unsigned int v8; // w0\n  _QWORD *v9; // x8\n  unsigned int v10; // w21\n  __int64 v11; // x0\n  __int64 v12; // x0\n  __int64 v13; // x0\n  _QWORD *v14; // x10\n  __int64 v15; // x8\n  _QWORD *v16; // x10\n\n  v2 = sub_E4548(*(_QWORD *)(a1 + 8) + 16LL);\n  v3 = v2;\n  v4 = sub_54D20(v2);\n  if ( (v4 & 1) != 0 || (*(_DWORD *)(a1 + 56) & 0x10000) == 0 )\n  {\n    v5 = *(_QWORD *)(a1 + 40);\n    if ( v5 )\n    {\n      v6 = *(_QWORD *)(v5 + 96);\n      if ( v6 )\n      {\n        v4 = *(_QWORD *)(v6 + 368);\n        if ( v4 )\n          v4 = sub_E004C();\n      }\n    }\n    v4 = sub_54CE8(v4);\n  }\n  sub_54C9C(v4);\n  v7 = *(_QWORD *)(a1 + 192);\n  if ( v7 )\n  {\n    v8 = (*(__int64 (__fastcall **)(__int64))(*(_QWORD *)v7 + 80LL))(v7);\n    v9 = *(_QWORD **)(a1 + 192);\n    v10 = v8;\n    v9[3] = 0;\n    v9[5] = 0;\n    v9[6] = 0;\n    *(_QWORD *)(a1 + 192) = 0;\n  }\n  else\n  {\n    v10 = 0;\n  }\n  v11 = ((__int64 (__fastcall *)(__int64))loc_5253C)(a1);\n  v12 = sub_54CB8(v11);\n  if ( (*(_BYTE *)(a1 + 58) & (unsigned __int8)~v3 & 1) == 0 )\n    v12 = sub_54CF4(v12);\n  sub_54CDC(v12);\n  v13 = *(_QWORD *)(a1 + 8);\n  v14 = *(_QWORD **)(v13 + 72704);\n  v15 = a1 + 168;\n  if ( v14 == (_QWORD *)(a1 + 168) )\n    *(_QWORD *)(v13 + 72704) = *v14;\n  v16 = *(_QWORD **)(a1 + 176);\n  *v16 = *(_QWORD *)(a1 + 168);\n  *(_QWORD *)(*(_QWORD *)(a1 + 168) + 8LL) = v16;\n  *(_QWORD *)(a1 + 168) = v15;\n  *(_QWORD *)(a1 + 176) = v15;\n  *(_QWORD *)(a1 + 184) = 0;\n  sub_7B9F0(v13, 10);\n  return v10;\n}", "assembly": "; \n; sub_54544 from 0x54544 to 0x54644 (256 bytes)\n; \n; 1 xrefs:\n; > <???> @ 0x10c350\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\nSTR             X21, [SP,#-0x10+var_20]!                               ; +0x0, 0x54544\nSTP             X20, X19, [SP,#0x20+var_10]                            ; +0x4, 0x54548\nSTP             X29, X30, [SP,#0x20+var_s0]                            ; +0x8, 0x5454c\nLDR             X8, [X0,#8]                                            ; +0xc, 0x54550\nMOV             X19, X0                                                ; +0x10, 0x54554\nADD             X29, SP, #0x20                                         ; +0x14, 0x54558\nADD             X0, X8, #0x10                                          ; +0x18, 0x5455c\nBL              sub_E4548                                              ; +0x1c, 0x54560\nMOV             W20, W0                                                ; +0x20, 0x54564\nBL              sub_54D20                                              ; +0x24, 0x54568\nTBNZ            W0, #0, loc_54578                                      ; +0x28, 0x5456c\nLDR             W8, [X19,#0x38]                                        ; +0x2c, 0x54570\nTBNZ            W8, #0x10, loc_54598                                   ; +0x30, 0x54574\nLDR             X8, [X19,#0x28]                                        ; +0x34, 0x54578\nCBZ             X8, loc_54594                                          ; +0x38, 0x5457c\nLDR             X8, [X8,#0x60]                                         ; +0x3c, 0x54580\nCBZ             X8, loc_54594                                          ; +0x40, 0x54584\nLDR             X0, [X8,#0x170]                                        ; +0x44, 0x54588\nCBZ             X0, loc_54594                                          ; +0x48, 0x5458c\nBL              sub_E004C                                              ; +0x4c, 0x54590\nBL              sub_54CE8                                              ; +0x50, 0x54594\nBL              sub_54C9C                                              ; +0x54, 0x54598\nLDR             X0, [X19,#0xC0]                                        ; +0x58, 0x5459c\nCBZ             X0, loc_545C8                                          ; +0x5c, 0x545a0\nLDR             X8, [X0]                                               ; +0x60, 0x545a4\nLDR             X8, [X8,#0x50]                                         ; +0x64, 0x545a8\nBLR             X8                                                     ; +0x68, 0x545ac\nLDR             X8, [X19,#0xC0]                                        ; +0x6c, 0x545b0\nMOV             W21, W0                                                ; +0x70, 0x545b4\nSTR             XZR, [X8,#0x18]                                        ; +0x74, 0x545b8\nSTP             XZR, XZR, [X8,#0x28]                                   ; +0x78, 0x545bc\nSTR             XZR, [X19,#0xC0]                                       ; +0x7c, 0x545c0\nB               loc_545CC                                              ; +0x80, 0x545c4\nMOV             W21, WZR                                               ; +0x84, 0x545c8\nMOV             X0, X19                                                ; +0x88, 0x545cc\nBL              loc_5253C                                              ; +0x8c, 0x545d0\nBL              sub_54CB8                                              ; +0x90, 0x545d4\nLDRB            W8, [X19,#0x3A]                                        ; +0x94, 0x545d8\nBIC             W8, W8, W20                                            ; +0x98, 0x545dc\nTBNZ            W8, #0, loc_545E8                                      ; +0x9c, 0x545e0\nBL              sub_54CF4                                              ; +0xa0, 0x545e4\nBL              sub_54CDC                                              ; +0xa4, 0x545e8\nLDR             X0, [X19,#8]                                           ; +0xa8, 0x545ec\nMOV             W8, #0x11C00                                           ; +0xac, 0x545f0\nADD             X9, X0, X8                                             ; +0xb4, 0x545f8\nLDR             X10, [X9]                                              ; +0xb8, 0x545fc\nADD             X8, X19, #0xA8                                         ; +0xbc, 0x54600\nCMP             X10, X8                                                ; +0xc0, 0x54604\nB.NE            loc_54614                                              ; +0xc4, 0x54608\nLDR             X10, [X10]                                             ; +0xc8, 0x5460c\nSTR             X10, [X9]                                              ; +0xcc, 0x54610\nLDP             X9, X10, [X19,#0xA8]                                   ; +0xd0, 0x54614\nMOV             W1, #0xA                                               ; +0xd4, 0x54618\nSTR             X9, [X10]                                              ; +0xd8, 0x5461c\nLDR             X9, [X19,#0xA8]                                        ; +0xdc, 0x54620\nSTR             X10, [X9,#8]                                           ; +0xe0, 0x54624\nSTP             X8, X8, [X19,#0xA8]                                    ; +0xe4, 0x54628\nSTR             XZR, [X19,#0xB8]                                       ; +0xe8, 0x5462c\nBL              sub_7B9F0                                              ; +0xec, 0x54630\nLDP             X29, X30, [SP,#0x20+var_s0]                            ; +0xf0, 0x54634\nLDP             X20, X19, [SP,#0x20+var_10]                            ; +0xf4, 0x54638\nMOV             W0, W21                                                ; +0xf8, 0x5463c\nB               loc_54D08                                              ; +0xfc, 0x54640", "xrefs": ["<???> @ 0x10c350"], "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"}