{"type": "func", "start": 6443707628, "end": 6443707802, "name": "_invalid_parameter", "pseudocode": "// \n// _invalid_parameter from 0x180132cec to 0x180132d9a (174 bytes)\n// \n// 2 xrefs:\n// > _invalid_parameter_noinfo @ 0x180132db0\n// > <???> @ 0x1802030f8\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__int64 __fastcall invalid_parameter(\n        wchar_t *Expression,\n        wchar_t *FunctionName,\n        wchar_t *FileName,\n        unsigned int LineNo,\n        uintptr_t Reserved)\n{\n  __int64 v9; // rax\n  __int64 (__fastcall *v10)(wchar_t *, wchar_t *, wchar_t *, _QWORD, uintptr_t); // rax\n  __int64 (__fastcall *v12)(wchar_t *, wchar_t *, wchar_t *, _QWORD, uintptr_t); // r10\n\n  v9 = _acrt_getptd_noexit(Expression);\n  if ( v9 )\n  {\n    v10 = *(__int64 (__fastcall **)(wchar_t *, wchar_t *, wchar_t *, _QWORD, uintptr_t))(v9 + 952);\n    if ( v10 )\n      return v10(Expression, FunctionName, FileName, LineNo, Reserved);\n  }\n  v12 = (__int64 (__fastcall *)(wchar_t *, wchar_t *, wchar_t *, _QWORD, uintptr_t))__ROR8__(\n                                                                                      qword_1801F4D48 ^ _security_cookie,\n                                                                                      _security_cookie & 0x3F);\n  if ( !v12 )\n    invoke_watson(Expression, FunctionName, FileName, LineNo, Reserved);\n  return v12(Expression, FunctionName, FileName, LineNo, Reserved);\n}", "assembly": "; \n; _invalid_parameter from 0x180132cec to 0x180132d9a (174 bytes)\n; \n; 2 xrefs:\n; > _invalid_parameter_noinfo @ 0x180132db0\n; > <???> @ 0x1802030f8\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     [rsp+arg_0], rbx                                               ; +0x0, 0x180132cec\nmov     [rsp+arg_8], rbp                                               ; +0x5, 0x180132cf1\nmov     [rsp+arg_10], rsi                                              ; +0xa, 0x180132cf6\npush    rdi                                                            ; +0xf, 0x180132cfb\nsub     rsp, 30h                                                       ; +0x10, 0x180132cfc\nmov     ebx, r9d                                                       ; +0x14, 0x180132d00\nmov     rdi, r8                                                        ; +0x17, 0x180132d03\nmov     rsi, rdx                                                       ; +0x1a, 0x180132d06\nmov     rbp, rcx                                                       ; +0x1d, 0x180132d09\ncall    __acrt_getptd_noexit                                           ; +0x20, 0x180132d0c\ntest    rax, rax                                                       ; +0x25, 0x180132d11\njz      short loc_180132D53                                            ; +0x28, 0x180132d14\nmov     rax, [rax+3B8h]                                                ; +0x2a, 0x180132d16\ntest    rax, rax                                                       ; +0x31, 0x180132d1d\njz      short loc_180132D53                                            ; +0x34, 0x180132d20\nmov     rdx, [rsp+38h+arg_20]                                          ; +0x36, 0x180132d22\nmov     r9d, ebx                                                       ; +0x3b, 0x180132d27\nmov     [rsp+38h+Reserved], rdx                                        ; +0x3e, 0x180132d2a\nmov     r8, rdi                                                        ; +0x43, 0x180132d2f\nmov     rdx, rsi                                                       ; +0x46, 0x180132d32\nmov     rcx, rbp                                                       ; +0x49, 0x180132d35\ncall    cs:__guard_dispatch_icall_fptr                                 ; +0x4c, 0x180132d38\nmov     rbx, [rsp+38h+arg_0]                                           ; +0x52, 0x180132d3e\nmov     rbp, [rsp+38h+arg_8]                                           ; +0x57, 0x180132d43\nmov     rsi, [rsp+38h+arg_10]                                          ; +0x5c, 0x180132d48\nadd     rsp, 30h                                                       ; +0x61, 0x180132d4d\npop     rdi                                                            ; +0x65, 0x180132d51\nretn                                                                   ; +0x66, 0x180132d52\nmov     r10, cs:__security_cookie                                      ; +0x67, 0x180132d53\nmov     r9d, ebx; LineNo                                               ; +0x6e, 0x180132d5a\nmov     ecx, r10d                                                      ; +0x71, 0x180132d5d\nmov     r8, rdi; FileName                                              ; +0x74, 0x180132d60\nxor     r10, cs:qword_1801F4D48                                        ; +0x77, 0x180132d63\nand     ecx, 3Fh                                                       ; +0x7e, 0x180132d6a\nror     r10, cl                                                        ; +0x81, 0x180132d6d\nmov     rdx, rsi; FunctionName                                         ; +0x84, 0x180132d70\ntest    r10, r10                                                       ; +0x87, 0x180132d73\njz      short loc_180132D87                                            ; +0x8a, 0x180132d76\nmov     rcx, [rsp+38h+arg_20]                                          ; +0x8c, 0x180132d78\nmov     rax, r10                                                       ; +0x91, 0x180132d7d\nmov     [rsp+38h+Reserved], rcx                                        ; +0x94, 0x180132d80\njmp     short loc_180132D35                                            ; +0x99, 0x180132d85\nmov     rax, [rsp+38h+arg_20]                                          ; +0x9b, 0x180132d87\nmov     rcx, rbp; Expression                                           ; +0xa0, 0x180132d8c\nmov     [rsp+38h+Reserved], rax; Reserved                              ; +0xa3, 0x180132d8f\ncall    _invoke_watson                                                 ; +0xa8, 0x180132d94\ndb 0CCh                                                                ; +0xad, 0x180132d99", "xrefs": ["_invalid_parameter_noinfo @ 0x180132db0", "<???> @ 0x1802030f8"], "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"}