Function at 0x5b8be0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x118
movaps xmmword [rsp + 0x100], xmm7
movaps xmmword [rsp + 0xf0], xmm6
mov qword [rsp + 0xc0], r9
mov qword [rsp + 0x58], r8
mov qword [rsp + 0x50], rdx
mov r13, rcx
mov rcx, qword [rsp + 0x198]
mov dword [rsp + 0x2c], 0
xorps xmm6, xmm6
movaps xmmword [rsp + 0xd0], xmm6
movaps xmmword [rsp + 0xe0], xmm6
movaps xmmword [rsp + 0x70], xmm6
movaps xmmword [rsp + 0x80], xmm6
movabs rax, 0x100000000
cmp rcx, rax
mov eax, 0xffffffff
cmovl rax, rcx
mov qword [rsp + 0x48], rax
test rcx, rcx
jle 0x5b923a
mov rsi, qword [rsp + 0x180]
movabs r15, 0x50a118d80a3fb7ae
lea rax, [rsi - 1]
mov qword [rsp + 0xb8], rax
lea rax, [r13 + 8]
mov qword [rsp + 0x38], rax
lea rax, [r13 + 0x28]
mov qword [rsp + 0x30], rax
movabs rax, 0xc36815b8caf677c6
mov rdx, rax
not rdx
add rdx, rcx
add rdx, rax
mov qword [rsp + 0xb0], rdx
lea r14, [r13 + 0x68]
movaps xmm7, xmmword [0x00635e60]
lea rbp, [r13 + 0x70]
lea rax, [r13 + 0x90]
mov qword [rsp + 0x68], rax
mov edx, 1
xor eax, eax
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x60], rbp
mov dword [rsp + 0x44], edx
mov eax, edx
bswap eax
mov dword [rsp + 0x2c], eax
mov rcx, r13
mov rdx, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
call fcn.005b8718
test rsi, rsi
jle 0x5b8dc3
xor r12d, r12d
mov rdi, rsi
mov ebp, dword [r13]
and ebp, 0x3f
mov ebx, 0x40
sub rbx, rbp
cmp rbx, rdi
cmovg rbx, rdi
test r12, r12
setns al
cmp r12, rsi
setge cl
cmp al, cl
je 0x5b8d3e
test r12, r12
jns 0x5b8d4e
mov rcx, r12
mov rdx, qword [rsp + 0xb8]
call fcn.005482d0
lea rcx, [rbp + 0x28]
add rcx, r13
mov rax, qword [rsp + 0xc0]
lea rdx, [rax + r12]
mov r8, rbx
call fcn.005f4c20
add r12, rbx
jno 0x5b8d77
call fcn.005463cd
movabs rcx, 0x9fa2b0b286c05415
add rdi, rcx
sub rdi, rbx
mov eax, dword [r13]
add eax, ebx
mov dword [r13], eax
cmp eax, ebx
jae 0x5b8d99
inc dword [r13 + 4]
sub rdi, rcx
mov ecx, eax
xor ecx, 0xffffffc0
test ecx, eax
jne 0x5b8dba
mov r8d, 0x40
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
call fcn.005b1a58
test rdi, rdi
jg 0x5b8d13
mov ebx, 4
xor r12d, r12d
mov eax, dword [r13]
mov esi, eax
xor esi, 0xffffffc0
and esi, eax
mov edi, 0x40
sub rdi, rsi
cmp rdi, rbx
cmovg rdi, rbx
cmp r12, 4
jb 0x5b8df8
mov edx, 3
mov rcx, r12
call fcn.005482d0
lea rcx, [rsi + r13]
add rcx, 0x28
lea rdx, [rsp + r12]
add rdx, 0x2c
mov r8, rdi
call fcn.005f4c20
add r12, rdi
jno 0x5b8e1a
call fcn.005463cd
movabs rcx, 0xa6351ece8e19242b
add rbx, rcx
sub rbx, rdi
mov eax, dword [r13]
add eax, edi
mov dword [r13], eax
cmp eax, edi
jae 0x5b8e3c
inc dword [r13 + 4]
sub rbx, rcx
not eax
or eax, 0xffffffc0
cmp eax, 0xffffffff
jne 0x5b8e5e
mov r8d, 0x40
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
call fcn.005b1a58
test rbx, rbx
jg 0x5b8dcb
movaps xmmword [rsp + 0xa0], xmm6
movaps xmmword [rsp + 0x90], xmm6
mov rcx, r13
lea rdx, [rsp + 0x90]
call fcn.005b926b
mov ebx, 0x20
xor r12d, r12d
movabs rsi, 0x7d5da1503a468b0f
mov ebp, dword [r14]
and ebp, 0x3f
movabs rcx, 0x54ebdf41f80a6747
lea rax, [rcx + rbp]
neg rax
lea rdi, [rcx + rax]
add rdi, 0x40
cmp rdi, rbx
cmovg rdi, rbx
cmp r12, 0x20
jb 0x5b8ed2
mov edx, 0x1f
mov rcx, r12
call fcn.005482d0
lea rcx, [rbp + 0x90]
add rcx, r13
lea rdx, [rsp + r12]
add rdx, 0x90
mov r8, rdi
call fcn.005f4c20
add r12, rdi
jno 0x5b8efa
call fcn.005463cd
movabs rcx, 0x1e8c218b9f61a69d
sub rbx, rcx
sub rbx, rdi
mov eax, dword [r14]
add eax, edi
mov dword [r14], eax
cmp eax, edi
jae 0x5b8f1a
inc dword [r13 + 0x6c]
add rbx, rcx
not eax
or eax, 0xffffffc0
cmp eax, 0xffffffff
jne 0x5b8f3c
mov r8d, 0x40
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
call fcn.005b1a58
test rbx, rbx
jg 0x5b8e99
mov rcx, r14
lea rdx, [rsp + 0x70]
call fcn.005b926b
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xe0], xmm1
cmp qword [rsp + 0x188], 2
jl 0x5b9172
mov eax, 1
mov qword [rsp + 0xc8], rax
mov rcx, r13
mov rdx, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
call fcn.005b8718
mov r12d, 0x20
xor ebx, ebx
mov ebp, dword [r13]
and ebp, 0x3f
lea rax, [rsi + rbp]
neg rax
lea rdi, [rsi + rax]
add rdi, 0x40
cmp rdi, r12
cmovg rdi, r12
cmp rbx, 0x20
jb 0x5b8fd5
mov edx, 0x1f
mov rcx, rbx
call fcn.005482d0
lea rcx, [rbp + 0x28]
add rcx, r13
lea rdx, [rsp + rbx]
add rdx, 0x70
mov r8, rdi
call fcn.005f4c20
add rbx, rdi
jno 0x5b8ffa
call fcn.005463cd
movabs rcx, 0xc70bb2facb50fe70
add r12, rcx
sub r12, rdi
mov eax, dword [r13]
add eax, edi
mov dword [r13], eax
cmp eax, edi
jae 0x5b901c
inc dword [r13 + 4]
sub r12, rcx
mov ecx, eax
xor ecx, 0xffffffc0
test ecx, eax
jne 0x5b903d
mov r8d, 0x40
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
call fcn.005b1a58
test r12, r12
jg 0x5b8fa5
movaps xmmword [rsp + 0xa0], xmm6
movaps xmmword [rsp + 0x90], xmm6
mov rcx, r13
lea rdx, [rsp + 0x90]
call fcn.005b926b
mov ebp, 0x20
xor ebx, ebx
mov r12, qword [rsp + 0x60]
mov eax, dword [r14]
mov esi, eax
xor esi, 0xffffffc0
and esi, eax
lea rax, [r15 + rsi]
neg rax
lea rdi, [r15 + rax]
add rdi, 0x40
cmp rdi, rbp
cmovg rdi, rbp
cmp rbx, 0x20
jb 0x5b90a5
mov edx, 0x1f
mov rcx, rbx
call fcn.005482d0
lea rcx, [rsi + r13]
add rcx, 0x90
lea rdx, [rsp + rbx]
add rdx, 0x90
mov r8, rdi
call fcn.005f4c20
add rbx, rdi
jno 0x5b90cd
call fcn.005463cd
mov eax, dword [r14]
add eax, edi
mov dword [r14], eax
cmp eax, edi
jae 0x5b90dd
inc dword [r13 + 0x6c]
sub rbp, rdi
not eax
or eax, 0xffffffc0
cmp eax, 0xffffffff
jne 0x5b90fd
mov r8d, 0x40
mov rcx, r12
mov rdx, qword [rsp + 0x68]
call fcn.005b1a58
test rbp, rbp
jg 0x5b9072
mov rcx, r14
lea rdx, [rsp + 0x70]
call fcn.005b926b
xor eax, eax
movaps xmm0, xmmword [rsp + rax + 0x70]
movaps xmm1, xmmword [rsp + rax + 0xd0]
movaps xmm2, xmm7
andnps xmm2, xmm1
andnps xmm1, xmm7
orps xmm1, xmm2
movaps xmm2, xmm7
andnps xmm2, xmm0
andnps xmm0, xmm7
orps xmm0, xmm2
xorps xmm0, xmm1
movaps xmmword [rsp + rax + 0xd0], xmm0
add rax, 0x10
cmp rax, 0x20
jne 0x5b9115
mov rax, qword [rsp + 0xc8]
inc rax
cmp rax, qword [rsp + 0x188]
movabs rsi, 0x7d5da1503a468b0f
jne 0x5b8f83
mov rbx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x20]
sub rbx, rcx
jno 0x5b918b
call fcn.005463cd
mov rcx, qword [rsp + 0x20]
cmp rbx, 0x21
mov eax, 0x20
cmovge rbx, rax
test rcx, rcx
setns al
cmp rcx, qword [rsp + 0x198]
setge dl
cmp al, dl
mov rsi, qword [rsp + 0x180]
je 0x5b91ba
test rcx, rcx
jns 0x5b91cc
mov rdx, qword [rsp + 0xb0]
call fcn.005482d0
mov rcx, qword [rsp + 0x20]
test rbx, rbx
jns 0x5b91ea
mov rcx, rbx
xor edx, edx
movabs r8, 0x7fffffffffffffff
call fcn.00547f4d
mov rcx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x190]
add rcx, rax
lea rdx, [rsp + 0xd0]
mov r8, rbx
call fcn.005f4c20
mov rax, qword [rsp + 0x20]
add rax, rbx
jno 0x5b921a
mov rdi, rax
call fcn.005463cd
mov rax, rdi
mov edx, dword [rsp + 0x44]
inc edx
mov rcx, rax
mov qword [rsp + 0x20], rax
cmp rax, qword [rsp + 0x48]
jl 0x5b8ce6
mov rsi, qword [rsp + 0x20]
jmp 0x5b923c
xor esi, esi
mov rcx, r13
call fcn.005b8bd4
mov rax, rsi
movaps xmm6, xmmword [rsp + 0xf0]
movaps xmm7, xmmword [rsp + 0x100]
add rsp, 0x118
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret