{"type": "func", "start": 6443659424, "end": 6443659584, "name": "_CxxThrowException", "pseudocode": "// \n// _CxxThrowException from 0x1801270a0 to 0x180127140 (160 bytes)\n// \n// 2 xrefs:\n// > FindHandler<__FrameHandler3> @ 0x1801261ae\n// > <???> @ 0x1802029c0\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\nvoid __stdcall __noreturn CxxThrowException(void *pExceptionObject, _ThrowInfo *pThrowInfo)\n{\n  _ThrowInfo *v2; // rbx\n  ULONG_PTR v4; // rdi\n  __int64 v5; // rcx\n  PVOID v6; // rax\n  PVOID BaseOfImage; // [rsp+20h] [rbp-38h] BYREF\n  ULONG_PTR Arguments[6]; // [rsp+28h] [rbp-30h] BYREF\n\n  v2 = pThrowInfo;\n  v4 = 429065504;\n  if ( pThrowInfo && (pThrowInfo->attributes & 0x10) != 0 )\n  {\n    v5 = *(_QWORD *)pExceptionObject - 8LL;\n    v2 = *(_ThrowInfo **)(*(_QWORD *)v5 + 48LL);\n    (*(void (__fastcall **)(__int64))(*(_QWORD *)v5 + 64LL))(v5);\n  }\n  v6 = RtlPcToFileHeader(v2, &BaseOfImage);\n  BaseOfImage = v6;\n  if ( v2 && ((v2->attributes & 8) != 0 || !v6) )\n    v4 = 26820608;\n  Arguments[0] = v4;\n  Arguments[1] = (ULONG_PTR)pExceptionObject;\n  Arguments[2] = (ULONG_PTR)v2;\n  Arguments[3] = (ULONG_PTR)v6;\n  RaiseException(0xE06D7363, 1u, 4u, Arguments);\n}", "assembly": "; \n; _CxxThrowException from 0x1801270a0 to 0x180127140 (160 bytes)\n; \n; 2 xrefs:\n; > FindHandler<__FrameHandler3> @ 0x1801261ae\n; > <???> @ 0x1802029c0\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_10], rbx                                              ; +0x0, 0x1801270a0\nmov     [rsp+arg_18], rsi                                              ; +0x5, 0x1801270a5\npush    rdi                                                            ; +0xa, 0x1801270aa\nsub     rsp, 50h                                                       ; +0xb, 0x1801270ab\nmov     rbx, rdx                                                       ; +0xf, 0x1801270af\nmov     rsi, rcx                                                       ; +0x12, 0x1801270b2\nmov     edi, 19930520h                                                 ; +0x15, 0x1801270b5\ntest    rdx, rdx                                                       ; +0x1a, 0x1801270ba\njz      short loc_1801270DC                                            ; +0x1d, 0x1801270bd\ntest    byte ptr [rdx], 10h                                            ; +0x1f, 0x1801270bf\njz      short loc_1801270DC                                            ; +0x22, 0x1801270c2\nmov     rcx, [rcx]                                                     ; +0x24, 0x1801270c4\nsub     rcx, 8                                                         ; +0x27, 0x1801270c7\nmov     rax, [rcx]                                                     ; +0x2b, 0x1801270cb\nmov     rbx, [rax+30h]                                                 ; +0x2e, 0x1801270ce\nmov     rax, [rax+40h]                                                 ; +0x32, 0x1801270d2\ncall    cs:__guard_dispatch_icall_fptr                                 ; +0x36, 0x1801270d6\nlea     rdx, [rsp+58h+BaseOfImage]; BaseOfImage                        ; +0x3c, 0x1801270dc\nmov     rcx, rbx; PcValue                                              ; +0x41, 0x1801270e1\ncall    cs:RtlPcToFileHeader                                           ; +0x44, 0x1801270e4\nmov     [rsp+58h+BaseOfImage], rax                                     ; +0x4a, 0x1801270ea\ntest    rbx, rbx                                                       ; +0x4f, 0x1801270ef\njz      short loc_180127103                                            ; +0x52, 0x1801270f2\ntest    byte ptr [rbx], 8                                              ; +0x54, 0x1801270f4\njnz     short loc_1801270FE                                            ; +0x57, 0x1801270f7\ntest    rax, rax                                                       ; +0x59, 0x1801270f9\njnz     short loc_180127103                                            ; +0x5c, 0x1801270fc\nmov     edi, 1994000h                                                  ; +0x5e, 0x1801270fe\nmov     edx, 1; dwExceptionFlags                                       ; +0x63, 0x180127103\nmov     [rsp+58h+Arguments], rdi                                       ; +0x68, 0x180127108\nlea     r9, [rsp+58h+Arguments]; lpArguments                           ; +0x6d, 0x18012710d\nmov     [rsp+58h+var_28], rsi                                          ; +0x72, 0x180127112\nmov     ecx, 0E06D7363h; dwExceptionCode                               ; +0x77, 0x180127117\nmov     [rsp+58h+var_20], rbx                                          ; +0x7c, 0x18012711c\nmov     [rsp+58h+var_18], rax                                          ; +0x81, 0x180127121\nlea     r8d, [rdx+3]; nNumberOfArguments                               ; +0x86, 0x180127126\ncall    cs:RaiseException                                              ; +0x8a, 0x18012712a\nmov     rbx, [rsp+58h+arg_10]                                          ; +0x90, 0x180127130\nmov     rsi, [rsp+58h+arg_18]                                          ; +0x95, 0x180127135\nadd     rsp, 50h                                                       ; +0x9a, 0x18012713a\npop     rdi                                                            ; +0x9e, 0x18012713e\nretn                                                                   ; +0x9f, 0x18012713f", "xrefs": ["FindHandler<__FrameHandler3> @ 0x1801261ae", "<???> @ 0x1802029c0"], "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"}