{"type": "func", "start": 342060, "end": 342176, "name": "sub_5382C", "pseudocode": "// \n// sub_5382C from 0x5382c to 0x538a0 (116 bytes)\n// \n// 1 xrefs:\n// > <???> @ 0x10c278\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_QWORD *__fastcall sub_5382C(__int64 a1, long double a2, double a3, long double a4)\n{\n  long double v4; // q1\n  _QWORD *v5; // x8\n\n  v4 = a2;\n  LODWORD(a2) = *(_DWORD *)(a1 + 100);\n  *(float *)&v4 = (float)((float)(1.0 - *(float *)(*(_QWORD *)(a1 + 24) + 240LL))\n                        + (float)(*(float *)(*(_QWORD *)(a1 + 24) + 124LL) * *(float *)(*(_QWORD *)(a1 + 24) + 240LL)))\n                * *(float *)&v4;\n  if ( *(float *)&v4 <= *(float *)&a2 )\n  {\n    LODWORD(a4) = *(_DWORD *)(a1 + 104);\n    a2 = v4;\n    if ( *(float *)&v4 < *(float *)&a4 )\n      a2 = a4;\n  }\n  v5 = *(_QWORD **)(a1 + 744);\n  if ( v5 )\n    return (*(_QWORD *(__fastcall **)(_QWORD *__return_ptr, _QWORD *, long double, long double))(*v5 + 56LL))(\n             v5,\n             v5,\n             a2,\n             v4);\n  v5 = *(_QWORD **)(a1 + 736);\n  if ( v5 )\n    return (*(_QWORD *(__fastcall **)(_QWORD *__return_ptr, _QWORD *, long double, long double))(*v5 + 56LL))(\n             v5,\n             v5,\n             a2,\n             v4);\n  if ( *(_QWORD *)(a1 + 664) )\n    return (_QWORD *)sub_C7440(a1 + 112, a2, v4);\n  return nullptr;\n}", "assembly": "; \n; sub_5382C from 0x5382c to 0x538a0 (116 bytes)\n; \n; 1 xrefs:\n; > <???> @ 0x10c278\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\nLDR             X8, [X0,#0x18]                                         ; +0x0, 0x5382c\nMOV             V1.16B, V0.16B                                         ; +0x4, 0x53830\nFMOV            S4, #1.0                                               ; +0x8, 0x53834\nLDR             S0, [X0,#0x64]                                         ; +0xc, 0x53838\nLDR             S2, [X8,#0xF0]                                         ; +0x10, 0x5383c\nLDR             S3, [X8,#0x7C]                                         ; +0x14, 0x53840\nFSUB            S4, S4, S2                                             ; +0x18, 0x53844\nFMADD           S2, S3, S2, S4                                         ; +0x1c, 0x53848\nFMUL            S1, S2, S1                                             ; +0x20, 0x5384c\nFCMP            S1, S0                                                 ; +0x24, 0x53850\nB.GT            loc_5386C                                              ; +0x28, 0x53854\nLDR             S2, [X0,#0x68]                                         ; +0x2c, 0x53858\nMOV             V0.16B, V1.16B                                         ; +0x30, 0x5385c\nFCMP            S1, S2                                                 ; +0x34, 0x53860\nB.GE            loc_5386C                                              ; +0x38, 0x53864\nMOV             V0.16B, V2.16B                                         ; +0x3c, 0x53868\nLDR             X8, [X0,#0x2E8]                                        ; +0x40, 0x5386c\nCBNZ            X8, loc_5387C                                          ; +0x44, 0x53870\nLDR             X8, [X0,#0x2E0]                                        ; +0x48, 0x53874\nCBZ             X8, loc_5388C                                          ; +0x4c, 0x53878\nLDR             X9, [X8]                                               ; +0x50, 0x5387c\nMOV             X0, X8                                                 ; +0x54, 0x53880\nLDR             X1, [X9,#0x38]                                         ; +0x58, 0x53884\nBR              X1                                                     ; +0x5c, 0x53888\nLDR             X8, [X0,#0x298]                                        ; +0x60, 0x5388c\nCBZ             X8, loc_5389C                                          ; +0x64, 0x53890\nADD             X0, X0, #0x70 ; 'p'                                    ; +0x68, 0x53894\nB               sub_C7440                                              ; +0x6c, 0x53898\nB               loc_53E60                                              ; +0x70, 0x5389c", "xrefs": ["<???> @ 0x10c278"], "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"}