Function at 0x2027ad50
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x70
mov rdi, r8
mov rsi, rcx
nop word cs:[rax + rax]
mov ebp, r9d
mov rbx, rdi
mov rdi, rdx
mov eax, r9d
and eax, 0x1f
cmp eax, 0xc
jae 0x2027adb0
cmp eax, 4
ja 0x2027ae19
cmp eax, 1
jbe 0x2027aeac
mov r9d, 0x34a7b472
mov rdx, rbx
cmp eax, 4
je 0x2027ad70
jmp 0x2027ade1
cmp eax, 0x12
jb 0x2027ae53
cmp eax, 0x14
jb 0x2027aec6
cmp eax, 0x16
jae 0x2027aee3
cmp eax, 0x14
je 0x2027af26
mov edi, edi
mov r9d, 0xa99d4b96
mov rdx, rbx
jmp 0x2027ad70
cmp eax, 2
jne 0x2027af0a
test ebx, ebx
je 0x2027afd8
test bpl, 0x40
jne 0x2027afe9
mov rcx, rdi
call fcn.200782c0
test bpl, 0x20
jne 0x2027b76d
mov r15d, ebx
mov r12d, edi
jmp 0x2027b734
mov r15d, ebx
mov r12d, edi
cmp eax, 6
jbe 0x2027af52
cmp eax, 8
jbe 0x2027b047
cmp eax, 9
je 0x2027b254
cmp eax, 0xa
jne 0x2027b29d
mov rax, rbx
test esi, esi
jne 0x2027b3b5
jmp 0x2027b79d
cmp eax, 0xd
jbe 0x2027af6d
cmp eax, 0xf
jbe 0x2027b06c
cmp eax, 0x11
jne 0x2027b12a
nop
mov rdx, qword [rsi + 0x38]
mov rax, qword [rdx]
mov r8w, 0xffff
test rax, rax
je 0x2027b356
nop
mov rcx, qword [rsi + 0x50]
cmp dword [rcx], 0
jg 0x2027b03d
nop
mov r9, qword [rsi + 0x40]
mov r10, qword [r9]
test r10, r10
je 0x2027b356
lea r9, [rsi + 0x38]
jmp 0x2027b000
test eax, eax
je 0x2027b3b2
mov rcx, rdi
mov edx, esi
call fcn.20423890
mov rax, rdi
jmp 0x2027b79d
cmp eax, 0x12
jne 0x2027af91
nop
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x30], 0
jmp 0x2027b68f
jne 0x2027afa0
nop
movzx eax, byte [0x205a0fb6]
cmp al, 0xbf
jne 0x2027b0f1
test ebp, 0x200
jne 0x2027b243
jmp 0x2027b682
nop
movzx eax, byte [0x205a0f95]
cmp al, 0x8f
jne 0x2027afbf
lea rax, [0x205a0f80]
jmp 0x2027b79d
nop
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x28], rbx
cmp rdi, rbx
jae 0x2027afca
test ebp, 0x800
jne 0x2027b673
xor ecx, ecx
jmp 0x2027b408
cmp eax, 5
je 0x2027b688
nop
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x40], rsi
xor edx, edx
jmp 0x2027b630
cmp eax, 0xc
jne 0x2027b0c3
mov rcx, rsi
mov rdx, rbx
mov r8, rdi
mov r9d, 0x9760a9c6
call fcn.2027ad50
mov eax, eax
jmp 0x2027b79d
xor eax, eax
lock dec dword [rdi + 8]
cmove rax, rdi
jmp 0x2027b79d
nop
mov rsi, qword [rbx + 8]
test rsi, rsi
sete cl
movzx eax, byte [0x205a0ee2]
cmp al, 4
jne 0x2027b43a
jmp 0x2027b510
mov r15d, ebx
mov r12d, edi
jmp 0x2027b3c5
mov r15d, ebx
mov r12d, edi
mov rcx, rsi
jmp 0x2027b734
mov rax, rdi
test bpl, bpl
js 0x2027b673
jmp 0x2027b79d
lea r9, [rsp + 0x38]
lea rcx, [rsp + 0x20]
lea rax, [rsp + 0x48]
lea r10, [rsp + 0x30]
mov rdx, rcx
mov r8w, 0xffff
test byte [rsi + 0x70], 4
jne 0x2027b0ce
nop
mov r11, qword [rsi + 0x68]
cmp r11, r10
cmovb r11, r10
mov r8w, 0xffff
cmp r11, rax
jbe 0x2027b356
nop
mov qword [rsi + 0x68], r11
sub r11, qword [rdx]
shr r11, 1
mov dword [rcx], r11d
mov rax, qword [r9]
mov rax, qword [rax]
nop
movzx r8d, word [rax]
jmp 0x2027b356
cmp eax, 7
je 0x2027b688
nop
movzx eax, byte [0x205a0fe9]
cmp al, 0x61
jne 0x2027b2d1
lea rax, [0x205a0fe0]
jmp 0x2027b79d
cmp eax, 0xe
jne 0x2027b16c
xor eax, eax
sub eax, dword [rsi - 4]
cdqe
lea rcx, [rsi + rax]
add rcx, 0xffffffffffffff68
mov r14, rcx
call fcn.20276250
test edi, edi
je 0x2027b300
test bpl, 0x20
jne 0x2027b314
mov rcx, r14
call fcn.200782c0
mov rax, r14
test bpl, 0x40
jne 0x2027b79d
add rsi, 0xfffffffffffffffc
xor eax, eax
xor ecx, ecx
jmp 0x2027b432
test esi, esi
je 0x2027b24f
xor r8d, r8d
test bpl, 0x20
jne 0x2027b356
mov rcx, rdi
call fcn.200782c0
test bpl, bpl
mov rax, rdi
jns 0x2027b79a
jmp 0x2027b79d
mov cl, 0x56
nop word cs:[rax + rax]
mov al, 0x1b
lock cmpxchg byte [0x205a0fb6], cl
je 0x2027b1ac
cmp al, 0xbf
jne 0x2027b100
test bpl, 0x20
je 0x2027b243
lea rax, [0x205a0fc0]
jmp 0x2027b79d
nop
movzx ecx, byte [0x205a0fd5]
lea rax, [0x205a0fc0]
cmp cl, 0x41
je 0x2027b79d
mov rcx, rax
mov dl, 0xb
mov al, 0x84
lock cmpxchg byte [0x205a0fd5], dl
je 0x2027b348
test bpl, bpl
js 0x2027b353
cmp al, 0x41
jne 0x2027b147
mov rax, rcx
jmp 0x2027b79d
nop
mov rax, qword [rbx]
mov rax, qword [rax + 0x18]
lea rdx, [rsp + 0x60]
mov rcx, rbx
mov r8d, esi
call qword [case.0x200c66ec.0]
mov rax, qword [rsp + 0x68]
mov rcx, qword [rdi + 8]
mov rax, qword [rax + 8]
cmp rax, qword [rcx + 8]
sete al
mov ecx, dword [rsp + 0x60]
cmp ecx, dword [rdi]
sete cl
and cl, al
movzx eax, cl
jmp 0x2027b79d
mov eax, 0xefcc3105
mov ecx, 0x1033cf10
mov edx, 1
mov r8d, 0xefcc3106
mov r9d, 0x1033cf0e
mov r10d, 0xba2e8ba3
lea r11, [0x205a0fa0]
lea rsi, [0x2047dff0]
nop dword [rax + rax]
mov edi, ecx
imul rdi, r10
shr rdi, 0x24
lea ebx, [rdi + rdi*4]
lea ebx, [rdi + rbx*4]
add edi, eax
add edi, ebx
mov ebx, r9d
imul rbx, r10
shr rbx, 0x24
lea r14d, [rbx + rbx*4]
lea ebp, [rbx + r14*4]
add ebx, r8d
add ebx, ebp
movzx ebx, byte [rbx + rsi]
xor bl, 0xa3
add byte [rdx + r11 - 1], bl
movzx ebx, byte [rdi + rsi]
xor bl, 0xa3
add byte [rdx + r11], bl
add eax, 0xfffffffe
add ecx, 2
add rdx, 2
add r8d, 0xfffffffe
add r9d, 2
cmp rdx, 0x17
jne 0x2027b1e0
mov al, 0xbf
xchg byte [0x205a0fb6], al
lea rax, [0x205a0fa0]
jmp 0x2027b79d
jmp 0x2027b424
lea rax, [0x2046dbf8]
mov qword [rbx], rax
mov r14, qword [rbx + 0x60]
test r14, r14
je 0x2027b523
test ebp, 0x100
je 0x2027b549
nop
mov rcx, qword [r14 + 8]
test rcx, rcx
je 0x2027b2f3
nop
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x200c66ec.0]
test rax, rax
je 0x2027b3a1
mov rcx, rax
jmp 0x2027b2db
lea rax, [0x2046dad8]
mov qword [rsi], rax
mov rcx, rsi
mov r9d, 0x3e8201e4
call fcn.20279500
lea rax, [0x2046dbf8]
mov qword [rsi], rax
mov r14, qword [rsi + 0x60]
test r14, r14
jne 0x2027b761
jmp 0x2027b789
lea r14, [rsp + 0x40]
lea rcx, [rsp + 0x50]
test bpl, 0x20
jne 0x2027b320
nop
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x200c66ec.0]
mov rcx, r14
call fcn.200782c0
jmp 0x2027b523
test ebp, 0x100
mov rax, r14
jne 0x2027b79d
jmp 0x2027b68f
lea rsi, [rsp + 0x20]
xor ecx, ecx
jmp 0x2027b43a
mov dl, 0x94
lea rcx, [0x205a0fe0]
mov al, 0xf
lock cmpxchg byte [0x205a0fe9], dl
je 0x2027b35f
cmp al, 0x61
je 0x2027b164
test bpl, 0x40
jne 0x2027b329
jmp 0x2027b23b
mov r15d, ebx
mov r12d, edi
jmp 0x2027b3d3
xor r8d, r8d
movzx eax, r8w
jmp 0x2027b79d
nop
add byte [0x205a0fe0], 0xa7
test ebp, 0x100
je 0x2027b3c5
nop
movq xmm0, qword [0x205a0fe1]
paddb xmm0, xmmword [0x2047d8b0]
movq qword [0x205a0fe1], xmm0
test bpl, bpl
mov rax, rbx
jns 0x2027b79d
mov al, 0x61
xchg byte [0x205a0fe9], al
jmp 0x2027b164
test ebp, 0x400
jne 0x2027b2f3
jmp 0x2027b739
nop
ud2
mov rcx, rbx
call fcn.200782c0
mov rax, rbx
jmp 0x2027b79d
mov cl, 0x60
mov al, 0xd3
lock cmpxchg byte [0x205a0f95], cl
jne 0x2027b3eb
xor eax, eax
test ebp, 0x1000
je 0x2027b7ac
lea r14, [rsp + 0x58]
jmp 0x2027b56c
cmp al, 0x8f
jne 0x2027b52d
test ebp, 0x400
jne 0x2027af1a
lea rsi, [rsp + 0x28]
xor ecx, ecx
jmp 0x2027b448
nop
cmp rcx, qword [rsp + 0x20]
jae 0x2027b76d
nop
mov rax, qword [rsp + 0x28]
movzx eax, byte [rax + rcx]
mov byte [rdi + rcx], al
inc rcx
mov rax, rdi
test bpl, 0x40
je 0x2027b408
jmp 0x2027b79d
cmp al, 4
je 0x2027b510
mov dl, 0x48
mov al, 0xb1
lock cmpxchg byte [0x205a0ee2], dl
jne 0x2027b432
mov eax, 0xdb2ca459
mov edx, 0x24d35bb9
mov r8d, 1
mov r9d, 0xdb2ca45a
mov r10d, 0x24d35bb8
mov r11d, 0xaf286bcb
lea rdi, [0x205a0ed0]
lea rbx, [0x2047df40]
nop dword [rax + rax]
mov r14d, edx
imul r14, r11
shr r14, 0x20
mov r15d, edx
sub r15d, r14d
shr r15d, 1
add r15d, r14d
shr r15d, 4
lea r14d, [r15 + r15*8]
lea r14d, [r15 + r14*2]
add r14d, eax
mov r15d, r10d
imul r15, r11
shr r15, 0x20
mov r12d, r10d
sub r12d, r15d
shr r12d, 1
add r12d, r15d
shr r12d, 4
lea r15d, [r12 + r12*8]
lea r15d, [r12 + r15*2]
add r15d, r9d
movzx r15d, byte [r15 + rbx]
xor r15b, 0xcd
add byte [r8 + rdi - 1], r15b
movzx r14d, byte [r14 + rbx]
xor r14b, 0xcd
add byte [r8 + rdi], r14b
add eax, 0xfffffffe
add edx, 2
add r8, 2
add r9d, 0xfffffffe
add r10d, 2
cmp r8, 0x13
jne 0x2027b480
mov al, 4
xchg byte [0x205a0ee2], al
test bpl, bpl
jns 0x2027af1a
lea rax, [0x205a0ed0]
test cl, 1
cmove rax, rsi
jmp 0x2027b79d
mov eax, r12d
xor r12d, r12d
test eax, eax
jne 0x2027b541
mov rax, rbx
test ebp, 0x800
jne 0x2027b3c5
jmp 0x2027b79d
mov rcx, rbx
call fcn.200782c0
mov rax, rbx
test ebp, 0x2000
jne 0x2027b79d
mov al, 0x41
xchg byte [0x205a0fd5], al
lea rax, [0x205a0fc0]
jmp 0x2027b79d
test bpl, 0x20
je 0x2027b725
mov ecx, 0x705599c2
mov r8d, 0x705599c1
xor r10d, r10d
movabs r11, 0x8618618618618619
lea rsi, [0x2047dfd0]
lea rdi, [0x205a0f80]
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, 0xffffffffffffffeb
add rax, rsi
add rax, 0x705599b8
movzx eax, byte [r10 + rax + 9]
xor al, 0xb1
add byte [r10 + rdi], al
cmp r10, 0x14
je 0x2027aef9
mov rax, rcx
sub rax, r9
shr rax, 1
add rax, r9
shr rax, 4
imul rax, rax, 0xffffffffffffffeb
add rax, rsi
add rax, 0x705599c2
movzx eax, byte [rax + r10]
xor al, 0xb1
add byte [r10 + rdi + 1], al
add r10, 2
add rcx, 2
add r8, 2
jmp 0x2027b5a0
mov al, 0x8f
xchg byte [0x205a0f95], al
lea rax, [0x205a0f80]
jmp 0x2027b79d
inc rdx
nop
mov qword [rsp + 0x38], rdx
cmp rdx, rbx
jae 0x2027b673
test ebp, 0x1000
jne 0x2027b734
nop
mov rax, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x38]
movzx eax, byte [rax + rdx]
mov r8, qword [rsp + 0x40]
movzx r8d, byte [r8 + rdx]
cmp al, r8b
je 0x2027b62d
test bpl, 0x20
jne 0x2027b68f
sub eax, r8d
jmp 0x2027b79d
mov rax, rbx
test ebp, 0x100
je 0x2027b79d
test bpl, 0x40
je 0x2027b619
xor eax, eax
jmp 0x2027b79d
nop
mov rax, qword [rsp + 0x30]
cmp rax, rbx
jae 0x2027b79a
test bpl, 0x40
je 0x2027b3b5
neg rbx
inc rax
nop
test ebp, 0x200
movzx ecx, byte [rdi + rax - 1]
mov byte [rsi + rax - 1], cl
jne 0x2027b76d
nop
mov qword [rsp + 0x30], rax
lea rcx, [rbx + rax]
inc rcx
inc rax
cmp rcx, 1
jne 0x2027b6b0
jmp 0x2027b79a
nop
mov rcx, qword [r14 + 8]
test rcx, rcx
je 0x2027b725
test ebp, 0x400
jne 0x2027b549
nop
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x200c66ec.0]
test rax, rax
je 0x2027b56c
nop
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [case.0x200c66ec.0]
mov rcx, r14
call fcn.200782c0
xor eax, eax
jmp 0x2027b7de
test rcx, rcx
je 0x2027b75c
nop
mov rax, qword [rsp + 0x28]
lea rdx, [rcx - 1]
movzx eax, byte [rax + rcx - 1]
mov byte [rdi + rcx - 1], al
mov rcx, rdx
test ebp, 0x1000
jne 0x2027b734
jmp 0x2027b647
lea r14, [rsp + 0x20]
test ebp, 0x2000
jne 0x2027b6e0
mov rax, rdi
jmp 0x2027b79d
lea r14, [rsp + 0x20]
test ebp, 0x100
jne 0x2027b761
mov rcx, rsi
call fcn.200782c0
jmp 0x2027b79a
test r15d, r15d
jne 0x2027b772
xor r15d, r15d
test bpl, bpl
jns 0x2027b523
mov rax, rsi
add rsp, 0x70
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea ecx, [rax + 7]
and ecx, 0xf
cdqe
lea rdx, [0x205a0fc0]
movzx r8d, byte [rax + rdx]
lea r9, [0x2047e010]
xor r8b, byte [rcx + r9]
xor r8b, 0xf6
mov byte [rax + rdx], r8b
inc eax
cmp eax, 0x14
jg 0x2027b549
test ebp, 0x200
je 0x2027b789
jmp 0x2027b7ac