{"type": "func", "start": 337080, "end": 337884, "name": "sub_524B8", "pseudocode": "// \n// sub_524B8 from 0x524b8 to 0x527dc (804 bytes)\n// \n// 4 xrefs:\n// > sub_5215C @ 0x5216c\n// > sub_52858 @ 0x5286c\n// > <???> @ 0x10c128\n// > <???> @ 0x10c318\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_524B8(__int64 a1, int a2, __int64 a3, __int64 a4)\n{\n  *(_QWORD *)(a1 + 32) = a4;\n  *(_QWORD *)(a1 + 40) = 0;\n  *(_QWORD *)(a1 + 56) = 0;\n  *(_QWORD *)(a1 + 72) = 0;\n  *(_QWORD *)(a1 + 8) = a3;\n  *(_QWORD *)(a1 + 80) = 0xFFFFFFFF00000000LL;\n  *(_DWORD *)(a1 + 64) = a2;\n  return 0;\n}", "assembly": "; \n; sub_524B8 from 0x524b8 to 0x527dc (804 bytes)\n; \n; 4 xrefs:\n; > sub_5215C @ 0x5216c\n; > sub_52858 @ 0x5286c\n; > <???> @ 0x10c128\n; > <???> @ 0x10c318\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\nMOVI            D0, #0xFFFFFFFF00000000                                ; +0x0, 0x524b8\nSTP             X3, XZR, [X0,#0x20]                                    ; +0x4, 0x524bc\nSTR             XZR, [X0,#0x38]                                        ; +0x8, 0x524c0\nSTR             XZR, [X0,#0x48]                                        ; +0xc, 0x524c4\nSTR             X2, [X0,#8]                                            ; +0x10, 0x524c8\nSTR             D0, [X0,#0x50]                                         ; +0x14, 0x524cc\nSTR             W1, [X0,#0x40]                                         ; +0x18, 0x524d0\nB               loc_527CC                                              ; +0x1c, 0x524d4\nLDR             X8, [X0]                                               ; +0x20, 0x524d8\nLDR             X1, [X8,#0x50]                                         ; +0x24, 0x524dc\nBR              X1                                                     ; +0x28, 0x524e0\nLDR             X8, [X0,#0x10]                                         ; +0x2c, 0x524e4\nSTR             XZR, [X0,#0x48]                                        ; +0x30, 0x524e8\nCBZ             X8, loc_524FC                                          ; +0x34, 0x524ec\nLDR             W9, [X8,#4]                                            ; +0x38, 0x524f0\nADD             W9, W9, #1                                             ; +0x3c, 0x524f4\nSTR             W9, [X8,#4]                                            ; +0x40, 0x524f8\nB               loc_527CC                                              ; +0x44, 0x524fc\nLDR             X8, [X0,#0x10]                                         ; +0x48, 0x52500\nCBZ             X8, loc_52514                                          ; +0x4c, 0x52504\nLDR             W9, [X8,#4]                                            ; +0x50, 0x52508\nADD             W9, W9, #1                                             ; +0x54, 0x5250c\nSTR             W9, [X8,#4]                                            ; +0x58, 0x52510\nSTR             XZR, [X0,#0x48]                                        ; +0x5c, 0x52514\nB               loc_527CC                                              ; +0x60, 0x52518\nB               loc_527CC                                              ; +0x64, 0x5251c\nB               loc_527CC                                              ; +0x68, 0x52520\nLDR             W8, [X0,#0x3C]                                         ; +0x6c, 0x52524\nMOV             W9, #0xFFFFFF2F                                        ; +0x70, 0x52528\nAND             W8, W8, W9                                             ; +0x74, 0x5252c\nORR             W8, W8, #0x40 ; '@'                                    ; +0x78, 0x52530\nSTR             W8, [X0,#0x3C]                                         ; +0x7c, 0x52534\nB               loc_527CC                                              ; +0x80, 0x52538\nSTP             X29, X30, [SP,#var_10]!                                ; +0x84, 0x5253c\nLDR             X8, [X0,#0x10]                                         ; +0x88, 0x52540\nMOV             X29, SP                                                ; +0x8c, 0x52544\nCBZ             X8, loc_52558                                          ; +0x90, 0x52548\nLDR             W9, [X8,#4]                                            ; +0x94, 0x5254c\nSUB             W9, W9, #1                                             ; +0x98, 0x52550\nSTR             W9, [X8,#4]                                            ; +0x9c, 0x52554\nLDR             W8, [X0,#0x3C]                                         ; +0xa0, 0x52558\nMOV             W9, #0xFFFDFE0F                                        ; +0xa4, 0x5255c\nLDR             X10, [X0]                                              ; +0xac, 0x52564\nAND             W8, W8, W9                                             ; +0xb0, 0x52568\nORR             W8, W8, #0x80                                          ; +0xb4, 0x5256c\nSTR             W8, [X0,#0x3C]                                         ; +0xb8, 0x52570\nLDR             X8, [X10,#0xD0]                                        ; +0xbc, 0x52574\nBLR             X8                                                     ; +0xc0, 0x52578\nMOV             W0, WZR                                                ; +0xc4, 0x5257c\nLDP             X29, X30, [SP+0x10+var_10],#0x10                       ; +0xc8, 0x52580\nRET                                                                    ; +0xcc, 0x52584\nLDR             W8, [X0,#0x3C]                                         ; +0xd0, 0x52588\nTST             W1, #1                                                 ; +0xd4, 0x5258c\nAND             W9, W8, #0xFFFFFFDF                                    ; +0xd8, 0x52590\nORR             W8, W8, #0x20 ; ' '                                    ; +0xdc, 0x52594\nCSEL            W8, W8, W9, NE                                         ; +0xe0, 0x52598\nSTR             W8, [X0,#0x3C]                                         ; +0xe4, 0x5259c\nB               loc_527CC                                              ; +0xe8, 0x525a0\nCBZ             X1, loc_525C0                                          ; +0xec, 0x525a4\nMOV             X8, X0                                                 ; +0xf0, 0x525a8\nLDRB            W8, [X8,#0x3C]                                         ; +0xf4, 0x525ac\nMOV             W0, WZR                                                ; +0xf8, 0x525b0\nUBFX            W8, W8, #5, #1                                         ; +0xfc, 0x525b4\nSTRB            W8, [X1]                                               ; +0x100, 0x525b8\nRET                                                                    ; +0x104, 0x525bc\nB               loc_527D4                                              ; +0x108, 0x525c0\nB               loc_527CC                                              ; +0x10c, 0x525c4\nB               loc_527CC                                              ; +0x110, 0x525c8\nB               loc_527CC                                              ; +0x114, 0x525cc\nSTR             X1, [X0,#0x48]                                         ; +0x118, 0x525d0\nB               loc_527CC                                              ; +0x11c, 0x525d4\nCBZ             X1, loc_525F0                                          ; +0x120, 0x525d8\nMOV             X8, X0                                                 ; +0x124, 0x525dc\nLDR             X8, [X8,#0x48]                                         ; +0x128, 0x525e0\nMOV             W0, WZR                                                ; +0x12c, 0x525e4\nSTR             X8, [X1]                                               ; +0x130, 0x525e8\nRET                                                                    ; +0x134, 0x525ec\nB               loc_527D4                                              ; +0x138, 0x525f0\nLDR             X9, [X0,#0x28]                                         ; +0x13c, 0x525f4\nCBZ             X9, loc_52610                                          ; +0x140, 0x525f8\nLDR             W9, [X9,#0x44]                                         ; +0x144, 0x525fc\nADD             W10, W2, W1                                            ; +0x148, 0x52600\nCMP             W9, W1                                                 ; +0x14c, 0x52604\nCCMP            W10, W9, #2, HI                                        ; +0x150, 0x52608\nB.LS            loc_52614                                              ; +0x154, 0x5260c\nB               loc_527D4                                              ; +0x158, 0x52610\nMOV             X8, X0                                                 ; +0x15c, 0x52614\nMOV             W0, WZR                                                ; +0x160, 0x52618\nSTP             W1, W2, [X8,#0x58]                                     ; +0x164, 0x5261c\nRET                                                                    ; +0x168, 0x52620\nSTR             W1, [X0,#0x54]                                         ; +0x16c, 0x52624\nB               loc_527CC                                              ; +0x170, 0x52628\nCBZ             X1, loc_52644                                          ; +0x174, 0x5262c\nMOV             X8, X0                                                 ; +0x178, 0x52630\nLDR             W8, [X8,#0x54]                                         ; +0x17c, 0x52634\nMOV             W0, WZR                                                ; +0x180, 0x52638\nSTR             W8, [X1]                                               ; +0x184, 0x5263c\nRET                                                                    ; +0x188, 0x52640\nB               loc_527D4                                              ; +0x18c, 0x52644\nB               loc_527CC                                              ; +0x190, 0x52648\nB               loc_527CC                                              ; +0x194, 0x5264c\nCBZ             X1, loc_52674                                          ; +0x198, 0x52650\nMOV             X8, X0                                                 ; +0x19c, 0x52654\nLDR             W8, [X8,#0x3C]                                         ; +0x1a0, 0x52658\nMOV             W9, #0x50 ; 'P'                                        ; +0x1a4, 0x5265c\nMOV             W0, WZR                                                ; +0x1a8, 0x52660\nTST             W8, W9                                                 ; +0x1ac, 0x52664\nCSET            W8, NE                                                 ; +0x1b0, 0x52668\nSTRB            W8, [X1]                                               ; +0x1b4, 0x5266c\nRET                                                                    ; +0x1b8, 0x52670\nB               loc_527D4                                              ; +0x1bc, 0x52674\nCBZ             X1, loc_52688                                          ; +0x1c0, 0x52678\nMOV             W0, WZR; void *                                        ; +0x1c4, 0x5267c\nSTRB            WZR, [X1]                                              ; +0x1c8, 0x52680\nRET                                                                    ; +0x1cc, 0x52684\nB               loc_527D4                                              ; +0x1d0, 0x52688\nTST             W1, #7                                                 ; +0x1d4, 0x5268c\nB.EQ            loc_526C4                                              ; +0x1d8, 0x52690\nLDR             W8, [X0,#0x38]                                         ; +0x1dc, 0x52694\nAND             W8, W8, #0xFFFFFFF8                                    ; +0x1e0, 0x52698\nSTR             W8, [X0,#0x38]                                         ; +0x1e4, 0x5269c\nTBNZ            W1, #0, loc_526B4                                      ; +0x1e8, 0x526a0\nTBNZ            W1, #1, loc_526BC                                      ; +0x1ec, 0x526a4\nTBZ             W1, #2, loc_526C4                                      ; +0x1f0, 0x526a8\nORR             W8, W8, #4                                             ; +0x1f4, 0x526ac\nB               loc_526C0                                              ; +0x1f8, 0x526b0\nORR             W8, W8, #1                                             ; +0x1fc, 0x526b4\nB               loc_526C0                                              ; +0x200, 0x526b8\nORR             W8, W8, #2                                             ; +0x204, 0x526bc\nSTR             W8, [X0,#0x38]                                         ; +0x208, 0x526c0\nTBNZ            W1, #0x12, loc_526D4                                   ; +0x20c, 0x526c4\nTBZ             W1, #0x13, loc_526E8                                   ; +0x210, 0x526c8\nMOV             W8, #0x80000                                           ; +0x214, 0x526cc\nB               loc_526D8                                              ; +0x218, 0x526d0\nMOV             W8, #0x40000                                           ; +0x21c, 0x526d4\nLDR             W9, [X0,#0x38]                                         ; +0x220, 0x526d8\nAND             W9, W9, #0xFFF3FFFF                                    ; +0x224, 0x526dc\nORR             W8, W9, W8                                             ; +0x228, 0x526e0\nSTR             W8, [X0,#0x38]                                         ; +0x22c, 0x526e4\nTBNZ            W1, #0x14, loc_5270C                                   ; +0x230, 0x526e8\nTBNZ            W1, #0x15, loc_52720                                   ; +0x234, 0x526ec\nTBNZ            W1, #0x16, loc_52734                                   ; +0x238, 0x526f0\nTBNZ            W1, #0x17, loc_52748                                   ; +0x23c, 0x526f4\nLDR             W8, [X0,#0x38]                                         ; +0x240, 0x526f8\nTBZ             W1, #0x1A, loc_5275C                                   ; +0x244, 0x526fc\nAND             W8, W8, #0xFF0FFFFF                                    ; +0x248, 0x52700\nORR             W8, W8, #0x4000000                                     ; +0x24c, 0x52704\nB               loc_52758                                              ; +0x250, 0x52708\nLDR             W8, [X0,#0x38]                                         ; +0x254, 0x5270c\nMOV             W9, #0xFB0FFFFF                                        ; +0x258, 0x52710\nAND             W8, W8, W9                                             ; +0x25c, 0x52714\nORR             W8, W8, #0x100000                                      ; +0x260, 0x52718\nB               loc_52758                                              ; +0x264, 0x5271c\nLDR             W8, [X0,#0x38]                                         ; +0x268, 0x52720\nMOV             W9, #0xFB0FFFFF                                        ; +0x26c, 0x52724\nAND             W8, W8, W9                                             ; +0x270, 0x52728\nORR             W8, W8, #0x200000                                      ; +0x274, 0x5272c\nB               loc_52758                                              ; +0x278, 0x52730\nLDR             W8, [X0,#0x38]                                         ; +0x27c, 0x52734\nMOV             W9, #0xFB0FFFFF                                        ; +0x280, 0x52738\nAND             W8, W8, W9                                             ; +0x284, 0x5273c\nORR             W8, W8, #0x400000                                      ; +0x288, 0x52740\nB               loc_52758                                              ; +0x28c, 0x52744\nLDR             W8, [X0,#0x38]                                         ; +0x290, 0x52748\nMOV             W9, #0xFB0FFFFF                                        ; +0x294, 0x5274c\nAND             W8, W8, W9                                             ; +0x298, 0x52750\nORR             W8, W8, #0x800000                                      ; +0x29c, 0x52754\nSTR             W8, [X0,#0x38]                                         ; +0x2a0, 0x52758\nAND             W9, W8, #0xBFFFFFFF                                    ; +0x2a4, 0x5275c\nORR             W8, W8, #0x40000000                                    ; +0x2a8, 0x52760\nTST             W1, #0x40000000                                        ; +0x2ac, 0x52764\nCSEL            W8, W9, W8, EQ                                         ; +0x2b0, 0x52768\nAND             W9, W8, #0x7FFFFFFF                                    ; +0x2b4, 0x5276c\nORR             W8, W8, #0x80000000                                    ; +0x2b8, 0x52770\nCMP             W1, #0                                                 ; +0x2bc, 0x52774\nCSEL            W8, W8, W9, LT                                         ; +0x2c0, 0x52778\nSTR             W8, [X0,#0x38]                                         ; +0x2c4, 0x5277c\nTBNZ            W1, #3, loc_52798                                      ; +0x2c8, 0x52780\nTBZ             W1, #4, loc_527C0                                      ; +0x2cc, 0x52784\nAND             W8, W8, #0xFFFFFFE7                                    ; +0x2d0, 0x52788\nORR             W8, W8, #0x10                                          ; +0x2d4, 0x5278c\nSTR             W8, [X0,#0x38]                                         ; +0x2d8, 0x52790\nB               loc_527C0                                              ; +0x2dc, 0x52794\nLDR             X9, [X0,#0x18]                                         ; +0x2e0, 0x52798\nCBZ             X9, loc_527C0                                          ; +0x2e4, 0x5279c\nAND             W8, W8, #0xFFFFFFE7                                    ; +0x2e8, 0x527a0\nMOV             W10, #0x3F800000                                       ; +0x2ec, 0x527a4\nFMOV            V0.2S, #1.0                                            ; +0x2f0, 0x527a8\nORR             W8, W8, #8                                             ; +0x2f4, 0x527ac\nSTR             W8, [X0,#0x38]                                         ; +0x2f8, 0x527b0\nSTR             WZR, [X9,#0xC0]                                        ; +0x2fc, 0x527b4\nSTR             W10, [X9,#0xA4]                                        ; +0x300, 0x527b8\nSTR             D0, [X9,#0x78]                                         ; +0x304, 0x527bc\nB               loc_527CC                                              ; +0x308, 0x527c0\nB               loc_527CC                                              ; +0x30c, 0x527c4\nB               ._ZdlPv; operator delete(void *)                       ; +0x310, 0x527c8\nMOV             W0, WZR                                                ; +0x314, 0x527cc\nRET                                                                    ; +0x318, 0x527d0\nMOV             W0, #0x1F                                              ; +0x31c, 0x527d4\nRET                                                                    ; +0x320, 0x527d8", "xrefs": ["sub_5215C @ 0x5216c", "sub_52858 @ 0x5286c", "<???> @ 0x10c128", "<???> @ 0x10c318"], "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"}