Function at 0x42ec30
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x170
mov eax, dword [0x466cc0]
xor eax, ebp
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x168], ecx
push 0xf000c
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x168]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x168]
mov eax, dword [edx + 0x1c]
call eax
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x42ecd2
push 0x7fffffff
mov ecx, dword [ebp + 8]
push ecx
call fcn.0042e930
add esp, 8
mov dword [ebp - 0x144], eax
cmp dword [ebp + 0xc], 0
je 0x42eca7
mov edx, dword [ebp + 0x10]
cmp edx, dword [ebp - 0x144]
jbe 0x42eca7
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.004018f0
cmp dword [ebp + 0x14], 0
je 0x42ecbb
mov eax, dword [ebp - 0x144]
add eax, 1
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
push 0
mov ecx, dword [ebp - 0x168]
call fcn.00404dc0
mov eax, 1
jmp 0x42eff0
mov edx, dword [ebp - 4]
push edx
call sub.WINSPOOL.DRV_ClosePrinter
push 0x459134
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 0x140], eax
cmp dword [ebp - 0x140], 0
jne 0x42ed09
push 0x7e
mov ecx, dword [ebp - 0x168]
call fcn.00404dc0
xor eax, eax
jmp 0x42eff0
mov dword [ebp - 0x138], 0x114
lea eax, [ebp - 0x138]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
push 0x208
call fcn.004056cd
add esp, 4
mov dword [ebp - 0x148], eax
mov ecx, dword [ebp - 0x148]
mov dword [ebp - 0x10], ecx
push 0x104
mov edx, dword [ebp - 0x10]
push edx
mov eax, 5
cmp eax, dword [ebp - 0x134]
sbb ecx, ecx
and ecx, 0x1030
add ecx, 0x3a08
push ecx
mov edx, dword [ebp - 0x140]
push edx
call dword [sym.imp.USER32.dll_LoadStringW]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x104
jl 0x42edf6
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14c], eax
mov ecx, dword [ebp - 0x14c]
push ecx
call fcn.004056d8
add esp, 4
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
xor ecx, ecx
mov eax, dword [ebp - 0xc]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004056cd
add esp, 4
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0x150]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp - 0x10]
push edx
mov eax, 5
cmp eax, dword [ebp - 0x134]
sbb ecx, ecx
and ecx, 0x1030
add ecx, 0x3a08
push ecx
mov edx, dword [ebp - 0x140]
push edx
call dword [sym.imp.USER32.dll_LoadStringW]
mov dword [ebp - 0xc], eax
push 0x7fffffff
mov eax, dword [ebp + 8]
push eax
call fcn.0042e930
add esp, 8
mov ecx, dword [ebp - 0xc]
lea edx, [eax + ecx + 0x104]
mov dword [ebp - 0x13c], edx
xor ecx, ecx
mov eax, dword [ebp - 0x13c]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004056cd
add esp, 4
mov dword [ebp - 0x154], eax
mov eax, dword [ebp - 0x154]
mov dword [ebp - 8], eax
xor ecx, ecx
mov eax, dword [ebp - 0x13c]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004056cd
add esp, 4
mov dword [ebp - 0x158], eax
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x128], 2
jne 0x42ee9a
cmp dword [ebp - 0x134], 5
jne 0x42ee9a
cmp dword [ebp - 0x130], 0
jne 0x42ee9a
mov dword [ebp - 0x16c], 2
jmp 0x42eea4
mov dword [ebp - 0x16c], 1
mov ecx, dword [ebp - 0x16c]
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0x270f
jg 0x42ef3a
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x170], edx
mov eax, dword [ebp - 0x170]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x13c]
push edx
mov eax, dword [ebp - 0x14]
push eax
call fcn.00401a00
add esp, 0x10
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x13c]
push ecx
mov edx, dword [ebp - 8]
push edx
call fcn.00401a00
add esp, 0x10
push 0xf000c
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x168]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x168]
mov eax, dword [edx + 0x1c]
call eax
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x42ef2c
jmp 0x42ef3a
mov ecx, dword [ebp - 4]
push ecx
call sub.WINSPOOL.DRV_ClosePrinter
jmp 0x42eead
push 0x7fffffff
mov edx, dword [ebp - 8]
push edx
call fcn.0042e930
add esp, 8
mov dword [ebp - 0x13c], eax
cmp dword [ebp + 0xc], 0
je 0x42ef73
mov eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x13c]
jbe 0x42ef73
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
call fcn.004018f0
cmp dword [ebp + 0x14], 0
je 0x42ef87
mov ecx, dword [ebp - 0x13c]
add ecx, 1
mov edx, dword [ebp + 0x14]
mov dword [edx], ecx
mov eax, dword [ebp - 8]
mov dword [ebp - 0x15c], eax
mov ecx, dword [ebp - 0x15c]
push ecx
call fcn.004056d8
add esp, 4
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x160]
push eax
call fcn.004056d8
add esp, 4
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x164], ecx
mov edx, dword [ebp - 0x164]
push edx
call fcn.004056d8
add esp, 4
mov eax, dword [ebp - 4]
neg eax
sbb eax, eax
and eax, 0x70a
push eax
mov ecx, dword [ebp - 0x168]
call fcn.00404dc0
xor eax, eax
cmp dword [ebp - 4], 0
sete al
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.00414810
mov esp, ebp
pop ebp
ret 0x14