Function at 0x1399f2980
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x1a8
mov rax, qword [0x139d4c1c0]
xor rax, rsp
mov qword [rsp + 0x190], rax
mov dword [rsp + 0x20], r9d
mov r13d, r9d
mov qword [rsp + 0x28], r8
mov r15d, edx
mov rdi, rcx
cmp r9d, 0xc8
jne 0x1399f29ca
mov r14d, 0x88
jmp 0x1399f29d6
mov r14d, 0x64
sub r14d, r9d
add r14d, r14d
mov eax, r14d
lea rcx, [rsp + 0x30]
cdq
mov r8d, 0xc8
and edx, 7
add eax, edx
xor edx, edx
sar eax, 3
movsxd rsi, eax
call fcn.139d16f70
xor r12d, r12d
mov rbp, rsi
cmp r15d, r14d
jl 0x1399f2b17
lea rbx, [rsp + 0x30]
movsxd r13, r14d
sub rbx, rdi
mov rax, r12
test esi, esi
jle 0x1399f2acd
cmp esi, 8
jb 0x1399f2acd
lea ecx, [rsi - 1]
movsxd rdx, ecx
lea r8, [rsp + 0x30]
lea rcx, [rdi + rdx*8]
lea r8, [r8 + rdx*8]
lea rdx, [rsp + 0x30]
cmp rdx, rcx
ja 0x1399f2a4b
cmp r8, rdi
jae 0x1399f2acd
mov edx, esi
and edx, 0x80000007
jge 0x1399f2a5c
dec edx
or edx, 0xfffffff8
inc edx
mov ecx, esi
sub ecx, edx
movsxd rdx, ecx
lea rcx, [rdi + 0x20]
nop word [rax + rax]
movdqu xmm0, xmmword [rbx + rcx - 0x20]
add rax, 8
movdqu xmm1, xmmword [rcx - 0x20]
lea rcx, [rcx + 0x40]
xorps xmm1, xmm0
movdqu xmmword [rbx + rcx - 0x60], xmm1
movdqu xmm0, xmmword [rbx + rcx - 0x50]
movdqu xmm1, xmmword [rcx - 0x50]
xorps xmm1, xmm0
movdqu xmmword [rbx + rcx - 0x50], xmm1
movdqu xmm0, xmmword [rcx + rbx - 0x40]
movdqu xmm1, xmmword [rcx - 0x40]
xorps xmm1, xmm0
movdqu xmmword [rcx + rbx - 0x40], xmm1
movdqu xmm0, xmmword [rcx + rbx - 0x30]
movdqu xmm1, xmmword [rcx - 0x30]
xorps xmm1, xmm0
movdqu xmmword [rcx + rbx - 0x30], xmm1
cmp rax, rdx
jl 0x1399f2a70
cmp rax, rbp
jge 0x1399f2af1
nop dword [rax]
nop word [rax + rax]
mov rcx, qword [rdi + rax*8]
xor qword [rsp + rax*8 + 0x30], rcx
inc rax
cmp rax, rbp
jl 0x1399f2ae0
mov edx, 0x18
lea rcx, [rsp + 0x30]
call fcn.1399f2320
sub r15d, r14d
add rdi, r13
sub rbx, r13
cmp r15d, r14d
jge 0x1399f2a11
mov r13d, dword [rsp + 0x20]
movsxd rbx, r15d
lea rcx, [rsp + 0x100]
mov r8, rbx
mov rdx, rdi
call fcn.139d168d0
mov eax, r14d
mov byte [rsp + rbx + 0x100], 1
inc r15d
lea rcx, [rsp + 0x100]
sub eax, r15d
xor edx, edx
movsxd r8, eax
movsxd rax, r15d
add rcx, rax
call fcn.139d16f70
movsxd rax, r14d
mov ecx, r12d
or byte [rsp + rax + 0xff], 0x80
test esi, esi
jle 0x1399f2c08
cmp esi, 8
jb 0x1399f2c08
mov eax, esi
and eax, 0x80000007
jge 0x1399f2b85
dec eax
or eax, 0xfffffff8
inc eax
sub esi, eax
movsxd rax, esi
nop word [rax + rax]
movdqu xmm0, xmmword [rsp + r12*8 + 0x30]
add ecx, 8
movdqu xmm1, xmmword [rsp + r12*8 + 0x100]
xorps xmm1, xmm0
movdqu xmmword [rsp + r12*8 + 0x30], xmm1
movdqu xmm0, xmmword [rsp + r12*8 + 0x40]
movdqu xmm1, xmmword [rsp + r12*8 + 0x110]
xorps xmm1, xmm0
movdqu xmmword [rsp + r12*8 + 0x40], xmm1
movdqu xmm0, xmmword [rsp + r12*8 + 0x50]
movdqu xmm1, xmmword [rsp + r12*8 + 0x120]
xorps xmm1, xmm0
movdqu xmmword [rsp + r12*8 + 0x50], xmm1
movdqu xmm0, xmmword [rsp + r12*8 + 0x60]
movdqu xmm1, xmmword [rsp + r12*8 + 0x130]
xorps xmm1, xmm0
movdqu xmmword [rsp + r12*8 + 0x60], xmm1
add r12, 8
cmp r12, rax
jl 0x1399f2b90
movsxd r8, ecx
cmp r8, rbp
jge 0x1399f2c25
mov rax, qword [rsp + r8*8 + 0x100]
xor qword [rsp + r8*8 + 0x30], rax
inc r8
cmp r8, rbp
jl 0x1399f2c10
mov edx, 0x18
lea rcx, [rsp + 0x30]
call fcn.1399f2320
mov rcx, qword [rsp + 0x28]
lea rdx, [rsp + 0x30]
movsxd r8, r13d
call fcn.139d168d0
mov rcx, qword [rsp + 0x190]
xor rcx, rsp
call fcn.139ce5c70
add rsp, 0x1a8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret