Function at 0x180081b80
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0x1c8]
sub rsp, 0x2c8
mov rdi, qword [rbp + 0x228]
mov r14, rcx
mov esi, edx
mov rcx, rdi
mov r13d, 1
call fcn.18016fcd0
movsxd r15, eax
test eax, eax
jns 0x180081bd6
xor eax, eax
add rsp, 0x2c8
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbp
ret
lea rcx, [rbp + 0xa0]
mov qword [rsp + 0x300], rbx
call fcn.1801713d0
lea rcx, [rbp - 0x80]
call fcn.1801713d0
mov rbx, qword [rbp + 0x238]
lea rcx, [rbp + 0xa0]
mov r9, rdi
mov r8d, esi
mov rdx, r14
mov qword [rsp + 0x20], 0
call fcn.180171550
test eax, eax
jne 0x180081c2f
lea rcx, [rbp + 0xa0]
call fcn.180171250
xor eax, eax
jmp 0x180081e71
mov eax, dword [rbp + 0x230]
mov qword [rsp + 0x2c0], r12
test eax, eax
je 0x180081e58
mov r12d, dword [rbp + 0x220]
nop dword [rax]
mov edi, eax
cmp eax, r15d
mov eax, r13d
cmovg edi, r15d
shr eax, 0x18
lea rdx, [rbp + 0xa0]
mov byte [rsp + 0x30], al
mov eax, r13d
lea rcx, [rbp - 0x80]
shr eax, 0x10
mov byte [rsp + 0x33], r13b
mov byte [rsp + 0x31], al
mov eax, r13d
shr eax, 8
mov byte [rsp + 0x32], al
call fcn.180171290
test eax, eax
je 0x180081ea3
movsxd r8, dword [rbp + 0x218]
mov rdx, qword [rbp + 0x210]
lea rcx, [rbp - 0x80]
call fcn.180171810
test eax, eax
je 0x180081e8a
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x80]
mov r8d, 4
call fcn.180171810
test eax, eax
je 0x180081e8a
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x80]
xor r8d, r8d
call fcn.1801714a0
test eax, eax
je 0x180081e8a
lea rcx, [rbp - 0x80]
call fcn.180171250
movsxd r14, edi
lea rdx, [rsp + 0x40]
mov r8, r14
mov rcx, rbx
call fcn.180230800
mov esi, 1
cmp r12d, esi
jle 0x180081e3c
nop dword [rax]
nop word [rax + rax]
lea rdx, [rbp + 0xa0]
lea rcx, [rbp - 0x80]
call fcn.180171290
test eax, eax
je 0x180081ea3
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x80]
mov r8, r15
call fcn.180171810
test eax, eax
je 0x180081e8a
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x80]
xor r8d, r8d
call fcn.1801714a0
test eax, eax
je 0x180081e8a
lea rcx, [rbp - 0x80]
call fcn.180171250
xor r9d, r9d
test edi, edi
jle 0x180081dfd
cmp edi, 0x20
jb 0x180081dfd
lea eax, [rdi - 1]
xor edx, edx
movsxd rcx, eax
lea rax, [rsp + 0x40]
add rax, rcx
lea r8, [rcx + rbx]
cmp rbx, rax
ja 0x180081da6
lea rax, [rsp + 0x40]
cmp r8, rax
jae 0x180081dfd
mov eax, edi
and eax, 0x8000001f
jge 0x180081db6
dec eax
or eax, 0xffffffe0
inc eax
mov r8d, edi
sub r8d, eax
nop dword [rax]
movsxd rax, edx
add r9, 0x20
movdqu xmm0, xmmword [rax + rbx]
movdqu xmm1, xmmword [rsp + rax + 0x40]
pxor xmm1, xmm0
movdqu xmmword [rax + rbx], xmm1
lea eax, [rdx + 0x10]
add edx, 0x20
movsxd rcx, eax
movdqu xmm1, xmmword [rsp + rcx + 0x40]
movdqu xmm0, xmmword [rcx + rbx]
pxor xmm1, xmm0
movdqu xmmword [rcx + rbx], xmm1
cmp edx, r8d
jl 0x180081dc0
cmp r9, r14
jge 0x180081e31
lea r8, [rsp + 0x40]
mov rdx, r14
lea rax, [r9 + rbx]
sub r8, rbx
sub rdx, r9
nop dword [rax]
nop dword [rax + rax]
movzx ecx, byte [r8 + rax]
lea rax, [rax + 1]
xor byte [rax - 1], cl
dec rdx
jne 0x180081e20
inc esi
cmp esi, r12d
jl 0x180081d20
mov eax, dword [rbp + 0x230]
inc r13d
add rbx, r14
sub eax, edi
mov dword [rbp + 0x230], eax
test eax, eax
jne 0x180081c50
lea rcx, [rbp + 0xa0]
call fcn.180171250
mov eax, 1
mov r12, qword [rsp + 0x2c0]
mov rbx, qword [rsp + 0x300]
add rsp, 0x2c8
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbp
ret
lea rcx, [rbp + 0xa0]
call fcn.180171250
lea rcx, [rbp - 0x80]
call fcn.180171250
xor eax, eax
jmp 0x180081e69
lea rcx, [rbp + 0xa0]
call fcn.180171250
xor eax, eax
jmp 0x180081e69