Function at 0x10002556c
Capabilities:
Encode data using xor
Encrypt data using salsa20 or chacha

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x190
mov rax, qword [0x100083348]
xor rax, rsp
mov qword [rsp + 0x180], rax
mov rsi, rdx
lea r8, [0x100079010]
mov rax, qword [rcx + 0x10]
lea r9, [rax + 0xd]
mov r15, rcx
mov qword [rsp + 0xa0], rcx
mov ecx, dword [rax + 5]
mov r13d, dword [rax + 9]
lea rdi, [r9 - 1]
lea rbp, [0x100000000]
mov ebx, dword [rax + 1]
shr rbx, 2
mov qword [rsp + 0xd0], rdx
mov edx, 0xfffffff
and rbx, rdx
and rcx, rdx
and r13, rdx
add rbx, rbp
xor r12d, r12d
cmp rdi, r8
mov qword [rsp + 0x128], rcx
mov qword [rsp + 0xc8], r13
mov qword [rsp + 0xc0], rbx
jb 0x10002563d
mov ecx, dword [0x10001c66c]
mov eax, dword [0x10000dfa4]
imul ecx, eax
mov eax, ecx
add rax, r8
cmp rdi, rax
jae 0x10002563d
mov ecx, dword [0x10000dfa4]
mov rax, rdi
sub rax, r8
cqo
idiv rcx
mov edx, dword [0x10000dfa4]
imul rdx, rax
add r8, rdx
jmp 0x100025640
mov r8, r12
cmp r8, r12
jne 0x10002564f
mov r8, rdi
and r8, 0xffffffffffff0000
sub r9, r8
mov r11d, dword [0x10000dfa4]
lea rax, [r9 - 0x40]
cmp rax, r12
mov r10d, ebx
cmovl rax, r12
lea rdi, [rax + r8]
sub r11, r13
sub r10d, ebp
xor eax, eax
inc r11
mov r9, r11
cmp r11, r12
lea ecx, [rax + 0x40]
rep stosb byte [rdi], al
mov rdi, r12
je 0x1000256bc
mov rdx, qword [0x100082270]
imul rdx, rdx, 0x343fd
shl rdi, 0x10
shr r9, 0x10
add rdx, 0x269ec3
mov rcx, rdx
shr rcx, 0x10
movzx eax, cx
or rdi, rax
cmp r9, r12
jne 0x10002568d
mov qword [0x100082270], rdx
xor edx, edx
mov ecx, r10d
mov rax, rdi
div r11
lea r14, [rdx + r8]
mov rdx, r13
mov qword [rsp + 0x38], r14
mov r8, r14
mov eax, 0xf575a7cd
cmp r13, r12
mov rdx, qword [r13 + rbx]
mov dil, r12b
mov byte [rsp + 0x20], r12b
mov qword [rsp + 0xd8], r13
mov qword [rsp + 0xb0], rbx
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0xa8], r14
je 0x100025eaa
lea rcx, [rsp + 0xb8]
mov eax, 0x37ec14e5
mov r10, qword [rsp + 0xb8]
mov rcx, rbp
mov r9d, dword [rsp + 0xbc]
mov qword [rsp + 0x28], r12
mov eax, 0xfffffff
and r10, rax
and r9, rax
add r10, rbp
mov rax, qword [0x100033ac0]
sub rcx, rax
mov qword [rsp + 0x58], rcx
jne 0x1000257ab
cmp r9, r12
mov r8, r12
jbe 0x100025a30
mov r14d, 0x1bbd2d76
mov edx, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x2c]
movzx eax, byte [r8 + r10]
inc r8
sub eax, r14d
add edx, eax
add eax, ecx
mov ecx, eax
imul ecx, ecx, 0xfb82
rol ecx, 0xa
ror eax, 0xa
xor ecx, eax
imul ecx, ecx, 0xe442d28a
ror ecx, 2
add edx, ecx
cmp r8, r9
jb 0x10002576f
mov dword [rsp + 0x2c], ecx
mov dword [rsp + 0x28], edx
jmp 0x100025a2b
mov r11, 0xfffffffffffff000
movsxd rcx, dword [0x10000003c]
mov r8d, dword [rcx + rbp + 0xb0]
lea rax, [r9 + r10]
add r8, rbp
mov r15d, dword [rcx + rbp + 0xb4]
mov qword [rsp + 0x30], rax
mov eax, r10d
sub eax, ebp
mov esi, eax
mov ebp, eax
add rax, r9
and rsi, r11
mov r12, rax
and r12, r11
mov qword [rsp + 0x40], r12
sub rbp, rsi
sub rax, r12
add r15, r8
mov qword [rsp + 0x50], rax
jmp 0x10002580e
mov eax, dword [r8]
cmp rax, rsi
jae 0x100025813
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, r15
jne 0x1000257ff
xor r11d, r11d
cmp r8, r15
je 0x10002584d
mov eax, dword [r8]
cmp rax, rsi
jne 0x10002584d
mov ecx, dword [r8 + 4]
sub rcx, 8
shr rcx, 1
je 0x10002584d
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and eax, 0xfff
cmp rax, rbp
jae 0x10002584d
inc r11
add rdx, 2
cmp r11, rcx
jne 0x100025834
mov edx, dword [rsp + 0x2c]
mov rbx, qword [rsp + 0x58]
mov r14d, 0x1bbd2d76
mov r9d, dword [rsp + 0x28]
lea rdi, [0x100000000]
cmp r8, r15
je 0x1000259d9
mov eax, dword [r8]
cmp rax, r12
ja 0x1000259d9
mov ecx, dword [r8 + 4]
lea rax, [rcx - 8]
shr rax, 1
cmp r11, rax
jne 0x1000258aa
add r8, rcx
cmp r8, r15
je 0x1000259d9
mov eax, dword [r8]
cmp rax, r12
ja 0x1000259d9
xor r11d, r11d
jmp 0x10002587d
mov eax, dword [r8]
cmp rax, r12
jne 0x1000258c8
movzx eax, word [r8 + r11*2 + 8]
and eax, 0xfff
cmp rax, qword [rsp + 0x50]
jae 0x1000259d9
mov rax, r11
mov ecx, 0xf000
inc r11
test word [r8 + rax*2 + 8], cx
je 0x100025868
movzx ecx, word [r8 + rax*2 + 8]
xor esi, esi
mov ebp, ecx
and ebp, 0xfff
add ebp, dword [r8]
add rbp, rdi
mov r12, rbp
sub r12, r10
je 0x100025933
movzx eax, byte [rsi + r10]
inc rsi
sub eax, r14d
add r9d, eax
add eax, edx
mov edx, eax
imul edx, edx, 0xfb82
rol edx, 0xa
ror eax, 0xa
xor edx, eax
imul edx, edx, 0xe442d28a
ror edx, 2
add r9d, edx
cmp rsi, r12
jb 0x1000258f9
mov dword [rsp + 0x2c], edx
mov dword [rsp + 0x28], r9d
shr ecx, 0xc
cmp ecx, 3
mov rax, qword [rbp]
mov qword [rsp + 0x48], rax
je 0x100025952
sub ecx, 0xa
neg ecx
sbb r10d, r10d
add r10d, 3
jmp 0x100025958
mov r10d, 2
mov rsi, rbx
neg rsi
sub r10d, 2
je 0x10002597f
cmp r10d, 1
je 0x100025970
or rcx, 0xffffffffffffffff
jmp 0x100025988
add rax, rsi
mov qword [rsp + 0x48], rax
mov ecx, 8
jmp 0x100025988
add dword [rsp + 0x48], esi
mov ecx, 4
xor r10d, r10d
test rcx, rcx
je 0x1000259cb
movzx eax, byte [rsp + r10 + 0x48]
inc r10
sub eax, r14d
add r9d, eax
add eax, edx
mov edx, eax
imul edx, edx, 0xfb82
rol edx, 0xa
ror eax, 0xa
xor edx, eax
imul edx, edx, 0xe442d28a
ror edx, 2
add r9d, edx
cmp r10, rcx
jb 0x100025990
mov dword [rsp + 0x2c], edx
mov dword [rsp + 0x28], r9d
lea r10, [rcx + rbp]
mov r12, qword [rsp + 0x40]
jmp 0x100025868
mov rbx, qword [rsp + 0xc0]
mov r8, qword [rsp + 0x30]
xor r12d, r12d
sub r8, r10
mov rcx, r12
je 0x100025a2b
movzx eax, byte [rcx + r10]
inc rcx
sub eax, r14d
add r9d, eax
add eax, edx
mov edx, eax
imul edx, edx, 0xfb82
rol edx, 0xa
ror eax, 0xa
xor edx, eax
imul edx, edx, 0xe442d28a
ror edx, 2
add r9d, edx
cmp rcx, r8
jb 0x1000259f1
mov dword [rsp + 0x2c], edx
mov dword [rsp + 0x28], r9d
mov r14, qword [rsp + 0x38]
mov rcx, r12
mov rax, rcx
inc rcx
and eax, 7
mov al, byte [rsp + rax + 0x28]
mov byte [rsp + rcx + 0x12f], al
cmp rcx, 0x10
jb 0x100025a33
mov eax, 0x7c1bcafa
mov eax, dword [rsp + 0x13c]
mov rsi, r14
mov r11d, dword [rsp + 0x130]
mov edx, dword [rsp + 0x134]
mov ecx, dword [rsp + 0x138]
mov dword [rsp + 0xf0], eax
mov dword [rsp + 0x118], eax
mov eax, dword [0x10006a908]
mov dword [rsp + 0xf8], r12d
mov dword [rsp + 0xe0], eax
mov eax, dword [0x10006a90c]
mov dword [rsp + 0xfc], r12d
mov dword [rsp + 0xf4], eax
mov eax, dword [0x10006a910]
mov dword [rsp + 0x100], r12d
mov dword [rsp + 0x108], eax
mov eax, dword [0x10006a914]
mov dword [rsp + 0x104], r12d
mov r12, rbx
mov dword [rsp + 0x11c], eax
mov dword [rsp + 0xe4], r11d
mov dword [rsp + 0xe8], edx
mov dword [rsp + 0xec], ecx
mov dword [rsp + 0x10c], r11d
mov ebx, 0x40
lea rax, [rsp + 0x140]
mov dword [rsp + 0x110], edx
mov dword [rsp + 0x114], ecx
sub rsi, rax
sub r12, r14
mov qword [rsp + 0x120], r12
mov qword [rsp + 0x58], rsi
mov r8, rbx
lea rdx, [rsp + 0xe0]
lea rcx, [rsp + 0x60]
call sub.msvcrt.dll_memcpy
mov ebp, dword [rsp + 0x70]
mov r14d, dword [rsp + 0x84]
mov r9d, dword [rsp + 0x90]
mov edi, dword [rsp + 0x68]
mov ebx, dword [rsp + 0x78]
mov r13d, dword [rsp + 0x7c]
mov ecx, dword [rsp + 0x9c]
mov esi, dword [rsp + 0x6c]
mov r8d, dword [rsp + 0x94]
mov r15d, dword [rsp + 0x80]
mov eax, dword [rsp + 0x74]
mov edx, dword [rsp + 0x98]
mov r11d, dword [rsp + 0x88]
mov r10d, dword [rsp + 0x8c]
mov dword [rsp + 0x40], eax
mov r12d, dword [rsp + 0x40]
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x50], 2
add eax, r9d
rol eax, 7
xor ebp, eax
mov eax, dword [rsp + 0x30]
add eax, ebp
rol eax, 9
xor r15d, eax
lea eax, [r15 + rbp]
rol eax, 0xd
xor r9d, eax
mov dword [rsp + 0x40], r9d
lea eax, [r15 + r9]
ror eax, 0xe
xor dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x24]
mov r9d, dword [rsp + 0x30]
add eax, r12d
rol eax, 7
xor r14d, eax
lea eax, [r12 + r14]
rol eax, 9
xor r8d, eax
lea eax, [r8 + r14]
rol eax, 0xd
xor dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x24]
add eax, r8d
ror eax, 0xe
xor r12d, eax
lea eax, [rbx + r11]
rol eax, 7
xor edx, eax
lea eax, [r11 + rdx]
rol eax, 9
xor edi, eax
lea eax, [rdi + rdx]
rol eax, 0xd
xor ebx, eax
lea eax, [rbx + rdi]
ror eax, 0xe
xor r11d, eax
lea eax, [r10 + rcx]
rol eax, 7
xor esi, eax
lea eax, [rcx + rsi]
rol eax, 9
xor r13d, eax
lea eax, [r13 + rsi]
rol eax, 0xd
xor r10d, eax
lea eax, [r13 + r10]
ror eax, 0xe
xor ecx, eax
mov eax, dword [rsp + 0x30]
add eax, esi
rol eax, 7
xor dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x24]
mov dword [rsp + 0x64], eax
add eax, r9d
rol eax, 9
xor edi, eax
mov eax, dword [rsp + 0x24]
add eax, edi
rol eax, 0xd
xor esi, eax
lea eax, [rsi + rdi]
ror eax, 0xe
xor r9d, eax
mov eax, r9d
mov dword [rsp + 0x30], r9d
mov dword [rsp + 0x60], eax
lea eax, [r12 + rbp]
rol eax, 7
xor ebx, eax
mov r9d, dword [rsp + 0x40]
lea eax, [r12 + rbx]
rol eax, 9
xor r13d, eax
lea eax, [r13 + rbx]
rol eax, 0xd
xor ebp, eax
lea eax, [r13 + rbp]
ror eax, 0xe
xor r12d, eax
lea eax, [r11 + r14]
rol eax, 7
xor r10d, eax
lea eax, [r10 + r11]
rol eax, 9
xor r15d, eax
lea eax, [r10 + r15]
rol eax, 0xd
xor r14d, eax
lea eax, [r14 + r15]
ror eax, 0xe
xor r11d, eax
lea eax, [rcx + rdx]
rol eax, 7
xor r9d, eax
mov dword [rsp + 0x90], r9d
lea eax, [rcx + r9]
rol eax, 9
xor r8d, eax
lea eax, [r8 + r9]
rol eax, 0xd
xor edx, eax
lea eax, [rdx + r8]
ror eax, 0xe
xor ecx, eax
sub qword [rsp + 0x50], 1
mov eax, dword [rsp + 0x30]
jne 0x100025bb1
mov dword [rsp + 0x9c], ecx
mov dword [rsp + 0x78], ebx
xor ecx, ecx
mov dword [rsp + 0x74], r12d
lea ebx, [rcx + 0x40]
mov r12, qword [rsp + 0x120]
mov dword [rsp + 0x70], ebp
mov ebp, dword [rsp + 0x100]
mov dword [rsp + 0x6c], esi
mov rsi, qword [rsp + 0x58]
mov dword [rsp + 0x68], edi
mov dil, byte [rsp + 0x20]
mov dword [rsp + 0x98], edx
mov dword [rsp + 0x94], r8d
mov dword [rsp + 0x8c], r10d
mov dword [rsp + 0x88], r11d
mov dword [rsp + 0x84], r14d
mov dword [rsp + 0x80], r15d
mov dword [rsp + 0x7c], r13d
mov eax, dword [rsp + rcx + 0xe0]
add rcx, 4
add dword [rsp + rcx + 0x5c], eax
cmp rcx, rbx
jl 0x100025d9a
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x140]
mov r8, rbx
call sub.msvcrt.dll_memcpy
inc ebp
mov r9, qword [rsp + 0xd8]
mov dword [rsp + 0x100], ebp
cmp r9, rbx
jbe 0x100025e25
lea r8, [r12 + rsi]
mov rdx, rbx
lea rcx, [rsp + 0x140]
mov al, byte [r8 + rcx]
xor al, byte [rcx]
mov byte [rsi + rcx], al
inc rcx
xor dil, al
sub rdx, 1
jne 0x100025de8
add qword [rsp + 0xa8], rbx
sub r9, rbx
add rsi, rbx
add qword [rsp + 0xb0], rbx
mov byte [rsp + 0x20], dil
mov qword [rsp + 0xd8], r9
jmp 0x100025b1e
mov r13, qword [rsp + 0xc8]
xor r12d, r12d
mov rbx, qword [rsp + 0xc0]
cmp r9, r12
mov edx, r12d
jbe 0x100025e8e
lea rax, [rsp + 0x140]
mov rbx, qword [rsp + 0xb0]
sub rbx, rax
lea rcx, [rsp + 0x140]
lea rax, [rsp + 0x140]
mov r8, qword [rsp + 0xa8]
sub r8, rax
inc edx
mov al, byte [rcx + rbx]
xor al, byte [rcx]
mov byte [rcx + r8], al
xor dil, al
mov eax, edx
inc rcx
cmp rax, r9
jb 0x100025e6e
mov rbx, qword [rsp + 0xc0]
lea rbp, [0x100000000]
mov rsi, qword [rsp + 0xd0]
mov r15, qword [rsp + 0xa0]
mov r14, qword [rsp + 0x38]
cmp dil, byte [r13 + rbx + 8]
je 0x100025f73
call fcn.1000749ec
mov rdi, r12
lea r10, [0x100010fb8]
mov qword [r15 + 0x10], r10
mov rbx, rax
lea r8, [r15 + 0x18]
mov rcx, qword [0x100082270]
and r8, 0xfffffffffffffff8
mov r11d, 0xffff
lea r9, [r8 + 0xfff]
and rbx, 0xfffffffffffff000
and r9, 0xfffffffffffff000
imul rcx, rcx, 0x343fd
shl rdi, 0x10
shr r11, 0x10
add rcx, 0x269ec3
mov rax, rcx
shr rax, 0x10
movzx edx, ax
or rdi, rdx
cmp r11, r12
jne 0x100025ef5
movabs rax, 0x8000800080008001
mul rdi
mov qword [0x100082270], rcx
mov qword [rsi + 0x98], rbx
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub rdi, rdx
inc rdi
mov qword [rsi + 0xb0], rdi
mov qword [rsp + 0xc8], r12
jmp 0x100025f69
mov rax, qword [rsp + 0xc8]
mov qword [r8], rax
add r8, 8
cmp r8, r9
jb 0x100025f5a
jmp 0x100026095
mov rax, qword [0x100033ac0]
mov rsi, rbx
sub rsi, r14
sub rbp, rax
jne 0x100025f8e
cmp rsi, r12
je 0x10002607e
mov rcx, qword [0x10004bc78]
mov r11, r14
lea r8d, [rcx - 1]
sub r11, rbx
lea rax, [0x100000000]
sub ebx, eax
lea r12d, [r13 + rbx]
lea r13, [0x10004bc78]
xor edi, edi
test r8d, r8d
js 0x100025fe8
lea eax, [r8 + rdi]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r9d, dword [r13 + rdx*4 + 4]
and r9d, 0xfffffff
cmp ebx, r9d
jae 0x100025fde
lea r8d, [rax - 1]
jmp 0x100025fe3
jbe 0x100026041
lea edi, [rax + 1]
cmp r8d, edi
jge 0x100025fbb
movsxd r10, edi
mov eax, ecx
cmp r10, rax
jae 0x10002607e
lea r15, [0x100000000]
mov edx, dword [r13 + r10*4 + 4]
mov eax, edx
mov edi, 0xfffffff
and eax, edi
cmp eax, r12d
jae 0x100026076
mov r8, rdx
xor r9d, r9d
and r8, rdi
mov edi, edx
sar edx, 0x1e
shl edi, 2
add r8, r15
and edx, 3
sar edi, 0x1e
and edi, 3
sub edi, 1
je 0x10002604b
sub edi, 1
je 0x100026046
cmp edi, 1
jne 0x100026051
mov r9, rbp
jmp 0x100026051
movsxd r10, eax
jmp 0x100025feb
mov r9, rsi
jmp 0x100026051
mov r9, rbp
sub r9, rsi
sub edx, 2
je 0x100026061
cmp edx, 1
jne 0x10002606c
add qword [r8 + r11], r9
jmp 0x100026065
add dword [r8 + r11], r9d
mov rcx, qword [0x10004bc78]
mov eax, ecx
inc r10
cmp r10, rax
jb 0x100025ffd
mov r15, qword [rsp + 0xa0]
mov eax, dword [0x10000dfa4]
mov eax, 0xb84f17e7
mov rdx, qword [rsp + 0x128]
lea r10, [r14 + rdx]
mov qword [r15 + 0x10], r10
mov rcx, qword [rsp + 0x180]
xor rcx, rsp
call fcn.100060d50
mov rbx, qword [rsp + 0x1e0]
add rsp, 0x190
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret