The motion of the body can be modeled by the system of first-order ordinary differential equations in vector/matrix:
\begin{align}
J&\frac{d\vec{\Omega}}{dt} \, = \, J\,\vec{\Omega} \times \vec{\Omega} \, + \, \vec{X}_F\times \vec{F}\\
&\\
&\frac{d}{dt} U \, = \, U\, \big(\vec{\Omega} \times \cdot\big)\\
&\\
&\frac{d\vec{x}_G}{dt} \, = \,\vec{v}_G \\
&\\
&\frac{d\vec{v}_G}{dt} \, = \, U\,\vec{F}
\end{align}
for the unknow vector and matrix functions $$\vec{x}_G = \vec{x}_G(t) \in \mathbb{R}^3,\,\,\,\,\,\vec{v}_G = \vec{v}_G(t) \in \mathbb{R}^3, \,\,\,\,\, U = U(t) \in \text{SO}(3), \,\,\,\,\, \vec{\Omega} = \vec{\Omega}(t) \in \mathbb{R}^3$$
where the vector $\vec{\Omega}$ is the angular velocity of the body with respect to the body fixed frame (origin at the center of mass), $J$ is the 3 by 3 constant inertia matrix of the body, calculated in the body fixed frame and relative to the center of mass. The vector $\vec{X}_F$ is the constant vector, in the body fixed frame, pointing from the center of mass $G$ of the body to the point of application of the force. The vector $\vec{F}$ is the constant vector, also written in body fixed frame coordinates, of the force applied to a fixed point on the body. The change from body fixed coordinate frame to external inertial coordinate frame is given by the congruence transformation (rotation around center of mass plus translation along the vector $\vec{x}_G$ in the inertial (external) coordinate system pointing from its origin to the center of mass of the body)
$$\vec{x} \, = \vec{x}_G \, + \, U\, \vec{X}$$ where the time dependent matrix function $U = U(t) \in \text{SO}(3)$ is an orthogonal matrix. The state of the body, also called the configuration of the body, is thus described by the pair $(\,\vec{x}_G,\,\, U\,)$.
By $\big(\vec{\Omega} \times \cdot\big)$ I mean the anti-symmetric 3 by 3 matrix with the property that for every three vector $\vec{X}$
$$\big(\vec{\Omega} \times \cdot\big)\, \vec{X} \, = \, \vec{\Omega} \times \vec{X}$$
Now, the first vector equation is decoupled from the rest. There are many approaches how to integrate it, including geometric Lie-Poisson approximate integration or even in the case when the body has two equal axes of inertia it is exactly solvable with analytic formulas. But you can be just quick and dirty here and simply use explicit Runge-Kutta 4th order integrator with a step $\frac{h}{2}$ giving you a sequence of angular velocities $\vec{\Omega}_t \, \, : \,\, t = t_0 + n\frac{h}{2}$ with $n=0, 1, 2, ...$.
After that, when you have $\vec{\Omega}_t$ the second matrix equation is in fact decoupled from the third and forth, so maybe use as integration simple piece-wise rotations with step $\frac{h}{2}$ to it as follows: if you have already calculated the rotation matrix $U_t$ then
$$U_{t+\frac{h}{2}} \, = \,U_t \, \text{exp}\left({\frac{h}{2}\big(\vec{\Omega}_t \times \cdot\big)}\right) $$
where $\text{exp}\left({\frac{h}{2}\big(\vec{\Omega} \times \cdot\big)}\right)$ is matrix exponentiation, which in the case of an anti-symmetric matrix $\big(\vec{\Omega} \times \cdot\big)$ produces an orthogonal matrix. The exponentiation can be carried out explicitly by Rodrigues' formula. AS a result, you obtain a sequence of rotational (orthogonal) matrices $U_t \, \, : \,\, t = t_0 + n\frac{h}{2}$ with $n=0, 1, 2, ...$.
Finally, apply the explicit Runge-Kutta 4th order to the last two vector equations because you know $U$ at time increments of $\frac{h}{2}$.
This scheme will allow you to propagate the initial state of the body $\big(\vec{x}_G(0), \,\, U(0)\big)$ to the final one $\big(\vec{x}_G(t_1), \,\, U(t_1)\big)$.