Function at 0x140023450
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rbx
push rbp
push rsi
push rdi
sub rsp, 0x80
mov rax, qword [0x140065c40]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov rsi, r9
mov ebp, edx
mov rdi, rcx
movabs rax, 0x3fffffffffffffff
mov qword [r11 - 0x40], rax
mov ebx, 8
mov qword [r11 - 0x38], rbx
mov byte [rsp + 0x51], 1
lea rax, [r11 - 0x68]
mov qword [r11 - 0x30], rax
mov qword [r11 - 0x78], r9
mov r9, r8
mov r8d, ebx
lea rdx, [r11 - 0x68]
xor ecx, ecx
call fcn.14000a9e0
cmp rsi, 0x20
jae 0x1400234d4
mov rcx, rsi
shr rcx, 2
mov rax, qword [rsp + 0x68]
lea rdx, [rax + rcx*4]
and esi, 3
shl esi, 3
mov eax, dword [rdx]
bts eax, esi
mov dword [rdx], eax
mov rax, qword [rsp + 0x68]
mov ecx, dword [rax + 0x14]
xor ecx, dword [rax + 0xc]
xor ecx, dword [rax]
xor ecx, dword [rax + 0x1c]
xor ecx, 0x9e3779b9
rol ecx, 0xb
mov dword [rax], ecx
mov dword [rdi], ecx
mov rax, qword [rsp + 0x68]
mov edx, dword [rax + 0x18]
xor edx, dword [rax + 0x10]
xor edx, ecx
xor edx, dword [rax + 4]
xor edx, 0x9e3779b8
rol edx, 0xb
mov dword [rax + 4], edx
mov dword [rdi + 4], edx
mov rax, qword [rsp + 0x68]
mov ecx, dword [rax + 0x1c]
xor ecx, dword [rax + 0x14]
xor ecx, dword [rax + 8]
xor ecx, edx
xor ecx, 0x9e3779bb
rol ecx, 0xb
mov dword [rax + 8], ecx
mov dword [rdi + 8], ecx
mov rax, qword [rsp + 0x68]
mov edx, dword [rax + 0x18]
xor edx, dword [rax]
xor edx, ecx
xor edx, dword [rax + 0xc]
xor edx, 0x9e3779ba
rol edx, 0xb
mov dword [rax + 0xc], edx
lea r9, [rdi + 0xc]
mov dword [r9], edx
mov rax, qword [rsp + 0x68]
mov ecx, dword [rax + 0x1c]
xor ecx, dword [rax + 4]
xor ecx, dword [rax + 0x10]
xor ecx, edx
xor ecx, 0x9e3779bd
rol ecx, 0xb
mov dword [rax + 0x10], ecx
mov dword [rdi + 0x10], ecx
mov rax, qword [rsp + 0x68]
mov edx, dword [rax + 8]
xor edx, dword [rax + 0x14]
xor edx, dword [rax]
xor edx, ecx
xor edx, 0x9e3779bc
rol edx, 0xb
mov dword [rax + 0x14], edx
mov dword [rdi + 0x14], edx
mov rax, qword [rsp + 0x68]
mov r8d, dword [rax + 0xc]
xor r8d, dword [rax + 4]
xor r8d, dword [rax + 0x18]
xor r8d, edx
xor r8d, 0x9e3779bf
rol r8d, 0xb
mov dword [rax + 0x18], r8d
mov dword [rdi + 0x18], r8d
mov rcx, qword [rsp + 0x68]
mov eax, dword [rcx + 0x10]
xor eax, dword [rcx + 8]
xor eax, dword [rcx + 0x1c]
xor eax, r8d
xor eax, 0x9e3779be
rol eax, 0xb
mov dword [rcx + 0x1c], eax
mov dword [rdi + 0x1c], eax
lea r8d, [rbp*4 + 4]
cmp r8d, 8
jbe 0x140023618
lea rdx, [rdi + 0x20]
nop word [rax + rax]
mov ecx, dword [r9 - 0xc]
xor ecx, dword [r9 + 8]
xor ecx, dword [r9]
xor ecx, ebx
xor eax, ecx
xor eax, 0x9e3779b9
rol eax, 0xb
mov dword [rdx], eax
inc ebx
lea r9, [r9 + 4]
lea rdx, [rdx + 4]
cmp ebx, r8d
jb 0x1400235f0
sub rdi, 0x50
shr ebp, 3
test ebp, ebp
je 0x1400238fc
mov esi, ebp
nop dword [rax]
mov r10d, dword [rdi + 0x50]
mov eax, dword [rdi + 0x54]
mov r9d, dword [rdi + 0x58]
mov edx, dword [rdi + 0x5c]
mov r8d, r10d
or r10d, edx
xor edx, eax
and eax, r8d
xor r8d, r9d
xor r9d, edx
or r8d, eax
and edx, r10d
xor edx, r8d
xor r10d, eax
mov ecx, edx
xor ecx, eax
or ecx, r10d
xor ecx, r9d
mov eax, edx
or eax, ecx
xor eax, edx
xor eax, r10d
mov dword [rdi + 0x50], eax
mov dword [rdi + 0x54], ecx
mov dword [rdi + 0x58], edx
and r8d, r10d
xor r8d, r9d
mov dword [rdi + 0x5c], r8d
mov r11d, dword [rdi + 0x60]
mov r10d, dword [rdi + 0x68]
mov r9d, r11d
and r9d, r10d
xor r9d, dword [rdi + 0x6c]
mov eax, r9d
xor eax, dword [rdi + 0x64]
xor r10d, eax
mov r8d, r11d
or r8d, dword [rdi + 0x6c]
xor r8d, dword [rdi + 0x64]
xor r11d, r10d
mov ecx, r11d
or ecx, r8d
xor ecx, r9d
and r9d, r8d
xor r11d, r9d
mov dword [rdi + 0x60], r10d
mov dword [rdi + 0x64], ecx
mov eax, r11d
xor eax, r8d
xor eax, ecx
mov dword [rdi + 0x68], eax
not r11d
mov dword [rdi + 0x6c], r11d
mov r10d, dword [rdi + 0x74]
mov r8d, dword [rdi + 0x7c]
mov r9d, dword [rdi + 0x70]
not r9d
mov ecx, r9d
and r9d, r10d
mov edx, dword [rdi + 0x78]
not edx
xor edx, r9d
or r9d, r8d
xor r8d, edx
xor r10d, r9d
xor r9d, ecx
or ecx, r10d
xor r10d, r8d
or edx, r9d
and edx, ecx
xor r9d, r10d
mov dword [rdi + 0x70], edx
mov eax, edx
and eax, r9d
xor eax, ecx
mov dword [rdi + 0x74], eax
mov dword [rdi + 0x78], r8d
and edx, r10d
xor edx, r9d
mov dword [rdi + 0x7c], edx
lea rbx, [rdi + 0x80]
mov ecx, dword [rbx]
mov eax, dword [rdi + 0x84]
mov r11d, dword [rdi + 0x88]
mov r10d, ecx
xor r10d, dword [rdi + 0x8c]
mov r9d, r11d
xor r9d, eax
mov edx, r10d
and edx, eax
xor edx, ecx
mov r8d, r10d
or r8d, ecx
xor r8d, r9d
xor r9d, r10d
xor r10d, r11d
or r11d, edx
xor r11d, r9d
not r9d
or r9d, edx
mov ecx, r10d
xor ecx, edx
xor ecx, r9d
or r10d, r8d
mov eax, r10d
xor eax, ecx
mov dword [rbx], eax
xor r10d, r9d
mov dword [rdi + 0x84], r10d
mov dword [rdi + 0x88], r11d
mov dword [rdi + 0x8c], r8d
mov rdi, rbx
mov r9d, dword [rbx + 0x14]
mov ecx, dword [rbx + 0x18]
mov r10d, dword [rbx + 0x1c]
mov edx, r9d
and edx, ecx
xor edx, r10d
and r10d, r9d
xor ecx, edx
xor edx, r9d
xor r9d, dword [rbx + 0x10]
mov r8d, ecx
or r8d, dword [rbx + 0x10]
xor r8d, edx
xor r10d, r9d
xor edx, r10d
and r10d, r8d
xor r10d, ecx
mov eax, edx
xor eax, ecx
not eax
and edx, r8d
xor edx, eax
mov dword [rbx + 0x10], edx
and eax, r8d
xor eax, r9d
xor eax, r10d
mov dword [rbx + 0x14], eax
mov dword [rbx + 0x18], r10d
mov dword [rbx + 0x1c], r8d
mov r8d, dword [rbx + 0x20]
mov r10d, dword [rbx + 0x2c]
mov eax, dword [rbx + 0x28]
not eax
mov r9d, r10d
and r10d, r8d
xor r8d, r9d
xor r10d, eax
mov ecx, r10d
xor ecx, dword [rbx + 0x24]
mov edx, r9d
or edx, eax
xor edx, r8d
or r8d, ecx
xor edx, ecx
xor r9d, r8d
mov eax, r10d
or eax, r8d
xor eax, edx
xor r9d, r10d
xor r9d, eax
mov dword [rbx + 0x20], eax
mov dword [rbx + 0x24], ecx
mov dword [rbx + 0x28], r9d
and r9d, edx
not r10d
xor r9d, r10d
mov dword [rbx + 0x2c], r9d
mov r8d, dword [rbx + 0x34]
mov r9d, dword [rbx + 0x3c]
mov ecx, r8d
xor ecx, dword [rbx + 0x30]
xor r8d, r9d
not r9d
mov edx, r9d
xor edx, dword [rbx + 0x38]
mov eax, ecx
and eax, r8d
xor eax, edx
or edx, r8d
xor r8d, r9d
and r9d, eax
xor r9d, ecx
xor r8d, edx
xor r8d, eax
xor edx, ecx
mov dword [rbx + 0x30], eax
mov dword [rbx + 0x34], r9d
mov eax, r9d
and eax, ecx
xor eax, r8d
mov dword [rbx + 0x38], eax
or r9d, r8d
not edx
xor r9d, edx
mov dword [rbx + 0x3c], r9d
mov r9d, dword [rbx + 0x40]
mov r10d, dword [rbx + 0x4c]
mov edx, r10d
xor edx, dword [rbx + 0x44]
not r10d
mov r8d, r10d
xor r8d, dword [rbx + 0x48]
xor r10d, r9d
mov eax, r10d
and eax, edx
xor eax, r8d
xor edx, r10d
xor r9d, edx
and r8d, edx
xor r8d, r9d
and r9d, eax
xor r10d, r9d
mov ecx, eax
or ecx, edx
xor ecx, r9d
mov dword [rbx + 0x40], eax
mov eax, r10d
and eax, r8d
xor eax, ecx
mov dword [rbx + 0x44], eax
mov eax, r10d
or eax, r9d
xor eax, r8d
not eax
mov dword [rbx + 0x48], eax
mov dword [rbx + 0x4c], r10d
sub rsi, 1
jne 0x140023630
mov r10d, dword [rdi + 0x50]
mov eax, dword [rdi + 0x54]
mov edx, dword [rdi + 0x58]
mov r8d, dword [rdi + 0x5c]
mov r9d, r10d
or r10d, r8d
xor r8d, eax
and eax, r9d
xor r9d, edx
xor edx, r8d
or r9d, eax
and r8d, r10d
xor r8d, r9d
xor r10d, eax
and r9d, r10d
xor r9d, edx
mov ecx, r8d
xor ecx, eax
or ecx, r10d
xor ecx, edx
xor r10d, r8d
mov eax, r8d
or eax, ecx
xor eax, r10d
mov dword [rdi + 0x50], eax
mov dword [rdi + 0x54], ecx
mov dword [rdi + 0x58], r8d
mov dword [rdi + 0x5c], r9d
mov rcx, qword [rsp + 0x60]
cmp qword [rsp + 0x58], rcx
cmovb rcx, qword [rsp + 0x58]
lea rdx, [rsp + 0x30]
mov rax, qword [rsp + 0x68]
cmp rax, rdx
jne 0x140023990
mov byte [rsp + 0x51], 0
lea rax, [rax + rcx*4]
test rcx, rcx
je 0x140023990
xor edx, edx
lea rax, [rax - 4]
mov dword [rax], edx
sub rcx, 1
jne 0x140023980
nop dword [rax]
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.140024330
mov rbx, qword [rsp + 0xa8]
add rsp, 0x80
pop rdi
pop rsi
pop rbp
ret
mov rcx, qword [rcx + 0x240]
mov r9d, r8d
mov r8, rdx
mov edx, 0x20
jmp 0x140023450