Function at 0x46b602
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push 0x140
mov eax, 0x51d58a
call fcn.004d8abf
mov dword [ebp - 0x6c], edx
mov edi, ecx
mov dword [ebp - 0x3c], edi
xor ebx, ebx
inc ebx
mov dword [ebp - 4], ebx
mov eax, dword [0x57d3ec]
cmp byte [eax + 1], 0
je 0x46b65e
push 0x198b
push 0x80004004
push ecx
mov ecx, esp
push str.User_abort
call fcn.00406fea
mov ecx, edi
call fcn.00406620
mov ecx, dword [ebp + 0x10]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 0x18]
lea ecx, [ecx - 0x10]
jmp 0x46c628
lea ecx, [ebp - 0x34]
call fcn.0040687a
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 2
call fcn.004ab9ce
push ebx
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x34]
mov byte [ebp - 4], 3
push eax
mov edx, ebx
lea ecx, [ebp - 0xb8]
call fcn.0045b6d5
add esp, 0xc
mov byte [ebp - 4], 4
cmp dword [ebp - 0xb8], 0
jge 0x46b732
cmp dword [ebp - 0xb4], 0
mov eax, 0x1992
cmovne eax, dword [ebp - 0xb4]
push eax
push dword [ebp - 0xb8]
push ecx
mov esi, esp
mov dword [ebp - 0x50], esi
mov edi, dword [ebp - 0xb0]
lea ecx, [edi - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x5c]
mov dword [esi], eax
call fcn.00406620
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x5c]
push eax
mov byte [ebp - 4], 5
call fcn.0040121b
mov ecx, dword [ebp - 0x54]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [edi - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x1c]
call fcn.004ab992
mov ecx, dword [ebp - 0x34]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 0x10]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 0x18]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x3c]
jmp 0x46c62f
mov ecx, dword [ebp - 0xb0]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 2
call fcn.004ab992
mov esi, dword [ebp - 0x34]
mov edx, str.unknown:
mov ecx, esi
call fcn.0042981b
test al, al
je 0x46b778
mov esi, str.unknown
push esi
call fcn.004ddaa2
pop ecx
push eax
push esi
lea ecx, [ebp - 0x34]
call fcn.00406efb
mov esi, dword [ebp - 0x34]
mov eax, dword [0x57d3ec]
add eax, 0x54
mov byte [ebp - 0xd], 1
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 6
call fcn.0044f24f
imul edx, dword [ebp + 0xc], 0xa8
mov ecx, dword [eax + 0x1ac]
lea eax, [ebp - 0x34]
push eax
mov dword [ebp - 0x44], edx
add edx, 0x90
add ecx, edx
call fcn.004ae8cb
mov ecx, eax
call fcn.00405d6e
lea ecx, [ebp - 0xd]
mov byte [ebp - 4], 2
call fcn.0044f694
add esi, 0xfffffff0
xor ecx, ecx
mov dword [ebp - 0x28], esi
cmp dword [esi + 4], ecx
jne 0x46b84c
mov eax, dword [0x57d3ec]
add eax, 0x54
mov byte [ebp - 0xd], 1
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp + 0x14]
mov byte [ebp - 4], 7
cmp byte [eax + 8], 0
je 0x46b80a
call fcn.0044f24f
mov ebx, dword [ebp - 0x44]
mov eax, dword [eax + 0x1ac]
mov byte [eax + ebx + 0x54], 1
jmp 0x46b80d
mov ebx, dword [ebp - 0x44]
call fcn.0044f24f
push 0x19a4
push 1
push ecx
mov eax, dword [eax + 0x1ac]
mov ecx, esp
push str.Skipped__not_installed_
mov byte [eax + ebx + 0x56], 1
call fcn.00406fea
mov ecx, edi
call fcn.00406620
lea ecx, [ebp - 0xd]
call fcn.0044f694
mov ecx, esi
call fcn.00407189
jmp 0x46b648
mov eax, dword [ebx + 0xf0]
test eax, eax
je 0x46b895
cmp dword [ebx + 0x14], ecx
je 0x46b891
push 0x19a8
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x5c]
call fcn.00406620
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 8
push eax
mov ecx, edi
call fcn.0040121b
mov ecx, dword [ebp - 0x54]
lea ecx, [ecx - 0x10]
call fcn.00407189
jmp 0x46b840
test eax, eax
jne 0x46b8ba
cmp dword [ebx + 0x14], ecx
jne 0x46b8ba
push 0x19ac
push 0x80004005
push ecx
mov ecx, esp
push str.Uninstall_not_supported
call fcn.00406fea
mov ecx, edi
call fcn.00406620
jmp 0x46b840
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp + 0x14]
push ecx
mov byte [ebp - 4], 9
mov esi, esp
mov dword [ebp - 0x20], esi
mov ecx, dword [eax + 0x44]
mov bl, byte [eax + 8]
sub ecx, 0x10
call fcn.004070e7
push ebx
push dword [ebp + 0xc]
add eax, 0x10
lea edx, [ebp - 0x14]
lea ecx, [ebp - 0x110]
mov dword [esi], eax
call fcn.0046acbc
add esp, 0xc
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0x110], 0
je 0x46b932
lea eax, [ebp - 0x110]
mov ecx, edi
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x108]
lea ecx, [ecx - 0x10]
call fcn.00407189
cmp dword [ebp - 0x14], 0
je 0x46b92a
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x28]
jmp 0x46b842
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x108]
add ecx, 0xfffffff0
call fcn.00407189
push ecx
mov ecx, esp
push 0x54478c
call fcn.00406fea
mov ebx, dword [ebp + 8]
lea ecx, [ebp - 0x40]
lea edx, [ebx + 0xe4]
call fcn.004b3176
pop ecx
mov byte [ebp - 4], 0xb
push 0
push ecx
mov ecx, dword [ebx + 0xf8]
mov esi, esp
sub ecx, 0x10
mov dword [ebp - 0x70], esp
mov dword [ebp - 0x20], esi
call fcn.004070e7
add eax, 0x10
mov dword [esi], eax
push dword [ebp + 0x14]
mov byte [ebp - 4], 0xc
push ecx
mov ecx, dword [ebp - 0x40]
mov esi, esp
add ecx, 0xfffffff0
mov dword [ebp - 0x18], esp
mov dword [ebp - 0x20], esi
call fcn.004070e7
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0xd
mov eax, dword [ebp + 0x18]
push ebx
push ecx
add eax, 0xfffffff0
mov esi, esp
mov dword [ebp - 0x20], esi
mov ecx, eax
mov dword [ebp - 0x20], eax
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x11c]
mov dword [esi], eax
mov esi, dword [ebp - 0x6c]
mov edx, esi
mov byte [ebp - 4], 0xb
call fcn.0046a038
add esp, 0x18
mov byte [ebp - 4], 0xe
cmp dword [ebp - 0x11c], 0
je 0x46ba0d
lea eax, [ebp - 0x11c]
mov ecx, edi
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x114]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x40]
jmp 0x46c5fb
mov ecx, dword [ebp - 0x114]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx - 0x10]
call fcn.00407189
push dword [ebp + 0x14]
mov edx, esi
lea ecx, [ebp - 0xd0]
push ebx
call fcn.0046b173
pop ecx
pop ecx
lea eax, [ebp - 0xd0]
mov byte [ebp - 4], 0xf
push eax
lea ecx, [ebp - 0xc4]
call fcn.0040121b
mov byte [ebp - 4], 0x10
cmp dword [ebp - 0xc4], 0
jge 0x46bb03
cmp dword [ebp - 0xc0], 0
mov eax, 0x19c3
cmovne eax, dword [ebp - 0xc0]
push eax
push dword [ebp - 0xc4]
push ecx
mov esi, esp
mov dword [ebp - 0x18], esi
mov edi, dword [ebp - 0xbc]
lea ecx, [edi - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x5c]
mov dword [esi], eax
call fcn.00406620
mov esi, dword [ebp - 0x3c]
lea eax, [ebp - 0x5c]
push eax
mov ecx, esi
mov byte [ebp - 4], 0x11
call fcn.0040121b
mov ecx, dword [ebp - 0x54]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [edi - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0xc8]
lea ecx, [ecx - 0x10]
call fcn.00407189
cmp dword [ebp - 0x14], 0
je 0x46bae1
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x28]
call fcn.00407189
mov ecx, dword [ebp + 0x10]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x20]
call fcn.00407189
mov eax, esi
jmp 0x46c62f
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0xbc]
lea ecx, [ecx - 0x10]
call fcn.00407189
cmp dword [ebp - 0xd0], 0
je 0x46bb37
lea eax, [ebp - 0xd0]
mov ecx, edi
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0xc8]
jmp 0x46c5fb
mov ecx, dword [ebp - 0xc8]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x30]
call fcn.0040687a
lea ecx, [ebp - 0x64]
call fcn.0040687a
lea ecx, [ebp - 0x2c]
call fcn.0040687a
lea ecx, [ebp - 0x24]
call fcn.0040687a
mov byte [ebp - 4], 0x15
cmp dword [ebx + 0x14], 0
jbe 0x46bf6e
mov eax, dword [ebx + 0x10]
mov esi, dword [eax]
cmp esi, eax
je 0x46bdab
mov eax, dword [esi + 0x10]
cmp dword [eax - 0xc], 0
jne 0x46bba2
push str.auto_
call fcn.004ddaa2
pop ecx
push eax
push str.auto_
lea ecx, [ebp - 0x24]
call fcn.004d5d16
lea edi, [esi + 0x14]
mov edx, 0x53d648
mov ecx, edi
call fcn.004044d6
test al, al
jne 0x46bbd9
mov edx, 0x54a87c
mov ecx, edi
call fcn.004044d6
test al, al
jne 0x46bbd9
mov edx, 0x54a884
mov ecx, edi
call fcn.004044d6
test al, al
je 0x46bf21
push edi
mov edx, str.uninstall
lea ecx, [ebp - 0xec]
call fcn.004093b4
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0xe0]
mov edx, eax
mov dword [esp], 0x545658
call fcn.00409442
pop ecx
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x24]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.004d5d16
mov ecx, dword [ebp - 0xe0]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0xec]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [esi + 8]
add ecx, 0xfffffff0
cmp dword [ecx + 4], 0
jne 0x46bc59
mov edi, 0x5465c0
push edi
call fcn.004ddaa2
pop ecx
push eax
push edi
lea ecx, [ebp - 0x24]
call fcn.004d5d16
jmp 0x46bc99
push ecx
mov edi, esp
mov dword [ebp - 0x18], edi
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x104]
mov dword [edi], eax
call fcn.0046b485
pop ecx
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x24]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.004d5d16
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x104]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [esi + 0x10]
add ecx, 0xfffffff0
cmp dword [ecx + 4], 0
je 0x46bd09
push ecx
mov edi, esp
mov dword [ebp - 0x18], edi
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0xe4]
mov dword [edi], eax
call fcn.0046b485
push eax
mov edx, 0x548cb8
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0xe8]
call fcn.004093b4
pop ecx
pop ecx
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x24]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.004d5d16
mov ecx, dword [ebp - 0xe8]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0xe4]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [esi + 0xc]
add ecx, 0xfffffff0
cmp dword [ecx + 4], 0
jne 0x46bd2d
mov edi, str._nil
push edi
call fcn.004ddaa2
pop ecx
push eax
push edi
lea ecx, [ebp - 0x24]
call fcn.004d5d16
jmp 0x46bd85
push ecx
mov edi, esp
mov dword [ebp - 0x18], edi
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x4c]
mov dword [edi], eax
call fcn.0046b485
push eax
mov edx, 0x548cb8
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x74]
call fcn.004093b4
pop ecx
pop ecx
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x24]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.004d5d16
mov ecx, dword [ebp - 0x74]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x4c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov edi, 0x54a898
push edi
call fcn.004ddaa2
pop ecx
push eax
push edi
lea ecx, [ebp - 0x24]
call fcn.004d5d16
mov eax, dword [esi]
mov esi, eax
cmp eax, dword [ebx + 0x10]
jne 0x46bb80
mov edi, dword [ebp - 0x3c]
sub esp, 0x28
mov word [ebp - 0x68], 0
mov eax, esp
mov dword [ebp - 0x18], esp
mov dword [eax], 0x552908
mov dword [eax + 0x24], eax
push 0
push ecx
mov byte [ebp - 4], 0x1f
mov esi, esp
mov dword [ebp - 0x4c], esi
mov ecx, dword [ebx + 0xf8]
sub ecx, 0x10
mov dword [ebp - 0x70], esp
call fcn.004070e7
add eax, 0x10
mov dword [esi], eax
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 0x20
push eax
push dword [ebp + 0x14]
lea eax, [ebp - 0x64]
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x4c], esp
mov dword [ebp - 0x74], esi
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
mov ecx, eax
mov dword [ebp - 0x40], eax
call fcn.004070e7
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x21
push ebx
push dword [ebp - 0x6c]
push ecx
mov ecx, dword [ebp - 0x20]
mov esi, esp
mov dword [ebp - 0x74], esi
call fcn.004070e7
add eax, 0x10
lea edx, [ebp - 0x30]
mov dword [esi], eax
lea ecx, [ebp - 0x100]
mov byte [ebp - 4], 0x15
call fcn.00469ef9
add esp, 0x4c
lea ecx, [ebp - 0xf4]
mov byte [ebp - 4], 0x22
call fcn.004ab9ce
push 1
lea eax, [ebp - 0xf4]
mov byte [ebp - 4], 0x23
push eax
lea eax, [ebp - 0x2c]
mov edx, ebx
push eax
lea ecx, [ebp - 0xdc]
call fcn.0045b6d5
add esp, 0xc
mov byte [ebp - 4], 0x24
cmp dword [ebp - 0xdc], 0
jge 0x46bfa7
cmp dword [ebp - 0xd8], 0
mov eax, 0x19f9
cmovne eax, dword [ebp - 0xd8]
push eax
push dword [ebp - 0xdc]
push ecx
mov esi, esp
mov dword [ebp - 0x18], esi
mov edi, dword [ebp - 0xd4]
lea ecx, [edi - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x5c]
mov dword [esi], eax
call fcn.00406620
mov esi, dword [ebp - 0x3c]
lea eax, [ebp - 0x5c]
push eax
mov ecx, esi
mov byte [ebp - 4], 0x25
call fcn.0040121b
mov ecx, dword [ebp - 0x54]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [edi - 0x10]
call fcn.00407189
lea ecx, [ebp - 0xf4]
call fcn.004ab992
mov ecx, dword [ebp - 0xf8]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x40]
call fcn.00407189
mov ecx, dword [ebp - 0x2c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x64]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x30]
jmp 0x46baca
push 0x19d5
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x5c]
call fcn.00406620
mov edi, dword [ebp - 0x3c]
lea eax, [ebp - 0x5c]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x16
call fcn.0040121b
mov ecx, dword [ebp - 0x54]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x24]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x2c]
lea ecx, [ecx - 0x10]
jmp 0x46c5e8
push ecx
mov ecx, esp
push 0x54478c
call fcn.00406fea
lea edx, [ebx + 0xec]
lea ecx, [ebp - 0x4c]
call fcn.004b3176
pop ecx
push eax
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x1e
call fcn.00405d6e
mov ecx, dword [ebp - 0x4c]
add ecx, 0xfffffff0
call fcn.00407189
jmp 0x46bdab
mov ecx, dword [ebp - 0xd4]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0xf4]
call fcn.004ab992
mov eax, dword [0x57d3ec]
add eax, 0x54
mov byte [ebp - 0xd], 1
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 0x26
call fcn.0044f24f
mov ecx, dword [eax + 0x1ac]
lea eax, [ebp - 0x2c]
add ecx, 0x94
add ecx, dword [ebp - 0x44]
push eax
call fcn.004ae8cb
mov ecx, eax
call fcn.00405d6e
lea ecx, [ebp - 0xd]
mov byte [ebp - 4], 0x22
call fcn.0044f694
cmp dword [ebp - 0x100], 0
jge 0x46c034
lea eax, [ebp - 0x100]
mov ecx, edi
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0xf8]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x40]
jmp 0x46bf5e
mov ecx, dword [ebp - 0xf8]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x40]
call fcn.00407189
mov eax, dword [ebp + 0x14]
cmp byte [eax + 0x10], 0
je 0x46c16d
push ecx
mov dword [ebp - 0x18], esp
mov edi, esp
push ecx
mov esi, esp
mov dword [ebp - 0x70], esi
mov eax, dword [ebp - 0x64]
add eax, 0xfffffff0
mov ecx, eax
mov dword [ebp - 0x4c], eax
call fcn.004070e7
add eax, 0x10
mov ecx, edi
mov dword [esi], eax
call fcn.00429cff
mov byte [ebp - 4], 0x27
mov dword [ebp - 0x70], esi
mov edi, dword [ebp + 0x10]
lea ecx, [edi - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0xa4]
mov dword [esi], eax
mov byte [ebp - 4], 0x14
call fcn.0042a53e
pop ecx
pop ecx
mov byte [ebp - 4], 0x28
cmp dword [ebp - 0xa4], 0
jge 0x46c15f
cmp dword [ebp - 0xa0], 0
mov eax, 0x1a07
cmovne eax, dword [ebp - 0xa0]
push eax
push dword [ebp - 0xa4]
push ecx
mov esi, esp
mov dword [ebp - 0x18], esi
mov ecx, dword [ebp - 0x9c]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x5c]
mov dword [esi], eax
call fcn.00406620
mov esi, dword [ebp - 0x3c]
lea eax, [ebp - 0x5c]
push eax
mov ecx, esi
mov byte [ebp - 4], 0x29
call fcn.0040121b
mov ecx, dword [ebp - 0x54]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x9c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x2c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x4c]
call fcn.00407189
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx - 0x10]
call fcn.00407189
cmp dword [ebp - 0x14], 0
je 0x46c14f
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x28]
call fcn.00407189
lea ecx, [edi - 0x10]
jmp 0x46baef
mov ecx, dword [ebp - 0x9c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x60]
call fcn.0040687a
mov byte [ebp - 4], 0x2a
mov eax, dword [ebp - 0x30]
cmp dword [eax - 0xc], 0
je 0x46c1b0
lea eax, [ebp - 0x30]
mov edx, 0x54a8a0
push eax
lea ecx, [ebp - 0x7c]
call fcn.004093b4
pop ecx
push eax
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x2b
call fcn.00405d6e
mov byte [ebp - 4], 0x2a
mov ecx, dword [ebp - 0x7c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebx + 0x110]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x46c1dd
push eax
cmp eax, 0xffff
lea eax, [ebp - 0x60]
jbe 0x46c1cf
push str.__0x_08x
jmp 0x46c1d4
push str.___d
push eax
call fcn.00409fd2
add esp, 0xc
and dword [ebp - 0x88], 0
lea ecx, [ebp - 0x84]
mov esi, 0x80004005
mov dword [ebp - 0x8c], esi
call fcn.0040687a
mov byte [ebp - 4], 0x2c
xor eax, eax
mov edi, dword [ebp - 0x2c]
add edi, 0xfffffff0
mov dword [ebp - 0x7c], edi
cmp dword [edi + 4], eax
jne 0x46c24a
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], eax
call fcn.0040687a
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0x2d
push eax
lea ecx, [ebp - 0x8c]
call fcn.004032ed
mov byte [ebp - 4], 0x2c
mov ecx, dword [ebp - 0x90]
jmp 0x46c3de
lea edx, [ebp - 0x34]
lea ecx, [ebp - 0x2c]
call fcn.00405d14
test al, al
je 0x46c306
push 0x1a1b
push esi
push ecx
mov edi, esp
lea eax, [ebp - 0x60]
push eax
push str._unchanged
push ecx
mov ecx, dword [ebp - 0x28]
mov esi, esp
mov dword [ebp - 0x18], esi
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x78]
mov dword [esi], eax
call fcn.0046affd
push eax
mov edx, str.Failed___Installed_version
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x80]
call fcn.004093b4
pop ecx
pop ecx
mov edx, eax
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0x48]
call fcn.00409442
pop ecx
mov edx, eax
mov byte [ebp - 4], 0x30
mov ecx, edi
call fcn.0040a037
pop ecx
lea ecx, [ebp - 0x98]
call fcn.00406620
push eax
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 0x31
call fcn.004032ed
mov ecx, dword [ebp - 0x90]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x48]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x80]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x2c
mov ecx, dword [ebp - 0x78]
jmp 0x46c3de
push ecx
mov esi, esp
mov ecx, edi
mov dword [ebp - 0x18], esi
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x50]
mov dword [esi], eax
call fcn.0046affd
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 4], 0x32
mov edi, dword [eax]
mov dword [ebp - 0x18], esi
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x80]
mov dword [esi], eax
call fcn.0046affd
mov byte [ebp - 4], 0x33
lea ecx, [ebp - 0x78]
mov esi, dword [eax]
mov edx, str.Failed___Installed_version_changed_from__ws_to__ws
lea eax, [ebp - 0x60]
push eax
call fcn.004093b4
push edi
push esi
mov byte [ebp - 4], 0x34
push dword [eax]
lea eax, [ebp - 0x48]
push eax
call fcn.004011e0
add esp, 0x18
mov ecx, dword [ebp - 0x78]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x80]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x38
mov ecx, dword [ebp - 0x50]
add ecx, 0xfffffff0
call fcn.00407189
push 0x1a20
push 0x80004005
push ecx
mov esi, esp
mov dword [ebp - 0x18], esi
mov ecx, dword [ebp - 0x48]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x98]
mov dword [esi], eax
call fcn.00406620
push eax
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 0x39
call fcn.004032ed
mov ecx, dword [ebp - 0x90]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x2c
mov ecx, dword [ebp - 0x48]
lea ecx, [ecx - 0x10]
call fcn.00407189
cmp dword [ebp - 0x8c], 0
jl 0x46c5bb
lea eax, [ebp - 0x124]
mov ecx, ebx
push eax
call fcn.00438809
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 0x3a
call fcn.004acf13
lea edx, [ebp - 0xac]
mov byte [ebp - 4], 0x3b
lea ecx, [ebp - 0x14c]
call fcn.0044527e
mov byte [ebp - 4], 0x3c
mov ecx, dword [ebp - 0xac]
mov eax, dword [ecx]
mov dword [ebp - 0x6c], eax
cmp eax, ecx
je 0x46c593
mov ecx, dword [eax + 0x10]
sub ecx, 0x10
call fcn.004070e7
mov ebx, eax
lea esi, [ebx + 0x10]
mov dword [ebp - 0x44], esi
lea ecx, [ebp - 0x38]
call fcn.0040687a
push ecx
mov byte [ebp - 4], 0x3e
lea eax, [esi - 0x10]
mov edi, esp
mov ecx, ebx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x48], eax
call fcn.004070e7
add eax, 0x10
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0x5c]
mov dword [edi], eax
call fcn.00445369
pop ecx
mov byte [ebp - 4], 0x3f
cmp dword [ebp - 0x5c], 0
jge 0x46c4ab
mov ecx, dword [ebp - 0x54]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x38]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x3c
mov eax, dword [ebp - 0x48]
jmp 0x46c575
push ecx
push ecx
mov ecx, esp
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x44]
mov dword [ebp - 0x18], ecx
push eax
lea edi, [ebp - 0x124]
call fcn.004b1718
mov ecx, edi
call fcn.0044568e
pop ecx
pop ecx
test al, al
je 0x46c558
push ecx
mov edi, esp
lea ebx, [ebp - 0x38]
mov dword [ebp - 0x18], edi
mov ecx, dword [ebp - 0x38]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x134]
mov edx, ebx
mov dword [edi], eax
call fcn.00428612
pop ecx
mov ecx, dword [ebp - 0x12c]
add ecx, 0xfffffff0
call fcn.00407189
mov edi, dword [ebp - 0x38]
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x46c55b
push ecx
mov esi, esp
lea ebx, [ebp - 0x44]
mov dword [ebp - 0x18], esi
mov ecx, dword [ebp - 0x48]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x140]
mov edx, ebx
mov dword [esi], eax
call fcn.00428612
pop ecx
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov esi, dword [ebp - 0x44]
mov ecx, esi
call fcn.00428a7e
jmp 0x46c55b
mov edi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x54]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [edi - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x3c
lea eax, [esi - 0x10]
mov ecx, eax
call fcn.00407189
lea ecx, [ebp - 0x6c]
call fcn.004094c2
mov eax, dword [ebp - 0x6c]
cmp eax, dword [ebp - 0xac]
jne 0x46c43c
mov ecx, dword [ebp - 0x144]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0xac]
call fcn.004add79
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], 0x2c
call fcn.004ad684
mov edi, dword [ebp - 0x3c]
lea eax, [ebp - 0x8c]
push eax
mov ecx, edi
call fcn.0040121b
mov ecx, dword [ebp - 0x84]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x60]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x7c]
call fcn.00407189
mov ecx, dword [ebp - 0x64]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx - 0x10]
call fcn.00407189
cmp dword [ebp - 0x14], 0
je 0x46c612
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x28]
call fcn.00407189
mov ecx, dword [ebp + 0x10]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x20]
call fcn.00407189
mov eax, edi
call fcn.004d8a8d
ret