Function at 0x18025bc50
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
mov eax, 0x30
call fcn.1803146e0
sub rsp, rax
mov r14d, dword [rsp + 0x90]
xor r12d, r12d
movsxd rbx, r9d
mov rdi, r8
mov r15, rcx
mov ebp, r12d
test edx, edx
jle 0x18025bfa6
test r9d, r9d
jle 0x18025bfa6
cmp ebx, r14d
jg 0x18025bf78
cmp r14d, 0xb
jl 0x18025bf78
movsxd rsi, r14d
lea rdx, [0x18045fd48]
mov rcx, rsi
mov qword [rsp + 0x28], rsi
mov r8d, 0xc2
call fcn.18012d570
mov r11, rax
test rax, rax
je 0x18025bfa6
add rdi, rbx
mov qword [rsp + 0x80], r13
add r11, rsi
mov r8d, r14d
nop word [rax + rax]
mov ecx, ebx
lea edx, [rbx - 1]
shr edx, 0x1f
not ecx
shr ecx, 0x1f
mov r9, r11
and edx, ecx
dec r11
dec edx
mov eax, edx
and eax, 1
sub ebx, eax
mov eax, edx
and eax, 1
sub rdi, rax
movzx eax, byte [rdi]
and al, dl
mov byte [r11], al
sub r8, 1
jne 0x18025bcf0
movzx esi, byte [r9]
lea r10, [r11 + 2]
xor esi, 2
movzx eax, al
dec esi
dec eax
shr esi, 0x1f
mov r9d, r12d
shr eax, 0x1f
neg esi
neg eax
mov r8d, 2
and esi, eax
nop dword [rax + rax]
movzx edx, byte [r10]
lea r10, [r10 + 1]
dec edx
mov eax, r9d
not eax
shr edx, 0x1f
neg edx
and eax, edx
or r9d, edx
mov dword [rsp + 0x20], eax
not eax
mov dword [rsp + 0x24], eax
mov ecx, dword [rsp + 0x20]
mov eax, dword [rsp + 0x24]
and ecx, r8d
and ebp, eax
inc r8d
or ebp, ecx
cmp r8d, r14d
jl 0x18025bd50
mov edx, dword [rsp + 0x78]
mov r13d, r14d
sub r13d, ebp
mov ecx, edx
dec r13d
mov r10d, 1
sub ecx, r13d
mov eax, r13d
xor ecx, r13d
xor eax, edx
or ecx, eax
lea eax, [rbp - 0xa]
xor ecx, edx
or eax, ebp
shr ecx, 0x1f
xor eax, ebp
dec ecx
shr eax, 0x1f
dec eax
lea ebp, [r14 - 0xb]
and ecx, eax
mov eax, ebp
and esi, ecx
xor eax, edx
mov ecx, ebp
sub ecx, edx
xor ecx, edx
or ecx, eax
xor ecx, ebp
shr ecx, 0x1f
neg ecx
mov dword [rsp + 0x78], ecx
not ecx
mov dword [rsp + 0x24], ecx
mov eax, dword [rsp + 0x78]
mov ecx, dword [rsp + 0x24]
and eax, ebp
and ecx, edx
or ecx, eax
mov dword [rsp + 0x20], ecx
cmp ebp, r10d
jle 0x18025be8b
mov r15d, r14d
sub r15d, r13d
add r15d, 0xfffffff5
nop dword [rax]
mov eax, r15d
and eax, r10d
lea ecx, [rax - 1]
not eax
shr eax, 0x1f
shr ecx, 0x1f
and ecx, eax
mov eax, r14d
sub eax, r10d
dec ecx
movsxd r8, eax
cmp r8, 0xb
jle 0x18025be7a
movzx ebx, cl
lea rax, [r11 + 0xb]
mov r9d, ebx
movsxd rdi, r10d
not r9d
add r8, 0xfffffffffffffff5
nop dword [rax + rax]
mov dword [rsp + 0x78], ebx
lea rax, [rax + 1]
mov dword [rsp + 0x24], r9d
mov ecx, dword [rsp + 0x78]
movzx edx, byte [rdi + rax - 1]
and dl, cl
mov ecx, dword [rsp + 0x24]
and cl, byte [rax - 1]
or cl, dl
mov byte [rax - 1], cl
sub r8, 1
jne 0x18025be50
add r10d, r10d
cmp r10d, ebp
jl 0x18025be10
mov r15, qword [rsp + 0x70]
mov ecx, dword [rsp + 0x20]
movsxd r9, ecx
test ecx, ecx
jle 0x18025bef8
mov r8d, r13d
mov r10, r11
shr r8d, 0x1f
sub r10, r15
nop
mov edx, r12d
lea r15, [r15 + 1]
sub edx, r13d
mov ecx, r12d
shr ecx, 0x1f
movzx eax, r8b
xor al, cl
shr edx, 0x1f
xor dl, r8b
inc r12d
or dl, al
movzx eax, sil
xor dl, cl
neg dl
movzx ecx, dl
and ecx, eax
mov dword [rsp + 0x78], ecx
not ecx
mov dword [rsp + 0x24], ecx
mov eax, dword [rsp + 0x78]
movzx ecx, byte [r10 + r15 + 0xa]
and cl, al
mov eax, dword [rsp + 0x24]
and al, byte [r15 - 1]
or al, cl
mov byte [r15 - 1], al
sub r9, 1
jne 0x18025bea0
mov rdx, qword [rsp + 0x28]
lea r8, [0x18045fd48]
mov r9d, 0x108
mov rcx, r11
call fcn.18012d6f0
call fcn.180132860
lea r8, [0x18045fda8]
mov edx, 0x10f
lea rcx, [0x18045fd48]
call fcn.180132980
xor r8d, r8d
mov edx, 0x9f
lea ecx, [r8 + 4]
call fcn.180132ae0
mov ecx, esi
and ecx, 1
call fcn.180146860
mov dword [rsp + 0x78], esi
not esi
mov dword [rsp + 0x24], esi
mov ecx, dword [rsp + 0x78]
mov eax, dword [rsp + 0x24]
and ecx, r13d
mov r13, qword [rsp + 0x80]
or eax, ecx
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
call fcn.180132860
lea r8, [0x18045fda8]
mov edx, 0xbe
lea rcx, [0x18045fd48]
call fcn.180132980
xor r8d, r8d
mov edx, 0x9f
lea ecx, [r8 + 4]
call fcn.180132ae0
mov eax, 0xffffffff
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret