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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov al, byte [ebp + 0xc]
mov edx, 0x5700b8
push ebx
push esi
push edi
mov edi, ecx
xor esi, esi
xor ebx, ebx
mov dword [ebp - 4], edi
test al, al
mov ecx, str._Current_
cmove ecx, edx
mov dword [ebp - 8], ecx
je 0x442367
push 0x5700e4
lea eax, [edi + 0x1a0]
push 0x104
push eax
call fcn.0052c361
add esp, 0xc
jmp 0x44246d
mov ecx, str.Shell32.dll
call fcn.0040a280
mov ebx, eax
test ebx, ebx
jne 0x44239d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push str.Failed_to_load_Shell_API_dll
push esi
push 0x58ba20
call fcn.00437520
add esp, 0xc
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push str.SHGetFolderPathW
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x4423cd
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push str.Failed_to_retrieve_Shell_API_address
push esi
push 0x58ba20
call fcn.00437520
add esp, 0xc
jmp 0x442633
add edi, 0x1a0
push edi
push 0
push 0
push 0x23
push 0
call eax
mov esi, eax
test esi, esi
je 0x442404
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push str.Failed_to_get_the_Program_Data_path
push esi
push 0x58ba20
call fcn.00437520
add esp, 0xc
jmp 0x442633
push str._QualysAgentInstaller
push 0x104
push edi
call fcn.0052c2ec
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x44243c
push ecx
mov ecx, edi
call fcn.00430ed0
mov esi, eax
test esi, esi
je 0x44246a
push edi
push str.Failed_to_create_the_directory:__s
jmp 0x442625
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x44246a
and eax, 0x410
cmp eax, 0x410
sete al
test al, al
je 0x44246a
push edi
mov esi, 0x139f
push str.Extraction_path___s__links_to_somewhere_else
push esi
jmp 0x442626
mov edi, dword [ebp - 4]
mov eax, dword [ebp + 8]
test al, 2
je 0x442550
push str.Extracting_32_bit_MSI...
push 0x58ba20
call fcn.00437360
push str.Obtaining_MSI_contents_from_the_package...
push 0x58ba20
mov dword [ebp - 4], 0
mov dword [ebp + 0xc], 0
call fcn.00437400
add esp, 0x10
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 4]
push eax
push 0x20
call fcn.00441fb0
mov esi, eax
test esi, esi
je 0x4424c3
push str.Failed_to_get_MSI_contents_from_package
jmp 0x442525
push str.CloudAgent_x86.msi
push str.Writing_MSI_contents_to_external_file._Filename:__s
push 0x58ba20
call fcn.00437400
add esp, 0xc
mov ecx, edi
push str.CloudAgent_x86.msi
push dword [ebp + 0xc]
push dword [ebp - 4]
call fcn.00442080
mov esi, eax
test esi, esi
je 0x4424f9
push str.Failed_to_write_MSI_contents_to_external_file
jmp 0x442525
push str.Validating_the_extracted_MSI_file...
push 0x58ba20
call fcn.00437400
add esp, 8
mov ecx, edi
push str.CloudAgent_x86.msi
push dword [ebp + 0xc]
call fcn.00442650
mov esi, eax
test esi, esi
je 0x44254d
push str.Validation_failure_on_extracted_file
push esi
push 0x58ba20
call fcn.00437520
add esp, 0xc
test esi, esi
je 0x44254d
push dword [ebp - 8]
push str.Failed_to_extract_32_bit_MSI_to__s_Directory
push esi
push 0x58ba20
call fcn.00437520
add esp, 0x10
mov eax, dword [ebp + 8]
test al, 4
je 0x442633
push dword [ebp - 8]
push str.Extracting_64_bit_MSI_to__s.
push 0x58ba20
call fcn.00437360
add esp, 0xc
mov dword [ebp + 8], 0
mov dword [ebp + 0xc], 0
push str.Obtaining_MSI_contents_from_the_package...
push 0x58ba20
call fcn.00437400
add esp, 8
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp + 8]
push eax
push 0x40
call fcn.00441fb0
mov esi, eax
test esi, esi
je 0x4425a9
push str.Failed_to_get_MSI_contents_from_package
jmp 0x44260b
push str.CloudAgent_x64.msi
push str.Writing_MSI_contents_to_external_file._Filename:__s
push 0x58ba20
call fcn.00437400
add esp, 0xc
mov ecx, edi
push str.CloudAgent_x64.msi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00442080
mov esi, eax
test esi, esi
je 0x4425df
push str.Failed_to_write_MSI_contents_to_external_file
jmp 0x44260b
push str.Validating_the_extracted_MSI_file...
push 0x58ba20
call fcn.00437400
add esp, 8
mov ecx, edi
push str.CloudAgent_x64.msi
push dword [ebp + 0xc]
call fcn.00442650
mov esi, eax
test esi, esi
je 0x442633
push str.Validation_failure_on_extracted_file
push esi
push 0x58ba20
call fcn.00437520
add esp, 0xc
test esi, esi
je 0x442633
push dword [ebp - 8]
push str.Failed_to_extract_64_bit_MSI_to__s_Directory
push esi
push 0x58ba20
call fcn.00437520
add esp, 0x10
test ebx, ebx
je 0x44263e
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8