Function at 0x42372c
Capabilities:
Copy file
Delete file
Move file

Disassembly:
mov eax, 0x477d78
call fcn.004461a8
mov eax, 0x1b90
call fcn.004468d0
push ebx
push esi
push edi
mov dword [ebp - 0x24], ecx
call fcn.0040104a
mov dword [ebp - 0x1c], eax
mov eax, dword [0x49cca0]
xor edi, edi
cmp eax, edi
jne 0x42375e
mov eax, dword [0x49ed98]
mov dword [ebp - 0x34], eax
mov eax, dword [str.CacheRoot]
mov esi, 0x47e598
cmp eax, edi
mov dword [ebp - 0xbc], 0x47e5a0
mov dword [ebp - 0x9c], esi
jne 0x423784
mov eax, 0x49cc4c
lea ecx, [ebp - 0x1d]
push edi
push ecx
push eax
lea ecx, [ebp - 0xbc]
call fcn.00408d43
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0xe4]
push eax
mov dword [ebp - 4], edi
call fcn.00414baf
push 0xa
lea ecx, [ebp - 0xbc]
push 0xfffffffffffffffe
push ecx
mov ecx, dword [ebp - 0x1c]
push eax
mov byte [ebp - 4], 1
call fcn.00432f11
and byte [ebp - 4], 0
lea ecx, [ebp - 0xe4]
mov dword [ebp - 0x14], eax
call fcn.00401bc7
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xbc]
call fcn.00401bc7
cmp dword [ebp - 0x14], 0xffffffff
push 0xd
pop ebx
jge 0x4237fa
mov ecx, dword [ebp - 0x1c]
push ebx
call fcn.00408306
test al, al
je 0x424833
lea eax, [ebp - 0x1d]
push edi
push eax
lea ecx, [ebp - 0x15c]
mov dword [ebp - 0x15c], 0x47e5e0
mov dword [ebp - 0x13c], 0x47e5d8
call fcn.004029f5
lea eax, [ebp - 0x44]
push edi
push eax
lea ecx, [ebp - 0x1fc]
mov dword [ebp - 4], 2
mov dword [ebp - 0x1fc], 0x47e5e0
mov dword [ebp - 0x1dc], 0x47e5d8
call fcn.004029f5
lea eax, [ebp - 0x35]
push edi
push eax
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 3
mov dword [ebp - 0x6c], 0x47e5e0
mov dword [ebp - 0x4c], 0x47e5d8
call fcn.004029f5
lea eax, [ebp - 0x42]
push edi
push eax
push 0x49cc4c
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], 4
mov dword [ebp - 0x2fc], 0x47e5a0
mov dword [ebp - 0x2dc], esi
call fcn.00408d43
mov eax, dword [str.CacheFolder]
mov byte [ebp - 4], 5
cmp eax, edi
mov dword [ebp - 0x2d4], 0x47e5a0
mov dword [ebp - 0x2b4], esi
jne 0x4238b3
mov eax, 0x49cc4c
lea ecx, [ebp - 0x36]
push edi
push ecx
push eax
lea ecx, [ebp - 0x2d4]
call fcn.00408d43
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x374]
push eax
mov byte [ebp - 4], 6
call fcn.00414baf
mov esi, dword [ebp - 0x1c]
lea ecx, [ebp - 0x2fc]
push ecx
lea ecx, [ebp - 0x2d4]
push ecx
push eax
lea eax, [ebp - 0x34c]
mov ecx, esi
push eax
mov byte [ebp - 4], 7
call fcn.00432d7f
lea ecx, [ebp - 0x1ac]
mov byte [ebp - 4], 8
push ecx
mov ecx, eax
call fcn.004087d0
lea ecx, [ebp - 0x34c]
mov byte [ebp - 4], bl
call fcn.00401bc7
lea ecx, [ebp - 0x374]
mov byte [ebp - 4], 0xc
call fcn.00401bc7
lea ecx, [ebp - 0x2d4]
mov byte [ebp - 4], 0xb
call fcn.00401bc7
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], 0xa
call fcn.00401bc7
push ebx
mov ecx, esi
call fcn.00408306
test al, al
jne 0x423ae6
cmp dword [ebp - 0x14], edi
jl 0x423ae6
push str.SHFolder.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
cmp eax, edi
mov dword [ebp - 0x3c], eax
jne 0x42398f
push dword [ebp + 8]
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x6c]
push eax
call fcn.00424847
test eax, eax
jne 0x423b95
jmp 0x424772
push str.SHGetFolderPathW
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
cmp esi, edi
jne 0x4239bd
push dword [ebp + 8]
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x6c]
push eax
call fcn.00424847
test eax, eax
jne 0x423ad8
jmp 0x424772
lea eax, [ebp - 0x30]
push 0x400
push eax
lea ecx, [ebp - 0x1fc]
call fcn.004023dd
mov ecx, dword [eax]
mov byte [ebp - 4], 0x10
mov byte [eax + 4], 1
call fcn.00402a6a
push dword [eax]
push edi
push edi
push dword [ebp - 0x14]
push edi
call esi
test eax, eax
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0xa
setl bl
call fcn.004024ef
test bl, bl
jne 0x4239a1
lea eax, [ebp - 0x1ac]
lea ecx, [ebp - 0x1fc]
push eax
lea eax, [ebp - 0xe4]
push eax
call fcn.0040e001
push eax
lea ecx, [ebp - 0x15c]
mov byte [ebp - 4], 0x11
call fcn.00401fe6
lea ecx, [ebp - 0xe4]
mov byte [ebp - 4], 0xa
call fcn.00401f6c
lea eax, [ebp - 0x16]
push edi
push eax
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x94], 0x47e5e0
mov dword [ebp - 0x74], 0x47e5d8
call fcn.004029f5
lea eax, [ebp - 0x94]
mov byte [ebp - 4], 0x12
push eax
push dword [ebp + 0xc]
call fcn.00423550
pop ecx
test al, al
pop ecx
je 0x423a83
lea eax, [ebp - 0x94]
lea ecx, [ebp - 0x15c]
push eax
call fcn.00419c58
mov eax, dword [ebp - 0x154]
cmp eax, edi
jne 0x423a92
mov eax, 0x47e608
push eax
call fcn.00441b06
push dword [ebp + 8]
lea eax, [ebp - 0xe4]
lea ecx, [ebp - 0x15c]
push eax
call fcn.0040e001
push eax
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x13
call fcn.00401fe6
lea ecx, [ebp - 0xe4]
mov byte [ebp - 4], 0x12
call fcn.00401f6c
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0xa
call fcn.00401f6c
push dword [ebp - 0x3c]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x423b95
push ebx
mov ecx, esi
call fcn.00408306
test al, al
je 0x423b3d
lea eax, [ebp - 0xe4]
push ebx
push eax
mov ecx, esi
call fcn.0040832b
push eax
lea ecx, [ebp - 0x1ac]
mov byte [ebp - 4], 0xe
call fcn.00401fe6
lea ecx, [ebp - 0xe4]
mov byte [ebp - 4], 0xa
call fcn.00401f6c
lea eax, [ebp - 0xe4]
lea ecx, [ebp - 0x1ac]
push eax
call fcn.00425f91
lea ecx, [ebp - 0xe4]
call fcn.00401f6c
mov eax, dword [ebp - 0x1a4]
cmp eax, edi
jne 0x423b4c
mov eax, 0x47e608
push eax
call fcn.00441b06
lea eax, [ebp - 0x1ac]
lea ecx, [ebp - 0x15c]
push eax
call fcn.00401fe6
push dword [ebp + 8]
lea eax, [ebp - 0xe4]
lea ecx, [ebp - 0x1ac]
push eax
call fcn.0040e001
push eax
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0xf
call fcn.00401fe6
lea ecx, [ebp - 0xe4]
mov byte [ebp - 4], 0xa
call fcn.00401f6c
mov ecx, dword [ebp + 0xc]
lea eax, [ecx + 4]
neg ecx
sbb ecx, ecx
and ecx, eax
lea eax, [ebp - 0x68]
push ecx
lea ecx, [ebp - 0x6c]
neg ecx
sbb ecx, ecx
and ecx, eax
call fcn.00417de2
test eax, eax
je 0x4247ee
lea eax, [ebp - 0x2ac]
push 0x663
push eax
call fcn.00441086
pop ecx
pop ecx
lea eax, [ebp - 0x16]
push edi
push eax
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x14
mov dword [ebp - 0x224], 0x47e5a0
mov dword [ebp - 0x204], 0x47e598
call fcn.004017e6
mov byte [ebp - 4], 0x15
mov dword [ebp - 0x14], edi
mov eax, dword [ebp - 0x64]
push 1
cmp eax, edi
pop ebx
jne 0x423c0c
mov eax, 0x47e608
push eax
call fcn.00441b9a
test eax, eax
je 0x423d86
lea eax, [ebp - 0x41]
mov esi, 0x47e5e0
mov ebx, 0x47e5d8
push edi
push eax
lea ecx, [ebp - 0x10c]
mov dword [ebp - 0x10c], esi
mov dword [ebp - 0xec], ebx
call fcn.004029f5
lea eax, [ebp - 0x43]
push edi
push eax
lea ecx, [ebp - 0x1d4]
mov byte [ebp - 4], 0x16
mov dword [ebp - 0x1d4], esi
mov dword [ebp - 0x1b4], ebx
call fcn.004029f5
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0x17
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.00423550
pop ecx
test al, al
pop ecx
je 0x423cc1
lea eax, [ebp - 0x1d4]
push eax
push dword [ebp + 0xc]
call fcn.00423550
pop ecx
test al, al
pop ecx
je 0x423cc1
lea eax, [ebp - 0x1d4]
lea ecx, [ebp - 0x1d0]
neg eax
sbb eax, eax
and eax, ecx
lea ecx, [ebp - 0x10c]
neg ecx
push eax
lea eax, [ebp - 0x108]
sbb ecx, ecx
and ecx, eax
call fcn.00417de2
test eax, eax
je 0x423d66
mov ecx, dword [ebp - 0x64]
cmp ecx, edi
jne 0x423ccd
mov ecx, 0x47e608
mov eax, dword [ebp - 0x2a4]
cmp eax, edi
jne 0x423cdc
mov eax, 0x47e5b8
push ecx
push eax
lea eax, [ebp - 0x224]
push eax
call fcn.00414a68
lea eax, [ebp - 0x284]
push eax
push edi
call fcn.004426b9
add esp, 0x14
cmp dword [0x4a1c14], edi
jne 0x423d66
mov eax, dword [ebp - 0x21c]
cmp eax, edi
jne 0x423d11
mov eax, 0x47e5b8
push edi
lea ecx, [ebp - 0x284]
push 0x34
push ecx
push eax
push dword [ebp - 0x34]
call fcn.00409d9c
add esp, 0x14
cmp eax, 6
je 0x423d66
push dword [ebp + 8]
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x6c]
push eax
call fcn.00424847
test eax, eax
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x1d4]
je 0x42472a
call fcn.00401f6c
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 0x15
call fcn.00401f6c
jmp 0x423f44
lea ecx, [ebp - 0x1d4]
xor ebx, ebx
mov byte [ebp - 4], 0x16
call fcn.00401f6c
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 0x15
call fcn.00401f6c
mov esi, dword [ebp - 0x64]
cmp esi, edi
jne 0x423d92
mov esi, 0x47e608
lea eax, [ebp - 0x1e]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupmsiaction.cpp
lea ecx, [ebp - 0xe4]
call fcn.00401764
mov eax, dword [eax + 8]
mov byte [ebp - 4], 0x18
cmp eax, edi
jne 0x423db8
mov eax, 0x47e5b8
mov dword [ebp - 0x40], eax
push esi
lea eax, [ebp - 0x40]
push str.Copying_file_for_cache_to__s
push eax
mov dword [ebp - 0x3c], 0xa3f
call fcn.00408437
add esp, 0xc
lea ecx, [ebp - 0xe4]
mov byte [ebp - 4], 0x15
call fcn.00401bc7
mov ecx, dword [ebp - 0x64]
cmp ecx, edi
jne 0x423def
mov ecx, 0x47e608
mov eax, dword [ebp + 0xc]
add eax, 4
mov eax, dword [eax + 4]
cmp eax, edi
jne 0x423e01
mov eax, 0x47e608
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x423f3d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
lea eax, [ebp - 0x15]
push edi
push eax
lea ecx, [ebp - 0xbc]
mov dword [ebp - 0xbc], 0x47e5a0
mov dword [ebp - 0x9c], 0x47e598
call fcn.004017e6
lea eax, [ebp - 0x184]
push 0x65b
push eax
mov byte [ebp - 4], 0x19
call fcn.00441086
pop ecx
pop ecx
mov ecx, dword [ebp - 0x64]
mov byte [ebp - 4], 0x1a
cmp ecx, edi
jne 0x423e65
mov ecx, 0x47e608
mov eax, dword [ebp - 0x17c]
cmp eax, edi
jne 0x423e74
mov eax, 0x47e5b8
push ecx
push eax
lea eax, [ebp - 0xbc]
push eax
call fcn.00414a68
mov ebx, 0x4921c0
push ebx
call fcn.004468ff
add esp, 0x10
lea ecx, [ebp - 0xb8]
push eax
push ebx
call fcn.004156eb
mov eax, dword [ebp - 0xb4]
cmp eax, edi
jne 0x423eac
mov eax, 0x47e5b8
push esi
push eax
call fcn.00440ed9
pop ecx
lea eax, [ebp - 0xd]
pop ecx
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupmsiaction.cpp
lea ecx, [ebp - 0x94]
call fcn.00401764
mov eax, dword [eax + 8]
mov byte [ebp - 4], 0x1b
cmp eax, edi
jne 0x423edb
mov eax, 0x47e5b8
mov dword [ebp - 0x2c], eax
push esi
lea eax, [ebp - 0x2c]
push str.Failed_to_cache_file__last_error__d__prompting_for_alternate_location
push eax
mov dword [ebp - 0x28], 0xa4b
call fcn.00408437
add esp, 0xc
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0x1a
call fcn.00401bc7
push dword [ebp + 8]
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x6c]
push eax
call fcn.00424847
test eax, eax
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x184]
je 0x424740
call fcn.00401bc7
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0x15
call fcn.00401bc7
jmp 0x423f44
mov dword [ebp - 0x14], 1
cmp dword [ebp - 0x14], edi
je 0x423bfd
mov eax, dword [ebp - 0x1c]
mov esi, 0x4a140c
cmp dword [eax + 0x54], 1
jbe 0x424178
push 1
push 0xa
push dword [0x4a0208]
lea ecx, [ebp - 0x10c]
call fcn.00425de3
lea eax, [ebp - 0xe4]
mov ecx, 0x4a0b30
push eax
mov byte [ebp - 4], 0x1c
call fcn.004087d0
push dword [0x47e5e8]
mov ecx, eax
add eax, 4
mov byte [ebp - 4], 0x1d
neg ecx
sbb ecx, ecx
push edi
and ecx, eax
push ecx
lea ecx, [ebp - 0x108]
call fcn.004102b9
lea ecx, [ebp - 0xe4]
mov byte [ebp - 4], 0x1c
call fcn.00401f6c
mov eax, esi
mov dword [ebp - 0x134], 0x47e5e0
test eax, eax
mov dword [ebp - 0x114], 0x47e5d8
jne 0x423fd9
mov eax, 0x49cc4c
lea ecx, [ebp + 0xb]
push edi
push ecx
push eax
lea ecx, [ebp - 0x134]
call fcn.00403c0d
lea eax, [ebp - 0x10c]
lea ecx, [ebp - 0x134]
push eax
lea eax, [ebp - 0x94]
push eax
mov byte [ebp - 4], 0x1e
call fcn.0040e001
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 0x20
call fcn.00401f6c
push edi
lea eax, [ebp - 0xe4]
push edi
push eax
lea ecx, [ebp - 0x6c]
call fcn.00402c39
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 0x21
push ecx
lea ecx, [ebp - 0xbc]
push ecx
mov ecx, eax
call fcn.0040e001
lea ecx, [ebp - 0xe4]
mov byte [ebp - 4], 0x23
call fcn.00401f6c
mov ebx, dword [ebp - 0xb4]
cmp ebx, edi
jne 0x42405e
mov ebx, 0x47e608
mov esi, dword [ebp - 0x8c]
cmp esi, edi
jne 0x42406d
mov esi, 0x47e608
lea eax, [ebp - 0xd]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupmsiaction.cpp
lea ecx, [ebp - 0x184]
call fcn.00401764
mov eax, dword [eax + 8]
mov byte [ebp - 4], 0x24
cmp eax, edi
jne 0x424093
mov eax, 0x47e5b8
mov dword [ebp - 0x2c], eax
push ebx
push esi
lea eax, [ebp - 0x2c]
push str.Caching_transform__s_to__s
push eax
mov dword [ebp - 0x28], 0xa5d
call fcn.00408437
add esp, 0x10
lea ecx, [ebp - 0x184]
mov byte [ebp - 4], 0x23
call fcn.00401bc7
mov ecx, dword [ebp - 0xb4]
cmp ecx, edi
jne 0x4240ce
mov ecx, 0x47e608
mov eax, dword [ebp - 0x8c]
cmp eax, edi
jne 0x4240dd
mov eax, 0x47e608
push edi
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp - 0x184]
push 7
push eax
call fcn.0040832b
lea ecx, [ebp - 0x94]
lea edx, [ebp - 0x90]
neg ecx
sbb ecx, ecx
mov byte [ebp - 4], 0x25
and ecx, edx
push ecx
mov ecx, eax
add eax, 4
neg ecx
sbb ecx, ecx
and ecx, eax
call fcn.00417de2
mov ebx, eax
lea ecx, [ebp - 0x184]
neg ebx
sbb bl, bl
mov byte [ebp - 4], 0x23
inc bl
call fcn.00401f6c
test bl, bl
je 0x42414b
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp - 0xbc]
push edi
push eax
push 7
call fcn.004082ae
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0x20
call fcn.00401f6c
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0x1c
call fcn.00401f6c
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 0x15
call fcn.00401f6c
mov esi, dword [ebp - 0x24]
mov ecx, esi
call fcn.0042197d
cmp dword [esi + 0x10], edi
je 0x4244c0
lea eax, [ebp - 0xe4]
push eax
lea eax, [ebp - 0xb9c]
push eax
call fcn.00441271
pop ecx
lea eax, [ebp - 0x10c]
pop ecx
push edi
push edi
push eax
lea ecx, [ebp - 0x6c]
call fcn.00402c39
lea eax, [ebp - 0xe4]
mov byte [ebp - 4], 0x26
test eax, eax
mov dword [ebp - 0x94], 0x47e5e0
mov dword [ebp - 0x74], 0x47e5d8
lea eax, [ebp - 0xe4]
jne 0x4241db
mov eax, 0x49cc4c
lea ecx, [ebp + 0xb]
push edi
push ecx
push eax
lea ecx, [ebp - 0x94]
call fcn.00403c0d
lea eax, [ebp - 0x94]
lea ecx, [ebp - 0x10c]
push eax
lea eax, [ebp - 0x39c]
push eax
mov byte [ebp - 4], 0x27
call fcn.0040e001
push str..ini
push eax
lea eax, [ebp - 0x1d4]
mov byte [ebp - 4], 0x28
push eax
call fcn.0041a7ee
add esp, 0xc
lea ecx, [ebp - 0x39c]
mov byte [ebp - 4], 0x2b
call fcn.00401f6c
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0x2a
call fcn.00401f6c
mov esi, dword [ebp - 0x1cc]
mov ebx, 0x47e608
cmp esi, edi
jne 0x424251
mov esi, ebx
lea eax, [ebp - 0xd]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupmsiaction.cpp
lea ecx, [ebp - 0x184]
call fcn.00401764
mov eax, dword [eax + 8]
mov byte [ebp - 4], 0x2c
cmp eax, edi
jne 0x424277
mov eax, 0x47e5b8
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0xb9c]
push esi
push eax
lea eax, [ebp - 0x2c]
push str.Caching_ini_file__s_to__s
push eax
mov dword [ebp - 0x28], 0xa75
call fcn.00408437
add esp, 0x10
lea ecx, [ebp - 0x184]
mov byte [ebp - 4], 0x2a
call fcn.00401bc7
mov eax, dword [ebp - 0x1cc]
cmp eax, edi
jne 0x4242b5
mov eax, ebx
push edi
push eax
lea eax, [ebp - 0xb9c]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov ecx, dword [ebp + 0xc]
push edi
lea eax, [ebp - 0x324]
push edi
push eax
call fcn.00402c39
mov esi, 0x4a0b08
lea ecx, [ebp - 0xbc]
push esi
push ecx
mov ecx, eax
mov byte [ebp - 4], 0x2d
call fcn.0040e001
lea ecx, [ebp - 0x324]
mov byte [ebp - 4], 0x2f
call fcn.00401f6c
mov eax, dword [ebp - 0xb4]
cmp eax, edi
jne 0x424308
mov eax, ebx
push eax
call fcn.00441b9a
test eax, eax
je 0x424493
lea eax, [ebp - 0x184]
push esi
push eax
lea ecx, [ebp - 0x10c]
call fcn.0040e001
mov ebx, dword [ebp - 0x17c]
mov byte [ebp - 4], 0x30
cmp ebx, edi
jne 0x42433c
mov ebx, 0x47e608
mov esi, dword [ebp - 0xb4]
cmp esi, edi
jne 0x42434b
mov esi, 0x47e608
lea eax, [ebp - 0xd]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupmsiaction.cpp
lea ecx, [ebp - 0x258]
call fcn.00401764
mov eax, dword [eax + 8]
mov byte [ebp - 4], 0x31
cmp eax, edi
jne 0x424371
mov eax, 0x47e5b8
mov dword [ebp - 0x2c], eax
push ebx
push esi
lea eax, [ebp - 0x2c]
push str.Caching_skin__s_to__s
push eax
mov dword [ebp - 0x28], 0xa80
call fcn.00408437
add esp, 0x10
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 0x30
call fcn.00401bc7
mov ecx, dword [ebp - 0x17c]
mov esi, 0x47e608
cmp ecx, edi
jne 0x4243ae
mov ecx, esi
mov eax, dword [ebp - 0xb4]
cmp eax, edi
jne 0x4243ba
mov eax, esi
mov ebx, dword [sym.imp.KERNEL32.dll_CopyFileW]
push edi
push ecx
push eax
call ebx
lea eax, [ebp - 0x258]
mov ecx, 0x4a0bd8
push eax
call fcn.004087d0
push eax
lea eax, [ebp - 0x134]
push eax
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 0x32
call fcn.0040e001
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 0x34
call fcn.00401f6c
cmp dword [ebp - 0x12c], edi
je 0x42440a
mov esi, dword [ebp - 0x12c]
lea eax, [ebp - 0xd]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupmsiaction.cpp
lea ecx, [ebp - 0x284]
call fcn.00401764
mov eax, dword [eax + 8]
mov byte [ebp - 4], 0x35
cmp eax, edi
jne 0x424430
mov eax, 0x47e5b8
push esi
mov esi, 0x49f5e0
mov dword [ebp - 0x2c], eax
push esi
lea eax, [ebp - 0x2c]
push str.Caching_ini_file__s_to__s
push eax
mov dword [ebp - 0x28], 0xa85
call fcn.00408437
add esp, 0x10
lea ecx, [ebp - 0x284]
mov byte [ebp - 4], 0x34
call fcn.00401bc7
mov eax, dword [ebp - 0x12c]
cmp eax, edi
jne 0x424470
mov eax, 0x47e608
push edi
push eax
push esi
call ebx
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 0x30
call fcn.00401f6c
lea ecx, [ebp - 0x184]
mov byte [ebp - 4], 0x2f
call fcn.00401f6c
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0x2a
call fcn.00401f6c
lea ecx, [ebp - 0x1d4]
mov byte [ebp - 4], 0x26
call fcn.00401f6c
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 0x15
call fcn.00401f6c
mov dword [ebp - 0x14], edi
mov ebx, 0x400
lea eax, [ebp + 0xb]
mov esi, 0x47e5a0
push edi
push eax
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x94], esi
mov dword [ebp - 0x74], 0x47e598
call fcn.004017e6
push dword [ebp - 0x14]
lea eax, [ebp - 0x94]
mov byte [ebp - 4], 0x36
push str.Cab_d
push eax
call fcn.00414a68
add esp, 0xc
lea eax, [ebp - 0xd]
lea ecx, [ebp - 0x134]
mov dword [ebp - 0x134], esi
push edi
push eax
mov dword [ebp - 0x114], 0x47e598
call fcn.004017e6
lea eax, [ebp - 0x230]
push ebx
push eax
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 0x37
call fcn.00408e34
mov ecx, dword [eax]
mov byte [ebp - 4], 0x38
mov byte [eax + 4], 1
call fcn.00408ddf
mov esi, dword [eax]
mov eax, dword [ebp - 0x8c]
cmp eax, edi
mov dword [ebp - 0x34], 0x47e5b8
je 0x424561
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp - 0x284]
push 6
push eax
call fcn.0040832b
mov eax, dword [eax + 8]
mov byte [ebp - 4], 0x39
cmp eax, edi
jne 0x424582
mov eax, 0x47e608
push ebx
push esi
push dword [ebp - 0x34]
push eax
call fcn.00442ca7
add esp, 0x10
lea ecx, [ebp - 0x284]
mov byte [ebp - 4], 0x38
call fcn.00401f6c
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 0x37
call fcn.00408e61
cmp dword [ebp - 0x128], edi
je 0x4247b2
mov eax, dword [ebp - 0x12c]
cmp eax, edi
jne 0x4245c9
mov eax, 0x47e5b8
lea ecx, [ebp - 0x1b9c]
push ecx
lea ecx, [ebp - 0x139c]
push ecx
push eax
call fcn.004417ed
lea eax, [ebp - 0x1b9c]
push eax
lea eax, [ebp - 0xb9c]
push 0x4a140c
push eax
call fcn.004419d2
mov eax, dword [ebp - 0x154]
cmp eax, edi
jne 0x424604
mov eax, 0x47e608
lea ecx, [ebp - 0x1b9c]
push ecx
push eax
lea eax, [ebp - 0x139c]
push eax
call fcn.004419d2
lea eax, [ebp - 0x15]
push 1
mov esi, str.C:CodeBasesisdev_srcRuntimeMSISharedSetupmsiaction.cpp
push eax
push esi
lea ecx, [ebp - 0x258]
call fcn.00401764
mov eax, dword [eax + 8]
mov byte [ebp - 4], 0x3a
cmp eax, edi
jne 0x42463f
mov eax, 0x47e5b8
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x139c]
push eax
lea eax, [ebp - 0xb9c]
push eax
lea eax, [ebp - 0x2c]
push str.Moving_file__s_to__s
push eax
mov dword [ebp - 0x28], 0xa99
call fcn.00408437
add esp, 0x10
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 0x37
call fcn.00401bc7
lea eax, [ebp - 0x139c]
push eax
lea eax, [ebp - 0xb9c]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x424704
lea eax, [ebp - 0x1e]
push 1
push eax
push esi
lea ecx, [ebp - 0x324]
call fcn.00401764
mov eax, dword [eax + 8]
mov byte [ebp - 4], 0x3b
cmp eax, edi
jne 0x4246b1
mov eax, 0x47e5b8
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], 0xa9d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x40]
push str.Move_failed__attempting_to_copy_and_delete_file__last_error__d
push eax
call fcn.00408437
add esp, 0xc
lea ecx, [ebp - 0x324]
mov byte [ebp - 4], 0x37
call fcn.00401bc7
lea eax, [ebp - 0x139c]
push edi
push eax
lea eax, [ebp - 0xb9c]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea eax, [ebp - 0xb9c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 0x36
call fcn.00401bc7
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0x15
call fcn.00401bc7
inc dword [ebp - 0x14]
jmp 0x4244c8
call fcn.00401f6c
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 0x15
call fcn.00401f6c
jmp 0x424754
call fcn.00401bc7
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0x15
call fcn.00401bc7
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x14
call fcn.00401bc7
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 0xa
call fcn.00401bc7
lea ecx, [ebp - 0x1ac]
mov byte [ebp - 4], 4
call fcn.00401f6c
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 3
call fcn.00401f6c
lea ecx, [ebp - 0x1fc]
mov byte [ebp - 4], 2
call fcn.00401f6c
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x15c]
call fcn.00401f6c
xor eax, eax
jmp 0x424836
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 0x36
call fcn.00401bc7
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0x15
call fcn.00401bc7
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x14
call fcn.00401bc7
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 0xa
call fcn.00401bc7
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x6c]
push eax
call fcn.00401fe6
lea ecx, [ebp - 0x1ac]
mov byte [ebp - 4], 4
call fcn.00401f6c
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 3
call fcn.00401f6c
lea ecx, [ebp - 0x1fc]
mov byte [ebp - 4], 2
call fcn.00401f6c
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x15c]
call fcn.00401f6c
push 1
pop eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 8