Function at 0x1337c0f0be60
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
movzx eax, byte [r8]
mov rbx, rdx
mov rdx, qword [rdx + 0x10]
mov rdi, rcx
mov r11, r8
test byte [rbx + 0x34], 4
movzx ecx, byte [rdx]
je 0x1337c0f0be8d
and al, 0x1f
jmp 0x1337c0f0be8f
and al, 0xf
xor al, cl
mov r10b, 0
mov byte [rdx], al
mov rax, qword [rbx + 0x10]
movzx r9d, byte [rax]
and r9b, 3
add r9b, 1
je 0x1337c0f0bf11
nop dword [rax + rax]
movzx edx, word [rbx + 0x2a]
mov rax, qword [rbx + 0x10]
movzx r8d, r10b
inc r10b
add edx, r8d
movzx ecx, byte [r8 + r11 + 1]
xor byte [rdx + rax], cl
cmp r10b, r9b
jb 0x1337c0f0beb0
movzx esi, word [rbx + 0x2a]
xor r8d, r8d
mov r10d, esi
mov qword [rsp + 0x30], r8
add r10, qword [rbx + 0x10]
xor dl, dl
movzx r11d, r9b
nop dword [rax]
movzx ecx, dl
mov rax, r10
sub rax, rcx
inc dl
movzx eax, byte [rax + r11 - 1]
mov byte [rsp + rcx + 0x30], al
cmp dl, r9b
jb 0x1337c0f0bef0
mov r11, qword [rsp + 0x30]
jmp 0x1337c0f0bf20
movzx esi, word [rbx + 0x2a]
xor r8d, r8d
mov r11d, r8d
mov qword [rsp + 0x30], r8
movzx ecx, r9b
lea eax, [rsi + rcx]
mov word [rbx + 0x2a], ax
movzx eax, word [rbx + 0x2c]
sub ax, cx
mov ecx, dword [rbx + 0x30]
mov word [rbx + 0x2c], ax
movzx esi, ax
test ecx, ecx
je 0x1337c0f0bf56
sub ecx, 1
je 0x1337c0f0bf50
mov r8d, 1
cmp ecx, 1
je 0x1337c0f0bf56
mov r8d, 2
mov eax, r8d
mov rdx, 0xffffffffffffffff
mov rcx, qword [rdi + rax*8 + 0x848]
mov r10, qword [rcx + 8]
movzx ecx, r9b
shl ecx, 3
shl rdx, cl
mov r9, rdx
and rdx, r10
or rdx, r11
neg r9
cmp rdx, r10
jae 0x1337c0f0bfa0
sub r10, rdx
lea rax, [rdx + r9]
mov rcx, r9
sub rcx, r10
cmp rcx, r10
cmovae rax, rdx
mov rdx, rax
jmp 0x1337c0f0bfb9
mov rcx, rdx
mov rax, r9
sub rcx, r10
sub rax, rcx
cmp rax, rcx
ja 0x1337c0f0bfb9
cmp rdx, r9
jb 0x1337c0f0bfb9
sub rdx, r9
movzx eax, byte [rbx + 0x34]
movabs r9, 0x3fffffffffffffff
movzx ecx, al
mov qword [rbx + 8], rdx
or cl, 0x20
mov byte [rbx + 0x34], cl
cmp rdx, r9
jbe 0x1337c0f0c038
test cl, 1
mov eax, 0xc28
mov ecx, 0x118
cmove eax, ecx
lock inc qword [rax + rdi]
lea rcx, [rsp + 0x30]
call qword [0x1337c1059420]
mov rax, qword [0x1337c1319cc8]
movzx ecx, word [rsp + 0x30]
movzx edx, byte [rsp + 0x32]
mov eax, dword [rax + rcx*4]
add eax, edx
imul rcx, rax, 0x1c0
mov rax, qword [0x1337c12e1690]
lock inc qword [rcx + rax + 0xf8]
xor al, al
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
test al, 0x40
je 0x1337c0f0c0a0
cmp si, 0x10
jae 0x1337c0f0c0a0
test al, 1
mov ecx, 0x118
mov eax, 0xc28
cmove eax, ecx
lock inc qword [rax + rdi]
lea rcx, [rsp + 0x30]
call qword [0x1337c1059420]
mov rax, qword [0x1337c1319cc8]
movzx ecx, word [rsp + 0x30]
movzx edx, byte [rsp + 0x32]
mov eax, dword [rax + rcx*4]
add eax, edx
imul rcx, rax, 0x1c0
mov rax, qword [0x1337c12e1690]
lock inc qword [rcx + rax + 0xf8]
xor al, al
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov r9, qword [rdi + 0x858]
test al, 4
je 0x1337c0f0c119
cmp r8d, 2
jne 0x1337c0f0c119
mov rax, qword [rbx + 0x10]
movzx ecx, byte [rax]
shr cl, 2
xor cl, byte [r9 + 0x198]
test cl, 1
je 0x1337c0f0c119
cmp rdx, qword [r9 + 0x188]
jae 0x1337c0f0c0e9
mov dword [rbx + 0x30], 4
mov al, 1
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov rcx, rdi
call fcn.1337c0f19bc0
test eax, eax
jns 0x1337c0f0c112
mov rdx, rbx
mov rcx, rdi
call fcn.1337c0f065a0
xor al, al
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov dword [rbx + 0x30], 5
mov rbx, qword [rsp + 0x38]
mov al, 1
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret