Function at 0x2026e860
Capabilities:
Encode data using xor

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
mov eax, r9d
and eax, 0x1f
cmp eax, 0xb
ja 0x2026e8e2
cmp eax, 3
ja 0x2026e9fa
cmp eax, 2
jae 0x2026e92e
test eax, eax
je 0x2026eb92
test r9b, 0x20
je 0x2026f34e
test rdi, rdi
je 0x2026f18c
cmp rdi, 1
mov rax, rdi
adc rax, 0
xor ecx, ecx
cmp rdi, 8
jb 0x2026f127
mov rdx, rbx
sub rdx, rsi
cmp rdx, 0x20
jb 0x2026f127
cmp rdi, 0x20
jae 0x2026f0c9
xor ecx, ecx
jmp 0x2026f0fd
cmp eax, 0x11
jbe 0x2026e917
cmp eax, 0x14
jbe 0x2026e943
cmp eax, 0x15
jne 0x2026e9ce
test ebx, ebx
je 0x2026ecc9
test r9b, 0x20
je 0x2026ed32
mov rcx, rsi
call fcn.20077cc0
mov r14, rsi
jmp 0x2026f351
cmp eax, 0xc
jne 0x2026e989
mov rcx, rbx
mov edx, edi
call fcn.203cac30
mov r14, rbx
jmp 0x2026f351
cmp eax, 3
jne 0x2026e9ed
lock inc dword [rdi + 8]
xor r14d, r14d
jmp 0x2026f351
cmp eax, 0x12
je 0x2026ebc9
cmp eax, 0x14
jne 0x2026ebde
nop
movzx eax, byte [0x20536db6]
lea r14, [0x20536da0]
cmp al, 0x60
je 0x2026f351
mov cl, 0xa
nop
mov al, 0x42
lock cmpxchg byte [0x20536db6], cl
je 0x2026ee3a
cmp al, 0x60
jne 0x2026e970
jmp 0x2026f351
cmp eax, 0xe
ja 0x2026eae7
jne 0x2026ecd1
test rdi, rdi
je 0x2026ee32
cmp rdi, 1
adc rdi, 0
xor r14d, r14d
xor eax, eax
nop
nop
movzx ecx, byte [rsi + rax]
movzx edx, byte [rbx + rax]
cmp cl, dl
jne 0x2026eec8
inc rax
cmp rdi, rax
jne 0x2026e9b0
jmp 0x2026f351
mov r14d, 0xffff
cmp eax, 0x16
ja 0x2026f351
mov rcx, rsi
call fcn.203caca8
xor r14d, r14d
jmp 0x2026f351
mov ebx, ebx
mov r9d, 0x6d65ad06
mov eax, 6
cmp eax, 7
jbe 0x2026ea25
cmp eax, 9
jbe 0x2026ea44
cmp eax, 0xb
jne 0x2026ec0d
test edi, edi
je 0x2026ecc9
mov rcx, rsi
call fcn.20077cc0
mov r14, rsi
jmp 0x2026f351
cmp eax, 5
ja 0x2026ea76
mov r14d, 0xffff
cmp eax, 4
jne 0x2026f351
mov r9d, 0x7f4db82f
jmp 0x2026eb78
cmp eax, 8
jne 0x2026ec53
nop
mov rcx, qword [rsi + 0x38]
mov rdx, qword [rcx]
test rdx, rdx
je 0x2026ed3e
nop
mov r8, qword [rsi + 0x50]
cmp dword [r8], 0
jle 0x2026efb5
nop
movzx eax, word [rdx]
jmp 0x2026eff8
cmp eax, 7
jne 0x2026ec89
lea rax, [0x20411d18]
mov qword [rbx], rax
mov rdi, qword [rbx + 0x60]
test rdi, rdi
je 0x2026eacf
nop
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x2026eac7
nop
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x200c7fcc.0]
test rax, rax
je 0x2026eac7
nop
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [case.0x200c7fcc.0]
mov rcx, rdi
call fcn.20077cc0
test esi, esi
je 0x2026f18c
mov rcx, rbx
call fcn.20077cc0
mov r14, rbx
jmp 0x2026f351
cmp eax, 0xf
je 0x2026eb78
cmp eax, 0x11
jne 0x2026ed18
lea rax, [0x20411be8]
mov qword [rbx], rax
mov ecx, 0x12a3d9e5
mov rdx, rbx
call fcn.2026d330
lea rax, [0x20411d18]
mov qword [rbx], rax
mov rsi, qword [rbx + 0x60]
test rsi, rsi
je 0x2026eb60
nop
mov rcx, qword [rsi + 8]
test rcx, rcx
je 0x2026eb58
nop
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x200c7fcc.0]
test rax, rax
je 0x2026eb58
nop
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [case.0x200c7fcc.0]
mov rcx, rsi
call fcn.20077cc0
test edi, edi
je 0x2026f18c
mov rcx, rbx
call fcn.20077cc0
mov r14, rbx
jmp 0x2026f351
cmp rdi, rsi
jae 0x2026ece4
xor eax, eax
test r9b, 0x20
je 0x2026eff8
jmp 0x2026ed4c
nop
movzx eax, byte [0x20536d95]
lea r14, [0x20536d80]
cmp al, 0xaf
je 0x2026f351
mov cl, 0x77
nop dword [rax + rax]
mov al, 0x5a
lock cmpxchg byte [0x20536d95], cl
je 0x2026ed82
cmp al, 0xaf
jne 0x2026ebb0
jmp 0x2026f351
test ebx, ebx
je 0x2026ed28
mov rcx, rdi
call fcn.20077cc0
jmp 0x2026f34e
xor eax, eax
sub eax, dword [rdi - 4]
cdqe
lea r14, [rdi + rax]
add r14, 0xffffffffffffff68
mov rcx, r14
call fcn.2026a4a0
test esi, esi
je 0x2026f351
mov rcx, r14
call fcn.20077cc0
jmp 0x2026f351
nop
mov r10, qword [rbx + 8]
movzx eax, byte [0x20536ce2]
cmp al, 0xb2
je 0x2026f0b6
mov cl, 0x40
nop word cs:[rax + rax]
mov al, 0x66
lock cmpxchg byte [0x20536ce2], cl
je 0x2026f001
test r9b, 0x20
jne 0x2026eb60
cmp al, 0xb2
jne 0x2026ec30
jmp 0x2026f0b6
nop
movzx eax, byte [0x20536de9]
lea r14, [0x20536de0]
cmp al, 0xfb
je 0x2026f351
mov cl, 0xac
nop dword [rax]
mov al, 0x3b
lock cmpxchg byte [0x20536de9], cl
je 0x2026eed2
cmp al, 0xfb
jne 0x2026ec70
jmp 0x2026f351
nop
movzx eax, byte [0x20536dd5]
lea r14, [0x20536dc0]
cmp al, 0x59
je 0x2026f351
mov cl, 0x3c
nop word cs:[rax + rax]
mov al, 0x94
lock cmpxchg byte [0x20536dd5], cl
je 0x2026eeff
cmp al, 0x59
jne 0x2026ecb0
jmp 0x2026f351
mov r14, rsi
jmp 0x2026f351
mov rcx, rbx
mov rdx, rsi
call fcn.203c93a0
xor r14d, r14d
jmp 0x2026f351
test rbx, rbx
je 0x2026f34e
cmp rbx, 4
jb 0x2026f2da
mov rax, rsi
sub rax, rdi
cmp rax, 0x10
jb 0x2026f2da
cmp rbx, 0x10
jae 0x2026f194
xor eax, eax
jmp 0x2026f1dc
mov rcx, rbx
call fcn.20255cd0
xor r14d, r14d
jmp 0x2026f351
test r9b, 0x40
jne 0x2026f34e
lea r14, [0x20536dc0]
jmp 0x2026f351
mov ax, 0xffff
test r9b, 0x20
je 0x2026eff8
test rbx, rbx
je 0x2026f34e
xor eax, eax
cmp rbx, 8
jb 0x2026f27b
mov rcx, rdi
sub rcx, rsi
cmp rcx, 0x20
jb 0x2026f27b
cmp rbx, 0x20
jae 0x2026f221
xor eax, eax
jmp 0x2026f256
mov ecx, 0x16450728
mov r8d, 0x16450727
xor r10d, r10d
movabs r11, 0x642c8590b21642c9
lea rsi, [0x20421f70]
lea r14, [0x20536d80]
nop dword [rax + rax]
mov rax, rcx
mul r11
mov r9, rdx
mov rax, r8
mul r11
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rax, rax, 0xffffffffffffffe9
add rax, rsi
add rax, 0x1645071d
movzx eax, byte [r10 + rax + 0xa]
xor al, 0x22
add byte [r10 + r14], al
cmp r10, 0x14
je 0x2026ee25
mov rax, rcx
sub rax, r9
shr rax, 1
add rax, r9
shr rax, 4
imul rax, rax, 0xffffffffffffffe9
add rax, rsi
add rax, 0x16450728
movzx eax, byte [rax + r10]
xor al, 0x22
add byte [r10 + r14 + 1], al
add r10, 2
add rcx, 2
add r8, 2
jmp 0x2026edb0
mov al, 0xaf
xchg byte [0x20536d95], al
jmp 0x2026f351
xor r14d, r14d
jmp 0x2026f351
mov eax, 0x1b64aa7a
mov ecx, 0xe49b559a
mov edx, 1
mov r8d, 0x1b64aa7b
mov r9d, 0xba2e8ba3
lea r14, [0x20536da0]
lea r10, [0x20421f90]
nop word cs:[rax + rax]
mov r11d, ecx
imul r11, r9
shr r11, 0x24
lea esi, [r11 + r11*4]
lea esi, [r11 + rsi*4]
add esi, r11d
lea r11d, [rax + rsi]
add esi, r8d
movzx ebx, byte [rsi + r10]
xor bl, 0x15
add byte [rdx + r14 - 1], bl
movzx r11d, byte [r11 + r10]
xor r11b, 0x15
add byte [rdx + r14], r11b
add eax, 0xfffffffe
add ecx, 2
add rdx, 2
add r8d, 0xfffffffe
cmp rdx, 0x17
jne 0x2026ee70
mov al, 0x60
xchg byte [0x20536db6], al
jmp 0x2026f351
sub ecx, edx
mov r14, rcx
jmp 0x2026f351
nop
movq xmm0, qword [0x20536de0]
paddb xmm0, xmmword [0x20421990]
movq qword [0x20536de0], xmm0
add byte [0x20536de8], 0xa1
mov al, 0xfb
xchg byte [0x20536de9], al
jmp 0x2026f351
mov ecx, 0xfcf730f5
mov r8d, 0xfcf730f4
xor r10d, r10d
movabs r11, 0x642c8590b21642c9
lea rax, [0x20421fb0]
mov esi, 0xfcf730ec
add rsi, rax
lea r14, [0x20536dc0]
nop dword [rax]
mov rax, rcx
mul r11
mov r9, rdx
mov rax, r8
mul r11
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rax, rax, 0xffffffffffffffe9
add rax, rsi
movzx edx, byte [r10 + r14]
xor dl, byte [r10 + rax + 8]
xor dl, 0xfe
mov byte [r10 + r14], dl
cmp r10, 0x14
je 0x2026efa8
mov rax, rcx
sub rax, r9
shr rax, 1
add rax, r9
shr rax, 4
imul rax, rax, 0xffffffffffffffe9
add rax, rsi
add rax, 9
movzx edx, byte [r10 + r14 + 1]
xor dl, byte [rax + r10]
xor dl, 0xfe
mov byte [r10 + r14 + 1], dl
add r10, 2
add rcx, 2
add r8, 2
jmp 0x2026ef30
mov al, 0x59
xchg byte [0x20536dd5], al
jmp 0x2026f351
nop
mov rax, qword [rsi + 0x40]
mov r10, qword [rax]
mov ax, 0xffff
test r10, r10
je 0x2026eff8
nop
test byte [rsi + 0x70], 4
jne 0x2026eff8
nop
mov r9, qword [rsi + 0x68]
cmp r9, r10
cmovb r9, r10
cmp r9, rdx
jbe 0x2026eff8
nop
mov qword [rsi + 0x68], r9
sub r9, qword [rcx]
shr r9, 1
mov dword [r8], r9d
mov rax, qword [rsi + 0x38]
mov rdx, qword [rax]
jmp 0x2026ea6d
movzx r14d, ax
jmp 0x2026f351
lea r9, [0x20421ee0]
lea r11, [r9 + 0x41793aea]
add r9, 0x41793ae9
mov ecx, 0x41793aea
mov r8d, 0x41793ae8
movabs rsi, 0xe38e38e38e38e38f
lea rdi, [0x20536cd0]
nop word cs:[rax + rax]
mov rax, rcx
mul rsi
shr rdx, 3
and rdx, 0xfffffffffffffffe
lea rbx, [rdx + rdx*8]
neg rbx
mov rax, r8
mul rsi
shr rdx, 3
and rdx, 0xfffffffffffffffe
lea rax, [rdx + rdx*8]
neg rax
movzx edx, byte [rcx + rdi - 0x41793aea]
xor dl, byte [r9 + rax]
movzx eax, byte [rcx + rdi - 0x41793ae9]
xor dl, 0xc5
xor al, byte [r11 + rbx]
mov byte [rcx + rdi - 0x41793aea], dl
xor al, 0xc5
mov byte [rcx + rdi - 0x41793ae9], al
add r11, 2
add rcx, 2
add r9, 2
add r8, 2
cmp rcx, 0x41793afc
jne 0x2026f040
mov al, 0xb2
xchg byte [0x20536ce2], al
test r10, r10
lea r14, [0x20536cd0]
cmovne r14, r10
jmp 0x2026f351
mov rcx, rax
and rcx, 0xffffffffffffffe0
xor edx, edx
nop
movdqu xmm0, xmmword [rsi + rdx]
movups xmm1, xmmword [rsi + rdx + 0x10]
movdqu xmmword [rbx + rdx], xmm0
movups xmmword [rbx + rdx + 0x10], xmm1
add rdx, 0x20
cmp rcx, rdx
jne 0x2026f0d2
cmp rax, rcx
je 0x2026f18c
test al, 0x18
je 0x2026f127
mov rdx, rcx
mov rcx, rax
and rcx, 0xfffffffffffffff8
nop word [rax + rax]
nop
mov r8, qword [rsi + rdx]
mov qword [rbx + rdx], r8
add rdx, 8
cmp rcx, rdx
jne 0x2026f110
cmp rax, rcx
je 0x2026f18c
mov r8, rax
mov rdx, rcx
and r8, 3
je 0x2026f152
mov rdx, rcx
nop word cs:[rax + rax]
nop
movzx r9d, byte [rsi + rdx]
mov byte [rbx + rdx], r9b
inc rdx
dec r8
jne 0x2026f140
sub rcx, rax
cmp rcx, 0xfffffffffffffffc
ja 0x2026f18c
nop dword [rax + rax]
nop
movzx eax, byte [rsi + rdx]
mov byte [rbx + rdx], al
movzx eax, byte [rsi + rdx + 1]
mov byte [rbx + rdx + 1], al
movzx eax, byte [rsi + rdx + 2]
mov byte [rbx + rdx + 2], al
movzx eax, byte [rsi + rdx + 3]
mov byte [rbx + rdx + 3], al
add rdx, 4
cmp rdi, rdx
jne 0x2026f160
mov r14, rbx
jmp 0x2026f351
mov rax, rbx
and rax, 0xfffffffffffffff0
lea rcx, [rdi + rbx]
add rcx, 0xfffffffffffffff0
lea rdx, [rsi + rbx]
add rdx, 0xfffffffffffffff0
mov r8, rax
neg r8
xor r9d, r9d
nop
movdqu xmm0, xmmword [rdx + r9]
movdqu xmmword [rcx + r9], xmm0
add r9, 0xfffffffffffffff0
cmp r8, r9
jne 0x2026f1b4
cmp rbx, rax
je 0x2026f34e
test bl, 0xc
je 0x2026f2d7
mov rdx, rbx
and rdx, 0xfffffffffffffffc
mov ecx, ebx
and ecx, 3
lea r8, [rdi + rbx]
add r8, 0xfffffffffffffffc
neg rax
lea r9, [rsi + rbx]
add r9, 0xfffffffffffffffc
mov r10, rdx
neg r10
nop
mov r11d, dword [r9 + rax]
mov dword [r8 + rax], r11d
add rax, 0xfffffffffffffffc
cmp r10, rax
jne 0x2026f201
cmp rbx, rdx
jne 0x2026f2dd
jmp 0x2026f34e
mov rax, rbx
and rax, 0xffffffffffffffe0
xor ecx, ecx
nop
movdqu xmm0, xmmword [rsi + rcx]
movups xmm1, xmmword [rsi + rcx + 0x10]
movdqu xmmword [rdi + rcx], xmm0
movups xmmword [rdi + rcx + 0x10], xmm1
add rcx, 0x20
cmp rax, rcx
jne 0x2026f22a
cmp rbx, rax
je 0x2026f34e
test bl, 0x18
je 0x2026f27b
mov rcx, rax
mov rax, rbx
and rax, 0xfffffffffffffff8
nop
mov rdx, qword [rsi + rcx]
mov qword [rdi + rcx], rdx
add rcx, 8
cmp rax, rcx
jne 0x2026f260
cmp rbx, rax
je 0x2026f34e
mov rdx, rbx
mov rcx, rax
and rdx, 3
je 0x2026f29c
mov rcx, rax
nop
movzx r8d, byte [rsi + rcx]
mov byte [rdi + rcx], r8b
inc rcx
dec rdx
jne 0x2026f28a
sub rax, rbx
cmp rax, 0xfffffffffffffffc
ja 0x2026f34e
nop
movzx eax, byte [rsi + rcx]
mov byte [rdi + rcx], al
movzx eax, byte [rsi + rcx + 1]
mov byte [rdi + rcx + 1], al
movzx eax, byte [rsi + rcx + 2]
mov byte [rdi + rcx + 2], al
movzx eax, byte [rsi + rcx + 3]
mov byte [rdi + rcx + 3], al
add rcx, 4
cmp rbx, rcx
jne 0x2026f2a9
jmp 0x2026f34e
and ebx, 0xf
mov rcx, rbx
lea rdx, [rcx - 1]
mov r8, rcx
and r8, 3
je 0x2026f309
nop word [rax + rax]
lea rax, [rcx - 1]
movzx r9d, byte [rsi + rcx - 1]
mov byte [rdi + rcx - 1], r9b
dec r8
mov rcx, rax
jne 0x2026f2f0
jmp 0x2026f30c
mov rax, rcx
cmp rdx, 3
jb 0x2026f34e
mov rcx, rax
nop word cs:[rax + rax]
nop
movzx edx, byte [rsi + rax - 1]
mov byte [rdi + rax - 1], dl
movzx edx, byte [rsi + rax - 2]
mov byte [rdi + rax - 2], dl
movzx edx, byte [rsi + rax - 3]
mov byte [rdi + rax - 3], dl
add rcx, 0xfffffffffffffffc
movzx edx, byte [rsi + rax - 4]
mov byte [rdi + rax - 4], dl
mov rax, rcx
jne 0x2026f320
mov r14, rdi
mov rax, r14
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
ret