Well, the code starts at 0044AB83. First it differentiates between funpark and normal. It seems the spawn chance is 1/1000 for normal games, and 1/450 for dinos. The actual call to the randomizer is at 0044ABA3. If the test fails, it aborts.
Then once again it checks if funpark or normal, and if funpark, it creates an object for one of the 4 dinos. If not, it jumps to 0044ABF6, where it creates an object for the visceroid. Then it picks a random location inside the map bounds and spawns it.
The simple fix for all this would be to replace the first funpark check by your own check, and make it either abort, or jump on to selecting the value "1000" to check.
cmp byte [????????], 0 ; your variable for disabling visceroids; "not 0" would mean they are disabled.
jnz 0044AC80 ; abort
jmp 0044AB9C ; set eax to 1000 and continue random spawn check
This would end up being just 15 bytes:
80 3D ?? ?? ?? ?? 00 0F 85 F0 00 00 00 EB 0A
As I said, though, I dunno how you make your checkboxes and how you communicate that to the game. You'll have to save your config value somewhere and then insert the address in the code above.
(Ideally, the whole thing could be rewritten to actually choose to spawn either nothing, visceroids or dinosaurs, but I'm betting whoever ends up in the north will strongly disagree with me on that )
Note that according to this code, visceroids only appear if you are playing on Tech level 7. This rule does not apply to the dinosaurs.