Function at 0x41afd6
Capabilities:
Copy file
Delete file
Get common file path
Get file size
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2758
call fcn.00612c90
mov eax, dword [0x6ffe74]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x1384]
push esi
push edi
push 0xa
mov dword [ebp - 0x2750], ecx
lea edi, [ebp - 0x13ac]
pop ecx
push 0x3c0
mov esi, str.MetaProductsMass_DownloaderSites.mcdd
push 0
rep movsd dword es:[edi], dword [esi]
push eax
call fcn.006390b0
add esp, 0xc
push ebx
call fcn.00643470
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
pop ecx
cmp eax, 1
jae 0x41b077
lea eax, [ebp - 0x234c]
push eax
xor eax, eax
push eax
push eax
push 0x1a
push eax
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
test eax, eax
js 0x41b111
lea eax, [ebp - 0x13ac]
mov ebx, 0x3e8
push eax
lea eax, [ebp - 0x234c]
push eax
push 0x6c643c
lea eax, [ebp - 0x7f4]
push ebx
push eax
call fcn.00402e0a
add esp, 0x14
jmp 0x41b08d
push ebx
mov ebx, 0x3e8
lea eax, [ebp - 0x7f4]
push ebx
push eax
call fcn.006494f3
add esp, 0xc
lea eax, [ebp - 0x2734]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
cdq
mov ecx, 0x186a0
idiv ecx
lea eax, [ebp - 0x2734]
push edx
push eax
push str._smasdr__d
lea eax, [ebp - 0xfc4]
push ebx
push eax
call fcn.00402e0a
add esp, 0x14
lea eax, [ebp - 0xfc4]
xor ebx, ebx
push ebx
push eax
lea eax, [ebp - 0x7f4]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x41b0eb
call esi
lea eax, [ebp - 0x7f4]
jmp 0x41b0f1
lea eax, [ebp - 0xfc4]
push ebx
push ebx
push 3
push ebx
push 1
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
mov dword [ebp - 0x2758], ebx
cmp ebx, 0xffffffff
jne 0x41b115
call esi
jmp 0x41b164
xor eax, eax
push eax
push eax
push eax
push 2
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov dword [ebp - 0x2744], eax
test eax, eax
jne 0x41b139
call esi
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x41b164
xor ecx, ecx
push ecx
push ecx
push ecx
push 4
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [ebp - 0x2738], eax
test eax, eax
jne 0x41b177
call esi
push dword [ebp - 0x2744]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push ebx
call esi
xor eax, eax
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.006122f0
leave
ret 4
and dword [ebp - 0x2748], 0
lea eax, [ebp - 0x2748]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp dword [ebp - 0x2748], 0
mov dword [ebp - 0x273c], eax
jne 0x41b153
mov esi, str.description
mov dword [ebp - 0x14], 0x100
lea edi, [ebp - 0x20]
mov dword [ebp - 0x10], 0x100
xor eax, eax
mov byte [ebp - 0xc], al
lea eax, [ebp - 0x20]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.00643470
mov esi, dword [ebp - 0x273c]
mov edx, esi
mov edi, dword [ebp - 0x2738]
pop ecx
push eax
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
call fcn.00417191
pop ecx
pop ecx
test eax, eax
je 0x41b153
lea ecx, [ebp - 0x14]
mov edx, esi
push 9
sub edx, eax
push ecx
add edx, edi
mov ecx, eax
call fcn.00417191
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x41b153
mov ecx, dword [ebp - 0x273c]
mov ebx, dword [ebp - 0x2738]
add ecx, edi
mov dword [ebp - 0x2754], ecx
mov edi, 0x3e8
mov dword [ebp - 0x2740], 2
xor eax, eax
mov byte [ebp - 0x40c], al
mov byte [ebp - 0xbdc], al
mov byte [ebp - 0x1b7c], al
mov byte [ebp - 0x1f64], al
mov byte [ebp - 0x1794], al
lea eax, [esi + 0x86c]
cmp eax, ecx
ja 0x41b3aa
lea eax, [esi + 0x28]
push eax
lea eax, [ebp - 0x1794]
push edi
push eax
call fcn.006494f3
add esp, 0xc
lea eax, [esi + 0x48]
push eax
lea eax, [ebp - 0x1794]
push eax
push str._s_s
lea eax, [ebp - 0x1f64]
push edi
push eax
call fcn.00402e0a
add esp, 0x14
lea eax, [esi + 0x451]
push eax
lea eax, [ebp - 0x1b7c]
push edi
push eax
call fcn.006494f3
add esp, 0xc
lea eax, [esi + 0x551]
push eax
lea eax, [ebp - 0x40c]
push edi
push eax
call fcn.006494f3
add esp, 0xc
lea eax, [ebp - 0x40c]
push eax
call fcn.00643470
mov dword [ebp - 0x274c], eax
pop ecx
cmp eax, 2
jl 0x41b34f
test al, 1
jne 0x41b34f
xor edx, edx
mov ebx, eax
mov cl, byte [ebp + edx - 0x40b]
shl cl, 4
sub cl, 0x51
add cl, byte [ebp + edx - 0x40c]
mov eax, edx
test eax, eax
jns 0x41b2f6
add eax, 1
sar eax, 1
add edx, 2
mov byte [ebp + eax - 0xbdc], cl
cmp edx, ebx
jl 0x41b2d9
mov ebx, dword [ebp - 0x2738]
mov eax, edx
test eax, eax
jns 0x41b315
add eax, 1
sar eax, 1
push 0xffffffffffffffff
mov byte [ebp + eax - 0xbdc], 0
mov ecx, 0x6c5bb9
push ecx
lea eax, [ebp - 0xbdc]
push eax
lea eax, [ebp - 0x1b7c]
push eax
lea eax, [ebp - 0x1f64]
push eax
push ecx
mov ecx, dword [ebp - 0x2750]
push 0x8c
push 5
call fcn.0043ee6b
mov eax, dword [ebp - 0x2740]
add esi, 0xa60
mov byte [ebp - 0xf], al
mov byte [ebp - 0x13], al
lea eax, [ebp - 0x14]
push 9
push eax
push esi
call fcn.00639b07
add esp, 0xc
test eax, eax
je 0x41b399
mov edx, dword [ebp - 0x273c]
lea eax, [ebp - 0x14]
sub esi, 0x12c
sub edx, esi
mov ecx, esi
push 9
push eax
add edx, ebx
call fcn.00417191
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x41b3aa
inc dword [ebp - 0x2740]
mov ecx, dword [ebp - 0x2754]
jmp 0x41b229
push dword [ebp - 0x2738]
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push dword [ebp - 0x2744]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
mov ebx, dword [ebp - 0x2758]
push ebx
call esi
lea ecx, [ebp - 0xfc4]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
xor eax, eax
inc eax
jmp 0x41b166