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

Disassembly:
push 0xffffffffffffffff
push 0x1029eb47
mov eax, dword fs:[0]
push eax
sub esp, 0xfc
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1037c990]
xor eax, esp
push eax
lea eax, [esp + 0x110]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x124]
xor ebx, ebx
cmp ebp, ebx
jne 0x1008560f
push ebx
push 0x248
push str..EngineCache.cpp
push 0x80070057
call fcn.100048f0
call fcn.10081500
mov esi, 5
cmp dword [eax + 0x1c], esi
jl 0x100856d6
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x5c], esp
push 0x11
mov edi, 7
xor eax, eax
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x102bbbc0
mov word [ecx + 4], ax
call fcn.10035ce0
mov dword [esp + 0x134], ebx
push 0x24a
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x80], esp
push 0x23
xor edx, edx
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.CEngineCache::WriteRelationshipData
mov word [ecx + 4], dx
call fcn.10035ce0
mov byte [esp + 0x154], 1
lea eax, [esp + 0x57]
lea ecx, [esp + 0xa0]
lea edx, [esp + 0x88]
push esi
mov byte [esp + 0x5b], bl
mov dword [esp + 0xa8], eax
mov dword [esp + 0x8c], str.Writing_relationship_data
mov dword [esp + 0x90], ecx
mov dword [esp + 0x74], vtable.Nvidia::Logging::ChainLoggable_class_Nvidia::Logging::Chain_char_const_____26___class_Nvidia::Logging::Chain_struct_Nvidia::Logging::NullType__struct_Nvidia::Logging::NullType___.0
mov dword [esp + 0x78], edx
call fcn.10081500
push eax
mov dword [esp + 0x15c], 0xffffffff
lea edi, [esp + 0x78]
call fcn.10002b50
mov dword [esp + 0x28], ebx
mov dword [esp + 0x118], esi
mov eax, dword [ebp]
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x28]
push ecx
push ebp
call edx
cmp eax, ebx
jge 0x10085704
push ebx
push 0x24c
push str..EngineCache.cpp
push eax
call fcn.100048f0
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0xe4]
push eax
call fcn.100bf190
mov byte [esp + 0x118], 7
lea ecx, [ecx]
mov ebp, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea ecx, [esp + 0xec]
push ecx
call ebp
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x48], ebx
cmp eax, ebx
je 0x1008575e
mov edx, dword [eax]
mov edx, dword [edx + 0xc]
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0xf0]
push ecx
push 1
push eax
call edx
cmp eax, ebx
jl 0x10085d2b
cmp dword [esp + 0x48], ebx
seta al
cmp al, bl
je 0x10085d91
lea eax, [esp + 0x1c]
push eax
lea esi, [esp + 0xe8]
call fcn.100900e0
mov byte [esp + 0x118], 8
cmp dword [esp + 0x1c], ebx
jne 0x100857a9
mov byte [esp + 0x118], 7
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x10085720
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x10085720
lea ecx, [esp + 0x6c]
call fcn.10002dd0
mov byte [esp + 0x118], 0xa
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x6c]
mov dword [esp + 0x84], ebx
call fcn.100041b0
lea eax, [esp + 0x74]
push eax
call ebp
cmp eax, ebx
jl 0x10085d2b
mov ecx, 8
mov word [esp + 0x74], cx
lea eax, [esp + 0x7c]
mov dword [esp + 0x84], 2
mov dword [esp + 0x7c], ebx
mov edx, dword [esi]
mov ecx, dword [edx + 0x20]
push eax
push esi
call ecx
cmp eax, ebx
jl 0x10085d38
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
mov edx, dword [edx + 0x30]
lea ecx, [esp + 0x44]
push ecx
push eax
call edx
cmp eax, ebx
jl 0x10085d49
test byte [esp + 0x44], 1
jne 0x1008593b
call fcn.10081500
cmp dword [eax + 0x1c], 6
jl 0x10085916
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push 0x11
mov esi, 7
xor eax, eax
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push 0x102bbbc0
mov word [ecx + 4], ax
call fcn.10035ce0
mov byte [esp + 0x134], 0xb
push 0x25b
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x88], esp
push 0x23
xor edx, edx
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push str.CEngineCache::WriteRelationshipData
mov word [ecx + 4], dx
call fcn.10035ce0
mov byte [esp + 0x154], 0xc
lea eax, [esp + 0x57]
lea ecx, [esp + 0xa8]
mov dword [esp + 0x140], eax
mov dword [esp + 0xc8], ecx
lea edx, [esp + 0x13c]
lea eax, [esp + 0xc8]
lea ecx, [esp + 0xd8]
push 6
mov byte [esp + 0x5b], bl
mov dword [esp + 0xd0], edx
mov dword [esp + 0xdc], str.not_selected_for_install
mov dword [esp + 0xe0], eax
mov dword [esp + 0xfc], 0x102bda58
mov dword [esp + 0x100], ecx
call fcn.10081500
push eax
mov byte [esp + 0x15c], 0xa
lea edi, [esp + 0x100]
call fcn.10002b50
mov byte [esp + 0x118], 0xd
lea edx, [esp + 0x74]
push edx
call ebp
mov byte [esp + 0x118], 8
lea ecx, [esp + 0x6c]
call fcn.10004720
jmp 0x1008578c
mov dword [esp + 0x20], ebx
mov byte [esp + 0x118], 0x11
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
lea edx, [esp + 0x20]
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
cmp eax, ebx
jl 0x10085d5a
cmp dword [esp + 0x20], ebx
jne 0x10085a7c
call fcn.10081500
cmp dword [eax + 0x1c], 4
jl 0x10085a4e
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x68], esp
push 0x11
mov esi, 7
xor edx, edx
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push 0x102bbbc0
mov word [ecx + 4], dx
call fcn.10035ce0
mov byte [esp + 0x134], 0x12
push 0x263
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x70], esp
push 0x23
xor eax, eax
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push str.CEngineCache::WriteRelationshipData
mov word [ecx + 4], ax
call fcn.10035ce0
mov byte [esp + 0x154], 0x13
lea ecx, [esp + 0x57]
lea edx, [esp + 0xa8]
mov dword [esp + 0x104], ecx
mov dword [esp + 0xf0], edx
lea eax, [esp + 0x100]
lea ecx, [esp + 0xf0]
lea edx, [esp + 0xe8]
push 4
mov byte [esp + 0x5b], bl
mov dword [esp + 0xf8], eax
mov dword [esp + 0xec], str.does_not_have_a_package_selected_for_install
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xe4], 0x102bda6c
mov dword [esp + 0xe8], edx
call fcn.10081500
push eax
mov byte [esp + 0x15c], 0x11
lea edi, [esp + 0xe8]
call fcn.10002b50
mov byte [esp + 0x118], 0xa
mov eax, dword [esp + 0x20]
cmp eax, ebx
je 0x10085a66
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x118], 8
lea ecx, [esp + 0x6c]
call fcn.10002d20
jmp 0x1008578c
mov dword [esp + 0x24], ebx
mov byte [esp + 0x118], 0x17
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x24]
push eax
push ecx
lea edx, [esp + 0x30]
push edx
call fcn.100850f0
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
cmp eax, ebx
jl 0x10085d6b
cmp dword [esp + 0x2c], ebx
jg 0x10085b6f
call fcn.10081500
cmp dword [eax + 0x1c], 6
jl 0x10085ce0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x68], esp
push 0x102bbbc0
call fcn.10035dd0
mov byte [esp + 0x134], 0x18
push 0x271
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x70], esp
push str.CEngineCache::WriteRelationshipData
call fcn.10035dd0
mov byte [esp + 0x154], 0x19
lea ecx, [esp + 0x57]
lea edx, [esp + 0x144]
lea eax, [esp + 0xd0]
push 6
mov byte [esp + 0x5b], bl
mov dword [esp + 0x14c], ecx
mov dword [esp + 0xd4], str.No_related_packages_found
mov dword [esp + 0xd8], edx
mov dword [esp + 0xa4], vtable.Nvidia::Logging::ChainLoggable_class_Nvidia::Logging::Chain_char_const_____26___class_Nvidia::Logging::Chain_struct_Nvidia::Logging::NullType__struct_Nvidia::Logging::NullType___.0
mov dword [esp + 0xa8], eax
call fcn.10081500
push eax
mov byte [esp + 0x15c], 0x17
lea edi, [esp + 0xa8]
call fcn.10002b50
jmp 0x10085ce0
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov byte [esp + 0x118], 0x1a
mov eax, dword [esp + 0x2c]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x5c]
call fcn.10002720
lea ecx, [esp + 0xcc]
push ecx
mov ecx, dword [esp + 0x28]
xor ebp, ebp
call fcn.100bef40
mov byte [esp + 0x118], 0x1b
mov edi, dword [esp + 0x54]
lea edx, [esp + 0xd4]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x30], ebx
cmp eax, ebx
je 0x10085bf2
mov ecx, dword [eax]
lea edx, [esp + 0x30]
push edx
lea edx, [esp + 0xd8]
push edx
push 1
push eax
mov eax, dword [ecx + 0xc]
call eax
cmp eax, ebx
jl 0x10085d2b
cmp dword [esp + 0x30], ebx
seta al
cmp al, bl
je 0x10085c91
lea ecx, [esp + 0x3c]
push ecx
lea esi, [esp + 0xd0]
call fcn.10090220
mov byte [esp + 0x118], 0x1c
cmp ebp, dword [esp + 0x58]
jae 0x10085d7c
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x40]
mov esi, edi
push edx
inc ebp
add edi, 4
call fcn.10082ef0
mov byte [esp + 0x118], 0x1d
push eax
mov ecx, esi
call fcn.100036b0
mov byte [esp + 0x118], 0x1c
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10085c70
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x118], 0x1b
mov eax, dword [esp + 0x3c]
cmp eax, ebx
je 0x10085bb6
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x10085bb6
mov byte [esp + 0x118], 0x1a
lea eax, [esp + 0xcc]
push eax
call fcn.10040980
mov edx, dword [esp + 0x120]
lea ecx, [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x24]
push edx
call fcn.10081910
mov byte [esp + 0x118], 0x17
mov esi, dword [esp + 0x54]
cmp esi, ebx
je 0x10085ce0
mov eax, dword [esp + 0x58]
push eax
push esi
call fcn.10003610
push esi
call fcn.1022f576
add esp, 0xc
mov byte [esp + 0x118], 0x11
lea ecx, [esp + 0x24]
call fcn.1003ca30
mov byte [esp + 0x118], 0xa
lea ecx, [esp + 0x20]
push ecx
call fcn.100409e0
mov byte [esp + 0x118], 8
lea ecx, [esp + 0x6c]
call fcn.10002d20
mov byte [esp + 0x118], 7
lea edx, [esp + 0x1c]
push edx
call fcn.100409e0
jmp 0x10085720
push ebx
push ebx
push 0x102b274a
push eax
call fcn.100048f0
push ebx
push 0x256
push str..EngineCache.cpp
push eax
call fcn.100048f0
push ebx
push 0x258
push str..EngineCache.cpp
push eax
call fcn.100048f0
push ebx
push 0x260
push str..EngineCache.cpp
push eax
call fcn.100048f0
push ebx
push 0x26e
push str..EngineCache.cpp
push eax
call fcn.100048f0
push ebx
push 0x2c6
push str.c:dvsp4_build_sw_toolswin32msvc90VC_atlmfcinclude_atlcoll.h
push 0x80070057
call fcn.100048f0
mov byte [esp + 0x118], 5
lea eax, [esp + 0xe4]
push eax
call fcn.10040980
mov dword [esp + 0x118], 0xffffffff
lea ecx, [esp + 0x28]
call fcn.1003ca30
mov ecx, dword [esp + 0x110]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x108
ret 8