Function at 0x1400125b4
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb8
mov rbx, qword [0x14060b1f8]
mov rdi, rdx
movsxd rax, dword [0x14060b254]
xor edx, edx
mov r13, qword [rsp + 0x120]
mov rsi, rcx
div rbx
movzx r10d, word [rdi]
mov rbp, r8
movsxd r8, dword [0x14060b1f4]
mov r12, r9
mov qword [rsp + 0x88], rax
mov eax, dword [rcx + r10*4 + 0x10]
movzx r10d, word [0x14060b230]
sub eax, 0xe34
cdqe
mov qword [rsp + 0x70], rax
movzx edx, byte [r10 + r13]
imul eax, edx, 0x1d6f
mov qword [rsp + 0xa0], rax
mov eax, 1
add r10w, ax
add rbx, rax
mov word [0x14060b230], r10w
movabs rax, 0x17b819f15c5ffd09
mul rbx
mov qword [0x14060b1f8], rbx
movzx eax, word [rdi + r8*2]
mov r11, rdx
movzx ecx, word [rdi]
movzx ebx, word [0x14060b278]
mov qword [rsp + 0x98], rax
movzx eax, byte [0x14060b1f0]
movzx r9d, byte [r13 + rcx*4]
imul r14d, eax, 0xff7
add r9d, ebx
movzx eax, r10w
add eax, 0x23
shr r11, 8
mov qword [rsp + 0x80], r11
mov dword [rsp + 0x68], r9d
movzx r10d, byte [rax + r13]
movsxd rax, dword [rsi + rcx*4]
mov esi, ebx
or r10, rax
mov eax, r8d
shl eax, 2
movsxd rcx, eax
mov eax, dword [rbp + 0x2098]
mov dword [rsp + 0x108], eax
mov rax, qword [0x14060b210]
movzx ecx, word [rdi + rcx*2]
mov qword [rsp + 0x78], r10
mov qword [rsp + 0x90], rcx
movzx eax, word [rax + 0x2772]
cdq
idiv dword [0x14060b234]
movsxd r15, eax
cmp rbx, qword [rcx + 0x7148]
ja 0x140012987
mov ebp, ebx
mov eax, r9d
shl ebp, 2
lea r13d, [rbx + rbx*2]
mov dword [rsp + 0x64], ebp
mov qword [rsp + 0xa8], rax
mov dword [rsp + 0x60], r13d
movzx eax, word [rdi]
mov ecx, dword [rsp + 0x108]
movzx r8d, word [0x14060b250]
dec ecx
mov dword [rsp + 0x108], ecx
movzx edx, byte [r11 + rax*4]
movsxd rax, dword [0x14060b224]
xor rdx, rax
movsxd rcx, ecx
call fcn.140010fe0
mov r8, qword [rsp + 0xa0]
xor edx, edx
mov r9, qword [rsp + 0x88]
movsxd rcx, r13d
mov dword [rcx*4 + 0xbdc], eax
mov rcx, qword [r14]
mov rax, qword [r12]
shl rax, 5
mov rax, qword [rax + r8]
xor rax, 0xe80
div qword [r14 + rcx*8]
mov rax, qword [rsp + 0xa8]
mov qword [r14 + rcx*8], rdx
and rax, rsi
movsxd rcx, ebp
or qword [r9 + rcx*8], rax
mov rax, qword [rsp + 0x100]
movzx ecx, word [rax + r15*4]
dec qword [r12]
xor cx, bx
mov rax, qword [r12]
lea rdx, [rax + rax*2]
mov eax, ebx
mov r8, qword [r8 + rdx*8]
cdq
or r8, qword [r9 + r15*8 + 0x30]
idiv ebx
movsxd rdx, edx
call fcn.14000174c
movzx ecx, word [0x14060b244]
mov rdx, qword [rsp + 0x100]
mov dword [rdx + rcx*4], eax
movzx ecx, word [rdi]
sub rdi, 2
mov al, byte [0x14060b20c]
mov rdx, qword [rsp + 0x70]
mov byte [rcx + rdx], al
mov rax, qword [r14]
sub r14, 8
movzx ecx, byte [rax + 0x1d71]
mov rax, qword [rsp + 0x120]
mov dword [rsp + 0x118], ecx
movzx eax, byte [rsi + rax]
cmp ecx, eax
jae 0x140012934
mov r13, qword [rsp + 0x120]
mov rbp, qword [rsp + 0x110]
inc qword [r14]
mov rax, qword [r14]
mov qword [rsp + 0x28], 0x4e5
mov qword [rsp + 0x20], rsi
movzx ecx, byte [rax + 0x1d6d]
mov rax, qword [0x14060b258]
imul edx, ecx, 0xd9
movzx ecx, word [rdi]
mov r8d, dword [rax + rcx*4 + 0xc]
mov ecx, 0x23e
mov eax, dword [0x14060b208]
imul r8d, ebx
lea eax, [rax + rax*2]
cdqe
movsxd r9, dword [rax*4 + 0xbdc]
and r9, rsi
call fcn.140010504
mov r8, qword [rsp + 0x100]
mov r11, qword [rsp + 0x80]
mov r10, qword [rsp + 0x78]
movsxd rcx, eax
mov rax, qword [r12]
shl rax, 5
mov qword [rax + rbp], rcx
movzx ecx, word [0x14060b244]
mov rax, qword [0x14060b1e0]
movzx eax, byte [rax + 0x79a]
add eax, dword [r8 + 0x7c40]
cdq
idiv dword [rcx*4 + 0xbdc]
movzx ecx, byte [r11 + r15*4]
mov eax, edx
cdq
idiv ecx
mov rax, qword [rsp + 0x98]
add dword [r8 + rsi*4], edx
xor edx, edx
dec qword [r12]
movsxd rcx, dword [0x14060b224]
mov rax, qword [rax + rsi*8]
mov r8, qword [r12]
xor rax, 0x369
add rax, rcx
movzx ecx, byte [r10 + r8*4 + 4]
div rcx
mov ecx, dword [rsp + 0x118]
inc ecx
mov byte [r10 + r8*4 + 4], dl
movzx eax, byte [rsi + r13]
mov dword [rsp + 0x118], ecx
cmp ecx, eax
jl 0x14001282e
mov ebp, dword [rsp + 0x64]
mov r13d, dword [rsp + 0x60]
jmp 0x140012941
mov r10, qword [rsp + 0x78]
mov r11, qword [rsp + 0x80]
mov rax, qword [rsp + 0x90]
inc ebx
add r13d, 3
movsxd rsi, ebx
add ebp, 4
mov dword [rsp + 0x60], r13d
mov dword [rsp + 0x64], ebp
cmp rsi, qword [rax + 0x7148]
jbe 0x14001271f
mov r8d, dword [0x14060b1f4]
mov r13, qword [rsp + 0x120]
mov rbp, qword [rsp + 0x110]
mov r9d, dword [rsp + 0x68]
movsxd rax, dword [0x14060b220]
xor edx, edx
mov rbx, qword [rsp + 0x88]
mov esi, 1
add r8d, esi
inc r9d
mov dword [0x14060b1f4], r8d
movzx ecx, word [rdi]
div qword [rbx + rcx*8]
mov ecx, r8d
shl ecx, 2
mov rax, rdx
movsxd r8, ecx
xor edx, edx
mov rcx, qword [rsp + 0x90]
div qword [rcx + r8*8]
sub al, byte [r9 + 0x1d6d]
add al, 0x48
mov byte [r9 + 0x1d6d], al
movzx eax, word [0x14060b244]
add ax, si
mov word [0x14060b244], ax
movzx eax, ax
mov byte [rax + r13], r15b
mov rax, qword [r14]
movzx edx, word [rdi + rax*2]
mov eax, dword [0x14060b1f4]
xor rdx, 0x1893
add eax, 2
movsxd rcx, eax
mov qword [r12 + rcx*8], rdx
movzx eax, word [0x14060b244]
add dword [0x14060b1f4], esi
add ax, si
movzx ecx, ax
mov word [0x14060b244], ax
mov eax, dword [rbp + rcx*8 + 8]
and eax, dword [0x14060b204]
xor eax, r15d
mov dword [0x14060b254], eax
mov al, byte [rbp + 0xf880]
mov byte [rcx + r10], al
movsxd rdx, dword [0x14060b208]
mov rax, qword [rsp + 0x70]
mov r10, qword [rsp + 0x98]
lea r8d, [rdx + 1]
movzx eax, byte [r9 + rax]
movsxd rcx, r8d
cmp rax, qword [r10 + rcx*8]
jae 0x140012a91
mov rax, qword [r14]
mov rcx, rdx
movzx edx, byte [rax + 0x1d6d]
mov eax, dword [rcx*4 + 0xbdc]
mov dword [0x14060b208], r8d
cmp edx, eax
jl 0x140012bb2
mov rdx, qword [r14]
mov rax, qword [0x14060b260]
mov r9b, byte [rsp + 0x128]
cmp byte [rdx + rax], r9b
jb 0x140012bb2
movzx eax, word [rdi]
mov r8d, 0x218
add r14, 8
movzx r9d, r9b
mov cl, byte [rbp + rax*8]
xor cl, byte [rsp + 0x108]
or cl, byte [r12 + rdx*8]
or byte [rdx + 0x1d6d], cl
lea rcx, [r15 + r15*2]
mov rax, qword [0x14060b270]
mov dl, byte [rax + rcx*2 + 8]
mov eax, 0xffff
movzx ecx, word [0x14060b230]
add dl, 0x18
add cx, ax
or dl, r15b
or byte [0x14060b1f0], dl
mov word [0x14060b230], cx
movzx edx, byte [r11 + 0xf84]
movzx eax, cx
add cx, si
movzx ebp, word [r10 + rax*8 + 8]
mov rax, qword [rsp + 0xa0]
sub r8, qword [rax + 0x4e10]
mov word [0x14060b230], cx
movzx r10d, byte [r13 + 0x491]
mov r11, qword [r12 + 0x91c0]
movzx eax, cx
movzx esi, byte [rax + 0x1d6d]
mov rax, qword [rbx]
movzx ebx, word [0x14060b204]
xor rsi, qword [0x14060b248]
movzx ecx, word [rdi + rax*2 + 0x24]
mov eax, 0xc87
imul rdi, rcx, 0x765
xor bx, ax
movzx ecx, bp
movzx eax, word [0x14060b250]
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x48], r10d
mov qword [rsp + 0x40], r11
and qword [rsp + 0x38], 0
mov word [rsp + 0x30], bx
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rsi
call fcn.140010164
movzx ecx, word [0x14060b244]
mov rdx, qword [rsp + 0x100]
mov dword [rdx + rcx*4], eax
mov rax, qword [rsp + 0x70]
movzx ecx, byte [rax]
mov eax, dword [r12 + r15*8 + 8]
imul eax, dword [r14 + rcx*8]
add rsp, 0xb8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret