Function at 0x42d9c0
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x240
mov dword [ebp - 0x230], edx
mov dword [ebp - 0x22c], eax
mov dword [ebp - 0x214], 0
mov dword [esp], str.winspool.drv
call dword [sym.imp.kernel32.dll_LoadLibraryA]
mov edi, dword [sym.imp.kernel32.dll_GetProcAddress]
sub esp, 4
mov ebx, eax
mov dword [esp + 4], str.GetDefaultPrinterA
mov dword [esp], eax
call edi
sub esp, 8
mov dword [ebp - 0x228], eax
mov dword [esp + 4], str.OpenPrinterA
mov dword [esp], ebx
call edi
sub esp, 8
mov esi, eax
mov dword [esp + 4], str.GetPrinterA
mov dword [esp], ebx
call edi
sub esp, 8
mov dword [ebp - 0x21c], eax
mov dword [esp + 4], str.GetPrinterDriverA
mov dword [esp], ebx
call edi
sub esp, 8
mov dword [ebp - 0x220], eax
mov dword [esp + 4], str.ClosePrinter
mov dword [esp], ebx
call edi
mov edx, dword [ebp - 0x228]
mov dword [ebp - 0x224], eax
sub esp, 8
test edx, edx
je 0x42dd10
test esi, esi
je 0x42dd10
mov edi, dword [ebp - 0x21c]
mov ecx, dword [ebp - 0x220]
test edi, edi
sete al
test ecx, ecx
sete cl
or al, cl
jne 0x42dd10
mov ecx, dword [ebp - 0x224]
test ecx, ecx
je 0x42dd10
lea ecx, [ebp - 0x110]
lea edi, [ebp - 0x218]
mov dword [ebp - 0x218], 0x104
mov dword [esp + 4], edi
mov dword [esp], ecx
call edx
sub esp, 8
test eax, eax
je 0x42dd10
lea eax, [ebp - 0x214]
lea edx, [ebp - 0x110]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], edx
call esi
sub esp, 0xc
test eax, eax
je 0x42dd10
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 2
mov eax, dword [ebp - 0x214]
mov dword [esp], eax
mov eax, dword [ebp - 0x21c]
call eax
mov edx, dword [ebp - 0x218]
mov esi, dword [sym.imp.msvcrt.dll_malloc]
sub esp, 0x14
mov dword [esp], edx
mov dword [ebp - 0x228], edx
mov dword [ebp - 0x234], esi
call esi
mov dword [esp + 0x10], edi
mov edx, dword [ebp - 0x228]
mov esi, eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 4], 2
mov eax, dword [ebp - 0x214]
mov dword [esp], eax
mov eax, dword [ebp - 0x21c]
call eax
sub esp, 0x14
test eax, eax
je 0x42ddc0
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 3
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x214]
mov dword [esp], eax
mov ecx, dword [ebp - 0x220]
call ecx
mov ecx, dword [ebp - 0x218]
sub esp, 0x18
mov dword [esp], ecx
mov eax, dword [ebp - 0x234]
mov dword [ebp - 0x21c], ecx
call eax
mov dword [esp + 0x14], edi
mov ecx, dword [ebp - 0x21c]
xor edi, edi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [ebp - 0x21c], eax
mov dword [esp + 8], 3
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x214]
mov dword [esp], eax
mov ecx, dword [ebp - 0x220]
call ecx
mov edx, dword [ebp - 0x21c]
sub esp, 0x18
test eax, eax
je 0x42dd16
movzx ecx, word [ebp - 0x22c]
mov eax, dword [esi + 0x1c]
mov word [eax + 0x34], cx
mov eax, dword [esi + 0x1c]
or dword [eax + 0x28], 0x10
mov eax, dword [esi + 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 8], eax
mov eax, dword [esi + 4]
mov dword [esp + 4], eax
mov eax, dword [edx + 0xc]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_CreateDCA]
sub esp, 0x10
mov edi, eax
call fcn.00492bc0
mov dword [eax], 0x49d404
mov dword [eax + 4], 0x55f
lea eax, [ebp - 0x210]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0x100
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x14
mov dword [esp], edi
call dword [sym.imp.gdi32.dll_ExtEscape]
mov edx, dword [ebp - 0x21c]
mov ecx, eax
sub esp, 0x18
mov eax, str.NOT
test ecx, ecx
jg 0x42dd70
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 4]
mov dword [esp + 0xc], eax
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x21c], edx
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], str.hdc__p_for_driver__s_printer__s_port__s_is__sPostScript_n
call fcn.0042b450
mov eax, dword [ebp - 0x230]
mov edx, dword [ebp - 0x21c]
test eax, eax
je 0x42dd16
mov eax, dword [esi + 0x1c]
mov dword [esp], edi
mov dword [esp + 4], eax
call dword [sym.imp.gdi32.dll_ResetDCA]
mov edx, dword [ebp - 0x21c]
sub esp, 8
jmp 0x42dd16
xor edi, edi
xor edx, edx
xor esi, esi
mov eax, dword [sym.imp.msvcrt.dll_free]
mov dword [esp], edx
mov dword [ebp - 0x21c], eax
call eax
mov dword [esp], esi
mov eax, dword [ebp - 0x21c]
call eax
mov eax, dword [ebp - 0x214]
test eax, eax
je 0x42dd49
mov dword [esp], eax
mov eax, dword [ebp - 0x224]
call eax
sub esp, 4
test ebx, ebx
je 0x42dd59
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_FreeLibrary]
sub esp, 4
test edi, edi
je 0x42dd90
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
cmp dword [ebp - 0x210], 0x74736f50
je 0x42ddd0
mov eax, str.NOT
jmp 0x42dcb0
call fcn.00492bc0
mov dword [eax], 0x49d404
mov dword [eax + 4], 0x569
mov dword [esp], str.could_not_create_a_DC_for_the_default_printer_n
call fcn.0042b440
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
xor edi, edi
xor edx, edx
jmp 0x42dd16
cmp dword [ebp - 0x20c], 0x69726353
jne 0x42dd7c
cmp dword [ebp - 0x209], 0x747069
mov eax, 0x49d40e
jne 0x42dd7c
jmp 0x42dcb0