Function at 0x32109b0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rdi
push r13
lea rbp, [rsp - 0x528]
sub rsp, 0x628
mov rax, qword [0x03260b88]
xor rax, rsp
mov qword [rbp + 0x500], rax
mov rdi, qword [rbp + 0x588]
xorps xmm0, xmm0
mov rbx, qword [rbp + 0x580]
xor eax, eax
mov dword [rsp + 0x50], r8d
xor r13d, r13d
mov r8, qword [rbp + 0x578]
mov r11d, edx
mov qword [rbp - 0x48], r13
mov r10, rcx
mov qword [rsp + 0x78], r9
mov qword [rsp + 0x58], r8
mov qword [rsp + 0x68], rdi
movups xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x50], rax
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
mov eax, dword [rcx]
lea rcx, [rcx + 4]
inc dword [rbp + rax*4 - 0x80]
add edx, 0xffffffff
jne 0x3210a21
cmp dword [rbp - 0x80], r11d
jne 0x3210a43
mov qword [r8], r13
xor eax, eax
mov dword [rbx], r13d
jmp 0x3210e45
mov edx, dword [rbx]
mov ecx, 1
mov qword [rsp + 0x620], r12
mov eax, ecx
cmp dword [rbp + rax*4 - 0x80], r13d
jne 0x3210a62
inc ecx
cmp ecx, 0xf
jbe 0x3210a52
cmp edx, ecx
mov dword [rsp + 0x24], ecx
mov r8d, ecx
cmovae r8d, edx
mov edx, 0xf
mov eax, edx
cmp dword [rbp + rax*4 - 0x80], r13d
jne 0x3210a82
add edx, 0xffffffff
jne 0x3210a74
cmp r8d, edx
mov dword [rsp + 0x20], edx
mov r12d, edx
mov r9d, 1
cmovbe r12d, r8d
shl r9d, cl
mov dword [rbx], r12d
cmp ecx, edx
jae 0x3210ab2
mov eax, ecx
sub r9d, dword [rbp + rax*4 - 0x80]
js 0x3210ac9
inc ecx
add r9d, r9d
cmp ecx, edx
jb 0x3210aa0
mov eax, edx
lea rcx, [rbp - 0x80]
lea rcx, [rcx + rax*4]
mov r8d, r9d
sub r9d, dword [rcx]
mov dword [rsp + 0x54], r9d
jns 0x3210ad3
mov eax, 0xfffffffd
jmp 0x3210e3d
mov qword [rsp + 0x660], rsi
mov dword [rcx], r8d
mov ecx, r13d
mov qword [rsp + 0x618], r14
mov dword [rbp - 0x3c], r13d
add edx, 0xffffffff
je 0x3210b11
mov rax, r13
nop word [rax + rax]
add ecx, dword [rbp + rax - 0x7c]
mov dword [rbp + rax - 0x38], ecx
lea rax, [rax + 4]
add edx, 0xffffffff
jne 0x3210b00
mov edx, r13d
mov eax, dword [r10]
lea r10, [r10 + 4]
test eax, eax
je 0x3210b34
lea rcx, [rbp - 0x40]
lea rcx, [rcx + rax*4]
mov eax, dword [rcx]
mov dword [rbp + rax*4 + 0x80], edx
inc eax
mov dword [rcx], eax
inc edx
cmp edx, r11d
jb 0x3210b14
movsxd rcx, dword [rsp + 0x20]
lea r8, [rbp + 0x80]
mov r10d, dword [rsp + 0x24]
mov edi, r12d
neg edi
mov qword [rsp + 0x610], r15
mov qword [rsp + 0x40], r8
mov r14d, r13d
mov eax, dword [rbp + rcx*4 - 0x40]
mov r11, 0xffffffffffffffff
mov dword [rsp + 0x4c], eax
mov r9, r13
mov dword [rbp - 0x40], r13d
mov esi, r13d
mov qword [rbp], r13
cmp r10d, ecx
jg 0x3210e10
mov r15, r11
nop word [rax + rax]
movsxd rax, r10d
mov ebx, dword [rbp + rax*4 - 0x80]
lea rax, [rbp + rax*4 - 0x80]
mov qword [rsp + 0x70], rax
test ebx, ebx
je 0x3210dff
nop dword [rax]
mov edx, ebx
mov dword [rsp + 0x48], ebx
dec ebx
lea eax, [r12 + rdi]
mov dword [rsp + 0x28], ebx
cmp r10d, eax
jle 0x3210cdc
nop dword [rax]
inc r11d
mov r8d, ecx
inc r15
mov qword [rsp + 0x60], r11
mov r13d, edi
mov ebx, r10d
add edi, r12d
mov eax, 1
sub r8d, edi
cmp r8d, r12d
cmova r8d, r12d
sub ebx, edi
mov ecx, ebx
shl eax, cl
cmp eax, edx
jbe 0x3210c36
mov rdx, qword [rsp + 0x70]
mov ecx, 0xffffffff
sub ecx, dword [rsp + 0x28]
add eax, ecx
cmp ebx, r8d
jae 0x3210c36
inc ebx
cmp ebx, r8d
jae 0x3210c36
nop dword [rax]
mov ecx, dword [rdx + 4]
lea rdx, [rdx + 4]
add eax, eax
cmp eax, ecx
jbe 0x3210c36
sub eax, ecx
inc ebx
cmp ebx, r8d
jb 0x3210c20
mov rax, qword [rsp + 0x68]
mov ecx, ebx
mov esi, 1
mov r8d, 0x10
shl esi, cl
mov rcx, qword [rax + 0x40]
lea edx, [rsi + 1]
call qword [rax + 0x30]
test rax, rax
je 0x3210e61
mov rcx, qword [rsp + 0x58]
lea r9, [rax + 0x10]
add rax, 8
mov qword [rbp + r15*8], r9
mov qword [rsp + 0x58], rax
mov qword [rcx], r9
mov qword [rax], 0
test r15, r15
je 0x3210cb1
mov rax, qword [rbp + r15*8 - 8]
movzx ecx, r13b
mov edx, r14d
shr rdx, cl
add rdx, rdx
mov byte [rsp + 0x31], r12b
mov byte [rsp + 0x30], bl
mov qword [rsp + 0x38], r9
movups xmm0, xmmword [rsp + 0x30]
mov dword [rbp + r15*4 - 0x40], r14d
movups xmmword [rax + rdx*8], xmm0
mov r10d, dword [rsp + 0x24]
lea eax, [r12 + rdi]
mov r11, qword [rsp + 0x60]
mov edx, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x20]
cmp r10d, eax
jg 0x3210bd0
mov ebx, dword [rsp + 0x28]
xor r13d, r13d
mov r8, qword [rsp + 0x40]
movzx eax, r10b
lea rcx, [rbp + 0x80]
sub al, dil
mov byte [rsp + 0x31], al
mov eax, dword [rsp + 0x4c]
lea rcx, [rcx + rax*4]
cmp r8, rcx
jb 0x3210d02
mov byte [rsp + 0x30], 0xc0
jmp 0x3210d5b
mov ecx, dword [r8]
add r8, 4
mov eax, dword [rsp + 0x50]
mov qword [rsp + 0x40], r8
cmp ecx, eax
jae 0x3210d2f
cmp ecx, 0x100
mov dword [rsp + 0x38], ecx
mov eax, 0x60
cmovb eax, r13d
mov byte [rsp + 0x30], al
jmp 0x3210d5b
sub ecx, eax
mov qword [rsp + 0x40], r8
mov rax, qword [rbp + 0x570]
lea rcx, [rcx*4]
movzx eax, byte [rcx + rax]
add al, 0x50
mov byte [rsp + 0x30], al
mov rax, qword [rsp + 0x78]
mov eax, dword [rcx + rax]
mov dword [rsp + 0x38], eax
mov ecx, r10d
mov r8d, 1
sub ecx, edi
mov edx, r14d
shl r8d, cl
mov ecx, edi
shr edx, cl
cmp edx, esi
jae 0x3210d91
movups xmm0, xmmword [rsp + 0x30]
nop dword [rax]
mov eax, edx
add edx, r8d
add rax, rax
movups xmmword [r9 + rax*8], xmm0
cmp edx, esi
jb 0x3210d80
lea ecx, [r10 - 1]
mov eax, 1
shl eax, cl
test r14d, eax
je 0x3210dab
xor r14d, eax
shr eax, 1
test r14d, eax
jne 0x3210da1
xor r14d, eax
mov ecx, edi
mov eax, 1
shl eax, cl
dec eax
and eax, r14d
cmp eax, dword [rbp + r15*4 - 0x40]
je 0x3210dee
nop dword [rax]
nop word [rax + rax]
sub edi, r12d
mov eax, 1
mov ecx, edi
dec r15
shl eax, cl
dec r11d
dec eax
and eax, r14d
cmp eax, dword [rbp + r15*4 - 0x40]
jne 0x3210dd0
mov r8, qword [rsp + 0x40]
mov ecx, dword [rsp + 0x20]
test ebx, ebx
jne 0x3210bb0
inc r10d
mov dword [rsp + 0x24], r10d
cmp r10d, ecx
jle 0x3210b90
cmp dword [rsp + 0x54], 0
je 0x3210e22
cmp ecx, 1
je 0x3210e22
mov r13d, 0xfffffffb
mov eax, r13d
mov r15, qword [rsp + 0x610]
mov rsi, qword [rsp + 0x660]
mov r14, qword [rsp + 0x618]
mov r12, qword [rsp + 0x620]
mov rcx, qword [rbp + 0x500]
xor rcx, rsp
call fcn.03229100
add rsp, 0x628
pop r13
pop rdi
pop rbx
pop rbp
ret
cmp dword [rsp + 0x60], 0
je 0x3210eb7
mov rcx, qword [rbp]
test rcx, rcx
je 0x3210eb7
xor edx, edx
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rcx - 8]
mov qword [rcx - 8], rdx
mov rdx, rcx
mov rcx, rax
test rax, rax
jne 0x3210e80
test rdx, rdx
je 0x3210eb7
mov rdi, qword [rsp + 0x68]
nop dword [rax]
mov rcx, qword [rdi + 0x40]
sub rdx, 0x10
mov rbx, qword [rdx + 8]
call qword [rdi + 0x38]
mov rdx, rbx
test rbx, rbx
jne 0x3210ea0
mov eax, 0xfffffffc
jmp 0x3210e25