{"type": "func", "start": 6442559408, "end": 6442560317, "name": "cocos2d::extension::WebSocket::onSocketCallback", "pseudocode": "// \n// cocos2d::extension::WebSocket::onSocketCallback from 0x18001a7b0 to 0x18001ab3d (909 bytes)\n// \n// 5 xrefs:\n// > sub_180019520 @ 0x18001956e\n// > <???> @ 0x18002f62c\n// > <???> @ 0x18002f660\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x18004ad04\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 cocos2d::extension::WebSocket::onSocketCallback(\n        __int64 a1,\n        __int64 a2,\n        int a3,\n        __int64 a4,\n        void *Src,\n        size_t Size)\n{\n  _QWORD *v8; // rdx\n  _QWORD *v9; // rbx\n  __int64 v10; // rdx\n  _QWORD **v11; // rax\n  _QWORD *v12; // rbx\n  _QWORD *v13; // r15\n  __int64 v14; // r14\n  char *v15; // r13\n  _QWORD *v16; // rdi\n  _QWORD **v17; // rcx\n  _QWORD *v18; // rcx\n  _QWORD *v19; // rbx\n  _QWORD *v20; // r15\n  _DWORD *v21; // rdi\n  _BYTE *v22; // r14\n  char v23; // al\n\n  switch ( a3 )\n  {\n    case 1:\n    case 28:\n    case 33:\n      if ( a3 == 1 )\n        goto LABEL_9;\n      if ( a3 != 28 )\n      {\n        if ( a3 != 33 || *(_DWORD *)(a1 + 8) )\n          return 0;\nLABEL_9:\n        v8 = operator new(0x10u);\n        v8[1] = 0;\n        *(_DWORD *)v8 = 4;\n        *(_DWORD *)(a1 + 8) = 2;\n        goto LABEL_28;\n      }\n      if ( !*(_DWORD *)(a1 + 8) )\n        goto LABEL_9;\n      if ( *(_DWORD *)(a1 + 8) == 2 )\n      {\n        v8 = operator new(0x10u);\n        v8[1] = 0;\n        *(_DWORD *)v8 = 5;\n        goto LABEL_28;\n      }\n      return 0;\n    case 3:\n      v9 = operator new(0x10u);\n      v9[1] = 0;\n      *(_DWORD *)v9 = 2;\n      *(_DWORD *)(a1 + 8) = 1;\n      lws_callback_on_writable(a2);\n      v8 = v9;\n      goto LABEL_28;\n    case 4:\n      *(_BYTE *)(*(_QWORD *)(a1 + 88) + 112LL) = 1;\n      if ( *(_DWORD *)(a1 + 8) == 3 )\n        return 0;\n      v8 = operator new(0x10u);\n      v8[1] = 0;\n      *(_DWORD *)(a1 + 8) = 3;\n      *(_DWORD *)v8 = 5;\n      goto LABEL_28;\n    case 8:\n      if ( !Src || !Size )\n        return 0;\n      v20 = operator new(0x10u);\n      v20[1] = 0;\n      *(_DWORD *)v20 = 3;\n      v21 = operator new(0x10u);\n      *(_QWORD *)v21 = 0;\n      v21[2] = 0;\n      *((_BYTE *)v21 + 12) = 0;\n      if ( (unsigned int)lws_frame_is_binary(a2) )\n      {\n        v22 = operator new(Size);\n        v23 = 1;\n      }\n      else\n      {\n        v22 = operator new(Size + 1);\n        v22[Size] = 0;\n        v23 = 0;\n      }\n      *((_BYTE *)v21 + 12) = v23;\n      memcpy(v22, Src, Size);\n      *(_QWORD *)v21 = v22;\n      v8 = v20;\n      v21[2] = Size;\n      v20[1] = v21;\nLABEL_28:\n      sub_1800196E0(*(_QWORD *)(a1 + 88), (__int64)v8);\n      return 0;\n    case 10:\n      pthread_mutex_lock(*(_QWORD *)(a1 + 88) + 80LL);\n      v10 = *(_QWORD *)(a1 + 88);\n      v11 = *(_QWORD ***)(v10 + 64);\n      v12 = (_QWORD *)**v11;\n      if ( v12 != *v11 )\n      {\n        do\n        {\n          v13 = (_QWORD *)v12[2];\n          if ( *(_DWORD *)v13 <= 1u )\n          {\n            v14 = v13[1];\n            v15 = (char *)operator new(*(_DWORD *)(v14 + 8) + 16);\n            memset(v15 + 16, 0, *(int *)(v14 + 8));\n            memcpy(v15 + 16, *(const void **)v14, *(int *)(v14 + 8));\n            lws_write(a2, v15 + 16, *(int *)(v14 + 8), *(_DWORD *)v13 != 0);\n            if ( *(_QWORD *)v14 )\n            {\n              j_j_free(*(void **)v14);\n              *(_QWORD *)v14 = 0;\n            }\n            j_j_free((void *)v14);\n            j_j_free(v15);\n          }\n          j_j_free(v13);\n          v10 = *(_QWORD *)(a1 + 88);\n          v12 = (_QWORD *)*v12;\n        }\n        while ( v12 != **(_QWORD ***)(v10 + 64) );\n      }\n      v16 = *(_QWORD **)(v10 + 64);\n      v17 = (_QWORD **)*v16;\n      **(_QWORD **)(*v16 + 8LL) = 0;\n      v18 = *v17;\n      if ( v18 )\n      {\n        do\n        {\n          v19 = (_QWORD *)*v18;\n          j_j_free(v18);\n          v18 = v19;\n        }\n        while ( v19 );\n      }\n      *(_QWORD *)*v16 = *v16;\n      *(_QWORD *)(*v16 + 8LL) = *v16;\n      v16[1] = 0;\n      pthread_mutex_unlock(*(_QWORD *)(a1 + 88) + 80LL);\n      lws_callback_on_writable(a2);\n      return 0;\n    default:\n      return 0;\n  }\n}", "assembly": "; \n; cocos2d::extension::WebSocket::onSocketCallback from 0x18001a7b0 to 0x18001ab3d (909 bytes)\n; \n; 5 xrefs:\n; > sub_180019520 @ 0x18001956e\n; > <???> @ 0x18002f62c\n; > <???> @ 0x18002f660\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x18004ad04\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_8], rdx                                               ; +0x0, 0x18001a7b0\npush    rsi                                                            ; +0x5, 0x18001a7b5\npush    r12                                                            ; +0x6, 0x18001a7b6\nsub     rsp, 48h                                                       ; +0x8, 0x18001a7b8\nlea     eax, [r8-1]; switch 33 cases                                   ; +0xc, 0x18001a7bc\nmov     r12, rdx                                                       ; +0x10, 0x18001a7c0\nmov     rsi, rcx                                                       ; +0x13, 0x18001a7c3\ncmp     eax, 20h                                                       ; +0x16, 0x18001a7c6\nja      def_18001A804; jumptable 000000018001A804 default case         ; +0x19, 0x18001a7c9\nmov     [rsp+58h+arg_0], rbx                                           ; +0x1f, 0x18001a7cf\nlea     rcx, cs:180000000h                                             ; +0x24, 0x18001a7d4\nmov     [rsp+58h+arg_10], rbp                                          ; +0x2b, 0x18001a7db\nmov     [rsp+58h+arg_18], rdi                                          ; +0x30, 0x18001a7e0\nmov     [rsp+58h+var_20], r14                                          ; +0x35, 0x18001a7e5\nmov     [rsp+58h+var_28], r15                                          ; +0x3a, 0x18001a7ea\ncdqe                                                                   ; +0x3f, 0x18001a7ef\nmovzx   eax, ds:(byte_18001AB1C - 180000000h)[rcx+rax]                 ; +0x41, 0x18001a7f1\nmov     r9d, ds:(jpt_18001A804 - 180000000h)[rcx+rax*4]                ; +0x49, 0x18001a7f9\nadd     r9, rcx                                                        ; +0x51, 0x18001a801\njmp     r9; switch jump                                                ; +0x54, 0x18001a804\ncmp     r8d, 1; jumptable 000000018001A804 cases 1,28,33               ; +0x57, 0x18001a807\njz      short loc_18001A859                                            ; +0x5b, 0x18001a80b\ncmp     r8d, 1Ch                                                       ; +0x5d, 0x18001a80d\njnz     short loc_18001A845                                            ; +0x61, 0x18001a811\ncmp     dword ptr [rsi+8], 0                                           ; +0x63, 0x18001a813\njz      short loc_18001A859                                            ; +0x67, 0x18001a817\ncmp     dword ptr [rsi+8], 2                                           ; +0x69, 0x18001a819\njnz     loc_18001AADF; jumptable 000000018001A804 cases 2,5-7,9,11-27,29-32 ; +0x6d, 0x18001a81d\nlea     ecx, [r8-0Ch]; Size                                            ; +0x73, 0x18001a823\ncall    ??2@YAPEAX_K@Z; operator new(unsigned __int64)                 ; +0x77, 0x18001a827\nxor     ebp, ebp                                                       ; +0x7c, 0x18001a82c\nmov     [rsp+58h+var_38], rax                                          ; +0x7e, 0x18001a82e\nmov     rdx, rax                                                       ; +0x83, 0x18001a833\nmov     [rax+8], rbp                                                   ; +0x86, 0x18001a836\nmov     dword ptr [rax], 5                                             ; +0x8a, 0x18001a83a\njmp     loc_18001AAD6                                                  ; +0x90, 0x18001a840\ncmp     r8d, 21h ; '!'                                                 ; +0x95, 0x18001a845\njnz     loc_18001AADF; jumptable 000000018001A804 cases 2,5-7,9,11-27,29-32 ; +0x99, 0x18001a849\ncmp     dword ptr [rsi+8], 0                                           ; +0x9f, 0x18001a84f\njnz     loc_18001AADF; jumptable 000000018001A804 cases 2,5-7,9,11-27,29-32 ; +0xa3, 0x18001a853\nmov     ecx, 10h; Size                                                 ; +0xa9, 0x18001a859\ncall    ??2@YAPEAX_K@Z; operator new(unsigned __int64)                 ; +0xae, 0x18001a85e\nxor     ebp, ebp                                                       ; +0xb3, 0x18001a863\nmov     [rsp+58h+var_38], rax                                          ; +0xb5, 0x18001a865\nmov     rdx, rax                                                       ; +0xba, 0x18001a86a\nmov     [rax+8], rbp                                                   ; +0xbd, 0x18001a86d\nmov     dword ptr [rax], 4                                             ; +0xc1, 0x18001a871\nmov     dword ptr [rsi+8], 2                                           ; +0xc7, 0x18001a877\njmp     loc_18001AAD6                                                  ; +0xce, 0x18001a87e\nmov     ecx, 10h; jumptable 000000018001A804 case 3                    ; +0xd3, 0x18001a883\ncall    ??2@YAPEAX_K@Z; operator new(unsigned __int64)                 ; +0xd8, 0x18001a888\nxor     ebp, ebp                                                       ; +0xdd, 0x18001a88d\nmov     [rsp+58h+var_38], rax                                          ; +0xdf, 0x18001a88f\nmov     rcx, r12                                                       ; +0xe4, 0x18001a894\nmov     rbx, rax                                                       ; +0xe7, 0x18001a897\nmov     [rax+8], rbp                                                   ; +0xea, 0x18001a89a\nmov     dword ptr [rax], 2                                             ; +0xee, 0x18001a89e\nmov     dword ptr [rsi+8], 1                                           ; +0xf4, 0x18001a8a4\ncall    cs:lws_callback_on_writable                                    ; +0xfb, 0x18001a8ab\nmov     rdx, rbx                                                       ; +0x101, 0x18001a8b1\njmp     loc_18001AAD6                                                  ; +0x104, 0x18001a8b4\nmov     rcx, [rsi+58h]; jumptable 000000018001A804 case 10             ; +0x109, 0x18001a8b9\nadd     rcx, 50h ; 'P'                                                 ; +0x10d, 0x18001a8bd\ncall    cs:pthread_mutex_lock                                          ; +0x111, 0x18001a8c1\nmov     rdx, [rsi+58h]                                                 ; +0x117, 0x18001a8c7\nxor     ebp, ebp                                                       ; +0x11b, 0x18001a8cb\nmov     rax, [rdx+40h]                                                 ; +0x11d, 0x18001a8cd\nmov     rcx, [rax]                                                     ; +0x121, 0x18001a8d1\nmov     rbx, [rcx]                                                     ; +0x124, 0x18001a8d4\ncmp     rbx, rcx                                                       ; +0x127, 0x18001a8d7\njz      loc_18001A990                                                  ; +0x12a, 0x18001a8da\nmov     [rsp+58h+var_18], r13                                          ; +0x130, 0x18001a8e0\nmov     r15, [rbx+10h]                                                 ; +0x135, 0x18001a8e5\nmov     eax, [r15]                                                     ; +0x139, 0x18001a8e9\ntest    eax, eax                                                       ; +0x13c, 0x18001a8ec\njz      short loc_18001A8F5                                            ; +0x13e, 0x18001a8ee\ncmp     eax, 1                                                         ; +0x140, 0x18001a8f0\njnz     short loc_18001A96A                                            ; +0x143, 0x18001a8f3\nmov     r14, [r15+8]                                                   ; +0x145, 0x18001a8f5\nmov     eax, [r14+8]                                                   ; +0x149, 0x18001a8f9\nadd     eax, 10h                                                       ; +0x14d, 0x18001a8fd\nmovsxd  rcx, eax; Size                                                 ; +0x150, 0x18001a900\ncall    j_??2@YAPEAX_K@Z; operator new(unsigned __int64)               ; +0x153, 0x18001a903\nmovsxd  r8, dword ptr [r14+8]; Size                                    ; +0x158, 0x18001a908\nxor     edx, edx; Val                                                  ; +0x15c, 0x18001a90c\nmov     r13, rax                                                       ; +0x15e, 0x18001a90e\nlea     rcx, [rax+10h]; void *                                         ; +0x161, 0x18001a911\ncall    memset                                                         ; +0x165, 0x18001a915\nmovsxd  r8, dword ptr [r14+8]; Size                                    ; +0x16a, 0x18001a91a\nlea     rcx, [r13+10h]; void *                                         ; +0x16e, 0x18001a91e\nmov     rdx, [r14]; Src                                                ; +0x172, 0x18001a922\ncall    memcpy                                                         ; +0x175, 0x18001a925\ncmp     [r15], ebp                                                     ; +0x17a, 0x18001a92a\nlea     rdx, [r13+10h]                                                 ; +0x17d, 0x18001a92d\nmovsxd  r8, dword ptr [r14+8]                                          ; +0x181, 0x18001a931\nmov     r9d, ebp                                                       ; +0x185, 0x18001a935\nsetnz   r9b                                                            ; +0x188, 0x18001a938\nmov     rcx, r12                                                       ; +0x18c, 0x18001a93c\ncall    cs:lws_write                                                   ; +0x18f, 0x18001a93f\nmov     rcx, [r14]; Block                                              ; +0x195, 0x18001a945\ntest    rcx, rcx                                                       ; +0x198, 0x18001a948\njz      short loc_18001A955                                            ; +0x19b, 0x18001a94b\ncall    j_j_free                                                       ; +0x19d, 0x18001a94d\nmov     [r14], rbp                                                     ; +0x1a2, 0x18001a952\nmov     edx, 10h                                                       ; +0x1a5, 0x18001a955\nmov     rcx, r14; Block                                                ; +0x1aa, 0x18001a95a\ncall    j_j_free                                                       ; +0x1ad, 0x18001a95d\nmov     rcx, r13; Block                                                ; +0x1b2, 0x18001a962\ncall    j_j_free                                                       ; +0x1b5, 0x18001a965\nmov     edx, 10h                                                       ; +0x1ba, 0x18001a96a\nmov     rcx, r15; Block                                                ; +0x1bf, 0x18001a96f\ncall    j_j_free                                                       ; +0x1c2, 0x18001a972\nmov     rdx, [rsi+58h]                                                 ; +0x1c7, 0x18001a977\nmov     rbx, [rbx]                                                     ; +0x1cb, 0x18001a97b\nmov     rax, [rdx+40h]                                                 ; +0x1ce, 0x18001a97e\ncmp     rbx, [rax]                                                     ; +0x1d2, 0x18001a982\njnz     loc_18001A8E5                                                  ; +0x1d5, 0x18001a985\nmov     r13, [rsp+58h+var_18]                                          ; +0x1db, 0x18001a98b\nmov     rdi, [rdx+40h]                                                 ; +0x1e0, 0x18001a990\nmov     rcx, [rdi]                                                     ; +0x1e4, 0x18001a994\nmov     rax, [rcx+8]                                                   ; +0x1e7, 0x18001a997\nmov     [rax], rbp                                                     ; +0x1eb, 0x18001a99b\nmov     rcx, [rcx]; Block                                              ; +0x1ee, 0x18001a99e\ntest    rcx, rcx                                                       ; +0x1f1, 0x18001a9a1\njz      short loc_18001A9C5                                            ; +0x1f4, 0x18001a9a4\nnop     word ptr [rax+rax+00000000h]                                   ; +0x1f6, 0x18001a9a6\nmov     rbx, [rcx]                                                     ; +0x200, 0x18001a9b0\nmov     edx, 18h                                                       ; +0x203, 0x18001a9b3\ncall    j_j_free                                                       ; +0x208, 0x18001a9b8\nmov     rcx, rbx                                                       ; +0x20d, 0x18001a9bd\ntest    rbx, rbx                                                       ; +0x210, 0x18001a9c0\njnz     short loc_18001A9B0                                            ; +0x213, 0x18001a9c3\nmov     rax, [rdi]                                                     ; +0x215, 0x18001a9c5\nmov     [rax], rax                                                     ; +0x218, 0x18001a9c8\nmov     rax, [rdi]                                                     ; +0x21b, 0x18001a9cb\nmov     [rax+8], rax                                                   ; +0x21e, 0x18001a9ce\nmov     [rdi+8], rbp                                                   ; +0x222, 0x18001a9d2\nmov     rcx, [rsi+58h]                                                 ; +0x226, 0x18001a9d6\nadd     rcx, 50h ; 'P'                                                 ; +0x22a, 0x18001a9da\ncall    cs:pthread_mutex_unlock                                        ; +0x22e, 0x18001a9de\nmov     rcx, r12                                                       ; +0x234, 0x18001a9e4\ncall    cs:lws_callback_on_writable                                    ; +0x237, 0x18001a9e7\njmp     loc_18001AADF; jumptable 000000018001A804 cases 2,5-7,9,11-27,29-32 ; +0x23d, 0x18001a9ed\nmov     rax, [rsi+58h]; jumptable 000000018001A804 case 4              ; +0x242, 0x18001a9f2\nmov     byte ptr [rax+70h], 1                                          ; +0x246, 0x18001a9f6\ncmp     dword ptr [rsi+8], 3                                           ; +0x24a, 0x18001a9fa\njz      loc_18001AADF; jumptable 000000018001A804 cases 2,5-7,9,11-27,29-32 ; +0x24e, 0x18001a9fe\nmov     ecx, 10h; Size                                                 ; +0x254, 0x18001aa04\ncall    ??2@YAPEAX_K@Z; operator new(unsigned __int64)                 ; +0x259, 0x18001aa09\nxor     ebp, ebp                                                       ; +0x25e, 0x18001aa0e\nmov     [rsp+58h+var_38], rax                                          ; +0x260, 0x18001aa10\nmov     rdx, rax                                                       ; +0x265, 0x18001aa15\nmov     [rax+8], rbp                                                   ; +0x268, 0x18001aa18\nmov     dword ptr [rsi+8], 3                                           ; +0x26c, 0x18001aa1c\nmov     dword ptr [rax], 5                                             ; +0x273, 0x18001aa23\njmp     loc_18001AAD6                                                  ; +0x279, 0x18001aa29\nmov     r12, [rsp+58h+Src]; jumptable 000000018001A804 case 8          ; +0x27e, 0x18001aa2e\ntest    r12, r12                                                       ; +0x286, 0x18001aa36\njz      loc_18001AADF; jumptable 000000018001A804 cases 2,5-7,9,11-27,29-32 ; +0x289, 0x18001aa39\nmov     rbx, [rsp+58h+Size]                                            ; +0x28f, 0x18001aa3f\ntest    rbx, rbx                                                       ; +0x297, 0x18001aa47\njz      loc_18001AADF; jumptable 000000018001A804 cases 2,5-7,9,11-27,29-32 ; +0x29a, 0x18001aa4a\nmov     ecx, 10h; Size                                                 ; +0x2a0, 0x18001aa50\ncall    ??2@YAPEAX_K@Z; operator new(unsigned __int64)                 ; +0x2a5, 0x18001aa55\nxor     ebp, ebp                                                       ; +0x2aa, 0x18001aa5a\nmov     [rsp+58h+var_38], rax                                          ; +0x2ac, 0x18001aa5c\nmov     r15, rax                                                       ; +0x2b1, 0x18001aa61\nmov     [rax+8], rbp                                                   ; +0x2b4, 0x18001aa64\nlea     ecx, [rbp+10h]; Size                                           ; +0x2b8, 0x18001aa68\nmov     dword ptr [rax], 3                                             ; +0x2bb, 0x18001aa6b\ncall    ??2@YAPEAX_K@Z; operator new(unsigned __int64)                 ; +0x2c1, 0x18001aa71\nmov     rcx, [rsp+58h+arg_8]                                           ; +0x2c6, 0x18001aa76\nmov     rdi, rax                                                       ; +0x2cb, 0x18001aa7b\nmov     [rsp+58h+var_38], rax                                          ; +0x2ce, 0x18001aa7e\nmov     [rax], rbp                                                     ; +0x2d3, 0x18001aa83\nmov     [rax+8], ebp                                                   ; +0x2d6, 0x18001aa86\nmov     [rax+0Ch], bpl                                                 ; +0x2d9, 0x18001aa89\ncall    cs:lws_frame_is_binary                                         ; +0x2dd, 0x18001aa8d\ntest    eax, eax                                                       ; +0x2e3, 0x18001aa93\njz      short loc_18001AAA6                                            ; +0x2e5, 0x18001aa95\nmov     rcx, rbx; Size                                                 ; +0x2e7, 0x18001aa97\ncall    j_??2@YAPEAX_K@Z; operator new(unsigned __int64)               ; +0x2ea, 0x18001aa9a\nmov     r14, rax                                                       ; +0x2ef, 0x18001aa9f\nmov     al, 1                                                          ; +0x2f2, 0x18001aaa2\njmp     short loc_18001AAB8                                            ; +0x2f4, 0x18001aaa4\nlea     rcx, [rbx+1]; Size                                             ; +0x2f6, 0x18001aaa6\ncall    j_??2@YAPEAX_K@Z; operator new(unsigned __int64)               ; +0x2fa, 0x18001aaaa\nmov     r14, rax                                                       ; +0x2ff, 0x18001aaaf\nmov     [rax+rbx], bpl                                                 ; +0x302, 0x18001aab2\nxor     al, al                                                         ; +0x306, 0x18001aab6\nmov     r8, rbx; Size                                                  ; +0x308, 0x18001aab8\nmov     [rdi+0Ch], al                                                  ; +0x30b, 0x18001aabb\nmov     rdx, r12; Src                                                  ; +0x30e, 0x18001aabe\nmov     rcx, r14; void *                                               ; +0x311, 0x18001aac1\ncall    memcpy                                                         ; +0x314, 0x18001aac4\nmov     [rdi], r14                                                     ; +0x319, 0x18001aac9\nmov     rdx, r15                                                       ; +0x31c, 0x18001aacc\nmov     [rdi+8], ebx                                                   ; +0x31f, 0x18001aacf\nmov     [r15+8], rdi                                                   ; +0x322, 0x18001aad2\nmov     rcx, [rsi+58h]                                                 ; +0x326, 0x18001aad6\ncall    sub_1800196E0                                                  ; +0x32a, 0x18001aada\nmov     r14, [rsp+58h+var_20]; jumptable 000000018001A804 cases 2,5-7,9,11-27,29-32 ; +0x32f, 0x18001aadf\nmov     rdi, [rsp+58h+arg_18]                                          ; +0x334, 0x18001aae4\nmov     rbp, [rsp+58h+arg_10]                                          ; +0x339, 0x18001aae9\nmov     rbx, [rsp+58h+arg_0]                                           ; +0x33e, 0x18001aaee\nmov     r15, [rsp+58h+var_28]                                          ; +0x343, 0x18001aaf3\nxor     eax, eax; jumptable 000000018001A804 default case              ; +0x348, 0x18001aaf8\nadd     rsp, 48h                                                       ; +0x34a, 0x18001aafa\npop     r12                                                            ; +0x34e, 0x18001aafe\npop     rsi                                                            ; +0x350, 0x18001ab00\nretn                                                                   ; +0x351, 0x18001ab01\nalign 4                                                                ; +0x352, 0x18001ab02\ndd offset loc_18001A807 - 180000000h; jump table for switch statement  ; +0x354, 0x18001ab04\ndb      0,     5,     1,     2; indirect table for switch statement    ; +0x36c, 0x18001ab1c", "xrefs": ["sub_180019520 @ 0x18001956e", "<???> @ 0x18002f62c", "<???> @ 0x18002f660", "<???> @ 0x18002fdf8", "<???> @ 0x18004ad04"], "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"}