Function at 0x20273ca0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov ebx, r9d
mov dword [rsp + 0x2c], r8d
mov ebp, edx
mov rdi, rcx
mov rax, qword [0x20490f78]
xor rax, rsp
mov qword [rsp + 0x40], rax
test edx, edx
jle 0x20273d04
mov eax, ebp
shl rax, 5
lea r14, [rax + rax*4]
xor r15d, r15d
xor esi, esi
nop
mov rcx, qword [rdi + 0x370]
add rcx, r15
mov edx, 0x357f6f87
call fcn.20276ba0
add esi, eax
add r15, 0xa0
cmp r14, r15
jne 0x20273ce0
jmp 0x20273d06
xor esi, esi
movsxd rax, ebp
lea rcx, [rax + rax*4]
shl rcx, 5
add rcx, qword [rdi + 0x370]
mov edx, ebx
mov r8d, 0x8088295b
call fcn.202765f0
mov r15d, eax
add r15d, esi
lea r12, [rdi + 0xe8]
add r15d, dword [rdi + 0x388]
test byte [rdi + 0x334], 2
jne 0x20273d52
mov rax, qword [rdi + 0x338]
mov ecx, r15d
movzx eax, byte [rax + rcx]
jmp 0x20273d63
mov rcx, r12
mov edx, r15d
mov r8d, 0xfba5e7fc
call fcn.20276d90
mov byte [rsp + 0x3c], al
mov eax, r15d
xor eax, 1
mov ecx, r15d
and ecx, 1
lea edx, [rax + rcx*2]
mov eax, dword [rdi + 0x334]
mov ecx, eax
not ecx
xor eax, 2
and ecx, 0xfffffffd
or ecx, eax
cmp ecx, 0xffffffff
je 0x20273d9d
mov rcx, r12
mov r8d, 0xfba5e7fc
call fcn.20276d90
jmp 0x20273daa
mov rax, qword [rdi + 0x338]
mov ecx, edx
movzx eax, byte [rax + rcx]
mov byte [rsp + 0x3d], al
mov eax, r15d
xor eax, 2
mov ecx, r15d
and ecx, 2
lea edx, [rax + rcx*2]
mov eax, dword [rdi + 0x334]
mov ecx, eax
not ecx
xor eax, 2
and ecx, 0xfffffffd
or ecx, eax
cmp ecx, 0xffffffff
je 0x20273de4
mov rcx, r12
mov r8d, 0xfba5e7fc
call fcn.20276d90
jmp 0x20273df1
mov rax, qword [rdi + 0x338]
mov ecx, edx
movzx eax, byte [rax + rcx]
mov r14, qword [rsp + 0xb0]
mov byte [rsp + 0x3e], al
lea edx, [r15 + 3]
mov eax, dword [rdi + 0x334]
mov rcx, qword [0x2047afe0]
movsxd rsi, dword [rcx]
add rsi, rcx
jmp 0x20273e26
mov ecx, dword [0x203953f0]
mov ecx, dword [0x204a4920]
lea r8d, [rcx - 1]
imul r8d, ecx
test r8b, 1
jne 0x20273e20
mov ebx, dword [0x203953f0]
mov ecx, dword [0x204a4924]
cmp ecx, 0xd
jge 0x20273e20
test al, 2
mov qword [rsp + 0x30], r12
jne 0x20273e63
mov rax, qword [rdi + 0x338]
mov ecx, edx
movzx eax, byte [rax + rcx]
jmp 0x20273e71
mov rcx, r12
mov r8d, 0xfba5e7fc
call fcn.20276d90
mov byte [rsp + 0x3f], al
mov rax, qword [rdi]
mov r12d, dword [0x2047afc0]
mov ecx, dword [0x204a4924]
cmp ecx, 0x5b
jge 0x20273e9b
lea r13d, [r12 + 1]
mov dword [0x2047afc0], r13d
test rdi, rdi
jne 0x20273ea7
mov dword [0x2047afc0], 0
jmp 0x20273e8a
xor ebp, ebp
test r12d, r13d
jne 0x20273ee5
test ebx, ebx
jle 0x20273ee5
xor edx, edx
xor ecx, ecx
nop word cs:[rax + rax]
movsxd rdx, edx
mov r8d, dword [rsi + rdx]
mov ebp, r8d
xor ebp, r8d
not ebp
and ebp, ecx
xor ebp, r8d
mov ecx, edx
xor ecx, 4
and edx, 4
lea edx, [rcx + rdx*2]
mov ecx, ebp
cmp edx, ebx
jl 0x20273ec0
mov ecx, dword [0x204a4924]
cmp ecx, 0x42
jg 0x20273f10
mov ecx, dword [0x204a4920]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x20273f1d
nop word cs:[rax + rax]
mov ecx, dword [0x204a4924]
cmp ecx, 0x55
jge 0x20273f10
jmp 0x20273ef0
mov rax, qword [rax + 0x20]
mov rcx, rdi
call qword [case.0x200fc05d.0]
test al, al
je 0x20273f70
mov eax, dword [rdi + 0xa0]
lea rcx, [rdi + 0x1e4]
mov dword [rdi + 0x234], eax
mov dword [rdi + 0x238], r15d
mov dword [rdi + 0x23c], eax
mov dword [rdi + 0x240], r15d
mov dword [rsp + 0x20], 0xf3d71741
lea rdx, [rsp + 0x3c]
mov r8d, 4
mov r9, rdx
call fcn.2010aee0
mov eax, dword [rsp + 0x2c]
add eax, dword [rsp + 0x3c]
mov dword [rsp + 0x2c], eax
mov eax, dword [0x203953f8]
xor ecx, ecx
mov dl, 1
nop word cs:[rax + rax]
mov r8d, dword [0x204a4924]
cmp r8d, 0x5f
jg 0x20273fab
xor r8d, r8d
test r12d, r13d
setne r9b
test cl, cl
je 0x20273fb1
test dl, dl
je 0x20273f90
jmp 0x20273f9d
mov r8b, r9b
mov edx, 0xffffffff
add edx, r8d
xor ecx, ecx
sub eax, ebp
and eax, edx
nop word cs:[rax + rax]
test cl, cl
jne 0x20273fe8
mov edx, dword [0x204a4920]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x20273ffe
mov edx, dword [0x204a4920]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x20273fd0
jmp 0x20273fd4
mov ecx, dword [0x204a224c]
mov edx, ecx
xor edx, eax
and ecx, eax
lea eax, [rdx + rcx*2]
mov dword [0x204a224c], eax
mov eax, dword [rsp + 0xb8]
mov r15d, eax
test eax, eax
mov ebp, dword [rsp + 0x2c]
mov r12, qword [rsp + 0x30]
jle 0x20274066
mov esi, ebp
xor ebx, ebx
jmp 0x20274049
mov rax, qword [rdi + 0x338]
mov ecx, edx
movzx eax, byte [rax + rcx]
mov byte [r14 + rbx], al
inc rbx
cmp r15, rbx
je 0x20274066
lea rdx, [rsi + rbx]
test byte [rdi + 0x334], 2
je 0x20274030
mov rcx, r12
mov r8d, 0xfba5e7fc
call fcn.20276d90
jmp 0x2027403d
mov rax, qword [rdi]
mov rax, qword [rax + 0x20]
mov rcx, rdi
call qword [case.0x200fc05d.0]
test al, al
je 0x202740b5
mov eax, dword [rdi + 0xa0]
lea rcx, [rdi + 0x1e4]
mov dword [rdi + 0x234], eax
mov dword [rdi + 0x238], ebp
mov dword [rdi + 0x23c], eax
mov dword [rdi + 0x240], ebp
mov dword [rsp + 0x20], 0xf3d71741
mov rdx, r14
mov r8, r15
mov r9, r14
call fcn.2010aee0
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.2032c180
nop
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret