Function at 0x4357b0
Capabilities:
Check if file exists
Copy file
Delete directory
Delete file
Get common file path
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43ac7f
mov eax, dword fs:[0]
push eax
sub esp, 0x4f8
mov eax, dword [0x44eca0]
xor eax, ebp
mov dword [ebp - 0x28], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea ecx, [ebp - 0x23c]
call main
mov dword [ebp - 4], 0
mov dword [ebp - 0x244], 0
lea ecx, [ebp - 0x24]
call main
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x240]
call main
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x20]
call main
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1c]
call main
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x18]
call main
mov byte [ebp - 4], 5
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x18]
call main
lea ecx, [ebp - 0x240]
push ecx
lea ecx, [ebp - 0x18]
call main
lea edx, [ebp - 0x24]
push edx
lea ecx, [ebp - 0x18]
call main
lea ecx, [ebp - 0x24]
call main
movzx eax, al
test eax, eax
je 0x4358ea
push 0x371
push str.Self_Update_7z_Result
push 0x4429f4
push str.empty_arm_update_folder
call main
add esp, 0x10
mov dword [ebp - 0x490], eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x18]
call main
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1c]
call main
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x20]
call main
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x240]
call main
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x24]
call main
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x23c]
call main
mov eax, dword [ebp - 0x490]
jmp 0x436634
push 0x442a28
lea ecx, [ebp - 0x240]
push ecx
call main
add esp, 8
movzx edx, al
test edx, edx
je 0x43654b
push 0x442a30
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x494]
push ecx
call main
add esp, 0xc
mov dword [ebp - 0x4fc], eax
mov edx, dword [ebp - 0x4fc]
mov dword [ebp - 0x500], edx
mov byte [ebp - 4], 6
push 0x452cfc
mov eax, dword [ebp - 0x500]
push eax
lea ecx, [ebp - 0x24c]
push ecx
call main
add esp, 0xc
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x494]
call main
lea edx, [ebp - 0x24c]
push edx
lea ecx, [ebp - 0x248]
call main
mov byte [ebp - 4], 9
push 0x442a34
lea ecx, [ebp - 0x498]
call main
mov byte [ebp - 4], 0xa
push 0
lea eax, [ebp - 0x24c]
push eax
lea ecx, [ebp - 0x498]
push ecx
push 2
call main
add esp, 0x10
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x498]
call main
lea ecx, [ebp - 0x24c]
call main
push eax
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4364ab
mov dword [ebp - 0x254], 1
mov dword [ebp - 0x258], 0
lea ecx, [ebp - 0x250]
call main
mov byte [ebp - 4], 0xb
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
lea ecx, [ebp - 0x24c]
call main
push eax
call dword [sym.imp.kernel32.dll_CreateFileW]
mov dword [ebp - 0x264], eax
mov edx, dword [ebp - 0x264]
push edx
lea ecx, [ebp - 0x260]
call main
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x260]
call main
movzx eax, al
test eax, eax
je 0x435cb8
push 0x442a68
mov ecx, dword [ebp - 0x264]
push ecx
lea ecx, [ebp - 0x24c]
call main
push eax
call main
add esp, 0xc
test eax, eax
je 0x435bf2
lea ecx, [ebp - 0x268]
call main
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x268]
call main
push eax
push 0
lea ecx, [ebp - 0x24c]
call main
push eax
call sub.msi.dll_MsiOpenProductW
mov dword [ebp - 0x244], eax
cmp dword [ebp - 0x244], 0
jne 0x435b0e
push 0x442af8
lea ecx, [ebp - 0x49c]
call main
mov byte [ebp - 4], 0xe
lea edx, [ebp - 0x250]
push edx
lea eax, [ebp - 0x49c]
push eax
lea ecx, [ebp - 0x268]
call main
push eax
call main
add esp, 0xc
mov dword [ebp - 0x244], eax
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x49c]
call main
lea ecx, [ebp - 0x268]
call main
push eax
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
jmp 0x435bde
push 0x3ee
push 0x442b10
lea ecx, [ebp - 0x24c]
call main
push eax
push 0x442b40
call main
add esp, 0x10
mov dword [ebp - 0x4a0], eax
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x268]
call main
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x260]
call main
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x250]
call main
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x248]
call main
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x24c]
call main
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x18]
call main
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1c]
call main
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x20]
call main
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x240]
call main
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x24]
call main
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x23c]
call main
mov eax, dword [ebp - 0x4a0]
jmp 0x436634
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x268]
call main
jmp 0x435cb3
push 0x3ee
push 0x442b68
lea ecx, [ebp - 0x24c]
call main
push eax
push 0x442b98
call main
add esp, 0x10
mov dword [ebp - 0x4a4], eax
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x260]
call main
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x250]
call main
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x248]
call main
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x24c]
call main
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x18]
call main
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1c]
call main
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x20]
call main
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x240]
call main
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x24]
call main
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x23c]
call main
mov eax, dword [ebp - 0x4a4]
jmp 0x436634
jmp 0x435d79
push 0x3ee
push 0x442bbc
lea ecx, [ebp - 0x24c]
call main
push eax
push 0x442bf0
call main
add esp, 0x10
mov dword [ebp - 0x4a8], eax
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x260]
call main
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x250]
call main
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x248]
call main
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x24c]
call main
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x18]
call main
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1c]
call main
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x20]
call main
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x240]
call main
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x24]
call main
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x23c]
call main
mov eax, dword [ebp - 0x4a8]
jmp 0x436634
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x260]
call main
cmp dword [ebp - 0x244], 0
jne 0x435ea9
lea ecx, [ebp - 0x250]
call main
movzx ecx, al
test ecx, ecx
jne 0x435ea9
lea ecx, [ebp - 0x26c]
call main
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x270], 0
jmp 0x435dd5
mov edx, dword [ebp - 0x270]
add edx, 1
mov dword [ebp - 0x270], edx
cmp dword [ebp - 0x244], 0
jne 0x435e98
cmp dword [ebp - 0x258], 0
jne 0x435e98
push 0x104
lea ecx, [ebp - 0x26c]
call main
push eax
mov eax, dword [ebp - 0x270]
push eax
push 0
push 0x442c30
call sub.msi.dll_MsiSourceListClearAllW
mov dword [ebp - 0x244], eax
push 0xffffffffffffffff
lea ecx, [ebp - 0x26c]
call main
cmp dword [ebp - 0x244], 0
jne 0x435e93
lea ecx, [ebp - 0x250]
push ecx
lea edx, [ebp - 0x26c]
push edx
call main
add esp, 8
movzx eax, al
test eax, eax
je 0x435e93
mov dword [ebp - 0x258], 1
push str.found_already_installed_Product:
lea ecx, [ebp - 0x4ac]
call main
mov byte [ebp - 4], 0x10
push 0
lea ecx, [ebp - 0x26c]
push ecx
lea edx, [ebp - 0x4ac]
push edx
push 1
call main
add esp, 0x10
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x4ac]
call main
jmp 0x435dc6
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x26c]
call main
jmp 0x435edf
push str.failed_to_get_ProductCode
lea ecx, [ebp - 0x4b0]
call main
mov byte [ebp - 4], 0x11
push 0
lea eax, [ebp - 0x4b0]
push eax
push 2
call main
add esp, 0xc
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x4b0]
call main
push 0
push 2
call sub.msi.dll_MsiSetPropertyW
cmp dword [ebp - 0x258], 0
je 0x436062
push 4
lea ecx, [ebp - 0x250]
call main
push eax
call sub.msi.dll_MsiSetComponentStateW
mov dword [ebp - 0x244], eax
cmp dword [ebp - 0x244], 0
je 0x435f23
cmp dword [ebp - 0x244], 0xbc2
jne 0x435f6f
mov dword [ebp - 0x254], 0
push str.successfully_reinstalled_Product:
lea ecx, [ebp - 0x4b4]
call main
mov byte [ebp - 4], 0x12
push 0
lea ecx, [ebp - 0x250]
push ecx
lea edx, [ebp - 0x4b4]
push edx
push 2
call main
add esp, 0x10
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x4b4]
call main
jmp 0x436062
push str.failed_to_reinstall__will_uninstall_Product:
lea ecx, [ebp - 0x4b8]
call main
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x244]
push eax
lea ecx, [ebp - 0x250]
push ecx
lea edx, [ebp - 0x4b8]
push edx
push 1
call main
add esp, 0x10
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x4b8]
call main
push 2
push 1
lea ecx, [ebp - 0x250]
call main
push eax
call sub.msi.dll_MsiDatabaseCommit
mov dword [ebp - 0x244], eax
cmp dword [ebp - 0x244], 0
je 0x435fe1
cmp dword [ebp - 0x244], 0xbc2
jne 0x436020
push str.successfully_uninstalled_Product:
lea ecx, [ebp - 0x4bc]
call main
mov byte [ebp - 4], 0x14
push 0
lea eax, [ebp - 0x250]
push eax
lea ecx, [ebp - 0x4bc]
push ecx
push 2
call main
add esp, 0x10
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x4bc]
call main
jmp 0x436062
push str.failed_to_uninstall_Product:
lea ecx, [ebp - 0x4c0]
call main
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x244]
push edx
lea eax, [ebp - 0x250]
push eax
lea ecx, [ebp - 0x4c0]
push ecx
push 1
call main
add esp, 0x10
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x4c0]
call main
cmp dword [ebp - 0x254], 0
je 0x43626e
lea edx, [ebp - 0x24c]
push edx
lea eax, [ebp - 0x250]
push eax
call main
add esp, 8
mov dword [ebp - 0x244], eax
cmp dword [ebp - 0x244], 0
je 0x43612d
mov ecx, dword [ebp - 0x244]
mov dword [ebp - 0x4c4], ecx
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x250]
call main
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x248]
call main
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x24c]
call main
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x18]
call main
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1c]
call main
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x20]
call main
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x240]
call main
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x24]
call main
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x23c]
call main
mov eax, dword [ebp - 0x4c4]
jmp 0x436634
lea edx, [ebp - 0x20]
push edx
call main
add esp, 4
test eax, eax
je 0x436164
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x20]
push ecx
call main
add esp, 8
mov dword [ebp - 0x244], eax
cmp dword [ebp - 0x244], 0
je 0x436164
lea ecx, [ebp - 0x1c]
call main
push 0x442e20
lea ecx, [ebp - 0x24c]
call main
push eax
call sub.msi.dll_MsiOpenDatabaseW
mov dword [ebp - 0x244], eax
cmp dword [ebp - 0x244], 0
je 0x436238
cmp dword [ebp - 0x244], 0xbc2
jne 0x4361d1
push str.msi_self_update_returned_REBOOT
lea ecx, [ebp - 0x4c8]
call main
mov byte [ebp - 4], 0x16
push 0
lea edx, [ebp - 0x4c8]
push edx
push 1
call main
add esp, 0xc
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x4c8]
call main
jmp 0x436236
push 0x442e68
lea ecx, [ebp - 0x4cc]
call main
mov byte [ebp - 4], 0x17
push str.msi_self_update_failed
lea ecx, [ebp - 0x4d0]
call main
mov byte [ebp - 4], 0x18
mov eax, dword [ebp - 0x244]
push eax
lea ecx, [ebp - 0x4cc]
push ecx
lea edx, [ebp - 0x4d0]
push edx
push 1
call main
add esp, 0x10
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x4d0]
call main
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x4cc]
call main
jmp 0x43626e
push str.msi_self_update_succeeded
lea ecx, [ebp - 0x4d4]
call main
mov byte [ebp - 4], 0x19
push 0
lea eax, [ebp - 0x4d4]
push eax
push 2
call main
add esp, 0xc
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x4d4]
call main
mov byte [ebp - 0x4d5], 0
lea ecx, [ebp - 0x4d5]
push ecx
mov edx, dword [ebp - 0x244]
push edx
push 0x442ed0
lea ecx, [ebp - 0x23c]
call main
lea eax, [ebp - 0x1c]
push eax
call main
add esp, 4
test eax, eax
je 0x43639f
lea ecx, [ebp - 0x20]
call main
movzx ecx, al
test ecx, ecx
jne 0x43633f
lea edx, [ebp - 0x20]
push edx
call main
add esp, 4
test eax, eax
jne 0x43633f
push str.AdobeARM.exe_is_missing_after_install__will_use_backup
lea ecx, [ebp - 0x4dc]
call main
mov byte [ebp - 4], 0x1a
push 0
lea eax, [ebp - 0x4dc]
push eax
push 1
call main
add esp, 0xc
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x4dc]
call main
mov byte [ebp - 0x4dd], 0
lea ecx, [ebp - 0x4dd]
push ecx
push 0
push 0x442f70
push 0x442f74
lea ecx, [ebp - 0x23c]
call main
push 0
lea ecx, [ebp - 0x20]
call main
push eax
lea ecx, [ebp - 0x1c]
call main
push eax
call dword [sym.imp.kernel32.dll_CopyFileW]
lea ecx, [ebp - 0x1c]
call main
push eax
call dword [sym.imp.kernel32.dll_DeleteFileW]
push 0
push 0x442fac
lea ecx, [ebp - 0x1c]
call main
mov dword [ebp - 0x274], eax
cmp dword [ebp - 0x274], 0xffffffff
je 0x43639f
mov edx, dword [ebp - 0x274]
push edx
lea eax, [ebp - 0x278]
push eax
lea ecx, [ebp - 0x1c]
call main
lea ecx, [ebp - 0x278]
call main
push eax
call dword [sym.imp.kernel32.dll_RemoveDirectoryW]
lea ecx, [ebp - 0x278]
call main
call fcn.00433350
cmp dword [ebp - 0x244], 0
je 0x4363bd
cmp dword [ebp - 0x244], 0xbc2
jne 0x436497
push 0x104
push 0
lea ecx, [ebp - 0x484]
push ecx
call fcn.00414840
add esp, 0xc
lea edx, [ebp - 0x484]
push edx
push 0
push 0
push 0x23
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov dword [ebp - 0x488], eax
cmp dword [ebp - 0x488], 0
jl 0x436497
lea eax, [ebp - 0x484]
push eax
lea ecx, [ebp - 0x48c]
call main
mov byte [ebp - 4], 0x1b
push str.AdobeARMS
lea ecx, [ebp - 0x48c]
call main
call fcn.00432860
test eax, eax
je 0x436465
call main
test eax, eax
je 0x436465
push 1
lea ecx, [ebp - 0x48c]
call main
push eax
push str.tFolders
mov ecx, 0x452d24
call main
push eax
push 0x80000002
call main
add esp, 0x14
call main
jmp 0x436488
push ecx
mov ecx, esp
mov dword [ebp - 0x4e4], esp
lea edx, [ebp - 0x48c]
push edx
call main
mov dword [ebp - 0x504], eax
call main
add esp, 4
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x48c]
call main
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x250]
call main
jmp 0x43652b
push 0x442ff8
lea ecx, [ebp - 0x4e8]
call main
mov byte [ebp - 4], 0x1c
push str.msi_self_update_file_not_found
lea ecx, [ebp - 0x4ec]
call main
mov byte [ebp - 4], 0x1d
push 2
lea eax, [ebp - 0x4e8]
push eax
lea ecx, [ebp - 0x4ec]
push ecx
push 1
call main
add esp, 0x10
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x4ec]
call main
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x4e8]
call main
mov byte [ebp - 0x4ed], 0
lea edx, [ebp - 0x4ed]
push edx
push 2
push str.Self_Update_MSI_Result
lea ecx, [ebp - 0x23c]
call main
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x248]
call main
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x24c]
call main
jmp 0x436588
push str.unknown_or_not_supported_self_update_type:
lea ecx, [ebp - 0x4f4]
call main
mov byte [ebp - 4], 0x1e
push 0
lea eax, [ebp - 0x240]
push eax
lea ecx, [ebp - 0x4f4]
push ecx
push 1
call main
add esp, 0x10
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x4f4]
call main
lea ecx, [ebp - 0x10]
call main
mov byte [ebp - 4], 0x1f
lea edx, [ebp - 0x10]
push edx
lea ecx, [ebp - 0x18]
call main
push 0x452d00
lea eax, [ebp - 0x10]
push eax
call main
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x4365c5
push 0x4430c8
mov ecx, dword [ebp + 8]
call main
mov edx, dword [ebp - 0x244]
mov dword [ebp - 0x4f8], edx
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x10]
call main
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x18]
call main
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1c]
call main
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x20]
call main
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x240]
call main
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x24]
call main
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x23c]
call main
mov eax, dword [ebp - 0x4f8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x28]
xor ecx, ebp
call fcn.00414831
mov esp, ebp
pop ebp
ret