Function at 0x10158b80
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x1028c480
mov eax, dword fs:[0]
push eax
sub esp, 0x70
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1037c990]
xor eax, esp
push eax
lea eax, [esp + 0x84]
mov dword fs:[0], eax
mov ebx, dword [esp + 0x94]
mov edi, dword [ebx + 4]
lea ebp, [ebx + 0x30]
mov eax, ebp
call fcn.1015aec0
xor esi, esi
test edi, edi
jbe 0x10158c3e
push 0x10
call fcn.101d2e81
xor ecx, ecx
add esp, 4
cmp eax, ecx
je 0x10158be1
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
jmp 0x10158be3
xor eax, eax
cmp esi, dword [ebp + 4]
jae 0x10158c80
mov ecx, dword [ebp]
lea ebx, [esi*4]
add ecx, ebx
mov dword [ecx], eax
cmp esi, dword [ebp + 4]
jae 0x10158c95
mov eax, dword [ebp]
add eax, ebx
mov eax, dword [eax]
call fcn.1015af50
xor eax, eax
cmp esi, dword [ebp + 4]
jae 0x10158c95
mov ecx, dword [ebp]
add ecx, ebx
mov ecx, dword [ecx]
cmp eax, dword [ecx + 4]
jae 0x10158c95
mov ecx, dword [ecx]
add ecx, eax
cmp esi, eax
sete dl
inc eax
mov byte [ecx], dl
cmp eax, edi
jb 0x10158c11
inc esi
cmp esi, edi
jb 0x10158bc4
mov ebx, dword [esp + 0x94]
xor eax, eax
cmp dword [ebx + 4], eax
je 0x10158c5f
mov edx, dword [ebx + 8]
test edx, edx
jbe 0x10158c5d
mov esi, dword [ebx]
mov ecx, esi
cmp dword [ecx], 0
jne 0x10158cab
inc eax
add ecx, 4
cmp eax, edx
jb 0x10158c50
xor eax, eax
test eax, eax
je 0x10158e72
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x10158ebc
mov ebx, eax
test eax, eax
jne 0x10158cb0
xor ecx, ecx
jmp 0x10158ce6
push ecx
push 0x2c6
push str.c:dvsp4_build_sw_toolswin32msvc90VC_atlmfcinclude_atlcoll.h
push 0x80070057
call fcn.100048f0
push 0
push 0x2c6
push str.c:dvsp4_build_sw_toolswin32msvc90VC_atlmfcinclude_atlcoll.h
push 0x80070057
call fcn.100048f0
mov eax, dword [esi + eax*4]
jmp 0x10158c5f
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x10158ce6
mov edi, dword [esp + 0x94]
mov eax, dword [eax + 0xc]
mov esi, dword [edi + 8]
xor edx, edx
div esi
inc edx
lea esp, [esp]
cmp edx, esi
jae 0x10158ce6
mov eax, dword [edi]
cmp dword [eax + edx*4], 0
lea eax, [eax + edx*4]
je 0x10158ce1
mov ecx, dword [eax]
inc edx
test ecx, ecx
je 0x10158cd0
mov ebx, dword [ebx + 4]
mov ebp, dword [ebx + 4]
mov edx, dword [ebx + 0x64]
mov eax, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edx
test ebp, ebp
je 0x10158e63
xor eax, eax
test ebp, ebp
setne al
test eax, eax
je 0x10158ed2
mov eax, ebp
mov esi, dword [eax + 8]
mov edi, dword [esi + 0x64]
mov ebp, dword [ebp]
mov dword [esp + 0x2c], edi
call fcn.10158220
cmp dword [eax + 0x1c], 6
jl 0x10158e25
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x58], esp
push 0x1a
xor edi, edi
xor eax, eax
mov dword [ecx + 0x18], 7
mov dword [ecx + 0x14], edi
push str..NVPackagesOrderGraph.cpp
mov word [ecx + 4], ax
call fcn.10035ce0
mov dword [esp + 0xa8], edi
push 0xc3
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x74], esp
push 0x2f
xor edx, edx
mov dword [ecx + 0x18], 7
mov dword [ecx + 0x14], edi
push str.CNVPackagesOrderGraph::GenerateReachabilityGrid
mov word [ecx + 4], dx
call fcn.10035ce0
mov byte [esp + 0xc8], 1
lea eax, [esp + 0x53]
lea ecx, [esp + 0xac]
lea edx, [esp + 0x84]
mov dword [esp + 0xb0], eax
mov dword [esp + 0x88], ecx
mov dword [esp + 0x80], edx
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x6c]
lea edx, [esp + 0x54]
push 6
mov byte [esp + 0x57], 0
mov dword [esp + 0x88], str.Setting_connection_from
mov dword [esp + 0x80], ebx
mov dword [esp + 0x70], 0x102b914c
mov dword [esp + 0x74], eax
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x90], 0x102d7ad0
mov dword [esp + 0x94], edx
call fcn.10158220
push eax
mov dword [esp + 0xd0], 0xffffffff
lea edi, [esp + 0x94]
call fcn.10002b50
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x28]
add eax, 0x30
cmp ecx, dword [eax + 4]
jae 0x10158c95
mov eax, dword [eax]
lea eax, [eax + ecx*4]
mov eax, dword [eax]
cmp edi, dword [eax + 4]
jae 0x10158c95
mov eax, dword [eax]
add eax, edi
mov byte [eax], 1
test ebp, ebp
jne 0x10158d05
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
test ecx, ecx
jne 0x10158c67
mov ebx, dword [esp + 0x94]
xor eax, eax
cmp dword [ebx + 4], eax
je 0x10158e93
mov edx, dword [ebx + 8]
test edx, edx
jbe 0x10158e91
mov ebx, dword [ebx]
mov ecx, ebx
cmp dword [ecx], 0
jne 0x10158ee8
inc eax
add ecx, 4
cmp eax, edx
jb 0x10158e84
xor eax, eax
mov edi, eax
test eax, eax
je 0x101591d5
lea ecx, [ecx]
mov ecx, dword [esp + 0x94]
xor eax, eax
test edi, edi
setne al
test eax, eax
je 0x10158ebc
mov ebp, edi
test edi, edi
jne 0x10158eed
xor esi, esi
jmp 0x10158f17
push 0
push 0xb49
push str.c:dvsp4_build_sw_toolswin32msvc90VC_atlmfcinclude_atlcoll.h
push 0x80004005
call fcn.100048f0
push 0
push 0x514
push str.c:dvsp4_build_sw_toolswin32msvc90VC_atlmfcinclude_atlcoll.h
push 0x80004005
call fcn.100048f0
mov eax, dword [ebx + eax*4]
jmp 0x10158e93
mov esi, dword [edi + 8]
test esi, esi
jne 0x10158f17
mov edi, dword [edi + 0xc]
mov ebx, dword [ecx + 8]
xor edx, edx
mov eax, edi
div ebx
inc edx
cmp edx, ebx
jae 0x10158f17
mov eax, dword [ecx]
cmp dword [eax + edx*4], 0
lea eax, [eax + edx*4]
je 0x10158f12
mov esi, dword [eax]
inc edx
test esi, esi
je 0x10158f01
mov eax, dword [ebp + 4]
mov edx, dword [eax + 0x64]
mov edi, esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x24], edx
call fcn.10136df0
test eax, eax
je 0x101591cd
jmp 0x10158f44
mov eax, dword [esp + 0x30]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x10158ebc
mov esi, dword [esp + 0x94]
mov ebx, eax
test eax, eax
jne 0x10158f64
xor ecx, ecx
jmp 0x10158f8c
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x10158f8c
mov eax, dword [eax + 0xc]
mov edi, dword [esi + 8]
xor edx, edx
div edi
inc edx
cmp edx, edi
jae 0x10158f8c
mov eax, dword [esi]
cmp dword [eax + edx*4], 0
lea eax, [eax + edx*4]
je 0x10158f87
mov ecx, dword [eax]
inc edx
test ecx, ecx
je 0x10158f76
mov eax, dword [ebx + 4]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0x64]
mov dword [esp + 0x18], ecx
mov ecx, esi
mov dword [esp + 0x38], eax
call fcn.10136df0
mov ebx, eax
test ebx, ebx
je 0x101591ba
xor eax, eax
test ebx, ebx
setne al
test eax, eax
je 0x10158ebc
mov edi, dword [esp + 0x94]
mov ebp, ebx
test ebx, ebx
jne 0x10158fd5
mov dword [esp + 0x20], ebx
jmp 0x10159001
mov ecx, dword [ebx + 8]
test ecx, ecx
jne 0x10158ffd
mov eax, dword [ebx + 0xc]
mov esi, dword [edi + 8]
xor edx, edx
div esi
inc edx
cmp edx, esi
jae 0x10158ffd
mov eax, dword [edi]
cmp dword [eax + edx*4], 0
lea eax, [eax + edx*4]
je 0x10158ff8
mov ecx, dword [eax]
inc edx
test ecx, ecx
je 0x10158fe7
mov dword [esp + 0x20], ecx
mov esi, dword [ebp + 4]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esi + 0x64]
cmp edx, dword [edi + 0x34]
lea ebp, [edi + 0x30]
jae 0x10158c95
mov eax, dword [ebp]
add edx, edx
add edx, edx
add eax, edx
mov eax, dword [eax]
cmp ecx, dword [eax + 4]
jae 0x10158c95
mov edi, dword [eax]
add edi, ecx
cmp byte [edi], 0
jne 0x101591af
mov eax, dword [esp + 0x18]
cmp eax, dword [ebp + 4]
jae 0x10158c95
mov eax, dword [ebp]
add eax, edx
mov eax, dword [eax]
mov edx, dword [esp + 0x24]
cmp edx, dword [eax + 4]
jae 0x10158c95
mov eax, dword [eax]
add eax, edx
cmp byte [eax], 0
je 0x101591af
cmp edx, dword [ebp + 4]
jae 0x10158c95
mov eax, dword [ebp]
lea eax, [eax + edx*4]
mov eax, dword [eax]
cmp ecx, dword [eax + 4]
jae 0x10158c95
mov eax, dword [eax]
add eax, ecx
cmp byte [eax], 0
je 0x101591af
mov byte [edi], 1
call fcn.10158220
cmp dword [eax + 0x1c], 6
jl 0x101591af
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x5c], esp
push 0x1a
mov edi, 7
xor ebp, ebp
xor edx, edx
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebp
push str..NVPackagesOrderGraph.cpp
mov word [ecx + 4], dx
call fcn.10035ce0
mov dword [esp + 0xa8], 2
push 0xde
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x84], esp
push 0x2f
xor eax, eax
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebp
push str.CNVPackagesOrderGraph::GenerateReachabilityGrid
mov word [ecx + 4], ax
call fcn.10035ce0
mov byte [esp + 0xc8], 3
mov eax, dword [esp + 0x74]
lea ecx, [esp + 0x53]
mov dword [esp + 0xb8], ecx
lea edx, [esp + 0xb4]
lea ecx, [esp + 0x8c]
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ecx
lea edx, [esp + 0x94]
lea eax, [esp + 0x9c]
lea ecx, [esp + 0xa4]
push 6
mov byte [esp + 0x57], 0
mov dword [esp + 0x90], str.Setting_connection_from
mov dword [esp + 0xa0], 0x102b914c
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], 0x102d7ad0
mov dword [esp + 0xb4], ecx
call fcn.10158220
push eax
mov dword [esp + 0xd0], 0xffffffff
lea edi, [esp + 0xb4]
call fcn.10002b50
cmp dword [esp + 0x20], 0
jne 0x10158fb3
cmp dword [esp + 0x28], 0
jne 0x10158f40
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x3c]
test esi, esi
jne 0x10158ea0
mov ecx, dword [esp + 0x84]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret 4