Function at 0x3000c250
Capabilities:
Get common file path
Link many functions at runtime
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x108
mov dword [ebp - 0x108], ecx
mov eax, dword [ebp - 0x108]
mov dword [eax], 0
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x10c], 0
mov edx, dword [ebp - 0x108]
mov dword [edx + 0x110], 0
mov eax, dword [ebp - 0x108]
mov dword [eax + 0x114], 0
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x118], 0
mov edx, dword [ebp - 0x108]
mov dword [edx + 0x11c], 0
mov eax, dword [ebp - 0x108]
mov dword [eax + 0x120], 0
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x124], 0
mov edx, dword [ebp - 0x108]
mov dword [edx + 0x128], 0
mov eax, dword [ebp - 0x108]
mov dword [eax + 0x12c], 0
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x130], 0
mov edx, dword [ebp - 0x108]
mov dword [edx + 0x134], 0
mov eax, dword [ebp - 0x108]
mov dword [eax + 0x138], 0
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x13c], 0
mov edx, dword [ebp - 0x108]
mov dword [edx + 0x140], 0
mov eax, dword [ebp - 0x108]
mov dword [eax + 0x144], 0
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x148], 0
mov edx, dword [ebp - 0x108]
mov dword [edx + 0x14c], 0
mov eax, dword [ebp - 0x108]
mov dword [eax + 0x150], 0
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 0x108]
add edx, 8
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [ebp - 0x104]
push eax
push 0
call fcn.3000cbb0
add esp, 8
lea ecx, [ebp - 0x104]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea edx, [ebp - 0x104]
push edx
mov eax, dword [0x30041888]
push eax
lea ecx, [ebp - 0x104]
push ecx
call fcn.30006ef3
add esp, 0xc
lea edx, [ebp - 0x104]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ecx, dword [ebp - 0x108]
mov dword [ecx], eax
mov edx, dword [ebp - 0x108]
cmp dword [edx], 0
jne 0x3000c41e
push 0
mov eax, dword [0x30041888]
push eax
push 0x11
call fcn.30006a18
add esp, 0xc
jmp 0x3000c65e
push str.AddSpoolFile
mov ecx, dword [ebp - 0x108]
mov edx, dword [ecx]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x10c], eax
push str.CreatePageDialog
mov edx, dword [ebp - 0x108]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x110], eax
push str.DeletePageDialog
mov edx, dword [ebp - 0x108]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x114], eax
push str.DisplayDialog
mov edx, dword [ebp - 0x108]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x118], eax
push str.EnablePrinting
mov edx, dword [ebp - 0x108]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x11c], eax
push str.GetDeferredJobs
mov edx, dword [ebp - 0x108]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x120], eax
push str.IsPrinting
mov edx, dword [ebp - 0x108]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x124], eax
push str.MoveToTop
mov edx, dword [ebp - 0x108]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x128], eax
push str.Print
mov edx, dword [ebp - 0x108]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x12c], eax
push str.SaveSettings
mov edx, dword [ebp - 0x108]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x130], eax
push str.CreateStationery
mov edx, dword [ebp - 0x108]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x134], eax
push str.SetStationeryAttr
mov edx, dword [ebp - 0x108]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x138], eax
push str.GetStationeryAttr
mov edx, dword [ebp - 0x108]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x13c], eax
push str.OpenStationery
mov edx, dword [ebp - 0x108]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x140], eax
push str.DeleteStationery
mov edx, dword [ebp - 0x108]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x144], eax
push str.SetLayoutAttr
mov edx, dword [ebp - 0x108]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x148], eax
push str.GetLayoutAttr
mov edx, dword [ebp - 0x108]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x14c], eax
push str.SetPrintCallbacks
mov edx, dword [ebp - 0x108]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x150], eax
mov eax, dword [ebp - 0x108]
mov esp, ebp
pop ebp
ret