Function at 0x100011e8c
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, 0x1a0
mov rax, qword [0x100083348]
xor rax, rsp
mov qword [rsp + 0x190], rax
lea r8, [0x100079010]
mov rbp, rcx
mov rsi, rdx
lea r15, [rcx + 0x18]
mov rax, qword [r15]
mov edi, 0xfffffff
mov qword [rsp + 0xb0], rcx
mov ecx, dword [rax + 5]
mov ebx, dword [rax + 1]
lea r9, [rax + 0xd]
shr rbx, 2
mov r13d, dword [rax + 9]
mov qword [rsp + 0xd8], rdx
mov qword [rsp + 0xa0], r15
lea rdx, [0x100000000]
and rcx, rdi
and r13, rdi
and rbx, rdi
mov qword [rsp + 0x138], rcx
add rbx, rdx
lea rdi, [r9 - 1]
xor r12d, r12d
mov qword [rsp + 0xc8], r13
cmp rdi, r8
mov qword [rsp + 0xb8], rbx
jb 0x100011f6f
mov eax, dword [0x10000dfa4]
mov ecx, dword [0x10001c66c]
imul ecx, eax
mov eax, ecx
add rax, r8
cmp rdi, rax
jae 0x100011f6f
mov ecx, dword [0x10000dfa4]
mov rax, rdi
sub rax, r8
cqo
idiv rcx
mov edx, dword [0x10000dfa4]
imul rdx, rax
add r8, rdx
lea rdx, [0x100000000]
jmp 0x100011f72
mov r8, r12
cmp r8, r12
jne 0x100011f81
mov r8, rdi
and r8, 0xffffffffffff0000
mov r10d, ebx
mov r11d, dword [0x10000dfa4]
sub r9, r8
lea rax, [r9 - 0x40]
cmp rax, r12
cmovl rax, r12
lea rdi, [rax + r8]
sub r11, r13
sub r10d, edx
xor eax, eax
lea ecx, [rax + 0x40]
rep stosb byte [rdi], al
inc r11
cmp r11, r12
mov rdi, r12
mov r9, r11
je 0x100011fee
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 0x100011fbf
mov qword [0x100082270], rdx
mov ecx, r10d
mov rax, rdi
xor edx, edx
div r11
lea r14, [rdx + r8]
mov qword [rsp + 0x38], r14
mov rdx, r13
mov r8, r14
mov eax, 0x23081f6c
mov rdx, qword [r13 + rbx]
cmp r13, r12
mov dil, r12b
mov byte [rsp + 0x20], r12b
mov qword [rsp + 0xe0], r13
mov qword [rsp + 0xc0], rbx
mov qword [rsp + 0xd0], rdx
mov qword [rsp + 0xa8], r14
je 0x1000127e4
lea rcx, [rsp + 0xd0]
mov eax, 0xa7769121
mov eax, 0xfffffff
mov r10, qword [rsp + 0xd0]
lea rdx, [0x100000000]
mov rcx, rdx
mov r9d, dword [rsp + 0xd4]
and r10, rax
mov qword [rsp + 0x28], r12
and r9, rax
mov rax, qword [0x100033ac0]
add r10, rdx
sub rcx, rax
mov qword [rsp + 0x58], rcx
jne 0x1000120e4
cmp r9, r12
mov r8, r12
jbe 0x100012369
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 0x1000120a8
mov dword [rsp + 0x2c], ecx
mov dword [rsp + 0x28], edx
jmp 0x100012364
movsxd rcx, dword [0x10000003c]
lea rax, [r9 + r10]
mov r11, 0xfffffffffffff000
mov r8d, dword [rcx + rdx + 0xb0]
add r8, rdx
mov r15d, dword [rcx + rdx + 0xb4]
mov qword [rsp + 0x30], rax
mov eax, r10d
sub eax, edx
mov esi, eax
mov ebp, eax
add rax, r9
mov r12, rax
and rsi, r11
and r12, r11
mov qword [rsp + 0x40], r12
sub rbp, rsi
sub rax, r12
add r15, r8
mov qword [rsp + 0x50], rax
jmp 0x100012147
mov eax, dword [r8]
cmp rax, rsi
jae 0x10001214c
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, r15
jne 0x100012138
xor r11d, r11d
cmp r8, r15
je 0x100012186
mov eax, dword [r8]
cmp rax, rsi
jne 0x100012186
mov ecx, dword [r8 + 4]
sub rcx, 8
shr rcx, 1
je 0x100012186
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and eax, 0xfff
cmp rax, rbp
jae 0x100012186
inc r11
add rdx, 2
cmp r11, rcx
jne 0x10001216d
mov edx, dword [rsp + 0x2c]
mov rbx, qword [rsp + 0x58]
mov r9d, dword [rsp + 0x28]
mov r14d, 0x1bbd2d76
lea rdi, [0x100000000]
cmp r8, r15
je 0x100012312
mov eax, dword [r8]
cmp rax, r12
ja 0x100012312
mov ecx, dword [r8 + 4]
lea rax, [rcx - 8]
shr rax, 1
cmp r11, rax
jne 0x1000121e3
add r8, rcx
cmp r8, r15
je 0x100012312
mov eax, dword [r8]
cmp rax, r12
ja 0x100012312
xor r11d, r11d
jmp 0x1000121b6
mov eax, dword [r8]
cmp rax, r12
jne 0x100012201
movzx eax, word [r8 + r11*2 + 8]
and eax, 0xfff
cmp rax, qword [rsp + 0x50]
jae 0x100012312
mov ecx, 0xf000
mov rax, r11
inc r11
test word [r8 + rax*2 + 8], cx
je 0x1000121a1
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 0x10001226c
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 0x100012232
mov dword [rsp + 0x2c], edx
mov dword [rsp + 0x28], r9d
shr ecx, 0xc
mov rax, qword [rbp]
mov qword [rsp + 0x48], rax
cmp ecx, 3
je 0x10001228b
sub ecx, 0xa
neg ecx
sbb r10d, r10d
add r10d, 3
jmp 0x100012291
mov r10d, 2
mov rsi, rbx
neg rsi
sub r10d, 2
je 0x1000122b8
cmp r10d, 1
je 0x1000122a9
or rcx, 0xffffffffffffffff
jmp 0x1000122c1
add rax, rsi
mov qword [rsp + 0x48], rax
mov ecx, 8
jmp 0x1000122c1
mov ecx, 4
add dword [rsp + 0x48], esi
xor r10d, r10d
test rcx, rcx
je 0x100012304
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 0x1000122c9
mov dword [rsp + 0x2c], edx
mov dword [rsp + 0x28], r9d
mov r12, qword [rsp + 0x40]
lea r10, [rcx + rbp]
jmp 0x1000121a1
mov rbx, qword [rsp + 0xb8]
mov r8, qword [rsp + 0x30]
xor r12d, r12d
mov rcx, r12
sub r8, r10
je 0x100012364
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 0x10001232a
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
cmp rcx, 0x10
mov al, byte [rsp + rax + 0x28]
mov byte [rsp + rcx + 0x13f], al
jb 0x10001236c
mov eax, 0x66e1c622
mov edx, dword [rsp + 0x144]
mov rsi, r14
mov eax, dword [rsp + 0x14c]
mov ecx, dword [rsp + 0x148]
mov r11d, dword [rsp + 0x140]
mov dword [rsp + 0x100], eax
mov dword [rsp + 0x128], eax
mov eax, dword [0x10006a908]
mov dword [rsp + 0x108], r12d
mov dword [rsp + 0xf0], eax
mov eax, dword [0x10006a90c]
mov dword [rsp + 0x10c], r12d
mov dword [rsp + 0x104], eax
mov eax, dword [0x10006a910]
mov dword [rsp + 0x110], r12d
mov dword [rsp + 0x118], eax
mov eax, dword [0x10006a914]
mov dword [rsp + 0x114], r12d
mov r12, rbx
mov ebx, 0x40
mov dword [rsp + 0x12c], eax
mov dword [rsp + 0xf4], r11d
lea rax, [rsp + 0x150]
mov dword [rsp + 0xf8], edx
mov dword [rsp + 0xfc], ecx
sub rsi, rax
sub r12, r14
mov dword [rsp + 0x11c], r11d
mov dword [rsp + 0x120], edx
mov dword [rsp + 0x124], ecx
mov qword [rsp + 0x130], r12
lea rdx, [rsp + 0xf0]
mov r8, rbx
mov qword [rsp + 0x58], rsi
lea rcx, [rsp + 0x60]
call sub.msvcrt.dll_memcpy
mov r9d, dword [rsp + 0x90]
mov edx, dword [rsp + 0x98]
mov edi, dword [rsp + 0x68]
mov ebx, dword [rsp + 0x78]
mov r14d, dword [rsp + 0x84]
mov r10d, dword [rsp + 0x8c]
mov r8d, dword [rsp + 0x94]
mov r15d, dword [rsp + 0x80]
mov r13d, dword [rsp + 0x7c]
mov esi, dword [rsp + 0x6c]
mov ebp, dword [rsp + 0x70]
mov r11d, dword [rsp + 0x88]
mov ecx, dword [rsp + 0x9c]
mov eax, dword [rsp + 0x74]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x64]
mov r12d, dword [rsp + 0x40]
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
lea eax, [r15 + r9]
ror eax, 0xe
mov dword [rsp + 0x40], r9d
xor dword [rsp + 0x30], eax
mov r9d, dword [rsp + 0x30]
mov eax, dword [rsp + 0x24]
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 dword [rsp + 0x30], r9d
mov eax, r9d
mov dword [rsp + 0x60], eax
lea eax, [r12 + rbp]
rol eax, 7
xor ebx, eax
lea eax, [r12 + rbx]
rol eax, 9
mov r9d, dword [rsp + 0x40]
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 0x1000124ea
mov dword [rsp + 0x9c], ecx
mov dword [rsp + 0x78], ebx
xor ecx, ecx
lea ebx, [rcx + 0x40]
mov dword [rsp + 0x74], r12d
mov r12, qword [rsp + 0x130]
mov dword [rsp + 0x70], ebp
mov ebp, dword [rsp + 0x110]
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 + 0xf0]
add rcx, 4
add dword [rsp + rcx + 0x5c], eax
cmp rcx, rbx
jl 0x1000126d3
lea rcx, [rsp + 0x150]
lea rdx, [rsp + 0x60]
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov r9, qword [rsp + 0xe0]
inc ebp
mov dword [rsp + 0x110], ebp
cmp r9, rbx
jbe 0x10001275e
mov rdx, rbx
lea r8, [r12 + rsi]
lea rcx, [rsp + 0x150]
mov al, byte [r8 + rcx]
xor al, byte [rcx]
mov byte [rsi + rcx], al
inc rcx
xor dil, al
sub rdx, 1
jne 0x100012721
add qword [rsp + 0xa8], rbx
sub r9, rbx
add rsi, rbx
add qword [rsp + 0xc0], rbx
mov byte [rsp + 0x20], dil
mov qword [rsp + 0xe0], r9
jmp 0x100012457
mov rbx, qword [rsp + 0xb8]
mov r13, qword [rsp + 0xc8]
xor r12d, r12d
mov edx, r12d
cmp r9, r12
jbe 0x1000127c7
mov rbx, qword [rsp + 0xc0]
lea rcx, [rsp + 0x150]
mov r8, qword [rsp + 0xa8]
lea rax, [rsp + 0x150]
sub rbx, rax
lea rax, [rsp + 0x150]
sub r8, rax
inc edx
mov al, byte [rcx + rbx]
xor al, byte [rcx]
xor dil, al
mov byte [rcx + r8], al
inc rcx
mov eax, edx
cmp rax, r9
jb 0x1000127a7
mov rbx, qword [rsp + 0xb8]
mov r14, qword [rsp + 0x38]
mov rsi, qword [rsp + 0xd8]
mov rbp, qword [rsp + 0xb0]
mov r15, qword [rsp + 0xa0]
cmp dil, byte [r13 + rbx + 8]
je 0x1000128ab
call fcn.1000749ec
mov ebx, 0xffff
lea r10, [0x100010fb8]
mov r11, rax
mov qword [rbp + 0x10], r10
mov r8, r15
mov rcx, qword [0x100082270]
mov rdi, r12
and r8, 0xfffffffffffffff8
lea r9, [r8 + 0xfff]
and r11, 0xfffffffffffff000
and r9, 0xfffffffffffff000
imul rcx, rcx, 0x343fd
shl rdi, 0x10
shr rbx, 0x10
add rcx, 0x269ec3
mov rax, rcx
shr rax, 0x10
movzx edx, ax
or rdi, rdx
cmp rbx, r12
jne 0x10001282d
mov qword [0x100082270], rcx
movabs rax, 0x8000800080008001
mov qword [rsi + 0x98], r11
mul rdi
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub rdi, rdx
inc rdi
mov qword [rsi + 0xb0], rdi
mov qword [rsp + 0xc8], r12
jmp 0x1000128a1
mov rax, qword [rsp + 0xc8]
mov qword [r8], rax
add r8, 8
cmp r8, r9
jb 0x100012892
jmp 0x1000129d7
mov rsi, rbx
sub rsi, r14
mov rax, qword [0x100033ac0]
lea rcx, [0x100000000]
mov rbp, rcx
sub rbp, rax
jne 0x1000128d0
cmp rsi, r12
je 0x1000129b8
xor edi, edi
mov r11, r14
sub r11, rbx
sub ebx, ecx
lea r12d, [rbx + r13]
lea r13, [0x10004bc78]
mov rcx, qword [0x10004bc78]
lea r8d, [rcx - 1]
test r8d, r8d
js 0x100012922
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 0x100012918
lea r8d, [rax - 1]
jmp 0x10001291d
jbe 0x10001297b
lea edi, [rax + 1]
cmp r8d, edi
jge 0x1000128f5
movsxd r10, edi
mov eax, ecx
cmp r10, rax
jae 0x1000129b8
lea r15, [0x100000000]
mov edx, dword [r13 + r10*4 + 4]
mov edi, 0xfffffff
mov eax, edx
and eax, edi
cmp eax, r12d
jae 0x1000129b0
xor r9d, r9d
mov r8, rdx
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 0x100012985
sub edi, 1
je 0x100012980
cmp edi, 1
jne 0x10001298b
mov r9, rbp
jmp 0x10001298b
movsxd r10, eax
jmp 0x100012925
mov r9, rsi
jmp 0x10001298b
mov r9, rbp
sub r9, rsi
sub edx, 2
je 0x10001299b
cmp edx, 1
jne 0x1000129a6
add qword [r8 + r11], r9
jmp 0x10001299f
add dword [r8 + r11], r9d
mov rcx, qword [0x10004bc78]
mov eax, ecx
inc r10
cmp r10, rax
jb 0x100012937
mov r15, qword [rsp + 0xa0]
mov eax, dword [0x10000dfa4]
mov eax, 0x8f889596
mov rdx, qword [rsp + 0x138]
mov rbp, qword [rsp + 0xb0]
lea r10, [r14 + rdx]
mov qword [rbp + 0x10], r10
add qword [r15], 0xd
mov rcx, qword [rsp + 0x190]
xor rcx, rsp
call fcn.100060d50
mov rbx, qword [rsp + 0x1f0]
add rsp, 0x1a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret