Function at 0x1404ce5c0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
movdqa xmmword [rsp + 0xb0], xmm9
movdqa xmmword [rsp + 0xa0], xmm8
movaps xmmword [rsp + 0x90], xmm7
movaps xmmword [rsp + 0x80], xmm6
mov rax, qword [0x1406a7e00]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov r12b, 1
cmp dword [rcx + 0x128], 0
js 0x1404ce658
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.1405602f0
mov eax, r12d
movaps xmm6, xmmword [rsp + 0x80]
movaps xmm7, xmmword [rsp + 0x90]
movaps xmm8, xmmword [rsp + 0xa0]
movaps xmm9, xmmword [rsp + 0xb0]
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r13, rcx
cmp dword [rcx + 0xb8], 2
jne 0x1404ce68d
mov edi, dword [r13 + 0x14]
mov r14, qword [r13 + 0x78]
movsxd r15, dword [r13 + 0xc4]
test r15, r15
jle 0x1404ce6d3
mov eax, r15d
cmp r15d, 8
jae 0x1404ce6db
mov dl, 0xfe
xor ecx, ecx
xor r10d, r10d
jmp 0x1404ce7d0
lea rax, [r13 + 0x138]
mov qword [r13 + 0x130], rax
mov dword [r13 + 0x128], 1
movzx eax, byte [r13 + 0x8d]
shl eax, 0x1f
mov dword [r13 + 0x138], eax
mov eax, dword [r13 + 0x14]
mov dword [r13 + 0x13c], eax
mov dword [r13 + 0x140], 0
jmp 0x1404cec4f
xor r10d, r10d
jmp 0x1404ce836
mov ecx, eax
and ecx, 0xfffffff8
movaps xmm0, xmmword [0x140644f20]
pxor xmm1, xmm1
xor edx, edx
movaps xmm3, xmmword [0x140644f30]
pcmpeqd xmm4, xmm4
movdqa xmm5, xmmword [0x14059b990]
pxor xmm2, xmm2
nop word cs:[rax + rax]
movss xmm6, dword [r14 + rdx]
xorps xmm7, xmm7
movss xmm7, xmm0
movss xmm0, dword [r14 + rdx + 4]
movaps xmm8, xmm6
andps xmm8, xmm3
orps xmm8, xmm7
psrld xmm8, 0x18
movaps xmm7, xmm6
pslld xmm7, 8
por xmm7, xmm8
movaps xmm8, xmm0
andps xmm8, xmm3
orps xmm8, xmm6
psrld xmm8, 0x18
movaps xmm9, xmm0
pslld xmm9, 8
por xmm9, xmm8
pcmpeqb xmm7, xmm6
pxor xmm7, xmm4
punpcklbw xmm7, xmm7
punpcklwd xmm7, xmm7
pand xmm7, xmm5
paddd xmm1, xmm7
pcmpeqb xmm9, xmm0
pxor xmm9, xmm4
punpcklbw xmm9, xmm9
punpcklwd xmm9, xmm9
pand xmm9, xmm5
paddd xmm2, xmm9
add rdx, 8
cmp rcx, rdx
jne 0x1404ce710
paddd xmm2, xmm1
pshufd xmm1, xmm2, 0xee
paddd xmm1, xmm2
pshufd xmm2, xmm1, 0x55
paddd xmm2, xmm1
movd r10d, xmm2
cmp rcx, rax
je 0x1404ce7ed
movd edx, xmm0
shr edx, 0x18
nop
movzx r8d, byte [r14 + rcx]
xor r9d, r9d
cmp r8b, dl
setne r9b
add r10d, r9d
inc rcx
mov edx, r8d
cmp rax, rcx
jne 0x1404ce7d0
cmp r10d, 1
jne 0x1404ce836
cmp edi, r15d
jne 0x1404ce836
lea rax, [r13 + 0x138]
movzx ecx, byte [r14]
mov qword [r13 + 0x130], rax
mov dword [r13 + 0x128], 1
shl ecx, 0x1f
mov dword [r13 + 0x138], ecx
mov dword [r13 + 0x13c], edi
mov dword [r13 + 0x140], 0
jmp 0x1404cec4f
xor esi, esi
cmp edi, r15d
setg sil
mov dword [rsp + 0x38], r10d
add esi, r10d
lea eax, [rsi*4]
lea r9d, [rax + rax*2]
movzx r8d, byte [r13 + 0x69]
lea rdx, [r13 + 0x2c]
lea rbx, [r13 + 0x58]
mov rcx, rbx
call fcn.1404c9a60
xor r9d, r9d
test al, al
je 0x1404ceae0
mov dword [rsp + 0x24], edi
mov qword [rsp + 0x28], rsi
mov rbx, qword [rbx]
mov dil, 0x7e
xor edx, edx
xor r8d, r8d
jmp 0x1404ce8bb
mov r11d, edi
mov eax, r11d
sub eax, r9d
lea rdx, [rcx + 1]
lea rcx, [rcx + rcx*2]
mov dword [rbx + rcx*4], r9d
mov dword [rbx + rcx*4 + 4], eax
mov dword [rbx + rcx*4 + 8], 0
mov r9d, r11d
cmp rsi, r15
mov edi, ebp
jge 0x1404ce907
movsxd r10, r9d
movzx eax, byte [r14 + r10]
movzx edi, dil
cmp al, dil
cmovb edi, eax
mov ebp, edi
movzx r8d, r8b
cmp al, r8b
cmova r8d, eax
mov rcx, rdx
lea edi, [r10 + 1]
cmp r15d, edi
cmovg edi, r15d
inc r10
mov r11d, r9d
nop
mov rsi, r10
cmp r10, r15
jge 0x1404ce890
inc r11d
lea r10, [rsi + 1]
cmp byte [r14 + rsi], al
je 0x1404ce8f0
jmp 0x1404ce893
mov r10d, dword [rsp + 0x24]
mov eax, r10d
sub eax, r15d
mov qword [rsp + 0x50], rdx
jle 0x1404ce939
mov ecx, edx
lea rcx, [rcx + rcx*2]
mov dword [rbx + rcx*4], r15d
mov dword [rbx + rcx*4 + 4], eax
movzx eax, byte [r13 + 0x8d]
movzx edi, dil
cmp al, dil
cmovb edi, eax
mov rsi, qword [rsp + 0x28]
mov qword [r13 + 0x130], rbx
mov dword [r13 + 0x128], esi
mov eax, edi
or al, 1
cmp al, r8b
jae 0x1404ceb87
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x48], r14
mov eax, dword [r13 + 0xc4]
xor ecx, ecx
cmp eax, dword [r13 + 0x14]
setl cl
mov r14d, esi
sub r14d, ecx
dec r8b
cmp r8b, dil
mov qword [rsp + 0x40], r14
jbe 0x1404ceae8
mov r10, qword [r13 + 0x78]
movsxd r11, r14d
mov rax, qword [rsp + 0x30]
lea r9, [rax + 0xc]
mov qword [rsp + 0x60], r13
mov dword [rsp + 0x3c], edi
mov qword [rsp + 0x58], r9
jmp 0x1404ce9bc
dec r8b
cmp r8b, dil
jbe 0x1404ceae8
test r14d, r14d
jle 0x1404ce9b0
xor eax, eax
movsxd rbp, eax
lea rax, [rbp*4]
lea rbx, [rax + rax*2]
mov rax, qword [rsp + 0x30]
lea r12, [rax + rbx]
mov ecx, ebp
neg ecx
add rbx, r9
lea rax, [rbp - 1]
nop word cs:[rax + rax]
movsxd rdx, dword [r12]
cmp byte [r10 + rdx], r8b
jae 0x1404cea20
inc rbp
add r12, 0xc
dec ecx
add rbx, 0xc
inc rax
cmp rbp, r11
jl 0x1404ce9f0
jmp 0x1404ce9b0
mov rdx, r12
mov r13, rbp
nop word cs:[rax + rax]
mov esi, ecx
mov rdi, rax
mov r9, rdx
inc r13
cmp r13, r11
jge 0x1404cea58
movsxd r14, dword [rbx]
lea ecx, [rsi - 1]
add rbx, 0xc
lea rax, [rdi + 1]
lea rdx, [r9 + 0xc]
cmp byte [r10 + r14], r8b
jae 0x1404cea30
mov r14, qword [rsp + 0x40]
lea eax, [r14 + rsi]
mov ecx, esi
neg ecx
cmp ebp, ecx
mov r13, qword [rsp + 0x60]
jge 0x1404ceab9
nop
mov ecx, dword [r12 + 8]
mov dword [rsp + 0x70], ecx
mov rcx, qword [r12]
mov qword [rsp + 0x68], rcx
mov ecx, dword [r9 + 8]
mov dword [r12 + 8], ecx
mov rcx, qword [r9]
mov qword [r12], rcx
mov ecx, dword [rsp + 0x70]
mov dword [r9 + 8], ecx
mov rcx, qword [rsp + 0x68]
mov qword [r9], rcx
inc rbp
add r12, 0xc
lea rcx, [rdi - 1]
add r9, 0xfffffffffffffff4
cmp rbp, rdi
mov rdi, rcx
jl 0x1404cea70
cmp eax, 1
mov edi, dword [rsp + 0x3c]
mov r9, qword [rsp + 0x58]
je 0x1404ce9b0
mov eax, 2
sub eax, esi
cmp eax, r14d
jl 0x1404ce9c3
jmp 0x1404ce9b0
xor r12d, r12d
jmp 0x1404ce612
test dil, 1
mov r12b, 1
mov r14, qword [rsp + 0x48]
mov r10d, dword [rsp + 0x24]
mov rsi, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x30]
je 0x1404ceb87
mov eax, dword [r13 + 0xc4]
xor ecx, ecx
cmp eax, dword [r13 + 0x14]
sete cl
mov rdx, qword [rsp + 0x40]
sub edx, ecx
test edx, edx
jle 0x1404ceb87
mov rax, rdx
mov eax, eax
lea rcx, [rax - 1]
lea rax, [rax + rax*2]
lea rax, [rbx + rax*4]
xor edx, edx
mov r8, rbx
nop word [rax + rax]
mov r9d, dword [r8 + 8]
mov dword [rsp + 0x70], r9d
mov r9, qword [r8]
mov qword [rsp + 0x68], r9
mov r9d, dword [rax + 8]
mov dword [r8 + 8], r9d
mov r9, qword [rax]
mov qword [r8], r9
mov r9d, dword [rsp + 0x70]
mov dword [rax + 8], r9d
mov r9, qword [rsp + 0x68]
mov qword [rax], r9
inc rdx
add r8, 0xc
lea r9, [rcx - 1]
add rax, 0xfffffffffffffff4
cmp rdx, rcx
mov rcx, r9
jl 0x1404ceb40
test esi, esi
je 0x1404cec24
xor eax, eax
cmp r10d, r15d
setg al
mov edx, esi
mov ecx, dword [rsp + 0x38]
add rax, rcx
cmp rax, 1
jne 0x1404cebac
xor ecx, ecx
xor eax, eax
jmp 0x1404cec03
mov r8d, edx
and r8d, 0xfffffffe
lea r9, [rbx + 0x10]
xor ecx, ecx
xor eax, eax
nop dword [rax + rax]
movsxd r10, dword [r9 - 0x10]
movzx r11d, byte [r14 + r10]
shl r11d, 0x1f
or r11d, r10d
mov dword [r9 - 0x10], r11d
add eax, dword [r9 - 0xc]
mov dword [r9 - 0xc], eax
movsxd r10, dword [r9 - 4]
movzx r11d, byte [r14 + r10]
shl r11d, 0x1f
or r11d, r10d
mov dword [r9 - 4], r11d
add eax, dword [r9]
mov dword [r9], eax
add rcx, 2
add r9, 0x18
cmp r8, rcx
jne 0x1404cebc0
test dl, 1
je 0x1404cec24
lea rcx, [rcx + rcx*2]
movsxd rdx, dword [rbx + rcx*4]
movzx r8d, byte [r14 + rdx]
shl r8d, 0x1f
or r8d, edx
mov dword [rbx + rcx*4], r8d
add dword [rbx + rcx*4 + 4], eax
mov rdx, qword [rsp + 0x50]
cmp esi, edx
jbe 0x1404cec4f
movzx eax, byte [r13 + 0x8d]
mov ecx, eax
shl ecx, 0x1f
mov r8, rdx
xor edx, edx
test al, 1
mov eax, r8d
cmove rdx, rax
lea rax, [rdx + rdx*2]
or dword [rbx + rax*4], ecx
mov ecx, dword [r13 + 0x1a4]
test ecx, ecx
jle 0x1404cecdc
mov rax, qword [r13 + 0x1b0]
lea rcx, [rax + rcx*8]
mov edx, 0x7fffffff
nop
mov r10d, dword [r13 + 0x128]
test r10d, r10d
jle 0x1404cedb3
mov r9d, dword [rax]
mov r8, qword [r13 + 0x130]
shl r10, 2
lea r11, [r10 + r10*2]
xor r10d, r10d
xor edi, edi
jmp 0x1404cecaf
add r10, 0xc
mov edi, esi
cmp r11, r10
je 0x1404cedb3
mov esi, dword [r8 + r10 + 4]
mov ebx, dword [r8 + r10]
and ebx, edx
cmp ebx, r9d
jg 0x1404ceca0
mov ebp, esi
sub ebp, edi
add ebp, ebx
cmp ebp, r9d
jle 0x1404ceca0
mov r9d, dword [rax + 4]
or dword [r8 + r10 + 8], r9d
add rax, 8
cmp rax, rcx
jb 0x1404cec70
cmp dword [r13 + 0x1b8], 0
jle 0x1404ce612
movsxd rcx, dword [r13 + 0x14]
test rcx, rcx
jle 0x1404ce612
mov rax, qword [r13 + 8]
lea rcx, [rax + rcx*2]
mov edx, 0x7fffffff
mov r8, rax
jmp 0x1404ced1d
add r8, 2
cmp r8, rcx
jae 0x1404ce612
movzx r9d, word [r8]
mov r10d, r9d
and r10d, 0xfffffffc
cmp r10d, 0x200c
je 0x1404ced4b
lea r10d, [r9 - 0x202a]
cmp r10d, 5
jb 0x1404ced4b
add r9d, 0xffffdf9a
cmp r9d, 3
ja 0x1404ced10
mov r11d, dword [r13 + 0x128]
test r11d, r11d
jle 0x1404cedb3
mov r9, r8
sub r9, rax
shr r9, 1
mov r10, qword [r13 + 0x130]
shl r11, 2
lea rsi, [r11 + r11*2]
xor r11d, r11d
xor ebx, ebx
jmp 0x1404ced8b
add r11, 0xc
mov ebx, edi
cmp rsi, r11
je 0x1404cedb3
mov edi, dword [r10 + r11 + 4]
mov ebp, dword [r10 + r11]
and ebp, edx
cmp ebp, r9d
jg 0x1404ced80
mov r14d, edi
sub r14d, ebx
add r14d, ebp
cmp r14d, r9d
jle 0x1404ced80
dec dword [r10 + r11 + 8]
jmp 0x1404ced10
call fcn.14056f538
int3