{"type": "func", "start": 6442570192, "end": 6442570493, "name": "cocos2d::extension::CCHttpRequest::setRequestData", "pseudocode": "// \n// cocos2d::extension::CCHttpRequest::setRequestData from 0x18001d1d0 to 0x18001d2fd (301 bytes)\n// \n// 6 xrefs:\n// > <???> @ 0x18002f834\n// > <???> @ 0x18002f848\n// > <???> @ 0x18002f85c\n// > <???> @ 0x18002f870\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x18004af80\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\nvoid __fastcall cocos2d::extension::CCHttpRequest::setRequestData(\n        cocos2d::extension::CCHttpRequest *this,\n        const char *a2,\n        unsigned int a3)\n{\n  char *v3; // rbx\n  void **v4; // rdi\n  size_t v6; // rsi\n  unsigned __int64 v7; // rdx\n  unsigned __int64 v8; // rcx\n  size_t v9; // rbp\n  char *v10; // rbx\n  unsigned __int64 v11; // r14\n\n  v3 = *((char **)this + 12);\n  v4 = (void **)((char *)this + 96);\n  v6 = a3;\n  v7 = *((_QWORD *)this + 14) - (_QWORD)v3;\n  if ( a3 <= v7 )\n  {\n    v11 = *((_QWORD *)this + 13) - (_QWORD)v3;\n    if ( a3 <= v11 )\n    {\n      memmove(v3, a2, a3);\n    }\n    else\n    {\n      memmove(v3, a2, *((_QWORD *)this + 13) - (_QWORD)v3);\n      v3 = (char *)v4[1];\n      v6 -= v11;\n      memmove(v3, &a2[v11], v6);\n    }\n    v4[1] = &v3[v6];\n  }\n  else\n  {\n    v8 = v7 >> 1;\n    v9 = 0x7FFFFFFFFFFFFFFFLL;\n    if ( v7 <= 0x7FFFFFFFFFFFFFFFLL - (v7 >> 1) )\n    {\n      v9 = v8 + v7;\n      if ( v8 + v7 < a3 )\n        v9 = a3;\n    }\n    if ( v3 )\n    {\n      if ( v7 >= 0x1000 )\n      {\n        if ( (unsigned __int64)&v3[-*((_QWORD *)v3 - 1) - 8] > 0x1F )\n          invalid_parameter_noinfo_noreturn();\n        v3 = *((char **)v3 - 1);\n      }\n      j_j_free(v3);\n      *v4 = nullptr;\n      v4[1] = nullptr;\n      v4[2] = nullptr;\n    }\n    sub_180018CF0(v4, v9);\n    v10 = (char *)*v4;\n    memmove(*v4, a2, v6);\n    v4[1] = &v10[v6];\n  }\n}", "assembly": "; \n; cocos2d::extension::CCHttpRequest::setRequestData from 0x18001d1d0 to 0x18001d2fd (301 bytes)\n; \n; 6 xrefs:\n; > <???> @ 0x18002f834\n; > <???> @ 0x18002f848\n; > <???> @ 0x18002f85c\n; > <???> @ 0x18002f870\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x18004af80\n; \n; This function is hookable on this platform!\n; \n; Using BromaIDA 8.0.0 @ https:;github.com/Stazzical/BromaIDA\n; Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https:;github.com/geode-sdk/bindings\n; \n\nmov     [rsp+arg_10], rbx                                              ; +0x0, 0x18001d1d0\npush    rsi                                                            ; +0x5, 0x18001d1d5\npush    rdi                                                            ; +0x6, 0x18001d1d6\npush    r15                                                            ; +0x7, 0x18001d1d7\nsub     rsp, 20h                                                       ; +0x9, 0x18001d1d9\nmov     rbx, [rcx+60h]                                                 ; +0xd, 0x18001d1dd\nlea     rdi, [rcx+60h]                                                 ; +0x11, 0x18001d1e1\nmov     r15, rdx                                                       ; +0x15, 0x18001d1e5\nmov     esi, r8d                                                       ; +0x18, 0x18001d1e8\nmov     rdx, [rdi+10h]                                                 ; +0x1b, 0x18001d1eb\nsub     rdx, rbx                                                       ; +0x1f, 0x18001d1ef\ncmp     rsi, rdx                                                       ; +0x22, 0x18001d1f2\njbe     loc_18001D29F                                                  ; +0x25, 0x18001d1f5\nmov     [rsp+38h+arg_0], rbp                                           ; +0x2b, 0x18001d1fb\nmov     rcx, rdx                                                       ; +0x30, 0x18001d200\nshr     rcx, 1                                                         ; +0x33, 0x18001d203\nmov     rbp, 7FFFFFFFFFFFFFFFh                                         ; +0x36, 0x18001d206\nmov     rax, rbp                                                       ; +0x40, 0x18001d210\nsub     rax, rcx                                                       ; +0x43, 0x18001d213\ncmp     rdx, rax                                                       ; +0x46, 0x18001d216\nja      short loc_18001D226                                            ; +0x49, 0x18001d219\nlea     rbp, [rcx+rdx]                                                 ; +0x4b, 0x18001d21b\ncmp     rbp, rsi                                                       ; +0x4f, 0x18001d21f\ncmovb   rbp, rsi                                                       ; +0x52, 0x18001d222\ntest    rbx, rbx                                                       ; +0x56, 0x18001d226\njz      short loc_18001D261                                            ; +0x59, 0x18001d229\ncmp     rdx, 1000h                                                     ; +0x5b, 0x18001d22b\njb      short loc_18001D24C                                            ; +0x62, 0x18001d232\nmov     rcx, [rbx-8]                                                   ; +0x64, 0x18001d234\nadd     rdx, 27h ; '''                                                 ; +0x68, 0x18001d238\nsub     rbx, rcx                                                       ; +0x6c, 0x18001d23c\nlea     rax, [rbx-8]                                                   ; +0x6f, 0x18001d23f\ncmp     rax, 1Fh                                                       ; +0x73, 0x18001d243\nja      short loc_18001D298                                            ; +0x77, 0x18001d247\nmov     rbx, rcx                                                       ; +0x79, 0x18001d249\nmov     rcx, rbx; Block                                                ; +0x7c, 0x18001d24c\ncall    j_j_free                                                       ; +0x7f, 0x18001d24f\nxor     eax, eax                                                       ; +0x84, 0x18001d254\nmov     [rdi], rax                                                     ; +0x86, 0x18001d256\nmov     [rdi+8], rax                                                   ; +0x89, 0x18001d259\nmov     [rdi+10h], rax                                                 ; +0x8d, 0x18001d25d\nmov     rdx, rbp                                                       ; +0x91, 0x18001d261\nmov     rcx, rdi                                                       ; +0x94, 0x18001d264\ncall    sub_180018CF0                                                  ; +0x97, 0x18001d267\nmov     rbx, [rdi]                                                     ; +0x9c, 0x18001d26c\nmov     r8, rsi; Size                                                  ; +0x9f, 0x18001d26f\nmov     rcx, rbx; void *                                               ; +0xa2, 0x18001d272\nmov     rdx, r15; Src                                                  ; +0xa5, 0x18001d275\ncall    memmove                                                        ; +0xa8, 0x18001d278\nmov     rbp, [rsp+38h+arg_0]                                           ; +0xad, 0x18001d27d\nlea     rax, [rbx+rsi]                                                 ; +0xb2, 0x18001d282\nmov     [rdi+8], rax                                                   ; +0xb6, 0x18001d286\nmov     rbx, [rsp+38h+arg_10]                                          ; +0xba, 0x18001d28a\nadd     rsp, 20h                                                       ; +0xbf, 0x18001d28f\npop     r15                                                            ; +0xc3, 0x18001d293\npop     rdi                                                            ; +0xc5, 0x18001d295\npop     rsi                                                            ; +0xc6, 0x18001d296\nretn                                                                   ; +0xc7, 0x18001d297\ncall    cs:_invalid_parameter_noinfo_noreturn                          ; +0xc8, 0x18001d298\ndb 0CCh                                                                ; +0xce, 0x18001d29e\nmov     [rsp+38h+arg_8], r14                                           ; +0xcf, 0x18001d29f\nmov     rdx, r15; Src                                                  ; +0xd4, 0x18001d2a4\nmov     r14, [rdi+8]                                                   ; +0xd7, 0x18001d2a7\nmov     rcx, rbx; void *                                               ; +0xdb, 0x18001d2ab\nsub     r14, rbx                                                       ; +0xde, 0x18001d2ae\ncmp     rsi, r14                                                       ; +0xe1, 0x18001d2b1\njbe     short loc_18001D2EF                                            ; +0xe4, 0x18001d2b4\nmov     r8, r14; Size                                                  ; +0xe6, 0x18001d2b6\ncall    memmove                                                        ; +0xe9, 0x18001d2b9\nmov     rbx, [rdi+8]                                                   ; +0xee, 0x18001d2be\nlea     rdx, [r14+r15]; Src                                            ; +0xf2, 0x18001d2c2\nsub     rsi, r14                                                       ; +0xf6, 0x18001d2c6\nmov     rcx, rbx; void *                                               ; +0xf9, 0x18001d2c9\nmov     r8, rsi; Size                                                  ; +0xfc, 0x18001d2cc\ncall    memmove                                                        ; +0xff, 0x18001d2cf\nlea     rax, [rsi+rbx]                                                 ; +0x104, 0x18001d2d4\nmov     r14, [rsp+38h+arg_8]                                           ; +0x108, 0x18001d2d8\nmov     rbx, [rsp+38h+arg_10]                                          ; +0x10d, 0x18001d2dd\nmov     [rdi+8], rax                                                   ; +0x112, 0x18001d2e2\nadd     rsp, 20h                                                       ; +0x116, 0x18001d2e6\npop     r15                                                            ; +0x11a, 0x18001d2ea\npop     rdi                                                            ; +0x11c, 0x18001d2ec\npop     rsi                                                            ; +0x11d, 0x18001d2ed\nretn                                                                   ; +0x11e, 0x18001d2ee\nmov     r8, rsi; Size                                                  ; +0x11f, 0x18001d2ef\ncall    memmove                                                        ; +0x122, 0x18001d2f2\nlea     rax, [rbx+rsi]                                                 ; +0x127, 0x18001d2f7\njmp     short loc_18001D2D8                                            ; +0x12b, 0x18001d2fb", "xrefs": ["<???> @ 0x18002f834", "<???> @ 0x18002f848", "<???> @ 0x18002f85c", "<???> @ 0x18002f870", "<???> @ 0x18002fdf8", "<???> @ 0x18004af80"], "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"}