{"type": "func", "start": 6442523824, "end": 6442524930, "name": "cocos2d::extension::CCEditBoxImplWin::openKeyboard", "pseudocode": "// \n// cocos2d::extension::CCEditBoxImplWin::openKeyboard from 0x180011cb0 to 0x180012102 (1106 bytes)\n// \n// 3 xrefs:\n// > <???> @ 0x1800281c8\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x18004a308\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=3\nvoid __fastcall cocos2d::extension::CCEditBoxImplWin::openKeyboard(cocos2d::extension::CCEditBoxImplWin *this)\n{\n  __int64 v2; // rcx\n  __int64 v3; // rbx\n  _QWORD *v4; // rax\n  _BYTE *v5; // rax\n  size_t v6; // rdi\n  size_t v7; // r8\n  unsigned __int64 v8; // r15\n  char **v9; // rbx\n  unsigned __int64 v10; // rcx\n  __int64 v11; // r14\n  size_t v12; // rax\n  void *v13; // rax\n  _WORD *v14; // rbx\n  char *v15; // rcx\n  _BYTE *v16; // rax\n  size_t v17; // r8\n  const char *v18; // rdx\n  const char *v19; // rdx\n  __int64 v20; // rbx\n  _BYTE *v21; // rax\n  void *v22; // rcx\n  char *v23; // rcx\n  char *v24; // rcx\n  char *v25[2]; // [rsp+30h] [rbp-D0h] BYREF\n  __int64 v26; // [rsp+40h] [rbp-C0h]\n  unsigned __int64 v27; // [rsp+48h] [rbp-B8h]\n  char *Source[2]; // [rsp+50h] [rbp-B0h] BYREF\n  __int64 v29; // [rsp+60h] [rbp-A0h]\n  unsigned __int64 v30; // [rsp+68h] [rbp-98h]\n  void *Block[2]; // [rsp+70h] [rbp-90h] BYREF\n  __int128 v32; // [rsp+80h] [rbp-80h]\n  char Destination[16]; // [rsp+90h] [rbp-70h] BYREF\n  __int128 v34; // [rsp+A0h] [rbp-60h]\n  __int128 v35; // [rsp+B0h] [rbp-50h]\n  __int128 v36; // [rsp+C0h] [rbp-40h]\n  __int128 v37; // [rsp+D0h] [rbp-30h]\n  __int128 v38; // [rsp+E0h] [rbp-20h]\n  int v39; // [rsp+F0h] [rbp-10h]\n\n  v2 = *((_QWORD *)this + 1);\n  if ( v2 )\n    (*(void (__fastcall **)(__int64, _QWORD))(*(_QWORD *)v2 + 8LL))(v2, *((_QWORD *)this + 2));\n  v3 = *((_QWORD *)this + 2);\n  if ( v3 && *(_DWORD *)(v3 + 760) )\n  {\n    v4 = (_QWORD *)cocos2d::CCScriptEngineManager::sharedManager();\n    (*(void (__fastcall **)(_QWORD, _QWORD, const char *, __int64, _QWORD))(*(_QWORD *)*v4 + 136LL))(\n      *v4,\n      *(unsigned int *)(v3 + 760),\n      \"began\",\n      v3,\n      0);\n  }\n  v5 = (_BYTE *)(*(__int64 (__fastcall **)(__int64))(*(_QWORD *)(*((_QWORD *)this + 4) + 600LL) + 8LL))(*((_QWORD *)this + 4) + 600LL);\n  *(_OWORD *)v25 = 0;\n  v26 = 0;\n  v27 = 0;\n  v6 = -1;\n  v7 = -1;\n  do\n    ++v7;\n  while ( v5[v7] );\n  sub_180003AB0(v25, v5, v7);\n  if ( v26 )\n    goto LABEL_30;\n  v8 = v27;\n  if ( v27 >= 0xB )\n  {\n    v9 = v25;\n    if ( v27 > 0xF )\n      v9 = (char **)v25[0];\n    v26 = 11;\n    memmove(v9, \"Enter value\", 0xBu);\n    *((_BYTE *)v9 + 11) = 0;\n    goto LABEL_30;\n  }\n  v10 = v27 >> 1;\n  v11 = 0x7FFFFFFFFFFFFFFFLL;\n  if ( v27 > 0x7FFFFFFFFFFFFFFFLL - (v27 >> 1) )\n  {\n    v12 = 0x8000000000000027uLL;\nLABEL_15:\n    v13 = operator new(v12);\n    if ( !v13 )\n      goto LABEL_53;\n    v14 = (_WORD *)(((unsigned __int64)v13 + 39) & 0xFFFFFFFFFFFFFFE0uLL);\n    *((_QWORD *)v14 - 1) = v13;\n    goto LABEL_25;\n  }\n  v11 = 15;\n  if ( v27 + v10 > 0xF )\n    v11 = v27 + v10;\n  if ( (unsigned __int64)(v11 + 1) >= 0x1000 )\n  {\n    v12 = v11 + 40;\n    if ( v11 + 40 < (unsigned __int64)(v11 + 1) )\n      Concurrency::cancel_current_task();\n    goto LABEL_15;\n  }\n  if ( v11 == -1 )\n    v14 = nullptr;\n  else\n    v14 = operator new(v11 + 1);\nLABEL_25:\n  v26 = 11;\n  v27 = v11;\n  qmemcpy(v14, \"Enter valu\", 10);\n  v14[5] = (unsigned __int8)aEnterValue[10];\n  if ( v8 > 0xF )\n  {\n    v15 = v25[0];\n    if ( v8 + 1 >= 0x1000 )\n    {\n      v15 = *((char **)v25[0] - 1);\n      if ( (unsigned __int64)(v25[0] - v15 - 8) > 0x1F )\nLABEL_53:\n        invalid_parameter_noinfo_noreturn();\n    }\n    j_j_free(v15);\n  }\n  v25[0] = (char *)v14;\nLABEL_30:\n  *(_OWORD *)Destination = 0;\n  v34 = 0;\n  v35 = 0;\n  v36 = 0;\n  v37 = 0;\n  v38 = 0;\n  v39 = 0;\n  v16 = (_BYTE *)(*(__int64 (__fastcall **)(cocos2d::extension::CCEditBoxImplWin *))(*(_QWORD *)this + 104LL))(this);\n  *(_OWORD *)Source = 0;\n  v29 = 0;\n  v30 = 0;\n  v17 = -1;\n  do\n    ++v17;\n  while ( v16[v17] );\n  sub_180003AB0(Source, v16, v17);\n  if ( v29 )\n  {\n    v18 = (const char *)Source;\n    if ( v30 > 0xF )\n      v18 = Source[0];\n    strncpy(Destination, v18, 0x64u);\n  }\n  v19 = (const char *)v25;\n  if ( v27 > 0xF )\n    v19 = v25[0];\n  v20 = CWin32InputBox::InputBox(\"Input\", v19, Destination, 0x64u, 0, nullptr);\n  if ( v20 == 1 )\n    (*(void (__fastcall **)(cocos2d::extension::CCEditBoxImplWin *, char *))(*(_QWORD *)this + 96LL))(this, Destination);\n  if ( *((_QWORD *)this + 1) )\n  {\n    if ( v20 == 1 )\n    {\n      v21 = (_BYTE *)(*(__int64 (__fastcall **)(cocos2d::extension::CCEditBoxImplWin *))(*(_QWORD *)this + 104LL))(this);\n      *(_OWORD *)Block = 0;\n      v32 = 0;\n      do\n        ++v6;\n      while ( v21[v6] );\n      sub_180003AB0(Block, v21, v6);\n      (*(void (__fastcall **)(_QWORD, _QWORD, void **))(**((_QWORD **)this + 1) + 24LL))(\n        *((_QWORD *)this + 1),\n        *((_QWORD *)this + 2),\n        Block);\n      if ( *((_QWORD *)&v32 + 1) > 0xFu )\n      {\n        v22 = Block[0];\n        if ( (unsigned __int64)(*((_QWORD *)&v32 + 1) + 1LL) >= 0x1000 )\n        {\n          v22 = *((void **)Block[0] - 1);\n          if ( (unsigned __int64)((char *)Block[0] - (char *)v22 - 8) > 0x1F )\n            invalid_parameter_noinfo_noreturn();\n        }\n        j_j_free(v22);\n      }\n    }\n    (*(void (__fastcall **)(_QWORD, _QWORD))(**((_QWORD **)this + 1) + 16LL))(\n      *((_QWORD *)this + 1),\n      *((_QWORD *)this + 2));\n    (*(void (__fastcall **)(_QWORD, _QWORD))(**((_QWORD **)this + 1) + 32LL))(\n      *((_QWORD *)this + 1),\n      *((_QWORD *)this + 2));\n  }\n  if ( v30 > 0xF )\n  {\n    v23 = Source[0];\n    if ( v30 + 1 >= 0x1000 )\n    {\n      v23 = *((char **)Source[0] - 1);\n      if ( (unsigned __int64)(Source[0] - v23 - 8) > 0x1F )\n        goto LABEL_53;\n    }\n    j_j_free(v23);\n  }\n  v29 = 0;\n  v30 = 15;\n  LOBYTE(Source[0]) = 0;\n  if ( v27 > 0xF )\n  {\n    v24 = v25[0];\n    if ( v27 + 1 >= 0x1000 )\n    {\n      v24 = *((char **)v25[0] - 1);\n      if ( (unsigned __int64)(v25[0] - v24 - 8) > 0x1F )\n        invalid_parameter_noinfo_noreturn();\n    }\n    j_j_free(v24);\n  }\n}", "assembly": "; \n; cocos2d::extension::CCEditBoxImplWin::openKeyboard from 0x180011cb0 to 0x180012102 (1106 bytes)\n; \n; 3 xrefs:\n; > <???> @ 0x1800281c8\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x18004a308\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, 0x180011cb0\nmov     [rsp-8+arg_10], rsi                                            ; +0x5, 0x180011cb5\npush    rbp                                                            ; +0xa, 0x180011cba\npush    rdi                                                            ; +0xb, 0x180011cbb\npush    r12                                                            ; +0xc, 0x180011cbc\npush    r14                                                            ; +0xe, 0x180011cbe\npush    r15                                                            ; +0x10, 0x180011cc0\nlea     rbp, [rsp-10h]                                                 ; +0x12, 0x180011cc2\nsub     rsp, 110h                                                      ; +0x17, 0x180011cc7\nmov     rax, cs:__security_cookie                                      ; +0x1e, 0x180011cce\nxor     rax, rsp                                                       ; +0x25, 0x180011cd5\nmov     [rbp+30h+var_30], rax                                          ; +0x28, 0x180011cd8\nmov     rsi, rcx                                                       ; +0x2c, 0x180011cdc\nmov     rcx, [rcx+8]                                                   ; +0x2f, 0x180011cdf\ntest    rcx, rcx                                                       ; +0x33, 0x180011ce3\njz      short loc_180011CF2                                            ; +0x36, 0x180011ce6\nmov     rax, [rcx]                                                     ; +0x38, 0x180011ce8\nmov     rdx, [rsi+10h]                                                 ; +0x3b, 0x180011ceb\ncall    qword ptr [rax+8]                                              ; +0x3f, 0x180011cef\nmov     rbx, [rsi+10h]                                                 ; +0x42, 0x180011cf2\nxor     r12d, r12d                                                     ; +0x46, 0x180011cf6\ntest    rbx, rbx                                                       ; +0x49, 0x180011cf9\njz      short loc_180011D2E                                            ; +0x4c, 0x180011cfc\ncmp     [rbx+2F8h], r12d                                               ; +0x4e, 0x180011cfe\njz      short loc_180011D2E                                            ; +0x55, 0x180011d05\ncall    cs:?sharedManager@CCScriptEngineManager@cocos2d@@SAPEAV12@XZ; cocos2d::CCScriptEngineManager::sharedManager(void) ; +0x57, 0x180011d07\nmov     rcx, [rax]                                                     ; +0x5d, 0x180011d0d\nmov     rax, [rcx]                                                     ; +0x60, 0x180011d10\nmov     qword ptr [rsp+130h+var_110], r12                              ; +0x63, 0x180011d13\nmov     r9, rbx                                                        ; +0x68, 0x180011d18\nlea     r8, aBegan; \"began\"                                            ; +0x6b, 0x180011d1b\nmov     edx, [rbx+2F8h]                                                ; +0x72, 0x180011d22\ncall    qword ptr [rax+88h]                                            ; +0x78, 0x180011d28\nmov     rcx, [rsi+20h]                                                 ; +0x7e, 0x180011d2e\nadd     rcx, 258h                                                      ; +0x82, 0x180011d32\nmov     rax, [rcx]                                                     ; +0x89, 0x180011d39\ncall    qword ptr [rax+8]                                              ; +0x8c, 0x180011d3c\nxorps   xmm0, xmm0                                                     ; +0x8f, 0x180011d3f\nmovups  xmmword ptr [rsp+130h+var_100], xmm0                           ; +0x92, 0x180011d42\nmov     [rsp+130h+var_F0], r12                                         ; +0x97, 0x180011d47\nmov     [rsp+130h+var_E8], r12                                         ; +0x9c, 0x180011d4c\nmov     rdi, 0FFFFFFFFFFFFFFFFh                                        ; +0xa1, 0x180011d51\nmov     r8, rdi                                                        ; +0xa8, 0x180011d58\nnop     dword ptr [rax+rax+00h]                                        ; +0xab, 0x180011d5b\ninc     r8                                                             ; +0xb0, 0x180011d60\ncmp     [rax+r8], r12b                                                 ; +0xb3, 0x180011d63\njnz     short loc_180011D60                                            ; +0xb7, 0x180011d67\nmov     rdx, rax                                                       ; +0xb9, 0x180011d69\nlea     rcx, [rsp+130h+var_100]                                        ; +0xbc, 0x180011d6c\ncall    sub_180003AB0                                                  ; +0xc1, 0x180011d71\nnop                                                                    ; +0xc6, 0x180011d76\ncmp     [rsp+130h+var_F0], 0                                           ; +0xc7, 0x180011d77\njnz     loc_180011EBC                                                  ; +0xcd, 0x180011d7d\nmov     r15, [rsp+130h+var_E8]                                         ; +0xd3, 0x180011d83\ncmp     r15, 0Bh                                                       ; +0xd8, 0x180011d88\njb      short loc_180011DC4                                            ; +0xdc, 0x180011d8c\nlea     rbx, [rsp+130h+var_100]                                        ; +0xde, 0x180011d8e\ncmp     r15, 0Fh                                                       ; +0xe3, 0x180011d93\ncmova   rbx, [rsp+130h+var_100]                                        ; +0xe7, 0x180011d97\nmov     [rsp+130h+var_F0], 0Bh                                         ; +0xed, 0x180011d9d\nmov     r8d, 0Bh; Size                                                 ; +0xf6, 0x180011da6\nlea     rdx, aEnterValue; \"Enter value\"                                ; +0xfc, 0x180011dac\nmov     rcx, rbx; void *                                               ; +0x103, 0x180011db3\ncall    memmove                                                        ; +0x106, 0x180011db6\nmov     byte ptr [rbx+0Bh], 0                                          ; +0x10b, 0x180011dbb\njmp     loc_180011EBC                                                  ; +0x10f, 0x180011dbf\nmov     rcx, r15                                                       ; +0x114, 0x180011dc4\nshr     rcx, 1                                                         ; +0x117, 0x180011dc7\nmov     r14, 7FFFFFFFFFFFFFFFh                                         ; +0x11a, 0x180011dca\nmov     rax, r14                                                       ; +0x124, 0x180011dd4\nsub     rax, rcx                                                       ; +0x127, 0x180011dd7\ncmp     r15, rax                                                       ; +0x12a, 0x180011dda\njbe     short loc_180011E0C                                            ; +0x12d, 0x180011ddd\nmov     rax, 8000000000000000h                                         ; +0x12f, 0x180011ddf\nadd     rax, 27h ; '''                                                 ; +0x139, 0x180011de9\nmov     rcx, rax; Size                                                 ; +0x13d, 0x180011ded\ncall    ??2@YAPEAX_K@Z; operator new(unsigned __int64)                 ; +0x140, 0x180011df0\ntest    rax, rax                                                       ; +0x145, 0x180011df5\njz      loc_180012075                                                  ; +0x148, 0x180011df8\nlea     rbx, [rax+27h]                                                 ; +0x14e, 0x180011dfe\nand     rbx, 0FFFFFFFFFFFFFFE0h                                        ; +0x152, 0x180011e02\nmov     [rbx-8], rax                                                   ; +0x156, 0x180011e06\njmp     short loc_180011E4B                                            ; +0x15a, 0x180011e0a\nlea     rax, [r15+rcx]                                                 ; +0x15c, 0x180011e0c\nmov     r14d, 0Fh                                                      ; +0x160, 0x180011e10\ncmp     rax, r14                                                       ; +0x166, 0x180011e16\ncmova   r14, rax                                                       ; +0x169, 0x180011e19\nlea     rcx, [r14+1]; Size                                             ; +0x16d, 0x180011e1d\ncmp     rcx, 1000h                                                     ; +0x171, 0x180011e21\njb      short loc_180011E39                                            ; +0x178, 0x180011e28\nlea     rax, [rcx+27h]                                                 ; +0x17a, 0x180011e2a\ncmp     rax, rcx                                                       ; +0x17e, 0x180011e2e\njbe     loc_1800120FC                                                  ; +0x181, 0x180011e31\njmp     short loc_180011DED                                            ; +0x187, 0x180011e37\ntest    rcx, rcx                                                       ; +0x189, 0x180011e39\njz      short loc_180011E48                                            ; +0x18c, 0x180011e3c\ncall    ??2@YAPEAX_K@Z; operator new(unsigned __int64)                 ; +0x18e, 0x180011e3e\nmov     rbx, rax                                                       ; +0x193, 0x180011e43\njmp     short loc_180011E4B                                            ; +0x196, 0x180011e46\nmov     rbx, r12                                                       ; +0x198, 0x180011e48\nmov     [rsp+130h+var_F0], 0Bh                                         ; +0x19b, 0x180011e4b\nmov     [rsp+130h+var_E8], r14                                         ; +0x1a4, 0x180011e54\nmovsd   xmm0, qword ptr cs:aEnterValue; \"Enter value\"                  ; +0x1a9, 0x180011e59\nmovsd   qword ptr [rbx], xmm0                                          ; +0x1b1, 0x180011e61\nmovzx   eax, word ptr cs:aEnterValue+8; \"lue\"                          ; +0x1b5, 0x180011e65\nmov     [rbx+8], ax                                                    ; +0x1bc, 0x180011e6c\nmovzx   eax, byte ptr cs:aEnterValue+0Ah; \"e\"                          ; +0x1c0, 0x180011e70\nmov     [rbx+0Ah], al                                                  ; +0x1c7, 0x180011e77\nmov     byte ptr [rbx+0Bh], 0                                          ; +0x1ca, 0x180011e7a\ncmp     r15, 0Fh                                                       ; +0x1ce, 0x180011e7e\njbe     short loc_180011EB7                                            ; +0x1d2, 0x180011e82\nlea     rdx, [r15+1]                                                   ; +0x1d4, 0x180011e84\nmov     rcx, [rsp+130h+var_100]                                        ; +0x1d8, 0x180011e88\nmov     rax, rcx                                                       ; +0x1dd, 0x180011e8d\ncmp     rdx, 1000h                                                     ; +0x1e0, 0x180011e90\njb      short loc_180011EB2                                            ; +0x1e7, 0x180011e97\nadd     rdx, 27h ; '''                                                 ; +0x1e9, 0x180011e99\nmov     rcx, [rcx-8]; Block                                            ; +0x1ed, 0x180011e9d\nsub     rax, rcx                                                       ; +0x1f1, 0x180011ea1\nadd     rax, 0FFFFFFFFFFFFFFF8h                                        ; +0x1f4, 0x180011ea4\ncmp     rax, 1Fh                                                       ; +0x1f8, 0x180011ea8\nja      loc_180012075                                                  ; +0x1fc, 0x180011eac\ncall    j_j_free                                                       ; +0x202, 0x180011eb2\nmov     [rsp+130h+var_100], rbx                                        ; +0x207, 0x180011eb7\nxorps   xmm0, xmm0                                                     ; +0x20c, 0x180011ebc\nxor     eax, eax                                                       ; +0x20f, 0x180011ebf\nmovups  xmmword ptr [rbp+30h+Destination], xmm0                        ; +0x211, 0x180011ec1\nmovups  [rbp+30h+var_90], xmm0                                         ; +0x215, 0x180011ec5\nmovups  [rbp+30h+var_80], xmm0                                         ; +0x219, 0x180011ec9\nmovups  [rbp+30h+var_70], xmm0                                         ; +0x21d, 0x180011ecd\nmovups  [rbp+30h+var_60], xmm0                                         ; +0x221, 0x180011ed1\nmovups  [rbp+30h+var_50], xmm0                                         ; +0x225, 0x180011ed5\nmov     [rbp+30h+var_40], eax                                          ; +0x229, 0x180011ed9\nmov     rax, [rsi]                                                     ; +0x22c, 0x180011edc\nmov     rcx, rsi                                                       ; +0x22f, 0x180011edf\ncall    qword ptr [rax+68h]                                            ; +0x232, 0x180011ee2\nxorps   xmm0, xmm0                                                     ; +0x235, 0x180011ee5\nmovups  xmmword ptr [rsp+130h+Source], xmm0                            ; +0x238, 0x180011ee8\nmov     [rsp+130h+var_D0], r12                                         ; +0x23d, 0x180011eed\nmov     [rsp+130h+var_C8], r12                                         ; +0x242, 0x180011ef2\nmov     r8, rdi                                                        ; +0x247, 0x180011ef7\nnop     word ptr [rax+rax+00h]                                         ; +0x24a, 0x180011efa\ninc     r8                                                             ; +0x250, 0x180011f00\ncmp     byte ptr [rax+r8], 0                                           ; +0x253, 0x180011f03\njnz     short loc_180011F00                                            ; +0x258, 0x180011f08\nmov     rdx, rax                                                       ; +0x25a, 0x180011f0a\nlea     rcx, [rsp+130h+Source]                                         ; +0x25d, 0x180011f0d\ncall    sub_180003AB0                                                  ; +0x262, 0x180011f12\nnop                                                                    ; +0x267, 0x180011f17\ncmp     [rsp+130h+var_D0], 0                                           ; +0x268, 0x180011f18\njz      short loc_180011F41                                            ; +0x26e, 0x180011f1e\nlea     rdx, [rsp+130h+Source]                                         ; +0x270, 0x180011f20\ncmp     [rsp+130h+var_C8], 0Fh                                         ; +0x275, 0x180011f25\ncmova   rdx, [rsp+130h+Source]; Source                                 ; +0x27b, 0x180011f2b\nmov     r8d, 64h ; 'd'; Count                                          ; +0x281, 0x180011f31\nlea     rcx, [rbp+30h+Destination]; Destination                        ; +0x287, 0x180011f37\ncall    cs:strncpy                                                     ; +0x28b, 0x180011f3b\nlea     rdx, [rsp+130h+var_100]                                        ; +0x291, 0x180011f41\ncmp     [rsp+130h+var_E8], 0Fh                                         ; +0x296, 0x180011f46\ncmova   rdx, [rsp+130h+var_100]; char *                                ; +0x29c, 0x180011f4c\nmov     [rsp+130h+var_108], r12; HWND                                  ; +0x2a2, 0x180011f52\nmov     [rsp+130h+var_110], 0; bool                                    ; +0x2a7, 0x180011f57\nmov     r9d, 64h ; 'd'; unsigned int                                   ; +0x2ac, 0x180011f5c\nlea     r8, [rbp+30h+Destination]; char *                              ; +0x2b2, 0x180011f62\nlea     rcx, aInput; \"Input\"                                           ; +0x2b6, 0x180011f66\ncall    ?InputBox@CWin32InputBox@@SA_JPEBD0PEADK_NPEAUHWND__@@@Z; CWin32InputBox::InputBox(char const *,char const *,char *,ulong,bool,HWND__ *) ; +0x2bd, 0x180011f6d\nmov     rbx, rax                                                       ; +0x2c2, 0x180011f72\ncmp     rax, 1                                                         ; +0x2c5, 0x180011f75\njnz     short loc_180011F89                                            ; +0x2c9, 0x180011f79\nmov     r8, [rsi]                                                      ; +0x2cb, 0x180011f7b\nlea     rdx, [rbp+30h+Destination]                                     ; +0x2ce, 0x180011f7e\nmov     rcx, rsi                                                       ; +0x2d2, 0x180011f82\ncall    qword ptr [r8+60h]                                             ; +0x2d5, 0x180011f85\ncmp     qword ptr [rsi+8], 0                                           ; +0x2d9, 0x180011f89\njz      loc_180012041                                                  ; +0x2de, 0x180011f8e\ncmp     rbx, 1                                                         ; +0x2e4, 0x180011f94\njnz     loc_180012024                                                  ; +0x2e8, 0x180011f98\nmov     rax, [rsi]                                                     ; +0x2ee, 0x180011f9e\nmov     rcx, rsi                                                       ; +0x2f1, 0x180011fa1\ncall    qword ptr [rax+68h]                                            ; +0x2f4, 0x180011fa4\nxorps   xmm0, xmm0                                                     ; +0x2f7, 0x180011fa7\nmovups  xmmword ptr [rsp+130h+Block], xmm0                             ; +0x2fa, 0x180011faa\nxorps   xmm1, xmm1                                                     ; +0x2ff, 0x180011faf\nmovdqu  [rbp+30h+var_B0], xmm1                                         ; +0x302, 0x180011fb2\ninc     rdi                                                            ; +0x307, 0x180011fb7\ncmp     byte ptr [rax+rdi], 0                                          ; +0x30a, 0x180011fba\njnz     short loc_180011FB7                                            ; +0x30e, 0x180011fbe\nmov     r8, rdi                                                        ; +0x310, 0x180011fc0\nmov     rdx, rax                                                       ; +0x313, 0x180011fc3\nlea     rcx, [rsp+130h+Block]                                          ; +0x316, 0x180011fc6\ncall    sub_180003AB0                                                  ; +0x31b, 0x180011fcb\nnop                                                                    ; +0x320, 0x180011fd0\nmov     rcx, [rsi+8]                                                   ; +0x321, 0x180011fd1\nmov     rax, [rcx]                                                     ; +0x325, 0x180011fd5\nlea     r8, [rsp+130h+Block]                                           ; +0x328, 0x180011fd8\nmov     rdx, [rsi+10h]                                                 ; +0x32d, 0x180011fdd\ncall    qword ptr [rax+18h]                                            ; +0x331, 0x180011fe1\nnop                                                                    ; +0x334, 0x180011fe4\nmov     rdx, qword ptr [rbp+30h+var_B0+8]                              ; +0x335, 0x180011fe5\ncmp     rdx, 0Fh                                                       ; +0x339, 0x180011fe9\njbe     short loc_180012024                                            ; +0x33d, 0x180011fed\ninc     rdx                                                            ; +0x33f, 0x180011fef\nmov     rcx, [rsp+130h+Block]; Block                                   ; +0x342, 0x180011ff2\nmov     rax, rcx                                                       ; +0x347, 0x180011ff7\ncmp     rdx, 1000h                                                     ; +0x34a, 0x180011ffa\njb      short loc_18001201F                                            ; +0x351, 0x180012001\nadd     rdx, 27h ; '''                                                 ; +0x353, 0x180012003\nmov     rcx, [rcx-8]                                                   ; +0x357, 0x180012007\nsub     rax, rcx                                                       ; +0x35b, 0x18001200b\nadd     rax, 0FFFFFFFFFFFFFFF8h                                        ; +0x35e, 0x18001200e\ncmp     rax, 1Fh                                                       ; +0x362, 0x180012012\njbe     short loc_18001201F                                            ; +0x366, 0x180012016\ncall    cs:_invalid_parameter_noinfo_noreturn                          ; +0x368, 0x180012018\ndb 0CCh                                                                ; +0x36e, 0x18001201e\ncall    j_j_free                                                       ; +0x36f, 0x18001201f\nmov     rcx, [rsi+8]                                                   ; +0x374, 0x180012024\nmov     rax, [rcx]                                                     ; +0x378, 0x180012028\nmov     rdx, [rsi+10h]                                                 ; +0x37b, 0x18001202b\ncall    qword ptr [rax+10h]                                            ; +0x37f, 0x18001202f\nmov     rcx, [rsi+8]                                                   ; +0x382, 0x180012032\nmov     rax, [rcx]                                                     ; +0x386, 0x180012036\nmov     rdx, [rsi+10h]                                                 ; +0x389, 0x180012039\ncall    qword ptr [rax+20h]                                            ; +0x38d, 0x18001203d\nnop                                                                    ; +0x390, 0x180012040\nmov     rdx, [rsp+130h+var_C8]                                         ; +0x391, 0x180012041\ncmp     rdx, 0Fh                                                       ; +0x396, 0x180012046\njbe     short loc_180012081                                            ; +0x39a, 0x18001204a\ninc     rdx                                                            ; +0x39c, 0x18001204c\nmov     rcx, [rsp+130h+Source]; Block                                  ; +0x39f, 0x18001204f\nmov     rax, rcx                                                       ; +0x3a4, 0x180012054\ncmp     rdx, 1000h                                                     ; +0x3a7, 0x180012057\njb      short loc_18001207C                                            ; +0x3ae, 0x18001205e\nadd     rdx, 27h ; '''                                                 ; +0x3b0, 0x180012060\nmov     rcx, [rcx-8]                                                   ; +0x3b4, 0x180012064\nsub     rax, rcx                                                       ; +0x3b8, 0x180012068\nadd     rax, 0FFFFFFFFFFFFFFF8h                                        ; +0x3bb, 0x18001206b\ncmp     rax, 1Fh                                                       ; +0x3bf, 0x18001206f\njbe     short loc_18001207C                                            ; +0x3c3, 0x180012073\ncall    cs:_invalid_parameter_noinfo_noreturn                          ; +0x3c5, 0x180012075\nalign 4                                                                ; +0x3cb, 0x18001207b\ncall    j_j_free                                                       ; +0x3cc, 0x18001207c\nmov     [rsp+130h+var_D0], r12                                         ; +0x3d1, 0x180012081\nmov     [rsp+130h+var_C8], 0Fh                                         ; +0x3d6, 0x180012086\nmov     byte ptr [rsp+130h+Source], 0                                  ; +0x3df, 0x18001208f\nmov     rdx, [rsp+130h+var_E8]                                         ; +0x3e4, 0x180012094\ncmp     rdx, 0Fh                                                       ; +0x3e9, 0x180012099\njbe     short loc_1800120D4                                            ; +0x3ed, 0x18001209d\ninc     rdx                                                            ; +0x3ef, 0x18001209f\nmov     rcx, [rsp+130h+var_100]; Block                                 ; +0x3f2, 0x1800120a2\nmov     rax, rcx                                                       ; +0x3f7, 0x1800120a7\ncmp     rdx, 1000h                                                     ; +0x3fa, 0x1800120aa\njb      short loc_1800120CF                                            ; +0x401, 0x1800120b1\nadd     rdx, 27h ; '''                                                 ; +0x403, 0x1800120b3\nmov     rcx, [rcx-8]                                                   ; +0x407, 0x1800120b7\nsub     rax, rcx                                                       ; +0x40b, 0x1800120bb\nadd     rax, 0FFFFFFFFFFFFFFF8h                                        ; +0x40e, 0x1800120be\ncmp     rax, 1Fh                                                       ; +0x412, 0x1800120c2\njbe     short loc_1800120CF                                            ; +0x416, 0x1800120c6\ncall    cs:_invalid_parameter_noinfo_noreturn                          ; +0x418, 0x1800120c8\ndb 0CCh                                                                ; +0x41e, 0x1800120ce\ncall    j_j_free                                                       ; +0x41f, 0x1800120cf\nmov     rcx, [rbp+30h+var_30]                                          ; +0x424, 0x1800120d4\nxor     rcx, rsp; StackCookie                                          ; +0x428, 0x1800120d8\ncall    __security_check_cookie                                        ; +0x42b, 0x1800120db\nlea     r11, [rsp+130h+var_20]                                         ; +0x430, 0x1800120e0\nmov     rbx, [r11+38h]                                                 ; +0x438, 0x1800120e8\nmov     rsi, [r11+40h]                                                 ; +0x43c, 0x1800120ec\nmov     rsp, r11                                                       ; +0x440, 0x1800120f0\npop     r15                                                            ; +0x443, 0x1800120f3\npop     r14                                                            ; +0x445, 0x1800120f5\npop     r12                                                            ; +0x447, 0x1800120f7\npop     rdi                                                            ; +0x449, 0x1800120f9\npop     rbp                                                            ; +0x44a, 0x1800120fa\nretn                                                                   ; +0x44b, 0x1800120fb\ncall    ?cancel_current_task@Concurrency@@YAXXZ; Concurrency::cancel_current_task(void) ; +0x44c, 0x1800120fc\nalign 2                                                                ; +0x451, 0x180012101", "xrefs": ["<???> @ 0x1800281c8", "<???> @ 0x18002fdf8", "<???> @ 0x18004a308"], "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"}