{"type": "func", "start": 384616, "end": 384884, "name": "sub_5DE68", "pseudocode": "// \n// sub_5DE68 from 0x5de68 to 0x5df74 (268 bytes)\n// \n// 1 xrefs:\n// > FMOD::Geometry::setPolygonVertex @ 0xd51b0\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_5DE68()\n{\n  __int64 v0; // x19\n  __int64 v1; // x8\n  __int64 *v2; // x3\n  __int64 *v3; // x20\n  int v4; // w2\n  int v5; // w22\n  int v6; // w1\n  int v7; // w21\n  __int64 v8; // x0\n  __int64 v9; // x0\n  long double v10; // q0\n  unsigned int v11; // w23\n  __int64 v12; // x21\n  __int64 v13; // x9\n  _DWORD *v14; // x8\n  __int64 v15; // x10\n\n  sub_5F2A0();\n  v3 = v2;\n  v5 = v4;\n  v7 = v6;\n  v8 = sub_5F218(*(_QWORD *)(v1 + 400));\n  v9 = sub_5F23C(v8);\n  if ( v7 < 0 || *(_DWORD *)(v0 + 44) <= v7 || v5 < 0 )\n  {\n    v11 = 31;\n  }\n  else\n  {\n    v11 = 31;\n    if ( v3 )\n    {\n      v12 = *(_QWORD *)(v0 + 64) + *(int *)(*(_QWORD *)(v0 + 48) + 4LL * v7);\n      if ( *(unsigned __int16 *)(v12 + 184) > v5 )\n      {\n        v13 = v12 + 188;\n        v14 = (_DWORD *)(v12 + 188 + 12LL * v5);\n        LODWORD(v10) = *v14;\n        if ( *(float *)v14 != *(float *)v3\n          || (LODWORD(v10) = *(_DWORD *)(v13 + 12LL * v5 + 4), *(float *)&v10 != *((float *)v3 + 1))\n          || (LODWORD(v10) = *(_DWORD *)(v13 + 12LL * v5 + 8), *(float *)&v10 != *((float *)v3 + 2)) )\n        {\n          v15 = *v3;\n          v14[2] = *((_DWORD *)v3 + 2);\n          *(_QWORD *)v14 = v15;\n          if ( (*(_BYTE *)(v12 + 24) & 0x40) != 0 )\n          {\n            v9 = sub_60D14(v0 + 272);\n            *(_QWORD *)(v12 + 72) = *(_QWORD *)(v0 + 80);\n            *(_QWORD *)(v0 + 80) = v12;\n          }\n          v9 = sub_5F298(v9, v10);\n        }\n        v11 = 0;\n      }\n    }\n  }\n  sub_5F234(v9);\n  return v11;\n}", "assembly": "; \n; sub_5DE68 from 0x5de68 to 0x5df74 (268 bytes)\n; \n; 1 xrefs:\n; > FMOD::Geometry::setPolygonVertex @ 0xd51b0\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\nSUB             SP, SP, #0x50                                          ; +0x0, 0x5de68\nSTP             X22, X21, [SP,#0x50+var_30]                            ; +0x4, 0x5de6c\nSTP             X20, X19, [SP,#0x50+var_20]                            ; +0x8, 0x5de70\nSTP             X29, X30, [SP,#0x50+var_10]                            ; +0xc, 0x5de74\nBL              sub_5F2A0                                              ; +0x10, 0x5de78\nSTR             X23, [SP,#0x50+var_40]                                 ; +0x14, 0x5de7c\nADD             X29, SP, #0x50+var_10                                  ; +0x18, 0x5de80\nLDR             X0, [X8,#0x190]                                        ; +0x1c, 0x5de84\nMOV             X20, X3                                                ; +0x20, 0x5de88\nMOV             W22, W2                                                ; +0x24, 0x5de8c\nMOV             W21, W1                                                ; +0x28, 0x5de90\nBL              sub_5F218                                              ; +0x2c, 0x5de94\nBL              sub_5F23C                                              ; +0x30, 0x5de98\nTBNZ            W21, #0x1F, loc_5DF60                                  ; +0x34, 0x5de9c\nLDR             W8, [X19,#0x2C]                                        ; +0x38, 0x5dea0\nCMP             W8, W21                                                ; +0x3c, 0x5dea4\nB.LE            loc_5DF60                                              ; +0x40, 0x5dea8\nTBNZ            W22, #0x1F, loc_5DF60                                  ; +0x44, 0x5deac\nMOV             W23, #0x1F                                             ; +0x48, 0x5deb0\nCBZ             X20, loc_5DF64                                         ; +0x4c, 0x5deb4\nLDR             X8, [X19,#0x30]                                        ; +0x50, 0x5deb8\nLDR             X9, [X19,#0x40]                                        ; +0x54, 0x5debc\nLDRSW           X8, [X8,W21,SXTW#2]                                    ; +0x58, 0x5dec0\nADD             X21, X9, X8                                            ; +0x5c, 0x5dec4\nLDRH            W8, [X21,#0xB8]                                        ; +0x60, 0x5dec8\nCMP             W8, W22                                                ; +0x64, 0x5decc\nB.LE            loc_5DF64                                              ; +0x68, 0x5ded0\nADD             X9, X21, #0xBC                                         ; +0x6c, 0x5ded4\nMOV             W8, #0xC                                               ; +0x70, 0x5ded8\nSMADDL          X8, W22, W8, X9                                        ; +0x74, 0x5dedc\nLDR             S0, [X8]                                               ; +0x78, 0x5dee0\nLDR             S1, [X20]                                              ; +0x7c, 0x5dee4\nFCMP            S0, S1                                                 ; +0x80, 0x5dee8\nB.NE            loc_5DF24                                              ; +0x84, 0x5deec\nSXTW            X10, W22                                               ; +0x88, 0x5def0\nMOV             W11, #0xC                                              ; +0x8c, 0x5def4\nMADD            X11, X10, X11, X9                                      ; +0x90, 0x5def8\nLDR             S0, [X11,#4]                                           ; +0x94, 0x5defc\nLDR             S1, [X20,#4]                                           ; +0x98, 0x5df00\nFCMP            S0, S1                                                 ; +0x9c, 0x5df04\nB.NE            loc_5DF24                                              ; +0xa0, 0x5df08\nMOV             W11, #0xC                                              ; +0xa4, 0x5df0c\nMADD            X9, X10, X11, X9                                       ; +0xa8, 0x5df10\nLDR             S0, [X9,#8]                                            ; +0xac, 0x5df14\nLDR             S1, [X20,#8]                                           ; +0xb0, 0x5df18\nFCMP            S0, S1                                                 ; +0xb4, 0x5df1c\nB.EQ            loc_5DF58                                              ; +0xb8, 0x5df20\nLDR             W9, [X20,#8]                                           ; +0xbc, 0x5df24\nLDR             X10, [X20]                                             ; +0xc0, 0x5df28\nSTR             W9, [X8,#8]                                            ; +0xc4, 0x5df2c\nSTR             X10, [X8]                                              ; +0xc8, 0x5df30\nLDRB            W8, [X21,#0x18]                                        ; +0xcc, 0x5df34\nTBZ             W8, #6, loc_5DF54                                      ; +0xd0, 0x5df38\nADD             X0, X19, #0x110                                        ; +0xd4, 0x5df3c\nMOV             X1, X21                                                ; +0xd8, 0x5df40\nBL              sub_60D14                                              ; +0xdc, 0x5df44\nLDR             X8, [X19,#0x50]                                        ; +0xe0, 0x5df48\nSTR             X8, [X21,#0x48]                                        ; +0xe4, 0x5df4c\nSTR             X21, [X19,#0x50]                                       ; +0xe8, 0x5df50\nBL              sub_5F298                                              ; +0xec, 0x5df54\nMOV             W23, WZR                                               ; +0xf0, 0x5df58\nB               loc_5DF64                                              ; +0xf4, 0x5df5c\nMOV             W23, #0x1F                                             ; +0xf8, 0x5df60\nBL              sub_5F234                                              ; +0xfc, 0x5df64\nMOV             W0, W23                                                ; +0x100, 0x5df68\nLDP             X29, X30, [SP,#0x50+var_10]                            ; +0x104, 0x5df6c\nB               loc_5F260                                              ; +0x108, 0x5df70", "xrefs": ["FMOD::Geometry::setPolygonVertex @ 0xd51b0"], "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"}