{"type": "func", "start": 366012, "end": 366272, "name": "sub_595BC", "pseudocode": "// \n// sub_595BC from 0x595bc to 0x596c0 (260 bytes)\n// \n// 2 xrefs:\n// > sub_59FEC @ 0x5a0e8\n// > sub_5A364 @ 0x5a41c\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 sub_595BC()\n{\n  __int64 v0; // x19\n  long double v1; // q8\n  __int64 v2; // x0\n  __int64 v3; // x8\n  __int64 v4; // x8\n  __int64 v5; // x9\n  __int64 v6; // x9\n  float v7; // s0\n  int v8; // w8\n  int v9; // w20\n  __int64 result; // x0\n  __int64 v11; // x2\n  __int64 v12; // x3\n  __int64 v13; // [xsp+8h] [xbp-28h] BYREF\n\n  v2 = sub_5C6DC();\n  if ( !v3 )\n    return 30;\n  sub_5C688(v2);\n  if ( !v5 )\n    return 30;\n  v6 = *(_QWORD *)(v4 + 40);\n  if ( v6 )\n  {\n    v7 = *(float *)(v6 + 108);\n    v8 = *(_DWORD *)(v6 + 112);\n    v9 = *(_DWORD *)(v6 + 116);\n  }\n  else\n  {\n    if ( !*(_QWORD *)(v4 + 48) )\n      return 28;\n    v9 = 0;\n    v8 = 128;\n    v7 = (float)*(int *)(*(_QWORD *)(v0 + 8) + 1744LL);\n  }\n  *(_DWORD *)(v0 + 480) = v8;\n  *(_OWORD *)(v0 + 192) = 0u;\n  *(_OWORD *)(v0 + 208) = 0u;\n  sub_596C0(v0, v7);\n  LODWORD(v1) = 1.0;\n  (*(void (__fastcall **)(__int64, _QWORD, long double))(*(_QWORD *)v0 + 32LL))(v0, 0, v1);\n  (*(void (__fastcall **)(__int64, long double))(*(_QWORD *)v0 + 72LL))(v0, v1);\n  result = sub_5C50C(v0, 0xFFFFFFFFLL, &v13);\n  if ( !(_DWORD)result )\n  {\n    if ( v9 == 3 )\n    {\n      v11 = 1;\n      v12 = 2;\n    }\n    else if ( v9 == 4 )\n    {\n      v11 = 2;\n      v12 = 3;\n    }\n    else\n    {\n      v12 = 0;\n      v11 = 0;\n    }\n    return sub_C7E34(v13, 0, v11, v12);\n  }\n  return result;\n}", "assembly": "; \n; sub_595BC from 0x595bc to 0x596c0 (260 bytes)\n; \n; 2 xrefs:\n; > sub_59FEC @ 0x5a0e8\n; > sub_5A364 @ 0x5a41c\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             D8, [SP,#var_30]!                                      ; +0x0, 0x595bc\nSTP             X20, X19, [SP,#0x30+var_20]                            ; +0x4, 0x595c0\nSTP             X29, X30, [SP,#0x30+var_10]                            ; +0x8, 0x595c4\nBL              sub_5C6DC                                              ; +0xc, 0x595c8\nCBZ             X8, loc_595EC                                          ; +0x10, 0x595cc\nBL              sub_5C688                                              ; +0x14, 0x595d0\nCBZ             X9, loc_595EC                                          ; +0x18, 0x595d4\nLDR             X9, [X8,#0x28]                                         ; +0x1c, 0x595d8\nCBZ             X9, loc_595F4                                          ; +0x20, 0x595dc\nLDR             S0, [X9,#0x6C]                                         ; +0x24, 0x595e0\nLDP             W8, W20, [X9,#0x70]                                    ; +0x28, 0x595e4\nB               loc_59610                                              ; +0x2c, 0x595e8\nMOV             W0, #0x1E                                              ; +0x30, 0x595ec\nB               loc_596B0                                              ; +0x34, 0x595f0\nLDR             X8, [X8,#0x30]                                         ; +0x38, 0x595f4\nCBZ             X8, loc_59688                                          ; +0x3c, 0x595f8\nLDR             X8, [X19,#8]                                           ; +0x40, 0x595fc\nMOV             W20, WZR                                               ; +0x44, 0x59600\nLDR             S0, [X8,#0x6D0]                                        ; +0x48, 0x59604\nMOV             W8, #0x80                                              ; +0x4c, 0x59608\nSCVTF           S0, S0                                                 ; +0x50, 0x5960c\nMOVI            V1.2D, #0                                              ; +0x54, 0x59610\nMOV             X0, X19                                                ; +0x58, 0x59614\nSTR             W8, [X19,#0x1E0]                                       ; +0x5c, 0x59618\nSTP             Q1, Q1, [X19,#0xC0]                                    ; +0x60, 0x5961c\nBL              sub_596C0                                              ; +0x64, 0x59620\nLDR             X8, [X19]                                              ; +0x68, 0x59624\nFMOV            S8, #1.0                                               ; +0x6c, 0x59628\nMOV             X0, X19                                                ; +0x70, 0x5962c\nMOV             V0.16B, V8.16B                                         ; +0x74, 0x59630\nLDR             X8, [X8,#0x20]                                         ; +0x78, 0x59634\nMOV             W1, WZR                                                ; +0x7c, 0x59638\nBLR             X8                                                     ; +0x80, 0x5963c\nLDR             X8, [X19]                                              ; +0x84, 0x59640\nMOV             X0, X19                                                ; +0x88, 0x59644\nMOV             V0.16B, V8.16B                                         ; +0x8c, 0x59648\nLDR             X8, [X8,#0x48]                                         ; +0x90, 0x5964c\nBLR             X8                                                     ; +0x94, 0x59650\nLDR             X8, [X19]                                              ; +0x98, 0x59654\nADD             X2, SP, #0x30+var_28                                   ; +0x9c, 0x59658\nMOV             W1, #0xFFFFFFFF                                        ; +0xa0, 0x5965c\nMOV             X0, X19                                                ; +0xa4, 0x59660\nBL              sub_5C50C                                              ; +0xa8, 0x59664\nCBNZ            W0, loc_596B0                                          ; +0xac, 0x59668\nCMP             W20, #3                                                ; +0xb0, 0x5966c\nB.EQ            loc_59690                                              ; +0xb4, 0x59670\nCMP             W20, #4                                                ; +0xb8, 0x59674\nB.NE            loc_5969C                                              ; +0xbc, 0x59678\nMOV             W2, #2                                                 ; +0xc0, 0x5967c\nMOV             W3, #3                                                 ; +0xc4, 0x59680\nB               loc_596A4                                              ; +0xc8, 0x59684\nMOV             W0, #0x1C                                              ; +0xcc, 0x59688\nB               loc_596B0                                              ; +0xd0, 0x5968c\nMOV             W2, #1                                                 ; +0xd4, 0x59690\nMOV             W3, #2                                                 ; +0xd8, 0x59694\nB               loc_596A4                                              ; +0xdc, 0x59698\nMOV             W3, WZR                                                ; +0xe0, 0x5969c\nMOV             W2, WZR                                                ; +0xe4, 0x596a0\nLDR             X0, [SP,#0x30+var_28]                                  ; +0xe8, 0x596a4\nMOV             W1, WZR                                                ; +0xec, 0x596a8\nBL              sub_C7E34                                              ; +0xf0, 0x596ac\nLDP             X29, X30, [SP,#0x30+var_10]                            ; +0xf4, 0x596b0\nLDP             X20, X19, [SP,#0x30+var_20]                            ; +0xf8, 0x596b4\nLDR             D8, [SP+0x30+var_30],#0x30                             ; +0xfc, 0x596b8\nRET                                                                    ; +0x100, 0x596bc", "xrefs": ["sub_59FEC @ 0x5a0e8", "sub_5A364 @ 0x5a41c"], "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"}