Function at 0x140011700
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov byte [rsp + 0x18], r8b
mov word [rsp + 8], cx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xf8
mov r12, qword [rsp + 0x170]
mov r15, rdx
mov edi, dword [0x14015625c]
mov r10d, 1
mov rdx, qword [rsp + 0x160]
add edi, r10d
movsxd r11, dword [0x1401561c4]
mov bpl, r8b
movzx eax, word [r12 + 0x2f86]
mov rbx, qword [rsp + 0x168]
movzx r9d, byte [0x1401561da]
mov r14, rbx
mov qword [rsp + 0x90], rax
mov dword [0x14015625c], edi
movzx eax, word [r12 + 0x13fe]
mov qword [rsp + 0xa8], rax
mov eax, 0x1ddf
mov qword [rsp + 0xa0], rdx
xor edx, edx
movzx ecx, cx
div ecx
mov rcx, qword [0x140156240]
movsxd r13, eax
mov al, byte [r11 + r15]
sub r11d, r10d
mov r10, qword [0x1401561b8]
mov byte [rsp + 0x148], al
movzx eax, word [0x140156258]
cdq
mov dword [0x1401561c4], r11d
mov qword [rsp + 0xb0], rbx
mov rbx, qword [rbx]
movsxd r8, edi
xor edi, 0x37
mov qword [rsp + 0x68], r8
mov qword [rsp + 0xd8], r8
idiv dword [rcx + rbx*4]
movzx ecx, word [r10 + r9*2]
xor edx, edx
cdqe
mov qword [rsp + 0xd0], rax
mov eax, 0x25b
div ecx
xor edx, edx
movsxd rsi, r11d
mov dword [rsp + 0x64], eax
mov ecx, 0xe26
mov eax, dword [0x140156200]
add eax, 0xffffedca
mov qword [rsp + 0xc0], r13
cdqe
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x178]
mov dword [rsp + 0x80], edi
mov qword [rsp + 0xc8], rsi
mov rax, qword [rax + r9*8]
div qword [0x140156220]
xor edx, edx
mov r8, rax
mov qword [rsp + 0xe0], rax
movzx eax, word [0x1401561b0]
xor ax, cx
mov ecx, r9d
mov word [rsp + 0x60], ax
add ecx, ecx
mov r9, r14
movzx eax, word [r10 + rcx*2]
div qword [0x140156218]
mov rcx, qword [0x140156250]
mov r10, qword [rsp + 0x68]
mov qword [rsp + 0xb8], rax
movzx eax, word [r12 + rbx*2]
movzx edx, word [rcx + rbx*2]
mov qword [rsp + 0x98], rax
mov al, byte [r14 + rbx*8]
mov byte [rsp + 0x170], al
mov rax, qword [rsp + 0x88]
cmp edx, dword [rax + r10*4]
jg 0x140011a5d
mov edi, edx
mov rbx, r13
neg rbx
mov r14d, 0xd9
lea rax, [rdi + rdi*2]
lea r10, [rax*4]
add r10, r13
lea r9, [r8 + rdi*2]
mov qword [rsp + 0x70], r10
sub r14, r8
mov qword [rsp + 0x78], r9
mov r13, qword [0x140156240]
lea rax, [rbx + r10]
movzx r8d, word [0x14015624c]
mov r11, qword [rsp + 0x158]
mov eax, dword [rax + r13]
imul eax, edi
movzx ecx, word [r11 + r8*2]
cdq
idiv ecx
mov word [r11 + r8*2], ax
mov rax, qword [rsp + 0x90]
mov rax, qword [rax]
movzx ecx, byte [rax + r15]
mov eax, 0x5a3d2873
mul ecx
shr edx, 0xa
imul eax, edx, 0xb59
sub ecx, eax
sub ecx, dword [r10]
mov dword [r10], ecx
movsxd rax, dword [rsi]
movzx edx, word [r14 + r9]
imul ecx, dword [rsi + rax*4], 0x1e47
movsxd rcx, ecx
call fcn.140010b94
movzx ecx, word [0x140156258]
mov ebp, eax
movzx eax, word [0x14015622c]
xor edx, edx
movzx r8d, word [0x14015624c]
mov r13d, 1
div ecx
mov eax, edi
or byte [r8 + r15], dl
cdq
movzx r8d, word [0x1401561ec]
movsxd rcx, dword [0x14015625c]
add word [0x14015622c], r13w
idiv r8d
call fcn.140010b94
movzx edx, word [0x1401561d8]
mov r8, qword [rsp + 0x68]
mov r9, qword [rsp + 0xd0]
mov r10, qword [rsp + 0x70]
mov word [0x14015622c], ax
add r10, 0xc
movsxd rcx, edi
mov eax, 0xffff
add dx, ax
mov qword [rsp + 0x70], r10
mov rax, qword [rsp + 0x160]
add edi, r13d
mov word [0x1401561d8], dx
mov eax, dword [rax]
add eax, 6
cdqe
movzx eax, word [r12 + rax*2]
or rax, r8
sub r8, r13
sub rax, rcx
mov qword [rsp + 0x68], r8
movzx ecx, dx
xor edx, edx
lea ecx, [rcx + rcx*2]
div qword [r9 + rcx*8]
mov r9, qword [rsp + 0x78]
xor edx, edx
movzx ecx, word [r9]
div rcx
mov word [r9], ax
add r9, 2
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x78], r9
cmp edi, dword [rax + r8*4]
jle 0x1400118f1
mov r14, qword [rsp + 0xb0]
mov r10, r8
mov edi, dword [rsp + 0x80]
mov r9, r14
mov r13, qword [rsp + 0xc0]
mov rcx, qword [r9]
mov edx, 0x2f7
mov rax, qword [0x1401561f0]
movzx r8d, word [0x14015624c]
movzx r11d, byte [rsp + 0x150]
mov rbx, qword [rsp + 0x178]
sub edx, dword [rax + rcx*8]
mov rcx, qword [rsp + 0x160]
sub edx, r11d
mov rax, qword [rsp + 0x98]
mov r11d, 0xffff
mov qword [rsp + 0x20], 0x14aa
add dword [rax + r8*4], edx
movzx eax, word [0x1401561d8]
xor dword [rsi + rax*8], ecx
mov rax, qword [r9]
add r9, 8
mov qword [rsp + 0x168], r9
mov r9, qword [rsp + 0x90]
movzx ecx, word [rbx + rax*8]
mov rax, qword [0x140156250]
mov r9, qword [r9 + 0x2c00]
movzx edx, word [rax + 0x360a]
movzx eax, word [rsp + 0x140]
mov r8d, eax
and r9, rax
add ax, r11w
imul rdx, rdx, 0x218
imul r8, r10
mov word [rsp + 0x140], ax
call fcn.1400121ec
mov r10, qword [rsp + 0x88]
mov r9d, 1
mov r8, qword [rsp + 0x168]
movsxd rcx, eax
movzx eax, word [0x1401561d8]
add ax, r9w
mov qword [0x1401561d0], rcx
mov word [0x1401561d8], ax
movzx eax, ax
lea ecx, [rax + rax*2]
mov eax, 0x5ee
cdq
idiv dword [r10 + rcx*4]
mov rdx, qword [0x140156230]
movzx ecx, ax
sub rdx, r9
movzx eax, word [0x140156258]
imul eax, ecx
mov cl, byte [0x1401561da]
mov qword [0x140156230], rdx
add cl, r9b
mov byte [0x1401561da], cl
mov word [0x140156258], ax
movzx eax, cl
mov rcx, qword [r8]
imul rax, rdx
xor edx, edx
div qword [rbx - 0x86e0]
mov rax, qword [rsp + 0xa8]
mov dword [r10 + rcx*4], edx
movzx ecx, bpl
movsxd r9, dword [rax - 0x4370]
movsxd rax, dword [rsi]
mov eax, dword [r10 + rax*4]
cdq
idiv ecx
mov rcx, qword [r8]
mov rax, qword [rsp + 0x98]
movsxd rbx, edx
mov rdx, qword [rsp + 0x90]
movsxd r11, dword [rax + rcx*4 + 0xc]
mov rax, qword [0x140156238]
movzx r10d, byte [rax + r15]
mov rax, qword [0x140156220]
sub r10, qword [r8 + rax*8]
lea rax, [rcx + rcx*2]
movsxd rcx, dword [r13 + rax*4]
movzx eax, byte [0x1401561da]
movzx r8d, byte [rsp + 0x150]
add rcx, qword [rdx + rax*8]
movzx eax, word [rsp + 0x64]
or r8, qword [rsp + 0x68]
movzx edx, byte [rsp + 0x170]
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x64]
mov word [rsp + 0x48], ax
mov qword [rsp + 0x40], rcx
mov ecx, 0x6a0
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x30], r11
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], 0x18ab
call fcn.140012050
mov rcx, qword [r14]
mov r11d, 1
movzx r9d, word [rsp + 0x64]
mov dword [rsp + 0x168], r9d
lea rdx, [rcx + rcx*2]
mov rcx, qword [rsp + 0x160]
mov word [r12 + rdx*2], ax
mov rax, qword [0x140156220]
sub rax, r11
mov qword [0x140156220], rax
cmp r9d, dword [rcx + rax*4]
jg 0x140011f31
movzx eax, byte [rsp + 0xb8]
xor edx, edx
movzx r8d, byte [rsp + 0x150]
div r8d
movsxd rax, edx
mov qword [rsp + 0xb8], rax
lea eax, [rdi + 0x555]
cdqe
mov qword [rsp + 0xb0], rax
movsxd rax, edi
mov qword [rsp + 0x78], rax
movzx eax, byte [rsp + 0x170]
add rax, 0x1e2d
mov qword [rsp + 0x170], rax
mov ecx, dword [0x140156248]
add bpl, r11b
movzx edx, word [rsp + 0x60]
sub ecx, r11d
mov r10, qword [rsp + 0x98]
mov dword [0x140156248], ecx
movsxd rax, ecx
movsxd rsi, r9d
movsxd rdi, dword [r10 + rdx*4 + 0x14]
add dx, r11w
xor rdi, rax
mov word [rsp + 0x60], dx
mov rax, qword [r14]
movzx edx, byte [0x1401561da]
movzx ecx, bpl
movzx ebx, word [r12 + rax*2]
movzx eax, word [0x14015624c]
mov r8d, dword [r13 + rcx*4]
mov rcx, qword [rsp + 0x158]
xor r8d, edx
movzx r11d, word [rcx + rsi*2]
mov rcx, qword [rsp + 0xd8]
sub r11, qword [rcx + rdx*8]
mov ecx, 0xffff
add ax, cx
mov edx, ebx
mov word [0x14015624c], ax
mov rcx, rdi
movzx eax, ax
movzx r10d, word [r10 + rax*4 + 0x20]
mov rax, qword [r14]
add r10w, r9w
add r14, 8
movzx r9d, byte [r15 + rax*2]
movzx eax, word [r12 + 0x45a]
sub r9d, eax
movsxd rax, r9d
mov r9d, 0x257
mov qword [rsp + 0x30], rax
mov word [rsp + 0x28], r10w
mov qword [rsp + 0x20], r11
call fcn.140010fb0
mov rcx, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0x178]
movzx r13d, byte [rsp + 0x150]
mov rbx, qword [rsp + 0xe0]
mov dword [0x1401561c0], eax
movsxd rax, dword [rcx]
add rcx, 4
mov qword [rsp + 0xa0], rcx
movzx r8d, word [rbx + rsi*2]
add r8, qword [0x140156230]
mov r11, qword [rdi + rax*8]
mov eax, dword [0x14015625c]
add eax, eax
mov qword [rsp + 0x50], r13
movsxd rcx, eax
movzx eax, word [r12 + rcx*2]
mov ecx, dword [rsp + 0x168]
sub ecx, eax
mov rax, qword [rsp + 0xa8]
movsxd r9, ecx
mov rcx, qword [rsp + 0x160]
inc rcx
movsxd r10, dword [rax + 0x30ac]
mov rax, qword [r14]
mov word [rsp + 0x48], cx
mov qword [rsp + 0x160], rcx
lea rcx, [r11 - 0x10dc]
lea rdx, [rax + rax*2]
mov rax, qword [rsp + 0xc8]
movsxd rax, dword [rax + rdx*4]
mov rdx, qword [rsp + 0xb0]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rsi
call fcn.140012050
movsxd rcx, eax
mov r9, qword [rsp + 0x170]
mov qword [r14 - 0x86e0], rcx
mov rax, qword [0x1401561c8]
movzx r8d, word [0x1401561e8]
and r8, qword [rsp + 0x78]
mov qword [0x1401561d0], rax
movzx eax, word [rbx - 0x4370]
movzx ecx, word [r14 + 0xc918]
or cx, word [rsp + 0x140]
imul edx, eax, 0xffffef24
movzx eax, word [rsp + 0x64]
mov qword [rsp + 0x20], rax
movsxd rdx, edx
call fcn.1400121ec
mov r9d, dword [rsp + 0x168]
mov r11d, 1
mov rdx, qword [rsp + 0xa0]
add r9d, r11d
mov r13, qword [rsp + 0xc0]
mov word [r12 + rsi*2], ax
mov rax, qword [0x140156220]
sub rax, r11
mov dword [rsp + 0x168], r9d
mov qword [0x140156220], rax
cmp r9d, dword [rdx + rax*4]
jle 0x140011ce4
mov rsi, qword [rsp + 0xc8]
jmp 0x140011f39
mov rdi, qword [rsp + 0x178]
mov r9, qword [r14]
lea rax, [r15 + r9*2]
movzx ecx, byte [r9 + rax]
cmp ecx, 0x462
jbe 0x140011f75
mov eax, dword [rsi]
lea ecx, [rax + rax*2]
mov rax, qword [0x140156250]
movsxd rdx, ecx
movzx ecx, byte [0x1401561da]
movzx r8d, word [rax + rdx*2]
mov rax, qword [0x140156240]
cmp dword [rax + rcx*4], r8d
je 0x140011f92
mov rax, qword [0x1401561e0]
lea rdx, [r9 + r9*2]
movzx ecx, byte [r15 + 0xe11]
cmp word [rax + rdx*2], cx
jb 0x140012035
inc r9
mov qword [r14], r9
movzx eax, byte [r9 + 0x490]
cmp eax, dword [r13 + r9*4]
jge 0x140012035
mov rax, qword [rsp + 0x158]
add bpl, r11b
movzx ecx, byte [rsp + 0x150]
movzx edx, word [rax + r9*2]
add rdx, rcx
movzx eax, bpl
mov rcx, qword [rsp + 0xd0]
mov r8, qword [rcx + rax*8]
mov ecx, 0x49f
movsxd rax, dword [rsi]
movzx r9d, word [r12 + rax*2]
movzx eax, byte [rsp + 0x148]
sub dword [0x1401561c4], r11d
add rax, 0xb36
mov qword [rsp + 0x20], rax
call fcn.1400121ec
movsxd rcx, dword [0x1401561c4]
mov rdx, qword [rsp + 0xa8]
mov dword [rdx + rcx*4], eax
add qword [0x1401561d0], 0xeb
mov rcx, qword [r14]
mov edx, dword [rcx*4 + 0x105c]
and edx, 0xccb
mov dword [0x140156228], edx
mov eax, dword [rdi - 0x194a0]
add rsp, 0xf8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret