Function at 0x14009b010
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov eax, dword [rcx + 0x20]
mov r13, rcx
mov rsi, rdx
mov rbx, r8
cmp r8, 0x3f
jbe 0x14009b6b0
test eax, eax
jne 0x14009b610
vmovdqu ymm3, ymmword [r13 + 0x424]
vmovdqu ymm1, ymmword [r13 + 0x444]
mov rdx, rbx
mov edi, dword [r13 + 0x464]
shr rdx, 5
mov eax, dword [r13 + 0x468]
mov r11d, edi
vextracti128 xmm0, ymm3, 1
vpextrd dword [rsp + 0x2c], xmm3, 3
vpextrd dword [rsp + 0x28], xmm3, 1
vpextrd ebp, xmm3, 2
vmovd dword [rsp + 0x30], xmm0
vpextrd dword [rsp + 0x40], xmm1, 3
vpextrd dword [rsp + 0x3c], xmm1, 2
vmovd dword [rsp + 0x70], xmm3
vmovd dword [rsp + 0x34], xmm1
vpextrd ecx, xmm0, 3
vpextrd r14d, xmm0, 2
vpextrd dword [rsp + 0x38], xmm1, 1
vpextrd r15d, xmm0, 1
vextracti128 xmm0, ymm1, 1
vpextrd dword [rsp + 0x4c], xmm0, 2
vpextrd dword [rsp + 0x48], xmm0, 1
vpextrd r10d, xmm0, 3
vmovd dword [rsp + 0x44], xmm0
je 0x14009b5c2
shl rdx, 5
mov r12, rsi
mov dword [rsp + 0x50], r15d
mov qword [rsp + 0xd8], rsi
add rdx, rsi
mov r15d, r14d
mov esi, ebp
mov r14d, ecx
mov qword [rsp + 0x78], rdx
mov ebp, r10d
mov edx, eax
mov qword [rsp + 0xe0], rbx
nop dword [rax]
mov eax, dword [rsp + 0x70]
lea ecx, [rax - 8]
mov dword [rsp + 0x74], eax
dec eax
mov ebx, eax
and ecx, 0x1f
and ebx, 0x1f
shl rcx, 5
mov eax, ebx
mov dword [rsp + 0x70], ebx
shl rax, 5
add rax, r13
mov r8d, dword [rax + 0x2c]
xor dword [r13 + rcx + 0x24], r8d
xor r8d, dword [r12 + 8]
mov dword [rax + 0x2c], r8d
mov r8d, dword [rax + 0x30]
xor dword [r13 + rcx + 0x28], r8d
xor r8d, dword [r12 + 0xc]
mov dword [rax + 0x30], r8d
mov r8d, dword [rax + 0x34]
xor dword [r13 + rcx + 0x2c], r8d
xor r8d, dword [r12 + 0x10]
mov dword [rax + 0x34], r8d
mov r8d, dword [rax + 0x38]
xor dword [r13 + rcx + 0x30], r8d
xor r8d, dword [r12 + 0x14]
mov dword [rax + 0x38], r8d
mov r8d, dword [rax + 0x3c]
xor dword [r13 + rcx + 0x34], r8d
xor r8d, dword [r12 + 0x18]
mov dword [rax + 0x3c], r8d
mov r8d, dword [rax + 0x40]
xor dword [r13 + rcx + 0x38], r8d
xor r8d, dword [r12 + 0x1c]
mov dword [rax + 0x40], r8d
mov r8d, dword [rax + 0x24]
xor dword [r13 + rcx + 0x3c], r8d
xor r8d, dword [r12]
mov r10d, dword [rsp + 0x2c]
mov r9d, dword [rsp + 0x38]
mov r11d, dword [rsp + 0x34]
mov dword [rax + 0x24], r8d
mov r8d, dword [rax + 0x28]
xor dword [r13 + rcx + 0x40], r8d
xor r8d, dword [r12 + 4]
mov ecx, dword [rsp + 0x28]
mov dword [rax + 0x28], r8d
mov r8d, dword [rsp + 0x3c]
mov eax, r10d
mov ebx, ecx
not eax
or eax, esi
xor ebx, eax
mov eax, r8d
mov dword [rsp + 0x64], ebx
mov ebx, edx
not eax
not ebx
or eax, r9d
xor eax, r11d
mov r11d, dword [rsp + 0x48]
rorx eax, eax, 0x1f
mov dword [rsp + 0x54], eax
mov eax, ebx
mov ebx, r14d
or eax, edi
not ebx
xor eax, ebp
rorx eax, eax, 0x1d
mov dword [rsp + 0x58], eax
mov eax, ebx
mov ebx, dword [rsp + 0x50]
or eax, r15d
xor eax, ebx
mov ebx, dword [rsp + 0x44]
rorx r9d, eax, 0x1a
mov eax, dword [rsp + 0x4c]
mov dword [rsp + 0x5c], r9d
mov r9d, dword [rsp + 0x38]
not eax
or eax, r11d
xor eax, ebx
mov ebx, dword [rsp + 0x40]
rorx r11d, eax, 0x16
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x68], r11d
not ebx
not eax
or eax, r10d
or ebx, r8d
mov r8d, dword [rsp + 0x50]
mov r10d, dword [rsp + 0x34]
xor eax, esi
xor ebx, r9d
mov r9d, ebp
not esi
rorx r11d, eax, 0x11
not r9d
rorx ebx, ebx, 0xb
mov dword [rsp + 0x60], r11d
mov r11d, ecx
mov ecx, dword [rsp + 0x4c]
not r8d
not r11d
not r10d
or r11d, edx
or r10d, r14d
xor r11d, edi
not edi
xor r10d, r15d
or r9d, ecx
mov ecx, dword [rsp + 0x48]
or ebp, edi
rorx r11d, r11d, 4
rorx r10d, r10d, 0x1c
xor r9d, ecx
mov ecx, dword [rsp + 0x30]
mov eax, dword [rsp + 0x2c]
mov edi, dword [rsp + 0x4c]
rorx r9d, r9d, 0x13
or r8d, ecx
xor r8d, eax
xor ebp, edi
mov edi, r15d
mov r15d, dword [rsp + 0x30]
rorx eax, r8d, 9
mov r8d, dword [rsp + 0x50]
not edi
rorx ebp, ebp, 0x17
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0x44]
or edi, r8d
mov r8d, dword [rsp + 0x48]
not eax
xor edi, r15d
mov r15d, dword [rsp + 0x40]
mov ecx, eax
mov eax, dword [rsp + 0x40]
rorx edi, edi, 8
not r8d
or ecx, eax
mov eax, dword [rsp + 0x3c]
xor ecx, eax
mov eax, esi
mov esi, dword [rsp + 0x28]
rorx ecx, ecx, 0x1e
or eax, esi
mov esi, dword [rsp + 0x34]
xor eax, edx
mov edx, dword [rsp + 0x38]
rorx eax, eax, 0x12
not edx
or edx, esi
mov esi, r8d
mov r8d, dword [rsp + 0x44]
xor edx, r14d
rorx edx, edx, 5
or esi, r8d
mov r8d, dword [rsp + 0x68]
xor esi, r15d
rorx r15d, esi, 0x18
mov esi, dword [rsp + 0x54]
mov dword [rsp + 0x48], r15d
mov r15d, dword [rsp + 0x64]
mov r14d, esi
xor r14d, r8d
xor r15d, 1
mov r8d, dword [rsp + 0x58]
xor r15d, r14d
mov r14d, esi
mov dword [rsp + 0x28], r15d
mov r15d, dword [rsp + 0x60]
xor r15d, dword [r12]
xor r14d, r8d
mov esi, r15d
xor esi, r14d
mov r14d, dword [r12 + 4]
xor r14d, ebx
mov r15d, r14d
mov r14d, dword [rsp + 0x5c]
xor r14d, r8d
mov r8d, dword [rsp + 0x68]
xor r15d, r14d
mov r14d, dword [r12 + 8]
mov dword [rsp + 0x2c], r15d
xor r14d, r11d
mov r15d, r14d
mov r14d, dword [rsp + 0x5c]
xor r14d, r8d
xor r15d, r14d
mov r14d, dword [r12 + 0xc]
mov dword [rsp + 0x30], r15d
xor r14d, r10d
mov r15d, r14d
mov r14d, dword [rsp + 0x60]
xor r8d, r14d
mov r14d, r8d
mov r8d, r15d
xor r8d, r14d
mov dword [rsp + 0x50], r8d
mov r8d, dword [r12 + 0x10]
mov r15d, dword [rsp + 0x60]
xor r8d, r9d
xor r15d, ebx
xor ebx, r11d
xor r11d, r10d
xor r15d, r8d
mov r8d, dword [rsp + 0x6c]
xor r8d, dword [r12 + 0x14]
xor r10d, r9d
mov r14d, r8d
mov r8d, dword [rsp + 0x58]
xor r14d, ebx
mov ebx, dword [r12 + 0x18]
xor ebx, ecx
xor ebx, r11d
mov r11d, dword [r12 + 0x1c]
mov dword [rsp + 0x34], ebx
xor r11d, eax
xor r11d, r10d
mov r10d, dword [rsp + 0x74]
mov dword [rsp + 0x38], r11d
xor r10d, 0x10
mov r11, r10
shl r10, 5
shl r11, 5
mov ebx, dword [r11 + r13 + 0x24]
xor ebx, edx
mov r11d, ebx
mov ebx, dword [rsp + 0x6c]
xor r9d, ebx
xor ebx, ecx
xor ecx, eax
xor r11d, r9d
mov r9d, dword [r13 + r10 + 0x28]
mov dword [rsp + 0x3c], r11d
xor r9d, ebp
xor r9d, ebx
mov ebx, dword [rsp + 0x48]
mov dword [rsp + 0x40], r9d
mov r9d, dword [r13 + r10 + 0x2c]
xor r9d, edi
xor r9d, ecx
mov ecx, dword [rsp + 0x64]
mov dword [rsp + 0x44], r9d
mov r9d, dword [r13 + r10 + 0x30]
xor r9d, ebx
xor eax, edx
xor edx, ebp
xor r8d, edi
xor r9d, eax
mov eax, dword [r13 + r10 + 0x34]
add r12, 0x20
mov dword [rsp + 0x48], r9d
xor eax, ecx
xor ecx, dword [r13 + r10 + 0x40]
xor eax, edx
mov edx, dword [rsp + 0x54]
mov dword [rsp + 0x4c], eax
mov eax, dword [r13 + r10 + 0x38]
xor edx, ebp
xor eax, edi
xor eax, edx
mov edx, dword [rsp + 0x5c]
mov ebp, eax
mov eax, dword [r13 + r10 + 0x3c]
xor edx, ebx
xor eax, ebx
xor edx, ecx
xor eax, r8d
mov edi, eax
mov rax, qword [rsp + 0x78]
cmp r12, rax
jne 0x14009b120
vmovd xmm5, dword [rsp + 0x30]
mov ecx, r14d
mov r14d, r15d
mov r15d, dword [rsp + 0x50]
vmovd xmm4, r14d
mov r10d, ebp
mov ebp, esi
mov rbx, qword [rsp + 0xe0]
vpinsrd xmm1, xmm4, ecx, 1
vmovd xmm4, ebp
vpinsrd xmm2, xmm4, dword [rsp + 0x2c], 1
vmovd xmm4, dword [rsp + 0x44]
mov rsi, qword [rsp + 0xd8]
mov r11d, edi
mov eax, edx
vpinsrd xmm0, xmm5, r15d, 1
vmovd xmm5, dword [rsp + 0x70]
vpunpcklqdq xmm0, xmm0, xmm1
vpinsrd xmm1, xmm5, dword [rsp + 0x28], 1
vmovd xmm5, dword [rsp + 0x3c]
vpunpcklqdq xmm1, xmm1, xmm2
vmovd xmm2, dword [rsp + 0x4c]
vinserti128 ymm3, ymm1, xmm0, 1
vpinsrd xmm0, xmm4, r9d, 1
vmovd xmm4, dword [rsp + 0x34]
vpinsrd xmm1, xmm2, r10d, 1
vpinsrd xmm2, xmm5, dword [rsp + 0x40], 1
vpunpcklqdq xmm0, xmm0, xmm1
vpinsrd xmm1, xmm4, dword [rsp + 0x38], 1
vpunpcklqdq xmm1, xmm1, xmm2
vinserti128 ymm1, ymm1, xmm0, 1
mov rbp, rbx
mov dword [r13 + 0x464], r11d
mov dword [r13 + 0x468], eax
vmovdqu ymmword [r13 + 0x424], ymm3
and ebp, 0x1f
vmovdqu ymmword [r13 + 0x444], ymm1
jne 0x14009b650
vzeroupper
mov dword [r13 + 0x20], ebp
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edi, 0x20
sub edi, eax
lea rbp, [rdx + rdi]
test rdi, rdi
je 0x14009b777
lea rcx, [rcx + rax]
mov r8, rdi
call sym.memcpy
mov rdx, r13
mov rcx, r13
call sym.panama_push.constprop.0
xor eax, eax
mov dword [r13 + 0x20], eax
sub rbx, rdi
mov rsi, rbp
jmp 0x14009b041
sub rbx, rbp
add rsi, rbx
cmp ebp, 8
jb 0x14009b700
mov rax, qword [rsi]
lea r8, [r13 + 8]
and r8, 0xfffffffffffffff8
mov qword [r13], rax
mov rax, qword [rbp + rsi - 8]
mov qword [r13 + rbp - 8], rax
mov rax, r13
sub rax, r8
sub rsi, rax
add eax, ebp
and eax, 0xfffffff8
cmp eax, 8
jb 0x14009b5ea
and eax, 0xfffffff8
xor edx, edx
mov ecx, edx
add edx, 8
mov r9, qword [rsi + rcx]
mov qword [r8 + rcx], r9
cmp edx, eax
jb 0x14009b694
jmp 0x14009b5ea
test r8, r8
je 0x14009b770
mov edi, 0x20
mov ebp, edi
sub ebp, eax
cmp rbx, rbp
jb 0x14009b740
mov rdx, rsi
lea rcx, [r13 + rax]
mov r8, rbp
add rsi, rbp
call sym.memcpy
sub rbx, rbp
mov rdx, r13
mov rcx, r13
call sym.panama_push.constprop.0
xor eax, eax
test rbx, rbx
jne 0x14009b6be
xor ebp, ebp
jmp 0x14009b5ed
test bpl, 4
jne 0x14009b781
test ebp, ebp
je 0x14009b5ea
movzx eax, byte [rsi]
mov byte [r13], al
test bpl, 2
je 0x14009b5ea
movzx eax, word [rbp + rsi - 2]
mov word [r13 + rbp - 2], ax
vzeroupper
jmp 0x14009b5ed
mov ecx, eax
lea ebp, [rax + rbx]
mov r8, rbx
mov rdx, rsi
add rcx, r13
call sym.memcpy
cmp ebp, 0x20
jne 0x14009b5ed
add rsi, rbx
xor ebx, ebx
jmp 0x14009b6dd
mov ebp, eax
jmp 0x14009b5ed
mov eax, 0x20
jmp 0x14009b63d
mov eax, dword [rsi]
mov dword [r13], eax
mov eax, dword [rbp + rsi - 4]
mov dword [r13 + rbp - 4], eax
vzeroupper
jmp 0x14009b5ed