Function at 0x101bf470
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x102840ca
mov eax, dword fs:[0]
push eax
sub esp, 0x118
push ebx
push esi
push edi
mov eax, dword [0x1037c990]
xor eax, esp
push eax
lea eax, [esp + 0x128]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
push eax
lea ecx, [esp + 0xc8]
call fcn.10056640
xor edi, edi
mov dword [esp + 0x130], edi
lea ecx, [esp + 0xc4]
call fcn.10003840
cmp dword [esp + 0xdc], 3
lea ebx, [edi + 1]
jne 0x101bf4fa
lea ecx, [esp + 0xcc]
push ecx
mov dword [esp + 0xe0], ebx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp eax, edi
jge 0x101bf4fa
push edi
push edi
push 0x102b274a
push eax
call fcn.100048f0
cmp dword [esp + 0xdc], edi
jne 0x101bf50a
mov dword [esp + 0xdc], ebx
lea ecx, [esp + 0xc4]
call fcn.1005a750
mov ecx, eax
call fcn.1005a7a0
lea ecx, [esp + 0xc4]
call fcn.100585c0
test eax, eax
setne al
test al, al
jne 0x101bf544
push edi
push 0x7e
push str..RunDllInstallPackage.cpp
push 0x80070057
call fcn.100048f0
lea edx, [esp + 0xc4]
push edx
lea ecx, [esp + 0x90]
call fcn.100555b0
mov byte [esp + 0x130], 1
lea ecx, [esp + 0xe8]
push ecx
mov ecx, eax
call fcn.10055710
mov byte [esp + 0x130], 3
lea ecx, [esp + 0x8c]
call fcn.10056b10
lea ecx, [esp + 0xe8]
call fcn.101dc6d0
test al, al
je 0x101bf5a8
lea ecx, [esp + 0xe8]
call fcn.101dc650
shr eax, 4
not al
test al, 1
jne 0x101bf5bd
push edi
push 0x80
push str..RunDllInstallPackage.cpp
push 0x80070057
call fcn.100048f0
push str.SOFTWARENVIDIA_CorporationInstaller2
lea ecx, [esp + 0x90]
call fcn.10055ee0
mov esi, eax
mov byte [esp + 0x130], 4
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [esp + 0x40]
call fcn.10055ce0
mov byte [esp + 0x130], 5
push ebx
lea edx, [esp + 0x4c]
push edx
mov ecx, eax
call fcn.10055e70
mov byte [esp + 0x130], 6
push esi
push eax
lea ecx, [esp + 0xc0]
call fcn.10055f50
mov byte [esp + 0x130], 8
lea ecx, [esp + 0x48]
call fcn.100560b0
mov byte [esp + 0x130], 9
lea ecx, [esp + 0x3c]
call fcn.100560b0
mov byte [esp + 0x130], 0xa
lea ecx, [esp + 0x8c]
call fcn.100560b0
push str.Pending
lea ecx, [esp + 0x40]
call fcn.10055ee0
mov byte [esp + 0x130], 0xb
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0xbc]
push ecx
lea ecx, [esp + 0x70]
call fcn.10055f50
mov byte [esp + 0x130], 0xd
lea ecx, [esp + 0x3c]
call fcn.100560b0
lea ecx, [esp + 0x68]
call fcn.101e2510
test al, al
je 0x101c00b8
push str.Flags
lea ecx, [esp + 0x1c]
call fcn.100044a0
mov byte [esp + 0x130], 0xe
push edi
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x70]
call fcn.101e50d0
mov esi, eax
mov byte [esp + 0x130], 0xd
lea ecx, [esp + 0x18]
call fcn.10004720
and esi, 3
mov dword [esp + 0xb4], esi
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], 0xa
mov byte [esp + 0x130], 0xf
mov ecx, dword [esp + 0x74]
lea edx, [esp + 0x8c]
lea eax, [esp + 0x74]
mov dword [esp + 0x94], ecx
push edx
lea ecx, [esp + 0x6c]
mov dword [esp + 0x90], vtable.CAtlListBuilder_class_CRegPath__class_ATL::CElementTraits_class_CRegPath___class_ATL::CAtlList_class_CRegPath__class_ATL::CElementTraits_class_CRegPath___.0
mov dword [esp + 0x9c], eax
mov dword [esp + 0x94], edi
call fcn.101e5300
lea ecx, [esp + 0x54]
call fcn.100562f0
mov byte [esp + 0x130], 0x10
mov esi, dword [esp + 0x74]
cmp esi, edi
je 0x101bf873
lea ebx, [ebx]
xor eax, eax
test esi, esi
setne al
mov dword [esp + 0x28], esi
test eax, eax
je 0x101bf7fb
mov eax, esi
mov esi, dword [esi]
lea edi, [eax + 8]
lea eax, [esp + 0x2c]
push eax
mov ecx, edi
call fcn.101e7200
mov byte [esp + 0x130], 0x11
mov eax, dword [eax]
mov ecx, str.installer
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x101bf7bb
test dx, dx
je 0x101bf7b7
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x101bf7bb
add eax, 4
add ecx, 4
test dx, dx
jne 0x101bf795
xor eax, eax
jmp 0x101bf7c0
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete bl
mov byte [esp + 0x130], 0x10
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x101bf7ed
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
jne 0x101bf811
test esi, esi
jne 0x101bf760
jmp 0x101bf871
push 0
push 0x514
push str.c:dvsp4_build_sw_toolswin32msvc90VC_atlmfcinclude_atlcoll.h
push 0x80004005
call fcn.100048f0
mov eax, dword [edi]
test eax, eax
je 0x101bf839
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
cmp eax, 1
jg 0x101bf839
push 0
push 0x63
push str.c:dvsp4_build_sw_relgpu_drvinstaller_coreincRefCounted.h
push 0xe0e00000
call fcn.100048f0
mov eax, dword [edi]
mov ecx, dword [esp + 0x54]
cmp ecx, eax
je 0x101bf850
mov dword [esp + 0x54], eax
test ecx, ecx
je 0x101bf850
call fcn.10056280
lea ecx, [edi + 4]
push ecx
lea ecx, [esp + 0x5c]
call fcn.100036b0
mov edx, dword [edi + 8]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x74]
mov dword [esp + 0x5c], edx
call fcn.101c4730
xor edi, edi
cmp dword [esp + 0x7c], edi
jne 0x101bf889
push 1
lea ecx, [esp + 0x6c]
call fcn.101e7950
jmp 0x101c0096
lea eax, [esp + 0x14]
push eax
call fcn.100d5e10
mov byte [esp + 0x130], 0x13
lea ecx, [esp + 0x14]
push ecx
push 0x102d0714
call fcn.1011f850
cmp eax, edi
jge 0x101bf8bf
push edi
push 0xba
push str..RunDllInstallPackage.cpp
push eax
call fcn.100048f0
lea edx, [esp + 0x24]
push edx
call fcn.100d5e10
mov byte [esp + 0x130], 0x14
lea eax, [esp + 0x8c]
push eax
lea ecx, [esp + 0xec]
call fcn.10055810
mov bl, 0x15
mov byte [esp + 0x130], bl
mov edi, dword [esp + 0x14]
lea ecx, [esp + 0x8c]
push ecx
lea ecx, [esp + 0x108]
call fcn.10055870
mov byte [esp + 0x130], 0x16
mov esi, dword [edi]
lea edx, [esp + 0x24]
push edx
push ecx
mov ecx, eax
add esi, 0x84
call fcn.10003a50
add esp, 4
push eax
mov eax, dword [esi]
push edi
call eax
test eax, eax
jge 0x101bf942
push 0
push 0xbc
push str..RunDllInstallPackage.cpp
push eax
call fcn.100048f0
mov byte [esp + 0x130], bl
lea ecx, [esp + 0x104]
call fcn.10002d20
mov byte [esp + 0x130], 0x14
lea ecx, [esp + 0x8c]
call fcn.10002d20
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x88]
call eax
test eax, eax
jge 0x101bf993
push 0
push 0xbd
push str..RunDllInstallPackage.cpp
push eax
call fcn.100048f0
lea ecx, [esp + 0x20]
push ecx
call fcn.100d5e10
mov byte [esp + 0x130], 0x17
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
mov edx, dword [edx + 0x1c]
lea ecx, [esp + 0x20]
push ecx
push eax
call edx
test eax, eax
jge 0x101bf9cc
push 0
push 0xbf
push str..RunDllInstallPackage.cpp
push eax
call fcn.100048f0
cmp dword [esp + 0x54], 0
jne 0x101bf9dd
mov eax, dword [esp + 0x58]
cmp dword [eax - 0xc], 0
je 0x101bfa47
push str.Properties
lea ecx, [esp + 0x4c]
call fcn.10055ee0
mov byte [esp + 0x130], 0x18
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x58]
push edx
lea ecx, [esp + 0x44]
call fcn.10055f50
mov byte [esp + 0x130], 0x1a
lea ecx, [esp + 0x48]
call fcn.100560b0
lea ecx, [esp + 0x3c]
call fcn.101e2510
test al, al
je 0x101bfa36
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.1019fb80
add esp, 8
mov byte [esp + 0x130], 0x17
lea ecx, [esp + 0x3c]
call fcn.100560b0
mov eax, dword [esp + 0x74]
mov edi, eax
test eax, eax
je 0x101bfdf1
xor eax, eax
test edi, edi
setne al
test eax, eax
je 0x101bf7fb
mov eax, edi
mov edi, dword [edi]
lea esi, [eax + 8]
lea edx, [esp + 0x2c]
push edx
mov ecx, esi
mov dword [esp + 0xb4], edi
call fcn.101e7200
mov byte [esp + 0x130], 0x1b
push str.PackageConfig
lea ecx, [esp + 0x64]
call fcn.100044a0
mov byte [esp + 0x130], 0x1c
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0xb0]
push ecx
mov ecx, esi
call fcn.101e5020
mov byte [esp + 0x130], 0x1d
push eax
lea ecx, [esp + 0x90]
call fcn.100023b0
mov byte [esp + 0x130], 0x1f
lea ecx, [esp + 0xac]
call fcn.10004720
mov byte [esp + 0x130], 0x20
lea ecx, [esp + 0x60]
call fcn.10004720
mov eax, dword [esp + 0xa4]
cmp eax, 3
ja case.default.0x101bfafa
jmp dword [eax*4 + 0x101c0120]
xor eax, eax
jmp 0x101bfb28
mov edx, dword [esp + 0x8c]
mov eax, dword [edx - 0xc]
jmp 0x101bfb28
lea ecx, [esp + 0x8c]
call fcn.10003a50
test eax, eax
je 0x101bfb28
push eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
sete al
test al, al
je 0x101bfb5b
mov byte [esp + 0x130], 0x1b
lea ecx, [esp + 0x8c]
call fcn.10002d20
mov byte [esp + 0x130], 0x17
lea ecx, [esp + 0x2c]
call fcn.10004720
jmp 0x101bfde9
xor ebx, ebx
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x130], 0x22
mov edi, dword [esp + 0x14]
cmp dword [esp + 0xa4], ebx
je 0x101bfba4
lea ecx, [esp + 0x8c]
call fcn.100039a0
movzx ecx, word [eax]
cmp cx, bx
je 0x101bfba4
cmp cx, 1
je 0x101bfba4
cmp cx, 8
sete cl
test cl, cl
je 0x101bfe24
mov eax, dword [eax + 8]
jmp 0x101bfba6
xor eax, eax
mov ecx, dword [edi]
lea edx, [esp + 0x1c]
push edx
push eax
mov eax, dword [ecx + 0x4c]
push edi
call eax
cmp eax, ebx
jl 0x101bfe39
cmp dword [esp + 0x1c], ebx
setne al
test al, al
je 0x101bfe4a
mov dword [esp + 0x30], ebx
mov byte [esp + 0x130], 0x24
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
lea edx, [esp + 0x30]
push edx
push eax
mov eax, dword [ecx + 0x1c]
call eax
cmp eax, ebx
jl 0x101bfe5f
cmp dword [esp + 0x30], ebx
setne al
test al, al
je 0x101bfe70
mov dword [esp + 0x38], ebx
mov byte [esp + 0x130], 0x26
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
lea edx, [esp + 0x38]
push edx
push eax
mov eax, dword [ecx + 0x48]
call eax
cmp eax, ebx
jl 0x101bfe85
cmp dword [esp + 0x38], ebx
setne al
test al, al
je 0x101bfe96
push str.Disposition
lea ecx, [esp + 0x2c]
call fcn.100044a0
mov byte [esp + 0x130], 0x27
push ebx
lea ecx, [esp + 0x2c]
push ecx
mov ecx, esi
call fcn.101e50d0
mov edi, eax
mov byte [esp + 0x130], 0x26
lea ecx, [esp + 0x28]
call fcn.10004720
mov edx, dword [esp + 0x30]
push edx
lea eax, [esp + 0x1c]
push eax
call fcn.100901b0
mov byte [esp + 0x130], 0x28
cmp dword [esp + 0x18], ebx
setne al
test al, al
je 0x101bfeab
mov dword [esp + 0x34], ebx
mov byte [esp + 0x130], 0x2a
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x34]
push edx
push eax
mov eax, dword [ecx + 0x4c]
call eax
cmp eax, ebx
jl 0x101bfec0
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x20]
push edi
push eax
call edx
cmp eax, ebx
jl 0x101bfed1
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x50]
push 0xffffffffffffffff
push eax
call edx
cmp eax, ebx
jl 0x101bfee2
push str.Properties
lea ecx, [esp + 0x4c]
call fcn.10055ee0
mov byte [esp + 0x130], 0x2b
lea eax, [esp + 0x48]
push eax
push esi
lea ecx, [esp + 0x44]
call fcn.10055f50
mov byte [esp + 0x130], 0x2d
lea ecx, [esp + 0x48]
call fcn.100560b0
lea ecx, [esp + 0x3c]
call fcn.101e2510
test al, al
je 0x101bfd34
mov ecx, dword [esp + 0x38]
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.1019fb80
add esp, 8
mov byte [esp + 0x130], 0x2a
lea ecx, [esp + 0x3c]
call fcn.100560b0
mov byte [esp + 0x130], 0x28
mov eax, dword [esp + 0x34]
cmp eax, ebx
je 0x101bfd5d
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x130], 0x26
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x101bfd75
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x130], 0x24
mov eax, dword [esp + 0x38]
cmp eax, ebx
je 0x101bfd8d
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x130], 0x22
mov eax, dword [esp + 0x30]
cmp eax, ebx
je 0x101bfda5
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x130], 0x20
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x101bfdbd
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x130], 0x1b
lea ecx, [esp + 0x8c]
call fcn.10002d20
mov byte [esp + 0x130], 0x17
lea ecx, [esp + 0x2c]
call fcn.10004720
mov edi, dword [esp + 0xb0]
test edi, edi
jne 0x101bfa55
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
or eax, 8
push 0
push eax
mov eax, dword [edx + 0x74]
push ecx
call eax
test eax, eax
jge 0x101bff09
push 0
push 0x101
push str..RunDllInstallPackage.cpp
push eax
call fcn.100048f0
push ebx
push 0xb7
push str.c:dvsp4_build_sw_relgpu_drvinstaller_coreincAutoString.h
push 0xe0e00000
call fcn.100048f0
push ebx
push 0xe0
push str..RunDllInstallPackage.cpp
push eax
call fcn.100048f0
push ebx
push 0xe1
push str..RunDllInstallPackage.cpp
push 0xe0e00000
call fcn.100048f0
push ebx
push 0xe3
push str..RunDllInstallPackage.cpp
push eax
call fcn.100048f0
push ebx
push 0xe4
push str..RunDllInstallPackage.cpp
push 0xe0e00000
call fcn.100048f0
push ebx
push 0xe6
push str..RunDllInstallPackage.cpp
push eax
call fcn.100048f0
push ebx
push 0xe7
push str..RunDllInstallPackage.cpp
push 0xe0e00000
call fcn.100048f0
push ebx
push 0xf1
push str..RunDllInstallPackage.cpp
push 0xe0e00000
call fcn.100048f0
push ebx
push 0xf3
push str..RunDllInstallPackage.cpp
push eax
call fcn.100048f0
push ebx
push 0xf4
push str..RunDllInstallPackage.cpp
push eax
call fcn.100048f0
push ebx
push 0xf5
push str..RunDllInstallPackage.cpp
push eax
call fcn.100048f0
push 0
push 0x12b
push str.c:dvsp4_build_sw_relgpu_drvinstaller_coreincAutoString.h
push 0xe0e00000
call fcn.100048f0
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x64]
mov dword [esp + 0x64], 0
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x34]
call eax
test eax, eax
jge 0x101bff38
push 0
push pe_nt_image_headers32
push str..RunDllInstallPackage.cpp
push eax
call fcn.100048f0
cmp word [esp + 0x64], 0
je 0x101c0060
mov ecx, dword [esp + 0x20]
push str.IgnoreReboot
push ecx
lea edx, [esp + 0x50]
push edx
call fcn.10058780
mov byte [esp + 0x130], 0x34
lea esi, [esp + 0x48]
call fcn.100587f0
test al, al
jne 0x101bff8f
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x64]
push eax
call edx
test eax, eax
jge 0x101bff8f
push 0
push 0x10f
push str..RunDllInstallPackage.cpp
push eax
call fcn.100048f0
mov byte [esp + 0x130], 0x17
lea ecx, [esp + 0x48]
call fcn.10058900
mov byte [esp + 0x130], 0x14
lea eax, [esp + 0x20]
push eax
call fcn.100409e0
mov byte [esp + 0x130], 0x13
lea ecx, [esp + 0x24]
push ecx
call fcn.100409e0
mov byte [esp + 0x130], 0x10
lea edx, [esp + 0x14]
push edx
call fcn.100409e0
mov byte [esp + 0x130], 0xf
lea ecx, [esp + 0x54]
call fcn.100560b0
mov byte [esp + 0x130], 0xd
lea ecx, [esp + 0x74]
call fcn.100db3c0
mov byte [esp + 0x130], 0xa
lea ecx, [esp + 0x68]
call fcn.100560b0
mov byte [esp + 0x130], 3
lea ecx, [esp + 0xb8]
call fcn.100560b0
mov byte [esp + 0x130], 0
lea ecx, [esp + 0xe8]
call fcn.10056b10
mov dword [esp + 0x130], 0xffffffff
lea ecx, [esp + 0xc4]
call fcn.10002d20
mov al, 1
mov ecx, dword [esp + 0x128]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [esp + 0x130], 0x14
lea eax, [esp + 0x20]
push eax
call fcn.100409e0
mov byte [esp + 0x130], 0x13
lea ecx, [esp + 0x24]
push ecx
call fcn.100409e0
mov byte [esp + 0x130], 0x10
lea edx, [esp + 0x14]
push edx
call fcn.100409e0
mov byte [esp + 0x130], 0xf
lea ecx, [esp + 0x54]
call fcn.100560b0
mov byte [esp + 0x130], 0xd
lea ecx, [esp + 0x74]
call fcn.100db3c0
mov byte [esp + 0x130], 0xa
lea ecx, [esp + 0x68]
call fcn.100560b0
mov byte [esp + 0x130], 3
lea ecx, [esp + 0xb8]
call fcn.100560b0
mov byte [esp + 0x130], 0
lea ecx, [esp + 0xe8]
call fcn.10056b10
mov dword [esp + 0x130], 0xffffffff
lea ecx, [esp + 0xc4]
call fcn.10002d20
xor al, al
mov ecx, dword [esp + 0x128]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret