Function at 0x140001000
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xd8
mov rax, qword [0x140067e88]
movzx edi, r9b
mov r14d, dword [rsp + 0x148]
mov r15d, 0x1506
movzx r10d, word [0x140067e90]
mov r11, qword [rsp + 0x140]
add r10, r10
mov rbx, qword [0x140067e80]
lea r12d, [rdi - 1]
mov r13d, dword [rsp + 0x150]
mov edi, 0x34e
mov r8, qword [0x140067e78]
mov eax, dword [rax + r10*8]
sub r15, r8
mov r10, qword [0x140067e50]
mov dword [rsp + 0x68], eax
movsxd rbp, edx
mov rdx, rcx
mov byte [rsp + 0x138], r9b
mov dword [rsp + 0x150], r13d
dec r13d
mov qword [rsp + 0x80], rdi
movzx eax, byte [rbp + rcx]
movzx ecx, word [0x140067ed0]
sub rbx, rax
mov rax, qword [r11 + 0x3160]
mov qword [rsp + 0xa8], rax
mov rax, qword [0x140067e40]
mov qword [rsp + 0xb8], rax
mov eax, dword [0x140067e74]
inc eax
mov qword [rsp + 0xc0], rbx
mov dword [0x140067e74], eax
cdqe
mov qword [rsp + 0x70], rax
movzx eax, byte [rdx + rcx*2]
mov qword [rsp + 0x88], rax
imul eax, ebp, 0x813
cdqe
mov qword [rsp + 0x90], rax
mov rax, qword [0x140067ec8]
mov rax, qword [rax + rcx*8]
xor rcx, 0x1dc7
sub rax, qword [0x140067e80]
mov qword [rsp + 0x78], rax
mov eax, 0x1ef7
cdq
mov qword [rsp + 0x98], rcx
idiv r14d
inc r14d
cdqe
mov qword [rsp + 0xa0], rax
mov rax, qword [0x140067e48]
mov dword [rsp + 0x148], r14d
movzx r9d, word [rax + 0x1fb0]
lea eax, [r14*4]
movsxd rcx, eax
and r9, r10
mov rax, qword [rsp + 0x120]
inc r10
mov qword [0x140067e50], r10
mov qword [rsp + 0x60], r9
movzx eax, byte [rcx + rax]
mov ecx, dword [0x140067e60]
imul eax, r13d
dec ecx
mov dword [0x140067e60], ecx
cdqe
mov qword [rsp + 0xb0], rax
movzx eax, byte [0x140067e5c]
cmp eax, ecx
jl 0x1400012da
mov rax, qword [0x140067eb8]
cmp dword [rax + rbp*4], 0xdd6
je 0x1400012da
dec r8
mov qword [0x140067e78], r8
movzx eax, byte [r15]
movzx ecx, byte [rax + 0x12dc]
mov rax, qword [rsp + 0x88]
cmp dword [rax + r8*4], ecx
jge 0x14000122a
mov rcx, qword [rsp + 0x90]
movzx eax, r12b
movsxd rcx, dword [rcx + rax*4 + 4]
cmp rcx, rdi
jae 0x14000122a
mov r13d, dword [rsp + 0x150]
movzx edx, r12b
movzx r12d, byte [rsp + 0x138]
lea eax, [r13*4 + 0x1e]
movsxd rcx, eax
mov rax, qword [0x140067ea8]
cmp qword [rax + rcx*8], rdx
jae 0x1400013c5
mov rcx, qword [rsp + 0x70]
mov edi, 0x34d
movzx eax, r12b
mov qword [rsp + 0x80], rdi
movzx edx, byte [rax + rcx]
movsxd rax, dword [0x140067e94]
or rdx, rax
mov eax, dword [0x140067ec0]
add eax, 3
movsxd rcx, eax
mov rax, qword [rsp + 0xb0]
add rdx, qword [rax + rcx*8]
imul r8, rdx
mov qword [0x140067e78], r8
movzx eax, byte [r15]
lea rcx, [r11 + rax*8]
movzx eax, word [0x140067ec4]
sub rax, qword [rcx]
mov qword [rcx], rax
mov ecx, 0x18ee
mov rax, qword [0x140067eb0]
mov word [rax + 0x13ce], cx
mov eax, dword [0x140067e58]
lea eax, [rax*4]
movsxd rcx, eax
mov rax, qword [0x140067e48]
lea r8, [rax + rcx*2]
movzx ecx, byte [r15]
mov rax, qword [0x140067e68]
movzx edx, word [rax + rcx*4]
xor dx, word [rbx + rcx*8]
xor dx, word [r8]
xor dx, bp
mov word [r8], dx
inc r15
jmp 0x1400013b7
movzx eax, byte [r15]
dec r13d
mov rcx, qword [rsp + 0x78]
inc r15
movzx esi, byte [rsp + 0x138]
movsxd r10, r14d
mov r12d, esi
lea rdx, [r11 + rax*8]
mov rax, qword [0x140067ea0]
mov rcx, qword [rcx + r10*8]
imul rcx, qword [rax + rbp*8]
xor qword [rdx], rcx
movzx eax, byte [r15]
mov rcx, qword [rsp + 0x70]
movzx eax, byte [rax + rcx]
cdq
idiv r13d
mov rax, qword [0x140067e50]
movzx r8d, dl
xor edx, edx
movzx ecx, byte [rbx + rax*8]
mov eax, 0xffff
imul r8d, ecx
movzx ecx, word [0x140067e90]
mov byte [rcx*2 + 0x1da5], r8b
movzx r9d, word [0x140067e90]
add r9w, ax
mov rax, qword [rsp + 0x78]
mov word [0x140067e90], r9w
movzx ecx, r9w
sub r10, qword [rax + rsi*8]
mov rax, r10
div qword [rsp + 0xb8]
xor edx, edx
lea r8, [rcx + rcx*2]
div qword [rbx + r8*8]
movzx ecx, r9w
mov r9, qword [rsp + 0x60]
lea edx, [rcx + rcx*2]
mov qword [rbx + rdx*8], rax
lea eax, [rbp*2 + 0x11]
add eax, ebp
movsxd rcx, eax
mov rax, qword [0x140067ea8]
lea rdx, [rax + rcx*8]
mov rax, qword [rsp + 0x98]
movsxd rax, dword [rax + 0xd38]
xor qword [rdx], rax
mov r10, qword [0x140067e50]
mov r8, qword [0x140067e78]
movzx ecx, byte [r15]
mov rdx, qword [rsp + 0x130]
movzx eax, byte [r10*4 + 0x92e]
cmp byte [rcx + rdx], al
jb 0x1400015a9
movzx eax, byte [r9]
dec r8
mov rdx, qword [rsp + 0x120]
movsxd r14, r14d
movzx ecx, byte [rax*4 + 0x92e]
add ecx, dword [0x140067e64]
mov qword [0x140067e78], r8
movzx r9d, byte [r8 + rdx]
mov r8d, dword [rsp + 0x128]
or r9, r14
movsxd rbp, ecx
lea eax, [r8 + r8*2]
dec r8d
movsxd rcx, eax
mov dword [rsp + 0x128], r8d
movzx esi, byte [rcx + rdx]
xor edx, edx
dec byte [r15]
movzx ecx, byte [r15]
lea rax, [r15 + rcx*2]
movzx edi, byte [rcx + rax]
mov rcx, qword [0x140067e80]
movsxd rax, dword [rsp + 0x68]
dec rcx
mov qword [0x140067e80], rcx
div qword [rbx + rcx*8 + 8]
lea ecx, [r8 + 0x10]
mov r8, qword [0x140067e50]
movsxd rdx, ecx
dec r8
mov rbx, rax
mov rax, qword [rsp + 0x70]
movzx ecx, byte [rdx + rax]
mov edx, 0xaf0
mov rax, qword [0x140067eb8]
sub edx, ecx
mov ecx, dword [0x140067ec0]
dec ecx
mov qword [0x140067e50], r8
mov dword [0x140067ec0], ecx
movsxd r11, edx
movsxd rdx, ecx
mov rcx, qword [0x140067eb0]
movzx r10d, word [rcx + rdx*2]
mov rdx, rbp
movsxd rcx, dword [rax + 0xd68]
sub r10, r8
movsxd r8, dword [rsp + 0x128]
mov qword [rsp + 0x58], rcx
or r8, 0x1770
mov qword [rsp + 0x50], r10
mov rcx, r14
mov qword [rsp + 0x48], r11
movzx eax, r12b
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x30], edi
mov rdi, qword [rsp + 0x80]
mov qword [rsp + 0x28], r8
movzx r8d, di
mov qword [rsp + 0x20], rsi
call fcn.140002820
mov rdx, qword [rsp + 0x88]
mov r9, qword [rsp + 0x60]
movzx ecx, byte [r9]
mov dword [rdx + rcx*4], eax
mov rdx, rdi
mov rcx, qword [rsp + 0x90]
add rdx, rdx
movsxd rax, r13d
lea r8, [rcx + rax*4]
lea eax, [r13 + 7]
movsxd rcx, eax
movzx eax, byte [rcx + r15]
mov rcx, qword [0x140067ec8]
xor rax, qword [rcx + rdx*8]
xor edx, edx
movzx ecx, byte [r14 + 0x1da5]
div rcx
movsxd rdx, dword [rsp + 0x128]
xor rax, rdx
movsxd rcx, dword [r8]
xor edx, edx
mov r11, qword [rsp + 0x140]
inc rdi
mov r14d, dword [rsp + 0x148]
div rcx
mov dword [r8], edx
movzx eax, word [0x140067ed0]
inc ax
mov word [0x140067ed0], ax
movzx ecx, ax
mov rax, qword [0x140067e68]
movsxd rax, dword [rax + rcx*4]
mov qword [rsp + 0xa0], rax
mov r8, qword [rsp + 0x98]
movzx eax, r12b
lea ecx, [rax*2 + 0xe]
lea eax, [r14 - 1]
cdq
idiv dword [r8 + rcx*4]
mov dword [r8 + rcx*4], eax
mov rcx, qword [0x140067e88]
mov rax, qword [0x140067e50]
mov edx, dword [0x140067e60]
dec edx
mov dword [0x140067e60], edx
lea r8, [rcx + rax*4]
lea rax, [rdi + rdi*2]
mov ecx, dword [r11 + rax*8]
xor ecx, edx
sub ecx, dword [r8 + 0x14]
sub ecx, dword [rsp + 0xa0]
mov dword [r8 + 0x14], ecx
movzx eax, byte [r9]
inc r9
mov rcx, qword [rsp + 0xa8]
mov qword [rsp + 0x60], r9
movzx ebx, byte [rax + r15]
movzx eax, byte [r15]
movzx ecx, word [rcx + rax*2 + 4]
cmp ebx, ecx
jb 0x140001787
lea rcx, [r9 + 0xc]
mov r14d, ebx
lea r13, [rbx + 7]
mov qword [rsp + 0x120], rcx
shl r14, 5
lea r13, [r11 + r13*8]
lea r12, [rdi*8]
nop
movzx eax, byte [r15]
lea r12, [r12 + 8]
imul rsi, qword [r12 + r11], 0x100f
movzx r9d, byte [r9 + 0x133a]
mov r8d, 0x11ed
movzx ecx, byte [rax + 0x12dc]
mov eax, dword [0x140067ec0]
add ecx, ebx
movsxd rdi, ecx
mov qword [rsp + 0x58], rdi
movsxd rbp, ebx
lea eax, [rax*4]
movsxd rcx, eax
mov rax, qword [0x140067e48]
movzx eax, word [rax + rcx*2]
cdq
idiv ebx
movsxd r11, eax
mov rax, qword [0x140067ec8]
mov r10d, dword [r12 + rax]
mov eax, 0x1860
cdq
and r10d, ebx
idiv dword [0x140067e94]
mov rdx, qword [rsp + 0x120]
movsxd rcx, eax
mov rax, qword [0x140067e78]
movzx edx, byte [rdx + rax]
mov rax, qword [r13]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x38], r11
mov dword [rsp + 0x30], r10d
mov qword [rsp + 0x28], 0xe68
mov qword [rsp + 0x20], rcx
mov ecx, 6
call fcn.140002820
mov rax, qword [rsp + 0xc0]
lea r13, [r13 + 8]
movsxd rdx, dword [rsp + 0x128]
lea r14, [r14 + 0x20]
movzx ecx, byte [rsp + 0x138]
inc ebx
mov r9, qword [rsp + 0x60]
sub rcx, qword [r14 + rax + 8]
movabs rax, 0x19f378ce81d2fb41
mov r11, qword [rsp + 0x140]
add rcx, rdx
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 0xb
imul rax, rax, 0xe87
sub rcx, rax
xor word [0x140067e90], cx
movzx eax, byte [r15]
mov rcx, qword [rsp + 0xa8]
movzx ecx, word [rcx + rax*2 + 4]
cmp ebx, ecx
jge 0x140001650
mov eax, dword [0x140067e50]
add rsp, 0xd8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret