Function at 0x404d00
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
mov eax, 0x14305c
call fcn.00408ca0
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
xor eax, eax
mov dword [ebp - 0x14301c], 0
push eax
push eax
push eax
mov word [ebp - 0x143004], ax
lea eax, [ebp - 0x143014]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x14301c]
mov dword [ebp - 0x143014], 0x10001
push eax
mov dword [ebp - 0x143010], 0xac44
mov dword [ebp - 0x14300c], 0xac44
mov dword [ebp - 0x143008], 0x80001
call dword [sym.imp.WINMM.dll_waveOutOpen]
push 0x142ff8
lea eax, [ebp - 0x143000]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
xor ecx, ecx
cmp dword [0x40b3c8], 6
jl 0x404f13
movaps xmm0, xmmword [0x4098e0]
lea eax, [ecx + 4]
movaps xmm7, xmmword [0x409870]
movaps xmm4, xmmword [0x409900]
movaps xmm5, xmmword [0x4099c0]
movups xmm6, xmmword [0x409860]
movaps xmmword [ebp - 0x143050], xmm0
mov edx, dword [ebp - 0x143050]
nop word [eax + eax]
movd xmm0, ecx
add ecx, 8
pshufd xmm3, xmm0, 0
paddd xmm3, xmm7
movaps xmm0, xmm3
movaps xmm1, xmm3
punpckhdq xmm0, xmm3
movaps xmm2, xmm3
pmuludq xmm0, xmm4
punpckldq xmm1, xmm3
pmuludq xmm1, xmm4
pshufb xmm3, xmm6
shufps xmm1, xmm0, 0xdd
psubd xmm2, xmm1
psrld xmm2, 1
paddd xmm2, xmm1
movd xmm1, edx
psrld xmm2, 5
movaps xmm0, xmm2
punpckldq xmm0, xmm2
pmuludq xmm0, xmm5
punpckhdq xmm2, xmm2
pmuludq xmm2, xmm5
shufps xmm0, xmm2, 0xdd
psrld xmm0, 4
pshufb xmm0, xmm6
psubb xmm1, xmm0
vpmovzxbw ymm1, xmm1
vpmovzxbw ymm0, xmm3
vpmullw ymm0, ymm1, ymm0
vpmovzxwd zmm0, ymm0
vpmovdb xmm0, zmm0
xorps xmm0, xmm3
movd dword [ebp + eax - 0x143004], xmm0
movd xmm0, eax
pshufd xmm3, xmm0, 0
paddd xmm3, xmm7
movaps xmm0, xmm3
movaps xmm1, xmm3
punpckhdq xmm0, xmm3
movaps xmm2, xmm3
pmuludq xmm0, xmm4
punpckldq xmm1, xmm3
pmuludq xmm1, xmm4
pshufb xmm3, xmm6
shufps xmm1, xmm0, 0xdd
psubd xmm2, xmm1
psrld xmm2, 1
paddd xmm2, xmm1
movd xmm1, edx
psrld xmm2, 5
movaps xmm0, xmm2
punpckldq xmm0, xmm2
pmuludq xmm0, xmm5
punpckhdq xmm2, xmm2
pmuludq xmm2, xmm5
shufps xmm0, xmm2, 0xdd
psrld xmm0, 4
pshufb xmm0, xmm6
psubb xmm1, xmm0
vpmovzxbw ymm0, xmm3
vpmovzxbw ymm1, xmm1
vpmullw ymm0, ymm1, ymm0
vpmovzxwd zmm0, ymm0
vpmovdb xmm0, zmm0
xorps xmm0, xmm3
movd dword [ebp + eax - 0x143000], xmm0
add eax, 8
cmp eax, 0x142ffc
jb 0x404de0
jmp 0x404f58
mov eax, 0x8421085
mov esi, ecx
mul ecx
mov eax, 0xcccccccd
sub esi, edx
shr esi, 1
add esi, edx
shr esi, 5
mul esi
mov al, 1
shr edx, 4
sub al, dl
mov byte [ebp - 0x143015], al
movsx edx, byte [ebp - 0x143015]
movsx eax, cl
imul edx, eax
xor dl, cl
mov byte [ebp + ecx - 0x143000], dl
inc ecx
cmp ecx, 0x142ff8
jb 0x404f13
lea eax, [ebp - 0x143000]
mov dword [ebp - 0x143038], 0x142ff8
mov dword [ebp - 0x14303c], eax
lea eax, [ebp - 0x14303c]
push 0x20
push eax
push dword [ebp - 0x14301c]
mov dword [ebp - 0x143034], 0
mov dword [ebp - 0x143030], 0
mov dword [ebp - 0x14302c], 0
mov dword [ebp - 0x143028], 0
mov dword [ebp - 0x143024], 0
mov dword [ebp - 0x143020], 0
call dword [sym.imp.WINMM.dll_waveOutPrepareHeader]
push 0x20
lea eax, [ebp - 0x14303c]
push eax
push dword [ebp - 0x14301c]
call dword [sym.imp.WINMM.dll_waveOutWrite]
push 0x20
lea eax, [ebp - 0x14303c]
push eax
push dword [ebp - 0x14301c]
call dword [sym.imp.WINMM.dll_waveOutUnprepareHeader]
push dword [ebp - 0x14301c]
call dword [sym.imp.WINMM.dll_waveOutClose]
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.00407e8e
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret