Function at 0x140001594
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
movzx r10d, word [0x14002522c]
mov r15d, edx
movsxd r9, dword [0x1400251a0]
mov r14d, 1
mov rcx, qword [0x140025258]
mov eax, 0xffff
movzx r11d, word [0x1400251e4]
add r10w, ax
movzx r13d, word [0x1400251fc]
mov ebx, r11d
mov word [0x14002522c], r10w
xor rbx, 0x248
movzx eax, r10w
add r10w, r14w
mov qword [rsp + 0x30], rax
mov rax, qword [0x140025280]
mov rdi, qword [rax + 0xaef8]
movabs rax, 0xa957fab5402a55ff
mov word [0x14002522c], r10w
mov r10, qword [0x140025210]
imul rdi, r9
mov r9, qword [0x140025250]
movsxd r12, dword [r8 + r10*4]
mov rsi, r9
mul r9
add r12, r9
sub r9, r14
shr rdx, 8
imul rax, rdx, 0x183
sub rsi, rax
mov eax, 0xb4c9f9a5
mul r11d
mov qword [rsp + 0x40], rsi
shr edx, 0xb
mov eax, edx
mov qword [rsp + 0x38], rax
mov rax, qword [0x140025240]
movzx edx, word [rax + rcx*2]
sub rcx, r14
mov rax, qword [0x1400251c0]
xor dx, ax
mov qword [0x140025258], rcx
sub rax, r14
mov word [rsp + 0xa0], dx
mov r14, qword [rsp + 0xc0]
mov qword [0x1400251c0], rax
mov rax, qword [0x1400251d0]
mov rbp, qword [rax + 0x6b20]
mov eax, r15d
shl eax, 2
movsxd rcx, eax
lea rax, [rbx + rbx*2]
mov qword [0x140025250], r9
movzx r9d, word [rbp + rcx*2]
cmp r9, qword [rdi + rax*8]
je 0x14000176b
mov rax, qword [rsp + 0xc8]
lea r10, [r9 + rsi]
mov r8d, r9d
lea r15, [rbx + rbx*2]
shl r8, 4
mov esi, 1
add r8, r14
lea r11, [rax + r9*2]
movzx eax, word [r11]
add r9d, esi
movzx ecx, word [0x140025234]
add r11, 2
xor eax, ecx
movzx ecx, byte [r10]
cdq
idiv ecx
xor edx, edx
mov byte [r10], al
lea eax, [rbx + 0xa11]
mov rcx, qword [0x140025210]
add r10, rsi
add dword [r14 + rcx*4 + 0x70], eax
movsxd rcx, dword [r8]
mov rax, qword [0x140025258]
div rcx
mov dword [r8], eax
lea r8, [r8 + 0x10]
movsxd rax, r9d
cmp rax, qword [rdi + r15*8]
jne 0x1400016fd
mov r10, qword [0x140025210]
movzx r11d, word [0x1400251e4]
mov rsi, qword [rsp + 0x40]
mov r15d, dword [rsp + 0x98]
cmp r12, 0x79c
jbe 0x14000185e
mov rax, qword [rsp + 0x90]
mov edx, 1
mov r12, qword [rsp + 0xb0]
movzx ecx, word [rax + r10*2]
movsxd rax, dword [r13]
mov dword [r13 + rax*4], ecx
mov rcx, qword [0x140025210]
add rcx, rdx
mov qword [0x140025210], rcx
movzx eax, word [r13 + 0x2d58]
or word [rbp + rcx*2], ax
mov rax, qword [0x140025220]
mov r11b, al
add rax, rdx
mov qword [0x140025220], rax
xor edx, edx
mov rax, qword [0x1400251b0]
movzx r8d, word [rbp + 0x3d1e]
mov rcx, qword [rdi]
add rcx, rcx
movsxd r10, dword [rax + rcx*8]
mov cl, r11b
mov rax, qword [0x1400251f0]
xor r10, 0x50
movsxd r9, dword [rax + 0x1440]
mov eax, 0x1ea6
div r8d
mov r8, r12
mov rdx, r10
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r9
mov r9d, 0x1c90
call fcn.14000227c
lea ecx, [r15 + r15]
mov word [0x1400251e4], ax
movsxd rdx, ecx
mov r11d, eax
movzx ecx, byte [rdx + rsi]
cmp ecx, dword [0x140025230]
jl 0x140001910
mov rcx, qword [0x140025218]
movzx edx, byte [rcx + rsi]
cmp edx, 0x47c
ja 0x140001910
mov r10, qword [0x140025210]
mov rax, qword [0x140025270]
mov rcx, rbx
movsxd r8, dword [rsp + 0xb8]
add rcx, rcx
movzx edx, r11w
dec rbx
xor edx, r10d
mov dword [rax + rcx*8], edx
mov rcx, qword [0x140025258]
movsxd rax, dword [0x1400251c8]
mov rdx, qword [rsp + 0x30]
xor rax, r8
and rax, qword [rdx + rcx*8]
xor edx, edx
movsxd rcx, dword [0x1400251a0]
div rcx
mov edx, 0xd09
mov dword [0x1400251a0], eax
lea eax, [r15 + 6]
movsxd rcx, eax
mov rax, qword [0x140025200]
sub edx, dword [rax + rcx*4]
mov ecx, 0x6fa
movsxd rax, edx
add qword [rdi + rbx*8 + 0x10], rax
mov rax, qword [rsp + 0x38]
add word [rax + rbx*2 + 0xe], cx
mov rax, qword [0x140025278]
movsxd r8, dword [rax + r8*4]
mov rax, qword [0x140025248]
lea rcx, [rbx + rbx*2]
mov rbx, qword [rsp + 0xa8]
xor edx, edx
mov rax, qword [rax + rcx*8]
div r8
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov r11d, 1
lea eax, [r15 + 0xa]
movsxd rcx, eax
mov rax, qword [0x1400251b8]
mov edx, dword [rax + rcx*4]
mov eax, 0x5102371
xor edx, dword [r14 + rbx*4]
imul edx, r12d
xor dword [r13 + r12*4], edx
mov r9, qword [0x140025210]
mov r8d, dword [r14 + r9*4]
imul r8d
movzx eax, word [rsp + 0xa0]
sub ax, r11w
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x652
sub r8d, ecx
movzx ecx, ax
mov eax, r8d
cdq
idiv ecx
mov rdx, qword [rsp + 0xc8]
lea rcx, [r12 + r12*2]
movzx r8d, word [rdx + rcx*2 + 4]
cdq
idiv r8d
movsxd rcx, eax
or qword [0x140025250], rcx
mov eax, dword [0x140025260]
add eax, r11d
mov dword [0x140025260], eax
movsxd rcx, eax
mov rax, qword [0x140025258]
mov r10, rax
sub rax, r11
mov qword [0x140025258], rax
sub r10, rcx
mov rax, qword [0x140025218]
mov rcx, qword [rsp + 0x90]
mov r8b, byte [rcx + rax*2]
movzx edx, word [rcx + r9*2]
mov r9d, 0xec
movsxd rax, r15d
mov rcx, r10
add r8b, byte [rax + 0x78c4]
movzx eax, word [0x1400251e4]
sub edx, eax
mov byte [rsp + 0x28], r8b
movsxd rax, edx
mov r8d, 0x980
mov edx, 0x59c
mov qword [rsp + 0x20], rax
call fcn.140002f70
mov rax, qword [rsp + 0x38]
xor edx, edx
mov r8, qword [0x1400251e8]
mov r9, qword [rdi]
movzx eax, word [rax + rbx*2 + 0x16]
div r12
movabs rax, 0x7963a527635e64b5
mov rcx, rdx
mul rdx
mov eax, dword [r8 + r9*4]
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 0xc
imul eax, ecx
mov dword [r8 + r9*4], eax
mov rax, qword [0x140025278]
mov rcx, qword [rdi]
add rcx, rcx
movsxd rcx, dword [rax + rcx*8 + 0x54]
mov rax, qword [rsp + 0x30]
xor qword [rax + rbx*8], rcx
movsxd rcx, dword [rsp + 0xb8]
mov rax, qword [0x140025278]
movsxd r8, dword [rax + rcx*4]
jmp 0x1400018e4