Function at 0x140006158
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov byte [rax + 0x18], r8b
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x78
movzx eax, byte [rdx + r9]
mov rbx, rdx
mov rdi, qword [0x140025258]
cdq
idiv dword [0x1400251a0]
mov rax, qword [0x140025218]
mov r14, r9
mov qword [rsp + 0x48], rax
mov r9, rdi
movzx esi, r8b
dec rdi
mov r8d, dword [0x140025228]
or al, sil
mov byte [rsp + 0x30], al
or r9, 0x314
mov rax, qword [0x140025280]
mov ecx, esi
movsxd r12, edx
mov r15d, 0x1105
mov qword [0x140025258], rdi
mov qword [rsp + 0x58], r9
mov rax, qword [rax + 0x74b0]
imul rax, rbx
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x60], rax
mov rax, qword [0x140025238]
mov dword [rsp + 0x34], r15d
mov dword [rsp + 0x38], esi
movzx eax, word [rax + 0x2de8]
cdq
idiv r8d
dec r8d
mov eax, 0x64f0eb01
mov r11d, edx
mov dword [0x140025228], r8d
movzx r9d, byte [r9 + r14]
mul esi
shr edx, 0xa
imul eax, edx, 0xa25
sub ecx, eax
movsxd rax, ecx
mov qword [rsp + 0x40], rax
mov rax, qword [0x140025240]
movsxd rcx, r8d
movzx r13d, word [rax + rcx*2]
xor r13, 0x377
cmp r9d, dword [0x1400251a0]
jl 0x14000639b
lea r10, [r14 + rbx*2]
mov ebp, r15d
mov r14, qword [rsp + 0x40]
add r10, rbx
mov eax, r8d
cdq
idiv ebp
mov al, byte [rsp + 0xd0]
or byte [r10], al
movzx r15d, dx
mov rax, qword [0x140025210]
lea r10, [r10 - 3]
movzx ebp, dx
xor edx, edx
mov dword [rsp + 0x34], r15d
add byte [rax + r13], r9b
mov eax, 0xffff
add r11w, ax
mov qword [rbx*8 + 0xd20], 0xffe
mov r8, qword [0x140025258]
mov rcx, qword [0x1400251d8]
movzx eax, r11w
add eax, ebp
mov dword [rsp + 0xc8], r11d
div esi
cdq
idiv dword [rcx + r8*4]
mov dword [rcx + r8*4], edx
movsxd r8, dword [rbx*4 + 0x1c22]
dec rbx
mov rdi, qword [0x1400251b0]
cmp r8d, dword [rdi + 0x1360]
jne 0x140006368
movzx r15d, word [0x1400251fc]
lea r11, [r8 + r13]
mov rsi, qword [rsp + 0x58]
movsxd r12, r9d
xor edx, edx
mov rax, r12
div qword [0x140025220]
mov ecx, r15d
inc r8d
mov qword [0x140025220], rdx
movzx eax, byte [r11]
inc r11
sub ecx, eax
mov eax, 0xab9699bf
add ecx, dword [rdi + rsi*4]
imul ecx
add edx, ecx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x17df
sub ecx, eax
movsxd rax, ecx
add r14, rax
cmp r8d, dword [rdi + 0x1360]
je 0x140006303
mov esi, dword [rsp + 0x38]
mov r15d, dword [rsp + 0x34]
mov r11d, dword [rsp + 0xc8]
mov qword [rsp + 0x40], r14
mov r8d, dword [0x140025228]
inc r9d
cmp r9d, dword [0x1400251a0]
jge 0x14000626b
mov rdi, qword [0x140025258]
mov r14, qword [rsp + 0xd8]
mov r12, qword [rsp + 0x50]
mov qword [rsp + 0xc8], rbx
movzx ebp, r15w
lea rax, [r14 + rbp*2]
movzx r11d, byte [rax + rbp]
cmp r11d, 0x38a
jl 0x140006471
movzx edi, byte [rsp + 0x30]
mov rsi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
add qword [0x140025268], rbx
xor edx, edx
inc dword [rsi]
mov eax, dword [rsi]
add eax, 8
movsxd r10, r11d
movsxd rcx, eax
movzx eax, byte [rcx + r13]
movzx ecx, byte [r10 + r14]
div ecx
mov byte [r10 + r14], al
movsxd r9, dword [0x140025228]
mov r8, qword [0x140025240]
mov eax, dword [0x1400251a0]
cdq
movzx ecx, word [r8 + r9*2]
idiv ecx
mov word [r8 + r9*2], ax
mov rcx, qword [0x1400251b0]
movzx eax, word [0x1400251e0]
cdq
idiv dword [rcx + rbp*4]
movzx eax, r11b
mov dword [rcx + rbp*4], edx
movzx ecx, byte [rdi*8 + 0xd20]
imul ecx, eax
movzx eax, r11w
inc r11d
or cl, r15b
mov byte [r10 + r14], cl
mov ecx, 0xefcc
and ax, cx
add word [r12 + r10*2], ax
cmp r11d, 0x38a
jge 0x1400063c4
mov rdi, qword [0x140025258]
mov r8d, dword [0x140025228]
mov rbx, qword [rsp + 0xc8]
mov esi, dword [rsp + 0x38]
movzx ebp, word [r12 + rbx*2]
mov eax, esi
mov qword [rsp + 0xc8], rax
cmp rbp, rax
ja 0x140006581
movzx eax, r15w
lea r12, [rbx*8 + 0xd48]
mov r15, qword [rsp + 0xc8]
sub esi, eax
add esi, ebp
movzx r10d, word [0x1400251e0]
xor edx, edx
movsxd rax, esi
or rax, 0x17c5
mov qword [0x1400251c0], rax
mov rax, qword [0x140025210]
inc rax
mov qword [0x140025210], rax
movzx ecx, byte [rax + r14]
mov eax, 0x1465
div ecx
mov rcx, qword [rsp + 0xc0]
mov edx, r10d
movsxd r8, eax
movzx eax, byte [rdi + r13]
mov rdi, qword [rsp + 0x60]
mov r9, qword [rcx + rbp*8]
or r9, rax
mov rax, qword [rsp + 0x50]
movzx ecx, word [rax + 0x3244]
movzx eax, byte [rdi + rbp]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov cl, 0xd8
call fcn.14000227c
mov rcx, qword [0x140025258]
lea r12, [r12 - 8]
mov r9, qword [rsp + 0x48]
xor edx, edx
inc esi
mov byte [rcx + r14], al
mov al, byte [r14 + rbx + 6]
dec rbx
sub al, byte [0x140025258]
add al, byte [0x140025260]
xor byte [rdi + rbp], al
inc rbp
mov rax, qword [0x140025210]
movsxd rax, dword [r9 + rax*8 + 4]
or rax, qword [r12 - 0x28]
div qword [r12]
mov qword [r12], rax
mov rdi, qword [0x140025258]
cmp rbp, r15
jle 0x1400064a1
mov r8d, dword [0x140025228]
mov r15d, dword [rsp + 0x34]
jmp 0x140006586
mov r9, qword [rsp + 0x48]
movzx esi, byte [rsp + 0x30]
xor edx, edx
inc rbx
inc rdi
movzx ecx, byte [rsi + 0x1545]
add sil, 0xff
imul eax, ecx, 0x15ae
mov ecx, dword [0x1400251a8]
movzx r11d, sil
add ecx, eax
mov dword [0x1400251a8], ecx
movsxd rax, dword [r9 + 0x64b4]
div qword [0x140025218]
mov eax, 0x14dc
mov qword [0x140025218], rdx
cdq
idiv r8d
xor edx, edx
mov dword [0x140025228], eax
lea eax, [rcx - 0x95a]
movsxd rcx, eax
lea rax, [rbx + 0xd2]
shl rax, 4
imul rcx, qword [rax]
movzx eax, byte [0x1400251a4]
sub rcx, qword [0x140025220]
div r11d
mov rax, qword [0x140025278]
mov qword [0x140025220], rcx
mov qword [0x140025258], rdi
movsxd r8, edx
mov ecx, dword [rax + rdi*4 + 0x20]
mov rax, qword [0x140025210]
add ecx, dword [r9 + rax*4]
movabs rax, 0x75bcf7a9fef716d3
mov r9b, byte [r13 + 0x862]
movsxd r10, ecx
mov rcx, rbx
mul rbx
mov byte [rsp + 0x28], r9b
mov r9d, 0xc1
shr rdx, 0xb
imul rax, rdx, 0x1165
mov edx, r11d
mov qword [rsp + 0x20], r10
sub rcx, rax
call fcn.140002f70
mov dword [0x1400251f8], eax
xor edx, edx
movzx eax, sil
add byte [rax + r14], r15b
mov rax, rbx
movsxd rcx, dword [0x1400251f8]
div rcx
movzx ecx, byte [rsp + 0xd0]
xor edx, edx
sub rax, rcx
movsxd rcx, dword [0x140025260]
sub rax, qword [0x140025210]
div rcx
mov dword [0x140025260], eax
mov eax, dword [0x140025258]
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret