Function at 0x447c50
Capabilities:
Check if file exists
Get common file path

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6d5b9e
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x2a0
mov eax, dword [0x82f084]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x290], esi
push str.Start_installing_async_products...
push 0x75c10c
push 0x75c10c
push str.AsyncProductInstallManager
push str.WAMB
push 0xa
call fcn.0043b2b0
xor eax, eax
mov byte [ebp - 0x25d], 1
add esp, 0x18
mov dword [ebp - 0x234], 0
mov dword [ebp - 0x230], 7
mov word [ebp - 0x244], ax
mov dword [ebp - 4], eax
mov dword [ebp - 0x24c], eax
mov dword [ebp - 0x248], 7
mov word [ebp - 0x25c], ax
lea edx, [ebp - 0x268]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x284]
call fcn.0060d700
cmp dword [ebp - 0x268], 2
jne 0x447d30
lea ecx, [ebp - 0x25c]
call fcn.0060ecf0
test al, al
je 0x447d84
push 0x15
push str.Adobe_Desktop_Common
jmp 0x447d79
push 0
push 0x2b
lea eax, [ebp - 0x220]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x447d84
lea ecx, [ebp - 0x220]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x447d50
sub ecx, edx
lea eax, [ebp - 0x220]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x25c]
call fcn.0042fe00
push 0x1b
push str.AdobeAdobe_Desktop_Common
lea ecx, [ebp - 0x25c]
call fcn.0042ff20
push 0xf
xor eax, eax
mov dword [ebp - 0x270], 0
push str.HDBoxSetup.exe
lea ecx, [ebp - 0x280]
mov dword [ebp - 0x26c], 7
mov word [ebp - 0x280], ax
call fcn.0042fe00
push ecx
lea edx, [ebp - 0x280]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x25c]
call fcn.0060f9d0
add esp, 4
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x280]
call fcn.0042fd70
mov ecx, dword [esi + 0x1c]
mov eax, 0x2aaaaaab
sub ecx, dword [esi + 0x18]
imul ecx
mov dword [ebp - 0x264], 0
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x44831c
xor edi, edi
mov dword [ebp - 0x268], edi
nop word [eax + eax]
lea eax, [ebp - 0x244]
cmp eax, esi
je 0x447e33
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x447e24
mov eax, dword [esi]
push dword [esi + 0x10]
lea ecx, [ebp - 0x244]
push eax
call fcn.0042fe00
mov edx, dword [esi + 0x18]
push ecx
add edx, edi
lea ecx, [ebp - 0x244]
call fcn.0060f9d0
add esp, 4
lea eax, [ebp - 0x244]
cmp dword [ebp - 0x230], 8
cmovae eax, dword [ebp - 0x244]
push eax
push dword [ebp - 0x264]
push str.Driver_xml_path_for_entry__d_is__s
push 0x75c10c
push 0x75c10c
push str.AsyncProductInstallManager
push str.WAMB
push 0xa
call fcn.0043b2b0
mov ecx, dword [esi + 0x1c]
mov eax, 0x2aaaaaab
sub ecx, dword [esi + 0x18]
add esp, 0x20
imul ecx
sar edx, 2
mov esi, edx
shr esi, 0x1f
add esi, edx
call fcn.0043b360
movd xmm0, esi
lea ecx, [ebp - 0x280]
cvtdq2pd xmm0, xmm0
shr esi, 0x1f
mov edi, dword [eax + 0x198]
mov eax, dword [ebp - 0x264]
inc eax
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x264], eax
push 0x13
addsd xmm0, qword [esi*8 + 0x7e8490]
movd xmm1, eax
xor eax, eax
cvtdq2ps xmm1, xmm1
push str.updateAsyncProgress
mov dword [ebp - 0x26c], 7
mov word [ebp - 0x280], ax
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x284], xmm1
divss xmm1, xmm0
mulss xmm1, dword [0x7e8338]
subss xmm1, dword [0x7e82bc]
cvttss2si esi, xmm1
call fcn.0042fe00
mov edx, esi
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2ac]
call fcn.00619cd0
mov byte [ebp - 4], 4
mov ecx, edi
mov edx, dword [edi]
push eax
lea eax, [ebp - 0x280]
push eax
call dword [edx + 4]
lea ecx, [ebp - 0x2ac]
call fcn.0042fd70
lea ecx, [ebp - 0x280]
mov byte [ebp - 4], 1
call fcn.0042fd70
cmp dword [ebp - 0x230], 8
lea eax, [ebp - 0x244]
cmovae eax, dword [ebp - 0x244]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4481e0
xorps xmm0, xmm0
mov dword [ebp - 0x224], 0
movq qword [ebp - 0x22c], xmm0
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x224], 0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x280]
push 0xb
xor eax, eax
mov dword [ebp - 0x270], 0
push str.__install1
mov dword [ebp - 0x26c], 7
mov word [ebp - 0x280], ax
call fcn.0042fe00
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x228]
cmp eax, dword [ebp - 0x224]
je 0x44803f
movups xmm0, xmmword [ebp - 0x280]
mov dword [eax + 0x10], 0
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x270]
movq qword [eax + 0x10], xmm0
xor eax, eax
add dword [ebp - 0x228], 0x18
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], 7
mov word [ebp - 0x280], ax
jmp 0x448052
lea ecx, [ebp - 0x280]
push ecx
push eax
lea ecx, [ebp - 0x22c]
call fcn.00448540
lea ecx, [ebp - 0x280]
mov byte [ebp - 4], 5
call fcn.0042fd70
lea eax, [ebp - 0x244]
mov edx, str.__driverXML
push eax
lea ecx, [ebp - 0x2ac]
call fcn.00439e80
add esp, 4
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x228]
cmp ecx, dword [ebp - 0x224]
je 0x4480c7
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
movups xmm0, xmmword [eax]
movups xmmword [ecx], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ecx + 0x10], xmm0
xor ecx, ecx
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
add dword [ebp - 0x228], 0x18
jmp 0x4480d4
push eax
push ecx
lea ecx, [ebp - 0x22c]
call fcn.00448540
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 5
call fcn.0042fd70
push ecx
lea eax, [ebp - 0x294]
mov dword [ebp - 0x28c], 0
push eax
push 1
lea eax, [ebp - 0x288]
mov dword [ebp - 0x288], 0xffffffff
push eax
lea eax, [ebp - 0x28c]
mov dword [ebp - 0x294], 0
push 1
push eax
lea edx, [ebp - 0x22c]
lea ecx, [ebp - 0x25c]
call fcn.00626c40
add esp, 0x18
test al, al
jne 0x448197
mov ecx, dword [ebp - 0x288]
test ecx, ecx
je 0x448197
push dword [ebp - 0x28c]
cmp dword [ebp - 0x230], 8
lea eax, [ebp - 0x244]
push ecx
cmovae eax, dword [ebp - 0x244]
push eax
push str.Error_occured_while_trying_to_install_async_product_from__s_with_return_code_:__d_and_error_code_:__d
push 0x75c10c
push 0x75c10c
push str.AsyncProductInstallManager
push str.WAMB
push 0x32
call fcn.0043b2b0
add esp, 0x24
mov byte [ebp - 0x25d], 0
lea ecx, [ebp - 0x22c]
mov byte [ebp - 4], 1
call fcn.004483f0
jmp 0x44821f
cmp dword [ebp - 0x230], 8
lea eax, [ebp - 0x244]
cmovae eax, dword [ebp - 0x244]
push eax
push str.Successfully_installed_async_product_from__s
push 0x75c10c
push 0x75c10c
push str.AsyncProductInstallManager
push str.WAMB
push 0x1e
call fcn.0043b2b0
add esp, 0x1c
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x22c]
call fcn.004483f0
jmp 0x44821f
cmp dword [ebp - 0x230], 8
lea eax, [ebp - 0x244]
cmovae eax, dword [ebp - 0x244]
push eax
push str.Found_async_product_entry__s_but_path_doesnt_exist
push 0x75c10c
push 0x75c10c
push str.AsyncProductInstallManager
push str.WAMB
push 0x28
call fcn.0043b2b0
add esp, 0x1c
mov byte [ebp - 0x25d], 0
mov eax, dword [ebp - 0x290]
mov ecx, dword [eax + 0x1c]
sub ecx, dword [eax + 0x18]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov esi, edx
shr esi, 0x1f
add esi, edx
call fcn.0043b360
movss xmm1, dword [ebp - 0x284]
lea ecx, [ebp - 0x280]
movd xmm0, esi
cvtdq2pd xmm0, xmm0
shr esi, 0x1f
mov edi, dword [eax + 0x198]
xor eax, eax
push 0x13
push str.updateAsyncProgress
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], 7
addsd xmm0, qword [esi*8 + 0x7e8490]
mov word [ebp - 0x280], ax
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
mulss xmm1, dword [0x7e8338]
cvttss2si esi, xmm1
call fcn.0042fe00
mov edx, esi
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x2ac]
call fcn.00619cd0
mov byte [ebp - 4], 9
mov ecx, edi
mov edx, dword [edi]
push eax
lea eax, [ebp - 0x280]
push eax
call dword [edx + 4]
lea ecx, [ebp - 0x2ac]
call fcn.0042fd70
lea ecx, [ebp - 0x280]
mov byte [ebp - 4], 1
call fcn.0042fd70
mov esi, dword [ebp - 0x290]
mov eax, 0x2aaaaaab
mov edi, dword [ebp - 0x268]
add edi, 0x18
mov dword [ebp - 0x268], edi
mov ecx, dword [esi + 0x1c]
sub ecx, dword [esi + 0x18]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x264], eax
jb 0x447e10
push str.End_installing_async_products...
push 0x75c10c
push 0x75c10c
push str.AsyncProductInstallManager
push str.WAMB
push 0xa
call fcn.0043b2b0
add esp, 0x18
lea ecx, [ebp - 0x25c]
call fcn.0042fd70
lea ecx, [ebp - 0x244]
call fcn.0042fd70
mov al, byte [ebp - 0x25d]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0067d681
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret