Function at 0x203e0
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x28
test r8, r8
mov qword [rsp + 0x40], rsi
mov rsi, rcx
je 0x2072b
test dl, 1
je 0x2041f
cmp dword [r9], 8
jb 0x2072b
mov dword [r9], 8
mov rax, qword [rcx + 0x12a4]
mov qword [r8], rax
mov rsi, qword [rsp + 0x40]
add rsp, 0x28
ret
xor eax, eax
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rbp
mov qword [rcx + 0x129c], rax
mov qword [rcx + 0x12a4], rax
cmp dword [r9], 8
jne 0x20721
mov rax, qword [r8]
mov qword [rcx + 0x129c], rax
cmp byte [rcx + 0x12a1], 0xff
jne 0x20488
cmp word [rcx + 0x12a2], 0
jne 0x20488
add rcx, 0x12ac
xor edx, edx
mov r8d, 0x133
call fcn.00016ec0
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x28
ret
mov qword [rsp + 0x48], rdi
xor edi, edi
lea rdx, [rsi + 0x129c]
mov ecx, edi
nop
nop
movzx eax, byte [rsi + 0x12a3]
inc rdx
xor al, byte [rsi + 0x12a2]
xor al, byte [rdx - 1]
xor al, cl
inc ecx
cmp ecx, 5
mov byte [rdx - 1], al
jl 0x204a0
movzx eax, byte [rsi + 0x12a3]
xor al, byte [rsi + 0x12a2]
xor byte [rsi + 0x12a1], al
cmp byte [rsi + 0x129c], dil
je 0x20659
cmp byte [rsi + 0x129d], dil
je 0x20659
cmp byte [rsi + 0x129e], dil
je 0x20659
cmp byte [rsi + 0x129f], 3
jne 0x20659
cmp byte [rsi + 0x12a1], dil
jne 0x20659
xor cx, cx
mov rdx, rdi
nop
nop
mov eax, 8
bt cx, 0xf
jae 0x20531
xor cx, 0x8411
add cx, cx
dec rax
jne 0x20525
movzx eax, byte [rsi + rdx + 0x129c]
inc rdx
xor cx, ax
cmp rdx, 5
jl 0x20520
cmp word [rsi + 0x12a2], cx
jne 0x20659
lea rcx, [rsi + 0x12ac]
xor edx, edx
mov r8d, 0x133
call fcn.00016ec0
movzx r11d, byte [rsi + 0x12a0]
xor eax, eax
mov byte [rsi + 0x12b3], r11b
mov qword [rsi + 0x12a4], rax
mov byte [rsi + 0x12a4], al
mov byte [rsi + 0x12a5], 0x31
mov byte [rsi + 0x12a6], 0x42
mov byte [rsi + 0x12a7], 0xe3
mov byte [rsi + 0x12ac], 0x75
mov byte [rsi + 0x12ad], 0x67
mov byte [rsi + 0x12ae], 0x67
mov byte [rsi + 0x12af], 0xa
xor cx, cx
mov rdx, rdi
mov byte [rsi + 0x12a8], 0x21
mov byte [rsi + 0x12b0], 0x5d
mov byte [rsi + 0x12a9], 0x5d
nop
nop
mov eax, 8
bt cx, 0xf
jae 0x205f1
xor cx, 0x8411
add cx, cx
dec rax
jne 0x205e5
movzx eax, byte [rdx + rsi + 0x12a4]
inc rdx
xor cx, ax
cmp rdx, 5
jl 0x205e0
mov word [rsi + 0x12aa], cx
mov word [rsi + 0x12b1], di
lea rcx, [rsi + 0x12a4]
movzx eax, byte [rcx]
inc rcx
xor al, byte [rsi + 0x12ab]
xor al, byte [rsi + 0x12aa]
xor al, dil
inc edi
cmp edi, 5
mov byte [rcx - 1], al
jl 0x20622
movzx eax, byte [rsi + 0x12ab]
xor al, byte [rsi + 0x12aa]
xor byte [rsi + 0x12a9], al
jmp 0x2071c
mov rax, qword [r8]
lea rcx, [rsi + 0x129c]
lea r8, [0x0001f7e0]
mov rdx, rsi
mov qword [rsi + 0x129c], rax
call fcn.0001fb60
movzx ecx, word [rsi + 0x12b1]
mov eax, 8
bt cx, 0xf
jae 0x20691
xor cx, 0x8411
add cx, cx
dec rax
jne 0x20685
movzx eax, byte [rsi + rdi + 0x129c]
inc rdi
xor cx, ax
cmp rdi, 5
jl 0x20680
cmp word [rsi + 0x12a2], cx
mov word [rsi + 0x12b1], cx
jne 0x2071c
xor eax, eax
mov rcx, rsi
mov qword [rsi + 0x12a4], rax
call fcn.0001fd40
test al, al
je 0x2071c
movzx eax, byte [rsi + 0x12b0]
movzx ecx, word [rsi + 0x12b1]
lea rdx, [rsi + 0x12a4]
mov r8d, 5
mov byte [rsi + 0x12a9], al
call fcn.0001f790
lea r8, [0x0001f7e0]
lea rcx, [rsi + 0x12a4]
mov rdx, rsi
mov word [rsi + 0x12b1], ax
mov word [rsi + 0x12aa], ax
call fcn.0001fad0
mov rdi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x28
ret