Function at 0x404f80
Capabilities:
Create directory
Create process on windows
Create thread
Delete file
Enumerate processes
Get common file path
Hide graphical window
Open clipboard
Write clipboard data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2ac
mov eax, dword [0x43c040]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
push esi
push edi
mov edi, ecx
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x322
jg 0x4052c6
je 0x404fd3
mov eax, ecx
sub eax, 2
jne case.0x4052e7.805
push dword [edi + 8]
call dword [sym.imp.USER32.dll_DestroyWindow]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041bbdc
mov esp, ebp
pop ebp
ret 0x10
cmp dword [edi + 0x24], 0
mov eax, dword [edi + 0x88]
mov ecx, eax
jne 0x405126
cmp eax, 3
jge 0x4052a3
cmp word [edi + 0x120], 0
lea esi, [edi + 0x120]
jne 0x405023
push 0
push 0
push str.Destination_folder_not_set._Please_select_a_destination_folder_in_the_options.
push dword [edi + 0xc]
call dword [sym.imp.USER32.dll_MessageBoxW]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041bbdc
mov esp, ebp
pop ebp
ret 0x10
lea eax, [ebp - 0x278]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
je 0x405046
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
test byte [ebp - 0x278], 0x10
jne 0x40504f
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
xor eax, eax
mov word [ebp - 0x230], ax
lea eax, [ebp - 0x230]
push eax
push 0
push 0x435d8c
push esi
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x405101
push 0
push 0x80
push 3
push 0
push 0
push 0xc0000000
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x4050f4
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [edi + 0x38]
mov dword [edi + 0xa374], 1
test ecx, ecx
je 0x4050c8
mov edx, 0x1388
call fcn.004102b0
lea eax, [edi + 0x30]
push eax
push 0
push edi
push 0x402c60
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [edi + 0x24], eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041bbdc
mov esp, ebp
pop ebp
ret 0x10
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0
push 0
push str.Error_reading___writing_to_the_destination_folder._Please_change_the_folder_permissions_or_select_another_destination_folder_in_the_options.
push dword [edi + 0xc]
call dword [sym.imp.USER32.dll_MessageBoxW]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041bbdc
mov esp, ebp
pop ebp
ret 0x10
cmp eax, 3
jne 0x4052a3
cmp dword [edi + 0x1748], 0
jne 0x405243
cmp dword [edi + 0x1754], 0
jne 0x40515e
push str.:stream
push dword [edi + 0x1738]
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
jne 0x405243
cmp dword [edi + 0x64], 0
jne 0x40522d
cmp dword [edi + 0x3c], 0
je 0x4056f4
cmp dword [edi + 0x88], 3
jne 0x4056f4
xor ebx, ebx
push ebx
push 2
call dword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov esi, eax
cmp esi, 0xffffffff
je 0x4051e2
lea eax, [ebp - 0x258]
mov dword [ebp - 0x258], 0x22c
push eax
push esi
call dword [sym.imp.KERNEL32.dll_Process32FirstW]
test eax, eax
je 0x4051db
nop dword [eax]
mov eax, dword [ebp - 0x240]
cmp eax, dword [edi + 0x3c]
jne 0x4051c9
push dword [ebp - 0x250]
call dword [sym.imp.KERNEL32.dll_DebugActiveProcess]
mov ebx, eax
lea eax, [ebp - 0x258]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_Process32NextW]
test eax, eax
jne 0x4051b0
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [edi + 0x3c]
call dword [sym.imp.KERNEL32.dll_DebugActiveProcess]
test ebx, ebx
jne 0x4051f7
test eax, eax
je 0x4056f4
mov dword [edi + 0x64], 1
push str.Resume
mov ecx, dword [edi + 0x18]
call fcn.00411640
push eax
push 0x322
push dword [edi + 8]
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041bbdc
mov esp, ebp
pop ebp
ret 0x10
mov ecx, edi
call fcn.0040af20
test eax, eax
je 0x4056f4
push str.Pause
jmp 0x405203
push 0
push 0x322
push dword [edi + 8]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
mov ecx, dword [edi + 0x18]
push str.Finalizing...
call fcn.00411640
push eax
push 0x322
push dword [edi + 8]
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
mov ecx, edi
call fcn.0040af20
mov ecx, dword [edi + 0x3c]
test ecx, ecx
je 0x4056f4
or edx, 0xffffffff
call fcn.004102b0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041bbdc
mov esp, ebp
pop ebp
ret 0x10
cmp ecx, 5
jne 0x4056f4
mov ecx, edi
call fcn.00404ed0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041bbdc
mov esp, ebp
pop ebp
ret 0x10
cmp ecx, 0x5dc
jg 0x405519
je 0x405472
lea eax, [ecx - 0x323]
cmp eax, 4
ja case.0x4052e7.805
jmp dword [eax*4 + 0x405708]
mov eax, dword [edi]
mov esi, dword [edi + 0xc]
push 0x400
push 0x40
mov dword [ebp - 0x27c], eax
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
test ebx, ebx
je 0x4056f4
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
test eax, eax
je 0x405349
mov dword [eax + 0xe], 0x5000a5
push 0x4343bc
xor ecx, ecx
mov dword [eax + 0xa], ecx
mov dword [eax + 0x12], ecx
mov dword [eax + 4], ecx
mov dword [eax], 0x80c80880
add eax, 0x16
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push edi
push 0x402bf0
push esi
push ebx
push dword [ebp - 0x27c]
call dword [sym.imp.USER32.dll_DialogBoxIndirectParamW]
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
cmp esi, 1
jne 0x4056f4
cmp dword [edi + 0xa364], 0
ja 0x4050c8
lea eax, [edi + 0x2c]
push eax
push 0
push edi
push 0x402c40
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [edi + 0x20], eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041bbdc
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [edi]
mov esi, dword [edi + 0xc]
push 0x400
push 0x40
mov dword [ebp - 0x27c], eax
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
test ebx, ebx
je 0x4056f4
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
test eax, eax
je 0x405349
mov dword [eax + 0xe], 0x3700a5
push str.password
jmp 0x405327
cmp dword [edi + 0x24], 0
je 0x4056f4
cmp dword [edi + 0x88], 3
jne 0x4056f4
mov esi, dword [sym.imp.USER32.dll_GetDlgItem]
push 0
push 0x322
push dword [edi + 8]
call esi
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
push 0
push 0x323
push dword [edi + 8]
call esi
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 2
push dword [edi + 8]
call esi
push eax
push 2
push 0x111
push dword [edi + 8]
call dword [sym.imp.USER32.dll_PostMessageW]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041bbdc
mov esp, ebp
pop ebp
ret 0x10
mov ecx, edi
call fcn.00404be0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041bbdc
mov esp, ebp
pop ebp
ret 0x10
cmp dword [edi + 0x88], 3
jge 0x4052ac
cmp dword [edi + 0xa370], 0
je 0x4056f4
mov eax, dword [edi]
mov ebx, dword [edi + 0xc]
push 0x400
push 0x40
mov dword [ebp - 0x27c], eax
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
test esi, esi
je 0x4056f4
push esi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
test eax, eax
je 0x4054eb
xor ecx, ecx
mov dword [eax], 0x80c80880
mov dword [eax + 4], 0
mov dword [eax + 0xa], ecx
mov dword [eax + 0xe], 0x9600fa
mov dword [eax + 0x12], ecx
add eax, 0x16
push str.Playlist
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push edi
push 0x402ba0
push ebx
push esi
push dword [ebp - 0x27c]
call dword [sym.imp.USER32.dll_DialogBoxIndirectParamW]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041bbdc
mov esp, ebp
pop ebp
ret 0x10
cmp ecx, 0x70a
jg 0x40564a
je 0x4055c5
cmp ecx, 0x5dd
je 0x405574
cmp ecx, 0x709
jne case.0x4052e7.805
mov eax, dword [edi + 0x98]
test eax, eax
je 0x4056f4
push 1
push 0
push 0
push eax
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041bbdc
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [ebp - 0x14]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
movups xmm0, xmmword [ebp - 0x14]
push 0
push dword [edi + 0x1734]
mov dword [ebp - 0x28], 0x14
movups xmmword [ebp - 0x24], xmm0
call dword [sym.imp.USER32.dll_GetSubMenu]
lea ecx, [ebp - 0x28]
push ecx
push dword [edi + 8]
push dword [ebp - 8]
push dword [ebp - 0x14]
push 0x40
push eax
call dword [sym.imp.USER32.dll_TrackPopupMenuEx]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041bbdc
mov esp, ebp
pop ebp
ret 0x10
mov ebx, dword [edi + 0x98]
test ebx, ebx
je 0x4056f4
push 0
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x4056f4
call dword [sym.imp.USER32.dll_EmptyClipboard]
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edi, [eax*2 + 2]
push edi
push 2
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
test esi, esi
je 0x405631
push esi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
test eax, eax
je 0x405631
shr edi, 1
je 0x405621
push ecx
push ebx
push ecx
mov edx, edi
mov ecx, eax
call fcn.00401190
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
push 0xd
call dword [sym.imp.USER32.dll_SetClipboardData]
call dword [sym.imp.USER32.dll_CloseClipboard]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041bbdc
mov esp, ebp
pop ebp
ret 0x10
cmp ecx, 0x70c
je 0x4056a1
lea eax, [ecx - 0x7d0]
cmp eax, 0x3f
ja 0x4056f4
mov eax, dword [edi + 0x1758]
add eax, 0x7d0
cmp ecx, eax
jae 0x4056f4
lea eax, [ecx - 0x7d0]
mov ecx, edi
mov dword [edi + 0xa360], eax
call fcn.00406540
mov ecx, edi
call fcn.00408280
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041bbdc
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [edi + 0xa380]
xor eax, eax
test ecx, ecx
mov dword [ebp - 0x2ac], 0x30
mov edx, 8
mov dword [ebp - 0x2a8], 1
sete al
mov dword [edi + 0xa380], eax
xor eax, eax
test ecx, ecx
cmove eax, edx
mov dword [ebp - 0x2a0], eax
lea eax, [ebp - 0x2ac]
push eax
push 0
push 0x70c
push dword [edi + 0x1730]
call dword [sym.imp.USER32.dll_SetMenuItemInfoW]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041bbdc
mov esp, ebp
pop ebp
ret 0x10