Function at 0x1402928d0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0xe0
mov rax, qword [0x1404af540]
xor rax, rsp
mov qword [rsp + 0xa0], rax
cmp dword [rcx], 0
mov rbp, r9
mov r10d, r8d
mov rdi, rdx
mov rsi, rcx
je 0x140292908
mov eax, 0xfffffffb
jmp 0x1402929b2
mov ecx, dword [rcx + 4]
cmp ecx, 2
je 0x140292920
cmp dword [rsi + 8], 0
jne 0x140292920
mov eax, 0xfffffffa
jmp 0x1402929b2
test rdi, rdi
je 0x14029304a
test r10d, r10d
jle 0x14029304a
mov qword [rsp + 0xd8], rbx
mov ebx, r10d
mov qword [rsp + 0xd0], r12
mov r12d, r10d
shr ebx, 3
shr r12d, 7
and ebx, 0xf
mov qword [rsp + 0xc8], r13
mov qword [rsp + 0xc0], r14
mov qword [rsp + 0xb8], r15
mov dword [rsp + 0x74], r12d
test ecx, ecx
je 0x14029301a
sub ecx, 1
je 0x140292d47
cmp ecx, 1
je 0x1402929cd
mov eax, 0xffffffff
mov r14, qword [rsp + 0xc0]
mov r13, qword [rsp + 0xc8]
mov r15, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xd8]
mov r12, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.1403ca460
add rsp, 0xe0
pop rdi
pop rsi
pop rbp
ret
mov eax, dword [rsi + 0xc]
mov dword [rsp + 0x80], eax
mov eax, dword [rsi + 0x10]
mov dword [rsp + 0x84], eax
mov eax, dword [rsi + 0x14]
mov dword [rsp + 0x88], eax
mov eax, dword [rsi + 0x18]
mov dword [rsp + 0x8c], eax
mov dword [rsp + 0x70], r12d
test r12d, r12d
je 0x14029303e
movzx eax, byte [rsp + 0x8d]
xor ebx, ebx
movzx ecx, byte [rsp + 0x8c]
movzx r13d, byte [rsp + 0x8f]
movzx r12d, byte [rsp + 0x8e]
mov byte [rsp + 0x6c], al
movzx eax, byte [rsp + 0x8b]
mov byte [rsp + 0x64], al
movzx eax, byte [rsp + 0x89]
mov byte [rsp + 0x60], al
movzx eax, byte [rsp + 0x87]
mov byte [rsp + 0x68], cl
movzx ecx, byte [rsp + 0x8a]
mov byte [rsp + 0x50], al
movzx eax, byte [rsp + 0x85]
mov byte [rsp + 0x62], cl
movzx ecx, byte [rsp + 0x88]
mov byte [rsp + 0x4c], al
movzx eax, byte [rsp + 0x83]
mov byte [rsp + 0x58], cl
movzx ecx, byte [rsp + 0x86]
mov byte [rsp + 0x44], al
movzx eax, byte [rsp + 0x81]
mov byte [rsp + 0x4e], cl
movzx ecx, byte [rsp + 0x84]
mov byte [rsp + 0x40], al
movzx eax, byte [rsp + 0x80]
mov byte [rsp + 0x48], cl
movzx ecx, byte [rsp + 0x82]
mov byte [rsp + 0x30], al
mov byte [rsp + 0x42], cl
nop
movups xmm0, xmmword [rdi]
movzx r14d, byte [rsp + 0x68]
mov r15d, ebx
movzx ebx, byte [rsp + 0x6c]
movups xmmword [rbp], xmm0
nop word [rax + rax]
movaps xmm0, xmmword [rsp + 0x80]
lea r8, [rsp + 0x90]
lea rdx, [rsp + 0x90]
movdqa xmmword [rsp + 0x90], xmm0
mov rcx, rsi
call fcn.1402939e0
movzx ecx, byte [rsp + 0x40]
movzx eax, byte [rsp + 0x30]
movzx r11d, byte [rsp + 0x64]
add al, al
shr cl, 7
or cl, al
shr r11b, 7
movzx eax, byte [rsp + 0x40]
mov byte [rsp + 0x30], cl
add al, al
mov byte [rsp + 0x80], cl
movzx ecx, byte [rsp + 0x42]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x42]
mov byte [rsp + 0x40], cl
add al, al
mov byte [rsp + 0x81], cl
movzx ecx, byte [rsp + 0x44]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x44]
mov byte [rsp + 0x42], cl
add al, al
mov byte [rsp + 0x82], cl
movzx ecx, byte [rsp + 0x48]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x48]
mov byte [rsp + 0x44], cl
add al, al
mov byte [rsp + 0x83], cl
movzx ecx, byte [rsp + 0x4c]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x4c]
mov byte [rsp + 0x48], cl
add al, al
mov byte [rsp + 0x84], cl
movzx ecx, byte [rsp + 0x4e]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x4e]
mov byte [rsp + 0x4c], cl
add al, al
mov byte [rsp + 0x85], cl
movzx ecx, byte [rsp + 0x50]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x50]
mov byte [rsp + 0x4e], cl
add al, al
mov byte [rsp + 0x86], cl
movzx ecx, byte [rsp + 0x58]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x58]
mov byte [rsp + 0x50], cl
add al, al
mov byte [rsp + 0x87], cl
movzx ecx, byte [rsp + 0x60]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x60]
add al, al
mov byte [rsp + 0x58], cl
mov byte [rsp + 0x88], cl
movzx ecx, byte [rsp + 0x62]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x62]
add al, al
mov byte [rsp + 0x60], cl
or r11b, al
mov byte [rsp + 0x89], cl
movzx eax, byte [rsp + 0x64]
movzx ecx, bl
add al, al
shr cl, 7
movzx r10d, r14b
mov r8d, r15d
shr r8, 3
movzx r9d, r15b
and r9b, 7
shr r10b, 7
or r10b, al
mov byte [rsp + 0x62], r11b
movzx eax, r14b
mov byte [rsp + 0x8a], r11b
movzx edx, byte [r8 + rdi]
add al, al
movzx r14d, cl
mov byte [rsp + 0x64], r10b
or r14b, al
mov byte [rsp + 0x8b], r10b
movzx ecx, r12b
mov byte [rsp + 0x8c], r14b
shr cl, 7
movzx eax, bl
add al, al
movzx ebx, cl
or bl, al
movzx ecx, r13b
shr cl, 7
movzx eax, r12b
add al, al
mov byte [rsp + 0x8d], bl
movzx r12d, cl
inc r15d
or r12b, al
mov ecx, 7
sub cl, r9b
mov byte [rsp + 0x8e], r12b
shr dl, cl
movzx eax, r13b
add al, al
and dl, 1
movzx r13d, dl
movzx ecx, r9b
or r13b, al
movzx eax, byte [rsp + 0x90]
and al, 0x80
mov byte [rsp + 0x8f], r13b
shr al, cl
xor byte [r8 + rbp], al
cmp r15d, 0x80
jl 0x140292ae0
mov byte [rsp + 0x68], r14b
add rbp, 0x10
mov r14d, dword [rsp + 0x70]
add rdi, 0x10
dec r14d
mov byte [rsp + 0x6c], bl
mov dword [rsp + 0x70], r14d
mov ebx, 0
test r14d, r14d
jg 0x140292ac0
mov r12d, dword [rsp + 0x74]
shl r12d, 7
mov eax, r12d
jmp 0x14029298a
call fcn.140296230
test eax, eax
je 0x140292d82
mov eax, dword [rsi + 0x1c]
lea r9, [rsi + 0x20]
mov dword [rsp + 0x28], eax
lea r8, [rsi + 0xc]
shr r10d, 3
mov rdx, rbp
mov qword [rsp + 0x20], r9
mov rcx, rdi
mov r9d, r10d
call fcn.140295bc0
shl r12d, 7
mov eax, r12d
jmp 0x14029298a
test ebx, ebx
je 0x140292f24
dec r12d
lea r8, [rsp + 0x90]
mov r13d, r12d
mov rcx, rsi
shl r13d, 4
movsxd r14, r13d
add r14, rdi
mov rdx, r14
call fcn.1402935d0
mov r15d, ebx
test ebx, ebx
je 0x140292df1
lea rax, [rsp + 0x90]
movsxd rdx, r13d
sub rdx, rax
xor ebx, ebx
add rdx, rdi
nop word [rax + rax]
lea rax, [rsp + 0x90]
add rax, rbx
movzx ecx, byte [rdx + rax + 0x10]
xor cl, byte [rax]
mov byte [rsp + rbx + 0x80], cl
inc rbx
cmp rbx, r15
jl 0x140292dd0
lea rdx, [r14 + 0x10]
mov r8, r15
lea rcx, [rsp + 0x90]
call sub.VCRUNTIME140.dll_memcpy
movsxd rbx, r13d
lea rdx, [rsp + 0x90]
add rbx, rbp
mov rcx, rsi
mov r8, rbx
call fcn.1402935d0
lea rcx, [rbx + 0x10]
mov r8, r15
lea rdx, [rsp + 0x80]
call sub.VCRUNTIME140.dll_memcpy
test r13d, r13d
jne 0x140292ea5
movzx eax, byte [rsi + 0xc]
xor byte [rbx], al
movzx eax, byte [rsi + 0xd]
xor byte [rbx + 1], al
movzx eax, byte [rsi + 0xe]
xor byte [rbx + 2], al
movzx eax, byte [rsi + 0xf]
xor byte [rbx + 3], al
movzx eax, byte [rsi + 0x10]
xor byte [rbx + 4], al
movzx eax, byte [rsi + 0x11]
xor byte [rbx + 5], al
movzx eax, byte [rsi + 0x12]
xor byte [rbx + 6], al
movzx eax, byte [rsi + 0x13]
xor byte [rbx + 7], al
movzx eax, byte [rsi + 0x14]
xor byte [rbx + 8], al
movzx eax, byte [rsi + 0x15]
xor byte [rbx + 9], al
movzx eax, byte [rsi + 0x16]
xor byte [rbx + 0xa], al
movzx eax, byte [rsi + 0x17]
xor byte [rbx + 0xb], al
movzx eax, byte [rsi + 0x18]
xor byte [rbx + 0xc], al
movzx eax, byte [rsi + 0x19]
xor byte [rbx + 0xd], al
movzx eax, byte [rsi + 0x1a]
xor byte [rbx + 0xe], al
movzx eax, byte [rsi + 0x1b]
jmp 0x140292f21
movzx eax, byte [r14 - 0x10]
xor byte [rbx], al
movzx eax, byte [r14 - 0xf]
xor byte [rbx + 1], al
movzx eax, byte [r14 - 0xe]
xor byte [rbx + 2], al
movzx eax, byte [r14 - 0xd]
xor byte [rbx + 3], al
movzx eax, byte [r14 - 0xc]
xor byte [rbx + 4], al
movzx eax, byte [r14 - 0xb]
xor byte [rbx + 5], al
movzx eax, byte [r14 - 0xa]
xor byte [rbx + 6], al
movzx eax, byte [r14 - 9]
xor byte [rbx + 7], al
movzx eax, byte [r14 - 8]
xor byte [rbx + 8], al
movzx eax, byte [r14 - 7]
xor byte [rbx + 9], al
movzx eax, byte [r14 - 6]
xor byte [rbx + 0xa], al
movzx eax, byte [r14 - 5]
xor byte [rbx + 0xb], al
movzx eax, byte [r14 - 4]
xor byte [rbx + 0xc], al
movzx eax, byte [r14 - 3]
xor byte [rbx + 0xd], al
movzx eax, byte [r14 - 2]
xor byte [rbx + 0xe], al
movzx eax, byte [r14 - 1]
xor byte [rbx + 0xf], al
mov eax, dword [rsi + 0xc]
mov r13d, r12d
mov dword [rsp + 0x80], eax
mov eax, dword [rsi + 0x10]
mov dword [rsp + 0x84], eax
mov eax, dword [rsi + 0x14]
mov dword [rsp + 0x88], eax
mov eax, dword [rsi + 0x18]
mov dword [rsp + 0x8c], eax
test r12d, r12d
jle 0x14029303e
lea r15, [rdi + 8]
sub rdi, rbp
sub rdi, 8
lea r14, [rbp + 8]
nop word [rax + rax]
lea rbx, [rdi + r14]
mov rcx, rsi
mov rdx, rbx
lea r8, [rsp + 0x90]
call fcn.1402935d0
mov eax, dword [rbx]
lea r14, [r14 + 0x10]
movdqa xmm1, xmmword [rsp + 0x90]
lea r15, [r15 + 0x10]
xorps xmm1, xmmword [rsp + 0x80]
dec r13d
movd dword [r14 - 0x18], xmm1
movdqa xmm0, xmm1
psrldq xmm0, 4
mov dword [rsp + 0x80], eax
mov eax, dword [r15 - 0x14]
movd dword [r14 - 0x14], xmm0
movdqa xmm0, xmm1
mov dword [rsp + 0x84], eax
mov eax, dword [r15 - 0x10]
psrldq xmm0, 8
movd dword [r14 - 0x10], xmm0
movdqa xmmword [rsp + 0x90], xmm1
mov dword [rsp + 0x88], eax
mov eax, dword [r15 - 0xc]
psrldq xmm1, 0xc
movd dword [r14 - 0xc], xmm1
mov dword [rsp + 0x8c], eax
test r13d, r13d
jg 0x140292f70
shl r12d, 7
mov eax, r12d
jmp 0x14029298a
mov ebx, r12d
test r12d, r12d
je 0x14029303e
mov r8, rbp
mov rdx, rdi
mov rcx, rsi
call fcn.1402935d0
add rdi, 0x10
add rbp, 0x10
dec ebx
test ebx, ebx
jg 0x140293022
shl r12d, 7
mov eax, r12d
jmp 0x14029298a
xor eax, eax
jmp 0x1402929b2