// // sub_18001DB70 from 0x18001db70 to 0x18001dd71 (513 bytes) // // 3 xrefs: // > cocos2d::extension::CCHttpRequest::setHeaders @ 0x18001d3f7 // > cocos2d::extension::CCHttpRequest::operator= @ 0x18001d5da // > @ 0x18004b094 // // This function is hookable on this platform! // // Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA // Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings // // Hidden C++ exception states: #wind=1 void __fastcall sub_18001DB70(void ***a1, void **a2, unsigned __int64 a3) { unsigned __int64 v3; // rbp void **v6; // rdi unsigned __int64 v7; // rcx unsigned __int64 v8; // rsi unsigned __int64 v9; // rdx void **v10; // rcx __int64 j; // rdi __int64 v12; // rsi unsigned __int64 v13; // r15 void *v14; // rdx unsigned __int64 i; // rbp __int64 v16; // rdx void *v17; // rdx v3 = a3; v6 = *a1; v7 = ((char *)a1[2] - (char *)*a1) >> 5; if ( a3 <= v7 ) { v12 = (__int64)a1[1]; v13 = (v12 - (__int64)v6) >> 5; if ( a3 <= v13 ) { v12 = (__int64)&v6[4 * a3]; if ( a3 ) { do { if ( v6 != a2 ) { v17 = a2; if ( (unsigned __int64)a2[3] > 0xF ) v17 = *a2; sub_180003BC0(v6, v17, (size_t)a2[2]); } v6 += 4; a2 += 4; --v3; } while ( v3 ); } v16 = (__int64)a1[1]; } else { for ( ; v6 != (void **)v12; v12 = (__int64)a1[1] ) { if ( v6 != a2 ) { v14 = a2; if ( (unsigned __int64)a2[3] > 0xF ) v14 = *a2; sub_180003BC0(v6, v14, (size_t)a2[2]); } v6 += 4; a2 += 4; } for ( i = v3 - v13; i; --i ) { sub_180003F50(v12, (__int64)a2); v12 += 32; a2 += 4; } v16 = v12; } sub_1800036B0(v12, v16); a1[1] = (void **)v12; } else { v8 = 0x7FFFFFFFFFFFFFFLL; if ( a3 > 0x7FFFFFFFFFFFFFFLL ) sub_180003530(); v9 = v7 >> 1; if ( v7 <= 0x7FFFFFFFFFFFFFFLL - (v7 >> 1) ) { v8 = v9 + v7; if ( v9 + v7 < a3 ) v8 = a3; } if ( v6 ) { sub_1800036B0((__int64)v6, (__int64)a1[1]); v10 = *a1; if ( (((char *)a1[2] - (char *)*a1) & 0xFFFFFFFFFFFFFFE0uLL) >= 0x1000 ) { if ( (unsigned __int64)((char *)v10 - (_BYTE *)*(v10 - 1) - 8) > 0x1F ) invalid_parameter_noinfo_noreturn(); v10 = (void **)*(v10 - 1); } j_j_free(v10); *a1 = nullptr; a1[1] = nullptr; a1[2] = nullptr; } sub_180003550(a1, v8); for ( j = (__int64)*a1; v3; --v3 ) { sub_180003F50(j, (__int64)a2); j += 32; a2 += 4; } sub_1800036B0(j, j); a1[1] = (void **)j; } }