Function at 0x100e6740
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x10293715
mov eax, dword fs:[0]
push eax
sub esp, 0x10c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1037c990]
xor eax, esp
push eax
lea eax, [esp + 0x120]
mov dword fs:[0], eax
mov esi, dword [esp + 0x130]
xor ebx, ebx
cmp esi, ebx
jne 0x100e678f
push ebx
push 0x9d
push 0x102c8bc4
push 0x80070057
call fcn.100048f0
mov eax, dword [esp + 0x13c]
cmp eax, ebx
jne 0x100e67af
push ebx
push 0x9e
push 0x102c8bc4
push 0x80004003
call fcn.100048f0
mov dword [eax], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x128], 3
lea eax, [esp + 0x38]
push eax
call fcn.100e6350
call fcn.101f5f10
movzx ecx, ax
mov dword [esp + 0x60], ecx
call fcn.100dbe80
cmp dword [eax + 0x1c], 6
jl 0x100e68ec
mov dword [esp + 0x1c], str.selected
cmp byte [esp + 0x134], bl
jne 0x100e67fe
mov dword [esp + 0x1c], str.installed
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x78], esp
push 0x1b
mov esi, 7
xor edx, edx
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push str..NVDiskSpaceConstraint.cpp
mov word [ecx + 4], dx
call fcn.10035ce0
mov byte [esp + 0x144], 4
push 0xa7
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x94], esp
push 0x2e
xor eax, eax
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push str.CNVDiskSpaceConstraint::GetPackagePhasesSizeKB
mov word [ecx + 4], ax
call fcn.10035ce0
mov byte [esp + 0x164], 5
lea ecx, [esp + 0x53]
lea edx, [esp + 0xa8]
lea eax, [esp + 0x58]
mov dword [esp + 0xac], ecx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], eax
lea ecx, [esp + 0x84]
lea edx, [esp + 0x8c]
lea eax, [esp + 0xa0]
push 6
mov byte [esp + 0x57], bl
mov dword [esp + 0x88], str.Processing_size_information_for_the_files_actions_in
mov dword [esp + 0x94], ecx
mov dword [esp + 0xa4], 0x102c8cc8
mov dword [esp + 0xa8], edx
mov dword [esp + 0x80], 0x102caee8
mov dword [esp + 0x84], eax
call fcn.100dbe80
push eax
mov byte [esp + 0x16c], 3
lea edi, [esp + 0x84]
call fcn.10002b50
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x128], 8
mov dword [esp + 0x30], ebx
mov byte [esp + 0x128], 0xb
lea ebx, [esp + 0x30]
lea edi, [esp + 0x3c]
call fcn.10090040
xor ebp, ebp
cmp eax, ebp
jge 0x100e6928
push ebp
push 0xab
push 0x102c8bc4
push eax
call fcn.100048f0
lea ecx, [esp + 0xf4]
push ecx
mov ecx, dword [esp + 0x3c]
call fcn.100bf190
mov byte [esp + 0x128], 0xd
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea edx, [esp + 0xfc]
push edx
call edi
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x64], ebp
cmp eax, ebp
je 0x100e697f
mov ecx, dword [eax]
lea edx, [esp + 0x64]
push edx
lea edx, [esp + 0x100]
push edx
push 1
push eax
mov eax, dword [ecx + 0xc]
call eax
cmp eax, ebp
jl 0x100e7044
cmp dword [esp + 0x64], ebp
seta al
test al, al
je 0x100e70a6
lea ecx, [esp + 0x18]
push ecx
lea esi, [esp + 0xf8]
call fcn.100b98d0
mov byte [esp + 0x128], 0xe
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
mov edx, dword [edx + 0x1c]
lea ecx, [esp + 0x58]
push ecx
push eax
call edx
cmp eax, ebp
jl 0x100e7051
mov eax, dword [esp + 0x58]
cmp eax, 3
je 0x100e69d8
cmp eax, 1
jne 0x100e6a22
cmp byte [esp + 0x134], 0
je 0x100e6a31
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x5c]
push edx
push eax
mov eax, dword [ecx + 0x3c]
call eax
cmp eax, ebp
jl 0x100e7062
mov eax, dword [esp + 0x5c]
cmp eax, ebp
je 0x100e6a66
cmp eax, 1
je 0x100e6a66
cmp eax, 2
jne 0x100e6a52
cmp word [esp + 0x60], 9
je 0x100e6a66
mov byte [esp + 0x128], 0xd
lea ecx, [esp + 0x18]
push ecx
call fcn.100409e0
jmp 0x100e6941
cmp eax, 2
jne 0x100e6a31
cmp byte [esp + 0x134], 0
je 0x100e69d8
mov byte [esp + 0x128], 0xd
mov eax, dword [esp + 0x18]
cmp eax, ebp
je 0x100e6941
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x100e6941
cmp eax, 3
jne 0x100e702d
cmp word [esp + 0x60], bp
jne 0x100e702d
lea ecx, [esp + 0x74]
call fcn.10002dd0
mov byte [esp + 0x128], 0x10
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x74]
mov dword [esp + 0x8c], ebp
call fcn.100041b0
lea edx, [esp + 0x7c]
push edx
call edi
cmp eax, ebp
jl 0x100e7044
mov eax, 8
mov word [esp + 0x7c], ax
lea edx, [esp + 0x84]
mov dword [esp + 0x8c], 2
mov dword [esp + 0x84], ebp
mov ecx, dword [esi]
mov eax, dword [ecx + 0x24]
push edx
push esi
call eax
cmp eax, ebp
jl 0x100e7073
mov eax, dword [esp + 0x138]
cmp eax, 2
jne 0x100e6c5c
mov ecx, dword [esp + 0x18]
push ecx
lea edx, [esp + 0x38]
push edx
call fcn.100f3340
mov byte [esp + 0x128], 0x11
cmp dword [esp + 0x34], ebp
jne 0x100e6c3b
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x30]
push ecx
call fcn.100f33b0
mov byte [esp + 0x128], 0x12
cmp dword [esp + 0x2c], ebp
jne 0x100e6c29
call fcn.100dbe80
cmp dword [eax + 0x1c], 6
jl 0x100e6c00
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x6c], esp
push str..NVDiskSpaceConstraint.cpp
call fcn.10035dd0
mov byte [esp + 0x144], 0x13
push 0xd5
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x84], esp
push str.CNVDiskSpaceConstraint::GetPackagePhasesSizeKB
call fcn.10035dd0
mov byte [esp + 0x164], 0x14
lea edx, [esp + 0x53]
lea eax, [esp + 0x128]
lea ecx, [esp + 0xb0]
mov dword [esp + 0x12c], edx
mov dword [esp + 0x104], eax
mov dword [esp + 0xf0], ecx
lea edx, [esp + 0x100]
lea eax, [esp + 0xf0]
lea ecx, [esp + 0x108]
push 6
mov byte [esp + 0x57], 0
mov dword [esp + 0x104], str.Skipping_phase
mov dword [esp + 0xf8], edx
mov dword [esp + 0x10c], str.as_its_not_an_app_or_MSI_phase
mov dword [esp + 0x110], eax
mov dword [esp + method.Nvidia::Logging::Loggable.virtual_0], 0x102caefc
mov dword [esp + 0x120], ecx
call fcn.100dbe80
push eax
mov byte [esp + 0x16c], 0x12
lea edi, [esp + 0x120]
call fcn.10002b50
mov byte [esp + 0x128], 0x11
lea edx, [esp + 0x2c]
push edx
call fcn.100409e0
mov byte [esp + 0x128], 0x10
lea eax, [esp + 0x34]
push eax
call fcn.100409e0
jmp 0x100e701c
mov byte [esp + 0x128], 0x11
lea edx, [esp + 0x2c]
push edx
call fcn.100409e0
mov byte [esp + 0x128], 0x10
mov eax, dword [esp + 0x34]
cmp eax, ebp
je 0x100e6e54
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x100e6e54
cmp eax, 1
jne 0x100e6e54
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.100b99a0
mov byte [esp + 0x128], 0x1a
cmp dword [esp + 0x24], ebp
jne 0x100e6e42
mov edx, dword [esp + 0x18]
push edx
lea eax, [esp + 0x2c]
push eax
call fcn.100f3420
mov bl, 0x1b
mov byte [esp + 0x128], bl
cmp dword [esp + 0x28], ebp
je 0x100e6f19
mov dword [esp + 0x20], ebp
mov byte [esp + 0x128], 0x1d
mov eax, dword [esp + 0x130]
mov ecx, dword [eax]
lea edx, [esp + 0x20]
push edx
push eax
mov eax, dword [ecx + 0x20]
call eax
cmp eax, ebp
jl 0x100e7084
mov ecx, dword [esp + 0x20]
push ecx
call fcn.100e6020
test al, al
je 0x100e6e1f
call fcn.100dbe80
cmp dword [eax + 0x1c], 6
jl 0x100e6dc2
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x64], esp
push str..NVDiskSpaceConstraint.cpp
call fcn.10035dd0
mov byte [esp + 0x144], 0x1e
push 0xea
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x8c], esp
push str.CNVDiskSpaceConstraint::GetPackagePhasesSizeKB
call fcn.10035dd0
mov byte [esp + 0x164], 0x1f
lea edx, [esp + 0x53]
lea eax, [esp + 0x154]
lea ecx, [esp + 0xb0]
mov dword [esp + 0x158], edx
mov dword [esp + 0xec], eax
mov dword [esp + 0xd0], ecx
lea edx, [esp + 0xe8]
lea eax, [esp + 0xd0]
lea ecx, [esp + 0xf8]
push 6
mov byte [esp + 0x57], 0
mov dword [esp + 0xec], str.Skipping_device_phase
mov dword [esp + 0xd8], edx
mov dword [esp + 0xfc], str.because_installer_was_device_initiated
mov dword [esp + 0x100], eax
mov dword [esp + method.Nvidia::Logging::Loggable.virtual_0], 0x102caf10
mov dword [esp + 0x118], ecx
call fcn.100dbe80
push eax
mov byte [esp + 0x16c], 0x1d
lea edi, [esp + 0x118]
call fcn.10002b50
mov byte [esp + 0x128], bl
lea edx, [esp + 0x20]
push edx
call fcn.100409e0
mov byte [esp + 0x128], 0x1a
lea eax, [esp + 0x28]
push eax
call fcn.1005b8c0
mov byte [esp + 0x128], 0x10
lea ecx, [esp + 0x24]
push ecx
call fcn.1005b8c0
mov byte [esp + 0x128], 0xe
lea ecx, [esp + 0x74]
call fcn.10002d20
mov byte [esp + 0x128], 0xd
lea edx, [esp + 0x18]
push edx
call fcn.100409e0
jmp 0x100e6941
mov byte [esp + 0x128], bl
lea eax, [esp + 0x20]
push eax
call fcn.100409e0
mov byte [esp + 0x128], 0x1a
lea ecx, [esp + 0x28]
push ecx
call fcn.1005b8c0
mov byte [esp + 0x128], 0x10
lea edx, [esp + 0x24]
push edx
call fcn.100409e0
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x20]
push ecx
call fcn.100f3490
mov byte [esp + 0x128], 0x23
cmp dword [esp + 0x1c], ebp
je 0x100e6ec5
mov dword [esp + 0x40], ebp
mov byte [esp + 0x128], 0x25
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
mov edx, dword [edx + 0xc]
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x134]
push ecx
push eax
call edx
cmp eax, ebp
jl 0x100e7095
mov eax, dword [esp + 0x40]
push eax
lea ecx, [esp + 0x34]
push ecx
call fcn.100d5a80
mov byte [esp + 0x128], 0x23
mov eax, dword [esp + 0x40]
cmp eax, ebp
je 0x100e6ec5
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov byte [esp + 0x128], 0x10
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x100e6edd
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x128], 0x29
lea eax, [esp + 0x7c]
push eax
call edi
mov byte [esp + 0x128], 0xe
mov eax, dword [esp + 0x74]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100e6f14
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x100e6a31
call fcn.100dbe80
cmp dword [eax + 0x1c], 6
jl 0x100e6ff8
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x64], esp
push str..NVDiskSpaceConstraint.cpp
call fcn.10035dd0
mov byte [esp + 0x144], 0x20
push 0xf0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x8c], esp
push str.CNVDiskSpaceConstraint::GetPackagePhasesSizeKB
call fcn.10035dd0
mov byte [esp + 0x164], 0x21
lea edx, [esp + 0x53]
lea eax, [esp + 0x14c]
lea ecx, [esp + 0xb0]
mov dword [esp + 0x150], edx
mov dword [esp + 0x124], eax
mov dword [esp + 0xd8], ecx
lea edx, [esp + 0x120]
lea eax, [esp + 0xd8]
lea ecx, [esp + 0xe0]
push 6
mov byte [esp + 0x57], 0
mov dword [esp + 0x124], str.Skipping_phase
mov dword [esp + 0xe0], edx
mov dword [esp + 0xe4], str.as_its_not_a_standard_or_device_phase
mov dword [esp + 0xe8], eax
mov dword [esp + 0xac], 0x102caf24
mov dword [esp + 0xb0], ecx
call fcn.100dbe80
push eax
mov byte [esp + 0x16c], bl
lea edi, [esp + 0xb0]
call fcn.10002b50
mov byte [esp + 0x128], 0x1a
lea edx, [esp + 0x28]
push edx
call fcn.1005b8c0
mov byte [esp + 0x128], 0x10
lea eax, [esp + 0x24]
push eax
call fcn.1005b8c0
mov byte [esp + 0x128], 0xe
lea ecx, [esp + 0x74]
call fcn.10002d20
mov byte [esp + 0x128], 0xd
lea ecx, [esp + 0x18]
push ecx
call fcn.100409e0
jmp 0x100e6941
push ebp
push ebp
push 0x102b274a
push eax
call fcn.100048f0
push ebp
push 0xb7
push 0x102c8bc4
push eax
call fcn.100048f0
push ebp
push 0xc1
push 0x102c8bc4
push eax
call fcn.100048f0
push ebp
push 0xcb
push 0x102c8bc4
push eax
call fcn.100048f0
push ebp
push 0xe3
push 0x102c8bc4
push eax
call fcn.100048f0
push ebp
push 0xfa
push 0x102c8bc4
push eax
call fcn.100048f0
mov byte [esp + 0x128], 0xb
lea eax, [esp + 0xf4]
push eax
call fcn.10040980
mov eax, dword [esp + 0x3c]
mov esi, eax
cmp eax, ebp
je 0x100e70cd
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, dword [esp + 0x13c]
mov dword [eax], esi
mov byte [esp + 0x128], 8
lea ecx, [esp + 0x30]
call fcn.1003ca30
mov byte [esp + 0x128], 3
lea ecx, [esp + 0x3c]
push ecx
call fcn.100409e0
mov dword [esp + 0x128], 0xffffffff
lea ecx, [esp + 0x38]
call fcn.1003ca30
mov ecx, dword [esp + 0x120]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret 0x10