{"type": "func", "start": 6443734580, "end": 6443735198, "name": "raise", "pseudocode": "// \n// raise from 0x180139634 to 0x18013989e (618 bytes)\n// \n// 3 xrefs:\n// > common_assert_to_message_box<wchar_t> @ 0x180130ebe\n// > abort @ 0x180132ab7\n// > <???> @ 0x1802037f4\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\nint __cdecl raise(int Signal)\n{\n  _QWORD *v2; // r13\n  char v3; // r14\n  int v4; // ecx\n  int v5; // ecx\n  int v6; // ecx\n  int v7; // ecx\n  __int64 *v8; // rdi\n  _QWORD *v9; // rax\n  __int64 v11; // rax\n  __int64 v12; // rcx\n  __int64 v13; // rsi\n  int v14; // r12d\n  __int64 v15; // rax\n  __int64 v16; // rcx\n  int v17; // [rsp+78h] [rbp+10h]\n  __int64 v18; // [rsp+80h] [rbp+18h]\n\n  v2 = nullptr;\n  v17 = 0;\n  v3 = 1;\n  if ( Signal != 2 )\n  {\n    switch ( Signal )\n    {\n      case 4:\n        goto LABEL_14;\n      case 6:\n        goto LABEL_8;\n      case 8:\n      case 11:\nLABEL_14:\n        v9 = (_QWORD *)_acrt_getptd_noexit();\n        v2 = v9;\n        if ( !v9 )\n          return -1;\n        v11 = *v9;\n        v12 = v11 + 192;\n        while ( v11 != v12 )\n        {\n          if ( *(_DWORD *)(v11 + 4) == Signal )\n            goto LABEL_21;\n          v11 += 16;\n        }\n        v11 = 0;\nLABEL_21:\n        if ( v11 )\n        {\n          v8 = (__int64 *)(v11 + 8);\n          v3 = 0;\n          goto LABEL_28;\n        }\n        break;\n      default:\n        if ( Signal == 15 || (unsigned int)(Signal - 21) <= 1 )\n          goto LABEL_8;\n        break;\n    }\n    *errno() = 22;\n    invalid_parameter_noinfo();\n    return -1;\n  }\nLABEL_8:\n  v4 = Signal - 2;\n  if ( v4 )\n  {\n    v5 = v4 - 4;\n    if ( !v5 )\n    {\nLABEL_24:\n      v8 = &qword_1801F55B0;\n      goto LABEL_28;\n    }\n    v6 = v5 - 9;\n    if ( v6 )\n    {\n      v7 = v6 - 6;\n      if ( v7 )\n      {\n        if ( v7 != 1 )\n        {\n          v8 = nullptr;\n          goto LABEL_28;\n        }\n        goto LABEL_24;\n      }\n      v8 = &qword_1801F55A8;\n    }\n    else\n    {\n      v8 = &qword_1801F55B8;\n    }\n  }\n  else\n  {\n    v8 = &qword_1801F55A0;\n  }\nLABEL_28:\n  v18 = 0;\n  if ( v3 )\n    sub_1801346AC(3);\n  v13 = *v8;\n  if ( v3 )\n    v13 = __ROR8__(_security_cookie ^ v13, _security_cookie & 0x3F);\n  if ( v13 == 1 )\n  {\n    v14 = 2320;\n    goto LABEL_44;\n  }\n  if ( !v13 )\n  {\n    if ( v3 )\n      sub_180134700(3);\n    exit(3);\n  }\n  v14 = 2320;\n  if ( (unsigned int)Signal > 0xB || !_bittest(&v14, Signal) )\n    goto LABEL_38;\n  v18 = v2[1];\n  v2[1] = 0;\n  if ( Signal == 8 )\n  {\n    v17 = *(_DWORD *)(_acrt_getptd() + 16);\n    *(_DWORD *)(_acrt_getptd() + 16) = 140;\nLABEL_38:\n    if ( Signal == 8 )\n    {\n      v15 = *v2 + 48LL;\n      v16 = *v2 + 192LL;\n      while ( v15 != v16 )\n      {\n        *(_QWORD *)(v15 + 8) = 0;\n        v15 += 16;\n      }\n      goto LABEL_44;\n    }\n  }\n  *v8 = _security_cookie;\nLABEL_44:\n  if ( v3 )\n    sub_180134700(3);\n  if ( v13 != 1 )\n  {\n    if ( Signal == 8 )\n      _acrt_getptd();\n    _guard_dispatch_icall_fptr();\n    if ( (unsigned int)Signal <= 0xB && _bittest(&v14, Signal) )\n    {\n      v2[1] = v18;\n      if ( Signal == 8 )\n        *(_DWORD *)(_acrt_getptd() + 16) = v17;\n    }\n  }\n  return 0;\n}", "assembly": "; \n; raise from 0x180139634 to 0x18013989e (618 bytes)\n; \n; 3 xrefs:\n; > common_assert_to_message_box<wchar_t> @ 0x180130ebe\n; > abort @ 0x180132ab7\n; > <???> @ 0x1802037f4\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_18], rbx                                              ; +0x0, 0x180139634\npush    rsi                                                            ; +0x5, 0x180139639\npush    rdi                                                            ; +0x6, 0x18013963a\npush    r12                                                            ; +0x7, 0x18013963b\npush    r13                                                            ; +0x9, 0x18013963d\npush    r14                                                            ; +0xb, 0x18013963f\nsub     rsp, 40h                                                       ; +0xd, 0x180139641\nmov     ebx, ecx                                                       ; +0x11, 0x180139645\nxor     r13d, r13d                                                     ; +0x13, 0x180139647\nand     [rsp+68h+arg_8], r13d                                          ; +0x16, 0x18013964a\nmov     r14b, 1                                                        ; +0x1b, 0x18013964f\nmov     [rsp+68h+arg_0], r14b                                          ; +0x1e, 0x180139652\ncmp     ecx, 2                                                         ; +0x23, 0x180139657\njz      short loc_18013967D                                            ; +0x26, 0x18013965a\ncmp     ecx, 4                                                         ; +0x28, 0x18013965c\njz      short loc_1801396AD                                            ; +0x2b, 0x18013965f\ncmp     ecx, 6                                                         ; +0x2d, 0x180139661\njz      short loc_18013967D                                            ; +0x30, 0x180139664\ncmp     ecx, 8                                                         ; +0x32, 0x180139666\njz      short loc_1801396AD                                            ; +0x35, 0x180139669\ncmp     ecx, 0Bh                                                       ; +0x37, 0x18013966b\njz      short loc_1801396AD                                            ; +0x3a, 0x18013966e\ncmp     ecx, 0Fh                                                       ; +0x3c, 0x180139670\njz      short loc_18013967D                                            ; +0x3f, 0x180139673\nlea     eax, [rcx-15h]                                                 ; +0x41, 0x180139675\ncmp     eax, 1                                                         ; +0x44, 0x180139678\nja      short loc_1801396FA                                            ; +0x47, 0x18013967b\nsub     ecx, 2                                                         ; +0x49, 0x18013967d\njz      loc_180139735                                                  ; +0x4c, 0x180139680\nsub     ecx, 4                                                         ; +0x52, 0x180139686\njz      loc_18013971A                                                  ; +0x55, 0x180139689\nsub     ecx, 9                                                         ; +0x5b, 0x18013968f\njz      loc_18013972C                                                  ; +0x5e, 0x180139692\nsub     ecx, 6                                                         ; +0x64, 0x180139698\njz      loc_180139723                                                  ; +0x67, 0x18013969b\ncmp     ecx, 1                                                         ; +0x6d, 0x1801396a1\njz      short loc_18013971A                                            ; +0x70, 0x1801396a4\nxor     edi, edi                                                       ; +0x72, 0x1801396a6\njmp     loc_18013973C                                                  ; +0x74, 0x1801396a8\ncall    __acrt_getptd_noexit                                           ; +0x79, 0x1801396ad\nmov     r13, rax                                                       ; +0x7e, 0x1801396b2\ntest    rax, rax                                                       ; +0x81, 0x1801396b5\njnz     short loc_1801396D2                                            ; +0x84, 0x1801396b8\nor      eax, 0FFFFFFFFh                                                ; +0x86, 0x1801396ba\nmov     rbx, [rsp+68h+arg_18]                                          ; +0x89, 0x1801396bd\nadd     rsp, 40h                                                       ; +0x91, 0x1801396c5\npop     r14                                                            ; +0x95, 0x1801396c9\npop     r13                                                            ; +0x97, 0x1801396cb\npop     r12                                                            ; +0x99, 0x1801396cd\npop     rdi                                                            ; +0x9b, 0x1801396cf\npop     rsi                                                            ; +0x9c, 0x1801396d0\nretn                                                                   ; +0x9d, 0x1801396d1\nmov     rax, [rax]                                                     ; +0x9e, 0x1801396d2\nmov     rcx, cs:qword_180173030                                        ; +0xa1, 0x1801396d5\nshl     rcx, 4                                                         ; +0xa8, 0x1801396dc\nadd     rcx, rax                                                       ; +0xac, 0x1801396e0\njmp     short loc_1801396EE                                            ; +0xaf, 0x1801396e3\ncmp     [rax+4], ebx                                                   ; +0xb1, 0x1801396e5\njz      short loc_1801396F5                                            ; +0xb4, 0x1801396e8\nadd     rax, 10h                                                       ; +0xb6, 0x1801396ea\ncmp     rax, rcx                                                       ; +0xba, 0x1801396ee\njnz     short loc_1801396E5                                            ; +0xbd, 0x1801396f1\nxor     eax, eax                                                       ; +0xbf, 0x1801396f3\ntest    rax, rax                                                       ; +0xc1, 0x1801396f5\njnz     short loc_18013970C                                            ; +0xc4, 0x1801396f8\ncall    _errno                                                         ; +0xc6, 0x1801396fa\nmov     dword ptr [rax], 16h                                           ; +0xcb, 0x1801396ff\ncall    _invalid_parameter_noinfo                                      ; +0xd1, 0x180139705\njmp     short loc_1801396BA                                            ; +0xd6, 0x18013970a\nlea     rdi, [rax+8]                                                   ; +0xd8, 0x18013970c\nxor     r14b, r14b                                                     ; +0xdc, 0x180139710\nmov     [rsp+68h+arg_0], r14b                                          ; +0xdf, 0x180139713\njmp     short loc_18013973C                                            ; +0xe4, 0x180139718\nlea     rdi, qword_1801F55B0                                           ; +0xe6, 0x18013971a\njmp     short loc_18013973C                                            ; +0xed, 0x180139721\nlea     rdi, qword_1801F55A8                                           ; +0xef, 0x180139723\njmp     short loc_18013973C                                            ; +0xf6, 0x18013972a\nlea     rdi, qword_1801F55B8                                           ; +0xf8, 0x18013972c\njmp     short loc_18013973C                                            ; +0xff, 0x180139733\nlea     rdi, qword_1801F55A0                                           ; +0x101, 0x180139735\nand     [rsp+68h+arg_10], 0                                            ; +0x108, 0x18013973c\ntest    r14b, r14b                                                     ; +0x111, 0x180139745\njz      short loc_180139755                                            ; +0x114, 0x180139748\nmov     ecx, 3                                                         ; +0x116, 0x18013974a\ncall    sub_1801346AC                                                  ; +0x11b, 0x18013974f\nnop                                                                    ; +0x120, 0x180139754\nmov     rsi, [rdi]                                                     ; +0x121, 0x180139755\ntest    r14b, r14b                                                     ; +0x124, 0x180139758\njz      short loc_18013976F                                            ; +0x127, 0x18013975b\nmov     rax, cs:__security_cookie                                      ; +0x129, 0x18013975d\nmov     ecx, eax                                                       ; +0x130, 0x180139764\nand     ecx, 3Fh                                                       ; +0x132, 0x180139766\nxor     rsi, rax                                                       ; +0x135, 0x180139769\nror     rsi, cl                                                        ; +0x138, 0x18013976c\ncmp     rsi, 1                                                         ; +0x13b, 0x18013976f\njz      loc_18013980D                                                  ; +0x13f, 0x180139773\ntest    rsi, rsi                                                       ; +0x145, 0x180139779\njz      loc_180139885                                                  ; +0x148, 0x18013977c\nmov     r12d, 910h                                                     ; +0x14e, 0x180139782\ncmp     ebx, 0Bh                                                       ; +0x154, 0x180139788\nja      short loc_1801397CA                                            ; +0x157, 0x18013978b\nbt      r12d, ebx                                                      ; +0x159, 0x18013978d\njnb     short loc_1801397CA                                            ; +0x15d, 0x180139791\nmov     rax, [r13+8]                                                   ; +0x15f, 0x180139793\nmov     [rsp+68h+arg_10], rax                                          ; +0x163, 0x180139797\nmov     [rsp+68h+var_38], rax                                          ; +0x16b, 0x18013979f\nand     qword ptr [r13+8], 0                                           ; +0x170, 0x1801397a4\ncmp     ebx, 8                                                         ; +0x175, 0x1801397a9\njnz     short loc_180139801                                            ; +0x178, 0x1801397ac\ncall    __acrt_getptd                                                  ; +0x17a, 0x1801397ae\nmov     eax, [rax+10h]                                                 ; +0x17f, 0x1801397b3\nmov     [rsp+68h+arg_8], eax                                           ; +0x182, 0x1801397b6\nmov     [rsp+68h+var_48], eax                                          ; +0x186, 0x1801397ba\ncall    __acrt_getptd                                                  ; +0x18a, 0x1801397be\nmov     dword ptr [rax+10h], 8Ch                                       ; +0x18f, 0x1801397c3\ncmp     ebx, 8                                                         ; +0x196, 0x1801397ca\njnz     short loc_180139801                                            ; +0x199, 0x1801397cd\nmov     rax, cs:qword_180173038                                        ; +0x19b, 0x1801397cf\nshl     rax, 4                                                         ; +0x1a2, 0x1801397d6\nadd     rax, [r13+0]                                                   ; +0x1a6, 0x1801397da\nmov     rcx, cs:qword_180173040                                        ; +0x1aa, 0x1801397de\nshl     rcx, 4                                                         ; +0x1b1, 0x1801397e5\nadd     rcx, rax                                                       ; +0x1b5, 0x1801397e9\nmov     [rsp+68h+var_40], rax                                          ; +0x1b8, 0x1801397ec\ncmp     rax, rcx                                                       ; +0x1bd, 0x1801397f1\njz      short loc_180139813                                            ; +0x1c0, 0x1801397f4\nand     qword ptr [rax+8], 0                                           ; +0x1c2, 0x1801397f6\nadd     rax, 10h                                                       ; +0x1c7, 0x1801397fb\njmp     short loc_1801397EC                                            ; +0x1cb, 0x1801397ff\nmov     rax, cs:__security_cookie                                      ; +0x1cd, 0x180139801\nmov     [rdi], rax                                                     ; +0x1d4, 0x180139808\njmp     short loc_180139813                                            ; +0x1d7, 0x18013980b\nmov     r12d, 910h                                                     ; +0x1d9, 0x18013980d\ntest    r14b, r14b                                                     ; +0x1df, 0x180139813\njz      short loc_180139822                                            ; +0x1e2, 0x180139816\nmov     ecx, 3                                                         ; +0x1e4, 0x180139818\ncall    sub_180134700                                                  ; +0x1e9, 0x18013981d\ncmp     rsi, 1                                                         ; +0x1ee, 0x180139822\njnz     short loc_18013982F                                            ; +0x1f2, 0x180139826\nxor     eax, eax                                                       ; +0x1f4, 0x180139828\njmp     loc_1801396BD                                                  ; +0x1f6, 0x18013982a\ncmp     ebx, 8                                                         ; +0x1fb, 0x18013982f\njnz     short loc_18013984D                                            ; +0x1fe, 0x180139832\ncall    __acrt_getptd                                                  ; +0x200, 0x180139834\nmov     edx, [rax+10h]                                                 ; +0x205, 0x180139839\nmov     ecx, ebx                                                       ; +0x208, 0x18013983c\nmov     rax, rsi                                                       ; +0x20a, 0x18013983e\nmov     r8, cs:__guard_dispatch_icall_fptr                             ; +0x20d, 0x180139841\ncall    r8 ; _guard_dispatch_icall_nop                                 ; +0x214, 0x180139848\njmp     short loc_18013985B                                            ; +0x217, 0x18013984b\nmov     ecx, ebx                                                       ; +0x219, 0x18013984d\nmov     rax, rsi                                                       ; +0x21b, 0x18013984f\nmov     rdx, cs:__guard_dispatch_icall_fptr                            ; +0x21e, 0x180139852\ncall    rdx ; _guard_dispatch_icall_nop                                ; +0x225, 0x180139859\ncmp     ebx, 0Bh                                                       ; +0x227, 0x18013985b\nja      short loc_180139828                                            ; +0x22a, 0x18013985e\nbt      r12d, ebx                                                      ; +0x22c, 0x180139860\njnb     short loc_180139828                                            ; +0x230, 0x180139864\nmov     rax, [rsp+68h+arg_10]                                          ; +0x232, 0x180139866\nmov     [r13+8], rax                                                   ; +0x23a, 0x18013986e\ncmp     ebx, 8                                                         ; +0x23e, 0x180139872\njnz     short loc_180139828                                            ; +0x241, 0x180139875\ncall    __acrt_getptd                                                  ; +0x243, 0x180139877\nmov     ecx, [rsp+68h+arg_8]                                           ; +0x248, 0x18013987c\nmov     [rax+10h], ecx                                                 ; +0x24c, 0x180139880\njmp     short loc_180139828                                            ; +0x24f, 0x180139883\ntest    r14b, r14b                                                     ; +0x251, 0x180139885\njz      short loc_180139892                                            ; +0x254, 0x180139888\nlea     ecx, [rsi+3]                                                   ; +0x256, 0x18013988a\ncall    sub_180134700                                                  ; +0x259, 0x18013988d\nmov     ecx, 3; Code                                                   ; +0x25e, 0x180139892\ncall    _exit                                                          ; +0x263, 0x180139897\ndb 90h                                                                 ; +0x268, 0x18013989c\nalign 2                                                                ; +0x269, 0x18013989d", "xrefs": ["common_assert_to_message_box<wchar_t> @ 0x180130ebe", "abort @ 0x180132ab7", "<???> @ 0x1802037f4"], "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"}