Function at 0x1400fa770
Capabilities:
Encode data using xor

Disassembly:
push rbp
mov rbp, rsp
push r15
push r14
push r13
mov r13, rcx
push r12
push rdi
push rsi
push rbx
sub rsp, 0x10
and rsp, 0xfffffffffffffff0
sub rsp, 0x40
mov rsi, qword [rbp + 0x40]
mov rbx, qword [rbp + 0x50]
mov qword [rbp + 0x20], r8
movaps xmmword [rsp + 0x40], xmm6
mov r12, qword [rbp + 0x38]
mov rdi, qword [rbp + 0x48]
movq xmm1, rbx
movq xmm6, rsi
mov qword [rbp + 0x18], rdx
mov qword [rbp + 0x28], r9
punpcklqdq xmm6, xmm1
call sub.msvcrt.dll_strlen
mov r8, rax
mov r14d, eax
mov rax, qword [0x1403ee080]
mov qword [rsp + 0x38], rax
test rax, rax
je 0x1400fab07
mov r10, r13
cmp r8d, 0xb
jbe 0x1400fb180
mov ecx, 0x9e3779b9
mov eax, 0xfeedbeef
mov r11d, r8d
mov r15d, 0x9e3779b9
mov r9d, ecx
mov ecx, eax
nop word [rax + rax]
movzx eax, byte [r10 + 5]
movzx edx, byte [r10 + 6]
shl eax, 8
shl edx, 0x10
add eax, edx
movzx edx, byte [r10 + 4]
add eax, edx
movzx edx, byte [r10 + 7]
shl edx, 0x18
add eax, edx
movzx edx, byte [r10 + 0xa]
add r15d, eax
movzx eax, byte [r10 + 9]
shl edx, 0x10
shl eax, 8
add eax, edx
movzx edx, byte [r10 + 8]
add eax, edx
movzx edx, byte [r10 + 0xb]
shl edx, 0x18
add edx, eax
lea eax, [rdx + rcx]
movzx ecx, byte [r10 + 1]
movzx edx, byte [r10 + 2]
shl ecx, 8
shl edx, 0x10
add ecx, edx
movzx edx, byte [r10]
add ecx, edx
movzx edx, byte [r10 + 3]
shl edx, 0x18
add ecx, edx
mov edx, eax
sub ecx, r15d
shr edx, 0xd
sub r15d, eax
sub ecx, eax
lea ecx, [rcx + r9]
xor edx, ecx
mov ecx, r15d
mov r15d, edx
sub ecx, edx
sub eax, edx
shl r15d, 8
xor r15d, ecx
sub eax, r15d
sub edx, r15d
mov ecx, eax
mov eax, r15d
shr eax, 0xd
xor eax, ecx
sub edx, eax
sub r15d, eax
sub r11d, 0xc
add r10, 0xc
mov ecx, edx
mov edx, eax
shr edx, 0xc
xor edx, ecx
mov ecx, r15d
mov r15d, edx
sub ecx, edx
sub eax, edx
shl r15d, 0x10
xor r15d, ecx
sub eax, r15d
sub edx, r15d
mov ecx, eax
mov eax, r15d
shr eax, 5
xor eax, ecx
mov r9d, eax
sub edx, eax
sub r15d, eax
shr r9d, 3
xor r9d, edx
mov edx, r9d
sub r15d, r9d
sub eax, r9d
shl edx, 0xa
xor r15d, edx
mov ecx, r15d
sub eax, r15d
shr ecx, 0xf
xor ecx, eax
cmp r11d, 0xb
ja 0x1400fa808
mov eax, ecx
mov ecx, r9d
add eax, r8d
cmp r11d, 0xb
ja case.0x1400fa930.0
lea rdx, [0x14027b574]
movsxd r9, dword [rdx + r11*4]
add r9, rdx
jmp r9
movzx edx, byte [r10 + 0xa]
shl edx, 0x18
add eax, edx
movzx edx, byte [r10 + 9]
shl edx, 0x10
add eax, edx
movzx edx, byte [r10 + 8]
shl edx, 8
add eax, edx
movzx edx, byte [r10 + 7]
shl edx, 0x18
add r15d, edx
movzx edx, byte [r10 + 6]
shl edx, 0x10
add r15d, edx
movzx edx, byte [r10 + 5]
shl edx, 8
add r15d, edx
movzx edx, byte [r10 + 4]
add r15d, edx
movzx edx, byte [r10 + 3]
shl edx, 0x18
add ecx, edx
movzx edx, byte [r10 + 2]
shl edx, 0x10
add ecx, edx
movzx edx, byte [r10 + 1]
shl edx, 8
add ecx, edx
movzx edx, byte [r10]
add ecx, edx
lea edx, [rax + r15]
sub ecx, edx
mov edx, eax
shr edx, 0xd
xor ecx, edx
mov edx, r15d
sub edx, eax
mov r9d, ecx
sub eax, ecx
sub edx, ecx
shl r9d, 8
xor edx, r9d
sub eax, edx
sub ecx, edx
mov r9d, eax
mov eax, edx
shr eax, 0xd
xor eax, r9d
sub ecx, eax
sub edx, eax
mov r9d, ecx
mov ecx, eax
shr ecx, 0xc
xor ecx, r9d
sub edx, ecx
sub eax, ecx
mov r9d, edx
mov edx, ecx
shl edx, 0x10
xor edx, r9d
sub eax, edx
sub ecx, edx
mov r9d, eax
mov eax, edx
shr eax, 5
xor eax, r9d
mov r9d, eax
sub ecx, eax
sub edx, eax
shr r9d, 3
xor ecx, r9d
mov r9d, ecx
sub edx, ecx
sub eax, ecx
shl r9d, 0xa
xor edx, r9d
sub eax, edx
shr edx, 0xf
xor edx, eax
mov rax, qword [rsp + 0x38]
mov r9d, edx
mov rdx, qword [rax + 0xa0]
mov eax, dword [rdx + 8]
sub eax, 1
and eax, r9d
shl rax, 4
add rax, qword [rdx]
mov r15, qword [rax]
test r15, r15
je 0x1400fab07
mov rax, qword [rdx + 0x20]
mov r8d, r8d
mov qword [rbp + 0x40], rsi
mov rsi, r13
mov qword [rbp + 0x48], rdi
mov rdi, r8
mov r10, rax
mov qword [rbp + 0x50], rbx
sub r15, rax
mov ebx, r14d
neg r10
mov r14d, r9d
mov r13, r10
jmp 0x1400faa87
mov r15, qword [r15 + 0xc0]
test r15, r15
je 0x1400faaf8
add r15, r13
cmp dword [r15 + 0xd4], r14d
jne 0x1400faa78
cmp dword [r15 + 0xd0], ebx
jne 0x1400faa78
mov rcx, qword [r15 + 0xc8]
mov r8, rdi
mov rdx, rsi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x1400faa78
lea rax, str.Plugin_name___s__is_already_present
mov qword [rsp + 0x28], rsi
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rax
mov r9d, 7
lea r8, str.dap_plugin_manifest
xor r14d, r14d
call fcn.14005a160
movaps xmm6, xmmword [rsp + 0x40]
lea rsp, [rbp - 0x38]
mov rax, r14
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov r13, rsi
mov rdi, qword [rbp + 0x48]
mov rsi, qword [rbp + 0x40]
mov rbx, qword [rbp + 0x50]
mov edx, 0xd8
mov ecx, 1
call sub.msvcrt.dll_calloc
mov r14, rax
test rax, rax
je 0x1400fb1a0
mov rdx, r13
mov r8d, 0x3f
mov rcx, rax
call sub.msvcrt.dll_strncpy
mov rcx, qword [rbp + 0x18]
call fcn.140100eb0
mov byte [r14 + 0x98], 1
mov rcx, qword [rbp + 0x20]
mov qword [r14 + 0x58], rax
call fcn.140100eb0
mov rcx, qword [rbp + 0x28]
mov qword [r14 + 0x48], rax
call fcn.140100eb0
mov rcx, qword [rbp + 0x30]
mov qword [r14 + 0x40], rax
call fcn.140100eb0
mov rdx, rsi
mov qword [r14 + 0x50], rax
xor eax, eax
shl rdx, 3
jne 0x1400fb0b0
mov qword [r14 + 0x78], rax
test rsi, rsi
je 0x1400fabad
xor r13d, r13d
jmp 0x1400fab94
mov rax, qword [r14 + 0x78]
mov rcx, qword [r12 + r13*8]
lea r15, [rax + r13*8]
add r13, 1
call fcn.140100eb0
mov qword [r15], rax
cmp rsi, r13
jne 0x1400fab90
mov rdx, rbx
xor eax, eax
movups xmmword [r14 + 0x80], xmm6
shl rdx, 3
jne 0x1400fb0c0
mov qword [r14 + 0x90], rax
test rbx, rbx
je 0x1400fabf9
xor esi, esi
jmp 0x1400fabdf
mov rax, qword [r14 + 0x90]
mov rcx, qword [rdi + rsi*8]
lea r12, [rax + rsi*8]
add rsi, 1
call fcn.140100eb0
mov qword [r12], rax
cmp rbx, rsi
jne 0x1400fabd8
mov rcx, r14
call sub.msvcrt.dll_strlen
mov r9, r14
mov r11, rax
cmp eax, 0xb
jbe 0x1400fb169
mov ecx, 0x9e3779b9
mov r10d, eax
mov edx, 0x9e3779b9
mov eax, 0xfeedbeef
mov ebx, ecx
nop dword [rax]
movzx ecx, byte [r9 + 5]
movzx r8d, byte [r9 + 6]
shl ecx, 8
shl r8d, 0x10
add ecx, r8d
movzx r8d, byte [r9 + 4]
add ecx, r8d
movzx r8d, byte [r9 + 7]
shl r8d, 0x18
add ecx, r8d
movzx r8d, byte [r9 + 0xa]
add edx, ecx
movzx ecx, byte [r9 + 9]
shl r8d, 0x10
shl ecx, 8
add ecx, r8d
movzx r8d, byte [r9 + 8]
add ecx, r8d
movzx r8d, byte [r9 + 0xb]
shl r8d, 0x18
add ecx, r8d
movzx r8d, byte [r9 + 2]
add eax, ecx
movzx ecx, byte [r9 + 1]
shl r8d, 0x10
shl ecx, 8
add ecx, r8d
movzx r8d, byte [r9]
add ecx, r8d
movzx r8d, byte [r9 + 3]
shl r8d, 0x18
add ecx, r8d
mov r8d, eax
sub ecx, edx
shr r8d, 0xd
sub edx, eax
sub ecx, eax
lea ecx, [rcx + rbx]
xor ecx, r8d
sub edx, ecx
sub eax, ecx
mov r8d, edx
mov edx, ecx
shl edx, 8
xor edx, r8d
sub eax, edx
mov r8d, eax
mov eax, edx
shr eax, 0xd
xor eax, r8d
sub ecx, edx
sub r10d, 0xc
add r9, 0xc
sub ecx, eax
sub edx, eax
mov r8d, ecx
mov ecx, eax
shr ecx, 0xc
xor ecx, r8d
sub edx, ecx
sub eax, ecx
mov r8d, edx
mov edx, ecx
shl edx, 0x10
xor edx, r8d
sub eax, edx
sub ecx, edx
mov r8d, eax
mov eax, edx
shr eax, 5
xor eax, r8d
mov ebx, eax
sub ecx, eax
sub edx, eax
shr ebx, 3
xor ebx, ecx
mov ecx, edx
mov edx, ebx
sub ecx, ebx
sub eax, ebx
shl edx, 0xa
xor edx, ecx
sub eax, edx
mov ecx, eax
mov eax, edx
shr eax, 0xf
xor eax, ecx
cmp r10d, 0xb
ja 0x1400fac28
mov ecx, ebx
add eax, r11d
cmp r10d, 0xb
ja case.0x1400fad53.0
lea rbx, [0x14027b5a4]
movsxd r8, dword [rbx + r10*4]
add r8, rbx
jmp r8
movzx r8d, byte [r9 + 0xa]
shl r8d, 0x18
add eax, r8d
movzx r8d, byte [r9 + 9]
shl r8d, 0x10
add eax, r8d
movzx r8d, byte [r9 + 8]
shl r8d, 8
add eax, r8d
movzx r8d, byte [r9 + 7]
shl r8d, 0x18
add edx, r8d
movzx r8d, byte [r9 + 6]
shl r8d, 0x10
add edx, r8d
movzx r8d, byte [r9 + 5]
shl r8d, 8
add edx, r8d
movzx r8d, byte [r9 + 4]
add edx, r8d
movzx r8d, byte [r9 + 3]
shl r8d, 0x18
add ecx, r8d
movzx r8d, byte [r9 + 2]
shl r8d, 0x10
add ecx, r8d
movzx r8d, byte [r9 + 1]
shl r8d, 8
add ecx, r8d
movzx r8d, byte [r9]
add ecx, r8d
lea r8d, [rax + rdx]
sub edx, eax
movd xmm0, r11d
mov qword [r14 + 0xc8], r14
sub ecx, r8d
mov r8d, eax
shr r8d, 0xd
xor r8d, ecx
mov ecx, r8d
sub edx, r8d
sub eax, r8d
shl ecx, 8
xor edx, ecx
sub eax, edx
sub r8d, edx
mov ecx, eax
mov eax, edx
shr eax, 0xd
xor eax, ecx
mov ecx, eax
sub r8d, eax
sub edx, eax
shr ecx, 0xc
xor ecx, r8d
sub edx, ecx
sub eax, ecx
mov r8d, edx
mov edx, ecx
shl edx, 0x10
xor edx, r8d
sub eax, edx
sub ecx, edx
mov r8d, eax
mov eax, edx
shr eax, 5
xor eax, r8d
mov r8d, eax
sub ecx, eax
sub edx, eax
shr r8d, 3
xor ecx, r8d
mov ebx, ecx
sub edx, ecx
sub eax, ecx
shl ebx, 0xa
xor ebx, edx
sub eax, ebx
shr ebx, 0xf
xor ebx, eax
mov rax, qword [0x1403ee080]
movd xmm2, ebx
punpckldq xmm0, xmm2
movq qword [r14 + 0xd0], xmm0
test rax, rax
je 0x1400fb0d0
mov rdx, qword [rax + 0xa0]
lea rdi, [r14 + 0xa0]
mov qword [r14 + 0xb0], 0
mov qword [r14 + 0xa0], rdx
mov rcx, qword [rax + 0xa0]
mov rdx, qword [rcx + 0x18]
sub rdx, qword [rcx + 0x20]
mov qword [r14 + 0xa8], rdx
mov rdx, qword [rax + 0xa0]
mov rdx, qword [rdx + 0x18]
mov qword [rdx + 0x10], r14
mov rdx, qword [rax + 0xa0]
mov qword [rdx + 0x18], rdi
mov rsi, qword [rax + 0xa0]
mov ecx, dword [rsi + 0x10]
lea edx, [rcx + 1]
mov dword [rsi + 0x10], edx
mov rdx, qword [rax + 0xa0]
mov eax, dword [rdx + 8]
sub eax, 1
and eax, ebx
shl rax, 4
add rax, qword [rdx]
mov rdx, qword [rax]
add dword [rax + 8], 1
mov qword [r14 + 0xb8], 0
mov qword [r14 + 0xc0], rdx
mov rdx, qword [rax]
test rdx, rdx
je 0x1400faf13
mov qword [rdx + 0x18], rdi
mov edx, dword [rax + 0xc]
mov qword [rax], rdi
lea edx, [rdx + rdx*4 + 5]
add edx, edx
cmp dword [rax + 8], edx
jb 0x1400faad9
mov rdi, qword [r14 + 0xa0]
mov ebx, dword [rdi + 0x34]
test ebx, ebx
jne 0x1400faad9
mov ecx, dword [rdi + 8]
mov edx, 1
shl rcx, 5
call sub.msvcrt.dll_calloc
mov rsi, rax
test rax, rax
je 0x1400fb198
mov edx, dword [rdi + 8]
mov eax, dword [rdi + 0x10]
mov ecx, dword [rdi + 0xc]
lea edx, [rdx + rdx - 1]
test edx, eax
setne dl
add ecx, 1
shr eax, cl
movzx edx, dl
add edx, eax
mov dword [rdi + 0x28], edx
mov rax, qword [r14 + 0xa0]
mov dword [rax + 0x2c], 0
mov r8, qword [r14 + 0xa0]
mov eax, dword [r8 + 8]
test eax, eax
je 0x1400fb050
xor r10d, r10d
nop word [rax + rax]
mov edx, r10d
shl rdx, 4
add rdx, qword [r8]
mov rdx, qword [rdx]
test rdx, rdx
jne 0x1400fafda
jmp 0x1400fb043
mov qword [rcx + 0x18], rdx
mov r8, qword [r14 + 0xa0]
mov qword [rax], rdx
test r9, r9
je 0x1400fb03f
mov eax, dword [r8 + 8]
mov rdx, r9
lea eax, [rax + rax - 1]
and eax, dword [rdx + 0x34]
mov r9, qword [rdx + 0x20]
shl rax, 4
add rax, rsi
mov edi, dword [rax + 8]
lea ecx, [rdi + 1]
mov dword [rax + 8], ecx
cmp ecx, dword [r8 + 0x28]
jbe 0x1400fb01c
add dword [r8 + 0x2c], 1
mov r8, qword [r14 + 0xa0]
mov ecx, dword [rax + 0xc]
mov edi, dword [r8 + 0x28]
imul edi, ecx
cmp dword [rax + 8], edi
jbe 0x1400fb01c
add ecx, 1
mov dword [rax + 0xc], ecx
mov qword [rdx + 0x18], 0
mov rcx, qword [rax]
mov qword [rdx + 0x20], rcx
test rcx, rcx
jne 0x1400fafc0
mov qword [rax], rdx
mov r8, qword [r14 + 0xa0]
test r9, r9
jne 0x1400fafd3
mov eax, dword [r8 + 8]
add r10d, 1
cmp r10d, eax
jb 0x1400fafa0
mov rcx, qword [r8]
call sub.msvcrt.dll_free
mov rax, qword [r14 + 0xa0]
shl dword [rax + 8], 1
mov rax, qword [r14 + 0xa0]
add dword [rax + 0xc], 1
mov rax, qword [r14 + 0xa0]
mov qword [rax], rsi
mov rax, qword [r14 + 0xa0]
mov edx, dword [rax + 0x10]
shr edx, 1
cmp dword [rax + 0x2c], edx
jbe 0x1400fb08e
mov edi, dword [rax + 0x30]
lea ebx, [rdi + 1]
mov dword [rax + 0x30], ebx
mov rax, qword [r14 + 0xa0]
cmp dword [rax + 0x30], 1
jbe 0x1400faad9
mov dword [rax + 0x34], 1
jmp 0x1400faad9
mov ecx, 1
call sub.msvcrt.dll_calloc
jmp 0x1400fab7e
mov ecx, 1
call sub.msvcrt.dll_calloc
jmp 0x1400fabc4
pxor xmm0, xmm0
mov ecx, 0x40
movups xmmword [r14 + 0xa8], xmm0
call sub.msvcrt.dll_malloc
mov qword [r14 + 0xa0], rax
mov rsi, rax
test rax, rax
je 0x1400fb198
lea rdi, [r14 + 0xa0]
mov qword [rax + 0x10], 0
mov edx, 1
mov ecx, 0x200
mov qword [rax + 0x28], 0
mov qword [rax + 0x30], 0
mov qword [rax + 0x38], 0
mov qword [rax + 0x18], rdi
mov rax, qword [0x14027b7a0]
mov qword [rsi + 0x20], 0xa0
mov qword [rsi + 8], rax
call sub.msvcrt.dll_calloc
mov dword [rsi + 0x38], 0xa0111fe1
mov qword [rsi], rax
test rax, rax
je 0x1400fb198
mov qword [0x1403ee080], r14
mov rax, r14
mov edx, 1
jmp 0x1400faed5
mov r10d, eax
mov edx, 0x9e3779b9
mov ecx, 0x9e3779b9
mov eax, 0xfeedbeef
jmp 0x1400fad38
mov r11d, r8d
mov r15d, 0x9e3779b9
mov ecx, 0x9e3779b9
mov eax, 0xfeedbeef
jmp 0x1400fa919
or ecx, 0xffffffff
call sub.msvcrt.dll_exit
lea rax, [0x14027b534]
mov r9d, 8
lea r8, str.dap_plugin_manifest
mov edx, 0x43
mov qword [rsp + 0x20], rax
lea rcx, str.dap_plugin_manifest_add_builtin
call fcn.14005a160
jmp 0x1400faad9