HRESULT Library_spot_native_Microsoft_SPOT_Hardware_Utility::ExtractRangeFromArray___STATIC__SZARRAY_U1__SZARRAY_U1__I4__I4( CLR_RT_StackFrame& stack )
{
    NATIVE_PROFILE_CLR_CORE();
    TINYCLR_HEADER();

    CLR_RT_HeapBlock*       args = &stack.Arg0();
    CLR_RT_HeapBlock_Array* array;
    CLR_RT_HeapBlock&       ref = stack.PushValueAndClear();

    array = args[ 0 ].DereferenceArray(); FAULT_ON_NULL(array);

    TINYCLR_CHECK_HRESULT(CLR_RT_HeapBlock_Array::CreateInstance( ref, args[ 2 ].NumericByRefConst().s4, array->ReflectionDataConst() ));

    TINYCLR_CHECK_HRESULT(Library_corlib_native_System_Array::Copy( stack, stack.Arg0(), args[ 1 ].NumericByRefConst().s4, ref, 0, args[ 2 ].NumericByRefConst().s4 ));

    TINYCLR_NOCLEANUP();
}