Function at 0x425ea4
Capabilities:
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb84
cmp dword [0x4855dc], 3
push ebx
push esi
push edi
jl 0x42614f
mov eax, dword [0x4885b4]
mov edi, dword [eax + 8]
push edi
mov dword [esp + 0x10], edi
call fcn.00424109
test al, al
jne 0x42604d
mov eax, dword [str.Crescendo]
xor ebx, ebx
jmp 0x425efa
mov ecx, edi
call fcn.00401031
test eax, eax
je 0x425f03
inc ebx
mov eax, ebx
shl eax, 4
mov eax, dword [eax + 0x485750]
test eax, eax
jne 0x425ee3
jmp 0x42614f
shl ebx, 4
mov edi, dword [ebx + 0x48575c]
mov esi, dword [ebx + 0x485758]
lea eax, [esp + 0x18]
call fcn.00401f05
lea eax, [esp + 0x45]
call fcn.004259e3
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x1c], 0x47bce4
mov dword [esp + 0x49], 0x47bd1c
mov dword [esp + 0x79], esi
mov dword [esp + 0x7d], edi
call fcn.00425a0b
test al, al
jne 0x425f6a
push dword [esp + 0x5d]
mov dword [esp + 0x5d], 0x45e6ac
call dword [sym.imp.GDI32.dll_DeleteObject]
lea eax, [esp + 0x18]
call fcn.00402e02
jmp 0x42614f
push str.shell32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
xor esi, esi
push esi
push 0x20
push 0x20
push 1
push 0x14
push eax
call dword [sym.imp.USER32.dll_LoadImageW]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
push eax
lea edi, [esp + 0x84]
call fcn.00428a32
mov dword [esp + 0x164], esi
push esi
mov esi, edi
mov dword [esp + 0x84], 0x47b528
mov dword [esp + 0xb1], 0x47bedc
mov dword [esp + 0xe1], 0x47bef0
call fcn.00428aae
push 1
push 3
push dword [ebx + 0x485754]
lea eax, [esp + 0x20]
push eax
xor eax, eax
lea ecx, [esp + 0xed]
call fcn.00411a56
mov eax, edi
xor esi, esi
call fcn.0040e824
push dword [esp + 0x10]
call dword [sym.imp.USER32.dll_DestroyIcon]
cmp dword [esp + 0x14], esi
jne 0x425f4a
call fcn.00426156
push 0x50
pop edi
jmp 0x42601f
push 0x7d
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, edi
dec edi
test eax, eax
jl 0x42602c
push dword [esp + 0xc]
call fcn.00424109
test al, al
je 0x426010
push dword [esp + 0x5d]
mov dword [esp + 0x5d], 0x45e6ac
call dword [sym.imp.GDI32.dll_DeleteObject]
lea eax, [esp + 0x18]
call fcn.00402e02
mov edi, dword [esp + 0xc]
jmp 0x42604f
xor esi, esi
lea eax, [esp + 0x370]
push eax
push esi
push esi
push 0x26
push esi
mov word [esp + 0x384], si
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
cmp word [esp + 0x370], si
je 0x42614f
push edi
push edi
push str.NCH_Software_s_s.exe
mov esi, 0x104
lea edi, [esp + 0x584]
call fcn.00417ed8
add esp, 0xc
mov ebx, 0x459720
push ebx
mov eax, edi
push eax
lea eax, [esp + 0x378]
push eax
lea eax, [esp + 0x174]
push eax
call fcn.00413e38
lea eax, [esp + 0x168]
push eax
call fcn.00401504
test al, al
jne 0x426101
push dword [esp + 0xc]
push dword [esp + 0x10]
push str.NCH_Swift_Sound_s_s.exe
call fcn.00417ed8
add esp, 0xc
push ebx
mov eax, edi
push eax
lea eax, [esp + 0x378]
push eax
lea eax, [esp + 0x174]
push eax
call fcn.00413e38
lea eax, [esp + 0x168]
push eax
call fcn.00401504
test al, al
je 0x42614f
cmp dword [0x4855dc], 3
jle 0x426114
mov eax, dword [0x4885b4]
mov eax, dword [eax + 0xc]
jmp 0x426116
xor eax, eax
test eax, eax
je 0x426140
push eax
lea eax, [esp + 0x16c]
push eax
push str._s___s_
mov esi, 0x208
lea edi, [esp + 0x78c]
call fcn.00417ed8
add esp, 0xc
mov eax, edi
jmp 0x426147
lea eax, [esp + 0x168]
push 1
push eax
call fcn.0040b9fe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret