Function at 0x4a8a20
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa4
push ebx
push esi
push edi
mov dword [ebp - 8], 0
mov dword [ebp - 4], 0
xor ebx, ebx
xor edi, edi
mov dword [ebp - 0x9c], 0x94
lea eax, [ebp - 0x9c]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov eax, dword [ebp + 8]
test eax, eax
je 0x4a8dd3
cmp dword [ebp - 0x8c], 1
jne 0x4a8b77
push 0
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp + 8]
push eax
call sub.WINSPOOL.DRV_OpenPrinterA
mov esi, eax
test esi, esi
je 0x4a8a89
mov eax, dword [ebp - 4]
test eax, eax
jne 0x4a8a90
xor eax, eax
jmp 0x4a8dd3
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea eax, [ebp - 8]
push eax
push 0
push 0
push 2
mov eax, dword [ebp - 4]
push eax
call sub.WINSPOOL.DRV_GetPrinterA
mov esi, eax
test esi, esi
jne 0x4a8ad2
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x4a8ac2
cmp dword [ebp - 8], 0
jne 0x4a8ad2
mov eax, dword [ebp - 4]
push eax
call sub.WINSPOOL.DRV_ClosePrinter
xor eax, eax
jmp 0x4a8dd3
mov eax, dword [ebp - 8]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
test ebx, ebx
jne 0x4a8af4
mov eax, dword [ebp - 4]
push eax
call sub.WINSPOOL.DRV_ClosePrinter
xor eax, eax
jmp 0x4a8dd3
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 8]
push eax
push ebx
push 2
mov eax, dword [ebp - 4]
push eax
call sub.WINSPOOL.DRV_GetPrinterA
mov esi, eax
test esi, esi
jne 0x4a8b25
mov eax, dword [ebp - 4]
push eax
call sub.WINSPOOL.DRV_ClosePrinter
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor eax, eax
jmp 0x4a8dd3
or dword [ebx + 0x34], 4
push 0
push ebx
push 2
mov eax, dword [ebp - 4]
push eax
call sub.WINSPOOL.DRV_SetPrinterA
mov esi, eax
test esi, esi
jne 0x4a8b54
mov eax, dword [ebp - 4]
push eax
call sub.WINSPOOL.DRV_ClosePrinter
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor eax, eax
jmp 0x4a8dd3
push 0
push 0x3e8
push 0
mov eax, str.windows
push eax
push 0
push 0x1a
push 0xffff
call dword [sym.imp.USER32.dll_SendMessageTimeoutA]
jmp 0x4a8dab
cmp dword [ebp - 0x8c], 2
jne 0x4a8dab
cmp dword [ebp - 0x98], 5
jb 0x4a8bfe
push str.winspool.drv
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0xa0], eax
test eax, eax
je 0x4a8dd3
push str.SetDefaultPrinterA
mov eax, dword [ebp - 0xa0]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0xa4], eax
test eax, eax
jne 0x4a8bd6
mov eax, dword [ebp - 0xa0]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
jmp 0x4a8dd3
mov eax, dword [ebp + 8]
push eax
call dword [ebp - 0xa4]
mov esi, eax
mov eax, dword [ebp - 0xa0]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
test esi, esi
jne 0x4a8d91
xor eax, eax
jmp 0x4a8dd3
push 0
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp + 8]
push eax
call sub.WINSPOOL.DRV_OpenPrinterA
mov esi, eax
test esi, esi
je 0x4a8c1a
mov eax, dword [ebp - 4]
test eax, eax
jne 0x4a8c21
xor eax, eax
jmp 0x4a8dd3
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea eax, [ebp - 8]
push eax
push 0
push 0
push 2
mov eax, dword [ebp - 4]
push eax
call sub.WINSPOOL.DRV_GetPrinterA
mov esi, eax
test esi, esi
jne 0x4a8c63
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x4a8c53
cmp dword [ebp - 8], 0
jne 0x4a8c63
mov eax, dword [ebp - 4]
push eax
call sub.WINSPOOL.DRV_ClosePrinter
xor eax, eax
jmp 0x4a8dd3
mov eax, dword [ebp - 8]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
test ebx, ebx
jne 0x4a8c85
mov eax, dword [ebp - 4]
push eax
call sub.WINSPOOL.DRV_ClosePrinter
xor eax, eax
jmp 0x4a8dd3
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 8]
push eax
push ebx
push 2
mov eax, dword [ebp - 4]
push eax
call sub.WINSPOOL.DRV_GetPrinterA
mov esi, eax
test esi, esi
je 0x4a8cad
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x4a8cad
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x4a8cc4
mov eax, dword [ebp - 4]
push eax
call sub.WINSPOOL.DRV_ClosePrinter
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor eax, eax
jmp 0x4a8dd3
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 0xa0], eax
mov edx, dword [ebx + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 0xa4], eax
mov edx, dword [ebx + 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edx, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0xa4]
add edx, ecx
lea eax, [eax + edx + 3]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov edi, eax
test edi, edi
jne 0x4a8d26
mov eax, dword [ebp - 4]
push eax
call sub.WINSPOOL.DRV_ClosePrinter
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor eax, eax
jmp 0x4a8dd3
mov eax, dword [ebp + 8]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x5ef812
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [ebx + 0x10]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0x5ef812
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [ebx + 0xc]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push edi
push str.device
push str.windows
call dword [sym.imp.KERNEL32.dll_WriteProfileStringA]
mov esi, eax
test esi, esi
jne 0x4a8d91
mov eax, dword [ebp - 4]
push eax
call sub.WINSPOOL.DRV_ClosePrinter
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push edi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor eax, eax
jmp 0x4a8dd3
push 0
push 0x3e8
push 0
push 0
push 0
push 0x1a
push 0xffff
call dword [sym.imp.USER32.dll_SendMessageTimeoutA]
mov eax, dword [ebp - 4]
test eax, eax
je 0x4a8db8
push eax
call sub.WINSPOOL.DRV_ClosePrinter
test ebx, ebx
je 0x4a8dc3
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
test edi, edi
je 0x4a8dce
push edi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret