Function at 0x1400dc370
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, 0xa8
mov r13, rdx
mov rax, qword [0x140219028]
xor rax, rsp
mov qword [rsp + 0xa0], rax
test r8, r8
je 0x1400dcad6
mov rdi, r8
mov rbx, rcx
mov eax, dword [r8]
cmp eax, 4
je 0x1400dc9a4
mov dword [rsp + 0x4c], eax
mov eax, dword [rdi + 4]
mov dword [rsp + 0x48], eax
mov esi, dword [rdi + 0x10]
mov eax, dword [rdi + 0x14]
mov r15d, dword [rdi + 0x18]
mov rcx, qword [rbx + 8]
lea r8d, [rax + 0x14]
xor edx, edx
cmp r8d, 0x54
jb 0x1400dc432
mov r9d, eax
and r9d, 7
jne 0x1400dc432
mov r9d, dword [rcx + 0x14]
cmp r9d, r8d
jb 0x1400dcb0f
mov r8, qword [rcx + 8]
mov edx, dword [r8 + rax + 4]
cmp edx, 0xc8799269
jne 0x1400dcb0f
add r8, rax
mov edx, dword [r8]
cmp edx, 0x14
jb 0x1400dcb0f
xor edx, edx
mov r10d, dword [r8]
add r10d, eax
jb 0x1400dc432
cmp r10d, r9d
ja 0x1400dc432
mov r9d, dword [r8 + 8]
xor edx, edx
cmp r9d, 0xbcea225b
cmove rdx, r8
mov qword [rsp + 0x38], r13
lea r13, [rdx + 0x10]
test rdx, rdx
cmove r13, rdx
lea r9d, [rax + 0x10]
xor edx, edx
cmp r9d, 0x50
jb 0x1400dc4c5
mov r8d, eax
and r8d, 7
jne 0x1400dc4c5
mov r8d, dword [rcx + 0x14]
cmp r8d, r9d
jb 0x1400dcb08
mov r9, qword [rcx + 8]
mov edx, dword [r9 + rax + 4]
cmp edx, 0xc8799269
jne 0x1400dcb08
add r9, rax
mov edx, dword [r9]
cmp edx, 0x10
jb 0x1400dcb08
mov r10d, dword [r9]
add r10d, eax
setb r11b
xor edx, edx
test r9, r9
je 0x1400dc4c5
test r11b, r11b
jne 0x1400dc4c5
cmp r10d, r8d
ja 0x1400dc4c5
mov edx, dword [r9]
cmp rdx, 0x11
jb 0x1400dcb01
add eax, edx
jb 0x1400dcb01
cmp eax, r8d
ja 0x1400dcb01
add rdx, 0xfffffffffffffff0
test r13, r13
je 0x1400dcad1
cmp esi, 2
jb 0x1400dcad1
cmp esi, 0x3ffffffe
ja 0x1400dcad1
lea ebp, [rsi + 1]
lea r14, [rbp*4]
cmp rdx, r14
jb 0x1400dcad1
mov ecx, 0x20
call fcn.14012c264
mov r12, rax
mov rcx, r14
call fcn.14012c264
mov qword [r12], rax
mov qword [r12 + 8], rax
lea rcx, [rax + rbp*4]
mov qword [r12 + 0x10], rcx
xor edx, edx
mov r8, rax
add r8, rdx
je 0x1400dcb42
mov dword [r8], 0
add rdx, 4
cmp r14, rdx
jne 0x1400dc520
mov qword [r12 + 8], rcx
mov qword [r12 + 0x18], 0
test rbp, rbp
je 0x1400dcb16
mov ecx, dword [r13]
mov dword [rax], ecx
mov eax, 1
nop
mov ecx, dword [r13 + rax*4]
cmp ecx, dword [r13 + rax*4 - 4]
jle 0x1400dcac8
mov rdx, qword [r12]
mov r8, qword [r12 + 8]
sub r8, rdx
sar r8, 2
cmp r8, rax
jbe 0x1400dcb16
mov dword [rdx + rax*4], ecx
inc rax
cmp rbp, rax
jne 0x1400dc560
mov rcx, qword [r12]
mov r8, qword [r12 + 8]
mov rdx, r8
sub rdx, rcx
je 0x1400dcb6e
mov rax, rdx
shr rax, 2
neg r8
xor r8, rcx
cmp r8, 0xffffffffffffffff
je 0x1400dc99c
mov r9, rdx
and r9, 0xfffffffffffffffe
xor r8d, r8d
lea r10, [0x1401fa930]
nop word cs:[rax + rax]
movzx r11d, al
movzx r14d, byte [rcx + r8]
xor r14d, r11d
shr eax, 8
xor eax, dword [r10 + r14*4]
movzx r11d, al
movzx r14d, byte [rcx + r8 + 1]
xor r14d, r11d
shr eax, 8
xor eax, dword [r10 + r14*4]
add r8, 2
cmp r9, r8
jne 0x1400dc5e0
test dl, 1
je 0x1400dc62c
movzx edx, al
movzx ecx, byte [rcx + r8]
xor ecx, edx
lea rdx, [0x1401fa930]
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov dword [r12 + 0x18], eax
cmp eax, r15d
jne 0x1400dcac8
test r12, r12
je 0x1400dcad1
mov rcx, qword [rbx + 0x10]
test rcx, rcx
jne 0x1400dc88c
mov rcx, r12
call fcn.1400e12f0
mov r14, rax
xor r15d, r15d
lea r11, [rsi*8]
mov ecx, dword [rdi + 0x1c]
mov r12, qword [rbx + 8]
test ecx, ecx
mov qword [rsp + 0x40], r14
jne 0x1400dc9e5
mov r14, r15
movabs rbp, 0xfffffffc00000000
movabs r15, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x90], r15
mov rax, r12
and rax, rbp
cmp rax, qword [0x140219dc8]
jne 0x1400dc6b6
mov rcx, r12
mov r13, r11
call fcn.1400acce0
mov r11, r13
lea r13, [rdi + 0x1c]
mov qword [rsp + 0x80], r12
mov dword [rsp + 0x88], 0x53215531
cmp esi, 0x1fffffff
ja 0x1400dcb89
mov eax, r11d
mov dword [rsp + 0x8c], eax
mov dword [rsp + 0x90], 0
mov r12, r13
and r12, rbp
cmp r12, qword [0x140219dc8]
je 0x1400dcbb3
mov qword [rsp + 0x98], r13
mov qword [rsp + 0x70], r15
mov rbx, qword [rbx + 8]
mov rax, rbx
and rax, rbp
cmp rax, qword [0x140219dc8]
jne 0x1400dc72f
mov rcx, rbx
mov r15, r11
call fcn.1400acce0
mov r11, r15
lea eax, [rsi*4]
mov qword [rsp + 0x60], rbx
mov dword [rsp + 0x68], 0x53215531
cmp esi, 0x1fffffff
mov r15, r14
ja 0x1400dcb91
mov dword [rsp + 0x6c], r11d
mov dword [rsp + 0x70], eax
cmp r12, qword [0x140219dc8]
je 0x1400dcb9a
mov qword [rsp + 0x78], r13
mov eax, dword [rsp + 0x4c]
cmp eax, 3
ja case.default.0x1400dc793
lea r12, [rdi + 0x50]
mov eax, eax
lea rcx, [0x140200c0c]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
mov r13, qword [rsp + 0x38]
jmp rax
lea rax, [rdi + 0x38]
add rdi, 0x20
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rdi
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
lea rdi, [rsp + 0x58]
lea r9, [rsp + 0x80]
mov rcx, rdi
mov rdx, r12
mov r8, qword [rsp + 0x40]
call fcn.14000d2e0
mov rbx, qword [rdi]
test rbx, rbx
je 0x1400dcae3
mov eax, dword [rsp + 0x48]
lock or dword [rbx + 0x10], eax
mov qword [r13], rbx
mov rcx, qword [rsp + 0x78]
mov rax, rcx
and rax, rbp
cmp rax, qword [0x140219dc8]
je 0x1400dcb75
mov qword [rsp + 0x78], 0
mov rcx, qword [rsp + 0x60]
mov rax, rcx
and rax, rbp
cmp rax, qword [0x140219dc8]
jne 0x1400dc820
call fcn.1400ace30
mov rcx, qword [rsp + 0x98]
mov rax, rcx
and rax, rbp
cmp rax, qword [0x140219dc8]
je 0x1400dcb7f
mov qword [rsp + 0x98], 0
mov rcx, qword [rsp + 0x80]
and rbp, rcx
cmp rbp, qword [0x140219dc8]
jne 0x1400dc860
call fcn.1400ace30
test r15, r15
jne 0x1400dc8a6
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.14012ec00
mov rax, r13
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, r12
call fcn.1400e2c60
mov r14, rax
xor r15d, r15d
cmp rax, r12
cmovne r15, r12
jmp 0x1400dc65e
mov rcx, qword [r15]
test rcx, rcx
jne 0x1400dc97a
mov rcx, r15
call fcn.14012c25c
jmp 0x1400dc865
lea rsi, [rdi + 0x38]
add rdi, 0x20
mov ecx, 0x40
call fcn.14012c264
mov rbx, rax
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rdi
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x80]
mov rcx, rbx
mov rdx, r12
mov r8, qword [rsp + 0x40]
call fcn.1400e1c40
lea rax, [0x1401f1b48]
mov qword [rbx], rax
lea rax, [rbx + 0x30]
xorps xmm0, xmm0
movups xmmword [rbx + 0x30], xmm0
mov qword [rbx + 0x28], rax
jmp 0x1400dc7d1
lea rsi, [rdi + 0x38]
add rdi, 0x20
mov ecx, 0x40
call fcn.14012c264
mov rbx, rax
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rdi
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x80]
mov rcx, rbx
mov rdx, r12
mov r8, qword [rsp + 0x40]
call fcn.1400e1c40
lea rax, [rbx + 0x30]
xorps xmm0, xmm0
movups xmmword [rbx + 0x30], xmm0
mov qword [rbx + 0x28], rax
lea rax, [0x1401f1c08]
mov qword [rbx], rax
jmp 0x1400dc7d1
mov rax, qword [r15 + 8]
cmp rax, rcx
je 0x1400dc98e
add rax, 0xfffffffffffffffc
jne 0x1400dc97e
jmp 0x1400dcbca
mov qword [r15 + 8], rcx
call fcn.14012c25c
jmp 0x1400dc8b2
xor r8d, r8d
jmp 0x1400dc610
lea rsi, [rdi + 0x38]
lea r14, [rdi + 0x20]
lea r15, [rdi + 0x50]
mov ecx, 0x38
call fcn.14012c264
mov r12, rax
mov qword [rsp + 0x20], rsi
mov rcx, rax
mov rdx, rbx
mov r8, r15
mov r9, r14
call fcn.14001c420
mov qword [r13], r12
mov eax, dword [rdi + 4]
lock or dword [r12 + 0x10], eax
jmp 0x1400dc865
lea r8d, [rcx + 0x10]
xor eax, eax
cmp r8d, 0x50
jb 0x1400dca66
mov edx, ecx
and edx, 7
jne 0x1400dca66
mov edx, dword [r12 + 0x14]
cmp edx, r8d
jb 0x1400dcafa
mov r8, qword [r12 + 8]
mov eax, dword [r8 + rcx + 4]
cmp eax, 0xc8799269
jne 0x1400dcafa
add r8, rcx
mov eax, dword [r8]
cmp eax, 0x10
jb 0x1400dcafa
mov r9d, dword [r8]
add r9d, ecx
setb r10b
xor eax, eax
test r8, r8
je 0x1400dca66
test r10b, r10b
jne 0x1400dca66
cmp r9d, edx
ja 0x1400dca66
mov eax, dword [r8]
cmp rax, 0x11
jb 0x1400dcaea
add ecx, eax
jb 0x1400dcaea
cmp ecx, edx
ja 0x1400dcaea
add rax, 0xfffffffffffffff0
cmp rax, r11
jb 0x1400dcbf6
mov r14, r15
mov r12, qword [rbx + 8]
jmp 0x1400dc67d
lea rsi, [rdi + 0x38]
add rdi, 0x20
mov ecx, 0x28
call fcn.14012c264
mov rbx, rax
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rdi
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x80]
mov rcx, rbx
mov rdx, r12
mov r8, qword [rsp + 0x40]
call fcn.1400e1c40
lea rax, [0x1401f1cc8]
jmp 0x1400dc972
test r12, r12
jne 0x1400dcc08
mov r13, qword [rsp + 0x38]
mov qword [r13], 0
jmp 0x1400dc865
xor ebx, ebx
jmp 0x1400dc7e2
mov rcx, r12
mov dl, 1
mov r12, r11
call fcn.140167a10
mov r11, r12
xor eax, eax
jmp 0x1400dca66
mov dl, 1
call fcn.140167a10
xor edx, edx
jmp 0x1400dc4c5
xor edx, edx
jmp 0x1400dc432
lea rax, str.vector___index_out_of_bounds
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude_vector
lea r9, str.__n___size__
mov r8d, 0x601
call fcn.140167880
lea rax, str.null_pointer_given_to_construct_at
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude__memoryconstruct_at.h
lea r9, str.__location___nullptr
mov r8d, 0x28
call fcn.140167880
xor eax, eax
jmp 0x1400dc62c
call fcn.1400ace30
jmp 0x1400dc7fe
call fcn.1400ace30
jmp 0x1400dc83b
int3
int3
mov rcx, r13
call fcn.1400acce0
jmp 0x1400dc768
xor ebx, ebx
mov r13, qword [rsp + 0x38]
jmp 0x1400dc7e2
mov rcx, r13
mov qword [rsp + 0x50], r11
call fcn.1400acce0
mov r11, qword [rsp + 0x50]
jmp 0x1400dc701
lea rax, str.null_pointer_given_to_destroy_at
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude__memoryconstruct_at.h
lea r9, str.__loc___nullptr
mov r8d, 0x44
call fcn.140167880
mov r13, qword [rsp + 0x38]
mov qword [r13], 0
jmp 0x1400dc860
mov rcx, r12
call fcn.140120a80
mov rcx, r12
call fcn.14012c25c
jmp 0x1400dcad1