Function at 0x14005a970
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r12
lea rbp, [rsp - 0x4d8]
sub rsp, 0x5d8
mov rax, qword [0x1401d5e90]
xor rax, rsp
mov qword [rbp + 0x4b0], rax
cmp byte [0x1401dfd30], 0
je 0x14005a9a9
lea rax, [0x1401d9358]
jmp 0x14005adc6
mov r11d, dword [0x1401ddd80]
mov qword [rsp + 0x5f0], rbx
mov qword [rsp + 0x5f8], rsi
lea eax, [r11 + 1]
lea ecx, [r11 + 2]
mov qword [rsp + 0x600], rdi
mov qword [rsp + 0x5d0], r13
xor r13d, r13d
imul ecx, eax
imul ecx, r11d
mov eax, 0x38e38e39
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*8]
add eax, eax
sub ecx, eax
cmp ecx, 0xf
jne 0x14005aa64
mov esi, r13d
lea rdi, [rsp + 0x20]
nop word [rax + rax]
mov r9d, r13d
lea ecx, [rsi + 1]
mov eax, r11d
lea ebx, [r9 + 1]
cdq
idiv ecx
mov eax, r11d
mov ecx, r11d
sub ecx, esi
mov r8d, edx
cdq
idiv ebx
imul r8d, ecx
lea rcx, [0x1401646a4]
add r8d, eax
sub r8d, r9d
mov edx, r8d
mov dword [rdi], r8d
call fcn.1400d7c60
mov r11d, dword [0x1401ddd80]
add rdi, 4
mov r9d, ebx
cmp ebx, 0x1f
jl 0x14005aa13
inc esi
cmp esi, 0xb
jl 0x14005aa10
lea ecx, [r11 + 1]
mov eax, 0xb21642c9
mov dword [rbp + 0x480], 0x15000b
mov dword [rbp + 0x484], 0x11000c
mov dword [rbp + 0x488], 0xa004b
mov dword [rbp + 0x48c], 0x40008
imul ecx, r11d
imul ecx
add edx, ecx
mov dword [rbp + 0x490], 0x490011
mov dword [rbp + 0x494], 0x10000d
sar edx, 4
mov dword [rbp + 0x498], 0x1e0019
mov dword [rbp + 0x49c], 0x90004
mov eax, edx
mov dword [rbp + 0x4a0], 0x2c0004
mov dword [rbp + 0x4a4], 0x170007
shr eax, 0x1f
mov dword [rbp + 0x4a8], 0xf0001
mov dword [rbp + 0x4ac], 0x11
add edx, eax
imul edx, edx, 0x17
sub ecx, edx
cmp ecx, 8
jne 0x14005ab41
mov ecx, 0x28
call fcn.1400d68e8
mov rbx, r13
mov rdi, rax
call fcn.1400d7b94
inc rbx
add eax, dword [0x1401ddd80]
mov dword [rdi + rbx*4 - 4], eax
cmp rbx, 0xa
jl 0x14005ab11
mov ecx, dword [rdi + 0x24]
mov dword [0x1401ddd80], ecx
mov rcx, rdi
call fcn.1400d834c
mov r11d, dword [0x1401ddd80]
mov rcx, r13
lea r12, [0x1401d9358]
lea rdx, [0x1401d8d90]
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
inc rcx
xor ax, word [rbp + rcx*2 + 0x47e]
mov word [r12 + rcx*2 - 2], ax
cmp rcx, 0x17
jl 0x14005ab60
lea ecx, [r11 + 1]
mov eax, 0x78787879
imul ecx, r11d
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x11
sub ecx, edx
cmp ecx, 0xb
jne 0x14005acbe
mov rbx, r13
call fcn.1400d7b94
inc rbx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [rsp + rbx*8 + 0x18], xmm0
cmp rbx, 0x57
jb 0x14005aba5
mov r10d, 0x56
mov r9, r13
lea r11d, [r10 + 1]
nop
mov edx, 0x56
cmp r9, rdx
jge 0x14005aca8
cmp r10, 4
jl 0x14005ac7d
mov r8d, 0x52
lea rcx, [rbp + 0x1c0]
sub r8, r9
shr r8, 2
inc r8
lea rax, [r8*4]
sub rdx, rax
nop word [rax + rax]
movsd xmm0, qword [rcx + 0x10]
movsd xmm1, qword [rcx + 8]
comisd xmm0, xmm1
jbe 0x14005ac2a
movsd qword [rcx + 0x10], xmm1
movsd qword [rcx + 8], xmm0
movsd xmm0, qword [rcx + 8]
movsd xmm1, qword [rcx]
comisd xmm0, xmm1
jbe 0x14005ac42
movsd qword [rcx + 8], xmm1
movsd qword [rcx], xmm0
movsd xmm0, qword [rcx]
movsd xmm1, qword [rcx - 8]
comisd xmm0, xmm1
jbe 0x14005ac5a
movsd qword [rcx], xmm1
movsd qword [rcx - 8], xmm0
movsd xmm0, qword [rcx - 8]
movsd xmm1, qword [rcx - 0x10]
comisd xmm0, xmm1
jbe 0x14005ac74
movsd qword [rcx - 8], xmm1
movsd qword [rcx - 0x10], xmm0
sub rcx, 0x20
dec r8
jne 0x14005ac10
cmp rdx, r9
jle 0x14005aca8
movsd xmm0, qword [rsp + rdx*8 + 0x20]
movsd xmm1, qword [rsp + rdx*8 + 0x18]
comisd xmm0, xmm1
jbe 0x14005aca0
movsd qword [rsp + rdx*8 + 0x20], xmm1
movsd qword [rsp + rdx*8 + 0x18], xmm0
dec rdx
cmp rdx, r9
jg 0x14005ac82
inc r9
dec r10
dec r11
jne 0x14005abd0
mov r11d, dword [0x1401ddd80]
lea eax, [r11 + 1]
lea ecx, [r11 + 2]
mov byte [0x1401dfd30], 1
imul ecx, eax
mov eax, 0x88888889
imul ecx, r11d
imul ecx
add edx, ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0xf
sub ecx, edx
cmp ecx, 8
jne 0x14005ada3
mov qword [rsp + 0x5c8], r14
mov eax, r11d
mov qword [rsp + 0x5c0], r15
cdq
mov r10d, 0xb8
mov r14d, r13d
sub eax, edx
sar eax, 1
mov r15d, eax
nop dword [rax]
test r15d, r15d
jle 0x14005ad8b
mov eax, r11d
mov ebx, r13d
mov rsi, r15
cdq
and edx, 3
lea edi, [rdx + rax]
sar edi, 2
nop dword [rax + rax]
mov r8d, r13d
mov r9d, r13d
mov ecx, r13d
cmp edi, 2
jl 0x14005ad71
lea ecx, [rdi - 2]
mov edx, ebx
shr ecx, 1
inc ecx
mov eax, ecx
add ecx, ecx
nop dword [rax + rax]
dec r9d
add r8d, edx
add r9d, edx
sub edx, 2
dec rax
jne 0x14005ad60
cmp ecx, edi
jge 0x14005ad7c
mov eax, ebx
sub eax, ecx
add r10d, eax
lea ecx, [r9 + r8]
add ebx, r14d
add r10d, ecx
dec rsi
jne 0x14005ad40
inc r14d
cmp r14d, r10d
jl 0x14005ad20
mov r15, qword [rsp + 0x5c0]
mov r14, qword [rsp + 0x5c8]
mov r13, qword [rsp + 0x5d0]
mov rdi, qword [rsp + 0x600]
mov rsi, qword [rsp + 0x5f8]
mov rbx, qword [rsp + 0x5f0]
mov rax, r12
mov rcx, qword [rbp + 0x4b0]
xor rcx, rsp
call fcn.1400d72a0
add rsp, 0x5d8
pop r12
pop rbp
ret