Function at 0x1402947d0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbp
push rdi
sub rsp, 0x30
mov rdi, r9
mov ebp, r8d
mov r10, rdx
mov r11, rcx
test r8w, r8w
jne 0x1402947f9
xor eax, eax
mov rbp, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret
cmp rcx, rdx
je 0x1402947ec
mov rax, qword [rcx + 0x18]
cmp rax, qword [rdx + 0x18]
jne 0x14029480d
test rax, rax
jne 0x1402947ec
test byte [rcx + 0xc], 2
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x50], r12
je 0x140294827
call fcn.1402944d0
and dword [r11 + 0xc], 0xfffffffd
test byte [r10 + 0xc], 2
je 0x14029483b
mov rcx, r10
call fcn.1402944d0
and dword [r10 + 0xc], 0xfffffffd
movsxd rax, dword [r11 + 8]
xor esi, esi
mov qword [rsp + 0x40], rbx
lea rcx, [rax + rax*8]
movsxd rax, dword [r10 + 8]
mov r9d, esi
lea rdx, [rax + rcx*2]
lea rax, [0x1403bcc70]
add rdx, rdx
mov r12, qword [rax + rdx*8]
test r12, r12
je 0x140294a95
cmp dword [rax + rdx*8 + 8], esi
je 0x140294a7b
movsxd rbx, dword [rsp + 0x60]
mov r9, rdi
mov r8d, ebp
mov rdx, r11
mov rcx, r10
mov dword [rsp + 0x20], ebx
call r12
cmp eax, 4
mov r9d, eax
movss xmm2, dword [0x1403392e0]
jl 0x140294a18
lea ecx, [rbx*4]
add eax, 0xfffffffc
lea r8, [rdi + 0x14]
movsxd r12, ecx
lea ecx, [rbx + rbx*2]
shr eax, 2
movsxd rdx, ecx
inc eax
lea ecx, [rbx + rbx]
lea r10, [rdx + rdi + 0x14]
movsxd rdx, ecx
mov ebp, eax
lea r11, [rdx + rdi + 0x14]
lea rdx, [rbx + rdi + 0x14]
lea esi, [rax*4]
nop dword [rax]
movss xmm0, dword [r8 - 4]
xorps xmm0, xmm2
movss dword [r8 - 4], xmm0
movss xmm1, dword [r8]
xorps xmm1, xmm2
movss dword [r8], xmm1
movss xmm0, dword [r8 + 4]
xorps xmm0, xmm2
movss dword [r8 + 4], xmm0
mov rax, qword [r8 + 0x1c]
mov rcx, qword [r8 + 0x14]
mov qword [r8 + 0x14], rax
mov qword [r8 + 0x1c], rcx
mov eax, dword [r8 + 0x28]
mov ecx, dword [r8 + 0x24]
mov dword [r8 + 0x24], eax
mov dword [r8 + 0x28], ecx
add r8, r12
movss xmm0, dword [rdx - 4]
xorps xmm0, xmm2
movss dword [rdx - 4], xmm0
movss xmm1, dword [rdx]
xorps xmm1, xmm2
movss dword [rdx], xmm1
movss xmm0, dword [rdx + 4]
xorps xmm0, xmm2
movss dword [rdx + 4], xmm0
mov rax, qword [rdx + 0x1c]
mov rcx, qword [rdx + 0x14]
mov qword [rdx + 0x14], rax
mov qword [rdx + 0x1c], rcx
mov eax, dword [rdx + 0x28]
mov ecx, dword [rdx + 0x24]
mov dword [rdx + 0x24], eax
mov dword [rdx + 0x28], ecx
add rdx, r12
movss xmm0, dword [r11 - 4]
xorps xmm0, xmm2
movss dword [r11 - 4], xmm0
movss xmm1, dword [r11]
xorps xmm1, xmm2
movss dword [r11], xmm1
movss xmm0, dword [r11 + 4]
xorps xmm0, xmm2
movss dword [r11 + 4], xmm0
mov rax, qword [r11 + 0x1c]
mov rcx, qword [r11 + 0x14]
mov qword [r11 + 0x14], rax
mov qword [r11 + 0x1c], rcx
mov eax, dword [r11 + 0x28]
mov ecx, dword [r11 + 0x24]
mov dword [r11 + 0x24], eax
mov dword [r11 + 0x28], ecx
add r11, r12
movss xmm0, dword [r10 - 4]
xorps xmm0, xmm2
movss dword [r10 - 4], xmm0
movss xmm1, dword [r10]
xorps xmm1, xmm2
movss dword [r10], xmm1
movss xmm0, dword [r10 + 4]
xorps xmm0, xmm2
movss dword [r10 + 4], xmm0
mov rax, qword [r10 + 0x1c]
mov rcx, qword [r10 + 0x14]
mov qword [r10 + 0x14], rax
mov qword [r10 + 0x1c], rcx
mov eax, dword [r10 + 0x28]
mov ecx, dword [r10 + 0x24]
mov dword [r10 + 0x24], eax
mov dword [r10 + 0x28], ecx
add r10, r12
sub rbp, 1
jne 0x1402948e0
cmp esi, r9d
jge 0x140294a95
mov eax, esi
mov r8d, r9d
imul eax, ebx
sub r8d, esi
cdqe
lea rdx, [rax + rdi + 0x14]
mov rcx, qword [rdx + 0x14]
mov rax, qword [rdx + 0x1c]
movss xmm0, dword [rdx - 4]
movss xmm1, dword [rdx]
mov qword [rdx + 0x14], rax
mov eax, dword [rdx + 0x28]
xorps xmm0, xmm2
movss dword [rdx - 4], xmm0
movss xmm0, dword [rdx + 4]
xorps xmm1, xmm2
xorps xmm0, xmm2
mov qword [rdx + 0x1c], rcx
mov ecx, dword [rdx + 0x24]
mov dword [rdx + 0x24], eax
movss dword [rdx], xmm1
movss dword [rdx + 4], xmm0
mov dword [rdx + 0x28], ecx
add rdx, rbx
sub r8, 1
jne 0x140294a2f
jmp 0x140294a95
mov eax, dword [rsp + 0x60]
mov r9, rdi
mov r8d, ebp
mov rdx, r10
mov rcx, r11
mov dword [rsp + 0x20], eax
call r12
mov r9d, eax
mov r12, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x58]
mov eax, r9d
add rsp, 0x30
pop rdi
ret