Help with a code

I have tried same code for input
[ [1, 2, 3], [4, 5, 6]] but not getting correct output.
I am getting 4 and 5 interchanged but I the code is same

vector Solution::spiralOrder(const vector<vector > &A) {
int startRow = 0 ;
int startCol = 0 ;
int endRow = A.size()-1 ;
int endCol = A[0].size() - 1;
vector< int > ans ;

while(startRow <= endRow && startCol <= endCol){
    
    //start row
    for(int i = startCol ; i <= endCol; i++){
        ans.push_back( A[startRow][i]) ;
    }
    startRow++ ;
    //endcol
    for(int i = startRow; i <= endRow; i++){
        ans.push_back(A[i][endCol]);
    }
    endCol-- ;
    
    //endrow
    if(endRow > startRow){
        for(int i = endCol; i >= startCol; i-- ){
            ans.push_back(A[endRow][i]);
        }
        endRow-- ;
    }
    
   //  startcol
    if(endCol > startCol){
        for(int i = endRow; i >= startRow; i-- ){
            ans.push_back( A[i][startCol]) ;
        }
        startCol++ ;
    }
    
}
return ans ;

}

@akabhi83229 if condition for last two statements should be like this if(endRow>=startRow) check for equality too at both if conditions.