Function at 0x2282380
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
lea rdi, [rcx + 8]
xor r14d, r14d
movaps xmmword [rsp + 0x20], xmm6
mov ebx, r8d
mov rsi, rdx
mov r13, rcx
cmp qword [rdi + 8], r14
jne 0x22823b4
mov eax, r14d
jmp 0x22823ba
mov eax, dword [rdi + 0x10]
sub eax, dword [rdi + 8]
lea edx, [rax + rbx]
mov rcx, rdi
call fcn.022812b0
mov rcx, qword [rdi + 0x10]
mov r8, rbx
mov rdx, rsi
call fcn.0228fde0
add qword [rdi + 0x10], rbx
mov qword [rsp + 0x78], rbp
movsd xmm6, qword [0x022a75a8]
cmp qword [rdi + 8], 0
je 0x22826ab
mov ecx, dword [rdi + 0x10]
sub ecx, dword [rdi + 8]
cmp ecx, 9
jle 0x22826ab
mov r9, qword [r13 + 0x10]
lea r15, [r13 + 0x124]
mov r8d, dword [r15]
mov qword [rsp + 0x88], r15
cmp r8d, dword [r9 + 4]
jne 0x228242b
movzx r8d, byte [r15 + 4]
cmp r8b, byte [r9 + 8]
jne 0x228242b
mov eax, r14d
jmp 0x2282430
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x2282692
mov esi, dword [r9]
test esi, esi
je 0x22826ab
cmp ecx, esi
jl 0x22826ab
mov rax, qword [r13 + 0x30]
lea rbx, [r13 + 0x28]
mov edx, 0x400
mov rcx, rbx
mov qword [rbx + 0x10], rax
call fcn.02281370
cmp qword [rbx + 8], 0
mov r14, qword [r13 + 0x10]
lea r12d, [rsi - 9]
jne 0x2282477
xor eax, eax
jmp 0x228247d
mov eax, dword [rbx + 0x10]
sub eax, dword [rbx + 8]
lea ecx, [rax + r12]
cmp ecx, dword [rbx + 0x18]
jb 0x2282514
pxor xmm0, xmm0
mov eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, xmm6
call fcn.0229deb8
xor ecx, ecx
mov r8d, 0x1000
lea r9d, [rcx + 4]
cvttsd2si r15, xmm0
shl r15d, 0xa
mov edx, r15d
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdx, qword [rbx + 8]
mov rbp, rax
test rdx, rdx
jne 0x22824cc
xor ecx, ecx
jmp 0x22824d1
mov ecx, dword [rbx + 0x10]
sub ecx, edx
mov r13d, ecx
mov r8d, ecx
mov rcx, rax
call fcn.0228fde0
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x22824f6
xor edx, edx
mov r8d, 0x8000
call qword [sym.imp.KERNEL32.dll_VirtualFree]
lea rax, [r13 + rbp]
mov r13, qword [rsp + 0x70]
mov dword [rbx + 0x18], r15d
mov r15, qword [rsp + 0x88]
mov qword [rbx + 0x10], rax
mov qword [rbx + 8], rbp
mov rcx, qword [rbx + 0x10]
lea rdx, [r14 + 9]
mov r8d, r12d
mov ebp, r12d
call fcn.0228fde0
xor r14d, r14d
mov r11d, r14d
mov r10d, r14d
mov r9d, r14d
test r12d, r12d
jle 0x228257c
nop dword [rax + rax]
movzx ecx, byte [r15 + r9]
mov r8, qword [rbx + 0x10]
inc r9
mov eax, 0x214d0215
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x7b
sub ecx, edx
add cl, 0x36
xor byte [r8 + r10], cl
test r11b, 3
cmove r9, r14
inc r11d
inc r10
cmp r11d, r12d
jl 0x2282540
add qword [rbx + 0x10], rbp
cmp qword [rbx + 8], r14
jne 0x228258b
mov r8d, r14d
jmp 0x2282593
mov r8d, dword [rbx + 0x10]
sub r8d, dword [rbx + 8]
mov rcx, qword [r13 + 0x110]
mov rdx, qword [r13 + 0x30]
mov rax, qword [rcx]
call qword [rax]
mov edx, dword [rdi + 0x18]
cmp esi, edx
ja 0x22823e5
mov rax, qword [rdi + 8]
test rax, rax
jne 0x22825bc
mov ecx, r14d
jmp 0x22825c1
mov ecx, dword [rdi + 0x10]
sub ecx, eax
cmp esi, ecx
jbe 0x22825cf
test rax, rax
je 0x22825f3
mov esi, dword [rdi + 0x10]
sub esi, eax
test esi, esi
je 0x22825ea
sub edx, esi
mov ebx, esi
mov rcx, rax
mov r8d, edx
lea rdx, [rax + rbx]
call fcn.0228fde0
sub qword [rdi + 0x10], rbx
mov rax, qword [rdi + 8]
test rax, rax
jne 0x22825f8
mov ecx, r14d
jmp 0x22825fd
mov ecx, dword [rdi + 0x10]
sub ecx, eax
test rax, rax
je 0x2282610
mov eax, dword [rdi + 0x10]
sub eax, dword [rdi + 8]
cmp ecx, eax
jb 0x22823e5
pxor xmm0, xmm0
mov eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, xmm6
call fcn.0229deb8
cvttsd2si rsi, xmm0
shl esi, 0xa
cmp esi, dword [rdi + 0x18]
jb 0x22823e5
xor ecx, ecx
mov edx, esi
mov r8d, 0x1000
lea r9d, [rcx + 4]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdx, qword [rdi + 8]
mov rbp, rax
test rdx, rdx
jne 0x228265a
mov ecx, r14d
jmp 0x228265f
mov ecx, dword [rdi + 0x10]
sub ecx, edx
mov ebx, ecx
mov r8d, ecx
mov rcx, rax
call fcn.0228fde0
mov rcx, qword [rdi + 8]
xor edx, edx
mov r8d, 0x8000
call qword [sym.imp.KERNEL32.dll_VirtualFree]
lea rax, [rbx + rbp]
mov qword [rdi + 8], rbp
mov qword [rdi + 0x10], rax
mov dword [rdi + 0x18], esi
jmp 0x22823e5
mov rax, qword [rdi + 8]
mov edx, 0x400
mov rcx, rdi
mov qword [rdi + 0x10], rax
call fcn.02281370
xor al, al
jmp 0x22826ad
mov al, 1
mov rbp, qword [rsp + 0x78]
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret