Function at 0x140013140
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x28
movzx r14d, word [rdx + 0x2cdc]
mov rbx, rcx
mov rcx, qword [0x140067e88]
mov rdi, rdx
mov r8, qword [0x140067e50]
movsxd r15, dword [0x140067e74]
movsxd rbp, dword [rbx + 0x6e24]
xor rbp, 0x1dc1
movsxd rax, dword [rcx + r8*4]
add r8, r8
mov qword [rsp + 0x70], rax
mov eax, dword [rbx]
shl eax, 2
movsxd rsi, dword [rbx + r8*8]
cdqe
movzx r13d, word [rdx + rax*2]
movzx eax, word [rdx]
movzx r12d, byte [rdx + rax*8 + 0x42]
xor edx, edx
movsxd rax, dword [rcx + 0x2e78]
mov ecx, dword [0x140067ec0]
xor r12b, byte [0x140067e78]
dec ecx
mov qword [rsp + 0x88], rax
mov eax, dword [0x140067e60]
add eax, ecx
mov dword [0x140067ec0], ecx
mov rcx, qword [0x140067ea0]
cdqe
mov qword [rsp + 0x80], rax
movzx eax, word [0x140067e90]
inc ax
mov word [0x140067e90], ax
movzx eax, ax
lea r8d, [rax + rax*2]
mov eax, 0x39b
div qword [rcx + r8*8]
inc word [rdi]
movzx eax, word [rdi]
mov qword [rsp + 0x78], rdx
movsxd r9, dword [rbx + rax*4]
mov eax, dword [rsi]
add eax, 0xa
cdqe
cmp r9d, dword [rbx + rax*4]
jg 0x1400132b5
lea r10, [r9*4]
lea r11, [r9 + r9]
nop dword [rax]
nop word [rax + rax]
inc word [rdi]
lea r11, [r11 + 2]
mov rdx, qword [0x140067e80]
lea r10, [r10 + 4]
dec rdx
inc r9d
mov qword [0x140067e80], rdx
movzx eax, word [rdi]
movzx ecx, word [rbx + rax*8 + 0x5c]
xor cx, word [rbx + rdx*4]
sub cx, word [r11 + rdi - 2]
mov word [r11 + rdi - 2], cx
dec dword [rbx]
mov eax, dword [rbx]
lea eax, [rax + rax*2]
add eax, 0x1f
movsxd r8, eax
mov eax, dword [rsi]
add eax, 0x21
movsxd rcx, eax
mov rax, qword [0x140067e88]
mov edx, dword [rax + rcx*4]
mov rax, qword [0x140067e98]
mov ecx, dword [rax + r8*8]
or ecx, edx
xor dword [r10 + rbx - 4], ecx
mov eax, dword [rsi]
add eax, 0xa
cdqe
cmp r9d, dword [rbx + rax*4]
jle 0x140013240
movsxd rcx, dword [rbx]
mov rax, qword [0x140067ea8]
mov r9d, dword [rax + rcx*8]
cmp r9d, dword [r14 + 0x1dfc]
jl 0x14001331a
movzx r10d, r12b
mov rcx, qword [0x140067e78]
mov eax, r9d
cdq
inc r9d
idiv r10d
sub dl, byte [rcx + rbp + 0xf]
mov byte [rcx + rbp + 0xf], dl
dec dword [rsi]
mov eax, dword [rsi]
lea eax, [rax*4]
movsxd rcx, eax
movzx eax, word [rdi + 0x9b6]
lea r8, [r15 + rcx*2]
movzx ecx, word [rdi]
cdq
idiv dword [rbx + rcx*4]
sub ax, word [r8]
mov word [r8], ax
cmp r9d, dword [r14 + 0x1dfc]
jge 0x1400132d0
inc dword [rsi]
movsxd rcx, dword [rsi]
mov r8, qword [0x140067e50]
mov rax, qword [0x140067ea0]
lea r9, [rax + rcx*8]
mov rax, qword [0x140067e78]
lea rcx, [rax + rax*2]
mov eax, dword [rbx + rcx*4]
mov rcx, qword [0x140067e68]
cdq
idiv dword [rcx + r8*4]
movsxd r8, eax
mov eax, dword [0x140067ec0]
lea ecx, [rax*2 + 0x23]
add ecx, eax
mov rax, qword [0x140067ea8]
movsxd rdx, ecx
sub r8, qword [rax + rdx*8]
sub r8, qword [r9]
mov qword [r9], r8
inc qword [0x140067e50]
mov rax, qword [0x140067e98]
movzx r12d, byte [0x140067ec0]
and r12b, 0x7c
sub r12b, 0x20
mov rcx, qword [rax + 0xeee8]
mov rax, qword [0x140067e78]
xor rcx, 0x16ff
inc rax
mov qword [0x140067e78], rax
mov r8d, dword [rbx + 0x73b4]
or r8d, 0x6ed
movzx eax, word [rdi + rax*2]
sub eax, dword [0x140067e58]
movsxd rdx, eax
call fcn.14000f350
mov ecx, dword [rsi]
mov r11d, 0xffff
lea edx, [rcx + rcx*2]
movsxd rcx, edx
mov word [rdi + rcx*2], ax
mov eax, 0x1cba
add word [rdi], r11w
cdq
idiv dword [0x140067e74]
movzx ecx, word [rdi]
add rcx, rcx
mov eax, edx
cdq
idiv dword [rbx + rcx*8]
mov dword [rbx + rcx*8], edx
dec dword [0x140067e74]
mov rax, qword [0x140067e78]
mov r10d, dword [0x140067e70]
movzx r8d, word [0x140067ed0]
inc r10d
mov dword [0x140067e70], r10d
add r8w, r11w
lea rcx, [rax + rax*2]
mov word [0x140067ed0], r8w
mov eax, dword [rsi]
lea r9, [rcx*2]
mov rcx, qword [rsp + 0x70]
lea eax, [rax + rax*2]
cdqe
movzx edx, byte [rax + rcx]
mov eax, 0x1136
add dx, ax
movzx eax, r8w
add eax, 0x12
movzx edx, dx
movzx ecx, word [r15 + rax*2]
imul edx, ecx
movzx eax, r10w
movzx ecx, dx
imul ecx, eax
movzx eax, cx
movzx ecx, word [r9 + r13]
imul ecx, eax
mov word [r9 + r13], cx
movzx r9d, word [0x140067ed0]
mov eax, dword [rsi]
lea ecx, [r9 + r9*2]
movzx r8d, byte [rcx + 0xfa4]
add r9w, r11w
lea eax, [rax + rax*2]
cdqe
movzx ecx, byte [rax + 0x19bc]
mov word [0x140067ed0], r9w
cmp r8b, cl
jae 0x1400134d5
mov eax, dword [rsi]
movzx edx, word [0x140067e90]
add eax, 0x20
movsxd rcx, eax
movzx eax, word [r13 + rcx*2]
cmp word [r13 + rdx*2], ax
jbe 0x1400135e8
mov eax, dword [rbx]
add rbx, 4
mov r8d, dword [rsi]
lea eax, [rax + rax*2]
add eax, 0x1d
cdqe
movzx edx, byte [rax + rbp]
lea eax, [r8*2 + 0xd]
add eax, r8d
movsxd rcx, eax
cmp dx, word [rdi + rcx*2]
jb 0x1400135e8
movzx eax, byte [0x140067e5d]
cmp eax, 0x687
jae 0x1400135e8
lea eax, [r8 + 7]
lea eax, [rax + rax*2]
cdqe
movzx eax, word [rdi + rax*2]
cdq
idiv dword [0x140067e64]
mov dword [0x140067e64], edx
dec dword [rsi]
mov eax, dword [rsi]
movzx edx, word [0x140067e74]
sub dx, word [rsp + 0x78]
lea eax, [rax + rax*2]
movsxd rcx, eax
mov word [rdi + rcx*2], dx
inc dword [rsi]
mov edx, dword [rsi]
mov rax, qword [0x140067e50]
lea rcx, [rax + rax*2]
lea r8, [r14 + rcx*4]
lea eax, [rdx*4]
movsxd rcx, eax
movzx eax, word [rdi]
add rax, rax
mov eax, dword [rsi + rax*8]
cdq
idiv dword [rsi + rcx*4]
mov rcx, qword [rsp + 0x80]
mov eax, edx
cdq
movzx ecx, byte [rcx]
idiv dword [rbx + rcx*8 + 0x60]
xor edx, edx
sub eax, dword [r8]
mov dword [r8], eax
mov eax, dword [rsi]
lea ecx, [rax*2 + 0x1d]
add ecx, eax
mov rax, qword [0x140067eb0]
movsxd r8, ecx
mov rcx, qword [0x140067ea0]
movzx eax, word [rax + 0x355e]
div qword [rcx + r8*8]
mov eax, dword [0x140067ec0]
lea eax, [rax + rax*2]
cdqe
mov byte [rax + rbp], dl
mov eax, dword [0x140067ec0]
sub eax, 2
mov dword [0x140067ec0], eax
cdqe
movzx ecx, word [rdi + rax*2]
movsxd rax, dword [rsi]
add cx, word [0x140067e80]
sub rsi, 4
mov word [rdi + rax*2], cx
inc dword [rbx]
xor edx, edx
mov eax, dword [rbx]
lea eax, [rax*4]
movsxd rcx, eax
movsxd rax, dword [rsi]
lea r8, [rdi + rcx*2]
movzx ecx, word [rdi + rcx*2]
movzx eax, byte [rax + 0x19bc]
div ecx
xor edx, edx
mov word [r8], ax
movzx eax, word [0x140067ed0]
lea rcx, [rax + rax*2]
mov eax, dword [0x140067ec0]
add eax, eax
lea r9, [r15 + rcx*2]
movsxd rcx, eax
movzx eax, r12b
movzx r8d, byte [rcx + 0xfa4]
movzx ecx, word [r9]
div r8d
mov eax, 0x1d3c
add dx, word [rsi + 0x339c]
add dx, ax
movzx eax, dx
imul ecx, eax
mov word [r9], cx
mov eax, dword [rbx]
shl eax, 2
cdqe
lea r8, [rax*2]
mov eax, dword [rsi]
add eax, 9
movsxd rcx, eax
mov eax, dword [r14 + rcx*4]
mov rcx, qword [rsp + 0x88]
xor eax, dword [rcx + 0x1ab4]
movzx ecx, word [r8 + r13]
cdq
idiv ecx
mov word [r8 + r13], ax
movsxd rax, dword [0x140067ec0]
movzx eax, byte [rax + rbp]
add rsp, 0x28
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret