{"type": "func", "start": 6443766824, "end": 6443766923, "name": "_controlfp_s", "pseudocode": "// \n// _controlfp_s from 0x180141428 to 0x18014148b (99 bytes)\n// \n// 2 xrefs:\n// > __acrt_fltout @ 0x18013e26f\n// > <???> @ 0x180203ca4\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\nerrno_t __cdecl controlfp_s(unsigned int *CurrentState, unsigned int NewValue, unsigned int Mask)\n{\n  unsigned int v3; // r8d\n\n  v3 = Mask & 0xFFF7FFFF;\n  if ( (v3 & NewValue & 0xFCF0FCE0) != 0 )\n  {\n    if ( CurrentState )\n      *CurrentState = j_common_control87(0, 0);\n    *errno() = 22;\n    invalid_parameter_noinfo();\n    return 22;\n  }\n  else\n  {\n    if ( CurrentState )\n      *CurrentState = j_common_control87(NewValue, v3);\n    else\n      j_common_control87(NewValue, v3);\n    return 0;\n  }\n}", "assembly": "; \n; _controlfp_s from 0x180141428 to 0x18014148b (99 bytes)\n; \n; 2 xrefs:\n; > __acrt_fltout @ 0x18013e26f\n; > <???> @ 0x180203ca4\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\npush    rbx                                                            ; +0x0, 0x180141428\nsub     rsp, 20h                                                       ; +0x2, 0x18014142a\nbtr     r8d, 13h                                                       ; +0x6, 0x18014142e\nmov     eax, edx                                                       ; +0xb, 0x180141433\nand     eax, r8d                                                       ; +0xd, 0x180141435\nmov     r9d, edx                                                       ; +0x10, 0x180141438\nmov     rbx, rcx                                                       ; +0x13, 0x18014143b\ntest    eax, 0FCF0FCE0h                                                ; +0x16, 0x18014143e\njz      short loc_18014146A                                            ; +0x1b, 0x180141443\ntest    rcx, rcx                                                       ; +0x1d, 0x180141445\njz      short loc_180141455                                            ; +0x20, 0x180141448\nxor     edx, edx                                                       ; +0x22, 0x18014144a\nxor     ecx, ecx                                                       ; +0x24, 0x18014144c\ncall    j_common_control87                                             ; +0x26, 0x18014144e\nmov     [rbx], eax                                                     ; +0x2b, 0x180141453\ncall    _errno                                                         ; +0x2d, 0x180141455\nmov     ebx, 16h                                                       ; +0x32, 0x18014145a\nmov     [rax], ebx                                                     ; +0x37, 0x18014145f\ncall    _invalid_parameter_noinfo                                      ; +0x39, 0x180141461\nmov     eax, ebx                                                       ; +0x3e, 0x180141466\njmp     short loc_180141485                                            ; +0x40, 0x180141468\nmov     edx, r8d                                                       ; +0x42, 0x18014146a\nmov     ecx, r9d                                                       ; +0x45, 0x18014146d\ntest    rbx, rbx                                                       ; +0x48, 0x180141470\njz      short loc_18014147E                                            ; +0x4b, 0x180141473\ncall    j_common_control87                                             ; +0x4d, 0x180141475\nmov     [rbx], eax                                                     ; +0x52, 0x18014147a\njmp     short loc_180141483                                            ; +0x54, 0x18014147c\ncall    j_common_control87                                             ; +0x56, 0x18014147e\nxor     eax, eax                                                       ; +0x5b, 0x180141483\nadd     rsp, 20h                                                       ; +0x5d, 0x180141485\npop     rbx                                                            ; +0x61, 0x180141489\nretn                                                                   ; +0x62, 0x18014148a", "xrefs": ["__acrt_fltout @ 0x18013e26f", "<???> @ 0x180203ca4"], "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"}