Every win32 executable application has an Import Address Table (IAT) residing inside the program. The IAT is used as a lookup table when the application is calling a windows API function.

There are many windows operating systems, and they all have different addresses for their API functions, because of different structured DLL's. When an application starts, it has a list of all functions that aren't originally a part of the application. These functions, called imports, are located in the operating systems DLL's, but the application doesn't know where. So before starting, it has to build the IAT table by finding the address of the API it wants to call.