Function at 0x140069760
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
mov r14, qword [rcx + 0x18]
cmp r14, 0xffffffffffffffff
je 0x14006a033
mov rsi, rcx
mov r15, qword [rcx + 8]
lea r12, [r15 + 1]
mov rax, r12
shr rax, 3
mov r8, r12
and r8, 0xfffffffffffffff8
sub r8, rax
cmp r15, 8
cmovb r8, r15
mov rax, r8
shr rax, 1
cmp r14, rax
jae 0x1400697dd
mov rbx, qword [rsi]
mov rcx, r12
shr rcx, 4
xor eax, eax
test r12b, 0xf
setne al
add rax, rcx
je 0x140069c0a
cmp rax, 1
jne 0x140069b9d
xor ecx, ecx
jmp 0x140069bf4
lea rax, [r14 + 1]
inc r8
cmp rax, r8
cmova r8, rax
lea rcx, [rsp + 0x58]
mov edx, 0x30
call fcn.14001eb30
mov r9, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x60]
test r9, r9
je 0x140069c50
mov qword [rsp + 0x40], r12
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x38], rsi
mov r8, qword [rsi]
mov qword [rsp + 0x20], r14
test r14, r14
je 0x140069b3f
movdqa xmm0, xmmword [r8]
pmovmskb r14d, xmm0
not r14d
xor r11d, r11d
movabs rbp, 0x82efa98ec4e6c89
mov r13, qword [rsp + 0x20]
mov r10, r8
mov qword [rsp + 0x28], r8
jmp 0x1400698c6
lea eax, [r14 - 1]
and eax, r14d
dec r13
shr rdx, 0x39
lea rbx, [rcx - 0x10]
and rbx, rdi
mov byte [r9 + rcx], dl
mov byte [r9 + rbx + 0x10], dl
not rsi
lea rdx, [rsi + rsi*2]
shl rdx, 4
not rcx
lea rcx, [rcx + rcx*2]
shl rcx, 4
movdqu xmm0, xmmword [r8 + rdx]
movdqu xmm1, xmmword [r8 + rdx + 0x10]
movups xmm2, xmmword [r8 + rdx + 0x20]
movups xmmword [r9 + rcx + 0x20], xmm2
movdqu xmmword [r9 + rcx + 0x10], xmm1
movdqu xmmword [r9 + rcx], xmm0
mov r14d, eax
test r13, r13
je 0x140069b3f
test r14w, r14w
jne 0x1400698ef
nop dword [rax]
movdqa xmm0, xmmword [r10 + 0x10]
add r10, 0x10
pmovmskb r14d, xmm0
add r11, 0x10
cmp r14d, 0xffff
je 0x1400698d0
not r14d
tzcnt esi, r14d
add rsi, r11
mov rax, rsi
neg rax
lea rax, [rax + rax*2]
shl rax, 4
mov r12, qword [r8 + rax - 0x28]
mov rbx, qword [r8 + rax - 0x20]
mov rcx, rbx
movabs rax, 0x5851f42d4c957f2d
imul rcx, rax
cmp rbx, 8
mov qword [rsp + 0x30], r13
jbe 0x1400699c0
cmp rbx, 0x10
jbe 0x1400699f0
mov rdx, qword [r12 + rbx - 0x10]
mov r13, rbp
movabs rbp, 0xa4093822299f31d0
xor rdx, rbp
mov rax, qword [r12 + rbx - 8]
xor rax, r13
mul rdx
movabs r8, 0xe23bfdf3302a07c7
add rcx, r8
xor rcx, rdx
xor rcx, rax
rol rcx, 0x17
movabs r8, 0x243f6a8885a308d3
nop word [rax + rax]
mov rdx, qword [r12]
mov rax, qword [r12 + 8]
add r12, 0x10
add rbx, 0xfffffffffffffff0
xor rdx, rbp
xor rax, r13
mul rdx
add rcx, r8
xor rcx, rdx
xor rcx, rax
rol rcx, 0x17
cmp rbx, 0x10
ja 0x140069980
jmp 0x140069a94
cmp rbx, 1
jbe 0x140069a40
cmp rbx, 3
movabs r8, 0x243f6a8885a308d3
jbe 0x140069a56
mov edx, dword [r12]
mov eax, dword [r12 + rbx - 4]
jmp 0x140069a67
mov rdx, qword [r12]
movabs rax, 0xa4093822299f31d0
xor rdx, rax
mov rax, qword [r12 + rbx - 8]
xor rax, rbp
mul rdx
movabs r8, 0xe23bfdf3302a07c7
add rcx, r8
xor rcx, rdx
xor rcx, rax
rol rcx, 0x17
mov r13, rbp
movabs r8, 0x243f6a8885a308d3
jmp 0x140069a94
movabs r8, 0x243f6a8885a308d3
jne 0x140069a63
movzx edx, byte [r12]
mov rax, rdx
jmp 0x140069a67
movzx edx, word [r12]
movzx eax, byte [rbx + r12 - 1]
jmp 0x140069a67
xor edx, edx
xor eax, eax
movabs rbx, 0xa4093822299f31d0
xor rdx, rbx
xor rax, rbp
mul rdx
xor rdx, rax
movabs rax, 0xe23bfdf3302a07c7
add rcx, rax
xor rcx, rdx
rol rcx, 0x17
mov r13, rbp
xor rcx, 0xff
mov rax, rcx
movabs rcx, 0x5851f42d4c957f2d
mul rcx
mov rcx, rax
xor rcx, rdx
mov rax, rcx
mul r8
xor rdx, rax
rol rdx, cl
mov rax, rdx
and rax, rdi
movdqu xmm0, xmmword [r9 + rax]
pmovmskb ecx, xmm0
test ecx, ecx
je 0x140069ae0
mov rbp, r13
mov r8, qword [rsp + 0x28]
mov r13, qword [rsp + 0x30]
jmp 0x140069b18
mov ebx, 0x10
mov rbp, r13
mov r8, qword [rsp + 0x28]
mov r13, qword [rsp + 0x30]
nop word cs:[rax + rax]
add rax, rbx
and rax, rdi
movdqu xmm0, xmmword [r9 + rax]
pmovmskb ecx, xmm0
add rbx, 0x10
test ecx, ecx
je 0x140069b00
tzcnt ecx, ecx
add rcx, rax
and rcx, rdi
cmp byte [r9 + rcx], 0
js 0x140069860
movdqa xmm0, xmmword [r9]
pmovmskb eax, xmm0
tzcnt ecx, eax
jmp 0x140069860
mov rcx, qword [rsp + 0x48]
sub rcx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x38]
mov qword [rax], r9
mov qword [rax + 8], rdi
mov qword [rax + 0x10], rcx
movabs rdi, 0x8000000000000001
test r15, r15
je 0x140069c50
mov ecx, 0x30
mov rax, qword [rsp + 0x40]
mul rcx
add r15, rax
cmp r15, 0xffffffffffffffef
je 0x140069c50
sub r8, rax
mov rcx, qword [0x140090d88]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x140069c50
movabs rdx, 0x1ffffffffffffffe
and rdx, rax
xor ecx, ecx
movdqa xmm0, xmmword [0x14006e6a0]
nop word cs:[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 0x140069bc0
test al, 1
je 0x140069c0a
pxor xmm0, xmm0
pcmpgtb xmm0, xmmword [rbx + rcx]
por xmm0, xmmword [0x14006e6a0]
movdqa xmmword [rbx + rcx], xmm0
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x20], r14
mov qword [rsp + 0x38], rsi
cmp r12, 0x10
jae 0x140069c67
lea rcx, [rbx + 0x10]
mov rdx, rbx
mov r8, r12
call fcn.1400684b0
test r12, r12
jne 0x140069c71
mov rcx, qword [rsp + 0x50]
sub rcx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x38]
mov qword [rax + 0x10], rcx
movabs rdi, 0x8000000000000001
mov rax, rdi
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movdqu xmm0, xmmword [rbx]
movdqu xmmword [rbx + r12], xmm0
lea rax, [rbx - 0x30]
mov qword [rsp + 0x40], rax
lea r9, [rbx - 0x2e]
xor ecx, ecx
movabs r14, 0xa4093822299f31d0
movabs r13, 0x82efa98ec4e6c89
movabs r12, 0x243f6a8885a308d3
mov qword [rsp + 0x48], r9
xor r10d, r10d
jmp 0x140069cd9
shr rdx, 0x39
lea rax, [r10 - 0x10]
and rax, r15
mov byte [rbx + r10], dl
mov byte [rbx + rax + 0x10], dl
xor ecx, ecx
lea rax, [r10 + 1]
add r9, 0xffffffffffffffd0
cmp r10, r15
mov r10, rax
je 0x140069c33
cmp cl, byte [rbx + r10]
jno 0x140069cc5
mov rax, r10
shl rax, 4
lea rax, [rax + rax*2]
mov rsi, qword [rsp + 0x40]
sub rsi, rax
mov rbp, rbx
sub rbp, rax
mov rax, r10
not rax
lea r8, [rax + rax*2]
shl r8, 4
add r8, rbx
mov rax, r10
neg rax
lea rax, [rax + rax*2]
shl rax, 4
add rax, rbx
mov qword [rsp + 0x30], rax
jmp 0x140069d66
movups xmm0, xmmword [r8]
movups xmm1, xmmword [rax]
movups xmmword [r8], xmm1
movups xmmword [rax], xmm0
movups xmm0, xmmword [r8 + 0x10]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [r8 + 0x10], xmm1
movups xmmword [rax + 0x10], xmm0
movdqu xmm0, xmmword [r8 + 0x20]
movdqu xmm1, xmmword [rax + 0x20]
movdqu xmmword [r8 + 0x20], xmm1
movdqu xmmword [rax + 0x20], xmm0
mov rax, qword [rsp + 0x30]
mov rdi, qword [rax - 0x28]
mov r11, qword [rax - 0x20]
mov rcx, r11
movabs rax, 0x5851f42d4c957f2d
imul rcx, rax
cmp r11, 8
jbe 0x140069e30
cmp r11, 0x10
jbe 0x140069e50
mov rdx, qword [rdi + r11 - 0x10]
xor rdx, r14
mov rax, qword [rdi + r11 - 8]
xor rax, r13
mul rdx
mov qword [rsp + 0x28], rax
mov rax, r12
mov r12, r13
mov r13, r14
mov r14, r8
mov r8, rbp
mov rbp, r10
mov r10, rsi
movabs rsi, 0xe23bfdf3302a07c7
add rcx, rsi
mov rsi, r10
mov r10, rbp
mov rbp, r8
mov r8, r14
mov r14, r13
mov r13, r12
mov r12, rax
xor rcx, rdx
xor rcx, qword [rsp + 0x28]
rol rcx, 0x17
nop word cs:[rax + rax]
mov rdx, qword [rdi]
mov rax, qword [rdi + 8]
add rdi, 0x10
add r11, 0xfffffffffffffff0
xor rdx, r14
xor rax, r13
mul rdx
add rcx, r12
xor rcx, rdx
xor rcx, rax
rol rcx, 0x17
cmp r11, 0x10
ja 0x140069e00
jmp 0x140069eb9
cmp r11, 1
jbe 0x140069e80
cmp r11, 3
jbe 0x140069e8a
mov edx, dword [rdi]
mov eax, dword [rdi + r11 - 4]
jmp 0x140069e99
mov rdx, qword [rdi]
xor rdx, r14
mov rax, qword [rdi + r11 - 8]
xor rax, r13
mul rdx
movabs r11, 0xe23bfdf3302a07c7
add rcx, r11
xor rcx, rdx
xor rcx, rax
jmp 0x140069eb5
jne 0x140069e95
movzx edx, byte [rdi]
mov rax, rdx
jmp 0x140069e99
movzx edx, word [rdi]
movzx eax, byte [r11 + rdi - 1]
jmp 0x140069e99
xor edx, edx
xor eax, eax
xor rdx, r14
xor rax, r13
mul rdx
xor rdx, rax
movabs rax, 0xe23bfdf3302a07c7
add rcx, rax
xor rcx, rdx
rol rcx, 0x17
xor rcx, 0xff
mov rax, rcx
movabs rcx, 0x5851f42d4c957f2d
mul rcx
mov rcx, rax
xor rcx, rdx
mov rax, rcx
mul r12
xor rdx, rax
rol rdx, cl
mov rax, rdx
and rax, r15
movdqu xmm0, xmmword [rbx + rax]
pmovmskb ecx, xmm0
mov r11, rax
test ecx, ecx
jne 0x140069f18
mov edi, 0x10
mov r11, rax
add r11, rdi
and r11, r15
movdqu xmm0, xmmword [rbx + r11]
pmovmskb ecx, xmm0
add rdi, 0x10
test ecx, ecx
je 0x140069f00
tzcnt ecx, ecx
add rcx, r11
and rcx, r15
cmp byte [rbx + rcx], 0
js 0x140069f34
movdqa xmm0, xmmword [rbx]
pmovmskb ecx, xmm0
tzcnt ecx, ecx
mov r11, r10
sub r11, rax
mov rdi, rcx
sub rdi, rax
xor rdi, r11
and rdi, r15
cmp rdi, 0x10
jb 0x140069cb0
mov rax, rcx
not rax
lea rax, [rax + rax*2]
shl rax, 4
add rax, rbx
movzx r11d, byte [rbx + rcx]
shr rdx, 0x39
lea rdi, [rcx - 0x10]
and rdi, r15
mov byte [rbx + rcx], dl
mov byte [rbx + rdi + 0x10], dl
cmp r11b, 0xff
je 0x14006a000
shl rcx, 4
lea rcx, [rcx + rcx*2]
mov rdx, rbx
sub rdx, rcx
cmp rsi, rdx
setae dl
cmp rax, rbp
setae r11b
or r11b, dl
jne 0x140069d30
mov rax, qword [rsp + 0x48]
sub rax, rcx
xor ecx, ecx
movzx edx, byte [r9 + rcx - 2]
movzx r11d, byte [rax + rcx - 2]
mov byte [r9 + rcx - 2], r11b
mov byte [rax + rcx - 2], dl
movzx edx, byte [r9 + rcx - 1]
movzx r11d, byte [rax + rcx - 1]
mov byte [r9 + rcx - 1], r11b
mov byte [rax + rcx - 1], dl
movzx edx, byte [r9 + rcx]
movzx r11d, byte [rax + rcx]
mov byte [r9 + rcx], r11b
mov byte [rax + rcx], dl
add rcx, 3
cmp rcx, 0x30
jne 0x140069fb0
jmp 0x140069d66
lea rcx, [r10 - 0x10]
and rcx, r15
mov byte [rbx + r10], 0xff
mov byte [rbx + rcx + 0x10], 0xff
movdqu xmm0, xmmword [r8]
movdqu xmm1, xmmword [r8 + 0x10]
movups xmm2, xmmword [r8 + 0x20]
movups xmmword [rax + 0x20], xmm2
movdqu xmmword [rax + 0x10], xmm1
movdqu xmmword [rax], xmm0
jmp 0x140069cc3
lea rax, [0x1400705f0]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], 1
mov qword [rsp + 0x68], 8
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
lea rdx, str.C:Usersuser.cargo_registry_srcindex.crates.io_6f17d22bba15001fhashbrown_0.14.5_src_rawmod.rs
lea rcx, [rsp + 0x58]
call fcn.14006ad40
int3