Function at 0x412bc0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4296ac
mov eax, dword fs:[0]
push eax
sub esp, 0x360
mov eax, dword [0x434568]
xor eax, ebp
mov dword [ebp - 0x14], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x36c], 0
mov dword [ebp - 0x12c], 0x114
lea eax, [ebp - 0x12c]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x11c], 1
jne 0x412d27
lea ecx, [ebp - 0x134]
call fcn.00401000
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x130]
push ecx
lea edx, [ebp - 0x10]
push edx
push 0
push 0
push 5
push 0
push 1
call sub.WINSPOOL.DRV_EnumPrintersW
test eax, eax
jne 0x412cea
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x412cea
mov dword [ebp - 0x138], 0
mov eax, dword [ebp - 0x10]
push eax
call fcn.004149bf
add esp, 4
mov dword [ebp - 0x35c], eax
mov ecx, dword [ebp - 0x35c]
mov dword [ebp - 0x138], ecx
cmp dword [ebp - 0x138], 0
je 0x412cea
lea edx, [ebp - 0x130]
push edx
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x138]
push edx
push 5
push 0
push 1
call sub.WINSPOOL.DRV_EnumPrintersW
test eax, eax
je 0x412ccf
cmp dword [ebp - 0x130], 0
jbe 0x412ccf
mov eax, dword [ebp - 0x138]
mov ecx, dword [eax]
push ecx
lea ecx, [ebp - 0x134]
call fcn.004015a0
mov edx, dword [ebp - 0x138]
mov dword [ebp - 0x360], edx
mov eax, dword [ebp - 0x360]
push eax
call fcn.00416224
add esp, 4
lea ecx, [ebp - 0x134]
push ecx
mov ecx, dword [ebp + 8]
call fcn.00401010
mov edx, dword [ebp - 0x36c]
or edx, 1
mov dword [ebp - 0x36c], edx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x134]
call fcn.00401220
mov eax, dword [ebp + 8]
jmp 0x412ee2
cmp dword [ebp - 0x11c], 2
jne 0x412ec3
cmp dword [ebp - 0x128], 5
jb 0x412e45
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x140], 0
lea ecx, [ebp - 0x13c]
call fcn.00401000
mov dword [ebp - 4], 1
lea eax, [ebp - 0x140]
push eax
mov ecx, dword [ebp - 0x144]
push ecx
call sub.WINSPOOL.DRV_Ordinal_203
test eax, eax
jne 0x412e0b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x412e0b
xor ecx, ecx
mov eax, dword [ebp - 0x140]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004149bf
add esp, 4
mov dword [ebp - 0x364], eax
mov eax, dword [ebp - 0x364]
mov dword [ebp - 0x144], eax
cmp dword [ebp - 0x144], 0
je 0x412e0b
lea ecx, [ebp - 0x140]
push ecx
mov edx, dword [ebp - 0x144]
push edx
call sub.WINSPOOL.DRV_Ordinal_203
test eax, eax
je 0x412df0
mov eax, dword [ebp - 0x144]
push eax
lea ecx, [ebp - 0x13c]
call fcn.004015a0
mov ecx, dword [ebp - 0x144]
mov dword [ebp - 0x368], ecx
mov edx, dword [ebp - 0x368]
push edx
call fcn.00416224
add esp, 4
lea eax, [ebp - 0x13c]
push eax
mov ecx, dword [ebp + 8]
call fcn.00401010
mov ecx, dword [ebp - 0x36c]
or ecx, 1
mov dword [ebp - 0x36c], ecx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x13c]
call fcn.00401220
mov eax, dword [ebp + 8]
jmp 0x412ee2
push 0x104
lea edx, [ebp - 0x354]
push edx
push 0x42c228
push str.device
push str.windows
call dword [sym.imp.KERNEL32.dll_GetProfileStringW]
mov dword [ebp - 0x148], eax
cmp dword [ebp - 0x148], 0
jbe 0x412ec3
push 0x2c
lea eax, [ebp - 0x354]
push eax
call fcn.004131a0
add esp, 8
mov dword [ebp - 0x358], eax
cmp dword [ebp - 0x358], 0
je 0x412ea0
xor ecx, ecx
mov edx, dword [ebp - 0x358]
mov word [edx], cx
lea eax, [ebp - 0x354]
push eax
mov ecx, dword [ebp + 8]
call fcn.004010b0
mov ecx, dword [ebp - 0x36c]
or ecx, 1
mov dword [ebp - 0x36c], ecx
mov eax, dword [ebp + 8]
jmp 0x412ee2
push 0x42c24c
mov ecx, dword [ebp + 8]
call fcn.004010b0
mov edx, dword [ebp - 0x36c]
or edx, 1
mov dword [ebp - 0x36c], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004158f6
mov esp, ebp
pop ebp
ret