Function at 0x140005873
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
mov rax, rcx
add qword [rcx + 0x30], r8
mov r11, qword [rcx + 0x40]
test r11, r11
je 0x1400058b2
mov r10d, 8
sub r10, r11
cmp r8, r10
mov rdi, r10
cmovb rdi, r8
cmp rdi, 4
jb 0x1400058ba
mov esi, dword [rdx]
mov r9d, 4
jmp 0x1400058bf
xor r10d, r10d
jmp 0x140005a29
xor esi, esi
xor r9d, r9d
mov ecx, r9d
and ecx, 0xfffffffe
mov rbx, r9
xor rbx, 1
add rbx, r9
sub rbx, rcx
cmp rbx, rdi
jae 0x140005900
movzx ebx, word [rdx + r9]
lea ecx, [r9*8]
shl rbx, cl
mov rcx, rbx
xor rcx, rsi
not rsi
and rsi, rbx
add rcx, rbx
sub rcx, rsi
or r9, 2
mov rsi, rcx
cmp r9, rdi
jae 0x140005929
movzx edi, byte [rdx + r9]
shl r9d, 3
mov ecx, r9d
shl rdi, cl
mov rcx, rdi
xor rcx, rsi
not rsi
and rsi, rdi
add rcx, rdi
sub rcx, rsi
mov rsi, rcx
lea ecx, [r11*8]
shl rsi, cl
mov rcx, qword [rax + 0x38]
mov r9, rcx
or r9, rsi
not r9
not rcx
not rsi
and rsi, rcx
or rsi, r9
not rsi
mov qword [rax + 0x38], rsi
cmp r10, r8
jbe 0x140005961
add r11, r8
jmp 0x140005c12
mov r11, qword [rax + 0x10]
mov r9, qword [rax + 0x18]
mov rcx, rsi
not rcx
mov rdi, r9
or rdi, rcx
and r9, rcx
not rdi
or rdi, r9
mov r9, qword [rax]
add r9, r11
mov rbx, qword [rax + 8]
rol r11, 0xd
add rbx, rdi
mov r15, r11
xor r15, r9
not r15
and r15, r9
add r15, r15
mov r14, r9
sub r14, r15
add r14, r11
rol rdi, 0x10
mov r11, rdi
xor r11, rdi
not r11
and r11, rbx
xor r11, rdi
rol r9, 0x20
mov rdi, rbx
and rdi, r14
xor rbx, r14
lea rdi, [rbx + rdi*2]
rol r14, 0x11
add r9, r11
mov rbx, r14
xor rbx, r14
not rbx
and rbx, rdi
xor rbx, r14
rol r11, 0x15
mov qword [rax + 0x10], rbx
mov rbx, r9
not rbx
mov r14, rbx
xor r14, r9
movabs r15, 0x39e42b7319173bfc
and r14, r15
xor r11, r9
xor r11, r15
xor r11, r14
rol rdi, 0x20
mov qword [rax + 0x18], r11
mov qword [rax + 8], rdi
or r9, rcx
or rbx, rsi
not r9
not rbx
or rbx, r9
mov qword [rax], rbx
mov r9, r8
not r9
and r9, r10
mov rcx, r10
not rcx
and rcx, r8
sub rcx, r9
mov r8, rcx
xor r8, 0xfffffffffffffff8
mov r11, rcx
or r11, 7
and r11, r8
and rcx, 0xfffffffffffffff8
cmp r10, rcx
jae 0x140005b5a
movabs r9, 0xb2403d7e58691c98
movabs rsi, 0x836bb6e37a9384f6
mov rdi, qword [rax]
mov r8, qword [rax + 8]
mov r14, qword [rax + 0x18]
mov r15, qword [rax + 0x10]
mov rbx, r9
not rbx
mov r12, qword [rdx + r10]
mov r13, r14
xor r13, r12
not r13
and r13, r12
add r13, r13
mov rbp, r12
sub rbp, r13
add rbp, r14
add rdi, r15
sub r8, rsi
add r8, rsi
add r8, rbp
rol r15, 0xd
mov r13, rbx
xor r13, r9
and r15, r13
xor r15, r9
and r13, rdi
xor r13, r9
xor r13, r15
rol rbp, 0x10
mov r14, rbp
xor r14, rbp
not r14
and r14, r8
xor r14, rbp
rol rdi, 0x20
mov r15, r8
and r15, r13
or r8, r13
add r8, r15
rol r13, 0x11
add rdi, r14
mov r15, r8
xor r15, r13
not r15
and r15, r13
add r15, r15
sub r13, r15
mov r15, r13
add r15, r8
rol r14, 0x15
not r14
mov r13, r14
and r13, rdi
not r13
or r14, rdi
and r14, r13
not r14
rol r8, 0x20
mov r13, rdi
and rdi, r12
or r13, r12
not rdi
and rdi, r13
mov r12d, r10d
and r12d, 8
or r10, 8
add r10, r12
cmp r10, rcx
jb 0x140005a85
mov qword [rax + 0x18], r14
mov qword [rax + 0x10], r15
mov qword [rax + 8], r8
mov qword [rax], rdi
cmp r11, 4
jb 0x140005b6c
mov r8d, dword [rdx + r10]
mov r9d, 4
jmp 0x140005b72
xor r8d, r8d
xor r9d, r9d
mov ecx, r9d
and ecx, 0xfffffffe
mov rsi, r9
xor rsi, 1
add rsi, r9
sub rsi, rcx
cmp rsi, r11
jae 0x140005bb0
mov ecx, r9d
and ecx, r10d
mov rsi, r9
xor rsi, r10
lea rcx, [rsi + rcx*2]
movzx esi, word [rdx + rcx]
lea ecx, [r9*8]
shl rsi, cl
or r8, rsi
or r9, 2
cmp r9, r11
jae 0x140005c0e
mov ecx, r9d
and ecx, r10d
mov rsi, r9
xor rsi, r10
lea rcx, [rsi + rcx*2]
movzx edx, byte [rdx + rcx]
lea ecx, [r9*8]
shl rdx, cl
mov rcx, rdx
not rcx
movabs r9, 0xfc735e223fdfe1c
mov r10, r9
not r10
and rdx, r10
and r10, r8
not r8
mov rsi, rcx
and rsi, r9
or rdx, rsi
and r9, r8
or r10, r9
xor r10, rdx
or r8, rcx
not r8
or r8, r10
mov qword [rax + 0x38], r8
mov qword [rax + 0x40], r11
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret