Function at 0x140247080
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x148
movdqa xmmword [rsp + 0x130], xmm6
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
mov rax, qword [rdx]
movzx eax, byte [rax + 0x24]
cmp al, 2
je 0x1402470b0
and al, 1
je 0x14024754e
movzx eax, byte [rdi + 0x30]
test rax, rax
je 0x14024715d
cmp eax, 1
jne 0x140247206
movzx eax, byte [0x1403ce430]
mov rcx, qword [0x1403cdf08]
test rcx, rcx
jne 0x1402470f2
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x140247568
mov rcx, rax
mov qword [0x1403cdf08], rax
mov r8d, 0x50
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x140247568
movaps xmm0, xmmword [0x1402fa320]
movups xmmword [rax], xmm0
movaps xmm0, xmmword [0x1402fa330]
movups xmmword [rax + 0x10], xmm0
movaps xmm0, xmmword [0x1402fa340]
movups xmmword [rax + 0x20], xmm0
movaps xmm0, xmmword [0x1402fa350]
movups xmmword [rax + 0x30], xmm0
movdqa xmm0, xmmword [0x1402fa360]
movdqu xmmword [rax + 0x40], xmm0
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 0xa
mov qword [rsp + 0x40], 0xa
jmp 0x1402473e8
movzx eax, byte [0x1403ce430]
mov rcx, qword [0x1403cdf08]
test rcx, rcx
jne 0x140247189
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x140247579
mov rcx, rax
mov qword [0x1403cdf08], rax
mov r8d, 0x200
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x140247579
lea rdx, str.AnyAssignedASCII
lea rcx, [0x14034dd1c]
cmp rax, rdx
jae 0x14024727f
mov r8, rax
add r8, 0x200
cmp r8, rcx
jbe 0x14024727f
xor r8d, r8d
nop dword [rax]
mov r9d, dword [r8 + rcx]
mov r10d, dword [r8 + rcx + 4]
cmp r9d, r10d
mov r11d, r10d
cmovb r11d, r9d
cmova r10d, r9d
mov dword [rax + r8], r11d
mov dword [rax + r8 + 4], r10d
lea r9, [r8 + rcx]
add r9, 8
add r8, 8
cmp r9, rdx
jne 0x1402471d0
jmp 0x1402472ed
movzx eax, byte [0x1403ce430]
mov rcx, qword [0x1403cdf08]
test rcx, rcx
jne 0x140247232
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x14024758a
mov rcx, rax
mov qword [0x1403cdf08], rax
mov r8d, 0x1818
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x14024758a
lea rcx, [0x14034dccc]
cmp rax, rcx
jae 0x140247309
lea rdx, [rax + 0x1818]
lea r8, [0x14034c4b4]
cmp rdx, r8
jbe 0x140247309
lea rdx, [0x14034c4b4]
xor r8d, r8d
jmp 0x140247395
xor edx, edx
movdqa xmm0, xmmword [0x1402f9750]
nop dword [rax]
movdqu xmm1, xmmword [rdx + rcx]
pshufd xmm2, xmm1, 0xe8
pshufd xmm1, xmm1, 0xed
movdqa xmm3, xmm2
pxor xmm3, xmm0
movdqa xmm4, xmm1
pxor xmm4, xmm0
movdqa xmm5, xmm4
pcmpgtd xmm5, xmm3
movdqa xmm6, xmm2
pand xmm6, xmm5
pandn xmm5, xmm1
por xmm5, xmm6
pcmpgtd xmm3, xmm4
pand xmm2, xmm3
pandn xmm3, xmm1
por xmm3, xmm2
punpckldq xmm5, xmm3
movdqu xmmword [rax + rdx], xmm5
add rdx, 0x10
cmp rdx, 0x200
jne 0x140247290
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 0x40
mov qword [rsp + 0x40], 0x40
jmp 0x1402473e8
xor r8d, r8d
lea r9, [0x14034c4b4]
movdqa xmm0, xmmword [0x1402f9750]
lea rdx, [0x14034dcc4]
nop word cs:[rax + rax]
movdqu xmm1, xmmword [r8 + r9]
pshufd xmm2, xmm1, 0xe8
pshufd xmm1, xmm1, 0xed
movdqa xmm3, xmm2
pxor xmm3, xmm0
movdqa xmm4, xmm1
pxor xmm4, xmm0
movdqa xmm5, xmm4
pcmpgtd xmm5, xmm3
movdqa xmm6, xmm2
pand xmm6, xmm5
pandn xmm5, xmm1
por xmm5, xmm6
pcmpgtd xmm3, xmm4
pand xmm2, xmm3
pandn xmm3, xmm1
por xmm3, xmm2
punpckldq xmm5, xmm3
movdqu xmmword [rax + r8], xmm5
add r8, 0x10
cmp r8, 0x1810
jne 0x140247330
mov r8d, 0x302
lea r8, [rax + r8*8]
add r8, 4
xor r9d, r9d
mov r10d, dword [rdx + r9]
mov r11d, dword [rdx + r9 + 4]
cmp r10d, r11d
mov ebp, r11d
cmovb ebp, r10d
cmova r11d, r10d
mov dword [r8 + r9 - 4], ebp
mov dword [r8 + r9], r11d
lea r10, [rdx + r9]
add r10, 8
add r9, 8
cmp r10, rcx
jne 0x1402473a0
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 0x303
mov qword [rsp + 0x40], 0x303
mov byte [rsp + 0x48], 0
lea rcx, [rsp + 0x30]
call fcn.140242110
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x90], xmm1
movaps xmmword [rsp + 0x80], xmm0
movaps xmm0, xmmword [rsp + 0x80]
movaps xmm1, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x120], xmm1
movaps xmmword [rsp + 0x110], xmm0
mov rdx, qword [rbx + 8]
mov r8, qword [rbx + 0x10]
lea rax, [rsp + 0x110]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x30]
mov r9, rdi
call fcn.1402480a0
movzx eax, byte [rsp + 0x78]
cmp al, 7
jne 0x1402474a9
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0xb0], xmm1
cmp byte [rdi + 0x31], 0
je 0x140247489
lea rcx, [rsp + 0xa0]
call fcn.140242ef0
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmm1, xmmword [rsp + 0xb0]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
mov byte [rsi + 0x48], 7
jmp 0x14024753a
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x100], rcx
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
movups xmm3, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xf0], xmm3
movaps xmmword [rsp + 0xe0], xmm2
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xc0], xmm0
mov ecx, dword [rsp + 0x7c]
mov dword [rsi + 0x4c], ecx
mov ecx, dword [rsp + 0x79]
mov dword [rsi + 0x49], ecx
mov rcx, qword [rsp + 0x100]
mov qword [rsi + 0x40], rcx
movaps xmm0, xmmword [rsp + 0xc0]
movaps xmm1, xmmword [rsp + 0xd0]
movdqa xmm2, xmmword [rsp + 0xe0]
movdqa xmm3, xmmword [rsp + 0xf0]
movdqu xmmword [rsi + 0x30], xmm3
movdqu xmmword [rsi + 0x20], xmm2
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
mov byte [rsi + 0x48], al
movaps xmm6, xmmword [rsp + 0x130]
add rsp, 0x148
pop rbx
pop rbp
pop rdi
pop rsi
ret
lea rcx, str.assertion_failed:_self.flags__.unicode__
lea r8, str.C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_regex_syntax_0.7.5_srchir_translate.rs
mov edx, 0x28
call fcn.1402ea480
ud2
mov ecx, 4
mov edx, 0x50
call fcn.1402e6e10
ud2
mov ecx, 4
mov edx, 0x200
call fcn.1402e6e10
ud2
mov ecx, 4
mov edx, 0x1818
call fcn.1402e6e10
ud2