{"type": "func", "start": 6443658788, "end": 6443658924, "name": "Is_bad_exception_allowed", "pseudocode": "// \n// Is_bad_exception_allowed from 0x180126e24 to 0x180126eac (136 bytes)\n// \n// 2 xrefs:\n// > FindHandler<__FrameHandler3> @ 0x180125e4c\n// > <???> @ 0x18020296c\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\nunsigned __int8 __fastcall Is_bad_exception_allowed(const struct _s_ESTypeList *a1)\n{\n  int v1; // ebp\n  __int64 i; // rsi\n  __int64 ImageBase; // rax\n  __int64 dispTypeArray; // rcx\n  __int64 v6; // rax\n  __int64 v7; // rcx\n  __int64 v8; // rbx\n  __int64 v9; // rax\n\n  v1 = 0;\n  if ( a1->nCount <= 0 )\n    return 0;\n  for ( i = 0; ; i += 20 )\n  {\n    ImageBase = GetImageBase((__int64)a1);\n    dispTypeArray = a1->dispTypeArray;\n    if ( *(_DWORD *)(dispTypeArray + i + ImageBase + 4) )\n    {\n      v6 = GetImageBase(dispTypeArray);\n      v7 = a1->dispTypeArray;\n      v8 = *(int *)(v7 + i + v6 + 4);\n      v9 = v8 + GetImageBase(v7);\n    }\n    else\n    {\n      v9 = 0;\n    }\n    if ( !(unsigned int)_std_type_info_compare(v9 + 8, (__int64)&qword_1801B2320) )\n      break;\n    if ( ++v1 >= a1->nCount )\n      return 0;\n  }\n  return 1;\n}", "assembly": "; \n; Is_bad_exception_allowed from 0x180126e24 to 0x180126eac (136 bytes)\n; \n; 2 xrefs:\n; > FindHandler<__FrameHandler3> @ 0x180125e4c\n; > <???> @ 0x18020296c\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, 0x180126e24\nmov     [rsp+arg_8], rbp                                               ; +0x5, 0x180126e29\nmov     [rsp+arg_10], rsi                                              ; +0xa, 0x180126e2e\npush    rdi                                                            ; +0xf, 0x180126e33\nsub     rsp, 20h                                                       ; +0x10, 0x180126e34\nxor     ebp, ebp                                                       ; +0x14, 0x180126e38\nmov     rdi, rcx                                                       ; +0x16, 0x180126e3a\ncmp     [rcx], ebp                                                     ; +0x19, 0x180126e3d\njle     short loc_180126E91                                            ; +0x1b, 0x180126e3f\nxor     esi, esi                                                       ; +0x1d, 0x180126e41\ncall    _GetImageBase                                                  ; +0x1f, 0x180126e43\nmovsxd  rcx, dword ptr [rdi+4]                                         ; +0x24, 0x180126e48\nadd     rax, rsi                                                       ; +0x28, 0x180126e4c\ncmp     dword ptr [rcx+rax+4], 0                                       ; +0x2b, 0x180126e4f\njz      short loc_180126E71                                            ; +0x30, 0x180126e54\ncall    _GetImageBase                                                  ; +0x32, 0x180126e56\nmovsxd  rcx, dword ptr [rdi+4]                                         ; +0x37, 0x180126e5b\nadd     rax, rsi                                                       ; +0x3b, 0x180126e5f\nmovsxd  rbx, dword ptr [rcx+rax+4]                                     ; +0x3e, 0x180126e62\ncall    _GetImageBase                                                  ; +0x43, 0x180126e67\nadd     rax, rbx                                                       ; +0x48, 0x180126e6c\njmp     short loc_180126E73                                            ; +0x4b, 0x180126e6f\nxor     eax, eax                                                       ; +0x4d, 0x180126e71\nlea     rcx, [rax+8]                                                   ; +0x4f, 0x180126e73\nlea     rdx, qword_1801B2320                                           ; +0x53, 0x180126e77\ncall    __std_type_info_compare                                        ; +0x5a, 0x180126e7e\ntest    eax, eax                                                       ; +0x5f, 0x180126e83\njz      short loc_180126EA8                                            ; +0x61, 0x180126e85\ninc     ebp                                                            ; +0x63, 0x180126e87\nadd     rsi, 14h                                                       ; +0x65, 0x180126e89\ncmp     ebp, [rdi]                                                     ; +0x69, 0x180126e8d\njl      short loc_180126E43                                            ; +0x6b, 0x180126e8f\nxor     al, al                                                         ; +0x6d, 0x180126e91\nmov     rbx, [rsp+28h+arg_0]                                           ; +0x6f, 0x180126e93\nmov     rbp, [rsp+28h+arg_8]                                           ; +0x74, 0x180126e98\nmov     rsi, [rsp+28h+arg_10]                                          ; +0x79, 0x180126e9d\nadd     rsp, 20h                                                       ; +0x7e, 0x180126ea2\npop     rdi                                                            ; +0x82, 0x180126ea6\nretn                                                                   ; +0x83, 0x180126ea7\nmov     al, 1                                                          ; +0x84, 0x180126ea8\njmp     short loc_180126E93                                            ; +0x86, 0x180126eaa", "xrefs": ["FindHandler<__FrameHandler3> @ 0x180125e4c", "<???> @ 0x18020296c"], "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"}