Function at 0x4eb810
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
movdqa xmmword [rsp + 0x70], xmm6
mov rdi, qword [rcx + 0x18]
mov rax, rdi
inc rax
je 0x4ec11d
movdqa xmm6, xmmword [rdx]
mov rsi, qword [rcx + 8]
lea r15, [rsi + 1]
mov rdx, r15
shr rdx, 3
mov r8, r15
and r8, 0xfffffffffffffff8
sub r8, rdx
cmp rsi, 8
cmovb r8, rsi
movabs r14, 0x7ffffffffffffff0
mov rdx, r8
shr rdx, 1
cmp rax, rdx
mov qword [rsp + 0x28], rcx
jbe 0x4eb8a5
inc r8
cmp rax, r8
cmova r8, rax
cmp r8, 8
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x58], r15
jae 0x4eb8d2
xor eax, eax
cmp r8, 4
setae al
lea rbx, [rax*4 + 4]
jmp 0x4eb920
mov rbx, qword [rcx]
mov rcx, r15
shr rcx, 4
xor eax, eax
test r15b, 0xf
setne al
add rax, rcx
je 0x4ebbfa
cmp rax, 1
jne 0x4ebb91
xor ecx, ecx
jmp 0x4ebbe4
movabs rax, 0x1ffffffffffffffe
or rax, 1
cmp r8, rax
ja 0x4ec11d
shl r8, 3
movabs rdx, 0x2492492492492493
mov rax, r8
mul rdx
sub r8, rdx
shr r8, 1
add r8, rdx
shr r8, 2
dec r8
bsr rcx, r8
not ecx
mov rbx, 0xffffffffffffffff
shr rbx, cl
inc rbx
mov ecx, 0x18
mov rax, rbx
mul rcx
jo 0x4ec11d
mov r12, rax
add r12, 0xf
and r12, 0xfffffffffffffff0
lea r13, [rbx + 0x10]
mov r15, r12
add r15, r13
jb 0x4ec11d
cmp r15, r14
ja 0x4ec11d
test r15, r15
je 0x4eb97b
movzx eax, byte [0x0083c308]
xor ecx, ecx
mov rdx, r15
call sym.std::sys::pal::windows::alloc::process_heap_alloc::h5a8f05db6a24897c
mov rbp, rax
test rax, rax
jne 0x4eb980
mov rcx, r15
call sym.hashbrown::raw::Fallibility::alloc_err::hf6756c1c32550c91
mov ebp, 0x10
lea rdi, [rbx - 1]
mov rax, rbx
shr rax, 3
mov rcx, rbx
and rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rbx, 9
cmovb rcx, rdi
mov qword [rsp + 0x38], rcx
lea r15, [rbp + r12]
mov rcx, r15
mov dl, 0xff
mov r8, r13
call fcn.006f6398
mov r13, qword [rsp + 0x40]
test r13, r13
je 0x4ebb25
lea rax, [r12 + rbp]
add rax, 0xffffffffffffffe8
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x28]
mov rbx, qword [rax]
movdqa xmm0, xmmword [rbx]
pmovmskb ebp, xmm0
not ebp
lea rax, [rbx - 0x18]
mov qword [rsp + 0x48], rax
xor r14d, r14d
mov qword [rsp + 0x30], rbx
jmp 0x4eba58
lea ecx, [rbp - 1]
and ecx, ebp
dec r13
shr rax, 0x39
lea r8, [rdx - 0x10]
and r8, rdi
mov byte [r15 + rdx], al
mov byte [r15 + r8 + 0x10], al
shl r12, 3
lea rax, [r12 + r12*2]
mov r8, qword [rsp + 0x48]
sub r8, rax
shl rdx, 3
lea rax, [rdx + rdx*2]
mov rdx, qword [rsp + 0x50]
sub rdx, rax
mov rax, qword [r8 + 0x10]
mov qword [rdx + 0x10], rax
movdqu xmm0, xmmword [r8]
movdqu xmmword [rdx], xmm0
mov ebp, ecx
test r13, r13
je 0x4ebb0f
test bp, bp
jne 0x4eba7b
nop dword [rax]
movdqa xmm0, xmmword [rbx + 0x10]
add rbx, 0x10
pmovmskb ebp, xmm0
add r14, 0x10
cmp ebp, 0xffff
je 0x4eba60
not ebp
tzcnt r12d, ebp
add r12, r14
mov rax, r12
neg rax
lea rax, [rax + rax*2]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rcx + rax*8 - 0x18]
mov r8, qword [rcx + rax*8 - 0x10]
movdqa xmmword [rsp + 0x60], xmm6
lea rcx, [rsp + 0x60]
call sym.core::hash::BuildHasher::hash_one::h18f0350cee408580
mov rcx, rax
and rcx, rdi
movdqu xmm0, xmmword [r15 + rcx]
pmovmskb edx, xmm0
test edx, edx
jne 0x4ebae8
mov r8d, 0x10
nop word cs:[rax + rax]
add rcx, r8
and rcx, rdi
movdqu xmm0, xmmword [r15 + rcx]
pmovmskb edx, xmm0
add r8, 0x10
test edx, edx
je 0x4ebad0
tzcnt edx, edx
add rdx, rcx
and rdx, rdi
cmp byte [r15 + rdx], 0
js 0x4eba00
movdqa xmm0, xmmword [r15]
pmovmskb ecx, xmm0
tzcnt edx, ecx
jmp 0x4eba00
movabs r14, 0x7ffffffffffffff0
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x40]
jmp 0x4ebb34
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax]
mov qword [rsp + 0x30], rcx
xor ecx, ecx
mov rdx, qword [rsp + 0x38]
sub rdx, rcx
mov qword [rax], r15
mov qword [rax + 8], rdi
mov qword [rax + 0x10], rdx
mov qword [rax + 0x18], rcx
test rsi, rsi
je 0x4ec0fd
mov ecx, 0x18
mov rax, qword [rsp + 0x58]
mul rcx
add rax, 0xf
and rax, 0xfffffffffffffff0
add rsi, rax
cmp rsi, 0xffffffffffffffef
je 0x4ec0fd
mov r8, qword [rsp + 0x30]
sub r8, rax
mov rcx, qword [0x0083c108]
xor edx, edx
call fcn.006f5b74
jmp 0x4ec0fd
movabs rdx, 0x1ffffffffffffffe
and rdx, rax
xor ecx, ecx
movdqa xmm0, xmmword [0x0071fc70]
nop dword [rax + rax]
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [rbx + rcx]
por xmm1, xmm0
movdqa xmmword [rbx + rcx], xmm1
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [rbx + rcx + 0x10]
por xmm1, xmm0
movdqa xmmword [rbx + rcx + 0x10], xmm1
add rcx, 0x20
add rdx, 0xfffffffffffffffe
jne 0x4ebbb0
test al, 1
je 0x4ebbfa
pxor xmm0, xmm0
pcmpgtb xmm0, xmmword [rbx + rcx]
por xmm0, xmmword [0x0071fc70]
movdqa xmmword [rbx + rcx], xmm0
cmp r15, 0x10
jae 0x4ebc20
lea rcx, [rbx + 0x10]
mov rdx, rbx
mov r8, r15
call sub.msvcrt.dll_memmove
test r15, r15
jne 0x4ebc2a
xor eax, eax
mov r8, qword [rsp + 0x28]
jmp 0x4ec0f6
movdqu xmm0, xmmword [rbx]
movdqu xmmword [rbx + r15], xmm0
pshufd xmm0, xmm6, 0x44
pxor xmm0, xmmword [0x0071fc80]
pshufd xmm1, xmm6, 0xee
pxor xmm1, xmmword [0x0071fc90]
pshufd xmm2, xmm1, 0xee
movq qword [rsp + 0x30], xmm2
movq qword [rsp + 0x50], xmm0
movq qword [rsp + 0x48], xmm1
pshufd xmm2, xmm0, 0xee
movq qword [rsp + 0x40], xmm2
mov rax, qword [rsp + 0x28]
mov r11, qword [rax]
xor r14d, r14d
jmp 0x4ebca4
shr rdi, 0x39
lea rax, [r14 - 0x10]
and rax, rsi
mov byte [rbx + r14], dil
mov byte [rbx + rax + 0x10], dil
lea rax, [r14 + 1]
cmp r14, rsi
mov r14, rax
je 0x4ec0c5
cmp byte [rbx + r14], 0x80
jne 0x4ebc94
lea rax, [r14*8]
lea rax, [rax + rax*2]
mov r13, rbx
sub r13, rax
lea rax, [r13 - 0x18]
mov qword [rsp + 0x38], rax
mov rax, r14
neg rax
lea rbp, [rax + rax*2]
mov rax, rbx
nop word cs:[rax + rax]
mov r12, qword [rax + rbp*8 - 0x18]
mov rdx, qword [rax + rbp*8 - 0x10]
add r12, 0x10
mov rcx, rdx
and rcx, 0xfffffffffffffff8
je 0x4ebda0
mov rax, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
mov r9, qword [rsp + 0x30]
xor r15d, r15d
mov r8, qword [rsp + 0x50]
nop word cs:[rax + rax]
add r8, rdi
rol rdi, 0xd
mov r10, qword [r12 + r15]
xor rdi, r8
rol r8, 0x20
xor r9, r10
add rax, r9
rol r9, 0x10
xor r9, rax
add r8, r9
rol r9, 0x15
add rax, rdi
rol rdi, 0x11
xor rdi, rax
rol rax, 0x20
xor r9, r8
xor r8, r10
add r15, 8
cmp r15, rcx
jb 0x4ebd20
movq xmm3, r9
movq xmm2, rdi
punpcklqdq xmm2, xmm3
movq xmm4, rax
movq xmm3, r8
punpcklqdq xmm3, xmm4
mov edi, edx
and edi, 7
cmp edi, 4
jb 0x4ebdb5
mov r8d, dword [r12 + r15]
mov eax, 4
mov rcx, rax
or rcx, 1
cmp rcx, rdi
jb 0x4ebdc6
jmp 0x4ebde0
movdqa xmm2, xmm1
movdqa xmm3, xmm0
xor r15d, r15d
mov edi, edx
and edi, 7
cmp edi, 4
jae 0x4ebd89
xor r8d, r8d
xor eax, eax
mov rcx, rax
or rcx, 1
cmp rcx, rdi
jae 0x4ebde0
lea rcx, [r12 + rax]
movzx r9d, word [r15 + rcx]
lea ecx, [rax*8]
shl r9, cl
or r8, r9
or rax, 2
cmp rax, rdi
jae 0x4ebe00
add r15, rax
movzx r9d, byte [r12 + r15]
shl eax, 3
mov ecx, eax
shl r9, cl
or r8, r9
jmp 0x4ebe09
test rdi, rdi
je 0x4ebe9c
lea ecx, [rdi*8]
mov r15d, 0xff
shl r15, cl
or r15, r8
cmp rdi, 7
jne 0x4ebeb0
pshufd xmm4, xmm2, 0xee
movq rcx, xmm4
xor rcx, r15
movq r8, xmm2
paddq xmm2, xmm3
movq rax, xmm2
rol r8, 0xd
xor r8, rax
rol rax, 0x20
pshufd xmm2, xmm3, 0xee
movq r9, xmm2
add r9, rcx
rol rcx, 0x10
xor rcx, r9
add rax, rcx
rol rcx, 0x15
add r9, r8
rol r8, 0x11
xor rcx, rax
xor r8, r9
movq xmm3, rcx
movq xmm2, r8
punpcklqdq xmm2, xmm3
rol r9, 0x20
xor rax, r15
movq xmm4, r9
movq xmm3, rax
punpcklqdq xmm3, xmm4
xor r15d, r15d
jmp 0x4ebeb0
mov r15d, 0xff
nop word cs:[rax + rax]
pshufd xmm4, xmm3, 0xee
movq rax, xmm4
movq rcx, xmm2
pshufd xmm4, xmm2, 0xee
movq r12, xmm4
shl rdx, 0x38
movabs r8, 0x100000000000000
add rdx, r8
or rdx, r15
paddq xmm2, xmm3
rol rcx, 0xd
movq r15, xmm2
xor rcx, r15
rol r15, 0x20
xor r12, rdx
add rax, r12
rol r12, 0x10
xor r12, rax
add r15, r12
rol r12, 0x15
add rax, rcx
rol rcx, 0x11
xor r12, r15
xor rcx, rax
rol rax, 0x20
xor r15, rdx
add r15, rcx
rol rcx, 0xd
xor rcx, r15
rol r15, 0x20
xor rax, 0xff
add rax, r12
rol r12, 0x10
xor r12, rax
add r15, r12
rol r12, 0x15
add rax, rcx
rol rcx, 0x11
xor rcx, rax
rol rax, 0x20
xor r12, r15
add r15, rcx
rol rcx, 0xd
xor rcx, r15
rol r15, 0x20
add rax, r12
rol r12, 0x10
xor r12, rax
add r15, r12
rol r12, 0x15
add rax, rcx
rol rcx, 0x11
xor rcx, rax
rol rax, 0x20
xor r12, r15
add r15, rcx
rol rcx, 0xd
add rax, r12
rol r12, 0x10
xor r12, rax
rol r12, 0x15
xor rcx, r15
add rax, rcx
rol rcx, 0x11
mov rdi, rax
rol rdi, 0x20
xor rdi, rcx
xor rdi, r12
xor rdi, rax
mov rax, rsi
and rax, rdi
movdqu xmm2, xmmword [rbx + rax]
pmovmskb ecx, xmm2
mov rdx, rax
test ecx, ecx
jne 0x4ebfe7
mov r8d, 0x10
mov rdx, rax
nop dword [rax]
add rdx, r8
and rdx, rsi
movdqu xmm2, xmmword [rbx + rdx]
pmovmskb ecx, xmm2
add r8, 0x10
test ecx, ecx
je 0x4ebfd0
tzcnt ecx, ecx
add rcx, rdx
and rcx, rsi
cmp byte [rbx + rcx], 0
js 0x4ec003
movdqa xmm2, xmmword [rbx]
pmovmskb ecx, xmm2
tzcnt ecx, ecx
mov rdx, r14
sub rdx, rax
mov r8, rcx
sub r8, rax
xor r8, rdx
and r8, rsi
cmp r8, 0x10
jb 0x4ebc80
lea rax, [rcx*8]
lea rax, [rax + rax*2]
movzx edx, byte [rbx + rcx]
shr rdi, 0x39
lea r8, [rcx - 0x10]
and r8, rsi
mov byte [rbx + rcx], dil
mov byte [rbx + r8 + 0x10], dil
cmp dl, 0xff
je 0x4ec090
mov rcx, rbx
sub rcx, rax
mov rax, qword [r13 - 0x18]
mov rdx, qword [rcx - 0x18]
mov qword [r13 - 0x18], rdx
mov qword [rcx - 0x18], rax
mov rax, qword [r13 - 0x10]
mov rdx, qword [rcx - 0x10]
mov qword [r13 - 0x10], rdx
mov qword [rcx - 0x10], rax
mov rax, qword [r13 - 8]
mov rdx, qword [rcx - 8]
mov qword [r13 - 8], rdx
mov qword [rcx - 8], rax
mov rax, r11
jmp 0x4ebce0
neg rax
add rax, rbx
add rax, 0xffffffffffffffe8
lea rcx, [r14 - 0x10]
and rcx, rsi
mov byte [rbx + r14], 0xff
mov byte [rbx + rcx + 0x10], 0xff
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rdx + 0x10]
mov qword [rax + 0x10], rcx
movdqu xmm2, xmmword [rdx]
movdqu xmmword [rax], xmm2
jmp 0x4ebc94
mov r8, qword [rsp + 0x28]
mov rcx, qword [r8 + 8]
mov rdi, qword [r8 + 0x18]
lea rax, [rcx + 1]
mov rdx, rax
shr rdx, 3
and rax, 0xfffffffffffffff8
sub rax, rdx
cmp rcx, 8
cmovb rax, rcx
movabs r14, 0x7ffffffffffffff0
sub rax, rdi
mov qword [r8 + 0x10], rax
add r14, 0x11
mov rax, r14
movaps xmm6, xmmword [rsp + 0x70]
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call sym.hashbrown::raw::Fallibility::capacity_overflow::hd9304ee4acd10dea
int3