{"type": "func", "start": 342176, "end": 342416, "name": "sub_538A0", "pseudocode": "// \n// sub_538A0 from 0x538a0 to 0x53990 (240 bytes)\n// \n// 1 xrefs:\n// > <???> @ 0x10c288\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_538A0(__int64 a1, __int64 a2)\n{\n  __int64 result; // x0\n  __int64 v5; // x9\n  int v6; // w9\n\n  result = ((__int64 (*)(void))loc_525D0)();\n  if ( !(_DWORD)result )\n  {\n    v5 = *(_QWORD *)(a1 + 40);\n    if ( v5\n      && ((*(_BYTE *)(a1 + 56) & 1) != 0 || !*(_DWORD *)(a1 + 84)\n        ? (v6 = *(_DWORD *)(v5 + 68))\n        : (v6 = *(_DWORD *)(a1 + 92) + *(_DWORD *)(a1 + 88)),\n          (unsigned int)(v6 - 1) < HIDWORD(a2)) )\n    {\n      return 32;\n    }\n    else\n    {\n      if ( a2 )\n      {\n        if ( (*(_DWORD *)(*(_QWORD *)(a1 + 24) + 72LL) & 0x40000) != 0 )\n          *(_DWORD *)(a1 + 60) |= 0x20000u;\n      }\n      return sub_C98D8();\n    }\n  }\n  return result;\n}", "assembly": "; \n; sub_538A0 from 0x538a0 to 0x53990 (240 bytes)\n; \n; 1 xrefs:\n; > <???> @ 0x10c288\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, 0x538a0\nSTP             X20, X19, [SP,#0x20+var_10]                            ; +0x4, 0x538a4\nSTP             X29, X30, [SP,#0x20+var_s0]                            ; +0x8, 0x538a8\nLDR             X8, [X0,#0x18]                                         ; +0xc, 0x538ac\nADD             X29, SP, #0x20                                         ; +0x10, 0x538b0\nMOV             X21, X0                                                ; +0x14, 0x538b4\nMOV             X19, X1                                                ; +0x18, 0x538b8\nLDR             X20, [X8,#0x60]                                        ; +0x1c, 0x538bc\nBL              loc_525D0                                              ; +0x20, 0x538c0\nCBZ             W0, loc_538D0                                          ; +0x24, 0x538c4\nLDP             X29, X30, [SP,#0x20+var_s0]                            ; +0x28, 0x538c8\nB               loc_53E54                                              ; +0x2c, 0x538cc\nLDR             X9, [X21,#0x28]                                        ; +0x30, 0x538d0\nCBZ             X9, loc_53910                                          ; +0x34, 0x538d4\nLDRB            W10, [X21,#0x38]                                       ; +0x38, 0x538d8\nLSR             X8, X19, #0x20 ; ' '                                   ; +0x3c, 0x538dc\nTBNZ            W10, #0, loc_538F8                                     ; +0x40, 0x538e0\nLDR             W10, [X21,#0x54]                                       ; +0x44, 0x538e4\nCBZ             W10, loc_538F8                                         ; +0x48, 0x538e8\nLDP             W9, W10, [X21,#0x58]                                   ; +0x4c, 0x538ec\nADD             W9, W10, W9                                            ; +0x50, 0x538f0\nB               loc_538FC                                              ; +0x54, 0x538f4\nLDR             W9, [X9,#0x44]                                         ; +0x58, 0x538f8\nSUB             W9, W9, #1                                             ; +0x5c, 0x538fc\nCMP             W9, W8                                                 ; +0x60, 0x53900\nB.CS            loc_53910                                              ; +0x64, 0x53904\nMOV             W0, #0x20 ; ' '                                        ; +0x68, 0x53908\nB               loc_538C8                                              ; +0x6c, 0x5390c\nCBZ             X19, loc_5392C                                         ; +0x70, 0x53910\nLDR             X8, [X21,#0x18]                                        ; +0x74, 0x53914\nLDR             W8, [X8,#0x48]                                         ; +0x78, 0x53918\nTBZ             W8, #0x12, loc_5392C                                   ; +0x7c, 0x5391c\nLDR             W8, [X21,#0x3C]                                        ; +0x80, 0x53920\nORR             W8, W8, #0x20000                                       ; +0x84, 0x53924\nSTR             W8, [X21,#0x3C]                                        ; +0x88, 0x53928\nLDR             X0, [X21,#0x2E8]                                       ; +0x8c, 0x5392c\nCBZ             X0, loc_53944                                          ; +0x90, 0x53930\nMOV             W3, #1                                                 ; +0x94, 0x53934\nMOV             X1, X19                                                ; +0x98, 0x53938\nMOV             W2, WZR                                                ; +0x9c, 0x5393c\nB               loc_53958                                              ; +0xa0, 0x53940\nLDR             X0, [X21,#0x30]                                        ; +0xa4, 0x53944\nCBZ             X0, loc_53968                                          ; +0xa8, 0x53948\nMOV             W2, #1                                                 ; +0xac, 0x5394c\nMOV             W3, #1                                                 ; +0xb0, 0x53950\nMOV             X1, X19                                                ; +0xb4, 0x53954\nLDP             X29, X30, [SP,#0x20+var_s0]                            ; +0xb8, 0x53958\nLDP             X20, X19, [SP,#0x20+var_10]                            ; +0xbc, 0x5395c\nLDR             X21, [SP+0x20+var_20],#0x30                            ; +0xc0, 0x53960\nB               sub_C98D8                                              ; +0xc4, 0x53964\nLDR             X8, [X21,#0x298]                                       ; +0xc8, 0x53968\nCBZ             X8, loc_53978                                          ; +0xcc, 0x5396c\nADD             X0, X21, #0x70 ; 'p'                                   ; +0xd0, 0x53970\nB               loc_53934                                              ; +0xd4, 0x53974\nLDR             X0, [X21,#0x2E0]                                       ; +0xd8, 0x53978\nCBNZ            X0, loc_5394C                                          ; +0xdc, 0x5397c\nMOV             W2, #1                                                 ; +0xe0, 0x53980\nMOV             W3, #1                                                 ; +0xe4, 0x53984\nMOV             X0, X20                                                ; +0xe8, 0x53988\nB               loc_53954                                              ; +0xec, 0x5398c", "xrefs": ["<???> @ 0x10c288"], "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"}