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

Disassembly:
push 0xffffffffffffffff
push 0x1028fc26
mov eax, dword fs:[0]
push eax
sub esp, 0xb4
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1037c990]
xor eax, esp
push eax
lea eax, [esp + 0xc8]
mov dword fs:[0], eax
mov ebx, dword [esp + 0xd8]
mov eax, dword [ebx]
mov edx, dword [eax + 0x2c]
lea ecx, [esp + 0x18]
push ecx
xor ebp, ebp
push ebx
mov dword [esp + 0x20], ebp
call edx
cmp dword [esp + 0x18], 6
setne al
test al, al
jne 0x1012abb8
push ebp
push 0x124
push 0x102b4e68
push 0xe0e00008
call fcn.100048f0
mov ecx, dword [esp + 0xdc]
call fcn.100585c0
test eax, eax
setne al
test al, al
jne 0x1012abe2
push ebp
push 0x638
push 0x102d13f0
push 0x80070057
call fcn.100048f0
mov dword [esp + 0x20], ebp
mov dword [esp + 0xd0], 1
lea edi, [ebx + 4]
mov dword [esp + 0x58], edi
push edi
mov byte [esp + 0x60], 0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [esp + 0x5c], 1
mov byte [esp + 0xd0], 2
mov esi, dword [ebx + 0x8c]
mov eax, dword [esp + 0x20]
cmp eax, esi
je 0x1012ac41
cmp esi, ebp
je 0x1012ac2f
mov eax, dword [esi]
mov ecx, dword [eax + 4]
push esi
call ecx
mov eax, dword [esp + 0x20]
cmp eax, ebp
je 0x1012ac3b
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, esi
mov dword [esp + 0x20], eax
cmp eax, ebp
jne 0x1012ac8c
mov byte [esp + 0xd0], 1
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov byte [esp + 0x5c], 0
mov dword [esp + 0xd0], 0xffffffff
lea ecx, [esp + 0x20]
push ecx
call fcn.100409e0
xor al, al
mov ecx, dword [esp + 0xc8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc0
ret 8
lea esi, [ebx + 0x198]
call fcn.100587f0
test al, al
je 0x1012acc1
mov byte [esp + 0xd0], 1
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov byte [esp + 0x5c], 0
mov dword [esp + 0xd0], 0xffffffff
lea edx, [esp + 0x20]
push edx
jmp 0x1012ac69
mov byte [esp + 0xd0], 1
mov ebp, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push edi
call ebp
fld dword [0x102e4340]
sub esp, 0xc
fstp dword [esp + 8]
lea esi, [esp + 0x80]
fld dword [0x102e4344]
mov byte [esp + 0x68], 0
fstp dword [esp + 4]
fld dword [0x102e4348]
fstp dword [esp]
call fcn.100a3b40
mov byte [esp + 0xd0], 3
jmp 0x1012ad10
mov esi, dword [esp + 0xd8]
lea ebx, [esi + 4]
mov dword [esp + 0x50], ebx
push ebx
mov byte [esp + 0x58], 0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [esp + 0x54], 1
mov byte [esp + 0xd0], 4
cmp dword [esi + 0x44], 0
je 0x1012aec9
xor esi, esi
mov dword [esp + 0x18], esi
mov byte [esp + 0xd0], 6
lea ecx, [esp + 0x2c]
call fcn.10002dd0
mov byte [esp + 0xd0], 7
mov edi, dword [esp + 0xd8]
lea eax, [esp + 0x24]
push eax
add edi, 0x3c
call fcn.10136a50
mov byte [esp + 0xd0], 8
mov edi, dword [eax]
test edi, edi
je 0x1012ad90
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
push edi
call edx
mov esi, edi
mov dword [esp + 0x18], esi
mov byte [esp + 0xd0], 7
mov eax, dword [esp + 0x24]
test eax, eax
je 0x1012ada8
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor edi, edi
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], edi
call fcn.100041b0
lea eax, [esp + 0x34]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp eax, edi
jl 0x1012b579
mov ecx, 8
mov word [esp + 0x34], cx
lea eax, [esp + 0x3c]
mov dword [esp + 0x44], 2
mov dword [esp + 0x3c], edi
mov edx, dword [esi]
mov ecx, dword [edx + 0x1c]
push eax
push esi
call ecx
cmp eax, edi
jl 0x1012b586
mov eax, dword [esp + 0x44]
cmp eax, 3
ja case.default.0x1012ae02
jmp dword [eax*4 + 0x1012b618]
xor eax, eax
jmp 0x1012ae2e
mov edx, dword [esp + 0x2c]
mov eax, dword [edx - 0xc]
jmp 0x1012ae2e
lea ecx, [esp + 0x2c]
call fcn.10003a50
cmp eax, edi
jne 0x1012ae27
xor eax, eax
jmp 0x1012ae2e
push eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
cmp eax, edi
sete al
test al, al
jne 0x1012b597
lea ecx, [esp + 0x2c]
call fcn.10003840
mov eax, dword [eax]
lea ecx, [esp + 0x6c]
push ecx
push eax
lea eax, [esp + 0x24]
lea edi, [esp + 0x6c]
lea ecx, [esp + 0x7c]
call fcn.10137d10
lea ecx, [esp + 0x2c]
test eax, eax
jne 0x1012b5b0
call fcn.10003840
mov eax, dword [eax]
lea edx, [esp + 0x18]
push edx
push eax
lea eax, [esp + 0x7c]
push eax
call fcn.10136e20
mov byte [esp + 0xd0], 0xc
lea ecx, [esp + 0x34]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov byte [esp + 0xd0], 6
lea ecx, [esp + 0x2c]
call fcn.10004720
mov byte [esp + 0xd0], 4
mov edx, dword [esi]
mov eax, dword [edx + 8]
push esi
call eax
mov byte [esp + 0xd0], 3
push ebx
call ebp
mov byte [esp + 0x54], 0
jmp 0x1012ad10
mov byte [esp + 0xd0], 3
push ebx
call ebp
mov eax, dword [esp + 0x78]
mov byte [esp + 0x54], 0
test eax, eax
je 0x1012b2a4
xor esi, esi
cmp eax, esi
je 0x1012af0e
mov edx, dword [esp + 0x7c]
xor eax, eax
cmp edx, esi
jbe 0x1012af0e
mov ecx, dword [esp + 0x74]
lea esp, [esp]
cmp dword [ecx + eax*4], esi
jne 0x1012b004
inc eax
cmp eax, edx
jb 0x1012af00
mov dword [esp + 0x24], esi
mov dword [esp + 0x18], esi
mov byte [esp + 0xd0], 0x10
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
xor ebp, ebp
jmp 0x1012af30
mov edx, dword [esp + 0x24]
mov edi, dword [edx + 4]
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x1012af61
cmp edi, ebp
je 0x1012af4f
mov eax, dword [edi]
mov ecx, dword [eax + 4]
push edi
call ecx
mov eax, dword [esp + 0x18]
cmp eax, ebp
je 0x1012af5b
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebp
mov byte [esp + 0xd0], 0x12
cmp eax, ebp
je 0x1012af82
mov ecx, dword [eax]
lea edx, [esp + 0x1c]
push edx
push 0x102b8104
push eax
mov eax, dword [ecx]
call eax
mov byte [esp + 0xd0], 0x13
cmp dword [esp + 0x1c], ebp
je 0x1012b20a
lea ecx, [esp + 0x2c]
call fcn.10002dd0
mov byte [esp + 0xd0], 0x14
mov edi, dword [esp + 0x1c]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], ebp
call fcn.100041b0
lea ecx, [esp + 0x34]
push ecx
call esi
cmp eax, ebp
jl 0x1012b34c
mov edx, 8
mov word [esp + 0x34], dx
lea ecx, [esp + 0x3c]
mov dword [esp + 0x44], 2
mov dword [esp + 0x3c], ebp
mov eax, dword [edi]
mov edx, dword [eax + 0x70]
push ecx
push edi
call edx
cmp eax, ebp
jl 0x1012b359
mov eax, dword [esp + 0x44]
cmp eax, 3
ja case.default.0x1012affd
jmp dword [eax*4 + 0x1012b628]
mov ecx, dword [ecx + eax*4]
mov dword [esp + 0x24], ecx
jmp 0x1012af12
xor eax, eax
jmp 0x1012b055
mov eax, dword [esp + 0x2c]
mov eax, dword [eax - 0xc]
jmp 0x1012b055
lea ecx, [esp + 0x2c]
call fcn.100039a0
movzx ecx, word [eax]
cmp cx, bp
je 0x1012b04a
cmp cx, 1
je 0x1012b04a
cmp cx, 8
sete cl
test cl, cl
je 0x1012b36a
mov eax, dword [eax + 8]
cmp eax, ebp
jne 0x1012b04e
xor eax, eax
jmp 0x1012b055
push eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
cmp eax, ebp
sete al
test al, al
jne 0x1012b219
push 0x102b7644
lea ecx, [esp + 0xa8]
call fcn.10056640
mov byte [esp + 0xd0], 0x15
push ebp
lea ecx, [esp + 0xa8]
push ecx
lea ecx, [esp + 0x34]
call fcn.101e8a40
mov bl, al
mov byte [esp + 0xd0], 0x16
lea edx, [esp + 0xac]
push edx
call esi
mov byte [esp + 0xd0], 0x14
mov eax, dword [esp + 0xa4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1012b0cc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x1012b186
lea ecx, [esp + 0x2c]
call fcn.10003840
cmp dword [esp + 0x44], 3
jne 0x1012b0fb
lea ecx, [esp + 0x34]
push ecx
mov dword [esp + 0x48], 1
call esi
cmp eax, ebp
jl 0x1012b34c
cmp dword [esp + 0x44], ebp
jne 0x1012b109
mov dword [esp + 0x44], 1
mov ebx, 1
push ebx
lea edx, [esp + 0x70]
push edx
lea ecx, [esp + 0x34]
call fcn.100035a0
mov edi, eax
mov byte [esp + 0xd0], 0x19
lea ecx, [esp + 0x2c]
call fcn.10003840
cmp dword [esp + 0x44], 3
jne 0x1012b14a
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x48], ebx
call esi
cmp eax, ebp
jl 0x1012b34c
cmp dword [esp + 0x44], ebp
jne 0x1012b154
mov dword [esp + 0x44], ebx
push edi
lea ecx, [esp + 0x30]
call fcn.100036b0
mov byte [esp + 0xd0], 0x14
mov eax, dword [esp + 0x6c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1012b186
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x2c]
call fcn.10002aa0
lea ecx, [esp + 0x64]
push ecx
push eax
lea eax, [esp + 0x68]
lea edi, [esp + 0x60]
lea ecx, [esp + 0x7c]
call fcn.10137d10
cmp eax, ebp
je 0x1012b239
mov dword [esp + 0x24], eax
mov byte [esp + 0xd0], 0x1b
lea edx, [esp + 0x34]
push edx
call esi
mov byte [esp + 0xd0], 0x13
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 0x1012b1e9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xd0], 0x10
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x1012af30
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x1012af30
mov byte [esp + 0xd0], 0x10
lea eax, [esp + 0x1c]
push eax
jmp 0x1012b257
mov byte [esp + 0xd0], 0x13
lea ecx, [esp + 0x2c]
call fcn.10002d20
mov byte [esp + 0xd0], 0x10
lea ecx, [esp + 0x1c]
push ecx
jmp 0x1012b257
mov byte [esp + 0xd0], 0x13
lea ecx, [esp + 0x2c]
call fcn.10002d20
mov byte [esp + 0xd0], 0x10
lea edx, [esp + 0x1c]
push edx
call fcn.1005b8c0
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0xd8]
push ebp
push eax
call fcn.1012aa30
mov esi, dword [esp + 0x24]
lea ecx, [esp + 0x74]
call fcn.10136f20
mov byte [esp + 0xd0], 3
lea ecx, [esp + 0x18]
push ecx
call fcn.100409e0
mov eax, dword [esp + 0x78]
cmp eax, ebp
jne 0x1012aee5
mov esi, dword [esp + 0xd8]
cmp byte [esi + 0x10e], 0
je 0x1012b429
xor ebx, ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], 0xa
mov byte [esp + 0xd0], 0x20
mov ebp, dword [esp + 0xd8]
lea eax, [ebp + 4]
mov dword [esp + 0x50], eax
push eax
mov byte [esp + 0x58], bl
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [esp + 0x54], 1
mov byte [esp + 0xd0], 0x21
lea edi, [ebp + 0x94]
mov ecx, edi
call fcn.10136df0
mov esi, eax
cmp esi, ebx
je 0x1012b3af
mov ebp, dword [esp + 0x30]
xor eax, eax
test esi, esi
setne al
test eax, eax
je 0x1012b3fe
mov eax, esi
mov ebx, esi
call fcn.10137ad0
mov esi, eax
lea eax, [ebx + 4]
push ebp
push eax
lea ecx, [esp + 0x34]
call fcn.10137ed0
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x1012b394
mov dword [ecx], eax
jmp 0x1012b398
push ebp
push ebp
push 0x102b274a
push eax
call fcn.100048f0
push ebp
push 0x683
push 0x102d13f0
push eax
call fcn.100048f0
push ebp
push 0xb7
push str.c:dvsp4_build_sw_relgpu_drvinstaller_coreincAutoString.h
push 0xe0e00000
call fcn.100048f0
push ebp
push 0x12b
push str.c:dvsp4_build_sw_relgpu_drvinstaller_coreincAutoString.h
push 0xe0e00000
call fcn.100048f0
mov dword [esp + 0x2c], eax
mov ebp, eax
mov dword [esp + 0x30], ebp
test esi, esi
jne 0x1012b318
mov ebp, dword [esp + 0xd8]
xor ebx, ebx
mov byte [esp + 0xd0], 0x20
lea ecx, [esp + 0x50]
call fcn.100541e0
mov edi, dword [esp + 0x2c]
cmp edi, ebx
je 0x1012b3eb
xor eax, eax
cmp edi, ebx
setne al
cmp eax, ebx
je 0x1012b414
mov edx, dword [esp + 0x20]
mov eax, edi
mov eax, dword [eax + 8]
mov edi, dword [edi]
push edx
push ebp
mov esi, eax
call fcn.10155d20
cmp edi, ebx
jne 0x1012b3c8
mov byte [esp + 0xd0], 3
lea ecx, [esp + 0x2c]
call fcn.10137df0
jmp 0x1012b430
push 0
push 0xb49
push str.c:dvsp4_build_sw_toolswin32msvc90VC_atlmfcinclude_atlcoll.h
push 0x80004005
call fcn.100048f0
push ebx
push 0x514
push str.c:dvsp4_build_sw_toolswin32msvc90VC_atlmfcinclude_atlcoll.h
push 0x80004005
call fcn.100048f0
mov ebp, dword [esp + 0xd8]
push 1
lea eax, [ebp + 0x1fc]
call fcn.100a4f60
push 1
lea eax, [ebp + 0x210]
call fcn.100a4f60
push 1
lea eax, [ebp + 0x224]
call fcn.100a4f60
mov ecx, dword [esp + 0xdc]
lea edi, [ebp + 0x2bc]
call fcn.10003a50
push eax
call fcn.10138e80
call fcn.100a4fb0
push 1
mov ecx, ebp
call fcn.1012b640
mov bl, al
test bl, bl
je 0x1012b54c
mov eax, dword [ebp + 0x230]
push 0x3e8
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x1012b54c
call fcn.10045b90
cmp dword [eax + 0x1c], 3
jl 0x1012b54c
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x74], esp
push str..NVInstaller.cpp
call fcn.10035dd0
mov byte [esp + 0xec], 0x22
push 0x6c9
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x9c], esp
push str.CNVInstaller::InternalPresent
call fcn.10035dd0
mov byte [esp + 0x10c], 0x23
lea eax, [esp + 0x67]
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x8c]
push 3
mov byte [esp + 0x6b], 0
mov dword [esp + 0xb0], eax
mov dword [esp + 0x90], str.Failed_to_wait_for_UI_to_turn_a_page
mov dword [esp + 0x94], ecx
mov dword [esp + 0xa4], vtable.Nvidia::Logging::ChainLoggable_class_Nvidia::Logging::Chain_char_const_____37___class_Nvidia::Logging::Chain_struct_Nvidia::Logging::NullType__struct_Nvidia::Logging::NullType___.0
mov dword [esp + 0xa8], edx
call fcn.10045b90
push eax
mov byte [esp + 0x114], 3
lea edi, [esp + 0xa8]
call fcn.10002b50
mov byte [esp + 0xd0], 1
lea ecx, [esp + 0x74]
call fcn.10136f80
mov dword [esp + 0xd0], 0xffffffff
lea eax, [esp + 0x20]
push eax
call fcn.100409e0
mov al, bl
jmp 0x1012ac70
push edi
push edi
push 0x102b274a
push eax
call fcn.100048f0
push edi
push 0x660
push 0x102d13f0
push eax
call fcn.100048f0
push str.Form_has_no_identifier
push 0x663
push 0x102d13f0
push 0xe0e00002
call fcn.100048f0
call fcn.10003840
push eax
lea ecx, [esp + 0x5c]
push str.Global_form
push ecx
call fcn.10002820
add esp, 0xc
mov byte [esp + 0xd0], 0xa
push str._has_duplicate_identifier
push eax
lea edx, [esp + 0x68]
push edx
call fcn.100029d0
add esp, 0xc
mov byte [esp + 0xd0], 0xb
mov eax, dword [eax]
push eax
push 0x668
push 0x102d13f0
push 0xe0e00002
call fcn.100048f0
push edi
push 0x12b
push str.c:dvsp4_build_sw_relgpu_drvinstaller_coreincAutoString.h
push 0xe0e00000
call fcn.100048f0
nop
or dword [esi - 0x51f2efee], ebp
adc dl, byte [eax]
push ss
scasb al, byte es:[edi]
adc dl, byte [eax]
or eax, 0x101012ae
mov al, 18
adc byte [eax + esi*4], dl
adc dl, byte [eax]
sbb eax, 0x141012b0
mov al, 18
adc ah, cl
int3