Function at 0x14008ad00
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x148
mov r11d, edx
mov eax, r8d
mov edx, dword [rcx + 4]
mov r12, rcx
mov r10, r9
add rax, qword [rcx + 0xa0]
bswap rax
mov qword [rsp + 0x74], rax
mov eax, edx
or eax, r8d
je 0x14008ad60
cmp edx, 3
jbe 0x14008b820
test r8d, r8d
jne 0x14008b820
mov r8d, 0x10
lea rax, [rsp + rdx + 0x70]
sub r8, rdx
jmp 0x14008ad6b
lea rax, [rsp + 0x74]
mov r8d, 0xc
mov rdx, rax
mov rcx, r12
lea rdi, [r12 + 0xc]
mov ebx, 0x1e
mov qword [rsp + 0x1a8], r10
lea rbp, [0x14027d7e0]
lea r15, [0x14027dfe0]
call fcn.140082ad0
mov eax, dword [r12 + 8]
mov qword [rsp + 0x68], rdi
lea eax, [rax + rax*2]
add eax, eax
mov eax, eax
lea rsi, [rax*4]
sub rbx, rax
lea rax, [rsp + 0xc0]
mov r8, rsi
lea rdx, [rdi + rbx*4]
mov rcx, rax
mov r14, rax
mov qword [rsp + 0x30], rax
call sub.msvcrt.dll_memcpy
mov r8d, ebx
lea rcx, [r14 + rsi]
mov rdx, rdi
shl r8, 2
lea r14, [0x14027dbe0]
lea rsi, [0x14027d3e0]
call sub.msvcrt.dll_memcpy
lea rax, [rsp + 0xcc]
mov dword [rsp + 0x40], 0xa
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x190], r12
nop
mov rdx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x12c]
mov r8d, 0x6c
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x80], rax
mov eax, dword [rsp + 0x134]
mov dword [rsp + 0x88], eax
call sub.msvcrt.dll_memmove
mov r8, qword [rsp + 0x80]
mov ecx, dword [rsp + 0xfc]
mov r10d, dword [rsp + 0x88]
vmovq xmm0, qword [rsp + 0xfc]
vmovq xmm1, qword [rsp + 0xd0]
mov rax, r8
mov dword [rsp + 0x44], ecx
shr rax, 0x20
mov ebx, eax
mov eax, dword [rsp + 0xd0]
xor ebx, dword [rsp + 0xd4]
vpxor xmm0, xmm0, xmm1
vmovq qword [rsp + 0xfc], xmm0
movzx r9d, bl
movzx edi, bh
xor r8d, eax
mov r11d, dword [rsi + r9*4]
mov edi, dword [rbp + rdi*4]
mov dword [rsp + 0x48], eax
mov ecx, r8d
mov eax, dword [rsp + 0xd8]
xor dword [rsp + 0x104], eax
movzx edx, ch
xor r10d, eax
mov ecx, dword [rbp + rdx*4]
mov eax, r8d
movzx edx, r8b
shr r8d, 0x18
mov edx, dword [rsi + rdx*4]
shr eax, 0x10
mov r12d, dword [r15 + r8*4]
mov r8d, ebx
shr ebx, 0x10
movzx eax, al
shr r8d, 0x18
movzx r9d, bl
mov eax, dword [r14 + rax*4]
mov r8d, dword [r15 + r8*4]
xor r12d, edx
xor edx, r11d
xor r12d, eax
mov ebx, r8d
xor r12d, ecx
xor ecx, edi
xor ebx, r11d
mov r11d, r10d
xor ebx, dword [r14 + r9*4]
mov r9d, r10d
shr r11d, 0x10
xor ebx, edi
shr r9d, 0x18
mov dword [rsp + 0x20], ecx
movzx r11d, r11b
mov r9d, dword [r15 + r9*4]
mov ecx, r10d
mov edi, dword [r14 + r11*4]
movzx r11d, r10b
movzx ecx, ch
mov r11d, dword [rsi + r11*4]
xor r8d, r9d
xor eax, edi
xor edx, r11d
xor r9d, r11d
mov r11d, dword [rsp + 0xcc]
xor r9d, edi
xor r9d, dword [rbp + rcx*4]
mov edi, r11d
mov r10d, r11d
mov ecx, r11d
movzx r11d, r11b
shr edi, 0x10
shr r10d, 0x18
movzx edi, dil
mov r10d, dword [r15 + r10*4]
mov r13d, dword [r14 + rdi*4]
movzx edi, ch
mov ecx, dword [rsp + 0x20]
mov edi, dword [rbp + rdi*4]
xor r8d, r10d
xor r10d, dword [rsi + r11*4]
mov r11d, ebx
xor eax, r13d
xor ecx, edi
xor r10d, r13d
xor r11d, eax
mov r13d, edx
xor r10d, edi
mov edi, r12d
and r11d, 0xff0000
shr r13d, 0x18
xor edi, r8d
xor r13d, r12d
and edi, 0xff000000
movzx r13d, r13b
or edi, r11d
mov r11d, edx
xor r11d, r10d
movzx r11d, r11b
or edi, r11d
mov r11d, r9d
xor r11d, ecx
and r11d, 0xff00
or edi, r11d
mov r11d, r8d
shl r11d, 8
mov dword [rsp + 0xc0], edi
xor r11d, ebx
and r11d, 0xff000000
or r11d, r13d
mov r13d, eax
shl r13d, 8
xor r13d, r9d
and r13d, 0xff0000
or r11d, r13d
mov r13d, ecx
shl r13d, 8
xor r13d, r10d
and r13d, 0xff00
or r11d, r13d
mov r13d, edx
mov dword [rsp + 0xc4], r11d
mov r11d, r8d
shr r13d, 0x10
shl r11d, 0x10
xor r13d, ebx
xor r11d, r9d
movzx r13d, r13b
and r11d, 0xff000000
or r11d, r13d
mov r13d, eax
shl r13d, 0x10
shl r8d, 0x18
shr edx, 8
xor r13d, r10d
xor r8d, r10d
shr eax, 8
and r13d, 0xff0000
xor edx, r9d
and r8d, 0xff000000
xor eax, r12d
or r11d, r13d
mov r13d, ecx
movzx edx, dl
shr ecx, 8
shr r13d, 0x10
or edx, r8d
and eax, 0xff0000
xor ecx, ebx
xor r13d, r12d
or eax, edx
and ecx, 0xff00
and r13d, 0xff00
or eax, ecx
or r11d, r13d
sub dword [rsp + 0x40], 1
mov dword [rsp + 0xc8], r11d
mov dword [rsp + 0xcc], eax
jne 0x14008ae10
mov ebx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x54], 0xd
mov dword [rsp + 0x20], edi
xor eax, ebx
mov dword [rsp + 0x40], eax
lea rax, [rsp + 0xfc]
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0xf8]
mov qword [rsp + 0x58], rax
jmp 0x14008b0ff
mov ebx, dword [rsp + 0xd0]
mov eax, dword [rsp + 0x20]
mov rdi, qword [rsp + 0x30]
mov ecx, dword [rsp + 0x40]
mov r13, qword [rsp + 0x60]
xor ebx, eax
mov eax, dword [rsp + 0x20]
mov rdx, qword [rsp + 0x10c]
mov dword [rsp + 0xd0], ebx
vmovdqu xmm3, xmmword [rdi]
xor ecx, eax
mov r8, qword [rsp + 0x128]
mov dword [rsp + 0x48], edx
mov r9, qword [rsp + 0x130]
mov eax, ecx
mov dword [rsp + 0xfc], ecx
mov r11, qword [rsp + 0x104]
mov r10, qword [rsp + 0xfc]
mov dword [rsp + 0x38], ebx
mov rcx, qword [rsp + 0x114]
mov qword [rsp + 0xb4], r9
vmovdqu xmm2, xmmword [rsp + 0x11c]
vmovdqu xmmword [r13], xmm3
vmovdqu xmm5, xmmword [rdi + 0x10]
vmovdqu xmmword [rsp + 0xa0], xmm2
vmovdqu xmmword [r13 + 0x10], xmm5
vmovdqu xmm2, xmmword [rdi + 0x20]
mov qword [rsp + 0xac], r8
vmovdqu xmmword [r13 + 0x20], xmm2
vmovdqu xmm4, xmmword [rdi + 0x2c]
mov qword [rsp + 0xd0], rdx
mov edx, eax
shr edx, 0x10
vmovdqu xmmword [r13 + 0x2c], xmm4
movzx edx, dl
vmovdqu xmmword [rsp + 0x20], xmm4
mov qword [rsp + 0xc0], r10
mov qword [rsp + 0xc8], r11
mov qword [rsp + 0xd8], rcx
vmovdqu xmm0, xmmword [rsp + 0xa0]
mov edi, dword [r14 + rdx*4]
movzx edx, ah
mov qword [rsp + 0xf4], r9
mov ecx, dword [rbp + rdx*4]
movzx edx, al
shr eax, 0x18
mov r10d, dword [rsp + 0xc8]
vmovdqu xmmword [rsp + 0xe0], xmm0
mov ebx, dword [rsi + rdx*4]
mov r9d, dword [r15 + rax*4]
mov r13d, ecx
mov qword [rsp + 0xec], r8
mov r12d, r10d
xor r9d, ebx
mov dword [rsp + 0x20], ecx
shr r12d, 0x10
mov eax, r9d
mov r9d, r10d
xor eax, edi
shr r9d, 0x18
xor r13d, eax
mov eax, dword [rsp + 0xc4]
mov edx, eax
shr edx, 0x18
mov r8d, dword [r15 + rdx*4]
movzx edx, ah
mov ecx, dword [rbp + rdx*4]
movzx edx, al
shr eax, 0x10
mov edx, dword [rsi + rdx*4]
movzx eax, al
mov r11d, r8d
mov dword [rsp + 0x40], ecx
xor r11d, edx
xor r11d, dword [r14 + rax*4]
mov eax, r9d
mov r9d, dword [r15 + rax*4]
movzx eax, r12b
movzx r12d, r10b
xor r11d, ecx
mov r12d, dword [rsi + r12*4]
mov eax, dword [r14 + rax*4]
mov ecx, r10d
xor r8d, r9d
movzx ecx, ch
xor edx, r12d
xor r9d, r12d
xor edx, ebx
mov ebx, dword [rsp + 0xcc]
xor r9d, eax
xor r9d, dword [rbp + rcx*4]
mov ecx, dword [rsp + 0x40]
mov r12d, ebx
mov r10d, ebx
shr r12d, 0x10
shr r10d, 0x18
movzx r12d, r12b
mov r10d, dword [r15 + r10*4]
mov r12d, dword [r14 + r12*4]
xor r8d, r10d
mov dword [rsp + 0x44], r10d
mov r10d, dword [rsp + 0x20]
xor eax, r12d
xor eax, edi
movzx edi, bh
movzx ebx, bl
mov edi, dword [rbp + rdi*4]
xor ecx, edi
xor ecx, r10d
mov r10d, dword [rsp + 0x44]
xor r10d, dword [rsi + rbx*4]
mov ebx, r11d
xor r10d, r12d
xor ebx, eax
mov r12d, r9d
xor r10d, edi
and ebx, 0xff0000
xor r12d, ecx
mov edi, r12d
mov r12d, edx
xor r12d, r10d
and edi, 0xff00
or ebx, edi
movzx edi, r12b
mov r12d, r13d
xor r12d, r8d
or ebx, edi
mov edi, r12d
mov r12d, eax
and edi, 0xff000000
shl r12d, 8
or ebx, edi
mov edi, r12d
mov r12d, ecx
shl r12d, 8
xor edi, r9d
mov dword [rsp + 0xc0], ebx
xor r12d, r10d
and edi, 0xff0000
and r12d, 0xff00
or edi, r12d
mov r12d, r8d
shl r12d, 8
xor r12d, r11d
and r12d, 0xff000000
or edi, r12d
mov r12d, edx
shr r12d, 0x18
xor r12d, r13d
movzx r12d, r12b
or edi, r12d
mov r12d, r8d
shl r12d, 0x10
mov dword [rsp + 0x40], edi
mov dword [rsp + 0xc4], edi
mov edi, r12d
mov r12d, edx
shr r12d, 0x10
xor edi, r9d
xor r12d, r11d
and edi, 0xff000000
movzx r12d, r12b
or edi, r12d
mov r12d, eax
shl r12d, 0x10
xor r12d, r10d
and r12d, 0xff0000
or edi, r12d
mov r12d, ecx
shr r12d, 0x10
shl r8d, 0x18
shr edx, 8
xor r8d, r10d
shr eax, 8
xor r12d, r13d
xor edx, r9d
and r8d, 0xff000000
xor eax, r13d
shr ecx, 8
movzx edx, dl
and eax, 0xff0000
xor ecx, r11d
and r12d, 0xff00
or edx, r8d
or edi, r12d
and ecx, 0xff00
mov r8d, 0x40
or eax, edx
mov dword [rsp + 0x4c], edi
mov r13d, dword [rsp + 0x100]
mov r9d, eax
mov rdx, qword [rsp + 0x30]
vmovdqu xmm2, xmmword [rsp + 0x110]
mov dword [rsp + 0xc8], edi
or r9d, ecx
mov ecx, dword [rsp + 0x48]
xor r13d, ebx
vmovdqu xmm3, xmmword [rsp + 0x120]
mov dword [rsp + 0x100], r13d
mov rax, qword [rsp + 0x130]
vmovdqu xmm1, xmmword [rsp + 0x100]
xor ecx, ebx
mov dword [rsp + 0x50], r9d
mov dword [rsp + 0x48], ecx
mov dword [rsp + 0xd0], ecx
mov rcx, qword [rsp + 0x58]
mov dword [rsp + 0xcc], r9d
mov qword [rsp + 0xb0], rax
vmovdqu xmmword [rsp + 0x80], xmm1
vmovdqu xmmword [rsp + 0x90], xmm2
vmovdqu xmmword [rsp + 0xa0], xmm3
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0xb0]
mov ecx, r13d
vmovdqu xmm4, xmmword [rsp + 0x80]
vmovdqu xmm5, xmmword [rsp + 0x90]
shr ecx, 0x10
vmovdqu xmm0, xmmword [rsp + 0xa0]
mov qword [rsp + 0xf0], rax
movzx eax, cl
mov ecx, r13d
vmovdqu xmmword [rsp + 0xc0], xmm4
mov r12d, dword [r14 + rax*4]
movzx eax, ch
mov edx, dword [rsp + 0xc4]
mov edi, dword [rbp + rax*4]
movzx eax, r13b
shr r13d, 0x18
mov r11d, dword [rsp + 0xc8]
mov ebx, dword [rsi + rax*4]
mov ecx, dword [r15 + r13*4]
mov r10d, edx
vmovdqu xmmword [rsp + 0xd0], xmm5
shr r10d, 0x18
movzx r13d, r11b
vmovdqu xmmword [rsp + 0xe0], xmm0
xor ecx, ebx
mov r13d, dword [rsi + r13*4]
mov eax, ecx
xor eax, r12d
mov ecx, eax
mov eax, r10d
mov r9d, dword [r15 + rax*4]
movzx eax, dh
xor ecx, edi
mov r8d, dword [rbp + rax*4]
movzx eax, dl
shr edx, 0x10
mov dword [rsp + 0x20], ecx
movzx edx, dl
mov ecx, dword [rsi + rax*4]
mov r10d, r9d
mov eax, dword [r14 + rdx*4]
mov edx, r11d
xor r10d, ecx
shr edx, 0x18
xor eax, r10d
mov r10d, dword [r15 + rdx*4]
mov edx, r11d
xor eax, r8d
xor r9d, r10d
shr edx, 0x10
mov dword [rsp + 0x44], eax
mov eax, r11d
movzx edx, dl
xor r10d, r13d
movzx eax, ah
xor ecx, r13d
mov edx, dword [r14 + rdx*4]
xor ecx, ebx
xor r10d, edx
xor r10d, dword [rbp + rax*4]
mov eax, dword [rsp + 0x38]
mov ebx, eax
mov r13d, eax
mov r11d, eax
movzx eax, ah
shr ebx, 0x10
shr r11d, 0x18
movzx ebx, bl
mov r11d, dword [r15 + r11*4]
mov ebx, dword [r14 + rbx*4]
xor r9d, r11d
xor edx, ebx
xor edx, r12d
mov r12d, dword [rbp + rax*4]
mov eax, dword [rsp + 0x20]
xor r8d, r12d
xor r8d, edi
movzx edi, r13b
mov r13d, dword [rsp + 0x44]
xor r11d, dword [rsi + rdi*4]
xor r11d, ebx
mov edi, r13d
mov ebx, r10d
xor edi, edx
xor ebx, r8d
xor r11d, r12d
mov r12d, r8d
and ebx, 0xff00
and edi, 0xff0000
shl r12d, 8
or edi, ebx
mov ebx, ecx
xor r12d, r11d
xor ebx, r11d
movzx ebx, bl
or edi, ebx
mov ebx, eax
xor ebx, r9d
and ebx, 0xff000000
or edi, ebx
mov ebx, edx
shl ebx, 8
mov dword [rsp + 0x20], edi
xor ebx, r10d
mov dword [rsp + 0xc0], edi
mov edi, r13d
and ebx, 0xff0000
and r12d, 0xff00
or ebx, r12d
mov r12d, r9d
shl r12d, 8
xor r12d, r13d
mov r13d, ecx
and r12d, 0xff000000
shr r13d, 0x10
or ebx, r12d
mov r12d, ecx
xor r13d, edi
shr ecx, 8
shr r12d, 0x18
movzx r13d, r13b
xor ecx, r10d
xor r12d, eax
movzx ecx, cl
movzx r12d, r12b
or ebx, r12d
mov r12d, r9d
shl r9d, 0x18
shl r12d, 0x10
xor r9d, r11d
mov dword [rsp + 0xc4], ebx
xor r12d, r10d
and r9d, 0xff000000
and r12d, 0xff000000
or ecx, r9d
or r12d, r13d
mov r13d, edx
shr edx, 8
shl r13d, 0x10
xor edx, eax
xor r13d, r11d
and edx, 0xff0000
and r13d, 0xff0000
or r12d, r13d
mov r13d, r8d
shr r13d, 0x10
xor r13d, eax
and r13d, 0xff00
or r13d, r12d
or edx, ecx
shr r8d, 8
xor r8d, edi
mov dword [rsp + 0xc8], r13d
and r8d, 0xff00
or edx, r8d
sub dword [rsp + 0x54], 1
mov dword [rsp + 0xcc], edx
jne 0x14008b0f8
mov edi, dword [rsp + 0x20]
mov ecx, dword [rsp + 0xd0]
mov eax, edx
mov edx, dword [rsp + 0x40]
mov r12, qword [rsp + 0x190]
mov r10, qword [rsp + 0x1a8]
xor ecx, edi
xor edx, edi
bswap ebx
mov dword [r10], ebx
bswap r13d
mov dword [r10 + 4], r13d
bswap eax
mov dword [r10 + 8], eax
bswap ecx
mov dword [r10 + 0xc], ecx
mov eax, edx
bswap eax
mov dword [r10 + 0x10], eax
mov eax, dword [rsp + 0x4c]
bswap eax
mov dword [r10 + 0x14], eax
mov eax, dword [rsp + 0x50]
bswap eax
cmp qword [rsp + 0x1b0], 8
mov dword [r10 + 0x18], eax
je 0x14008b890
mov qword [r12 + 0xc], 0
mov rax, qword [rsp + 0x68]
movabs rdx, 0xe074e3cbee39e01c
lea rdi, [rax + 8]
mov qword [rax + 0x54], 0
and rdi, 0xfffffffffffffff8
sub rax, rdi
mov rcx, rax
xor eax, eax
add ecx, 0x5c
shr ecx, 3
rep stosq qword [rdi], rax
mov qword [r12 + 0x70], rdx
movabs rax, 0x6286f757f4c9120d
movabs rdx, 0xbd8d679a9a43d215
mov qword [r12 + 0x68], rax
movabs rax, 0xa1127c62e074e3cb
mov qword [r12 + 0x74], rax
mov qword [r12 + 0x7c], rdx
mov qword [r12], 0
mov dword [r12 + 8], 0
mov qword [r12 + 0xa0], 0
add rsp, 0x148
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, r8d
mov eax, 0xffffff00
sar eax, cl
mov ecx, eax
and ecx, r11d
cmp edx, 4
je 0x14008b90c
mov eax, edx
mov r8d, 0x10
add edx, 1
mov byte [rsp + rax + 0x70], cl
lea rcx, [rsp + 0x70]
sub r8, rax
add rax, rcx
cmp edx, 3
ja 0x14008ad6b
mov r11d, edx
mov r9d, 4
add rcx, r11
sub r9d, edx
je 0x14008ad6b
xor edx, edx
mov r11d, edx
add edx, 1
mov byte [rcx + r11], 0
cmp edx, r9d
jb 0x14008b872
jmp 0x14008ad6b
mov r15d, dword [rsp + 0x48]
bswap r15d
movabs rdx, 0xd2b0b594e0d4f668
mov dword [r10 + 0x1c], r15d
mov qword [r12 + 0xc], 0
mov rax, qword [rsp + 0x68]
lea rdi, [rax + 8]
mov qword [rax + 0x50], 0
and rdi, 0xfffffffffffffff8
sub rax, rdi
mov rcx, rax
xor eax, eax
add ecx, 0x58
shr ecx, 3
rep stosq qword [rdi], rax
mov qword [r12 + 0x6c], rdx
movabs rax, 0x6671135fe952bdde
movabs rdx, 0x34f8c2489149e899
mov qword [r12 + 0x64], rax
movabs rax, 0xfbf929def96c621d
mov qword [r12 + 0x74], rax
mov qword [r12 + 0x7c], rdx
jmp 0x14008b7e8
mov byte [rsp + 0x70], cl
lea rcx, [rsp + 0x70]
mov r8d, 0x10
mov edx, 1
mov rax, rcx
jmp 0x14008b85b