{"type": "func", "start": 351520, "end": 351632, "name": "sub_55D20", "pseudocode": "// \n// sub_55D20 from 0x55d20 to 0x55d90 (112 bytes)\n// \n// 2 xrefs:\n// > sub_54DB0 @ 0x55610\n// > sub_54DB0 @ 0x55928\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\nlong double __fastcall sub_55D20(float a1, float a2, long double a3)\n{\n  float v3; // s2\n  float v4; // s3\n  bool v5; // nf\n  float v6; // s0\n  float v7; // s1\n  float v8; // s1\n\n  LODWORD(a3) = 0;\n  if ( a1 != 0.0 || a2 != 0.0 )\n  {\n    v3 = fabsf(a2);\n    v4 = fabsf(a1);\n    if ( v4 <= v3 )\n    {\n      v6 = a1 / v3;\n      if ( a2 < 0.0 )\n      {\n        v8 = 5.0;\n        goto LABEL_8;\n      }\n      v7 = 1.0;\n    }\n    else\n    {\n      v5 = a1 < 0.0;\n      v6 = a2 / v4;\n      if ( !v5 )\n      {\n        v8 = 3.0;\nLABEL_8:\n        *(float *)&a3 = v8 - v6;\n        return a3;\n      }\n      v7 = 7.0;\n    }\n    *(float *)&a3 = v6 + v7;\n  }\n  return a3;\n}", "assembly": "; \n; sub_55D20 from 0x55d20 to 0x55d90 (112 bytes)\n; \n; 2 xrefs:\n; > sub_54DB0 @ 0x55610\n; > sub_54DB0 @ 0x55928\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\nFCMP            S0, #0.0                                               ; +0x0, 0x55d20\nCSET            W8, EQ                                                 ; +0x4, 0x55d24\nFCMP            S1, #0.0                                               ; +0x8, 0x55d28\nCSET            W9, EQ                                                 ; +0xc, 0x55d2c\nAND             W8, W8, W9                                             ; +0x10, 0x55d30\nFMOV            S2, WZR                                                ; +0x14, 0x55d34\nTBNZ            W8, #0, loc_55D88                                      ; +0x18, 0x55d38\nFABS            S2, S1                                                 ; +0x1c, 0x55d3c\nFABS            S3, S0                                                 ; +0x20, 0x55d40\nFCMP            S3, S2                                                 ; +0x24, 0x55d44\nB.LE            loc_55D60                                              ; +0x28, 0x55d48\nFCMP            S0, #0.0                                               ; +0x2c, 0x55d4c\nFDIV            S0, S1, S3                                             ; +0x30, 0x55d50\nB.GE            loc_55D74                                              ; +0x34, 0x55d54\nFMOV            S1, #7.0                                               ; +0x38, 0x55d58\nB               loc_55D84                                              ; +0x3c, 0x55d5c\nFCMP            S1, #0.0                                               ; +0x40, 0x55d60\nFDIV            S0, S0, S2                                             ; +0x44, 0x55d64\nB.GE            loc_55D80                                              ; +0x48, 0x55d68\nFMOV            S1, #5.0                                               ; +0x4c, 0x55d6c\nB               loc_55D78                                              ; +0x50, 0x55d70\nFMOV            S1, #3.0                                               ; +0x54, 0x55d74\nFSUB            S2, S1, S0                                             ; +0x58, 0x55d78\nB               loc_55D88                                              ; +0x5c, 0x55d7c\nFMOV            S1, #1.0                                               ; +0x60, 0x55d80\nFADD            S2, S0, S1                                             ; +0x64, 0x55d84\nMOV             V0.16B, V2.16B                                         ; +0x68, 0x55d88\nRET                                                                    ; +0x6c, 0x55d8c", "xrefs": ["sub_54DB0 @ 0x55610", "sub_54DB0 @ 0x55928"], "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"}