Thanks Ivan. I did some IRC with Vitaliy, and he came to the conclusion that the outport() code was probably the result of messed up code/stack, since the program doesn't use any hardware or locks. I will look into it tomorrow.
As one other possibility, and I'm not trying to suggest that it's necessarily the case: could the driver want to check if it's indeed running in ring 0 by trying to poke some "safe" port? I know it'd be weird, but since copy protection is insane in itself, who knows . . .
Cheers, Kuba