// // sub_180003550 from 0x180003550 to 0x1800035d7 (135 bytes) // // 3 xrefs: // > sub_180003750 @ 0x180003796 // > sub_18001DB70 @ 0x18001dc2f // > @ 0x1800491f8 // // 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 // char *__fastcall sub_180003550(_QWORD *a1, unsigned __int64 a2) { size_t v3; // rbx void *v4; // rax void *v5; // rcx _QWORD *v6; // rax char *result; // rax if ( a2 > 0x7FFFFFFFFFFFFFFLL ) goto LABEL_11; v3 = 32 * a2; if ( 32 * a2 < 0x1000 ) { if ( v3 ) v6 = operator new(v3); else v6 = nullptr; goto LABEL_10; } if ( v3 + 39 < v3 ) LABEL_11: Concurrency::cancel_current_task(); v4 = operator new(v3 + 39); v5 = v4; if ( !v4 ) invalid_parameter_noinfo_noreturn(); v6 = (_QWORD *)(((unsigned __int64)v4 + 39) & 0xFFFFFFFFFFFFFFE0uLL); *(v6 - 1) = v5; LABEL_10: *a1 = v6; a1[1] = v6; result = (char *)&v6[v3 / 8]; a1[2] = result; return result; }