Function at 0x401a48
Capabilities:
Check os version

Disassembly:
mov edx, 0x5b
mov dword [0x42a080], ecx
mov eax, 0xec
or eax, 0x11
xor edx, dword [0x42db40]
sbb ecx, eax
shr eax, 1
or ecx, edx
shl edx, 6
rol eax, 9
adc edx, eax
ror eax, 1
adc ecx, 0x42
mov eax, 0xb8
or edx, eax
rcr edx, 9
cmp dword [0x426d40], edx
je 0x401aa2
xor ecx, edx
or ecx, eax
rol edx, 0xc
add eax, dword [0x429180]
add ecx, edx
adc ecx, edx
rol ecx, 5
sbb dword [0x425300], eax
cmp eax, 0xee
je 0x401ac5
adc edx, ecx
mov edx, 0xcf
sub edx, eax
mov eax, pe_nt_image_headers32
rcl eax, 9
ror eax, 3
add edx, ecx
sub edx, dword [0x429180]
or ecx, eax
add dword [0x434d40], eax
rol edx, 4
add edx, eax
mov ecx, 0x90
sub ecx, edx
call fcn.00401837
rol ecx, 0xb
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
call fcn.00401118
mov ecx, 0x6b
mov dword [0x422600], edx
mov eax, 0xb9
add dword [0x423b80], ecx
rcl edx, 8
add eax, edx
mov edx, 0x45
adc eax, dword [0x41ec00]
shl edx, 3
or eax, edx
cmp edx, 6
jne 0x401b32
sub edx, ecx
rcl eax, 9
mov edx, ecx
mov ecx, 0x56
adc dword [0x420600], eax
sub ecx, edx
mov eax, edx
call fcn.00401950
pushal
ror edx, 7
sub eax, edx
mov dword [0x4255c0], ebx
rol eax, 6
mov esi, 0x52
cmp esi, 0x52
jne 0x401b6a
add edx, eax
mov edi, 0x43
sbb esi, ebx
add eax, ecx
mov esi, 0x7e
add eax, esi
sbb ebx, edi
sbb dword [0x429dc0], esi
sub ebx, esi
ror edi, 7
add ecx, edx
or edi, ecx
or edx, edi
sbb eax, ebx
mov ebx, edx
mov edi, 8
call fcn.00401837
adc edx, dword [0x421940]
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
call fcn.00401118
mov dword [0x433540], edx
mov edi, ecx
mov ebx, 0x8b
sub ebx, esi
shl edi, 8
xor ebx, esi
mov esi, 0x2c
add ebx, edi
rol ebx, 9
mov dword [0x427780], ecx
mov esi, 0x72
mov eax, dword [0x426ac0]
xor ecx, edx
or dword [0x433e80], ebx
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
push 1
call dword [sym.imp.KERNEL32.DLL_SetErrorMode]
cmp eax, 0xf
jne 0x401bf8
mov dword [0x429e80], edx
adc dword [0x42df80], edi
ror edx, 0xb
mov eax, 0x4c
or ecx, edx
mov ecx, 0x43
or edi, 0x3c
mov esi, 0x8e
or edi, ecx
add esi, 0x1a
mov esi, 0xf5
rol ecx, 0xf
rol edx, 5
call fcn.00401118
xor edi, esi
push ebx
call dword [sym.imp.GDI32.DLL_GetROP2]
call fcn.00401837
xor ebx, ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleA]
cmp dword [0x431ec0], eax
je 0x401c4c
mov dword [0x4318c0], ebx
mov dword [0x423300], esi
mov eax, 0xe7
or ecx, edi
mov edx, 0xf1
cmp dword [0x42cfc0], edx
je 0x401c70
sbb dword [0x432e80], ebx
sub edi, ebx
ror ebx, 5
add edi, edx
shl ebx, 3
mov ecx, 0x66
add eax, edx
ror edx, 6
adc eax, esi
sbb dword [0x420dc0], ebx
xor eax, dword [0x4329c0]
shr edi, 0xe
mov ebx, 0x63
call fcn.00401118
sbb ebx, edi
push dword [0x42e380]
push 0xff936488
call dword [sym.imp.GDI32.DLL_SetLayout]
call dword [sym.imp.KERNEL32.DLL_GetVersion]
cmp eax, 0x12
je 0x401cc1
mov dword [0x42a040], ecx
mov eax, dword [0x428a40]
or eax, 0x14
mov edi, edx
mov edx, 0xbb
mov ebx, 0xac
ror edi, 0xb
mov eax, 0x40
sbb eax, dword [0x426100]
mov esi, 0x3d
rol edi, 0xc
or eax, ebx
mov eax, 0x15
cmp eax, 0x15
je 0x401cf7
or dword [0x4308c0], eax
add edx, ebx
mov edi, 0x2f
or ebx, esi
mov edx, 0x6f
call fcn.00401837
cmp dword [0x425d00], edx
je 0x401d0e
xor esi, ebx
rcl edi, 1
mov edx, 0xb6
xor ecx, 0xcb
or esi, edi
add ebx, 0xf1
adc edi, eax
adc ecx, ebx
xor dword [0x428340], edx
add edx, esi
mov esi, eax
ror edx, 5
rcr edi, 0xe
or edx, ebx
rcr edi, 9
shr edx, 5
xor eax, ecx
mov esi, edi
xor ecx, eax
rcl edi, 0xc
mov edx, 0xce
call fcn.00401118
add dword [0x421200], edx
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
call fcn.00401837
cmp dword [0x4332c0], eax
jne 0x401d7c
mov eax, 0x9d
adc eax, ebx
mov dword [0x421540], ecx
mov dword [0x41eec0], ebx
mov esi, 0xf6
cmp dword [0x42fe00], esi
jne 0x401da4
xor dword [0x427540], esi
mov dword [0x42cd80], edx
adc edi, ebx
mov edi, 0x34
xor eax, edx
adc dword [0x432f00], ebx
rol edx, 0xb
sbb edi, ecx
call fcn.00401118
sbb eax, edx
call dword [sym.imp.GDI32.DLL_GdiGetBatchLimit]
call fcn.00401118
call fcn.00401238
mov dword [0x42c040], esi
mov dword [0x42d5c0], ebx
mov dword [0x42ec00], ecx
mov edx, 0xe8
add ebx, edx
or eax, edi
cmp dword [0x4288c0], eax
jne 0x401df8
mov edi, 0x5d
sub dword [0x434080], esi
mov edi, 0xc
mov eax, dword [0x433340]
sub ebx, edi
shl esi, 3
sub esi, eax
rcl edi, 9
mov ebx, 0xe4
shl edi, 0xf
mov edi, 0xbf
mov esi, 0x65
xor dword [0x434780], edx
or edi, ebx
call fcn.00401118
add ecx, dword [0x4234c0]
push ebx
push dword [0x426200]
push 0xfb73de2e
call dword [sym.imp.GDI32.DLL_GetPixel]
call fcn.00401837
ret