Function at 0x1337c0eb82e0
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 0x1337c0eb830d
and al, 0x1f
jmp 0x1337c0eb830f
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 0x1337c0eb8391
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 0x1337c0eb8330
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 0x1337c0eb8370
mov r11, qword [rsp + 0x30]
jmp 0x1337c0eb83a0
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 0x1337c0eb83d6
sub ecx, 1
je 0x1337c0eb83d0
mov r8d, 1
cmp ecx, 1
je 0x1337c0eb83d6
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 0x1337c0eb8420
sub r10, rdx
lea rax, [rdx + r9]
mov rcx, r9
sub rcx, r10
cmp rcx, r10
cmovae rax, rdx
mov rdx, rax
jmp 0x1337c0eb8439
mov rcx, rdx
mov rax, r9
sub rcx, r10
sub rax, rcx
cmp rax, rcx
ja 0x1337c0eb8439
cmp rdx, r9
jb 0x1337c0eb8439
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 0x1337c0eb84b8
test cl, 1
mov eax, 0xc28
mov ecx, 0x118
cmove eax, ecx
lock inc qword [rax + rdi]
lea rcx, [rsp + 0x30]
call qword [0x1337c10053f8]
mov rax, qword [0x1337c1213b38]
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 [0x1337c11db690]
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 0x1337c0eb8520
cmp si, 0x10
jae 0x1337c0eb8520
test al, 1
mov ecx, 0x118
mov eax, 0xc28
cmove eax, ecx
lock inc qword [rax + rdi]
lea rcx, [rsp + 0x30]
call qword [0x1337c10053f8]
mov rax, qword [0x1337c1213b38]
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 [0x1337c11db690]
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 0x1337c0eb8599
cmp r8d, 2
jne 0x1337c0eb8599
mov rax, qword [rbx + 0x10]
movzx ecx, byte [rax]
shr cl, 2
xor cl, byte [r9 + 0x198]
test cl, 1
je 0x1337c0eb8599
cmp rdx, qword [r9 + 0x188]
jae 0x1337c0eb8569
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.1337c0ec5f40
test eax, eax
jns 0x1337c0eb8592
mov rdx, rbx
mov rcx, rdi
call fcn.1337c0eb2a20
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