Function at 0x180129cc0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rdi
push r12
push r15
sub rsp, 0x88
mov rax, qword [0x18025cbc0]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov r12d, dword [rcx + 8]
xor r8d, r8d
test r12d, r12d
mov dword [rsp + 0x30], 1
mov r15, rdx
mov rdi, rcx
cmovle r12d, r8d
mov edx, r8d
nop dword [rax]
movsx eax, word [rdi + rdx + 0xc]
lea rcx, [rdi + rdx]
imul eax, dword [rsp + rdx + 0x30]
lea rdx, [rdx + 4]
movsxd rbp, r8d
inc r8d
cmp word [rcx + 0xe], 1
mov dword [rsp + rdx + 0x30], eax
jne 0x180129d00
lea eax, [r8 + r8]
movsxd rcx, eax
movsx r9d, word [rdi + rcx*2 + 0xa]
test ebp, ebp
js 0x180129fad
mov qword [rsp + 0xc0], rbx
lea rbx, [rbp*4]
mov qword [rsp + 0xc8], rsi
movaps xmmword [rsp + 0x70], xmm6
movss xmm6, dword [0x1802167a8]
movaps xmmword [rsp + 0x60], xmm7
movss xmm7, dword [0x18017cfe0]
mov qword [rsp + 0x80], r14
test ebp, ebp
je 0x180129d7d
movsx esi, word [rbx + rdi + 0xa]
jmp 0x180129d82
mov esi, 1
movsx ecx, word [rbx + rdi + 0xc]
sub ecx, 2
je 0x180129e1e
sub ecx, 1
je 0x180129df5
sub ecx, 1
je 0x180129dcc
cmp ecx, 1
jne 0x180129f7b
mov r8d, dword [rsp + rbx + 0x30]
mov ecx, r12d
mov eax, r8d
mov dword [rsp + 0x28], esi
shl eax, cl
mov rcx, r15
mov dword [rsp + 0x20], r8d
mov r8, rdi
movsxd rdx, eax
call fcn.180129780
jmp 0x180129f7b
mov r8d, dword [rsp + rbx + 0x30]
mov ecx, r12d
mov eax, r8d
mov dword [rsp + 0x28], esi
shl eax, cl
mov rcx, r15
mov dword [rsp + 0x20], r8d
mov r8, rdi
movsxd rdx, eax
call fcn.1801290d0
jmp 0x180129f7b
mov r8d, dword [rsp + rbx + 0x30]
mov ecx, r12d
mov eax, r8d
mov dword [rsp + 0x28], esi
shl eax, cl
mov rcx, r15
mov dword [rsp + 0x20], r8d
mov r8, rdi
movsxd rdx, eax
call fcn.180128ed0
jmp 0x180129f7b
mov r14d, dword [rsp + rbx + 0x30]
cmp r9d, 4
je 0x180129e42
mov r8d, 0x4c
lea rdx, str.D:_aMilodyMilodyextopusceltkiss_fft.c
lea rcx, str.assertion_failed:_m4
call fcn.18011ba50
test r14d, r14d
jle 0x180129f7b
lea rax, [r15 + 0x28]
mov rcx, r14
movss xmm2, dword [rax - 0x28]
movss xmm3, dword [rax - 8]
movaps xmm0, xmm2
movss xmm4, dword [rax - 4]
subss xmm0, xmm3
addss xmm2, xmm3
movss dword [rax - 8], xmm0
movss xmm1, dword [rax - 0x24]
movaps xmm0, xmm1
addss xmm1, xmm4
subss xmm0, xmm4
movss dword [rax - 4], xmm0
movss dword [rax - 0x28], xmm2
movss xmm2, dword [rax - 0x20]
movss dword [rax - 0x24], xmm1
movaps xmm0, xmm2
movss xmm4, dword [rax + 4]
movaps xmm3, xmm4
addss xmm3, dword [rax]
subss xmm4, dword [rax]
mulss xmm3, xmm6
mulss xmm4, xmm6
subss xmm0, xmm3
addss xmm3, xmm2
movss dword [rax], xmm0
movss xmm1, dword [rax - 0x1c]
movaps xmm0, xmm1
subss xmm0, xmm4
addss xmm4, xmm1
movss dword [rax + 4], xmm0
movss xmm2, dword [rax - 0x18]
movss dword [rax - 0x20], xmm3
movaps xmm0, xmm2
movss dword [rax - 0x1c], xmm4
movss xmm3, dword [rax + 0xc]
movss xmm4, dword [rax + 8]
subss xmm0, xmm3
addss xmm2, xmm3
xorps xmm4, xmm7
movss dword [rax + 8], xmm0
movss xmm1, dword [rax - 0x14]
movaps xmm0, xmm1
subss xmm0, xmm4
addss xmm4, xmm1
movss dword [rax + 0xc], xmm0
movss dword [rax - 0x18], xmm2
movss xmm2, dword [rax - 0x10]
movss dword [rax - 0x14], xmm4
movaps xmm0, xmm2
movss xmm5, dword [rax + 0x14]
movaps xmm3, xmm5
addss xmm5, dword [rax + 0x10]
subss xmm3, dword [rax + 0x10]
xorps xmm5, xmm7
mulss xmm3, xmm6
mulss xmm5, xmm6
subss xmm0, xmm3
addss xmm3, xmm2
movss dword [rax + 0x10], xmm0
movss xmm1, dword [rax - 0xc]
movaps xmm0, xmm1
subss xmm0, xmm5
addss xmm5, xmm1
movss dword [rax + 0x14], xmm0
movss dword [rax - 0x10], xmm3
movss dword [rax - 0xc], xmm5
add rax, 0x40
sub rcx, 1
jne 0x180129e52
sub rbx, 4
mov r9d, esi
sub ebp, 1
jns 0x180129d72
movaps xmm7, xmmword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x70]
mov r14, qword [rsp + 0x80]
mov rsi, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.180151320
add rsp, 0x88
pop r15
pop r12
pop rdi
pop rbp
ret