{"type": "func", "start": 347436, "end": 347568, "name": "sub_54D2C", "pseudocode": "// \n// sub_54D2C from 0x54d2c to 0x54db0 (132 bytes)\n// \n// 1 xrefs:\n// > sub_54DB0 @ 0x551f4\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\nfloat __fastcall sub_54D2C(__int64 a1, int a2, long double a3)\n{\n  __int64 v3; // x29\n  __int64 v4; // x30\n  unsigned int v5; // w8\n  float v7; // [xsp+Ch] [xbp-14h] BYREF\n  __int64 v8; // [xsp+10h] [xbp-10h]\n  __int64 v9; // [xsp+18h] [xbp-8h]\n\n  switch ( a2 )\n  {\n    case 0x200000:\n      v5 = 1;\n      break;\n    case 0x4000000:\n      return 1.0;\n    case 0x800000:\n      v5 = 3;\n      break;\n    case 0x400000:\n      v5 = 0;\n      break;\n    default:\n      v5 = 2;\n      break;\n  }\n  v8 = v3;\n  v9 = v4;\n  sub_75BF4(v5, &v7, a3, *(float *)(a1 + 156), *(float *)(a1 + 160), *(float *)(*(_QWORD *)(a1 + 8) + 69112LL));\n  return v7;\n}", "assembly": "; \n; sub_54D2C from 0x54d2c to 0x54db0 (132 bytes)\n; \n; 1 xrefs:\n; > sub_54DB0 @ 0x551f4\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\nCMP             W1, #0x200,LSL#12                                      ; +0x0, 0x54d2c\nB.EQ            loc_54D58                                              ; +0x4, 0x54d30\nMOV             W8, #0x4000000                                         ; +0x8, 0x54d34\nCMP             W1, W8                                                 ; +0xc, 0x54d38\nB.EQ            loc_54D60                                              ; +0x10, 0x54d3c\nCMP             W1, #0x800,LSL#12                                      ; +0x14, 0x54d40\nB.EQ            loc_54D68                                              ; +0x18, 0x54d44\nCMP             W1, #0x400,LSL#12                                      ; +0x1c, 0x54d48\nB.NE            loc_54D70                                              ; +0x20, 0x54d4c\nMOV             W8, WZR                                                ; +0x24, 0x54d50\nB               loc_54D74                                              ; +0x28, 0x54d54\nMOV             W8, #1                                                 ; +0x2c, 0x54d58\nB               loc_54D74                                              ; +0x30, 0x54d5c\nFMOV            S0, #1.0                                               ; +0x34, 0x54d60\nRET                                                                    ; +0x38, 0x54d64\nMOV             W8, #3                                                 ; +0x3c, 0x54d68\nB               loc_54D74                                              ; +0x40, 0x54d6c\nMOV             W8, #2                                                 ; +0x44, 0x54d70\nSUB             SP, SP, #0x20 ; ' '                                    ; +0x48, 0x54d74\nSTP             X29, X30, [SP,#0x20+var_10]                            ; +0x4c, 0x54d78\nLDR             X9, [X0,#8]                                            ; +0x50, 0x54d7c\nMOV             W10, #0x10DF8                                          ; +0x54, 0x54d80\nLDP             S1, S2, [X0,#0x9C]                                     ; +0x5c, 0x54d88\nLDR             S3, [X9,X10]                                           ; +0x60, 0x54d8c\nADD             X29, SP, #0x20+var_10                                  ; +0x64, 0x54d90\nSUB             X1, X29, #4                                            ; +0x68, 0x54d94\nMOV             W0, W8                                                 ; +0x6c, 0x54d98\nBL              sub_75BF4                                              ; +0x70, 0x54d9c\nLDUR            S0, [X29,#-4]                                          ; +0x74, 0x54da0\nLDP             X29, X30, [SP,#0x20+var_10]                            ; +0x78, 0x54da4\nADD             SP, SP, #0x20 ; ' '                                    ; +0x7c, 0x54da8\nRET                                                                    ; +0x80, 0x54dac", "xrefs": ["sub_54DB0 @ 0x551f4"], "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"}