{"type": "func", "start": 371308, "end": 371528, "name": "sub_5AA6C", "pseudocode": "// \n// sub_5AA6C from 0x5aa6c to 0x5ab48 (220 bytes)\n// \n// 5 xrefs:\n// > sub_60028 @ 0x600e8\n// > sub_6B00C @ 0x6b08c\n// > sub_6B00C @ 0x6b094\n// > sub_6C64C @ 0x6cc80\n// > sub_93B20 @ 0x93db0\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\ndouble __fastcall sub_5AA6C(__int64 a1)\n{\n  double result; // d0\n\n  *(_QWORD *)(a1 + 376) = a1 + 376;\n  *(_QWORD *)(a1 + 384) = a1 + 376;\n  __asm { FMOV            V0.2S, #1.0 }\n  *(_QWORD *)(a1 + 536) = _D0;\n  *(_QWORD *)(a1 + 48) = _D0;\n  *(_DWORD *)(a1 + 424) = -1;\n  *(_DWORD *)(a1 + 456) = -1;\n  *(_DWORD *)(a1 + 556) = 1194083328;\n  *(_QWORD *)(a1 + 480) = 0xFFFFFFFF00000080LL;\n  *(_QWORD *)(a1 + 156) = 0x4E6E6B283F800000LL;\n  *(_QWORD *)(a1 + 440) = a1 + 432;\n  *(_QWORD *)(a1 + 448) = 0;\n  *(_QWORD *)(a1 + 272) = a1 + 272;\n  *(_QWORD *)(a1 + 280) = a1 + 272;\n  *(_QWORD *)(a1 + 432) = a1 + 432;\n  *(_QWORD *)(a1 + 64) = 0;\n  *(_DWORD *)(a1 + 56) = 0;\n  *(_QWORD *)(a1 + 80) = 0;\n  *(_QWORD *)(a1 + 464) = 0;\n  *(_QWORD *)(a1 + 472) = 0;\n  *(_QWORD *)(a1 + 16) = 0;\n  *(_DWORD *)(a1 + 192) = 0;\n  *(_QWORD *)(a1 + 136) = 0;\n  *(_QWORD *)(a1 + 144) = 0;\n  *(_QWORD *)(a1 + 224) = 0;\n  *(_DWORD *)(a1 + 232) = 0;\n  *(_DWORD *)(a1 + 72) = 0;\n  *(_QWORD *)(a1 + 296) = 0;\n  *(_QWORD *)(a1 + 304) = 0;\n  *(_QWORD *)(a1 + 288) = 0;\n  *(_BYTE *)(a1 + 312) = 0;\n  *(_QWORD *)(a1 + 392) = 0;\n  *(_QWORD *)(a1 + 400) = a1 + 400;\n  *(_QWORD *)(a1 + 408) = a1 + 400;\n  *(_QWORD *)(a1 + 416) = 0;\n  *(_QWORD *)a1 = off_10C620;\n  *(_QWORD *)(a1 + 8) = 0;\n  *(_DWORD *)(a1 + 164) = 1065353216;\n  *(_QWORD *)(a1 + 120) = 0x3F8000003F800000LL;\n  *(_QWORD *)(a1 + 128) = 0;\n  *(_DWORD *)(a1 + 544) = 1065353216;\n  *(_QWORD *)(a1 + 520) = a1 + 512;\n  *(_QWORD *)(a1 + 512) = a1 + 512;\n  *(_QWORD *)(a1 + 248) = 0x44BB800000000000LL;\n  *(_QWORD *)(a1 + 528) = 0;\n  sub_560D4(a1, 0);\n  return result;\n}", "assembly": "; \n; sub_5AA6C from 0x5aa6c to 0x5ab48 (220 bytes)\n; \n; 5 xrefs:\n; > sub_60028 @ 0x600e8\n; > sub_6B00C @ 0x6b08c\n; > sub_6B00C @ 0x6b094\n; > sub_6C64C @ 0x6cc80\n; > sub_93B20 @ 0x93db0\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\nADD             X9, X0, #0x178                                         ; +0x0, 0x5aa6c\nSTP             X9, X9, [X0,#0x178]                                    ; +0x4, 0x5aa70\nADRP            X9, #qword_2EE00@PAGE                                  ; +0x8, 0x5aa74\nFMOV            V0.2S, #1.0                                            ; +0xc, 0x5aa78\nMOV             W12, #0xFFFFFFFF                                       ; +0x10, 0x5aa7c\nSTR             D0, [X0,#0x218]                                        ; +0x14, 0x5aa80\nSTR             D0, [X0,#0x30]                                         ; +0x18, 0x5aa84\nLDR             D0, [X9,#qword_2EE00@PAGEOFF]                          ; +0x1c, 0x5aa88\nSTR             W12, [X0,#0x1A8]                                       ; +0x20, 0x5aa8c\nSTR             W12, [X0,#0x1C8]                                       ; +0x24, 0x5aa90\nMOV             W12, #0x472C4400                                       ; +0x28, 0x5aa94\nSTR             W12, [X0,#0x22C]                                       ; +0x30, 0x5aa9c\nADRP            X12, #qword_2ED58@PAGE                                 ; +0x34, 0x5aaa0\nSTR             D0, [X0,#0x1E0]                                        ; +0x38, 0x5aaa4\nLDR             D0, [X12,#qword_2ED58@PAGEOFF]                         ; +0x3c, 0x5aaa8\nADRP            X12, #qword_2EB80@PAGE                                 ; +0x40, 0x5aaac\nADD             X8, X0, #0x110                                         ; +0x44, 0x5aab0\nADRP            X10, #off_10C620@PAGE                                  ; +0x48, 0x5aab4\nSTUR            D0, [X0,#0x9C]                                         ; +0x4c, 0x5aab8\nLDR             D0, [X12,#qword_2EB80@PAGEOFF]                         ; +0x50, 0x5aabc\nADD             X13, X0, #0x1B0                                        ; +0x54, 0x5aac0\nADD             X10, X10, #off_10C620@PAGEOFF                          ; +0x58, 0x5aac4\nADD             X11, X0, #0x190                                        ; +0x5c, 0x5aac8\nSTP             X13, XZR, [X0,#0x1B8]                                  ; +0x60, 0x5aacc\nSTP             X8, X8, [X0,#0x110]                                    ; +0x64, 0x5aad0\nADD             X8, X0, #0x200                                         ; +0x68, 0x5aad4\nSTR             X13, [X0,#0x1B0]                                       ; +0x6c, 0x5aad8\nMOV             X13, #0x3F8000003F800000                               ; +0x70, 0x5aadc\nMOV             W9, #0x3F800000                                        ; +0x74, 0x5aae0\nMOV             X1, XZR                                                ; +0x78, 0x5aae4\nSTR             XZR, [X0,#0x40]                                        ; +0x7c, 0x5aae8\nSTR             WZR, [X0,#0x38]                                        ; +0x80, 0x5aaec\nSTR             XZR, [X0,#0x50]                                        ; +0x84, 0x5aaf0\nSTP             XZR, XZR, [X0,#0x1D0]                                  ; +0x88, 0x5aaf4\nSTR             XZR, [X0,#0x10]                                        ; +0x8c, 0x5aaf8\nSTR             WZR, [X0,#0xC0]                                        ; +0x90, 0x5aafc\nSTP             XZR, XZR, [X0,#0x88]                                   ; +0x94, 0x5ab00\nSTR             XZR, [X0,#0xE0]                                        ; +0x98, 0x5ab04\nSTR             WZR, [X0,#0xE8]                                        ; +0x9c, 0x5ab08\nSTR             WZR, [X0,#0x48]                                        ; +0xa0, 0x5ab0c\nSTP             XZR, XZR, [X0,#0x128]                                  ; +0xa4, 0x5ab10\nSTR             XZR, [X0,#0x120]                                       ; +0xa8, 0x5ab14\nSTRB            WZR, [X0,#0x138]                                       ; +0xac, 0x5ab18\nSTP             XZR, X11, [X0,#0x188]                                  ; +0xb0, 0x5ab1c\nSTP             X11, XZR, [X0,#0x198]                                  ; +0xb4, 0x5ab20\nSTP             X10, XZR, [X0]                                         ; +0xb8, 0x5ab24\nSTR             W9, [X0,#0xA4]                                         ; +0xbc, 0x5ab28\nSTP             X13, XZR, [X0,#0x78]                                   ; +0xc0, 0x5ab2c\nSTR             W9, [X0,#0x220]                                        ; +0xc4, 0x5ab30\nSTR             X8, [X0,#0x208]                                        ; +0xc8, 0x5ab34\nSTR             X8, [X0,#0x200]                                        ; +0xcc, 0x5ab38\nSTR             D0, [X0,#0xF8]                                         ; +0xd0, 0x5ab3c\nSTR             XZR, [X0,#0x210]                                       ; +0xd4, 0x5ab40\nB               sub_560D4                                              ; +0xd8, 0x5ab44", "xrefs": ["sub_60028 @ 0x600e8", "sub_6B00C @ 0x6b08c", "sub_6B00C @ 0x6b094", "sub_6C64C @ 0x6cc80", "sub_93B20 @ 0x93db0"], "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"}