Function at 0x18001e820
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
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, 0xa8
mov r11d, dword [0x18002f948]
mov r13, rdx
movsxd r15, dword [rsp + 0x118]
mov edx, 1
mov rax, qword [0x18002f928]
mov rbx, r8
mov rdi, qword [0x18002f8e0]
mov ebp, 0x19c5
mov dword [rsp + 0x50], eax
mov r14d, ebp
add rax, rdx
mov qword [rsp + 0x78], rbp
mov qword [0x18002f928], rax
mov rsi, r9
lea eax, [r11 + 3]
mov r9d, 0x1060
movsxd r10, eax
sub r11d, edx
movzx eax, byte [r10 + rcx]
mov r10, qword [0x18002f8b0]
and eax, r10d
mov dword [0x18002f948], r11d
mov dword [rsp + 0x60], eax
lea eax, [r15 + 0x28]
movsxd rcx, eax
mov rax, qword [rsp + 0x110]
mov r11, qword [rax + rcx*8]
mov eax, r15d
shl eax, 2
movsxd rcx, eax
movsxd rax, dword [rsp + 0x120]
and rax, rdi
mov qword [rsp + 0x58], r11
or di, word [0x18002f930]
movzx r12d, byte [rcx + r13]
mov rcx, qword [0x18002f8f0]
mov qword [rsp + 0x90], rax
mov rax, qword [0x18002f8c8]
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x80], rdi
movzx eax, word [rax + r15*8]
sub r15d, edx
mov word [rsp + 0x118], ax
mov eax, dword [0x18002f8c4]
sub eax, edx
mov dword [0x18002f8c4], eax
movsxd r8, eax
mov eax, 0x117a
cdq
idiv dword [rcx + r8*4]
xor edx, edx
movsxd r8, eax
mov eax, 0x68d
div qword [0x18002f8f8]
imul rcx, r10, 0xe61
mov word [r8 + r12*2], ax
sub r14, rcx
mov qword [rsp + 0x98], r8
cmp r11d, r9d
mov qword [rsp + 0x88], r14
mov r11d, 1
jne 0x18001eabf
mov r12d, dword [rsp + 0x50]
lea rcx, [r13 + 0x1060]
movsxd rax, r15d
mov r14d, r9d
mov qword [rsp + 0x68], rcx
lea r10, [rbx + rax*4]
movsxd rax, dword [0x18002f948]
xor edx, edx
movzx edi, word [0x18002f8d8]
add r10, 4
movsxd r8, dword [0x18002f910]
add r15d, r11d
sub r9d, dword [0x18002f8a4]
mov ebp, dword [rsi + rax*8]
movzx esi, byte [rcx]
movzx eax, word [rsp + 0x118]
imul edi, eax
mov rax, qword [0x18002f920]
mov qword [rsp + 0x50], r10
movzx ecx, byte [rax + r13]
mov rax, qword [0x18002f8e8]
div rcx
mov rax, qword [0x18002f8e0]
mov ecx, 1
mov rbx, rdx
sub r12w, cx
xor edx, edx
add r14w, cx
div r8
mov eax, dword [rsp + 0x60]
sub r8d, r11d
sub eax, ecx
mov dword [0x18002f910], r8d
movzx r11d, word [r10]
movzx r8d, di
movsxd r10, r9d
mov ecx, ebp
movsxd r9, dword [rsp + 0x58]
mov qword [rsp + 0x48], r10
mov dword [rsp + 0x60], eax
cdqe
or rax, 0x1c2
mov qword [rsp + 0x40], rax
mov word [rsp + 0x38], r11w
mov qword [rsp + 0x30], rdx
lea rdx, [rsi + 0xca7]
mov word [rsp + 0x28], r12w
mov qword [rsp + 0x20], r9
mov r9, rbx
call fcn.180005120
mov rcx, qword [rsp + 0x68]
mov r12d, eax
mov rax, qword [rsp + 0x58]
mov r11d, 1
mov r10, qword [rsp + 0x50]
add eax, r11d
mov rsi, qword [rsp + 0x108]
add rcx, r11
movzx r9d, r14w
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x68], rcx
cmp eax, r9d
je 0x18001e996
mov dword [rsp + 0x118], r14d
mov r9d, dword [rsp + 0x118]
mov r14, qword [rsp + 0x88]
mov dword [rsp + 0x50], r12d
mov r12, qword [rsp + 0x70]
movsxd rbp, dword [0x18002f910]
cmp rbp, qword [0x18002f8e8]
mov rsi, rbp
mov rbx, qword [rsp + 0x138]
movsxd rdi, dword [rsp + 0x128]
je 0x18001ecbe
mov rcx, qword [rsp + 0x100]
mov rdx, rdi
movsxd rax, r15d
mov r13, 0xffffffffffffff88
mov qword [rsp + 0x68], rax
sub r13, rbx
movzx eax, word [rsp + 0x130]
sub r15d, eax
mov qword [rsp + 0x60], rdx
movzx eax, word [rsp + 0x80]
lea rdi, [rcx + rbp*4]
imul r15d, eax
lea rax, [r12 + r12*2]
mov qword [rsp + 0x80], rax
movzx eax, r9w
mov dword [rsp + 0x118], eax
lea rax, [r14 + r14*2]
mov qword [rsp + 0x58], rax
lea r14, [rbx + 0x78]
mov eax, 0x6b6
lea r14, [r14 + rbp*8]
sub rax, rcx
mov r12, rax
mov eax, 0xb3a
mov r8d, 0x1ef
add word [0x18002f938], ax
mov r9d, 0xa53
mov rax, qword [0x18002f8f8]
lea rcx, [rax + rax*2]
movzx eax, word [0x18002f914]
or ax, r8w
or word [rcx + rcx + 0xd77], ax
lea rcx, [r14 + r13]
mov rax, qword [0x18002f8c8]
mov dword [0x18002f8d8], r15d
mov r8, qword [rcx + rax]
movsxd rax, dword [0x18002f910]
and r8, rdx
movsxd rdx, dword [rsp + 0x120]
mov rcx, rax
xor rcx, rdx
add eax, r11d
mov dword [0x18002f910], eax
mov eax, dword [0x18002f948]
cdq
mov qword [rsp + 0x20], rcx
idiv dword [0x18002f914]
mov rcx, rsi
mov edx, eax
call fcn.18001d688
mov eax, dword [0x18002f8c4]
mov r11d, 1
add ebp, r11d
lea eax, [rax + rax*2]
add eax, 4
cdqe
mov rcx, qword [rbx + rax*8]
movzx eax, word [rsp + 0x130]
and rcx, rax
and qword [0x18002f928], rcx
mov eax, dword [rdi]
sub eax, dword [r12 + rdi]
mov rcx, qword [rsp + 0x110]
mov dword [r12 + rdi], eax
mov rax, qword [rsp + 0x68]
mov eax, dword [rcx + rax*8 + 0xe0]
mov rcx, qword [rsp + 0x80]
mov dword [rcx*4 + 0x722], eax
mov rdx, qword [0x18002f920]
mov rcx, qword [0x18002f918]
add rdx, rdx
mov eax, dword [rsp + 0x118]
and eax, dword [0x18002f8a0]
imul eax, dword [rdi]
lea rdi, [rdi + 4]
cdqe
sub rax, qword [rcx + rdx*8]
mov qword [rcx + rdx*8], rax
add qword [0x18002f920], r11
mov rax, qword [r14 - 0x50]
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
xor rax, qword [rbx + rcx*8]
xor rax, 0x1235
mov qword [rbx + rcx*8], rax
or qword [r14], rsi
lea r14, [r14 + 8]
movsxd rsi, ebp
cmp rsi, qword [0x18002f8e8]
jne 0x18001eb56
mov r14, qword [rsp + 0x88]
mov edi, dword [rsp + 0x128]
mov r13, qword [rsp + 0xf8]
mov r12, qword [rsp + 0x70]
mov eax, dword [rsp + 0x50]
inc eax
movsxd rcx, eax
movzx eax, word [0x18002f940]
mov r8d, dword [rbx + rcx*8]
cmp r8d, eax
jge 0x18001ed4c
movsxd r12, dword [rsp + 0x120]
lea r9d, [r8 + 0x18]
mov rax, qword [0x18002f8b0]
movsxd rcx, r9d
add r9d, r11d
xor qword [rbx + rcx*8], rax
mov rax, qword [0x18002f918]
mov rcx, qword [0x18002f920]
mov edx, dword [rax + rcx*8 + 0x40]
mov rax, qword [0x18002f8c8]
and edx, dword [rax + r12*8 + 0x20]
xor dword [r14*4 + 0x6b6], edx
sub r14, r11
xor edx, edx
mov byte [r14 + r13], r8b
add r8d, r11d
imul rax, qword [0x18002f8e8], 0x1bc8
div r14
mov qword [0x18002f8b0], rax
movzx eax, word [0x18002f940]
cmp r8d, eax
jl 0x18001ece3
mov r12, qword [rsp + 0x70]
mov rax, qword [0x18002f908]
movsxd r9, edi
movzx ecx, byte [r9 + r13]
cmp dword [rax + r14*4], ecx
jge 0x18001ed9d
movsxd r8, dword [0x18002f948]
mov qword [rsp + 0x78], 0x19c4
lea eax, [r8 + r8*2]
movsxd rcx, eax
mov rax, qword [0x18002f8a8]
movsxd rdx, dword [rax + 0x13578]
mov rax, qword [rsp + 0x108]
cmp rdx, qword [rax + rcx*8]
ja 0x18001ed9d
cmp r8, qword [0x18002f8f8]
jne 0x18001edab
mov eax, 0x2746
xor word [r12 + r12 + 0xd77], ax
movzx eax, word [0x18002f8dc]
mov r8d, r14d
cmp r14d, eax
jne 0x18001ef14
mov rax, qword [rsp + 0x90]
lea ebp, [r14 + r14*2]
mov r15d, r14d
shl r15d, 2
add rax, 0xa
lea r9, [rax + r9*2]
mov qword [rsp + 0x108], r9
mov rdx, qword [0x18002f920]
movsxd rcx, dword [0x18002f910]
add rdx, r11
mov rax, qword [0x18002f8b0]
or rcx, 0xe6a
sub rax, r14
mov qword [0x18002f920], rdx
mov r14, rcx
mov rcx, qword [rsp + 0x100]
and r14, rax
movsxd rax, r15d
movzx ecx, word [rcx + rax*4]
mov rax, qword [rsp + 0x98]
xor cx, r8w
mov word [rax + rdx*2], cx
mov rcx, qword [0x18002f8c8]
movsxd rax, ebp
movsxd rsi, dword [rcx + rax*8]
lea eax, [r8 + 0x24]
movsxd r12, eax
cmp rsi, qword [rbx + r12*8]
jbe 0x18001eece
movsxd rax, edi
lea r10, [rsi + r13]
mov r13, qword [rsp + 0x78]
lea r11, [rsi*4 + 0x6b6]
mov r9, rax
movsxd rdi, r8d
movzx eax, byte [r10 + 0x16]
xor edx, edx
div qword [rcx + rdi*8]
or r13, r9
inc esi
mov byte [r10], dl
xor edx, edx
dec dword [0x18002f914]
inc r10
mov rax, qword [rbx + 0xc5c8]
movzx ecx, word [0x18002f93c]
div r13
and eax, ecx
add dword [r11], eax
lea r11, [r11 + 4]
movsxd rax, esi
cmp rax, qword [rbx + r12*8]
jbe 0x18001eeb2
mov rcx, qword [0x18002f8c8]
jmp 0x18001ee68
mov edi, dword [rsp + 0x128]
mov r9, qword [rsp + 0x108]
mov qword [rsp + 0x78], r13
mov r13, qword [rsp + 0xf8]
movzx eax, word [r9]
mov r11d, 1
and rax, qword [rbx + 0xecf0]
sub edi, r11d
sub r9, 2
mov qword [rbx + r14*8 + 8], rax
movzx eax, word [0x18002f8dc]
add r8d, r11d
add r15d, 4
mov dword [rsp + 0x128], edi
add ebp, 3
mov qword [rsp + 0x108], r9
cmp r8d, eax
je 0x18001ede1
mov rax, qword [rsp + 0xf0]
movzx eax, byte [rax + 0xf7d]
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret