Function at 0x4f1d10
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x10
push esi
mov esi, edx
mov edx, ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 8], esi
mov dword [esp + 4], edx
push edi
mov edi, dword [edx + 4]
mov dword [esp + 0x14], edi
cmp ecx, 0x80
jbe 0x4f1dd7
mov edx, dword [esp + 0xc]
mov edi, ecx
mov eax, ecx
shr edi, 2
mov esi, ecx
shr eax, 1
mov ecx, dword [esp + 8]
push edi
mov dword [esp + 0x14], eax
shr esi, 3
call fcn.004f1d10
mov eax, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0xc]
push esi
lea edx, [ecx + eax*4]
mov ecx, dword [esp + 0xc]
call fcn.004f1d10
mov ecx, dword [esp + 0x10]
add esp, 4
push esi
mov esi, dword [esp + 0x14]
lea eax, [edi + esi]
lea edx, [ecx + eax*4]
mov ecx, dword [esp + 0xc]
call fcn.004f1d10
mov eax, dword [ebp + 8]
add esp, 4
mov ecx, dword [esp + 0xc]
push edi
lea edx, [ecx + eax*4]
mov ecx, dword [esp + 0xc]
call fcn.004f1d10
mov ecx, dword [esp + 0xc]
add esp, 4
push edi
mov edi, dword [ebp + 8]
lea eax, [esi + edi]
mov esi, dword [esp + 0x10]
lea edx, [esi + eax*4]
call fcn.004f1d10
mov eax, dword [esp + 0xc]
add esp, 4
bsf ecx, edi
mov eax, dword [eax + 0x18]
mov ecx, dword [eax + ecx*4 - 0x10]
jmp 0x4f20f3
jne 0x4f1f2c
mov eax, dword [edx + 0x18]
xor ecx, ecx
mov edx, esi
mov eax, dword [eax + 4]
lea eax, [edi + eax*8]
push eax
push 0x20
mov dword [esp + 0x18], eax
call fcn.004f0a10
movaps xmm7, xmmword [0x739f80]
lea eax, [esi + 0x100]
add esp, 8
mov ecx, edi
mov edx, 2
nop dword [eax]
movups xmm4, xmmword [eax + 0x40]
movaps xmm0, xmm4
movups xmm5, xmmword [eax]
shufps xmm0, xmm4, 0xb1
mulps xmm0, xmmword [ecx + 0x10]
mulps xmm4, xmmword [ecx]
movups xmm6, xmmword [eax + 0x20]
subps xmm4, xmm0
movups xmm0, xmmword [eax + 0x60]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xb1
mulps xmm0, xmmword [ecx]
mulps xmm1, xmmword [ecx + 0x10]
add ecx, 0x20
addps xmm1, xmm0
movaps xmm2, xmm1
addps xmm2, xmm4
subps xmm4, xmm1
movaps xmm0, xmm2
addps xmm0, xmm5
xorps xmm4, xmm7
shufps xmm4, xmm4, 0xb1
subps xmm5, xmm2
movups xmmword [eax], xmm0
movaps xmm0, xmm6
subps xmm0, xmm4
addps xmm4, xmm6
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x40], xmm5
movups xmmword [eax + 0x60], xmm4
add eax, 0x10
sub edx, 1
jne 0x4f1e10
lea eax, [esi + 0x180]
lea ecx, [edx + 2]
movups xmm4, xmmword [eax + 0x40]
movaps xmm0, xmm4
movups xmm5, xmmword [eax]
shufps xmm0, xmm4, 0xb1
mulps xmm0, xmmword [edi + 0x10]
mulps xmm4, xmmword [edi]
movups xmm6, xmmword [eax + 0x20]
subps xmm4, xmm0
movups xmm0, xmmword [eax + 0x60]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xb1
mulps xmm0, xmmword [edi]
mulps xmm1, xmmword [edi + 0x10]
add edi, 0x20
addps xmm1, xmm0
movaps xmm2, xmm1
addps xmm2, xmm4
subps xmm4, xmm1
movaps xmm0, xmm2
addps xmm0, xmm5
xorps xmm4, xmm7
shufps xmm4, xmm4, 0xb1
subps xmm5, xmm2
movups xmmword [eax], xmm0
movaps xmm0, xmm6
subps xmm0, xmm4
addps xmm4, xmm6
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x40], xmm5
movups xmmword [eax + 0x60], xmm4
add eax, 0x10
sub ecx, 1
jne 0x4f1e86
mov edi, dword [esp + 0x10]
lea edx, [esi + 0x200]
push edi
push 0x20
call fcn.004f0a10
push edi
push 0x20
lea edx, [esi + 0x300]
xor ecx, ecx
call fcn.004f0a10
mov eax, dword [esp + 0x18]
add esp, 0x10
mov edi, 0x80
mov eax, dword [eax + 0x18]
mov ecx, dword [eax + 0xc]
jmp 0x4f20f3
cmp ecx, 0x40
jne 0x4f20c8
movaps xmm7, xmmword [0x739f80]
lea eax, [esi + 0x40]
mov ecx, edi
mov dword [esp + 0x10], 2
nop dword [eax]
movups xmm4, xmmword [eax]
movaps xmm0, xmm4
movups xmm5, xmmword [eax - 0x40]
shufps xmm0, xmm4, 0xb1
mulps xmm0, xmmword [ecx + 0x10]
mulps xmm4, xmmword [ecx]
movups xmm6, xmmword [eax - 0x20]
subps xmm4, xmm0
movups xmm0, xmmword [eax + 0x20]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xb1
mulps xmm0, xmmword [ecx]
mulps xmm1, xmmword [ecx + 0x10]
add ecx, 0x20
addps xmm1, xmm0
movaps xmm2, xmm1
addps xmm2, xmm4
subps xmm4, xmm1
movaps xmm0, xmm2
addps xmm0, xmm5
xorps xmm4, xmm7
shufps xmm4, xmm4, 0xb1
subps xmm5, xmm2
movups xmmword [eax - 0x40], xmm0
movaps xmm0, xmm6
subps xmm0, xmm4
addps xmm4, xmm6
movups xmmword [eax - 0x20], xmm0
movups xmmword [eax], xmm5
movups xmmword [eax + 0x20], xmm4
add eax, 0x10
sub dword [esp + 0x10], 1
jne 0x4f1f50
mov ecx, edi
mov dword [esp + 0x10], 2
lea eax, [esi + 0x100]
nop
movups xmm4, xmmword [eax + 0x40]
movaps xmm0, xmm4
movups xmm5, xmmword [eax]
shufps xmm0, xmm4, 0xb1
mulps xmm0, xmmword [ecx + 0x10]
mulps xmm4, xmmword [ecx]
movups xmm6, xmmword [eax + 0x20]
subps xmm4, xmm0
movups xmm0, xmmword [eax + 0x60]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xb1
mulps xmm0, xmmword [ecx]
mulps xmm1, xmmword [ecx + 0x10]
add ecx, 0x20
addps xmm1, xmm0
movaps xmm2, xmm1
addps xmm2, xmm4
subps xmm4, xmm1
movaps xmm0, xmm2
addps xmm0, xmm5
xorps xmm4, xmm7
shufps xmm4, xmm4, 0xb1
subps xmm5, xmm2
movups xmmword [eax], xmm0
movaps xmm0, xmm6
subps xmm0, xmm4
addps xmm4, xmm6
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x40], xmm5
movups xmmword [eax + 0x60], xmm4
add eax, 0x10
sub dword [esp + 0x10], 1
jne 0x4f1fd0
lea eax, [esi + 0x180]
mov ecx, 2
nop word [eax + eax]
movups xmm4, xmmword [eax + 0x40]
movaps xmm0, xmm4
movups xmm5, xmmword [eax]
shufps xmm0, xmm4, 0xb1
mulps xmm0, xmmword [edi + 0x10]
mulps xmm4, xmmword [edi]
movups xmm6, xmmword [eax + 0x20]
subps xmm4, xmm0
movups xmm0, xmmword [eax + 0x60]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xb1
mulps xmm0, xmmword [edi]
mulps xmm1, xmmword [edi + 0x10]
add edi, 0x20
addps xmm1, xmm0
movaps xmm2, xmm1
addps xmm2, xmm4
subps xmm4, xmm1
movaps xmm0, xmm2
addps xmm0, xmm5
xorps xmm4, xmm7
shufps xmm4, xmm4, 0xb1
subps xmm5, xmm2
movups xmmword [eax], xmm0
movaps xmm0, xmm6
subps xmm0, xmm4
addps xmm4, xmm6
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x40], xmm5
movups xmmword [eax + 0x60], xmm4
add eax, 0x10
sub ecx, 1
jne 0x4f2050
mov eax, dword [edx + 0x18]
lea edi, [ecx + 0x40]
mov ecx, dword [eax + 8]
jmp 0x4f20f3
cmp ecx, 0x20
je 0x4f20e8
push 0x408
push str.D:devwewindows_src_ffts_src_ffts_static.c
push str.N__32
call fcn.005d018c
mov edx, dword [esp + 0x14]
add esp, 0xc
mov eax, dword [edx + 0x18]
mov edi, 0x20
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov edx, esi
lea eax, [eax + ecx*8]
xor ecx, ecx
push eax
push edi
call fcn.004f0a10
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret