Function at 0x4026b9
Capabilities:
Check os version

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x8cc
mov eax, dword [0x40b818]
and byte [ebp + 0x77], 0
push ebx
xor bl, bl
cmp byte [eax], bl
push esi
push edi
je 0x402736
movzx esi, bl
movsx eax, byte [esi + eax]
push eax
call fcn.00403530
test eax, eax
pop ecx
jne 0x402715
mov eax, dword [0x40b818]
movsx eax, byte [esi + eax]
push eax
call fcn.0040355e
test eax, eax
pop ecx
jne 0x402715
mov eax, dword [0x40b818]
mov cl, byte [esi + eax]
cmp cl, 0x20
je 0x40271a
cmp cl, 0x5f
je 0x40271a
cmp cl, 0x2d
je 0x40271a
jmp 0x40272b
mov eax, dword [0x40b818]
movzx ecx, byte [ebp + 0x77]
mov dl, byte [esi + eax]
inc byte [ebp + 0x77]
mov byte [ebp + ecx - 0x254], dl
inc bl
movzx ecx, bl
cmp byte [ecx + eax], 0
jne 0x4026d6
movzx eax, byte [ebp + 0x77]
and byte [ebp + eax - 0x254], 0
mov eax, dword [0x40b820]
and byte [ebp + 0x77], 0
xor bl, bl
cmp byte [eax], bl
je 0x4027ae
movzx esi, bl
movsx eax, byte [esi + eax]
push eax
call fcn.00403530
test eax, eax
pop ecx
jne 0x402790
mov eax, dword [0x40b820]
movsx eax, byte [esi + eax]
push eax
call fcn.0040355e
test eax, eax
pop ecx
jne 0x402790
mov eax, dword [0x40b820]
mov cl, byte [esi + eax]
cmp cl, 0x20
je 0x402795
cmp cl, 0x5f
je 0x402795
cmp cl, 0x2d
je 0x402795
jmp 0x4027a3
mov eax, dword [0x40b820]
movzx ecx, byte [ebp + 0x77]
mov dl, byte [esi + eax]
inc byte [ebp + 0x77]
mov byte [ebp + ecx + 0x40], dl
inc bl
movzx ecx, bl
cmp byte [ecx + eax], 0
jne 0x402751
movzx eax, byte [ebp + 0x77]
and byte [ebp + eax + 0x40], 0
xor ebx, ebx
inc ebx
cmp word [0x40b808], bx
lea eax, [ebp - 0x254]
mov edi, 0x40da00
mov esi, 0x40db88
push eax
jne 0x4027e5
push esi
push str._s_on__s
push edi
call fcn.00402f8e
add esp, 0x10
jmp 0x4027f8
lea eax, [ebp + 0x40]
push eax
push esi
push str._s_on__s___s_
push edi
call fcn.00402f8e
add esp, 0x14
push edi
lea eax, [ebp - 0x654]
push str.rundll32_printui.dll_PrintUIEntry__dl__q__n___s_
push eax
call fcn.00402f8e
lea eax, [ebp - 0x654]
push eax
call fcn.00402238
add esp, 0x10
test eax, eax
jne 0x402827
push 0x7d8
jmp 0x4029f2
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x40d9c0
push 0x40da80
push esi
push edi
lea eax, [ebp - 0x654]
push str.rundll32_printui.dll_PrintUIEntry__if__u__b___s___m___s___f___s___r__s_
push eax
call fcn.00402f8e
lea eax, [ebp - 0x654]
push eax
call fcn.00402238
add esp, 0x1c
test eax, eax
je 0x40281d
push 0x200
lea eax, [ebp - 0x854]
push eax
movzx eax, word [0x40b834]
add eax, 0xbc3
push eax
push dword [0x40b814]
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x24
push dword [0x40b82c]
lea eax, [ebp - 0x854]
push eax
push dword [0x40b830]
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
jne 0x4028d0
push edi
lea eax, [ebp - 0x654]
push str.rundll32_printui.dll_PrintUIEntry__y__n___s_
push eax
call fcn.00402f8e
lea eax, [ebp - 0x654]
push eax
call fcn.00402238
add esp, 0x10
test eax, eax
je 0x40281d
lea eax, [ebp - 0x54]
push eax
mov dword [ebp - 0x54], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x402a7f
cmp dword [ebp - 0x44], 2
jne 0x402a7f
cmp dword [ebp - 0x50], 6
jb 0x402a7f
push str.officejet
push esi
call fcn.00403330
test eax, eax
pop ecx
pop ecx
jne 0x4029c8
push str.Officejet
push esi
call fcn.00403330
test eax, eax
pop ecx
pop ecx
jne 0x4029c8
push str.OfficeJet
push esi
call fcn.00403330
test eax, eax
pop ecx
pop ecx
jne 0x4029c8
push 0x4093dc
push esi
call fcn.00403330
test eax, eax
pop ecx
pop ecx
jne 0x4029c8
push 0x4093d8
push esi
call fcn.00403330
test eax, eax
pop ecx
pop ecx
jne 0x4029c8
push str.photosmart
push esi
call fcn.00403330
test eax, eax
pop ecx
pop ecx
jne 0x4029c8
push str.Photosmart
push esi
call fcn.00403330
test eax, eax
pop ecx
pop ecx
jne 0x4029c8
push str.PhotoSmart
push esi
call fcn.00403330
test eax, eax
pop ecx
pop ecx
jne 0x4029c8
push str.deskjet
push esi
call fcn.00403330
test eax, eax
pop ecx
pop ecx
jne 0x4029c8
push str.Deskjet
push esi
call fcn.00403330
test eax, eax
pop ecx
pop ecx
jne 0x4029c8
push str.DeskJet
push esi
call fcn.00403330
test eax, eax
pop ecx
pop ecx
je 0x402a7f
or dword [ebp + 0x6c], 0xffffffff
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x6c]
push eax
xor ebx, ebx
push edi
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ebx
mov dword [ebp + 0x68], 0xf000c
call sub.WINSPOOL.DRV_OpenPrinterA
test eax, eax
jne 0x4029ff
push 0x7d6
call fcn.0040104c
pop ecx
xor eax, eax
jmp 0x402a81
lea eax, [ebp + 0x70]
push eax
push ebx
push ebx
push 2
push dword [ebp + 0x6c]
mov dword [ebp + 0x70], ebx
call sub.WINSPOOL.DRV_GetPrinterA
test eax, eax
jne 0x402a21
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x402a26
cmp dword [ebp + 0x70], ebx
jne 0x402a2a
xor edi, edi
jmp 0x402a73
push dword [ebp + 0x70]
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
cmp esi, ebx
je 0x402a26
lea eax, [ebp + 0x70]
push eax
push dword [ebp + 0x70]
push esi
push 2
push dword [ebp + 0x6c]
call sub.WINSPOOL.DRV_GetPrinterA
test eax, eax
jne 0x402a55
xor edi, edi
jmp 0x402a6c
or byte [esi + 0x35], 0x10
push ebx
push esi
push 2
push dword [ebp + 0x6c]
call sub.WINSPOOL.DRV_SetPrinterA
xor edi, edi
test eax, eax
je 0x402a6c
inc edi
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push dword [ebp + 0x6c]
call sub.WINSPOOL.DRV_ClosePrinter
mov eax, edi
jmp 0x402a81
mov eax, ebx
pop edi
pop esi
pop ebx
add ebp, 0x78
leave
ret