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

Disassembly:
push 0xcc
mov eax, 0x4dc3b8
call fcn.004b3d87
xor ebx, ebx
mov edi, ecx
mov dword [ebp - 0x88], ebx
cmp dword [edi + 0xc0], ebx
jne 0x4a3788
push str.AI_EXTERNALUIUNINSTALLERNAME
lea ecx, [ebp - 0x2c]
call fcn.0040417e
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 0x4a3788
mov byte [ebp - 0x81], 1
jmp 0x4a3791
xor esi, esi
mov byte [ebp - 0x81], bl
inc esi
mov dword [ebp - 4], ebx
test byte [ebp - 0x88], 2
je 0x4a37b1
and dword [ebp - 0x88], 0xfffffffd
push ebx
push esi
lea ecx, [ebp - 0xa8]
call fcn.00403537
or dword [ebp - 4], 0xffffffff
test byte [ebp - 0x88], 1
je 0x4a37cf
and dword [ebp - 0x88], 0xfffffffe
push ebx
push esi
lea ecx, [ebp - 0x2c]
call fcn.00403537
cmp byte [ebp - 0x81], bl
je 0x4a3ad7
push str.Installed
lea ecx, [ebp - 0x2c]
call fcn.0040417e
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.00403537
or dword [ebp - 4], 0xffffffff
push ebx
push esi
lea ecx, [ebp - 0x2c]
call fcn.00403537
cmp byte [ebp - 0x81], bl
je 0x4a3ad7
lea eax, [ebp - 0x80]
push eax
mov ecx, edi
call fcn.004a3588
mov dword [ebp - 4], 4
lea eax, [ebp - 0x48]
push eax
call fcn.00457960
mov byte [ebp - 4], 5
lea eax, [ebp - 0xd8]
push eax
call fcn.00456420
mov byte [ebp - 4], 6
mov eax, dword [edi + 0xc4]
cmp dword [eax + 0x138], ebx
je 0x4a38c6
push eax
lea esi, [ebp - 0xa8]
call fcn.0049aded
mov byte [ebp - 4], 7
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x48]
call fcn.00403e21
mov byte [ebp - 4], 6
mov eax, esi
push eax
call fcn.004035db
mov eax, dword [edi + 0xc4]
add eax, 0x124
push eax
lea esi, [ebp - 0x48]
call fcn.00419511
mov eax, esi
push eax
lea ebx, [ebp - 0xd8]
call fcn.00456910
xor ebx, ebx
lea eax, [ebp - 0x64]
push eax
call fcn.00457960
mov byte [ebp - 4], 8
mov edi, 0x4fe3fc
cmp dword [ebp - 0x34], ebx
je 0x4a38f8
cmp dword [ebp - 0x30], 8
mov eax, dword [ebp - 0x44]
jae 0x4a38e9
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4a39b4
lea esi, [ebp - 0xa8]
call fcn.00457f90
mov byte [ebp - 4], 9
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x48]
call fcn.00403e21
mov byte [ebp - 4], 8
mov eax, esi
push eax
call fcn.004035db
lea esi, [ebp - 0xa8]
call fcn.00457e10
mov byte [ebp - 4], 0xa
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x64]
call fcn.00403e21
mov byte [ebp - 4], 8
mov eax, esi
push eax
call fcn.004035db
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x80]
call fcn.00457a30
mov byte [ebp - 4], 0xb
lea edx, [ebp - 0xa8]
mov ecx, eax
call fcn.00458d30
mov byte [ebp - 4], 0xc
push eax
lea esi, [ebp - 0x64]
call fcn.00419511
mov byte [ebp - 4], 0xb
push ebx
push 1
lea ecx, [ebp - 0xa8]
call fcn.00403537
mov byte [ebp - 4], 8
lea eax, [ebp - 0x2c]
push eax
call fcn.004035db
push edi
lea ecx, [ebp - 0x2c]
call fcn.0040417e
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0x2c]
push eax
call fcn.00457b40
mov byte [ebp - 4], 8
push ebx
push 1
lea ecx, [ebp - 0x2c]
call fcn.00403537
mov eax, dword [ebp - 0x7c]
push 8
pop esi
cmp dword [ebp - 0x68], esi
jae 0x4a39c2
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x8c]
push eax
call fcn.004046e4
mov byte [ebp - 4], 0xe
push ebx
push ebx
lea ecx, [ebp - 0x8c]
call fcn.0045dce0
pop ecx
pop ecx
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x8c]
call fcn.00402907
mov ecx, dword [ebp - 0x7c]
cmp dword [ebp - 0x68], esi
jae 0x4a39fc
lea ecx, [ebp - 0x7c]
mov eax, dword [ebp - 0x44]
cmp dword [ebp - 0x30], esi
jae 0x4a3a07
lea eax, [ebp - 0x44]
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
cmp dword [ebp - 0x50], ebx
je 0x4a3a9e
mov eax, dword [ebp - 0x60]
cmp dword [ebp - 0x4c], esi
jae 0x4a3a24
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4a3a9e
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x80]
call fcn.00457a30
mov byte [ebp - 4], 0xf
push edi
lea ecx, [ebp - 0xa8]
call fcn.0040417e
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0xa8]
push eax
lea esi, [ebp - 0x2c]
call fcn.00457b40
mov byte [ebp - 4], 0xf
push ebx
push 1
lea ecx, [ebp - 0xa8]
call fcn.00403537
cmp dword [ebp - 0x14], 8
mov ecx, dword [ebp - 0x28]
jae 0x4a3a7c
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x4c], 8
mov eax, dword [ebp - 0x60]
jae 0x4a3a88
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.004035db
mov byte [ebp - 4], 6
lea eax, [ebp - 0x64]
push eax
call fcn.004035db
mov byte [ebp - 4], 5
lea eax, [ebp - 0xd8]
push eax
call fcn.00456480
mov byte [ebp - 4], 4
lea eax, [ebp - 0x48]
push eax
call fcn.004035db
or dword [ebp - 4], 0xffffffff
push ebx
push 1
lea ecx, [ebp - 0x80]
call fcn.00403537
call fcn.004b3e0a
ret