Function at 0x4a7b25
Capabilities:
Check if file exists
Copy file

Disassembly:
push 0xcc
mov eax, 0x4e0f13
call fcn.004b814b
xor ebx, ebx
mov edi, ecx
mov dword [ebp - 0x88], ebx
cmp dword [edi + 0xc0], ebx
jne 0x4a7b8f
push str.AI_EXTERNALUIUNINSTALLERNAME
lea ecx, [ebp - 0x2c]
call fcn.00404357
mov dword [ebp - 4], ebx
mov ecx, dword [edi + 0xc8]
mov eax, dword [ecx]
lea edx, [ebp - 0x2c]
push edx
xor esi, esi
lea edx, [ebp - 0xa8]
inc esi
push edx
mov dword [ebp - 0x88], esi
call dword [eax]
mov dword [ebp - 4], esi
mov dword [ebp - 0x88], 3
cmp dword [eax + 0x14], ebx
je 0x4a7b8f
mov byte [ebp - 0x81], 1
jmp 0x4a7b98
xor esi, esi
mov byte [ebp - 0x81], bl
inc esi
mov dword [ebp - 4], ebx
test byte [ebp - 0x88], 2
je 0x4a7bb8
and dword [ebp - 0x88], 0xfffffffd
push ebx
push esi
lea ecx, [ebp - 0xa8]
call fcn.004035da
or dword [ebp - 4], 0xffffffff
test byte [ebp - 0x88], 1
je 0x4a7bd6
and dword [ebp - 0x88], 0xfffffffe
push ebx
push esi
lea ecx, [ebp - 0x2c]
call fcn.004035da
cmp byte [ebp - 0x81], bl
je 0x4a7ede
push str.Installed
lea ecx, [ebp - 0x2c]
call fcn.00404357
mov dword [ebp - 4], 2
mov ecx, dword [edi + 0xc8]
mov eax, dword [ecx]
lea edx, [ebp - 0x2c]
push edx
lea edx, [ebp - 0xa8]
push edx
call dword [eax]
mov byte [ebp - 4], 3
cmp dword [eax + 0x14], ebx
sete byte [ebp - 0x81]
mov byte [ebp - 4], 2
push ebx
push esi
lea ecx, [ebp - 0xa8]
call fcn.004035da
or dword [ebp - 4], 0xffffffff
push ebx
push esi
lea ecx, [ebp - 0x2c]
call fcn.004035da
cmp byte [ebp - 0x81], bl
je 0x4a7ede
lea eax, [ebp - 0x80]
push eax
mov ecx, edi
call fcn.004a798f
mov dword [ebp - 4], 4
lea eax, [ebp - 0x48]
push eax
call fcn.0045a500
mov byte [ebp - 4], 5
lea eax, [ebp - 0xd8]
push eax
call fcn.00459030
mov byte [ebp - 4], 6
mov eax, dword [edi + 0xc4]
cmp dword [eax + 0x138], ebx
je 0x4a7ccd
push eax
lea esi, [ebp - 0xa8]
call fcn.0049f68f
mov byte [ebp - 4], 7
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x48]
call fcn.00403ffa
mov byte [ebp - 4], 6
mov eax, esi
push eax
call fcn.0040367e
mov eax, dword [edi + 0xc4]
add eax, 0x124
push eax
lea esi, [ebp - 0x48]
call fcn.0041a500
mov eax, esi
push eax
lea ebx, [ebp - 0xd8]
call fcn.00459500
xor ebx, ebx
lea eax, [ebp - 0x64]
push eax
call fcn.0045a500
mov byte [ebp - 4], 8
mov edi, 0x502b74
cmp dword [ebp - 0x34], ebx
je 0x4a7cff
cmp dword [ebp - 0x30], 8
mov eax, dword [ebp - 0x44]
jae 0x4a7cf0
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4a7dbb
lea esi, [ebp - 0xa8]
call fcn.0045ab30
mov byte [ebp - 4], 9
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x48]
call fcn.00403ffa
mov byte [ebp - 4], 8
mov eax, esi
push eax
call fcn.0040367e
lea esi, [ebp - 0xa8]
call fcn.0045a9b0
mov byte [ebp - 4], 0xa
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x64]
call fcn.00403ffa
mov byte [ebp - 4], 8
mov eax, esi
push eax
call fcn.0040367e
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x80]
call fcn.0045a5d0
mov byte [ebp - 4], 0xb
lea edx, [ebp - 0xa8]
mov ecx, eax
call fcn.0045b8d0
mov byte [ebp - 4], 0xc
push eax
lea esi, [ebp - 0x64]
call fcn.0041a500
mov byte [ebp - 4], 0xb
push ebx
push 1
lea ecx, [ebp - 0xa8]
call fcn.004035da
mov byte [ebp - 4], 8
lea eax, [ebp - 0x2c]
push eax
call fcn.0040367e
push edi
lea ecx, [ebp - 0x2c]
call fcn.00404357
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0x2c]
push eax
call fcn.0045a6e0
mov byte [ebp - 4], 8
push ebx
push 1
lea ecx, [ebp - 0x2c]
call fcn.004035da
mov eax, dword [ebp - 0x7c]
push 8
pop esi
cmp dword [ebp - 0x68], esi
jae 0x4a7dc9
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x8c]
push eax
call fcn.004054af
mov byte [ebp - 4], 0xe
push ebx
push ebx
lea ecx, [ebp - 0x8c]
call fcn.00460900
pop ecx
pop ecx
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x8c]
call fcn.00402964
mov ecx, dword [ebp - 0x7c]
cmp dword [ebp - 0x68], esi
jae 0x4a7e03
lea ecx, [ebp - 0x7c]
mov eax, dword [ebp - 0x44]
cmp dword [ebp - 0x30], esi
jae 0x4a7e0e
lea eax, [ebp - 0x44]
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
cmp dword [ebp - 0x50], ebx
je 0x4a7ea5
mov eax, dword [ebp - 0x60]
cmp dword [ebp - 0x4c], esi
jae 0x4a7e2b
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4a7ea5
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x80]
call fcn.0045a5d0
mov byte [ebp - 4], 0xf
push edi
lea ecx, [ebp - 0xa8]
call fcn.00404357
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0xa8]
push eax
lea esi, [ebp - 0x2c]
call fcn.0045a6e0
mov byte [ebp - 4], 0xf
push ebx
push 1
lea ecx, [ebp - 0xa8]
call fcn.004035da
cmp dword [ebp - 0x14], 8
mov ecx, dword [ebp - 0x28]
jae 0x4a7e83
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x4c], 8
mov eax, dword [ebp - 0x60]
jae 0x4a7e8f
lea eax, [ebp - 0x60]
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov byte [ebp - 4], 8
lea eax, [ebp - 0x2c]
push eax
call fcn.0040367e
mov byte [ebp - 4], 6
lea eax, [ebp - 0x64]
push eax
call fcn.0040367e
mov byte [ebp - 4], 5
lea eax, [ebp - 0xd8]
push eax
call fcn.00459090
mov byte [ebp - 4], 4
lea eax, [ebp - 0x48]
push eax
call fcn.0040367e
or dword [ebp - 4], 0xffffffff
push ebx
push 1
lea ecx, [ebp - 0x80]
call fcn.004035da
call fcn.004b81ce
ret