Function at 0x1402530c0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x10], 0xfffffffffffffffe
mov rsi, r9
mov rdi, r8
xorps xmm0, xmm0
movups xmmword [rcx + 8], xmm0
lea rax, [0x1403ca058]
mov qword [rcx], rax
mov byte [rcx + 0x18], 0
mov qword [rcx + 0x20], rdx
movups xmmword [rcx + 0x40], xmm0
mov rbx, qword [r8 + 0x18]
cmp qword [r8 + 0x20], 0x10
jb 0x140253117
mov rdi, qword [rdi + 8]
jmp 0x14025311b
add rdi, 8
lea rax, [rcx + 8]
mov qword [rbp - 0x28], rax
lea r15, [rcx + 0x30]
cmp rbx, 0xf
mov qword [rbp + 8], rcx
ja 0x140253140
movups xmm0, xmmword [rdi]
movups xmmword [r15], xmm0
mov r14d, 0xf
jmp 0x1402531a3
mov r14, rbx
or r14, 0xf
movabs rax, 0x7fffffffffffffff
cmp r14, rax
cmovae r14, rax
cmp r14, 0xfff
jb 0x140253184
lea rcx, [r14 + 0x28]
call fcn.14037638c
mov rcx, rax
xor rcx, 0x27
mov edx, eax
and edx, 0x27
lea rcx, [rcx + rdx*2]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x140253190
lea rcx, [r14 + 1]
call fcn.14037638c
mov rcx, rax
mov qword [r15], rcx
lea r8, [rbx + 1]
mov rdx, rdi
call fcn.14039e2f0
mov rcx, qword [rbp + 8]
mov qword [rcx + 0x40], rbx
mov qword [rcx + 0x48], r14
lea rbx, [0x1403b9448]
mov qword [rcx + 0x28], rbx
xorps xmm0, xmm0
movups xmmword [rcx + 0x68], xmm0
mov rdi, qword [rsi + 0x18]
cmp qword [rsi + 0x20], 0x10
jb 0x1402531ce
mov rsi, qword [rsi + 8]
jmp 0x1402531d2
add rsi, 8
lea rax, [rcx + 0x28]
mov qword [rbp - 0x20], rax
lea r15, [rcx + 0x58]
cmp rdi, 0xf
ja 0x1402531f3
movups xmm0, xmmword [rsi]
movups xmmword [r15], xmm0
mov r14d, 0xf
jmp 0x14025324d
mov r14, rdi
or r14, 0xf
movabs rax, 0x7fffffffffffffff
cmp r14, rax
cmovae r14, rax
cmp r14, 0xfff
jb 0x14025322e
lea rcx, [r14 + 0x28]
call fcn.14037638c
mov rcx, rax
add rcx, 0x27
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x14025323a
lea rcx, [r14 + 1]
call fcn.14037638c
mov rcx, rax
mov qword [r15], rcx
lea r8, [rdi + 1]
mov rdx, rsi
call fcn.14039e2f0
mov rcx, qword [rbp + 8]
mov r8, qword [rbp + 0x88]
mov rax, qword [rbp + 0x80]
lea rdx, [rcx + 0x50]
mov qword [rbp - 0x18], rdx
mov qword [rcx + 0x68], rdi
mov qword [rcx + 0x70], r14
mov qword [rcx + 0x50], rbx
lea rdx, [rcx + 0x78]
mov qword [rbp - 0x10], rdx
lea r13, [rcx + 0x80]
lea rdi, [rax + 8]
movsxd r14, dword [0x1403ca074]
mov r15d, dword [0x1403ca080]
xorps xmm0, xmm0
movups xmmword [rcx + 0x90], xmm0
mov rsi, qword [rax + 0x18]
cmp qword [rax + 0x20], 0x10
jb 0x1402532a9
mov rdi, qword [rax + 8]
cmp rsi, 0x10
jae 0x1402532bf
movups xmm0, xmmword [rdi]
movups xmmword [r13], xmm0
mov r12d, 0xf
jmp 0x14025331f
mov r12, rsi
or r12, 0xf
movabs rax, 0x7fffffffffffffff
cmp r12, rax
cmovae r12, rax
cmp r12, 0xfff
jb 0x1402532fb
lea rcx, [r12 + 0x28]
call fcn.14037638c
mov rcx, rax
add rcx, 0x27
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x140253308
lea rcx, [r12 + 1]
call fcn.14037638c
mov rcx, rax
mov qword [r13], rcx
lea r8, [rsi + 1]
mov rdx, rdi
call fcn.14039e2f0
mov r8, qword [rbp + 0x88]
mov rax, qword [rbp + 8]
mov qword [rax + 0x90], rsi
mov qword [rax + 0x98], r12
mov qword [rax + 0x78], rbx
lea rcx, [rax + 0xa0]
mov qword [rbp], rcx
mov qword [rax + 0xb8], 0
mov qword [rax + 0xc0], 0xf
mov byte [rax + 0xa8], 0
mov qword [rax + 0xa0], rbx
xorps xmm0, xmm0
movups xmmword [rax + 0xc8], xmm0
cmp qword [r8 + 0x18], 0
je 0x1402533bd
lea rcx, [rbp - 8]
mov rdx, r8
mov r8b, 1
call fcn.140258b60
lea rcx, [rbp - 0x50]
call fcn.140259cd0
lea rdx, [rbp - 0x50]
mov rcx, qword [rbp]
call fcn.1402492d0
mov eax, dword [0x1404efbd4]
lea ecx, [rax + 1]
mov dword [0x1404efbd4], ecx
test eax, ecx
je 0x14025344e
xor r8d, r8d
mov rsi, qword [rbp + 8]
jmp 0x140253480
lea rcx, [rbp - 0x50]
call fcn.140259cd0
lea rdx, [rbp - 0x50]
mov rcx, qword [rbp]
call fcn.1402492d0
mov rax, qword [rbp - 0x30]
cmp rax, 0x10
mov rsi, qword [rbp + 8]
jb 0x1402534d7
mov rdx, qword [rbp - 0x48]
lea r9, [rax + 1]
cmp r9, 0x1000
jb 0x140253431
mov rcx, qword [rdx - 8]
mov r8, rdx
xor r8, 0xfffffffffffffff8
movabs r9, 0x7ffffffffffffff8
and r9, rdx
lea rdx, [r8 + r9*2]
sub rdx, rcx
cmp rdx, 0x20
jae 0x140253512
mov rdx, qword [0x1404efbf0]
lea r9, [rdx + rax]
add r9, 0x28
mov rdx, rcx
mov dword [rsp + 0x20], 0x40c0bd58
mov ecx, 1
mov r8d, 1
call fcn.140151170
jmp 0x1402534d7
xor edx, edx
mov r8d, 0
test r15d, r15d
mov rsi, qword [rbp + 8]
jle 0x140253480
lea r8, [0x1403ca074]
add r14, r8
xor r8d, r8d
nop dword [rax]
movsxd rdx, edx
xor r8w, word [r14 + rdx]
add edx, 2
cmp edx, r15d
jl 0x140253470
mov r10, qword [rbp - 0x30]
cmp r10, 0xf
jbe 0x1402534ce
mov rdx, qword [rbp - 0x48]
lea r9, [r10 + 1]
cmp r9, 0x1000
jb 0x1402534b6
mov r11, qword [rdx - 8]
add rdx, 0xfffffffffffffff8
sub rdx, r11
cmp rdx, 0x20
jae 0x1402534ee
add r10, 0x28
mov r9, r10
mov rdx, r11
mov dword [rsp + 0x20], 0x40c0bd58
mov ecx, 1
mov r8d, 1
call fcn.140151170
lea rcx, [rbp - 8]
call fcn.140255b50
mov rax, rsi
add rsp, 0x98
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
and eax, ecx
xor ecx, ecx
cmp eax, 1
sbb ecx, ecx
movzx eax, word [0x1403ca072]
sub eax, r8d
and eax, ecx
movzx eax, ax
add qword [0x1404efbf0], rax
call fcn.140356a3c
call fcn.140356a3c
int3