Function at 0x41f3fa
Capabilities:
Copy file
Create directory
Delete file
Get session user name

Disassembly:
push 0x224
mov eax, 0x475f17
call fcn.0045bedd
mov edi, ecx
push str.TransferProductManifest...
lea ecx, [ebp - 0x220]
call fcn.004020a6
xor ebx, ebx
push ebx
lea eax, [ebp - 0x220]
push eax
push 2
mov dword [ebp - 4], ebx
call fcn.004152d1
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x220]
add esp, 0xc
add ecx, 0xfffffff0
call fcn.004025d2
lea eax, [edi + 0x18]
push eax
lea ecx, [edi + 0xc]
push ecx
lea eax, [ebp - 0x228]
push eax
call fcn.00401de9
add esp, 0xc
lea esi, [ebp - 0x228]
mov dword [ebp - 4], 1
call fcn.0041c6d0
test eax, eax
jne 0x41f590
push 0x200
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push ebx
push eax
call fcn.00459cf0
add esp, 0xc
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x218]
push eax
mov dword [ebp - 0x230], 0x101
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
test eax, eax
je 0x41f6b2
lea eax, [ebp - 0x218]
push eax
lea eax, [edi + 0xc]
push eax
lea eax, [ebp - 0x224]
push eax
call fcn.0040adb6
add esp, 0xc
push eax
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.00402573
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x224]
add ecx, 0xfffffff0
call fcn.004025d2
push ebx
push dword [ebp - 0x228]
push ebx
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov esi, eax
cmp esi, 0xa1
je 0x41f644
cmp esi, 3
je 0x41f644
push 0x5c
lea ecx, [ebp - 0x228]
call fcn.004227dd
mov eax, dword [edi + 0x18]
push dword [eax - 0xc]
lea ecx, [ebp - 0x228]
push eax
call fcn.00401f27
lea esi, [ebp - 0x228]
call fcn.0041c6d0
test eax, eax
jne 0x41f58d
lea eax, [ebp - 0x219]
push eax
mov byte [ebp - 0x219], bl
push 5
mov edi, str.Get_Product_Manifest_Result
mov ebx, 0x4c46e8
call fcn.0040b14d
push str.Cannot_transfer_downloaded_manifest__CleanDestinationPath_failed
lea ecx, [ebp - 0x220]
call fcn.004020a6
xor esi, esi
push esi
lea eax, [ebp - 0x220]
push eax
push 1
mov byte [ebp - 4], 4
call fcn.004152d1
add esp, 0xc
jmp 0x41f68e
mov byte [edi + 0x1c], bl
push ebx
push dword [ebp - 0x228]
lea esi, [edi + 4]
mov eax, dword [esi]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x41f73b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
mov dword [ebp - 0x220], eax
lea eax, [ebp - 0x22c]
push str.Copy_Manifest
push eax
call fcn.00401e40
add esp, 0xc
push str._failed:
push eax
lea eax, [ebp - 0x224]
push eax
mov byte [ebp - 4], 7
call fcn.0040adb6
add esp, 0xc
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x22c]
add ecx, 0xfffffff0
call fcn.004025d2
push dword [ebp - 0x220]
lea esi, [ebp - 0x224]
push 1
call fcn.004153a2
pop ecx
pop ecx
lea eax, [ebp - 0x219]
push eax
push dword [ebp - 0x220]
mov byte [ebp - 0x219], bl
mov edi, str.Transfer_Manifest_Failed
mov ebx, 0x4c46e8
call fcn.0040b14d
mov ecx, dword [ebp - 0x224]
add ecx, 0xfffffff0
call fcn.004025d2
mov esi, dword [ebp - 0x220]
jmp 0x41f69c
lea eax, [ebp - 0x219]
push eax
mov byte [ebp - 0x219], bl
push esi
mov edi, str.Get_Product_Manifest_Result
mov ebx, 0x4c46e8
call fcn.0040b14d
push str.SHCreateDirectoryEx___failed:
lea ecx, [ebp - 0x220]
call fcn.004020a6
push esi
lea eax, [ebp - 0x228]
push eax
lea eax, [ebp - 0x220]
push eax
push 1
mov byte [ebp - 4], 3
call fcn.00414e01
add esp, 0x10
mov ecx, dword [ebp - 0x220]
add ecx, 0xfffffff0
call fcn.004025d2
mov ecx, dword [ebp - 0x228]
add ecx, 0xfffffff0
call fcn.004025d2
mov eax, esi
call fcn.0045bf60
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
lea eax, [ebp - 0x219]
push eax
mov byte [ebp - 0x219], bl
push esi
mov edi, str.Get_Product_Manifest_Result
mov ebx, 0x4c46e8
call fcn.0040b14d
push str.GetUserName_failed
lea ecx, [ebp - 0x224]
call fcn.004020a6
push str.Cannot_transfer_downloaded_manifest_
lea ecx, [ebp - 0x220]
mov byte [ebp - 4], 5
call fcn.004020a6
push esi
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x220]
push eax
push 1
mov byte [ebp - 4], 6
call fcn.00414e01
mov ecx, dword [ebp - 0x220]
add esp, 0x10
add ecx, 0xfffffff0
call fcn.004025d2
mov ecx, dword [ebp - 0x224]
add ecx, 0xfffffff0
call fcn.004025d2
xor esi, esi
jmp 0x41f69c
push str.Transfered:
lea ecx, [ebp - 0x224]
call fcn.004020a6
push ebx
lea eax, [ebp - 0x228]
push eax
lea eax, [ebp - 0x224]
push eax
push 2
mov byte [ebp - 4], 0xa
call fcn.00414e01
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x224]
add esp, 0x10
add ecx, 0xfffffff0
call fcn.004025d2
push dword [esi]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x41f7c5
push str.failed_to_cleanup_file:
lea ecx, [ebp - 0x224]
call fcn.004020a6
mov byte [ebp - 4], 0xb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
lea eax, [ebp - 0x224]
push eax
push 1
call fcn.00414e01
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x224]
add esp, 0x10
add ecx, 0xfffffff0
call fcn.004025d2
lea eax, [ebp - 0x228]
push eax
mov ecx, esi
call fcn.00402573
jmp 0x41f734