Function at 0x1400231c0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov ebx, r9d
mov ebp, r8d
mov rdi, rdx
mov rsi, rcx
mov qword [rcx + 0x838], 0
mov byte [rcx + 0x845], 0
mov qword [rcx + 0x820], 0
mov r8d, 0x800
xor edx, edx
call fcn.140084ef0
mov r14, qword [rdi + 0x28]
mov r15, qword [rdi + 0x38]
mov rax, r15
or rax, r14
je 0x140023234
xor ecx, ecx
test bpl, 4
mov eax, 7
cmove rax, rcx
test bl, 4
mov edx, 0x38
mov ecx, 0x3f
cmove rcx, rdx
jmp 0x14002326d
mov edx, ebx
xor dl, 0x38
xor ecx, ecx
test bpl, 4
mov r8d, 7
cmove r8, rcx
lea rax, [r8 + 0x38]
cmp bpl, 0x20
cmovl rax, r8
mov r8d, 7
test bl, 4
cmove r8, rcx
lea rcx, [r8 + 0x38]
cmp dl, 0x20
cmovge rcx, r8
xor bpl, al
xor bl, cl
movsx edx, bpl
movzx r8d, dl
and r8d, 3
shr edx, 1
and edx, 0x7ffc
or edx, r8d
movsx r8d, bl
movzx r9d, r8b
and r9d, 3
shr r8d, 1
and r8d, 0x7ffc
or r8d, r9d
shl rdx, 8
lea rdx, [rdx + rdx*2]
shl r8, 8
lea r8, [r8 + r8*2]
mov qword [rsi + 0x810], rax
mov qword [rsi + 0x818], rcx
mov qword [rsi + 0x800], rdx
mov qword [rsi + 0x808], r8
test r15, r15
je 0x140023301
nop word cs:[rax + rax]
xor edx, edx
tzcnt rdx, r15
mov ebx, 1
mov ecx, edx
shl rbx, cl
mov rcx, rsi
mov r8b, 1
call fcn.140023600
xor r15, rbx
jne 0x1400232e0
test r14, r14
je 0x140023331
nop word cs:[rax + rax]
xor edx, edx
tzcnt rdx, r14
mov ebx, 1
mov ecx, edx
shl rbx, cl
mov rcx, rsi
mov r8b, 0xff
call fcn.140023600
xor r14, rbx
jne 0x140023310
mov rbx, qword [rdi + 0x40]
test rbx, rbx
je 0x140023362
nop word [rax + rax]
xor edx, edx
tzcnt rdx, rbx
mov r14d, 1
mov ecx, edx
shl r14, cl
mov rcx, rsi
mov r8b, 2
call fcn.140023600
xor rbx, r14
jne 0x140023340
mov rbx, qword [rdi + 0x20]
test rbx, rbx
je 0x140023392
nop dword [rax + rax]
xor edx, edx
tzcnt rdx, rbx
mov r14d, 1
mov ecx, edx
shl r14, cl
mov rcx, rsi
mov r8b, 0xfe
call fcn.140023600
xor rbx, r14
jne 0x140023370
mov rbx, qword [rdi + 0x48]
test rbx, rbx
je 0x1400233c2
nop dword [rax + rax]
xor edx, edx
tzcnt rdx, rbx
mov r14d, 1
mov ecx, edx
shl r14, cl
mov rcx, rsi
mov r8b, 3
call fcn.140023600
xor rbx, r14
jne 0x1400233a0
mov rbx, qword [rdi + 0x18]
test rbx, rbx
je 0x1400233f2
nop dword [rax + rax]
xor edx, edx
tzcnt rdx, rbx
mov r14d, 1
mov ecx, edx
shl r14, cl
mov rcx, rsi
mov r8b, 0xfd
call fcn.140023600
xor rbx, r14
jne 0x1400233d0
mov rbx, qword [rdi + 0x50]
test rbx, rbx
je 0x140023422
nop dword [rax + rax]
xor edx, edx
tzcnt rdx, rbx
mov r14d, 1
mov ecx, edx
shl r14, cl
mov rcx, rsi
mov r8b, 4
call fcn.140023600
xor rbx, r14
jne 0x140023400
mov rbx, qword [rdi + 0x10]
test rbx, rbx
je 0x140023452
nop dword [rax + rax]
xor edx, edx
tzcnt rdx, rbx
mov r14d, 1
mov ecx, edx
shl r14, cl
mov rcx, rsi
mov r8b, 0xfc
call fcn.140023600
xor rbx, r14
jne 0x140023430
mov rbx, qword [rdi + 0x58]
test rbx, rbx
je 0x140023482
nop dword [rax + rax]
xor edx, edx
tzcnt rdx, rbx
mov r14d, 1
mov ecx, edx
shl r14, cl
mov rcx, rsi
mov r8b, 5
call fcn.140023600
xor rbx, r14
jne 0x140023460
mov rbx, qword [rdi + 8]
test rbx, rbx
je 0x1400234b2
nop dword [rax + rax]
xor edx, edx
tzcnt rdx, rbx
mov r14d, 1
mov ecx, edx
shl r14, cl
mov rcx, rsi
mov r8b, 0xfb
call fcn.140023600
xor rbx, r14
jne 0x140023490
mov rbx, qword [rdi + 0x60]
test rbx, rbx
je 0x1400234e2
nop dword [rax + rax]
xor edx, edx
tzcnt rdx, rbx
mov r14d, 1
mov ecx, edx
shl r14, cl
mov rcx, rsi
mov r8b, 6
call fcn.140023600
xor rbx, r14
jne 0x1400234c0
mov rdi, qword [rdi]
test rdi, rdi
je 0x140023511
nop word [rax + rax]
xor edx, edx
tzcnt rdx, rdi
mov ebx, 1
mov ecx, edx
shl rbx, cl
mov rcx, rsi
mov r8b, 0xfa
call fcn.140023600
xor rdi, rbx
jne 0x1400234f0
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret