{"type": "func", "start": 6443711316, "end": 6443711623, "name": "_handle_errorf", "pseudocode": "// \n// _handle_errorf from 0x180133b54 to 0x180133c87 (307 bytes)\n// \n// 7 xrefs:\n// > acosf @ 0x180127710\n// > asinf @ 0x180130c48\n// > _logf_special_common @ 0x180133ed2\n// > _powf_special @ 0x180134062\n// > _sincosf_special @ 0x180136aaf\n// > _expf_special @ 0x180138d8d\n// > <???> @ 0x1802031c4\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 handle_errorf(\n        __int64 a1,\n        __int16 a2,\n        int a3,\n        int a4,\n        char a5,\n        unsigned int a6,\n        float a7,\n        float a8,\n        int a9)\n{\n  BOOL v13; // eax\n  float v14; // xmm6_4\n  __int64 v16; // [rsp+48h] [rbp-A1h] BYREF\n  __int64 v17; // [rsp+50h] [rbp-99h] BYREF\n  int v18; // [rsp+58h] [rbp-91h]\n  _DWORD v19[16]; // [rsp+68h] [rbp-81h] BYREF\n  unsigned int v20; // [rsp+A8h] [rbp-41h]\n\n  v17 = ctrlfp(8064, 65472);\n  v18 = a3;\n  LODWORD(v16) = a3;\n  v13 = exception_enabled(a5, v17);\n  v14 = a8;\n  if ( !v13 )\n  {\n    if ( a9 == 2 )\n    {\n      *(float *)&v19[12] = a8;\n      v20 = v20 & 0xFFFFFFE0 | 1;\n    }\n    raise_excf((ULONG_PTR)v19, &v17, a5, a2, &a7, &v16);\n  }\n  if ( (unsigned __int8)_acrt_has_user_matherr() && a4 )\n    return call_matherr(a4, a6, a1, a7, COERCE__INT64(v14), *(float *)&v16, v17);\n  set_errno_from_matherr(a4);\n  ctrlfp(v17, 65472);\n  return *(float *)&v16;\n}", "assembly": "; \n; _handle_errorf from 0x180133b54 to 0x180133c87 (307 bytes)\n; \n; 7 xrefs:\n; > acosf @ 0x180127710\n; > asinf @ 0x180130c48\n; > _logf_special_common @ 0x180133ed2\n; > _powf_special @ 0x180134062\n; > _sincosf_special @ 0x180136aaf\n; > _expf_special @ 0x180138d8d\n; > <???> @ 0x1802031c4\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\nmov     rax, rsp                                                       ; +0x0, 0x180133b54\npush    rbp                                                            ; +0x3, 0x180133b57\npush    rbx                                                            ; +0x4, 0x180133b58\npush    rsi                                                            ; +0x5, 0x180133b59\npush    rdi                                                            ; +0x6, 0x180133b5a\npush    r14                                                            ; +0x7, 0x180133b5b\nlea     rbp, [rax-37h]                                                 ; +0x9, 0x180133b5d\nsub     rsp, 0F0h                                                      ; +0xd, 0x180133b61\nmovaps  xmmword ptr [rax-38h], xmm6                                    ; +0x14, 0x180133b68\nmov     rax, cs:__security_cookie                                      ; +0x18, 0x180133b6c\nxor     rax, rsp                                                       ; +0x1f, 0x180133b73\nmov     [rbp+2Fh+var_40], rax                                          ; +0x22, 0x180133b76\nmov     esi, edx                                                       ; +0x26, 0x180133b7a\nmov     r14, rcx                                                       ; +0x28, 0x180133b7c\nmov     edx, 0FFC0h                                                    ; +0x2b, 0x180133b7f\nmov     ecx, 1F80h                                                     ; +0x30, 0x180133b84\nmov     edi, r9d                                                       ; +0x35, 0x180133b89\nmov     rbx, r8                                                        ; +0x38, 0x180133b8c\ncall    _ctrlfp                                                        ; +0x3b, 0x180133b8f\nmov     ecx, dword ptr [rbp+2Fh+arg_20]                                ; +0x40, 0x180133b94\nmov     [rsp+110h+var_C8], rax                                         ; +0x43, 0x180133b97\nmov     [rsp+110h+var_C0], ebx                                         ; +0x48, 0x180133b9c\nmovss   xmm0, [rsp+110h+var_C0]                                        ; +0x4c, 0x180133ba0\nmov     rdx, [rsp+110h+var_C8]                                         ; +0x52, 0x180133ba6\nmovss   dword ptr [rsp+110h+var_D0], xmm0                              ; +0x57, 0x180133bab\ncall    _exception_enabled                                             ; +0x5d, 0x180133bb1\nmovss   xmm6, [rbp+2Fh+arg_38]                                         ; +0x62, 0x180133bb6\ntest    eax, eax                                                       ; +0x67, 0x180133bbb\njnz     short loc_180133BFF                                            ; +0x69, 0x180133bbd\ncmp     [rbp+2Fh+arg_40], 2                                            ; +0x6b, 0x180133bbf\njnz     short loc_180133BD6                                            ; +0x6f, 0x180133bc3\nmov     eax, [rbp+2Fh+var_70]                                          ; +0x71, 0x180133bc5\nand     eax, 0FFFFFFE1h                                                ; +0x74, 0x180133bc8\nmovss   [rbp+2Fh+var_80], xmm6                                         ; +0x77, 0x180133bcb\nor      eax, 1                                                         ; +0x7c, 0x180133bd0\nmov     [rbp+2Fh+var_70], eax                                          ; +0x7f, 0x180133bd3\nmov     r8d, dword ptr [rbp+2Fh+arg_20]                                ; +0x82, 0x180133bd6\nlea     rax, [rsp+110h+var_D0]                                         ; +0x86, 0x180133bda\nmov     [rsp+110h+var_E8], rax                                         ; +0x8b, 0x180133bdf\nlea     rdx, [rsp+110h+var_C8]                                         ; +0x90, 0x180133be4\nlea     rax, [rbp+2Fh+arg_30]                                          ; +0x95, 0x180133be9\nmov     r9d, esi                                                       ; +0x99, 0x180133bed\nlea     rcx, [rsp+60h]                                                 ; +0x9c, 0x180133bf0\nmov     [rsp+110h+var_F0], rax                                         ; +0xa1, 0x180133bf5\ncall    _raise_excf                                                    ; +0xa6, 0x180133bfa\ncall    __acrt_has_user_matherr                                        ; +0xab, 0x180133bff\ntest    al, al                                                         ; +0xb0, 0x180133c04\njz      short loc_180133C49                                            ; +0xb2, 0x180133c06\ntest    edi, edi                                                       ; +0xb4, 0x180133c08\njz      short loc_180133C49                                            ; +0xb6, 0x180133c0a\nmovss   xmm0, dword ptr [rsp+110h+var_D0]                              ; +0xb8, 0x180133c0c\nmov     r8, r14                                                        ; +0xbe, 0x180133c12\nmovss   xmm3, [rbp+2Fh+arg_30]                                         ; +0xc1, 0x180133c15\nmov     ecx, edi                                                       ; +0xc6, 0x180133c1a\nmov     rax, [rsp+110h+var_C8]                                         ; +0xc8, 0x180133c1c\nmov     edx, [rbp+2Fh+arg_28]                                          ; +0xcd, 0x180133c21\nmov     [rsp+30h], rax                                                 ; +0xd0, 0x180133c24\ncvtps2pd xmm0, xmm0                                                    ; +0xd5, 0x180133c29\ncvtps2pd xmm1, xmm6                                                    ; +0xd8, 0x180133c2c\nmovsd   [rsp+110h+var_E8], xmm0                                        ; +0xdb, 0x180133c2f\ncvtps2pd xmm3, xmm3                                                    ; +0xe1, 0x180133c35\nmovsd   [rsp+110h+var_F0], xmm1                                        ; +0xe4, 0x180133c38\ncall    _call_matherr                                                  ; +0xea, 0x180133c3e\ncvtsd2ss xmm0, xmm0                                                    ; +0xef, 0x180133c43\njmp     short loc_180133C65                                            ; +0xf3, 0x180133c47\nmov     ecx, edi                                                       ; +0xf5, 0x180133c49\ncall    _set_errno_from_matherr                                        ; +0xf7, 0x180133c4b\nmov     rcx, [rsp+110h+var_C8]                                         ; +0xfc, 0x180133c50\nmov     edx, 0FFC0h                                                    ; +0x101, 0x180133c55\ncall    _ctrlfp                                                        ; +0x106, 0x180133c5a\nmovss   xmm0, dword ptr [rsp+110h+var_D0]                              ; +0x10b, 0x180133c5f\nmov     rcx, [rbp+2Fh+var_40]                                          ; +0x111, 0x180133c65\nxor     rcx, rsp; StackCookie                                          ; +0x115, 0x180133c69\ncall    __security_check_cookie                                        ; +0x118, 0x180133c6c\nmovaps  xmm6, [rsp+110h+var_38+8]                                      ; +0x11d, 0x180133c71\nadd     rsp, 0F0h                                                      ; +0x125, 0x180133c79\npop     r14                                                            ; +0x12c, 0x180133c80\npop     rdi                                                            ; +0x12e, 0x180133c82\npop     rsi                                                            ; +0x12f, 0x180133c83\npop     rbx                                                            ; +0x130, 0x180133c84\npop     rbp                                                            ; +0x131, 0x180133c85\nretn                                                                   ; +0x132, 0x180133c86", "xrefs": ["acosf @ 0x180127710", "asinf @ 0x180130c48", "_logf_special_common @ 0x180133ed2", "_powf_special @ 0x180134062", "_sincosf_special @ 0x180136aaf", "_expf_special @ 0x180138d8d", "<???> @ 0x1802031c4"], "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"}