Function at 0x1337c0ebc8d0
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 0x1337c0ebc8fd
and al, 0x1f
jmp 0x1337c0ebc8ff
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 0x1337c0ebc981
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 0x1337c0ebc920
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 0x1337c0ebc960
mov r11, qword [rsp + 0x30]
jmp 0x1337c0ebc990
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 0x1337c0ebc9c6
sub ecx, 1
je 0x1337c0ebc9c0
mov r8d, 1
cmp ecx, 1
je 0x1337c0ebc9c6
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 0x1337c0ebca10
sub r10, rdx
lea rax, [rdx + r9]
mov rcx, r9
sub rcx, r10
cmp rcx, r10
cmovae rax, rdx
mov rdx, rax
jmp 0x1337c0ebca29
mov rcx, rdx
mov rax, r9
sub rcx, r10
sub rax, rcx
cmp rax, rcx
ja 0x1337c0ebca29
cmp rdx, r9
jb 0x1337c0ebca29
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 0x1337c0ebcaa8
test cl, 1
mov eax, 0xc28
mov ecx, 0x118
cmove eax, ecx
lock inc qword [rax + rdi]
lea rcx, [rsp + 0x30]
call qword [0x1337c10093f8]
mov rax, qword [0x1337c1255b38]
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 [0x1337c121d690]
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 0x1337c0ebcb10
cmp si, 0x10
jae 0x1337c0ebcb10
test al, 1
mov ecx, 0x118
mov eax, 0xc28
cmove eax, ecx
lock inc qword [rax + rdi]
lea rcx, [rsp + 0x30]
call qword [0x1337c10093f8]
mov rax, qword [0x1337c1255b38]
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 [0x1337c121d690]
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 0x1337c0ebcb89
cmp r8d, 2
jne 0x1337c0ebcb89
mov rax, qword [rbx + 0x10]
movzx ecx, byte [rax]
shr cl, 2
xor cl, byte [r9 + 0x198]
test cl, 1
je 0x1337c0ebcb89
cmp rdx, qword [r9 + 0x188]
jae 0x1337c0ebcb59
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.1337c0eca530
test eax, eax
jns 0x1337c0ebcb82
mov rdx, rbx
mov rcx, rdi
call fcn.1337c0eb7010
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