Function at 0x140332070
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rdi
push r12
push r13
push r14
sub rsp, 0xa8
lea rbp, [rsp + 0x30]
mov rax, rcx
mov rdi, r9
mov r8, rdx
mov ebx, 0x7fffffff
mov rcx, qword [rax + 0x30]
test rcx, rcx
jle 0x140332285
mov rdx, qword [rax]
cmp rcx, 4
jl 0x14033244d
mov rax, rdx
and rax, 0xf
mov r11, rax
je 0x1403320d3
test rax, 3
jne 0x14033243c
mov r11, rax
neg r11
add r11, 0x10
shr r11, 2
lea r9, [r11 + 4]
cmp rcx, r9
jl 0x140332434
mov r9, rcx
xor r10d, r10d
sub r9, r11
and r9, 3
neg r9
add r9, rcx
test r11, r11
jbe 0x14033210b
mov r12d, dword [rdx + r10*4]
cmp r12d, ebx
cmovl ebx, r12d
inc r10
cmp r10, r11
jb 0x1403320f8
movd xmm0, ebx
pshufd xmm0, xmm0, 0
movdqu xmm1, xmmword [rdx + r11*4]
add r11, 4
movdqa xmm2, xmm1
pcmpgtd xmm2, xmm0
pxor xmm0, xmm1
pand xmm2, xmm0
movdqa xmm0, xmm1
pxor xmm0, xmm2
cmp r11, r9
jb 0x140332114
movdqa xmm1, xmm0
movdqa xmm2, xmm0
psrldq xmm1, 8
pcmpgtd xmm2, xmm1
pxor xmm1, xmm0
pand xmm2, xmm1
pxor xmm2, xmm0
movdqa xmm0, xmm2
movdqa xmm3, xmm2
psrldq xmm0, 4
pcmpgtd xmm3, xmm0
pxor xmm0, xmm2
pand xmm3, xmm0
pxor xmm3, xmm2
movd ebx, xmm3
cmp r9, rcx
jae 0x1403321a0
mov eax, dword [rdx + r9*4]
cmp eax, ebx
cmovl ebx, eax
inc r9
cmp r9, rcx
jb 0x14033217e
cmp rcx, 4
jl 0x140332426
mov rax, rdx
and rax, 0xf
test rax, rax
je 0x1403321c2
mov r14d, 0x80000000
test rax, 3
jne 0x14033241e
neg rax
add rax, 0x10
shr rax, 2
mov r14d, 0x80000000
lea r9, [rax + 4]
cmp rcx, r9
jl 0x14033241e
mov r9, rcx
xor r10d, r10d
sub r9, rax
and r9, 3
neg r9
add r9, rcx
test rax, rax
jbe 0x140332200
mov r11d, dword [rdx + r10*4]
cmp r11d, r14d
cmovg r14d, r11d
inc r10
cmp r10, rax
jb 0x1403321ed
movd xmm0, r14d
pshufd xmm0, xmm0, 0
movdqu xmm1, xmmword [rdx + rax*4]
add rax, 4
movdqa xmm2, xmm1
pxor xmm1, xmm0
pcmpgtd xmm2, xmm0
pand xmm2, xmm1
pxor xmm0, xmm2
cmp rax, r9
jb 0x14033220a
movdqa xmm1, xmm0
movdqa xmm2, xmm0
psrldq xmm1, 8
pcmpgtd xmm2, xmm1
pxor xmm0, xmm1
pand xmm2, xmm0
pxor xmm2, xmm1
movdqa xmm0, xmm2
movdqa xmm3, xmm2
psrldq xmm0, 4
pcmpgtd xmm3, xmm0
pxor xmm2, xmm0
pand xmm3, xmm2
pxor xmm3, xmm0
movd r14d, xmm3
cmp r9, rcx
jae 0x14033228b
mov eax, dword [rdx + r9*4]
cmp eax, r14d
cmovg r14d, eax
inc r9
cmp r9, rcx
jb 0x140332270
jmp 0x14033228b
mov r14d, 0x80000000
mov rdx, qword [rbp + 0xd0]
cmp ebx, r14d
jne 0x140332323
mov rax, rdx
mov r12, rsp
add rax, 0xf
and rax, 0xfffffffffffffff0
call fcn.14043da60
sub rsp, rax
lea rax, [rsp + 0x30]
mov r13, rax
mov rcx, r13
mov r9d, edx
call fcn.140349590
mov qword [rbp + 0x38], r13
mov r13, rsp
movabs r8, 0x801208384ff00
lea rcx, [rbp]
lea r9, [0x140590e24]
lea r10, [rbp + 0x30]
movsxd rax, eax
lea r11, [0x140590dc0]
mov edx, dword [rdi]
mov qword [rcx], 0
mov qword [r10], rax
mov qword [r13 + 0x20], r10
mov qword [r13 + 0x28], r11
call fcn.140353740
lea rdx, [0x140590e2c]
lea rcx, [rbp]
mov dword [rbp + 0x40], ebx
lea r8, [rbp + 0x40]
call fcn.140356950
jmp 0x14033240a
mov rax, rdx
mov r12, rsp
add rax, 0xf
and rax, 0xfffffffffffffff0
call fcn.14043da60
sub rsp, rax
lea rax, [rsp + 0x30]
mov r13, rax
mov rcx, r13
mov r9d, edx
call fcn.140349590
mov qword [rbp + 0x38], r13
mov r13, rsp
movabs r8, 0x801208384ff00
lea rcx, [rbp]
lea r9, [0x140590e34]
lea r10, [rbp + 0x30]
movsxd rax, eax
lea r11, [0x140590dec]
mov edx, dword [rdi]
mov qword [rcx], 0
mov qword [r10], rax
mov qword [r13 + 0x20], r10
mov qword [r13 + 0x28], r11
call fcn.140353740
lea rdx, [0x140590e3c]
lea rcx, [rbp]
lea rdi, str.__variable_1D_integer_array_ranging_from
lea r8, [rbp + 0x40]
mov qword [r8], 0x2a
mov qword [rbp + 0x48], rdi
call fcn.140356950
lea rdx, [0x140590e44]
lea rcx, [rbp]
mov dword [rbp + 0x60], ebx
lea r8, [rbp + 0x60]
call fcn.140356950
lea rdx, [0x140590e4c]
lea rcx, [rbp]
lea rbx, [0x140591240]
lea r8, [rbp + 0x50]
mov qword [r8], 4
mov qword [rbp + 0x58], rbx
call fcn.140356950
lea rdx, [0x140590e54]
lea rcx, [rbp]
mov dword [rbp + 0x68], r14d
lea r8, [rbp + 0x68]
call fcn.140356950
mov rax, r12
mov rsp, rax
lea rsp, [rbp + 0x78]
pop r14
pop r13
pop r12
pop rdi
pop rbx
pop rbp
ret
xor r9d, r9d
jmp 0x14033226b
mov r14d, 0x80000000
xor r9d, r9d
jmp 0x14033226b
xor r9d, r9d
jmp 0x140332179
xor r9d, r9d
test rcx, rcx
ja 0x14033217e
jmp 0x1403321a5
xor r9d, r9d
test rcx, rcx
ja 0x14033217e
jmp 0x140332426