Okay. Once you get a crash, post the output here and we can try to work it through together. Please ensure that you have some print statement in place of the commented out assert call, so if it fails there, we know about it. Something like:
if(r != 0) {
std::cout << "Usb::setupAsyncTransfer failed with code: " << r << std::endl;
}