Function at 0x180010790
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x38
mov rsi, qword [rsp + 0xc8]
mov r15, rcx
mov r10, qword [0x180025008]
mov r14, r8
mov rdi, qword [0x180024ff8]
mov r11d, dword [0x180024fec]
mov rax, qword [rsi]
dec r11d
movzx ebx, byte [0x180024fce]
movsxd r8, r11d
sub rbx, qword [r10 + rax*8 + 0x38]
mov rax, qword [rdi + 0xc0f0]
mov qword [rsp + 0x90], rax
mov rax, qword [0x180025070]
mov dword [0x180024fec], r11d
mov r12, qword [rax + r8*8]
mov rax, qword [0x180025078]
add r12, rax
dec rax
mov qword [0x180025078], rax
lea eax, [r11 + r11]
movsxd rcx, eax
movsxd rax, dword [0x18002501c]
mov r8, rax
mov qword [rsp + 0x80], rax
dec eax
mov r13, qword [r10 + rcx*8]
movzx ecx, byte [0x180024fcf]
mov dword [0x18002501c], eax
add rcx, rcx
imul eax, r11d, 0x1a3d
mov r11d, 0x1c12
mov dword [rsp + 0xc8], r11d
mov rbp, qword [rsi + rcx*8 + 0x18]
movsxd r10, eax
mov rax, qword [rsi]
add rax, rax
mov qword [rsp + 0x20], r10
xor rbp, qword [rdi + rax*8]
movsxd rax, dword [r12 + 0x7044]
cmp rax, qword [rsi + 0x38250]
ja 0x180010b66
movsxd rdx, dword [0x180025058]
mov rax, qword [0x180025040]
movzx ecx, word [r10 + 0x382a]
cmp rcx, qword [rax + rdx*8]
je 0x180010b66
movzx ecx, word [r9 + 0x704a]
xor edx, edx
mov rax, qword [r8 + 0xe090]
xor r11d, r11d
mov r9, qword [rsp + 0xb0]
xor rax, 0x1aac
mov r10, qword [rsp + 0x88]
div rcx
movzx ecx, word [0x180024ff0]
mov rdx, qword [rsp + 0x90]
mov dword [rsp + 0xc8], r11d
and al, byte [r15 + rcx*2]
mov rcx, qword [r14]
mov byte [rdx + rcx], al
movsxd rax, dword [0x180025004]
movzx ecx, word [r9 + rax*2]
xor rcx, qword [r14 + 0xe090]
mov rax, qword [rsp + 0xa8]
mov qword [rax + 0xe090], rcx
movsxd rax, dword [0x180024fec]
movzx ecx, word [r9 + 2]
mov eax, dword [r10 + rax*4]
cdq
idiv ecx
movsxd rax, edx
imul rax, qword [0x18]
mov qword [0x18], rax
mov eax, dword [0x180024fec]
dec eax
mov dword [0x180024fec], eax
add eax, eax
movsxd rcx, eax
cmp dword [r12 + rcx*4], 0x6ca
jne 0x180010afe
mov eax, dword [rbx]
mov r11d, 1
add rbx, 4
mov dword [rsp + 0xc8], r11d
lea eax, [rax*2 + 2]
movsxd rcx, eax
mov eax, dword [rbx]
lea rdx, [r14 + rcx*8]
add eax, 0x6ca
movsxd rcx, eax
mov rax, qword [rdx]
imul rax, rcx
mov qword [rdx], rax
movzx ecx, word [r9 + 2]
mov rax, qword [0x180025080]
movzx eax, word [rax + 2]
or eax, dword [r13 + 0x67bc]
dec eax
xor eax, 0x1c8f
cdq
idiv ecx
mov word [r9 + 2], dx
mov rax, qword [rsi]
add rsi, 8
mov rdx, qword [rsp + 0x98]
movzx ecx, word [r13 + rax*4 + 0x1c]
and cx, word [0xdbe0]
add word [rdx + rax*2], cx
mov eax, dword [0x180025058]
inc eax
mov dword [0x180025058], eax
movsxd rcx, eax
movzx eax, byte [0x7a]
sub rax, qword [rcx*8 + 0x18]
mov qword [rcx*8 + 0x18], rax
movzx ecx, byte [rbp + 0x1cef]
mov eax, dword [r13 + 0x1b28]
cdq
idiv ecx
mov rcx, qword [0x180025080]
mov word [rcx + 0xd94], ax
imul eax, dword [0x180025034], 0x6ca
and dword [0x180025004], eax
mov r10d, dword [r10 + 0x1b28]
cmp r10d, 0x6ca
jle 0x180010afe
mov edi, 0xe0
mov r11d, 0x269
nop dword [rax]
nop word [rax + rax]
inc dword [rbx]
inc r10d
movsxd rcx, dword [rbx]
movzx eax, word [0x180024ff0]
sub ax, di
movzx edx, word [r8 + rcx*8]
xor dx, ax
and dx, r11w
xor word [r15 + 0xd94], dx
inc dword [0x180025034]
inc qword [rsi]
mov eax, dword [0x180025034]
mov r9, qword [rsi]
mov r8, r9
shl r8, 5
lea eax, [rax*4]
movsxd rcx, eax
movzx eax, byte [rcx + rbp]
mov rcx, qword [0x180025008]
and eax, 0x6ca
cdq
idiv dword [r13 + 0xca4]
movsxd rax, edx
xor edx, edx
div qword [r8 + rcx + 0x38]
mov r8, qword [rsp + 0x80]
mov dword [r12 + r9*4], edx
mov rcx, qword [r14]
movsxd rax, dword [rbx + 0x1b28]
shl rcx, 5
xor qword [rcx + 0x18], rax
cmp r10d, 0x6ca
jg 0x180010a60
mov r11d, dword [rsp + 0xc8]
mov edx, dword [rbx]
mov r10, qword [rsp + 0x20]
lea eax, [rdx*2 + 4]
movsxd rcx, eax
lea eax, [rdx + rdx]
movsxd rdx, eax
lea r9, [r14 + rcx*8]
mov rcx, qword [r14]
sub r14, 8
mov rax, qword [0x180025080]
movzx r8d, word [rax + rcx*2]
mov rax, qword [0x180025070]
sub r8, qword [rax + rdx*8]
sub r8, qword [r9]
mov qword [r9], r8
mov eax, dword [rbx]
add eax, eax
movsxd rdx, eax
movzx eax, r11w
movzx ecx, byte [r12 + rax*4]
sub cl, byte [rdx + rbp]
mov byte [rdx + rbp], cl
movsxd rcx, dword [0x180024fec]
movzx eax, word [0x180025004]
mov word [r15 + rcx*2], ax
mov edx, dword [rbx]
movzx edi, r11w
lea eax, [rdx + 3]
movsxd rcx, eax
lea eax, [rdx*2 + 1]
lea r8, [r10 + rcx*2]
movsxd rcx, eax
mov eax, dword [r12 + rcx*4]
movzx ecx, word [r8]
or eax, 0x198a
cdq
idiv ecx
mov word [r8], ax
movsxd rax, dword [0x180024fec]
mov rcx, qword [rsi]
lea r8, [r14 + rax*8]
mov eax, edi
xor eax, 0x1273
imul eax, eax, 0x7c9
cdq
idiv dword [r12 + rcx*4]
xor edx, edx
cdqe
div qword [r8]
mov edx, 0x10ce
mov qword [r8], rax
lea r8d, [rdi + rdi]
movsxd rcx, dword [rbx + 4]
mov rax, qword [rsp + 0xc0]
movzx ecx, word [rax + rcx*2]
mov rax, qword [0x180025040]
add ecx, 0x4ea
sub rdx, qword [rax + r8*8]
call fcn.180011300
mov rdx, qword [rsp + 0x80]
lea ecx, [rdi*4]
mov word [r15 + rcx*2], ax
movzx eax, byte [0x180024fcf]
lea r8, [rsi + rax*8]
mov eax, dword [rbx + 4]
add eax, 2
movsxd rcx, eax
movabs rax, 0xc956e803255ba00d
mul qword [rdx + rcx*8]
mov rax, qword [r8]
shr rdx, 0xc
imul rax, rdx
mov edx, dword [rsp + 0xc8]
mov qword [r8], rax
movzx eax, dx
inc dx
movzx ecx, word [rsi + rax*8]
and word [0x180024ff0], cx
movzx eax, dx
mov rdx, qword [rsp + 0xa0]
add eax, eax
lea rcx, [rax*4]
mov eax, dword [rcx + rbx + 4]
sub eax, dword [r14 + 0xc6f0]
and dword [rdx + rcx], eax
mov rcx, qword [rsp + 0xb0]
mov rax, qword [rsi]
movzx eax, word [rcx + rax*2 + 0xe]
movzx ecx, byte [0x180024fcf]
movzx edx, byte [rcx + rbp]
imul eax, edx
add rsp, 0x38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret