Function at 0x14001d670
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov rsi, qword [0x140218048]
mov r12, rcx
mov rdi, rdx
test rdx, rdx
jne 0x14001d69a
call fcn.1400dea48
mov rdi, rax
mov eax, dword [rsi + 0x5ef4]
lea ebx, [rdi + 1]
cmp ebx, eax
jle 0x14001d716
test eax, eax
jne 0x14001d6fa
mov r13d, 8
cmp ebx, r13d
cmovge r13d, ebx
movsxd rcx, r13d
call fcn.140009130
mov rdx, qword [rsi + 0x5ef8]
mov rbp, rax
test rdx, rdx
je 0x14001d6ea
movsxd r8, dword [rsi + 0x5ef0]
mov rcx, rax
call fcn.1400de8e0
mov rcx, qword [rsi + 0x5ef8]
call fcn.140009220
mov qword [rsi + 0x5ef8], rbp
mov dword [rsi + 0x5ef4], r13d
jmp 0x14001d71d
mov r13d, eax
shr r13d, 0x1f
add r13d, eax
sar r13d, 1
add r13d, eax
cmp r13d, ebx
cmovl r13d, ebx
cmp eax, r13d
jl 0x14001d6b8
mov rbp, qword [rsi + 0x5ef8]
mov dword [rsi + 0x5ef0], ebx
mov r8, rdi
mov rdx, r12
mov rcx, rbp
lea rbx, [rbp + rdi]
call fcn.1400de8e0
mov byte [rbx], 0
movsxd rax, dword [rsi + 0x5f00]
mov r13, qword [rsi + 0x5f08]
lea rax, [rax + rax*8]
lea r14, [r13 + rax*8]
cmp r13, r14
je 0x14001d772
nop dword [rax]
mov rax, qword [r13 + 0x18]
test rax, rax
je 0x14001d769
mov rdx, r13
mov rcx, rsi
call rax
add r13, 0x48
cmp r14, r13
jne 0x14001d758
mov r9, rbp
xor r13d, r13d
xor r14d, r14d
cmp rbp, rbx
jae 0x14001d81a
nop dword [rax]
movzx eax, byte [r9]
cmp al, 0xd
je 0x14001d798
cmp al, 0xa
jne 0x14001d7a9
nop dword [rax]
movzx eax, byte [r9 + 1]
add r9, 1
cmp al, 0xa
je 0x14001d798
cmp al, 0xd
je 0x14001d798
mov rax, r9
cmp r9, rbx
jb 0x14001d7ce
jmp 0x14001d968
cmp dl, 0xd
je 0x14001d7dd
cmp rbx, rax
je 0x14001d880
movzx edx, byte [rax]
mov r15, rax
lea rax, [rax + 1]
cmp dl, 0xa
jne 0x14001d7c0
mov byte [r15], 0
movzx eax, byte [r9]
cmp al, 0x3b
je 0x14001d80d
cmp al, 0x5b
jne 0x14001d7f6
cmp r9, r15
jb 0x14001d888
test r13, r13
je 0x14001d80d
test r14, r14
je 0x14001d80d
mov r8, r14
mov rdx, r13
mov rcx, rsi
call qword [r13 + 0x28]
lea r9, [r15 + 1]
cmp r9, rbx
jb 0x14001d788
mov byte [rsi + 0x5ee8], 1
mov r8, rdi
mov rdx, r12
mov rcx, rbp
call fcn.1400de8e0
movsxd rax, dword [rsi + 0x5f00]
mov rbx, qword [rsi + 0x5f08]
lea rax, [rax + rax*8]
lea rdi, [rbx + rax*8]
cmp rdi, rbx
je 0x14001d86a
nop word [rax + rax]
mov rax, qword [rbx + 0x30]
test rax, rax
je 0x14001d861
mov rdx, rbx
mov rcx, rsi
call rax
add rbx, 0x48
cmp rbx, rdi
jne 0x14001d850
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r15, rbx
jmp 0x14001d7dd
cmp byte [r15 - 1], 0x5d
jne 0x14001d7f6
lea r11, [r15 - 1]
mov byte [r15 - 1], 0
lea rcx, [r9 + 1]
mov edx, 0x5d
mov r8, r11
mov qword [rsp + 0x30], r9
sub r8, rcx
mov qword [rsp + 0x28], r11
call fcn.1400de8d0
test rax, rax
je 0x14001d80d
mov r11, qword [rsp + 0x28]
lea rcx, [rax + 1]
mov edx, 0x5b
mov qword [rsp + 0x38], rax
sub r11, rcx
mov r8, r11
call fcn.1400de8d0
mov rdx, rax
test rax, rax
je 0x14001d80d
mov r10, qword [rsp + 0x38]
mov r9, qword [rsp + 0x30]
mov byte [r10], 0
movzx eax, byte [r9 + 1]
lea rcx, [r9 + 2]
mov r10, qword [0x140218048]
test al, al
je 0x14001d9d1
mov r13d, 0xffffffff
lea r11, [0x1401aac20]
jmp 0x14001d948
xor eax, r13d
mov r9d, r13d
add rcx, 1
movzx eax, al
shr r9d, 8
xor r9d, dword [r11 + rax*4]
mov r13d, r9d
test r8b, r8b
je 0x14001d974
mov eax, r8d
movzx r8d, byte [rcx]
cmp al, 0x23
jne 0x14001d928
cmp r8b, 0x23
jne 0x14001d928
cmp byte [rcx + 1], 0x23
jne 0x14001d928
add rcx, 1
mov r13d, 0x8f9a6100
jmp 0x14001d945
mov byte [r9], 0
mov r15, r9
jmp 0x14001d7f6
mov ecx, r9d
not ecx
movsxd r8, dword [r10 + 0x5f00]
mov rax, qword [r10 + 0x5f08]
lea r8, [r8 + r8*8]
lea r8, [rax + r8*8]
cmp rax, r8
jne 0x14001d9a9
jmp 0x14001d9c6
lea rax, [rax + 0x48]
cmp r8, rax
je 0x14001d9c6
mov r13, rax
cmp dword [rax + 8], ecx
jne 0x14001d9a0
lea r8, [rdx + 1]
mov rcx, rsi
mov rdx, rax
call qword [rax + 0x20]
mov r14, rax
jmp 0x14001d80d
xor r13d, r13d
xor r14d, r14d
jmp 0x14001d80d
xor ecx, ecx
jmp 0x14001d979