One big complex function is just that: complex.
Dividing your code into separate functions makes your code much easier to work with. First, when you look for the part of code that performs a particular task, it will be easier to find if it's in its own function.
Second, making changes to a function is much easier when it's simple--you don't need to understand a large amount of code to modify that function.
Also, you may find it easier to reuse that code in another project when it is divided up into smaller functions that can likely be used for more purposes than just the single large function could be.