{"type": "func", "start": 6442556016, "end": 6442558275, "name": "cocos2d::extension::WebSocket::init", "pseudocode": "// \n// cocos2d::extension::WebSocket::init from 0x180019a70 to 0x18001a343 (2259 bytes)\n// \n// 2 xrefs:\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x18004ac80\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// Hidden C++ exception states: #wind=7\n_BOOL8 __fastcall cocos2d::extension::WebSocket::init(void **a1, void *a2, __int64 a3, __int64 *a4)\n{\n  void **v6; // rsi\n  unsigned __int64 v7; // r15\n  bool v8; // r13\n  void **v9; // r12\n  __int64 v10; // rbx\n  unsigned __int64 v11; // rdi\n  size_t v12; // r14\n  char *v13; // r9\n  __int64 v14; // rcx\n  unsigned __int8 v15; // al\n  int v16; // eax\n  int v17; // r9d\n  void **v18; // rcx\n  void **v19; // rsi\n  __int64 v20; // rbx\n  char *v21; // r9\n  __int64 v22; // rcx\n  unsigned __int8 v23; // al\n  int v24; // eax\n  int v25; // r9d\n  void **v26; // rcx\n  void **v27; // rsi\n  _BYTE *v28; // rbx\n  int v30; // ebx\n  unsigned __int64 v31; // rcx\n  void **v32; // rdx\n  const char *v33; // rcx\n  int v34; // r13d\n  char *v35; // rcx\n  unsigned __int64 v36; // rcx\n  void **v37; // rbx\n  _BYTE *v38; // rcx\n  int v40; // ecx\n  unsigned __int64 v41; // rcx\n  void **v42; // rdx\n  __int64 v43; // r8\n  char **v44; // r9\n  char *v45; // rdi\n  unsigned __int64 v46; // r14\n  size_t v47; // rcx\n  size_t v48; // rsi\n  void **v49; // rbx\n  char *v50; // rbx\n  char *v51; // rax\n  void **v52; // rbx\n  _BYTE *v53; // rax\n  int v55; // eax\n  __int64 v56; // r9\n  unsigned __int64 v57; // rax\n  void **v58; // rcx\n  void **v59; // r14\n  void **v60; // rdx\n  void **v61; // rdx\n  __int64 *v62; // r15\n  __int64 v63; // rax\n  unsigned __int64 v64; // rbx\n  void *v65; // rax\n  __int64 v66; // rbx\n  __int64 v67; // rdi\n  _BYTE *v68; // rax\n  _BYTE *v69; // r8\n  char *v70; // rcx\n  __int64 v71; // rdx\n  char v72; // al\n  char *v73; // rax\n  __int64 *v74; // rdi\n  _QWORD *v75; // rbx\n  _QWORD *v76; // rax\n  void **v77; // rbx\n  _QWORD *v78; // rax\n  __int64 v79; // rdx\n  __int64 v80; // rcx\n  __int64 v81; // rax\n  cocos2d::CCScheduler *v82; // rax\n  bool v83; // bl\n  void *v84; // rcx\n  void *v85; // rcx\n  unsigned __int8 v87; // [rsp+30h] [rbp-69h]\n  __int64 *v88; // [rsp+38h] [rbp-61h] BYREF\n  void **v89; // [rsp+40h] [rbp-59h]\n  void *Buf[2]; // [rsp+50h] [rbp-49h] BYREF\n  size_t v91; // [rsp+60h] [rbp-39h]\n  unsigned __int64 v92; // [rsp+68h] [rbp-31h]\n  void *Block[2]; // [rsp+70h] [rbp-29h] BYREF\n  size_t v94; // [rsp+80h] [rbp-19h]\n  unsigned __int64 v95; // [rsp+88h] [rbp-11h]\n  char *String[2]; // [rsp+90h] [rbp-9h] BYREF\n  size_t Size; // [rsp+A0h] [rbp+7h]\n  unsigned __int64 v98; // [rsp+A8h] [rbp+Fh]\n\n  v88 = a4;\n  v89 = a1;\n  v87 = 0;\n  sub_180003F50((__int64)Buf, a3);\n  a1[14] = a2;\n  v6 = Buf;\n  v7 = v92;\n  v8 = v92 > 0xF;\n  v9 = (void **)Buf[0];\n  if ( v92 > 0xF )\n    v6 = (void **)Buf[0];\n  v10 = 5;\n  v11 = v91;\n  if ( v91 >= 5 && (v12 = (size_t)v6 + v91, (v13 = (char *)memchr(v6, 119, v91 - 4)) != nullptr) )\n  {\n    while ( 1 )\n    {\n      v14 = 0;\n      while ( 1 )\n      {\n        v15 = v13[v14++];\n        if ( v15 != aWs[v14 - 1] )\n          break;\n        if ( v14 == 5 )\n        {\n          v16 = 0;\n          goto LABEL_10;\n        }\n      }\n      v16 = v15 < (unsigned __int8)aWs[v14 - 1] ? -1 : 1;\nLABEL_10:\n      if ( !v16 )\n        break;\n      v13 = (char *)memchr(v13 + 1, 119, v12 - 4 - (_QWORD)(v13 + 1));\n      if ( !v13 )\n        goto LABEL_12;\n    }\n    v17 = (_DWORD)v13 - (_DWORD)v6;\n  }\n  else\n  {\nLABEL_12:\n    v17 = -1;\n  }\n  if ( !v17 )\n  {\n    if ( v11 < 5 )\n      v10 = v11;\n    v18 = Buf;\n    if ( v8 )\n      v18 = v9;\n    v11 -= v10;\n    memmove(v18, (char *)v18 + v10, v11 + 1);\n    v91 = v11;\n    v7 = v92;\n    v9 = (void **)Buf[0];\n  }\n  v19 = Buf;\n  if ( v7 > 0xF )\n    v19 = v9;\n  v20 = 6;\n  if ( v11 >= 6 && (v21 = (char *)memchr(v19, 119, v11 - 5)) != nullptr )\n  {\n    while ( 1 )\n    {\n      v22 = 0;\n      while ( 1 )\n      {\n        v23 = v21[v22++];\n        if ( v23 != aWss[v22 - 1] )\n          break;\n        if ( v22 == 6 )\n        {\n          v24 = 0;\n          goto LABEL_29;\n        }\n      }\n      v24 = v23 < (unsigned __int8)aWss[v22 - 1] ? -1 : 1;\nLABEL_29:\n      if ( !v24 )\n        break;\n      v21 = (char *)memchr(v21 + 1, 119, (char *)v19 + v11 - 5 - (v21 + 1));\n      if ( !v21 )\n        goto LABEL_31;\n    }\n    v25 = (_DWORD)v21 - (_DWORD)v19;\n  }\n  else\n  {\nLABEL_31:\n    v25 = -1;\n  }\n  if ( !v25 )\n  {\n    if ( v11 < 6 )\n      v20 = v11;\n    v26 = Buf;\n    if ( v7 > 0xF )\n      v26 = v9;\n    v11 -= v20;\n    memmove(v26, (char *)v26 + v20, v11 + 1);\n    v91 = v11;\n    v87 = 1;\n    v7 = v92;\n    v9 = (void **)Buf[0];\n  }\n  v27 = Buf;\n  if ( v7 > 0xF )\n    v27 = v9;\n  if ( v11 )\n  {\n    v28 = memchr(v27, 58, v11);\n    if ( v28 )\n    {\n      while ( *v28 == 58 ? 0 : *v28 < 0x3Au ? -1 : 1 )\n      {\n        v28 = memchr(v28 + 1, 58, (char *)v27 + v11 - (v28 + 1));\n        if ( !v28 )\n          goto LABEL_48;\n      }\n      v30 = (_DWORD)v28 - (_DWORD)v27;\n    }\n    else\n    {\nLABEL_48:\n      v30 = -1;\n    }\n  }\n  else\n  {\n    v30 = -1;\n  }\n  if ( v30 < 0 )\n  {\n    v34 = 80;\n  }\n  else\n  {\n    v31 = v30 + 1;\n    *(_OWORD *)String = 0;\n    Size = 0;\n    v98 = 0;\n    if ( v11 < v31 )\n      sub_18001ABF0();\n    v32 = Buf;\n    if ( v7 > 0xF )\n      v32 = v9;\n    sub_180003AB0(String, (char *)v32 + v31, v11 - v31);\n    v33 = (const char *)String;\n    if ( v98 > 0xF )\n      v33 = String[0];\n    v34 = atoi(v33);\n    if ( v98 > 0xF )\n    {\n      v35 = String[0];\n      if ( v98 + 1 >= 0x1000 )\n      {\n        v35 = *((char **)String[0] - 1);\n        if ( (unsigned __int64)(String[0] - v35 - 8) > 0x1F )\n          invalid_parameter_noinfo_noreturn();\n      }\n      j_j_free(v35);\n    }\n    v7 = v92;\n    v11 = v91;\n    v9 = (void **)Buf[0];\n  }\n  v36 = v30;\n  v37 = Buf;\n  if ( v7 > 0xF )\n    v37 = v9;\n  if ( v11 && v36 <= v11 - 1 && (v38 = memchr((char *)v37 + v36, 47, v11 - v36)) != nullptr )\n  {\n    while ( *v38 == 47 ? 0 : *v38 < 0x2Fu ? -1 : 1 )\n    {\n      v38 = memchr(v38 + 1, 47, (char *)v37 + v11 - (v38 + 1));\n      if ( !v38 )\n        goto LABEL_74;\n    }\n    v40 = (_DWORD)v38 - (_DWORD)v37;\n  }\n  else\n  {\nLABEL_74:\n    v40 = -1;\n  }\n  *(_OWORD *)Block = 0;\n  v94 = 1;\n  v95 = 15;\n  LOWORD(Block[0]) = 47;\n  if ( v40 >= 0 )\n  {\n    v41 = v40 + 1;\n    *(_OWORD *)String = 0;\n    Size = 0;\n    v98 = 0;\n    if ( v11 < v41 )\n      goto LABEL_141;\n    v42 = Buf;\n    if ( v7 > 0xF )\n      v42 = v9;\n    sub_180003AB0(String, (char *)v42 + v41, v11 - v41);\n    v44 = String;\n    v45 = String[0];\n    v46 = v98;\n    if ( v98 > 0xF )\n      v44 = (char **)String[0];\n    v47 = v94;\n    v48 = Size;\n    if ( Size > v95 - v94 )\n    {\n      sub_180003810(Block, Size, v43, v44, Size);\n      v46 = v98;\n      v45 = String[0];\n    }\n    else\n    {\n      v94 += Size;\n      v49 = Block;\n      if ( v95 > 0xF )\n        v49 = (void **)Block[0];\n      v50 = (char *)v49 + v47;\n      memmove(v50, v44, Size);\n      v50[v48] = 0;\n    }\n    if ( v46 > 0xF )\n    {\n      v51 = v45;\n      if ( v46 + 1 >= 0x1000 )\n      {\n        v45 = *((char **)v45 - 1);\n        if ( (unsigned __int64)(v51 - v45 - 8) > 0x1F )\n          invalid_parameter_noinfo_noreturn();\n      }\n      j_j_free(v45);\n    }\n    v9 = (void **)Buf[0];\n    v11 = v91;\n    v7 = v92;\n  }\n  v52 = Buf;\n  if ( v7 > 0xF )\n    v52 = v9;\n  if ( v11 && (v53 = memchr(v52, 58, v11)) != nullptr )\n  {\n    while ( *v53 == 58 ? 0 : *v53 < 0x3Au ? -1 : 1 )\n    {\n      v53 = memchr(v53 + 1, 58, (char *)v52 + v11 - (v53 + 1));\n      if ( !v53 )\n        goto LABEL_102;\n    }\n    v55 = (_DWORD)v53 - (_DWORD)v52;\n  }\n  else\n  {\nLABEL_102:\n    v55 = -1;\n  }\n  if ( v55 >= 0 )\n  {\n    v56 = v55;\n    if ( v11 >= v55 )\n    {\n      v57 = v11 - v55;\n      v58 = Buf;\n      if ( v7 > 0xF )\n        v58 = v9;\n      v11 -= v57;\n      memmove((char *)v58 + v56, (char *)v58 + v56 + v57, v11 - v56 + 1);\n      v91 = v11;\n      v7 = v92;\n      v9 = (void **)Buf[0];\n      goto LABEL_108;\n    }\nLABEL_141:\n    sub_18001ABF0();\n  }\nLABEL_108:\n  v59 = v89;\n  if ( v89 + 2 != Buf )\n  {\n    v60 = Buf;\n    if ( v7 > 0xF )\n      v60 = v9;\n    sub_180003BC0(v89 + 2, v60, v11);\n  }\n  *((_DWORD *)v59 + 12) = v34;\n  if ( v59 + 7 != Block )\n  {\n    v61 = Block;\n    if ( v95 > 0xF )\n      v61 = (void **)Block[0];\n    sub_180003BC0(v59 + 7, v61, v94);\n  }\n  *((_DWORD *)v59 + 30) = v87;\n  v62 = v88;\n  if ( !v88 || (v63 = (v88[1] - *v88) >> 5) == 0 )\n    LODWORD(v63) = 1;\n  v64 = (int)v63 + 1;\n  v65 = operator new(saturated_mul(v64, 0x38u));\n  v59[16] = v65;\n  memset(v65, 0, 56 * v64);\n  if ( v62 )\n  {\n    v66 = *v62;\n    if ( *v62 != v62[1] )\n    {\n      v67 = 0;\n      do\n      {\n        v68 = operator new(*(_QWORD *)(v66 + 16) + 1LL);\n        v69 = v68;\n        v70 = (char *)v66;\n        if ( *(_QWORD *)(v66 + 24) > 0xFu )\n          v70 = *(char **)v66;\n        v71 = v68 - v70;\n        do\n        {\n          v72 = *v70;\n          v70[v71] = *v70;\n          ++v70;\n        }\n        while ( v72 );\n        *(_QWORD *)((char *)v59[16] + v67) = v69;\n        *(_QWORD *)((char *)v59[16] + v67 + 8) = sub_180019520;\n        v66 += 32;\n        v67 += 56;\n      }\n      while ( v66 != v62[1] );\n    }\n  }\n  else\n  {\n    v73 = (char *)operator new(0x14u);\n    strcpy(v73, \"default-protocol\");\n    *(_QWORD *)v59[16] = v73;\n    *((_QWORD *)v59[16] + 1) = sub_180019520;\n  }\n  v74 = (__int64 *)operator new(0x78u);\n  v88 = v74;\n  cocos2d::CCObject::CCObject((cocos2d::CCObject *)v74);\n  *v74 = (__int64)&cocos2d::extension::WsThreadHelper::`vftable';\n  v74[13] = 0;\n  *((_BYTE *)v74 + 112) = 0;\n  v75 = operator new(0x10u);\n  HIDWORD(v89) = HIDWORD(v75);\n  *v75 = 0;\n  v75[1] = 0;\n  v76 = operator new(0x18u);\n  *v76 = v76;\n  v76[1] = v76;\n  *v75 = v76;\n  v74[7] = (__int64)v75;\n  pthread_mutex_init(v74 + 9, 0);\n  v77 = (void **)operator new(0x10u);\n  v89 = v77;\n  *v77 = nullptr;\n  v77[1] = nullptr;\n  v78 = operator new(0x18u);\n  *v78 = v78;\n  v78[1] = v78;\n  *v77 = v78;\n  v74[8] = (__int64)v77;\n  pthread_mutex_init(v74 + 10, 0);\n  v81 = cocos2d::CCDirector::sharedDirector(v80, v79);\n  v82 = (cocos2d::CCScheduler *)(*(__int64 (__fastcall **)(__int64))(*(_QWORD *)v81 + 112LL))(v81);\n  cocos2d::CCScheduler::scheduleUpdateForTarget(v82, (struct cocos2d::CCObject *)v74, 0, 0);\n  v59[11] = v74;\n  v74[13] = (__int64)v59;\n  pthread_attr_init(&v88);\n  v83 = (unsigned int)pthread_create(v74 + 11, &v88, sub_180019690, v74) == 0;\n  if ( v95 > 0xF )\n  {\n    v84 = Block[0];\n    if ( v95 + 1 >= 0x1000 )\n    {\n      v84 = *((void **)Block[0] - 1);\n      if ( (unsigned __int64)((char *)Block[0] - (char *)v84 - 8) > 0x1F )\n        invalid_parameter_noinfo_noreturn();\n    }\n    j_j_free(v84);\n  }\n  v94 = 0;\n  v95 = 15;\n  LOBYTE(Block[0]) = 0;\n  if ( v92 > 0xF )\n  {\n    v85 = Buf[0];\n    if ( v92 + 1 >= 0x1000 )\n    {\n      v85 = *((void **)Buf[0] - 1);\n      if ( (unsigned __int64)((char *)Buf[0] - (char *)v85 - 8) > 0x1F )\n        invalid_parameter_noinfo_noreturn();\n    }\n    j_j_free(v85);\n  }\n  return v83;\n}", "assembly": "; \n; cocos2d::extension::WebSocket::init from 0x180019a70 to 0x18001a343 (2259 bytes)\n; \n; 2 xrefs:\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x18004ac80\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-8+arg_8], rbx                                             ; +0x0, 0x180019a70\npush    rbp                                                            ; +0x5, 0x180019a75\npush    rsi                                                            ; +0x6, 0x180019a76\npush    rdi                                                            ; +0x7, 0x180019a77\npush    r12                                                            ; +0x8, 0x180019a78\npush    r13                                                            ; +0xa, 0x180019a7a\npush    r14                                                            ; +0xc, 0x180019a7c\npush    r15                                                            ; +0xe, 0x180019a7e\nlea     rbp, [rsp-27h]                                                 ; +0x10, 0x180019a80\nsub     rsp, 0C0h                                                      ; +0x15, 0x180019a85\nmov     rax, cs:__security_cookie                                      ; +0x1c, 0x180019a8c\nxor     rax, rsp                                                       ; +0x23, 0x180019a93\nmov     [rbp+57h+var_40], rax                                          ; +0x26, 0x180019a96\nmov     [rbp+57h+var_B8], r9                                           ; +0x2a, 0x180019a9a\nmov     rbx, rdx                                                       ; +0x2e, 0x180019a9e\nmov     rdi, rcx                                                       ; +0x31, 0x180019aa1\nmov     [rbp+57h+var_B0], rcx                                          ; +0x34, 0x180019aa4\nmov     [rbp+57h+var_C0], 0                                            ; +0x38, 0x180019aa8\nmov     rdx, r8                                                        ; +0x3c, 0x180019aac\nlea     rcx, [rbp+57h+Buf]                                             ; +0x3f, 0x180019aaf\ncall    sub_180003F50                                                  ; +0x43, 0x180019ab3\nnop                                                                    ; +0x48, 0x180019ab8\nmov     [rdi+70h], rbx                                                 ; +0x49, 0x180019ab9\nlea     rsi, [rbp+57h+Buf]                                             ; +0x4d, 0x180019abd\nmov     r15, [rbp+57h+var_88]                                          ; +0x51, 0x180019ac1\ncmp     r15, 0Fh                                                       ; +0x55, 0x180019ac5\nsetnbe  r13b                                                           ; +0x59, 0x180019ac9\nmov     r12, [rbp+57h+Buf]                                             ; +0x5d, 0x180019acd\ncmova   rsi, r12                                                       ; +0x61, 0x180019ad1\nmov     ebx, 5                                                         ; +0x65, 0x180019ad5\nlea     r14, [rbx-6]                                                   ; +0x6a, 0x180019ada\nmov     rdi, [rbp+57h+var_90]                                          ; +0x6e, 0x180019ade\ncmp     rdi, rbx                                                       ; +0x72, 0x180019ae2\njb      short loc_180019B63                                            ; +0x75, 0x180019ae5\nlea     r14, [rdi+rsi]                                                 ; +0x77, 0x180019ae7\nlea     r8, [r14-4]                                                    ; +0x7b, 0x180019aeb\nsub     r8, rsi; MaxCount                                              ; +0x7f, 0x180019aef\nlea     edx, [rbx+72h]; Val                                            ; +0x82, 0x180019af2\nmov     rcx, rsi; Buf                                                  ; +0x85, 0x180019af5\ncall    memchr                                                         ; +0x88, 0x180019af8\nmov     r9, rax                                                        ; +0x8d, 0x180019afd\ntest    rax, rax                                                       ; +0x90, 0x180019b00\njz      short loc_180019B5C                                            ; +0x93, 0x180019b03\nlea     rdx, aWs; \"ws://\"                                              ; +0x95, 0x180019b05\nnop     dword ptr [rax+00h]                                            ; +0x9c, 0x180019b0c\nxor     ecx, ecx                                                       ; +0xa0, 0x180019b10\nmovzx   eax, byte ptr [r9+rcx]                                         ; +0xa2, 0x180019b12\ninc     rcx                                                            ; +0xa7, 0x180019b17\ncmp     al, [rdx+rcx-1]                                                ; +0xaa, 0x180019b1a\njnz     short loc_180019B29                                            ; +0xae, 0x180019b1e\ncmp     rcx, rbx                                                       ; +0xb0, 0x180019b20\njnz     short loc_180019B12                                            ; +0xb3, 0x180019b23\nxor     eax, eax                                                       ; +0xb5, 0x180019b25\njmp     short loc_180019B2E                                            ; +0xb7, 0x180019b27\nsbb     eax, eax                                                       ; +0xb9, 0x180019b29\nor      eax, 1                                                         ; +0xbb, 0x180019b2b\ntest    eax, eax                                                       ; +0xbe, 0x180019b2e\njz      loc_180019BF9                                                  ; +0xc0, 0x180019b30\ninc     r9                                                             ; +0xc6, 0x180019b36\nlea     r8, [r14-4]                                                    ; +0xc9, 0x180019b39\nsub     r8, r9; MaxCount                                               ; +0xcd, 0x180019b3d\nmov     edx, 77h ; 'w'; Val                                            ; +0xd0, 0x180019b40\nmov     rcx, r9; Buf                                                   ; +0xd5, 0x180019b45\ncall    memchr                                                         ; +0xd8, 0x180019b48\nmov     r9, rax                                                        ; +0xdd, 0x180019b4d\ntest    rax, rax                                                       ; +0xe0, 0x180019b50\nlea     rdx, aWs; \"ws://\"                                              ; +0xe3, 0x180019b53\njnz     short loc_180019B10                                            ; +0xea, 0x180019b5a\nmov     r14, 0FFFFFFFFFFFFFFFFh                                        ; +0xec, 0x180019b5c\nmov     r9, r14                                                        ; +0xf3, 0x180019b63\ntest    r9d, r9d                                                       ; +0xf6, 0x180019b66\njnz     short loc_180019B99                                            ; +0xf9, 0x180019b69\ncmp     rdi, rbx                                                       ; +0xfb, 0x180019b6b\ncmovb   rbx, rdi                                                       ; +0xfe, 0x180019b6e\nlea     rcx, [rbp+57h+Buf]                                             ; +0x102, 0x180019b72\ntest    r13b, r13b                                                     ; +0x106, 0x180019b76\ncmovnz  rcx, r12; void *                                               ; +0x109, 0x180019b79\nsub     rdi, rbx                                                       ; +0x10d, 0x180019b7d\nlea     r8, [rdi+1]; Size                                              ; +0x110, 0x180019b80\nlea     rdx, [rcx+rbx]; Src                                            ; +0x114, 0x180019b84\ncall    memmove                                                        ; +0x118, 0x180019b88\nmov     [rbp+57h+var_90], rdi                                          ; +0x11d, 0x180019b8d\nmov     r15, [rbp+57h+var_88]                                          ; +0x121, 0x180019b91\nmov     r12, [rbp+57h+Buf]                                             ; +0x125, 0x180019b95\nlea     rsi, [rbp+57h+Buf]                                             ; +0x129, 0x180019b99\ncmp     r15, 0Fh                                                       ; +0x12d, 0x180019b9d\nsetnbe  r13b                                                           ; +0x131, 0x180019ba1\ncmova   rsi, r12                                                       ; +0x135, 0x180019ba5\nmov     ebx, 6                                                         ; +0x139, 0x180019ba9\ncmp     rdi, rbx                                                       ; +0x13e, 0x180019bae\njb      loc_180019C42                                                  ; +0x141, 0x180019bb1\nlea     r14, [rdi+rsi]                                                 ; +0x147, 0x180019bb7\nlea     r8, [r14-5]                                                    ; +0x14b, 0x180019bbb\nsub     r8, rsi; MaxCount                                              ; +0x14f, 0x180019bbf\nlea     edx, [rbx+71h]; Val                                            ; +0x152, 0x180019bc2\nmov     rcx, rsi; Buf                                                  ; +0x155, 0x180019bc5\ncall    memchr                                                         ; +0x158, 0x180019bc8\nmov     r9, rax                                                        ; +0x15d, 0x180019bcd\ntest    rax, rax                                                       ; +0x160, 0x180019bd0\njz      short loc_180019C3B                                            ; +0x163, 0x180019bd3\nlea     rdx, aWss; \"wss://\"                                            ; +0x165, 0x180019bd5\nnop     dword ptr [rax+00h]                                            ; +0x16c, 0x180019bdc\nxor     ecx, ecx                                                       ; +0x170, 0x180019be0\nmovzx   eax, byte ptr [r9+rcx]                                         ; +0x172, 0x180019be2\ninc     rcx                                                            ; +0x177, 0x180019be7\ncmp     al, [rdx+rcx-1]                                                ; +0x17a, 0x180019bea\njnz     short loc_180019C08                                            ; +0x17e, 0x180019bee\ncmp     rcx, rbx                                                       ; +0x180, 0x180019bf0\njnz     short loc_180019BE2                                            ; +0x183, 0x180019bf3\nxor     eax, eax                                                       ; +0x185, 0x180019bf5\njmp     short loc_180019C0D                                            ; +0x187, 0x180019bf7\nsub     r9, rsi                                                        ; +0x189, 0x180019bf9\nmov     r14, 0FFFFFFFFFFFFFFFFh                                        ; +0x18c, 0x180019bfc\njmp     loc_180019B66                                                  ; +0x193, 0x180019c03\nsbb     eax, eax                                                       ; +0x198, 0x180019c08\nor      eax, 1                                                         ; +0x19a, 0x180019c0a\ntest    eax, eax                                                       ; +0x19d, 0x180019c0d\njz      loc_180019CBA                                                  ; +0x19f, 0x180019c0f\ninc     r9                                                             ; +0x1a5, 0x180019c15\nlea     r8, [r14-5]                                                    ; +0x1a8, 0x180019c18\nsub     r8, r9; MaxCount                                               ; +0x1ac, 0x180019c1c\nmov     edx, 77h ; 'w'; Val                                            ; +0x1af, 0x180019c1f\nmov     rcx, r9; Buf                                                   ; +0x1b4, 0x180019c24\ncall    memchr                                                         ; +0x1b7, 0x180019c27\nmov     r9, rax                                                        ; +0x1bc, 0x180019c2c\ntest    rax, rax                                                       ; +0x1bf, 0x180019c2f\nlea     rdx, aWss; \"wss://\"                                            ; +0x1c2, 0x180019c32\njnz     short loc_180019BE0                                            ; +0x1c9, 0x180019c39\nmov     r14, 0FFFFFFFFFFFFFFFFh                                        ; +0x1cb, 0x180019c3b\nmov     r9, r14                                                        ; +0x1d2, 0x180019c42\ntest    r9d, r9d                                                       ; +0x1d5, 0x180019c45\njnz     short loc_180019C7C                                            ; +0x1d8, 0x180019c48\ncmp     rdi, rbx                                                       ; +0x1da, 0x180019c4a\ncmovb   rbx, rdi                                                       ; +0x1dd, 0x180019c4d\nlea     rcx, [rbp+57h+Buf]                                             ; +0x1e1, 0x180019c51\ntest    r13b, r13b                                                     ; +0x1e5, 0x180019c55\ncmovnz  rcx, r12; void *                                               ; +0x1e8, 0x180019c58\nsub     rdi, rbx                                                       ; +0x1ec, 0x180019c5c\nlea     r8, [rdi+1]; Size                                              ; +0x1ef, 0x180019c5f\nlea     rdx, [rcx+rbx]; Src                                            ; +0x1f3, 0x180019c63\ncall    memmove                                                        ; +0x1f7, 0x180019c67\nmov     [rbp+57h+var_90], rdi                                          ; +0x1fc, 0x180019c6c\nmov     [rbp+57h+var_C0], 1                                            ; +0x200, 0x180019c70\nmov     r15, [rbp+57h+var_88]                                          ; +0x204, 0x180019c74\nmov     r12, [rbp+57h+Buf]                                             ; +0x208, 0x180019c78\nlea     rsi, [rbp+57h+Buf]                                             ; +0x20c, 0x180019c7c\ncmp     r15, 0Fh                                                       ; +0x210, 0x180019c80\nsetnbe  r13b                                                           ; +0x214, 0x180019c84\ncmova   rsi, r12                                                       ; +0x218, 0x180019c88\ncmp     rdi, 1                                                         ; +0x21c, 0x180019c8c\njb      short loc_180019CFE                                            ; +0x220, 0x180019c90\nlea     r14, [rdi+rsi]                                                 ; +0x222, 0x180019c92\nmov     r8, r14                                                        ; +0x226, 0x180019c96\nsub     r8, rsi; MaxCount                                              ; +0x229, 0x180019c99\nmov     edx, 3Ah ; ':'; Val                                            ; +0x22c, 0x180019c9c\nmov     rcx, rsi; Buf                                                  ; +0x231, 0x180019ca1\ncall    memchr                                                         ; +0x234, 0x180019ca4\nmov     rbx, rax                                                       ; +0x239, 0x180019ca9\ntest    rax, rax                                                       ; +0x23c, 0x180019cac\njz      short loc_180019CF0                                            ; +0x23f, 0x180019caf\ncmp     byte ptr [rbx], 3Ah ; ':'                                      ; +0x241, 0x180019cb1\njnz     short loc_180019CC9                                            ; +0x244, 0x180019cb4\nxor     eax, eax                                                       ; +0x246, 0x180019cb6\njmp     short loc_180019CCE                                            ; +0x248, 0x180019cb8\nsub     r9, rsi                                                        ; +0x24a, 0x180019cba\nmov     r14, 0FFFFFFFFFFFFFFFFh                                        ; +0x24d, 0x180019cbd\njmp     loc_180019C45                                                  ; +0x254, 0x180019cc4\nsbb     eax, eax                                                       ; +0x259, 0x180019cc9\nor      eax, 1                                                         ; +0x25b, 0x180019ccb\ntest    eax, eax                                                       ; +0x25e, 0x180019cce\njz      short loc_180019CF9                                            ; +0x260, 0x180019cd0\ninc     rbx                                                            ; +0x262, 0x180019cd2\nmov     r8, r14                                                        ; +0x265, 0x180019cd5\nsub     r8, rbx; MaxCount                                              ; +0x268, 0x180019cd8\nmov     edx, 3Ah ; ':'; Val                                            ; +0x26b, 0x180019cdb\nmov     rcx, rbx; Buf                                                  ; +0x270, 0x180019ce0\ncall    memchr                                                         ; +0x273, 0x180019ce3\nmov     rbx, rax                                                       ; +0x278, 0x180019ce8\ntest    rax, rax                                                       ; +0x27b, 0x180019ceb\njnz     short loc_180019CB1                                            ; +0x27e, 0x180019cee\nmov     rbx, 0FFFFFFFFFFFFFFFFh                                        ; +0x280, 0x180019cf0\njmp     short loc_180019D01                                            ; +0x287, 0x180019cf7\nsub     rbx, rsi                                                       ; +0x289, 0x180019cf9\njmp     short loc_180019D01                                            ; +0x28c, 0x180019cfc\nmov     rbx, r14                                                       ; +0x28e, 0x180019cfe\ntest    ebx, ebx                                                       ; +0x291, 0x180019d01\njs      loc_180019DB3                                                  ; +0x293, 0x180019d03\nlea     eax, [rbx+1]                                                   ; +0x299, 0x180019d09\nmovsxd  rcx, eax                                                       ; +0x29c, 0x180019d0c\nxorps   xmm0, xmm0                                                     ; +0x29f, 0x180019d0f\nmovups  xmmword ptr [rbp+57h+String], xmm0                             ; +0x2a2, 0x180019d12\nxor     eax, eax                                                       ; +0x2a6, 0x180019d16\nmov     [rbp+57h+Size], rax                                            ; +0x2a8, 0x180019d18\nmov     [rbp+57h+var_48], rax                                          ; +0x2ac, 0x180019d1c\ncmp     rdi, rcx                                                       ; +0x2b0, 0x180019d20\njb      loc_18001A33D                                                  ; +0x2b3, 0x180019d23\nmov     rax, rdi                                                       ; +0x2b9, 0x180019d29\nsub     rax, rcx                                                       ; +0x2bc, 0x180019d2c\ncmp     rax, rdi                                                       ; +0x2bf, 0x180019d2f\ncmovb   rdi, rax                                                       ; +0x2c2, 0x180019d32\nlea     rdx, [rbp+57h+Buf]                                             ; +0x2c6, 0x180019d36\ntest    r13b, r13b                                                     ; +0x2ca, 0x180019d3a\ncmovnz  rdx, r12                                                       ; +0x2cd, 0x180019d3d\nadd     rdx, rcx                                                       ; +0x2d1, 0x180019d41\nmov     r8, rdi                                                        ; +0x2d4, 0x180019d44\nlea     rcx, [rbp+57h+String]                                          ; +0x2d7, 0x180019d47\ncall    sub_180003AB0                                                  ; +0x2db, 0x180019d4b\nlea     rcx, [rbp+57h+String]                                          ; +0x2e0, 0x180019d50\ncmp     [rbp+57h+var_48], 0Fh                                          ; +0x2e4, 0x180019d54\ncmova   rcx, [rbp+57h+String]; String                                  ; +0x2e9, 0x180019d59\ncall    cs:atoi                                                        ; +0x2ee, 0x180019d5e\nmov     r13d, eax                                                      ; +0x2f4, 0x180019d64\nmov     rdx, [rbp+57h+var_48]                                          ; +0x2f7, 0x180019d67\ncmp     rdx, 0Fh                                                       ; +0x2fb, 0x180019d6b\njbe     short loc_180019DA5                                            ; +0x2ff, 0x180019d6f\ninc     rdx                                                            ; +0x301, 0x180019d71\nmov     rcx, [rbp+57h+String]; Block                                   ; +0x304, 0x180019d74\nmov     rax, rcx                                                       ; +0x308, 0x180019d78\ncmp     rdx, 1000h                                                     ; +0x30b, 0x180019d7b\njb      short loc_180019DA0                                            ; +0x312, 0x180019d82\nadd     rdx, 27h ; '''                                                 ; +0x314, 0x180019d84\nmov     rcx, [rcx-8]                                                   ; +0x318, 0x180019d88\nsub     rax, rcx                                                       ; +0x31c, 0x180019d8c\nadd     rax, 0FFFFFFFFFFFFFFF8h                                        ; +0x31f, 0x180019d8f\ncmp     rax, 1Fh                                                       ; +0x323, 0x180019d93\njbe     short loc_180019DA0                                            ; +0x327, 0x180019d97\ncall    cs:_invalid_parameter_noinfo_noreturn                          ; +0x329, 0x180019d99\nalign 20h                                                              ; +0x32f, 0x180019d9f\ncall    j_j_free                                                       ; +0x330, 0x180019da0\nmov     r15, [rbp+57h+var_88]                                          ; +0x335, 0x180019da5\nmov     rdi, [rbp+57h+var_90]                                          ; +0x339, 0x180019da9\nmov     r12, [rbp+57h+Buf]                                             ; +0x33d, 0x180019dad\njmp     short loc_180019DB9                                            ; +0x341, 0x180019db1\nmov     r13d, 50h ; 'P'                                                ; +0x343, 0x180019db3\nmovsxd  rcx, ebx                                                       ; +0x349, 0x180019db9\nlea     rbx, [rbp+57h+Buf]                                             ; +0x34c, 0x180019dbc\ncmp     r15, 0Fh                                                       ; +0x350, 0x180019dc0\nsetnbe  r14b                                                           ; +0x354, 0x180019dc4\ncmova   rbx, r12                                                       ; +0x358, 0x180019dc8\ncmp     rdi, 1                                                         ; +0x35c, 0x180019dcc\njb      short loc_180019E31                                            ; +0x360, 0x180019dd0\nlea     rax, [rdi-1]                                                   ; +0x362, 0x180019dd2\ncmp     rcx, rax                                                       ; +0x366, 0x180019dd6\nja      short loc_180019E31                                            ; +0x369, 0x180019dd9\nlea     rsi, [rdi+rbx]                                                 ; +0x36b, 0x180019ddb\nadd     rcx, rbx; Buf                                                  ; +0x36f, 0x180019ddf\nmov     r8, rsi                                                        ; +0x372, 0x180019de2\nsub     r8, rcx; MaxCount                                              ; +0x375, 0x180019de5\nmov     edx, 2Fh ; '/'; Val                                            ; +0x378, 0x180019de8\ncall    memchr                                                         ; +0x37d, 0x180019ded\nmov     rcx, rax                                                       ; +0x382, 0x180019df2\ntest    rax, rax                                                       ; +0x385, 0x180019df5\njz      short loc_180019E31                                            ; +0x388, 0x180019df8\nnop     word ptr [rax+rax+00h]                                         ; +0x38a, 0x180019dfa\ncmp     byte ptr [rcx], 2Fh ; '/'                                      ; +0x390, 0x180019e00\njnz     short loc_180019E09                                            ; +0x393, 0x180019e03\nxor     eax, eax                                                       ; +0x395, 0x180019e05\njmp     short loc_180019E0E                                            ; +0x397, 0x180019e07\nsbb     eax, eax                                                       ; +0x399, 0x180019e09\nor      eax, 1                                                         ; +0x39b, 0x180019e0b\ntest    eax, eax                                                       ; +0x39e, 0x180019e0e\njz      loc_180019F01                                                  ; +0x3a0, 0x180019e10\ninc     rcx; Buf                                                       ; +0x3a6, 0x180019e16\nmov     r8, rsi                                                        ; +0x3a9, 0x180019e19\nsub     r8, rcx; MaxCount                                              ; +0x3ac, 0x180019e1c\nmov     edx, 2Fh ; '/'; Val                                            ; +0x3af, 0x180019e1f\ncall    memchr                                                         ; +0x3b4, 0x180019e24\nmov     rcx, rax                                                       ; +0x3b9, 0x180019e29\ntest    rax, rax                                                       ; +0x3bc, 0x180019e2c\njnz     short loc_180019E00                                            ; +0x3bf, 0x180019e2f\nmov     rcx, 0FFFFFFFFFFFFFFFFh                                        ; +0x3c1, 0x180019e31\nxorps   xmm0, xmm0                                                     ; +0x3c8, 0x180019e38\nmovups  xmmword ptr [rbp+57h+Block], xmm0                              ; +0x3cb, 0x180019e3b\nmov     [rbp+57h+var_70], 1                                            ; +0x3cf, 0x180019e3f\nmov     [rbp+57h+var_68], 0Fh                                          ; +0x3d7, 0x180019e47\nmovzx   eax, cs:word_180023388                                         ; +0x3df, 0x180019e4f\nmov     byte ptr [rbp+57h+Block], al                                   ; +0x3e6, 0x180019e56\nmov     byte ptr [rbp+57h+Block+1], 0                                  ; +0x3e9, 0x180019e59\ntest    ecx, ecx                                                       ; +0x3ed, 0x180019e5d\njs      loc_180019F68                                                  ; +0x3ef, 0x180019e5f\nlea     eax, [rcx+1]                                                   ; +0x3f5, 0x180019e65\nmovsxd  rcx, eax                                                       ; +0x3f8, 0x180019e68\nmovups  xmmword ptr [rbp+57h+String], xmm0                             ; +0x3fb, 0x180019e6b\nxor     eax, eax                                                       ; +0x3ff, 0x180019e6f\nmov     [rbp+57h+Size], rax                                            ; +0x401, 0x180019e71\nmov     [rbp+57h+var_48], rax                                          ; +0x405, 0x180019e75\ncmp     rdi, rcx                                                       ; +0x409, 0x180019e79\njb      loc_18001A337                                                  ; +0x40c, 0x180019e7c\nmov     rax, rdi                                                       ; +0x412, 0x180019e82\nsub     rax, rcx                                                       ; +0x415, 0x180019e85\ncmp     rax, rdi                                                       ; +0x418, 0x180019e88\ncmovb   rdi, rax                                                       ; +0x41b, 0x180019e8b\nlea     rdx, [rbp+57h+Buf]                                             ; +0x41f, 0x180019e8f\ntest    r14b, r14b                                                     ; +0x423, 0x180019e93\ncmovnz  rdx, r12                                                       ; +0x426, 0x180019e96\nadd     rdx, rcx                                                       ; +0x42a, 0x180019e9a\nmov     r8, rdi                                                        ; +0x42d, 0x180019e9d\nlea     rcx, [rbp+57h+String]                                          ; +0x430, 0x180019ea0\ncall    sub_180003AB0                                                  ; +0x434, 0x180019ea4\nnop                                                                    ; +0x439, 0x180019ea9\nlea     r9, [rbp+57h+String]                                           ; +0x43a, 0x180019eaa\nmov     rdi, [rbp+57h+String]                                          ; +0x43e, 0x180019eae\nmov     r14, [rbp+57h+var_48]                                          ; +0x442, 0x180019eb2\ncmp     r14, 0Fh                                                       ; +0x446, 0x180019eb6\ncmova   r9, rdi                                                        ; +0x44a, 0x180019eba\nmov     rcx, [rbp+57h+var_70]                                          ; +0x44e, 0x180019ebe\nmov     rdx, [rbp+57h+var_68]                                          ; +0x452, 0x180019ec2\nmov     rax, rdx                                                       ; +0x456, 0x180019ec6\nsub     rax, rcx                                                       ; +0x459, 0x180019ec9\nmov     rsi, [rbp+57h+Size]                                            ; +0x45c, 0x180019ecc\ncmp     rsi, rax                                                       ; +0x460, 0x180019ed0\nja      short loc_180019F09                                            ; +0x463, 0x180019ed3\nlea     rax, [rsi+rcx]                                                 ; +0x465, 0x180019ed5\nmov     [rbp+57h+var_70], rax                                          ; +0x469, 0x180019ed9\nlea     rbx, [rbp+57h+Block]                                           ; +0x46d, 0x180019edd\ncmp     rdx, 0Fh                                                       ; +0x471, 0x180019ee1\ncmova   rbx, [rbp+57h+Block]                                           ; +0x475, 0x180019ee5\nadd     rbx, rcx                                                       ; +0x47a, 0x180019eea\nmov     r8, rsi; Size                                                  ; +0x47d, 0x180019eed\nmov     rdx, r9; Src                                                   ; +0x480, 0x180019ef0\nmov     rcx, rbx; void *                                               ; +0x483, 0x180019ef3\ncall    memmove                                                        ; +0x486, 0x180019ef6\nmov     byte ptr [rsi+rbx], 0                                          ; +0x48b, 0x180019efb\njmp     short loc_180019F22                                            ; +0x48f, 0x180019eff\nsub     rcx, rbx                                                       ; +0x491, 0x180019f01\njmp     loc_180019E38                                                  ; +0x494, 0x180019f04\nmov     [rsp+0F0h+var_D0], rsi; Size                                   ; +0x499, 0x180019f09\nmov     rdx, rsi                                                       ; +0x49e, 0x180019f0e\nlea     rcx, [rbp+57h+Block]; Src                                      ; +0x4a1, 0x180019f11\ncall    sub_180003810                                                  ; +0x4a5, 0x180019f15\nmov     r14, [rbp+57h+var_48]                                          ; +0x4aa, 0x180019f1a\nmov     rdi, [rbp+57h+String]                                          ; +0x4ae, 0x180019f1e\ncmp     r14, 0Fh                                                       ; +0x4b2, 0x180019f22\njbe     short loc_180019F5C                                            ; +0x4b6, 0x180019f26\nlea     rdx, [r14+1]                                                   ; +0x4b8, 0x180019f28\nmov     rax, rdi                                                       ; +0x4bc, 0x180019f2c\ncmp     rdx, 1000h                                                     ; +0x4bf, 0x180019f2f\njb      short loc_180019F54                                            ; +0x4c6, 0x180019f36\nadd     rdx, 27h ; '''                                                 ; +0x4c8, 0x180019f38\nmov     rdi, [rdi-8]                                                   ; +0x4cc, 0x180019f3c\nsub     rax, rdi                                                       ; +0x4d0, 0x180019f40\nadd     rax, 0FFFFFFFFFFFFFFF8h                                        ; +0x4d3, 0x180019f43\ncmp     rax, 1Fh                                                       ; +0x4d7, 0x180019f47\njbe     short loc_180019F54                                            ; +0x4db, 0x180019f4b\ncall    cs:_invalid_parameter_noinfo_noreturn                          ; +0x4dd, 0x180019f4d\nalign 4                                                                ; +0x4e3, 0x180019f53\nmov     rcx, rdi; Block                                                ; +0x4e4, 0x180019f54\ncall    j_j_free                                                       ; +0x4e7, 0x180019f57\nmov     r12, [rbp+57h+Buf]                                             ; +0x4ec, 0x180019f5c\nmov     rdi, [rbp+57h+var_90]                                          ; +0x4f0, 0x180019f60\nmov     r15, [rbp+57h+var_88]                                          ; +0x4f4, 0x180019f64\nlea     rbx, [rbp+57h+Buf]                                             ; +0x4f8, 0x180019f68\ncmp     r15, 0Fh                                                       ; +0x4fc, 0x180019f6c\nsetnbe  r14b                                                           ; +0x500, 0x180019f70\ncmova   rbx, r12                                                       ; +0x504, 0x180019f74\ncmp     rdi, 1                                                         ; +0x508, 0x180019f78\njb      short loc_180019FD1                                            ; +0x50c, 0x180019f7c\nlea     rsi, [rdi+rbx]                                                 ; +0x50e, 0x180019f7e\nmov     r8, rsi                                                        ; +0x512, 0x180019f82\nsub     r8, rbx; MaxCount                                              ; +0x515, 0x180019f85\nmov     edx, 3Ah ; ':'; Val                                            ; +0x518, 0x180019f88\nmov     rcx, rbx; Buf                                                  ; +0x51d, 0x180019f8d\ncall    memchr                                                         ; +0x520, 0x180019f90\ntest    rax, rax                                                       ; +0x525, 0x180019f95\njz      short loc_180019FD1                                            ; +0x528, 0x180019f98\nnop     word ptr [rax+rax+00h]                                         ; +0x52a, 0x180019f9a\ncmp     byte ptr [rax], 3Ah ; ':'                                      ; +0x530, 0x180019fa0\njnz     short loc_180019FA9                                            ; +0x533, 0x180019fa3\nxor     ecx, ecx                                                       ; +0x535, 0x180019fa5\njmp     short loc_180019FAE                                            ; +0x537, 0x180019fa7\nsbb     ecx, ecx                                                       ; +0x539, 0x180019fa9\nor      ecx, 1                                                         ; +0x53b, 0x180019fab\ntest    ecx, ecx                                                       ; +0x53e, 0x180019fae\njz      loc_18001A147                                                  ; +0x540, 0x180019fb0\ninc     rax                                                            ; +0x546, 0x180019fb6\nmov     r8, rsi                                                        ; +0x549, 0x180019fb9\nsub     r8, rax; MaxCount                                              ; +0x54c, 0x180019fbc\nmov     edx, 3Ah ; ':'; Val                                            ; +0x54f, 0x180019fbf\nmov     rcx, rax; Buf                                                  ; +0x554, 0x180019fc4\ncall    memchr                                                         ; +0x557, 0x180019fc7\ntest    rax, rax                                                       ; +0x55c, 0x180019fcc\njnz     short loc_180019FA0                                            ; +0x55f, 0x180019fcf\nmov     rsi, 0FFFFFFFFFFFFFFFFh                                        ; +0x561, 0x180019fd1\nmov     rax, rsi                                                       ; +0x568, 0x180019fd8\ntest    eax, eax                                                       ; +0x56b, 0x180019fdb\njs      short loc_18001A029                                            ; +0x56d, 0x180019fdd\nmovsxd  r9, eax                                                        ; +0x56f, 0x180019fdf\ncmp     rdi, r9                                                        ; +0x572, 0x180019fe2\njb      loc_18001A337                                                  ; +0x575, 0x180019fe5\nmov     rax, rdi                                                       ; +0x57b, 0x180019feb\nsub     rax, r9                                                        ; +0x57e, 0x180019fee\nmov     rdx, rdi                                                       ; +0x581, 0x180019ff1\ncmp     rax, rdi                                                       ; +0x584, 0x180019ff4\ncmovb   rdx, rax                                                       ; +0x587, 0x180019ff7\nlea     rcx, [rbp+57h+Buf]                                             ; +0x58b, 0x180019ffb\ntest    r14b, r14b                                                     ; +0x58f, 0x180019fff\ncmovnz  rcx, r12                                                       ; +0x592, 0x18001a002\nadd     rcx, r9; void *                                                ; +0x596, 0x18001a006\nsub     rdi, rdx                                                       ; +0x599, 0x18001a009\nmov     r8, rdi                                                        ; +0x59c, 0x18001a00c\nsub     r8, r9                                                         ; +0x59f, 0x18001a00f\ninc     r8; Size                                                       ; +0x5a2, 0x18001a012\nadd     rdx, rcx; Src                                                  ; +0x5a5, 0x18001a015\ncall    memmove                                                        ; +0x5a8, 0x18001a018\nmov     [rbp+57h+var_90], rdi                                          ; +0x5ad, 0x18001a01d\nmov     r15, [rbp+57h+var_88]                                          ; +0x5b1, 0x18001a021\nmov     r12, [rbp+57h+Buf]                                             ; +0x5b5, 0x18001a025\nmov     r14, [rbp+57h+var_B0]                                          ; +0x5b9, 0x18001a029\nlea     rcx, [r14+10h]; void *                                         ; +0x5bd, 0x18001a02d\nlea     rax, [rbp+57h+Buf]                                             ; +0x5c1, 0x18001a031\ncmp     rcx, rax                                                       ; +0x5c5, 0x18001a035\njz      short loc_18001A04E                                            ; +0x5c8, 0x18001a038\nlea     rdx, [rbp+57h+Buf]                                             ; +0x5ca, 0x18001a03a\ncmp     r15, 0Fh                                                       ; +0x5ce, 0x18001a03e\ncmova   rdx, r12; Src                                                  ; +0x5d2, 0x18001a042\nmov     r8, rdi; Size                                                  ; +0x5d6, 0x18001a046\ncall    sub_180003BC0                                                  ; +0x5d9, 0x18001a049\nmov     [r14+30h], r13d                                                ; +0x5de, 0x18001a04e\nlea     rcx, [r14+38h]; void *                                         ; +0x5e2, 0x18001a052\nlea     rax, [rbp+57h+Block]                                           ; +0x5e6, 0x18001a056\ncmp     rcx, rax                                                       ; +0x5ea, 0x18001a05a\njz      short loc_18001A076                                            ; +0x5ed, 0x18001a05d\nlea     rdx, [rbp+57h+Block]                                           ; +0x5ef, 0x18001a05f\ncmp     [rbp+57h+var_68], 0Fh                                          ; +0x5f3, 0x18001a063\ncmova   rdx, [rbp+57h+Block]; Src                                      ; +0x5f8, 0x18001a068\nmov     r8, [rbp+57h+var_70]; Size                                     ; +0x5fd, 0x18001a06d\ncall    sub_180003BC0                                                  ; +0x601, 0x18001a071\nmovzx   eax, [rbp+57h+var_C0]                                          ; +0x606, 0x18001a076\nmov     [r14+78h], eax                                                 ; +0x60a, 0x18001a07a\nmov     r15, [rbp+57h+var_B8]                                          ; +0x60e, 0x18001a07e\ntest    r15, r15                                                       ; +0x612, 0x18001a082\njz      short loc_18001A097                                            ; +0x615, 0x18001a085\nmov     rax, [r15+8]                                                   ; +0x617, 0x18001a087\nsub     rax, [r15]                                                     ; +0x61b, 0x18001a08b\nsar     rax, 5                                                         ; +0x61e, 0x18001a08e\ntest    rax, rax                                                       ; +0x622, 0x18001a092\njnz     short loc_18001A09C                                            ; +0x625, 0x18001a095\nmov     eax, 1                                                         ; +0x627, 0x18001a097\ninc     eax                                                            ; +0x62c, 0x18001a09c\nmovsxd  rbx, eax                                                       ; +0x62e, 0x18001a09e\nmov     eax, 38h ; '8'                                                 ; +0x631, 0x18001a0a1\nmul     rbx                                                            ; +0x636, 0x18001a0a6\ncmovo   rax, rsi                                                       ; +0x639, 0x18001a0a9\nmov     rcx, rax; Size                                                 ; +0x63d, 0x18001a0ad\ncall    j_??2@YAPEAX_K@Z; operator new(unsigned __int64)               ; +0x640, 0x18001a0b0\nmov     [r14+80h], rax                                                 ; +0x645, 0x18001a0b5\nimul    r8, rbx, 38h ; '8'; Size                                       ; +0x64c, 0x18001a0bc\nxor     edx, edx; Val                                                  ; +0x650, 0x18001a0c0\nmov     rcx, rax; void *                                               ; +0x652, 0x18001a0c2\ncall    memset                                                         ; +0x655, 0x18001a0c5\ntest    r15, r15                                                       ; +0x65a, 0x18001a0ca\njz      loc_18001A156                                                  ; +0x65d, 0x18001a0cd\nmov     rbx, [r15]                                                     ; +0x663, 0x18001a0d3\ncmp     rbx, [r15+8]                                                   ; +0x666, 0x18001a0d6\njz      loc_18001A190                                                  ; +0x66a, 0x18001a0da\nxor     edi, edi                                                       ; +0x670, 0x18001a0e0\nlea     rsi, sub_180019520                                             ; +0x672, 0x18001a0e2\nnop     dword ptr [rax+00000000h]                                      ; +0x679, 0x18001a0e9\nmov     rcx, [rbx+10h]                                                 ; +0x680, 0x18001a0f0\ninc     rcx; Size                                                      ; +0x684, 0x18001a0f4\ncall    j_??2@YAPEAX_K@Z; operator new(unsigned __int64)               ; +0x687, 0x18001a0f7\nmov     r8, rax                                                        ; +0x68c, 0x18001a0fc\nmov     rcx, rbx                                                       ; +0x68f, 0x18001a0ff\ncmp     qword ptr [rbx+18h], 0Fh                                       ; +0x692, 0x18001a102\njbe     short loc_18001A10C                                            ; +0x697, 0x18001a107\nmov     rcx, [rbx]                                                     ; +0x699, 0x18001a109\nmov     rdx, r8                                                        ; +0x69c, 0x18001a10c\nsub     rdx, rcx                                                       ; +0x69f, 0x18001a10f\nmovzx   eax, byte ptr [rcx]                                            ; +0x6a2, 0x18001a112\nmov     [rdx+rcx], al                                                  ; +0x6a5, 0x18001a115\nlea     rcx, [rcx+1]                                                   ; +0x6a8, 0x18001a118\ntest    al, al                                                         ; +0x6ac, 0x18001a11c\njnz     short loc_18001A112                                            ; +0x6ae, 0x18001a11e\nmov     rax, [r14+80h]                                                 ; +0x6b0, 0x18001a120\nmov     [rdi+rax], r8                                                  ; +0x6b7, 0x18001a127\nmov     rax, [r14+80h]                                                 ; +0x6bb, 0x18001a12b\nmov     [rdi+rax+8], rsi                                               ; +0x6c2, 0x18001a132\nadd     rbx, 20h ; ' '                                                 ; +0x6c7, 0x18001a137\nadd     rdi, 38h ; '8'                                                 ; +0x6cb, 0x18001a13b\ncmp     rbx, [r15+8]                                                   ; +0x6cf, 0x18001a13f\njnz     short loc_18001A0F0                                            ; +0x6d3, 0x18001a143\njmp     short loc_18001A190                                            ; +0x6d5, 0x18001a145\nsub     rax, rbx                                                       ; +0x6d7, 0x18001a147\nmov     rsi, 0FFFFFFFFFFFFFFFFh                                        ; +0x6da, 0x18001a14a\njmp     loc_180019FDB                                                  ; +0x6e1, 0x18001a151\nmov     ecx, 14h; Size                                                 ; +0x6e6, 0x18001a156\ncall    j_??2@YAPEAX_K@Z; operator new(unsigned __int64)               ; +0x6eb, 0x18001a15b\nmovups  xmm0, cs:xmmword_180028FA0                                     ; +0x6f0, 0x18001a160\nmovups  xmmword ptr [rax], xmm0                                        ; +0x6f7, 0x18001a167\nmovzx   ecx, cs:byte_180028FB0                                         ; +0x6fa, 0x18001a16a\nmov     [rax+10h], cl                                                  ; +0x701, 0x18001a171\nmov     rcx, [r14+80h]                                                 ; +0x704, 0x18001a174\nmov     [rcx], rax                                                     ; +0x70b, 0x18001a17b\nmov     rax, [r14+80h]                                                 ; +0x70e, 0x18001a17e\nlea     rsi, sub_180019520                                             ; +0x715, 0x18001a185\nmov     [rax+8], rsi                                                   ; +0x71c, 0x18001a18c\nmov     ecx, 78h ; 'x'; Size                                           ; +0x720, 0x18001a190\ncall    ??2@YAPEAX_K@Z; operator new(unsigned __int64)                 ; +0x725, 0x18001a195\nmov     rdi, rax                                                       ; +0x72a, 0x18001a19a\nmov     [rbp+57h+var_B8], rax                                          ; +0x72d, 0x18001a19d\nmov     rcx, rax                                                       ; +0x731, 0x18001a1a1\ncall    cs:??0CCObject@cocos2d@@QEAA@XZ; cocos2d::CCObject::CCObject(void) ; +0x734, 0x18001a1a4\nnop                                                                    ; +0x73a, 0x18001a1aa\nlea     rax, ??_7WsThreadHelper@extension@cocos2d@@6B@; const cocos2d::extension::WsThreadHelper::`vftable' ; +0x73b, 0x18001a1ab\nmov     [rdi], rax                                                     ; +0x742, 0x18001a1b2\nxor     esi, esi                                                       ; +0x745, 0x18001a1b5\nmov     [rdi+68h], rsi                                                 ; +0x747, 0x18001a1b7\nmov     [rdi+70h], sil                                                 ; +0x74b, 0x18001a1bb\nlea     ecx, [rsi+10h]; Size                                           ; +0x74f, 0x18001a1bf\ncall    ??2@YAPEAX_K@Z; operator new(unsigned __int64)                 ; +0x752, 0x18001a1c2\nmov     rbx, rax                                                       ; +0x757, 0x18001a1c7\nmov     [rbp+57h+var_B0], rax                                          ; +0x75a, 0x18001a1ca\nmov     [rax], rsi                                                     ; +0x75e, 0x18001a1ce\nmov     [rax+8], rsi                                                   ; +0x761, 0x18001a1d1\nlea     ecx, [rsi+18h]; Size                                           ; +0x765, 0x18001a1d5\ncall    ??2@YAPEAX_K@Z; operator new(unsigned __int64)                 ; +0x768, 0x18001a1d8\nmov     [rax], rax                                                     ; +0x76d, 0x18001a1dd\nmov     [rax+8], rax                                                   ; +0x770, 0x18001a1e0\nmov     [rbx], rax                                                     ; +0x774, 0x18001a1e4\nmov     [rdi+38h], rbx                                                 ; +0x777, 0x18001a1e7\nlea     rcx, [rdi+48h]                                                 ; +0x77b, 0x18001a1eb\nxor     edx, edx                                                       ; +0x77f, 0x18001a1ef\ncall    cs:pthread_mutex_init                                          ; +0x781, 0x18001a1f1\nlea     ecx, [rsi+10h]; Size                                           ; +0x787, 0x18001a1f7\ncall    ??2@YAPEAX_K@Z; operator new(unsigned __int64)                 ; +0x78a, 0x18001a1fa\nmov     rbx, rax                                                       ; +0x78f, 0x18001a1ff\nmov     [rbp+57h+var_B0], rax                                          ; +0x792, 0x18001a202\nmov     [rax], rsi                                                     ; +0x796, 0x18001a206\nmov     [rax+8], rsi                                                   ; +0x799, 0x18001a209\nlea     ecx, [rsi+18h]; Size                                           ; +0x79d, 0x18001a20d\ncall    ??2@YAPEAX_K@Z; operator new(unsigned __int64)                 ; +0x7a0, 0x18001a210\nmov     [rax], rax                                                     ; +0x7a5, 0x18001a215\nmov     [rax+8], rax                                                   ; +0x7a8, 0x18001a218\nmov     [rbx], rax                                                     ; +0x7ac, 0x18001a21c\nmov     [rdi+40h], rbx                                                 ; +0x7af, 0x18001a21f\nlea     rcx, [rdi+50h]                                                 ; +0x7b3, 0x18001a223\nxor     edx, edx                                                       ; +0x7b7, 0x18001a227\ncall    cs:pthread_mutex_init                                          ; +0x7b9, 0x18001a229\ncall    cs:?sharedDirector@CCDirector@cocos2d@@SAPEAV12@XZ; cocos2d::CCDirector::sharedDirector(void) ; +0x7bf, 0x18001a22f\nmov     rdx, [rax]                                                     ; +0x7c5, 0x18001a235\nmov     rcx, rax                                                       ; +0x7c8, 0x18001a238\ncall    qword ptr [rdx+70h]                                            ; +0x7cb, 0x18001a23b\nmov     rcx, rax                                                       ; +0x7ce, 0x18001a23e\nxor     r9d, r9d                                                       ; +0x7d1, 0x18001a241\nxor     r8d, r8d                                                       ; +0x7d4, 0x18001a244\nmov     rdx, rdi                                                       ; +0x7d7, 0x18001a247\ncall    cs:?scheduleUpdateForTarget@CCScheduler@cocos2d@@QEAAXPEAVCCObject@2@H_N@Z; cocos2d::CCScheduler::scheduleUpdateForTarget(cocos2d::CCObject *,int,bool) ; +0x7da, 0x18001a24a\nnop                                                                    ; +0x7e0, 0x18001a250\nmov     [r14+58h], rdi                                                 ; +0x7e1, 0x18001a251\nmov     [rdi+68h], r14                                                 ; +0x7e5, 0x18001a255\nlea     rcx, [rbp+57h+var_B8]                                          ; +0x7e9, 0x18001a259\ncall    cs:pthread_attr_init                                           ; +0x7ed, 0x18001a25d\nlea     rcx, [rdi+58h]                                                 ; +0x7f3, 0x18001a263\nmov     r9, rdi                                                        ; +0x7f7, 0x18001a267\nlea     r8, sub_180019690                                              ; +0x7fa, 0x18001a26a\nlea     rdx, [rbp+57h+var_B8]                                          ; +0x801, 0x18001a271\ncall    cs:pthread_create                                              ; +0x805, 0x18001a275\nnop                                                                    ; +0x80b, 0x18001a27b\ntest    eax, eax                                                       ; +0x80c, 0x18001a27c\nsetz    bl                                                             ; +0x80e, 0x18001a27e\nmov     rdx, [rbp+57h+var_68]                                          ; +0x811, 0x18001a281\ncmp     rdx, 0Fh                                                       ; +0x815, 0x18001a285\njbe     short loc_18001A2BF                                            ; +0x819, 0x18001a289\ninc     rdx                                                            ; +0x81b, 0x18001a28b\nmov     rcx, [rbp+57h+Block]; Block                                    ; +0x81e, 0x18001a28e\nmov     rax, rcx                                                       ; +0x822, 0x18001a292\ncmp     rdx, 1000h                                                     ; +0x825, 0x18001a295\njb      short loc_18001A2BA                                            ; +0x82c, 0x18001a29c\nadd     rdx, 27h ; '''                                                 ; +0x82e, 0x18001a29e\nmov     rcx, [rcx-8]                                                   ; +0x832, 0x18001a2a2\nsub     rax, rcx                                                       ; +0x836, 0x18001a2a6\nadd     rax, 0FFFFFFFFFFFFFFF8h                                        ; +0x839, 0x18001a2a9\ncmp     rax, 1Fh                                                       ; +0x83d, 0x18001a2ad\njbe     short loc_18001A2BA                                            ; +0x841, 0x18001a2b1\ncall    cs:_invalid_parameter_noinfo_noreturn                          ; +0x843, 0x18001a2b3\nalign 2                                                                ; +0x849, 0x18001a2b9\ncall    j_j_free                                                       ; +0x84a, 0x18001a2ba\nmov     [rbp+57h+var_70], rsi                                          ; +0x84f, 0x18001a2bf\nmov     [rbp+57h+var_68], 0Fh                                          ; +0x853, 0x18001a2c3\nmov     byte ptr [rbp+57h+Block], 0                                    ; +0x85b, 0x18001a2cb\nmov     rdx, [rbp+57h+var_88]                                          ; +0x85f, 0x18001a2cf\ncmp     rdx, 0Fh                                                       ; +0x863, 0x18001a2d3\njbe     short loc_18001A30D                                            ; +0x867, 0x18001a2d7\ninc     rdx                                                            ; +0x869, 0x18001a2d9\nmov     rcx, [rbp+57h+Buf]; Block                                      ; +0x86c, 0x18001a2dc\nmov     rax, rcx                                                       ; +0x870, 0x18001a2e0\ncmp     rdx, 1000h                                                     ; +0x873, 0x18001a2e3\njb      short loc_18001A308                                            ; +0x87a, 0x18001a2ea\nadd     rdx, 27h ; '''                                                 ; +0x87c, 0x18001a2ec\nmov     rcx, [rcx-8]                                                   ; +0x880, 0x18001a2f0\nsub     rax, rcx                                                       ; +0x884, 0x18001a2f4\nadd     rax, 0FFFFFFFFFFFFFFF8h                                        ; +0x887, 0x18001a2f7\ncmp     rax, 1Fh                                                       ; +0x88b, 0x18001a2fb\njbe     short loc_18001A308                                            ; +0x88f, 0x18001a2ff\ncall    cs:_invalid_parameter_noinfo_noreturn                          ; +0x891, 0x18001a301\nalign 8                                                                ; +0x897, 0x18001a307\ncall    j_j_free                                                       ; +0x898, 0x18001a308\nmovzx   eax, bl                                                        ; +0x89d, 0x18001a30d\nmov     rcx, [rbp+57h+var_40]                                          ; +0x8a0, 0x18001a310\nxor     rcx, rsp; StackCookie                                          ; +0x8a4, 0x18001a314\ncall    __security_check_cookie                                        ; +0x8a7, 0x18001a317\nmov     rbx, [rsp+0F0h+arg_8]                                          ; +0x8ac, 0x18001a31c\nadd     rsp, 0C0h                                                      ; +0x8b4, 0x18001a324\npop     r15                                                            ; +0x8bb, 0x18001a32b\npop     r14                                                            ; +0x8bd, 0x18001a32d\npop     r13                                                            ; +0x8bf, 0x18001a32f\npop     r12                                                            ; +0x8c1, 0x18001a331\npop     rdi                                                            ; +0x8c3, 0x18001a333\npop     rsi                                                            ; +0x8c4, 0x18001a334\npop     rbp                                                            ; +0x8c5, 0x18001a335\nretn                                                                   ; +0x8c6, 0x18001a336\ncall    sub_18001ABF0                                                  ; +0x8c7, 0x18001a337\ndb 90h                                                                 ; +0x8cc, 0x18001a33c\ncall    sub_18001ABF0                                                  ; +0x8cd, 0x18001a33d\ndb 0CCh                                                                ; +0x8d2, 0x18001a342", "xrefs": ["<???> @ 0x18002fdf8", "<???> @ 0x18004ac80"], "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"}