Function at 0x1400022c4
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa8
movzx eax, word [0x14005b244]
mov r11d, 1
movzx r9d, word [0x14005b1ec]
mov ebp, eax
movzx r8d, word [0x14005b1d8]
add ax, r11w
movzx r12d, word [0x14005b2b0]
mov r10, rcx
mov word [0x14005b244], ax
lea r14, [r11 + rcx]
movsxd rcx, dword [0x14005b28c]
add r8d, r9d
mov rax, qword [0x14005b230]
mov r13, rcx
movsxd r15, edx
add r9w, r11w
mov word [0x14005b1ec], r9w
mov rsi, r15
mov qword [rsp + 0x100], r14
xor r10, 0x1a5c
mov rbx, qword [rax + rcx*8]
add r14, r11
imul rbx, qword [0x14005b1f8]
add ecx, r11d
mov qword [rsp + 0x60], r14
mov dword [0x14005b28c], ecx
movabs rax, 0x8d69ae09dfc106f1
mov qword [rsp + 0x98], r14
xor r12, 0x7fa
add r14, r11
mov qword [rsp + 0x70], r15
mul r14
add r14, r11
mov qword [rsp + 0x108], r10
movsxd r11, ecx
mov rax, rdx
movzx edx, byte [0x14005b298]
or r13, r14
mov rcx, qword [0x14005b270]
mov edi, edx
shr rax, 0xc
add r11, rcx
mov qword [rsp + 0x68], rax
movsxd rax, dword [0x14005b204]
mov ecx, dword [rcx + r14*8]
inc r14
mov byte [rsp + 0xf0], dl
mov qword [rsp + 0x90], rbx
mov al, byte [rbp + rax*8]
add al, dl
mov qword [rsp + 0x78], r11
or al, byte [0x14005b200]
mov byte [rsp + 0xf8], al
imul eax, r15d, 0x1a0d
xor ecx, eax
mov rax, qword [0x14005b210]
add dword [0x14005b27c], ecx
movzx ecx, byte [r8]
inc r8
mov qword [rsp + 0x88], r8
movzx eax, byte [rax + 0x1177]
cdq
idiv r15d
dec r15d
or eax, 0x17a7
add eax, edi
cdqe
add qword [rbp + rcx*8 + 0x20], rax
mov ecx, 0xffff
movzx r9d, word [0x14005b244]
lea eax, [r9 + 2]
add r9w, cx
movsxd rax, dword [rsi + rax*4]
mov word [0x14005b244], r9w
cmp rax, r14
jb 0x1400025d4
mov rax, qword [0x14005b1f8]
mov cl, r15b
xor cl, r10b
mov dword [0x14005b264], 0x42a
mov rdx, rax
inc r10
inc rax
mov qword [rsp + 0x108], r10
mov qword [0x14005b1f8], rax
call fcn.140016c5c
mov rcx, qword [rsp + 0x70]
mov r11d, 0x1cdf
mov dword [0x14005b28c], eax
movzx esi, byte [rbx + 0x9f60]
movzx r9d, byte [r12 + r14 + 3]
movzx eax, r14b
inc r14
imul esi, eax
mov rax, qword [rsp + 0x100]
movsxd r10, r15d
or r10, r14
mov qword [rsp + 0x58], r10
mov eax, dword [rax + r14*4]
add eax, edi
mov rdi, qword [0x14005b270]
inc byte [r12]
movsxd r8, eax
movzx eax, byte [r12]
movzx ecx, byte [rax + rcx]
mov eax, 0x17a7
cdq
idiv ecx
mov rcx, qword [0x14005b208]
mov ebx, eax
inc rcx
sub r11, rcx
mov qword [0x14005b208], rcx
mov eax, 0x56bec58d
mov ecx, r15d
imul r15d
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xbce
mov dl, sil
sub ecx, eax
movsxd rax, ecx
mov rcx, r14
mov qword [rsp + 0x50], rax
xor rcx, 0x1005
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x40], 0x1684
mov qword [rsp + 0x38], r11
mov byte [rsp + 0x30], bl
mov qword [rsp + 0x28], rcx
mov ecx, 0x2d7
mov qword [rsp + 0x20], rdi
call fcn.140002f1c
movsxd rcx, eax
mov r10d, 0xffff
mov rax, qword [0x14005b1f0]
mov qword [rbp + rax*8], rcx
mov eax, dword [0x14005b288]
or eax, 0xbce
cdq
idiv dword [0x14005b298]
movzx edx, word [0x14005b1d8]
movsxd rcx, eax
add rdx, 0x6a4
mov qword [0x14005b248], rcx
add rdx, r13
mov ecx, dword [0x14005b28c]
dec ecx
mov dword [0x14005b28c], ecx
lea eax, [rcx + rcx*2]
movsxd rcx, eax
mov rax, qword [rsp + 0x60]
mov qword [rax + rcx*8], rdx
add word [0x14005b1d8], r10w
movzx r9d, word [0x14005b244]
mov r11, qword [rsp + 0x78]
jmp 0x1400025da
mov r10d, 0xffff
mov rcx, qword [rsp + 0x100]
lea eax, [r15 + r15]
imul r8, qword [0x14005b258], 0xc5f
movsxd rsi, eax
add r9w, r10w
mov rax, qword [r11]
inc r15d
movsxd rbp, r15d
mov eax, dword [rcx + rax*4]
cdq
movzx ecx, r9w
idiv dword [0x14005b250]
mov word [0x14005b244], r9w
mov rax, rbp
movzx r9d, byte [rsp + 0xf8]
mov edi, edx
xor edx, edx
div qword [r11 + rcx*8]
xor edx, edx
mov ecx, r9d
mov rbx, rax
mov r11, r14
movsxd rax, dword [rsp + 0x68]
or r11, 0x17a7
mov qword [rsp + 0x80], rax
mov eax, 0x1451
div r9d
mov r9, qword [rsp + 0x108]
movsxd r10, edx
mov rax, r9
xor edx, edx
add r9, 0xfffffffffffffc0d
div rcx
mov rcx, qword [rsp + 0x80]
mov rax, qword [rsp + 0x68]
xor al, byte [rsp + 0xf8]
mov qword [rsp + 0x58], rcx
mov rcx, rsi
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x38], rdx
mov dl, al
mov byte [rsp + 0x30], dil
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], 0x70
call fcn.140002f1c
movzx ecx, word [0x14005b2b0]
inc r15d
mov rdx, qword [rsp + 0x100]
mov esi, 1
sub sil, r14b
mov r8, rbp
sub sil, byte [rsp + 0xf0]
mov dword [rdx + rcx*4 + 0xc], eax
mov eax, 0xffff
movzx ecx, word [0x14005b244]
mov rdx, qword [rsp + 0x60]
movzx r9d, word [0x14005b1ec]
or r8, qword [0x14005b238]
or r9, r14
mov edx, dword [rdx + rcx*8]
add cx, ax
movsxd rax, dword [0x14005b1e8]
sub edx, r14d
inc r14
mov word [0x14005b244], cx
movsxd rdi, edx
and rdi, qword [0x14005b248]
movsxd rdx, dword [0x14005b28c]
lea rbx, [r14 + rax]
movsxd rcx, r15d
inc eax
mov dword [0x14005b1e8], eax
mov rax, qword [0x14005b290]
movsxd r11, dword [rax + 0x454]
mov rax, qword [0x14005b2a8]
xor r11, rcx
mov r10, rax
inc rax
mov qword [0x14005b2a8], rax
movzx eax, word [0x14005b1d8]
xor rdx, r14
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x58], rax
dec rcx
mov qword [rsp + 0x50], rdx
or rcx, 0x17a7
mov qword [rsp + 0x48], r10
mov dl, 0xa3
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x38], rbp
mov byte [rsp + 0x30], 0x3f
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rdi
call fcn.140002f1c
mov rbp, qword [rsp + 0x88]
movsxd rcx, eax
mov rax, qword [0x14005b208]
mov qword [0x14005b280], rcx
mov cl, byte [0x14005b250]
add cl, r15b
movzx edi, sil
mov byte [rax + rbp], cl
mov r10d, edi
cmp rdi, qword [0x14005b1e0]
jb 0x140002974
mov rsi, qword [rsp + 0x90]
lea ebx, [rdi + rdi*2]
mov dword [rsp + 0xf8], ebx
movzx ecx, word [0x14005b244]
mov r9d, 0x17a7
mov al, byte [rcx + r12]
xor al, r13b
xor al, r15b
mov byte [rcx + r12], al
mov eax, 0xffff
add word [0x14005b244], ax
mov rcx, r10
mov eax, dword [0x14005b264]
mov rdx, qword [rsi + 0x230]
inc eax
movsxd r8, eax
mov dword [0x14005b264], eax
call fcn.1400169e8
movzx ecx, word [0x14005b1ec]
mov rdx, qword [rsp + 0x70]
add rcx, rcx
movsxd rbx, ebx
mov dword [rdx + rcx*8], eax
movzx eax, word [0x14005b244]
mov r8d, dword [0x14005b1d0]
mov rdx, qword [rsp + 0x98]
mov r9, qword [0x14005b218]
lea rcx, [rax + rax*2]
movzx eax, byte [r12 + 0x46e]
mov rcx, qword [rdx + rcx*8 + 0x40]
imul rcx, rax
mov eax, dword [0x14005b298]
dec eax
movsxd rdx, eax
mov dword [0x14005b298], eax
movsxd rax, edi
xor rdx, rax
mov qword [rsp + 0x28], rdx
mov rdx, rax
mov dword [rsp + 0x20], r8d
mov r8b, dil
call fcn.140019150
mov r9, qword [rsp + 0x78]
xor edx, edx
mov dword [rbx*4 + 0x995], eax
mov rax, qword [0x14005b268]
movsxd rcx, r15d
movsxd r11, edi
mov rax, qword [r9 + rax*8]
div qword [rsp + 0x80]
mov rax, rdx
xor edx, edx
div qword [rsi + rcx*8]
movzx ecx, word [0x14005b1ec]
xor edx, edx
div rcx
mov rax, qword [rsp + 0x60]
mov word [0x14005b1ec], dx
mov rcx, qword [rax + rbx*8]
imul rcx, r13
mov qword [rax + rbx*8], rcx
mov eax, edi
mov cl, byte [0x14005b228]
cdq
mov byte [r11 + rbp], cl
mov rcx, qword [0x14005b1d0]
movzx r8d, byte [r12 + rcx + 0xc]
movzx ecx, byte [rbp]
idiv r8d
add rcx, rcx
mov rax, r11
movsxd r10, edx
mov r8d, 0x17a7
xor edx, edx
div qword [r9 + rcx*8]
mov rcx, r14
movzx r9d, dx
mov rdx, r10
call fcn.1400169e8
mov ebx, dword [rsp + 0xf8]
inc edi
add ebx, 3
mov dword [0x14005b220], eax
mov dword [rsp + 0xf8], ebx
movsxd r10, edi
cmp r10, qword [0x14005b1e0]
jae 0x1400027f7
mov eax, 0x16d4
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret