Function at 0x1403a64d0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x30
test rdx, rdx
je 0x1403a5b8e
mov r14, r8
mov ebx, ecx
not ebx
cmp r8, 0x2e
jbe 0x1403a62fb
cmp dword [0x140753be8], 0x537b5549
mov rcx, qword [0x140753bd8]
jne 0x1403a5b95
movsxd r8, dword [rcx - 0x18]
sub r8, rcx
imul r8, rcx
mov rax, r8
shl rax, cl
and eax, r8d
mov r11d, 4
mov ecx, eax
shl r11, cl
add r11, 0xfffffffffffffffc
jmp 0x1403a5ba5
xor eax, eax
jmp 0x1403a643a
movsxd rax, dword [rcx]
mov r8, rax
xor r8, rcx
and rax, rcx
lea r11, [r8 + rax*2]
mov esi, dword [0x140602aec]
mov rdi, qword [0x140753be0]
movsxd rax, dword [rdi]
test dl, 7
je 0x1403a5d33
mov ecx, ebx
shr ecx, 8
lea r15, [rdx + 1]
xor bl, byte [rdx]
movzx r8d, bl
lea r10, [0x140600660]
mov ebx, ecx
xor ebx, dword [r10 + r8*4]
test r15b, 7
je 0x1403a5d38
mov ecx, ebx
shr ecx, 8
lea r15, [rdx + 2]
xor bl, byte [rdx + 1]
movzx r8d, bl
mov ebx, ecx
xor ebx, dword [r10 + r8*4]
test r15b, 7
je 0x1403a5d3d
mov ecx, ebx
shr ecx, 8
lea r15, [rdx + 3]
xor bl, byte [rdx + 2]
movzx r8d, bl
mov ebx, ecx
xor ebx, dword [r10 + r8*4]
test r15b, 7
je 0x1403a5d43
mov ecx, ebx
shr ecx, 8
lea r15, [rdx + 4]
xor bl, byte [rdx + 3]
movzx r8d, bl
mov ebx, ecx
xor ebx, dword [r10 + r8*4]
test r15b, 7
je 0x1403a5d49
mov ecx, ebx
shr ecx, 8
lea r15, [rdx + 5]
xor bl, byte [rdx + 4]
movzx r8d, bl
mov ebx, ecx
xor ebx, dword [r10 + r8*4]
test r15b, 7
je 0x1403a5d4f
mov ecx, ebx
shr ecx, 8
lea r15, [rdx + 6]
xor bl, byte [rdx + 5]
movzx r8d, bl
mov ebx, ecx
xor ebx, dword [r10 + r8*4]
test r15b, 7
je 0x1403a5d55
mov ecx, ebx
shr ecx, 8
lea r15, [rdx + 7]
xor bl, byte [rdx + 6]
movzx r8d, bl
mov ebx, ecx
xor ebx, dword [r10 + r8*4]
mov ecx, dword [0x140753bd0]
lea r9d, [rcx + 1]
mov dword [0x140753bd0], r9d
mov qword [rsp], rcx
test r9d, ecx
mov qword [rsp + 8], r14
mov qword [rsp + 0x10], r15
je 0x1403a5d5b
xor r14d, r14d
mov r15, qword [rsp + 0x10]
test r15b, 7
je 0x1403a5d87
mov eax, ebx
shr eax, 8
xor bl, byte [rdx + 7]
movzx ecx, bl
cmp dword [0x140753bf4], 0x50ea6838
mov r8, qword [0x140602ae0]
jne 0x1403a5d20
test dword [rsp], r9d
sete r9b
mov dword [0x140753be8], 0x21f070bd
cmp r8, r14
setne r8b
and r8b, r9b
or r8b, byte [0x140790498]
and r8b, 1
mov byte [0x140790498], r8b
mov r14, qword [rsp + 8]
add r14, 0xfffffffffffffff8
add rdx, 8
xor eax, dword [r10 + rcx*4]
mov ebx, eax
mov r15, rdx
jmp 0x1403a5d90
dec r14
jmp 0x1403a5d90
add r14, 0xfffffffffffffffe
jmp 0x1403a5d90
add r14, 0xfffffffffffffffd
jmp 0x1403a5d90
add r14, 0xfffffffffffffffc
jmp 0x1403a5d90
add r14, 0xfffffffffffffffb
jmp 0x1403a5d90
add r14, 0xfffffffffffffffa
jmp 0x1403a5d90
add rdi, rax
cmp dword [0x140753bec], 0x50e06810
jne 0x1403a644b
movsxd rax, dword [rdi - 0x1c]
test esi, esi
jne 0x1403a5cc2
lea r8, [rdi + rax]
add r8, 0xffffffffffffffe4
jmp 0x1403a6459
mov r14, qword [rsp + 8]
add r14, 0xfffffffffffffff9
movabs rcx, 0xcccccccccccccccd
mov rax, r14
mul rcx
shr rdx, 5
lea rax, [rdx*8]
lea r9, [rax + rax*4]
dec rdx
je 0x1403a60b8
mov qword [rsp + 0x18], r9
mov qword [rsp + 8], r14
mov qword [rsp + 0x10], r15
lea r8, [r15 + 0x20]
lea r11, [0x140600a60]
xor r14d, r14d
xor ecx, ecx
xor eax, eax
xor esi, esi
nop dword [rax]
mov qword [rsp], r8
mov qword [rsp + 0x28], rdx
mov rdx, qword [r8 - 0x20]
mov qword [rsp + 0x20], rdx
xor ebx, edx
movzx r8d, bl
movzx edi, bh
mov edi, dword [r11 + rdi*4 + 0x400]
xor edi, dword [r11 + r8*4]
mov r8d, ebx
shr r8d, 0xe
and r8d, 0x3fc
xor edi, dword [r8 + r11 + 0x800]
shr ebx, 0x18
xor edi, dword [r11 + rbx*4 + 0xc00]
mov rdx, qword [rsp]
mov r12, qword [rdx - 0x18]
xor ecx, r12d
movzx r8d, cl
movzx ebx, ch
mov ebp, dword [r11 + rbx*4 + 0x400]
xor ebp, dword [r11 + r8*4]
mov r8d, ecx
shr r8d, 0xe
and r8d, 0x3fc
xor ebp, dword [r8 + r11 + 0x800]
shr ecx, 0x18
xor ebp, dword [r11 + rcx*4 + 0xc00]
mov rcx, qword [rsp]
mov r13, qword [rcx]
xor eax, r13d
movzx edx, al
mov rcx, qword [rsp]
mov r10, qword [rcx - 8]
mov rbx, r14
xor ebx, r10d
movzx r15d, bl
mov rcx, qword [rsp]
mov r9, qword [rcx - 0x10]
mov rcx, rsi
xor ecx, r9d
movzx r8d, cl
movzx esi, ch
mov r14d, dword [r11 + rsi*4 + 0x400]
xor r14d, dword [r11 + r8*4]
movzx esi, bh
mov r8d, dword [r11 + rsi*4 + 0x400]
xor r8d, dword [r11 + r15*4]
movzx esi, ah
mov r15d, dword [r11 + rsi*4 + 0x400]
xor r15d, dword [r11 + rdx*4]
mov edx, ecx
shr edx, 0xe
and edx, 0x3fc
xor r14d, dword [rdx + r11 + 0x800]
mov edx, ebx
shr edx, 0xe
and edx, 0x3fc
xor r8d, dword [rdx + r11 + 0x800]
mov edx, eax
shr edx, 0xe
and edx, 0x3fc
xor r15d, dword [rdx + r11 + 0x800]
shr ecx, 0x18
xor r14d, dword [r11 + rcx*4 + 0xc00]
shr ebx, 0x18
xor r8d, dword [r11 + rbx*4 + 0xc00]
shr eax, 0x18
xor r15d, dword [r11 + rax*4 + 0xc00]
mov rcx, qword [rsp + 0x20]
mov rax, rcx
shr rax, 0x20
movzx eax, al
xor edi, dword [r11 + rax*4 + 0x1000]
mov rax, r12
shr rax, 0x20
movzx eax, al
xor ebp, dword [r11 + rax*4 + 0x1000]
mov rax, r9
shr rax, 0x20
movzx eax, al
xor r14d, dword [r11 + rax*4 + 0x1000]
mov rax, r10
shr rax, 0x20
movzx eax, al
xor r8d, dword [r11 + rax*4 + 0x1000]
mov rax, r13
shr rax, 0x20
movzx eax, al
xor r15d, dword [r11 + rax*4 + 0x1000]
mov rax, rcx
shr rax, 0x28
movzx eax, al
xor edi, dword [r11 + rax*4 + 0x1400]
mov rax, r12
shr rax, 0x28
movzx eax, al
xor ebp, dword [r11 + rax*4 + 0x1400]
mov rax, r9
shr rax, 0x28
movzx eax, al
xor r14d, dword [r11 + rax*4 + 0x1400]
mov rax, r10
shr rax, 0x28
movzx eax, al
xor r8d, dword [r11 + rax*4 + 0x1400]
mov rax, r13
shr rax, 0x28
movzx eax, al
xor r15d, dword [r11 + rax*4 + 0x1400]
mov rax, rcx
shr rax, 0x30
movzx eax, al
xor edi, dword [r11 + rax*4 + 0x1800]
mov rax, r12
shr rax, 0x30
movzx eax, al
xor ebp, dword [r11 + rax*4 + 0x1800]
mov rax, r9
shr rax, 0x30
movzx eax, al
xor r14d, dword [r11 + rax*4 + 0x1800]
mov rax, r10
shr rax, 0x30
movzx eax, al
xor r8d, dword [r11 + rax*4 + 0x1800]
mov rax, r13
shr rax, 0x30
movzx eax, al
xor r15d, dword [r11 + rax*4 + 0x1800]
mov rax, rcx
shr rax, 0x38
mov ebx, edi
xor ebx, dword [r11 + rax*4 + 0x1c00]
shr r12, 0x38
mov ecx, ebp
xor ecx, dword [r11 + r12*4 + 0x1c00]
shr r9, 0x38
mov esi, r14d
xor esi, dword [r11 + r9*4 + 0x1c00]
shr r10, 0x38
mov r14d, r8d
mov r8, qword [rsp]
mov rdx, qword [rsp + 0x28]
xor r14d, dword [r11 + r10*4 + 0x1c00]
shr r13, 0x38
mov eax, r15d
xor eax, dword [r11 + r13*4 + 0x1c00]
add r8, 0x28
dec rdx
jne 0x1403a5de0
mov r15, qword [rsp + 0x10]
mov r9, qword [rsp + 0x18]
add r15, r9
add r15, 0xffffffffffffffd8
mov edx, ecx
mov edi, eax
mov eax, esi
mov r11d, r14d
mov r10, rax
mov r14, qword [rsp + 8]
jmp 0x1403a60c2
xor edx, edx
xor r11d, r11d
xor edi, edi
xor r10d, r10d
mov eax, ebx
xor rax, qword [r15]
movzx r8d, al
shr rax, 8
lea rcx, [0x140600660]
mov r8d, dword [rcx + r8*4]
xor r8, rax
movzx eax, r8b
shr r8, 8
mov eax, dword [rcx + rax*4]
xor rax, r8
movzx r8d, al
shr rax, 8
mov r8d, dword [rcx + r8*4]
xor r8, rax
movzx eax, r8b
shr r8, 8
mov eax, dword [rcx + rax*4]
xor rax, r8
movzx r8d, al
shr rax, 8
mov r8d, dword [rcx + r8*4]
xor r8, rax
movzx eax, r8b
shr r8, 8
mov eax, dword [rcx + rax*4]
xor rax, r8
movzx r8d, al
shr rax, 8
mov r8d, dword [rcx + r8*4]
xor r8, rax
movzx eax, r8b
shr r8, 8
xor r8d, dword [rcx + rax*4]
xor rdx, qword [r15 + 8]
xor r8, rdx
movzx eax, r8b
shr r8, 8
mov eax, dword [rcx + rax*4]
xor rax, r8
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
xor eax, dword [rcx + rdx*4]
xor r10, qword [r15 + 0x10]
xor rax, r10
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
xor edx, dword [rcx + rax*4]
xor r11, qword [r15 + 0x18]
xor rdx, r11
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
xor eax, dword [rcx + rdx*4]
xor rdi, qword [r15 + 0x20]
sub r14, r9
xor rax, rdi
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov ebx, dword [rcx + rdx*4]
xor rbx, rax
movzx eax, bl
shr rbx, 8
xor ebx, dword [rcx + rax*4]
add r15, 0x28
mov rdx, r15
cmp r14, 8
jb 0x1403a63a8
lea rax, [0x140600660]
nop dword [rax]
mov ecx, ebx
xor bl, byte [rdx]
shr ecx, 8
movzx r8d, bl
xor ecx, dword [rax + r8*4]
mov r8d, ecx
xor cl, byte [rdx + 1]
shr r8d, 8
movzx ecx, cl
xor r8d, dword [rax + rcx*4]
mov ecx, r8d
xor r8b, byte [rdx + 2]
shr ecx, 8
movzx r8d, r8b
xor ecx, dword [rax + r8*4]
mov r8d, ecx
xor cl, byte [rdx + 3]
shr r8d, 8
movzx ecx, cl
xor r8d, dword [rax + rcx*4]
mov ecx, r8d
xor r8b, byte [rdx + 4]
shr ecx, 8
movzx r8d, r8b
xor ecx, dword [rax + r8*4]
add r14, 0xfffffffffffffff8
mov r8d, ecx
xor cl, byte [rdx + 5]
shr r8d, 8
movzx ecx, cl
xor r8d, dword [rax + rcx*4]
mov ecx, r8d
shr ecx, 8
xor r8b, byte [rdx + 6]
movzx r8d, r8b
xor ecx, dword [rax + r8*4]
mov ebx, ecx
shr ebx, 8
xor cl, byte [rdx + 7]
add rdx, 8
movzx ecx, cl
xor ebx, dword [rax + rcx*4]
cmp r14, 7
ja 0x1403a6310
test r14, r14
je 0x1403a63e3
test r14b, 1
je 0x1403a63e7
test byte [0x140790498], 1
jne 0x1403a63e7
lea rcx, [r14 - 1]
mov eax, ebx
shr eax, 8
xor bl, byte [rdx]
inc rdx
movzx r8d, bl
lea r9, [0x140600660]
xor eax, dword [r9 + r8*4]
mov ebx, eax
cmp r14, 1
jne 0x1403a63f0
jmp 0x1403a6438
mov eax, ebx
jmp 0x1403a6438
mov rcx, r14
cmp r14, 1
je 0x1403a6438
xor r8d, r8d
lea r9, [0x140600660]
mov eax, ebx
nop dword [rax]
mov r10d, eax
shr r10d, 8
xor al, byte [rdx + r8]
movzx eax, al
mov dword [0x140753bf4], 0x50ea6838
xor r10d, dword [r9 + rax*4]
mov eax, r10d
shr eax, 8
xor r10b, byte [rdx + r8 + 1]
movzx r10d, r10b
xor eax, dword [r9 + r10*4]
add r8, 2
cmp rcx, r8
jne 0x1403a6400
not eax
add rsp, 0x30
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movsxd r8, dword [rdi]
test esi, esi
jle 0x1403a5cc2
add r8, rdi
xor eax, eax
cmp dword [0x140753bf0], 0x35cb614a
setne al
xor r12d, r12d
xor r14d, r14d
xor ebp, ebp
jmp 0x1403a6482
xor r14, r13
add r12d, 8
cmp r12d, esi
jge 0x1403a5cc5
movsxd r13, r12d
mov r15, r8
mov ecx, eax
shl r15, cl
sub r15, r11
sub r15, r13
mov r13, qword [r11 + r13]
cmp r15, 8
jge 0x1403a6472
lea ecx, [r15*8]
mov r8, 0xffffffffffffffff
shl r8, cl
not r8
and r13, r8
inc ebp
add r12d, r15d
movsxd rcx, ebp
lea r15, [rdi + rcx*4]
movsxd r8, dword [rdi + rcx*4]
add r8, r15
jmp 0x1403a6472
mov r8d, r8d
jmp 0x1403a5b30