Function at 0x140243ec0
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, 0x60
test rdx, rdx
je 0x1402440d2
mov r15, r8
mov r12, rdx
not ecx
cmp r8, 0x2f
jb 0x140244982
mov rax, r12
not rax
mov rdx, r12
xor rdx, 7
and rax, 0xfffffffffffffff8
or rax, rdx
cmp rax, 0xffffffffffffffff
je 0x1402440df
mov eax, ecx
xor al, cl
not al
and al, byte [r12]
xor al, cl
shr ecx, 8
lea rdx, [r12 + 1]
movzx r8d, al
lea rax, [0x140377630]
xor ecx, dword [rax + r8*4]
mov r8, r15
dec r8
je 0x1402440d9
mov r9, rdx
xor r9, 0xfffffffffffffff8
and r9, rdx
je 0x1402440d9
mov r8d, ecx
shr r8d, 8
lea rdx, [r12 + 2]
xor cl, byte [r12 + 1]
movzx r9d, cl
mov ecx, r8d
xor ecx, dword [rax + r9*4]
mov r8, r15
add r8, 0xfffffffffffffffe
je 0x1402440d9
mov r9, rdx
not r9
mov r10, rdx
xor r10, 7
and r9, 0xfffffffffffffff8
or r9, r10
not r9
test r9, r9
je 0x1402440d9
mov r8d, ecx
shr r8d, 8
lea rdx, [r12 + 3]
xor cl, byte [r12 + 2]
movzx r9d, cl
mov ecx, r8d
xor ecx, dword [rax + r9*4]
mov r8, r15
add r8, 0xfffffffffffffffd
je 0x1402440d9
mov r9d, edx
and r9d, 7
je 0x1402440d9
mov r8d, ecx
shr r8d, 8
lea rdx, [r12 + 4]
xor cl, byte [r12 + 3]
movzx r9d, cl
mov ecx, r8d
xor ecx, dword [rax + r9*4]
mov r8, r15
add r8, 0xfffffffffffffffc
je 0x1402440d9
mov r9d, edx
and r9d, 7
je 0x1402440d9
mov r8d, ecx
shr r8d, 8
add r8d, dword [0x140492510]
lea rdx, [r12 + 5]
xor cl, byte [r12 + 4]
movzx r9d, cl
mov ecx, r8d
xor ecx, dword [rax + r9*4]
mov r8, r15
add r8, 0xfffffffffffffffb
je 0x1402440d9
mov r9d, edx
and r9d, 7
je 0x1402440d9
mov r8d, ecx
shr r8d, 8
lea rdx, [r12 + 6]
xor cl, byte [r12 + 5]
movzx r9d, cl
mov ecx, r8d
xor ecx, dword [rax + r9*4]
mov r8, r15
add r8, 0xfffffffffffffffa
je 0x1402440d9
mov r9d, edx
and r9d, 7
je 0x1402440d9
mov r8d, ecx
shr r8d, 8
xor cl, byte [r12 + 6]
movzx edx, cl
mov ecx, r8d
xor ecx, ecx
not ecx
and ecx, dword [rax + rdx*4]
lea rdx, [r12 + 7]
xor ecx, r8d
mov r8, r15
add r8, 0xfffffffffffffff9
je 0x1402440d9
mov r9, rdx
not r9
mov r10, rdx
xor r10, 7
and r9, 0xfffffffffffffff8
or r9, r10
not r9
test r9, r9
je 0x1402440d9
add r15, 0xfffffffffffffff8
mov edx, ecx
shr edx, 8
xor cl, byte [r12 + 7]
add r12, 8
movzx r8d, cl
mov ecx, edx
xor ecx, ecx
not ecx
and ecx, dword [rax + r8*4]
xor ecx, edx
jmp 0x1402440df
xor ecx, ecx
jmp 0x140244aed
mov r12, rdx
mov r15, r8
movabs rdx, 0xcccccccccccccccd
mov rax, r15
mul rdx
shr rdx, 5
lea rax, [rdx*8]
lea r8, [rax + rax*4]
xor r10d, r10d
mov r9, rdx
dec r9
je 0x1402445d8
mov qword [rsp + 0x10], r8
mov qword [rsp + 0x18], r15
lea rax, [rdx + rdx*4]
lea rax, [rax*8 - 0x28]
mov qword [rsp + 8], rax
mov qword [rsp + 0x20], r12
lea r11, [r12 + 0x20]
lea r14, [0x140377a30]
xor esi, esi
xor edx, edx
xor r8d, r8d
nop word cs:[rax + rax]
mov qword [rsp], r11
mov qword [rsp + 0x58], r9
mov rax, qword [r11]
mov qword [rsp + 0x50], rax
mov ebx, r10d
xor rbx, rax
mov r9, rbx
not r9
mov rax, rbx
mov rdi, qword [r11 - 8]
mov qword [rsp + 0x48], rdi
mov r10d, esi
xor rax, 0xff
xor r10, rdi
mov rsi, qword [r11 - 0x10]
mov qword [rsp + 0x40], rsi
mov r8d, r8d
movabs r13, 0x3fffffffffffff00
and r9, r13
xor r8, rsi
mov r11, r8
mov r8, qword [rsp]
mov rsi, qword [r8 - 0x20]
mov qword [rsp + 0x30], rsi
mov r8, qword [rsp]
mov r8, qword [r8 - 0x18]
mov qword [rsp + 0x38], r8
or r9, rax
mov eax, edx
xor rax, r8
mov ecx, ecx
movzx r8d, al
xor rcx, rsi
movzx esi, cl
movzx edx, ch
mov edx, dword [r14 + rdx*4 + 0x400]
xor edx, dword [r14 + rsi*4]
movzx esi, ah
mov r12d, dword [r14 + rsi*4 + 0x400]
xor r12d, dword [r14 + r8*4]
mov r8, r11
shr r8, 8
mov rsi, r8
not rsi
xor r8, 0xff
and rsi, r13
or rsi, r8
movzx r8d, r11b
mov qword [rsp + 0x28], r11
not rsi
mov esi, dword [r14 + rsi*4 + 0x400]
xor esi, dword [r14 + r8*4]
mov r8, r10
shr r8, 8
mov rdi, r8
not rdi
xor r8, 0xff
and rdi, r13
or rdi, r8
movzx ebp, bh
mov r8d, dword [r14 + rbp*4 + 0x400]
not r9
xor r8d, dword [r14 + r9*4]
mov r9, rax
shr r9, 0xe
and r9d, 0x3fc
xor r12d, dword [r9 + r14 + 0x800]
not rdi
mov ebp, dword [r14 + rdi*4 + 0x400]
movzx r9d, r10b
xor ebp, dword [r14 + r9*4]
mov rdi, rcx
shr rdi, 0xe
and edi, 0x3fc
mov r9d, edx
xor r9d, edx
not r9d
and r9d, dword [rdi + r14 + 0x800]
mov r15, r10
shr r15, 0x10
mov rdi, r15
not rdi
xor r15, 0xff
and rdi, r13
or rdi, r15
mov r13, rbx
shr r13, 0xe
and r13d, 0x3fc
mov r15d, r8d
xor r15d, r8d
not r15d
and r15d, dword [r13 + r14 + 0x800]
xor r9d, edx
mov rdx, r11
shr rdx, 0xe
and edx, 0x3fc
mov r13d, esi
xor r13d, esi
not r13d
and r13d, dword [rdx + r14 + 0x800]
shr eax, 0x18
mov edx, r12d
xor edx, r12d
not edx
and edx, dword [r14 + rax*4 + 0xc00]
not rdi
mov eax, ebp
xor eax, ebp
not eax
and eax, dword [r14 + rdi*4 + 0x800]
shr rcx, 0x16
and ecx, 0x3fc
xor r9d, dword [rcx + r14 + 0xc00]
xor r15d, r8d
xor edx, r12d
shr rbx, 0x16
and ebx, 0x3fc
xor r15d, dword [rbx + r14 + 0xc00]
mov r11, qword [rsp + 0x30]
mov rcx, r11
xor eax, ebp
shr rcx, 0x20
mov r8, rcx
xor ecx, 0xff
not r8
movabs rdi, 0x3fffffffffffff00
and r8, rdi
or r8, rcx
shr r10, 0x18
not r8
xor r9d, dword [r14 + r8*4 + 0x1000]
mov rcx, r10
movabs r8, 0xffffffff00
xor rcx, r8
and rcx, r10
mov rbp, qword [rsp + 0x38]
mov r8, rbp
shr r8, 0x1e
and r8d, 0x3fc
xor edx, dword [r8 + r14 + 0x1000]
xor eax, dword [r14 + rcx*4 + 0xc00]
xor r13d, esi
mov rsi, qword [rsp + 0x50]
mov rcx, rsi
shr rcx, 0x20
mov r10d, ecx
xor r10d, 0xffffff00
and r10d, ecx
mov rbx, qword [rsp + 0x48]
mov rcx, rbx
mov rdi, qword [rsp + 0x28]
shr edi, 0x18
shr rcx, 0x1e
and ecx, 0x3fc
xor eax, dword [rcx + r14 + 0x1000]
mov r8d, r13d
xor r15d, dword [r14 + r10*4 + 0x1000]
xor r8d, r13d
not r8d
mov r12, qword [rsp + 0x40]
mov r10, r12
and r8d, dword [r14 + rdi*4 + 0xc00]
shr r10, 0x20
mov rdi, r11
shr r11, 0x26
xor r8d, r13d
and r11d, 0x3fc
mov ecx, r9d
xor ecx, ecx
not ecx
and ecx, dword [r11 + r14 + 0x1400]
mov r11d, r10d
xor r11d, 0xffffff00
and r11d, r10d
mov r10, rbp
shr r10, 0x26
and r10d, 0x3fc
xor edx, dword [r10 + r14 + 0x1400]
xor r8d, dword [r14 + r11*4 + 0x1000]
mov r11, qword [rsp]
mov r10, rbx
shr r10, 0x26
xor ecx, r9d
and r10d, 0x3fc
mov r9d, eax
xor r9d, eax
not r9d
and r9d, dword [r10 + r14 + 0x1400]
mov r10, rsi
shr r10, 0x26
and r10d, 0x3fc
xor r15d, dword [r10 + r14 + 0x1400]
xor r9d, eax
mov r10, rdi
mov r13, rdi
shr r10, 0x30
mov eax, r10d
xor eax, 0xff00
and eax, r10d
mov r10, rbp
shr r10, 0x2e
and r10d, 0x3fc
xor edx, dword [r10 + r14 + 0x1800]
mov r10, rsi
mov rdi, rsi
shr r10, 0x2e
and r10d, 0x3fc
xor r15d, dword [r10 + r14 + 0x1800]
mov rsi, rbx
mov r10, rbx
shr r10, 0x2e
and r10d, 0x3fc
xor r9d, dword [r10 + r14 + 0x1800]
mov rbx, r12
mov r10, r12
shr r10, 0x28
xor ecx, dword [r14 + rax*4 + 0x1800]
mov rax, r10
not rax
xor r10d, 0xff
movabs r12, 0x3fffffffffffff00
and rax, r12
or rax, r10
not rax
xor r8d, dword [r14 + rax*4 + 0x1400]
shr r13, 0x38
xor ecx, dword [r14 + r13*4 + 0x1c00]
mov rax, rbp
shr rax, 0x38
xor edx, dword [r14 + rax*4 + 0x1c00]
mov r10, rbx
mov rax, rbx
shr rax, 0x2e
and eax, 0x3fc
xor r8d, dword [rax + r14 + 0x1800]
shr r10, 0x38
xor r8d, dword [r14 + r10*4 + 0x1c00]
mov rax, rsi
shr rax, 0x38
mov esi, r9d
xor esi, esi
not esi
and esi, dword [r14 + rax*4 + 0x1c00]
xor esi, r9d
mov r9, qword [rsp + 0x58]
mov rax, rdi
shr rax, 0x38
mov r10d, r15d
xor r10d, r10d
not r10d
and r10d, dword [r14 + rax*4 + 0x1c00]
xor r10d, r15d
mov rax, r9
not rax
add r9, r9
add r11, 0x28
add r9, rax
jne 0x140244150
mov r12, qword [rsp + 0x20]
add r12, qword [rsp + 8]
mov eax, edx
mov edi, r8d
mov r15, qword [rsp + 0x18]
mov r8, qword [rsp + 0x10]
jmp 0x1402445de
xor edi, edi
xor eax, eax
xor esi, esi
sub r15, r8
mov ecx, ecx
xor rcx, qword [r12]
movzx r8d, cl
shr rcx, 8
lea rdx, [0x140377630]
mov r8d, dword [rdx + r8*4]
mov r9, r8
not r9
and r9, rcx
not ecx
and ecx, r8d
or r9, rcx
movabs rcx, 0xffffffffffff00
xor rcx, r9
and rcx, r9
shr r9, 8
mov ecx, dword [rdx + rcx*4]
mov r8, rcx
not r8
and r8, r9
not r9d
and r9d, ecx
or r8, r9
movzx ecx, r8b
shr r8, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, r8
mov r8, rcx
shr r8, 8
mov r9, rcx
not r9
xor rcx, 0xff
movabs r11, 0x3fffffffffffff00
and r9, r11
or r9, rcx
not r9
mov ecx, dword [rdx + r9*4]
xor rcx, r8
mov r8, rcx
shr r8, 8
mov r9, rcx
not r9
xor rcx, 0xff
and r9, r11
or r9, rcx
not r9
mov ecx, dword [rdx + r9*4]
xor rcx, r8
movzx r8d, cl
shr rcx, 8
mov r8d, dword [rdx + r8*4]
mov r9, r8
not r9
and r9, rcx
not ecx
and ecx, r8d
or r9, rcx
movzx ecx, r9b
shr r9, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, r9
movzx r8d, cl
shr rcx, 8
xor ecx, dword [rdx + r8*4]
mov r8, qword [r12 + 8]
mov r9, rax
not r9
and r9, r8
not r8d
and eax, r8d
or r9, rax
xor rcx, r9
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
mov r8, rcx
not r8
and r8, rax
not eax
and eax, ecx
or r8, rax
movzx eax, r8b
shr r8, 8
mov eax, dword [rdx + rax*4]
xor rax, r8
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
mov r8, rcx
not r8
and r8, rax
not eax
and eax, ecx
or r8, rax
movzx eax, r8b
shr r8, 8
mov eax, dword [rdx + rax*4]
mov rcx, rax
not rcx
and rcx, r8
not r8d
and r8d, eax
or rcx, r8
movzx eax, cl
shr rcx, 8
xor ecx, dword [rdx + rax*4]
xor rdi, qword [r12 + 0x10]
mov rax, qword [r12 + 0x18]
xor rcx, rdi
movzx r8d, cl
shr rcx, 8
mov r8d, dword [rdx + r8*4]
xor r8, rcx
movzx ecx, r8b
shr r8, 8
mov ecx, dword [rdx + rcx*4]
mov r9, rcx
not r9
and r9, r8
not r8d
and r8d, ecx
or r9, r8
movzx ecx, r9b
shr r9, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, r9
mov r8, rcx
shr r8, 8
mov r9, rcx
not r9
xor rcx, 0xff
and r9, r11
or r9, rcx
not r9
mov ecx, dword [rdx + r9*4]
xor rcx, r8
movzx r8d, cl
shr rcx, 8
mov r8d, dword [rdx + r8*4]
mov r9, r8
not r9
and r9, rcx
not ecx
and ecx, r8d
or r9, rcx
movzx ecx, r9b
shr r9, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, r9
mov r8, rcx
shr r8, 8
mov r9, rcx
not r9
xor rcx, 0xff
and r9, r11
or r9, rcx
not r9
mov ecx, dword [rdx + r9*4]
xor rcx, r8
movzx r8d, cl
shr rcx, 8
xor ecx, dword [rdx + r8*4]
mov r8, rsi
not r8
and r8, rax
not eax
and esi, eax
or r8, rsi
mov rax, rcx
not rax
and rax, r8
not r8d
and r8d, ecx
or rax, r8
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
mov r8, rcx
not r8
and r8, rax
not eax
and eax, ecx
or r8, rax
mov rax, r8
shr rax, 8
mov rcx, r8
not rcx
xor r8, 0xff
and rcx, r11
or rcx, r8
not rcx
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
mov rax, rcx
shr rax, 8
mov r8, rcx
not r8
xor rcx, 0xff
and r8, r11
or r8, rcx
not r8
mov ecx, dword [rdx + r8*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
mov r8, rcx
not r8
and r8, rax
not eax
and eax, ecx
or r8, rax
movzx eax, r8b
shr r8, 8
xor r8d, dword [rdx + rax*4]
xor r10, qword [r12 + 0x20]
xor r8, r10
movzx eax, r8b
shr r8, 8
mov eax, dword [rdx + rax*4]
xor rax, r8
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx r8d, al
mov rcx, rax
shr rcx, 8
xor ecx, dword [rdx + r8*4]
add r12, 0x28
cmp r15, 8
jb 0x140244a5f
lea rax, [0x140377630]
nop word cs:[rax + rax]
mov edx, ecx
shr edx, 8
xor cl, byte [r12]
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor cl, dl
not cl
and cl, byte [r12 + 1]
xor cl, dl
shr edx, 8
movzx ecx, cl
mov ecx, dword [rax + rcx*4]
mov r8d, ecx
xor r8d, ecx
not r8d
and r8d, edx
xor r8d, ecx
mov ecx, r8d
xor cl, r8b
not cl
and cl, byte [r12 + 2]
xor cl, r8b
shr r8d, 8
movzx ecx, cl
xor r8d, dword [rax + rcx*4]
mov ecx, r8d
xor r8b, byte [r12 + 3]
shr ecx, 8
movzx edx, r8b
xor ecx, dword [rax + rdx*4]
mov edx, ecx
shr edx, 8
xor cl, byte [r12 + 4]
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor cl, dl
not cl
and cl, byte [r12 + 5]
xor cl, dl
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor cl, dl
not cl
and cl, byte [r12 + 6]
add r15, 0xfffffffffffffff8
xor cl, dl
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
shr ecx, 8
xor dl, byte [r12 + 7]
add r12, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
cmp r15, 7
ja 0x1402449a0
mov rsi, qword [0x140464758]
mov al, 1
test al, al
je 0x140244a75
movsxd r8, dword [rsi]
xor eax, eax
test al, al
je 0x140244a79
mov eax, dword [rsi]
jmp 0x140244a6c
mov r9d, dword [0x140379ab8]
test r15, r15
je 0x140244aeb
test r15b, 1
jne 0x140244a90
mov rax, r15
jmp 0x140244ab0
lea rax, [r15 - 1]
mov edx, ecx
shr edx, 8
xor cl, byte [r12]
inc r12
movzx ecx, cl
lea r10, [0x140377630]
xor edx, dword [r10 + rcx*4]
mov ecx, edx
mov edx, dword [0x140464750]
lea r10d, [rdx + 1]
mov dword [0x140464750], r10d
xor r11d, r11d
test edx, r10d
jne 0x140244ad2
test r9d, r9d
jg 0x140244bf7
xor r8d, r8d
nop word cs:[rax + rax]
test r8b, r8b
jne 0x140244ae0
cmp r15, 1
jne 0x140244b00
not ecx
mov eax, ecx
add rsp, 0x60
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor r8d, r8d
mov r9b, 1
neg r11d
lea rsi, [0x140377630]
jmp 0x140244b5d
neg r14d
mov r15d, r11d
sub r15d, r14d
and r15d, ebp
add dword [0x140492510], r15d
xor bl, cl
movzx ecx, bl
mov ebx, edi
xor ebx, edi
not ebx
and ebx, dword [rsi + rcx*4]
xor ebx, edi
mov ecx, ebx
shr ecx, 8
xor bl, byte [r12 + 1]
add r12, 2
movzx edi, bl
xor ecx, dword [rsi + rdi*4]
add rax, 0xfffffffffffffffe
je 0x140244aeb
mov edi, ecx
shr edi, 8
movzx ebx, byte [r12]
nop word [rax + rax]
test r8b, r8b
jne 0x140244b7a
test r8b, r8b
je 0x140244b90
test r9b, r9b
je 0x140244b70
jmp 0x140244b75
test r8b, r8b
jne 0x140244bd0
nop word cs:[rax + rax]
xor ebp, ebp
test edx, r10d
setne r15b
mov r14d, dword [0x140379abc]
test r9b, r9b
je 0x140244bd0
mov bpl, r15b
dec ebp
test r8b, r8b
jne 0x140244bf0
jmp 0x140244be0
mov ebp, dword [0x140379abc]
test r9b, r9b
je 0x140244bd0
jmp 0x140244ba0
test r9b, r9b
jne 0x140244b20
nop dword [rax]
test r9b, r9b
je 0x140244bf0
jmp 0x140244be0
add r8, rsi
xor esi, esi
mov bl, 1
xor edi, edi
xor r11d, r11d
jmp 0x140244c19
cmp edi, r9d
jge 0x140244ad2
movsxd r14, edi
add r14, r8
nop
test sil, sil
jne 0x140244c2d
mov ebp, dword [r14]
test sil, sil
je 0x140244c40
mov ebp, dword [r14]
test bl, bl
je 0x140244c20
jmp 0x140244c25
add ebp, dword [0x140492070]
nop word cs:[rax + rax]
test bl, bl
je 0x140244c50
test bl, bl
je 0x140244c50
xor r11d, ebp
test sil, sil
jne 0x140244c80
test bl, bl
je 0x140244c80
add edi, 4
nop word [rax + rax]
test sil, sil
jne 0x140244c7a
test sil, sil
je 0x140244c10
test bl, bl
je 0x140244c70
jmp 0x140244c75
test bl, bl
je 0x140244c80
jmp 0x140244c60