Function at 0x180002780
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa8
mov r13, qword [rsp + 0x110]
mov r11, rcx
movsxd rbx, dword [0x18006537c]
mov edi, dword [0x180065378]
movsxd rsi, dword [0x180065324]
dec edi
movsxd r14, r8d
movzx r8d, word [0x180065348]
lea eax, [rbx*2 + 2]
movsxd r10, eax
inc r8w
movzx r15d, word [rcx + r14*8]
movzx r12d, word [r9 + r14*2]
movsxd rax, dword [r13 + r10*4]
movzx r10d, byte [0x180065322]
mov qword [rsp + 0x50], rax
movzx ecx, r8w
shl ecx, 2
movsxd rax, dword [rdx + r10*4]
add r10, r10
or rax, 0xa39
mov dword [0x180065378], edi
mov qword [rsp + 0x70], rax
xor edx, edx
movsxd rax, dword [0x180065370]
dec edi
or rsi, rax
mov eax, 0x1d84
and r15w, ax
mov qword [rsp + 0x78], rsi
movsxd rax, dword [r13 + r10*8]
mov qword [rsp + 0x58], rax
mov eax, 0x156d
div qword [0x180065328]
mov word [0x180065348], r8w
mov qword [rsp + 0x108], rax
mov rax, r14
sub rax, qword [r11 + rcx*8]
mov r11, qword [0x180065340]
mov qword [rsp + 0x68], rax
movsxd rax, dword [r13 + 0x46d0]
mov r13, qword [0x180065368]
mov rbp, qword [r11 + rbx*8]
mov qword [rsp + 0x90], rax
or rbp, 0x14f8
mov eax, dword [0x180065338]
inc eax
movzx r10d, r8w
movzx r8d, word [0x18006533c]
mov dword [0x180065338], eax
inc r8w
cdqe
mov qword [rsp + 0x88], rax
movzx eax, r8w
mov word [0x18006533c], r8w
mov qword [rsp + 0x80], r10
movzx ecx, word [r9 + rax*2]
movzx eax, r13b
shl al, 4
not al
mov dword [0x180065378], edi
movzx ebx, al
lea eax, [rdi*4]
mov qword [rsp + 0x60], rcx
movsxd rcx, eax
mov qword [rsp + 0xf0], rbx
mov eax, dword [rbx*8 + 0x179d]
cmp dword [r10 + rcx*4], eax
jl 0x180002976
mov eax, dword [rsp + 0x100]
lea eax, [rax*4]
movsxd rcx, eax
mov rax, qword [r11 + rcx*8]
xor rax, 0x1993
sub rax, 2
imul rax, rbp
dec rbp
mov qword [0x180065360], rax
lea eax, [rdi*2 + 7]
add eax, edi
mov edi, 0xffff
movsxd rcx, eax
mov rax, qword [0x180065350]
lea rdx, [rax + rcx*4]
movzx eax, r15w
mov ecx, dword [rsi + rax*4 + 0xc]
sub ecx, ebp
xor ecx, dword [0x180065390]
add ecx, dword [r10 + 0x495c]
xor dword [rdx], ecx
mov r11, qword [0x180065340]
add r15w, di
movzx r8d, word [0x18006533c]
jmp 0x18000297b
mov edi, 0xffff
mov r10d, dword [rsp + 0x100]
xor edx, edx
movsxd rcx, dword [rsp + 0x108]
inc byte [rsp + 0xf0]
lea eax, [r10 + 5]
cdqe
mov rax, qword [r11 + rax*8]
div rcx
movzx ecx, byte [0x180065322]
add ax, word [r11 + rcx*8 + 8]
mov rcx, qword [rsp + 0x68]
xor ax, r8w
or word [r9 + r14*2], ax
movsxd rax, dword [0x18006537c]
movsxd rcx, dword [rcx + rax*4]
lea eax, [r10 + 1]
mov qword [0x180065328], rcx
movsxd rcx, eax
mov rax, qword [rsp + 0xf8]
movsxd rsi, dword [rax + rcx*4]
mov rcx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x110]
movsxd rax, dword [rax + 0x75c4]
or rsi, rax
movzx eax, byte [0x180065321]
mov edx, eax
add al, 0xff
mov byte [0x180065321], al
or rdx, 0x86f
mov rax, qword [rsp + 0x50]
movsxd rax, dword [rax]
movzx r8d, word [rcx + rax*2]
mov rcx, rsi
mov rax, qword [0x180065330]
movsxd r9, dword [rax + rbx*4]
movzx eax, word [0x18006533c]
or r9, 0x1316
add ax, di
mov word [0x18006533c], ax
movzx ebx, byte [rbx*4 + 0x1d]
movzx eax, ax
lea eax, [rax*4 + 3]
mov rdi, qword [r14 + rax*8]
movzx eax, byte [0x180065320]
inc al
movzx r11d, al
mov byte [0x180065320], al
imul eax, r10d, 0x14d4
movsxd r10, eax
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x30], 0x57d
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rdi
call fcn.180003190
movzx ecx, byte [0x180065320]
mov r11, qword [rsp + 0x60]
mov word [r13 + rcx*2], ax
movzx eax, byte [0x180065321]
mov rcx, qword [r11 + r14*8]
or rcx, 0xefe
lea rdx, [r11 + rax*8]
movzx eax, byte [0x180065322]
add rcx, rax
add qword [rdx], rcx
mov eax, dword [0x18006537c]
and byte [0x180065320], 0x12
lea eax, [rax*4 + 6]
movsxd rcx, eax
mov rax, qword [rsp + 0xf8]
movsxd rbx, dword [rax + rcx*4]
mov eax, dword [rsp + 0x100]
mov r10, rbx
lea eax, [rax + rax*2]
movsxd rcx, eax
mov rax, qword [rsp + 0x58]
cmp rbx, qword [rax + rcx*8]
jb 0x180002c95
movzx eax, byte [rsp + 0xf0]
mov ecx, 0x6af1
mov rdi, qword [rsp + 0x78]
movzx esi, r15w
lea r15, [rax*2]
mov eax, 0x1e45
cdq
idiv dword [rsp + 0x108]
movsxd rax, edx
mov qword [rsp + 0xf8], rax
nop word [rax + rax]
movzx ecx, word [rcx]
lea rdx, [r14 + 1]
mov rax, qword [rsp + 0x50]
lea r8, [r14]
mov r14, rdx
mov qword [rsp + 0x20], r10
mov r9d, 0xffff
sub cx, word [rax + rdx*4]
movzx eax, r12w
add r12w, r9w
mov word [r13 + rax*2], cx
mov rax, r10
mov rcx, qword [rsp + 0x80]
or rax, 0x1e5f
add qword [0x180065368], rax
mov eax, dword [0x180065324]
add eax, 0xfffffb9c
add dword [rcx + rdx*4 + 0x1c], eax
inc dword [0x180065324]
movsxd rcx, dword [0x180065378]
mov rax, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x90]
movzx eax, word [rax + r8*8 + 0x28]
mov word [rdx + rcx*2], ax
mov rax, qword [rsp + 0x110]
mov dword [rax + r8*4], esi
movzx eax, word [0x180065374]
mov rcx, qword [0x180065380]
add ax, r9w
mov word [0x180065374], ax
dec rcx
movzx r9d, ax
mov rax, r14
add rax, rax
mov qword [0x180065380], rcx
mov edx, r9d
xor rdx, 0x1b2c
mov r8, qword [r11 + rax*8 + 8]
call fcn.18000b630
mov dword [0x18006534c], eax
xor edx, edx
mov rax, qword [0x180065360]
mov rcx, rax
inc rax
mov qword [0x180065360], rax
movsxd rax, dword [0x180065338]
movzx r8d, word [r15 + r13]
movsxd r10, dword [rdi + r14*4]
xor r8, 0x54a
div rbp
mov qword [rsp + 0x20], r8
mov rdx, r10
mov r8, qword [rsp + 0xf8]
mov r9, rax
call fcn.18000b630
mov rdx, qword [rsp + 0x58]
lea rcx, [r14 + r14*2]
mov r11, qword [rsp + 0x60]
inc ebx
movsxd r10, ebx
mov byte [0x180065322], al
cmp r10, qword [rdx + rcx*8]
mov ecx, 0x6af1
jae 0x180002b50
movzx eax, al
jmp 0x180002c9c
movzx eax, byte [0x180065322]
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret