Function at 0x1400742b0
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov r14, rdx
mov rsi, rcx
mov r15, qword [rcx + 0x10]
mov rax, qword [0x14019b240]
test rax, rax
je 0x140074713
mov r8b, 1
test al, 2
je 0x1400742fa
mov rax, qword [0x14019b240]
test rax, rax
je 0x14007474b
test eax, 0x400
sete r8b
mov rdi, qword [rsi]
mov rax, rdi
sub rax, r15
mov rbx, r15
cmp rax, 3
mov byte [rsp + 0x27], r8b
jbe 0x140074728
mov r12, qword [rsi + 8]
mov dword [r12 + rbx], 0
add rbx, 4
mov qword [rsi + 0x10], rbx
mov r13, rdi
sub r13, rbx
cmp r13, 3
ja 0x1400743e3
xor ebp, ebp
mov rax, rbx
add rax, 4
jb 0x140074426
mov qword [rsp + 0x48], r15
lea rcx, [rdi + rdi]
cmp rcx, rax
cmova rax, rcx
cmp rax, 9
mov r15d, 8
cmovae r15, rax
mov rdx, r15
not rdx
shr rdx, 0x3f
test rdi, rdi
je 0x14007438a
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], rdi
jmp 0x140074393
mov qword [rsp + 0x38], 0
lea rcx, [rsp + 0x50]
lea r9, [rsp + 0x30]
mov r8, r15
call fcn.14009dbd0
cmp qword [rsp + 0x50], 0
mov rax, qword [rsp + 0x58]
je 0x1400743ce
movabs rcx, 0x8000000000000001
cmp rax, rcx
mov r15, qword [rsp + 0x48]
movzx r8d, byte [rsp + 0x27]
je 0x1400743e3
jmp 0x140074426
mov qword [rsi + 8], rax
mov qword [rsi], r15
mov r12, rax
mov r15, qword [rsp + 0x48]
movzx r8d, byte [rsp + 0x27]
mov dword [r12 + rbx], 0x454d4974
mov rbx, qword [rsi + 0x10]
add rbx, 4
mov qword [rsi + 0x10], rbx
mov ebp, 0xf933dacf
test r8b, r8b
jne 0x14007441d
lea rdx, [0x14017982c]
mov r8d, 4
xor ecx, ecx
call fcn.14000b8a0
movzx r8d, byte [rsp + 0x27]
mov ebp, eax
mov rdi, qword [rsi]
mov r13, rdi
sub r13, rbx
movzx r12d, word [r14]
rol r12w, 8
mov word [rsp + 0x28], r12w
cmp r13, 1
ja 0x1400744f6
mov rax, rbx
add rax, 2
jb 0x1400744d0
mov r13, r15
lea rcx, [rdi + rdi]
cmp rcx, rax
cmova rax, rcx
cmp rax, 9
mov r15d, 8
cmovae r15, rax
mov rdx, r15
not rdx
shr rdx, 0x3f
test rdi, rdi
je 0x140074490
mov rax, qword [rsi + 8]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], rdi
jmp 0x140074499
mov qword [rsp + 0x38], 0
lea rcx, [rsp + 0x50]
lea r9, [rsp + 0x30]
mov r8, r15
call fcn.14009dbd0
cmp qword [rsp + 0x50], 0
mov rax, qword [rsp + 0x58]
je 0x1400744e6
movabs rcx, 0x8000000000000001
cmp rax, rcx
mov r15, r13
movzx r8d, byte [rsp + 0x27]
je 0x1400744f6
movzx eax, byte [r14 + 6]
mov ecx, dword [r14 + 2]
mov dword [rsp + 0x28], ecx
mov byte [rsp + 0x2c], al
jmp 0x140074579
mov qword [rsi + 8], rax
mov qword [rsi], r15
mov r15, r13
movzx r8d, byte [rsp + 0x27]
mov rax, qword [rsi + 8]
mov word [rax + rbx], r12w
add rbx, 2
mov qword [rsi + 0x10], rbx
test r8b, r8b
je 0x14007453b
not ebp
movzx eax, byte [rsp + 0x28]
xor al, bpl
movzx eax, al
lea rcx, [0x1400e5ed8]
shr ebp, 8
xor ebp, dword [rcx + rax*4]
movzx eax, byte [rsp + 0x29]
xor al, bpl
movzx eax, al
shr ebp, 8
xor ebp, dword [rcx + rax*4]
not ebp
jmp 0x140074555
lea rdx, [rsp + 0x28]
mov r8d, 2
mov ecx, ebp
call fcn.14000b8a0
movzx r8d, byte [rsp + 0x27]
mov ebp, eax
mov rdi, qword [rsi]
mov rax, rdi
sub rax, rbx
movzx ecx, byte [r14 + 6]
mov edx, dword [r14 + 2]
mov dword [rsp + 0x28], edx
mov byte [rsp + 0x2c], cl
cmp rax, 4
ja 0x140074617
mov rax, rbx
add rax, 5
jb 0x140074600
lea rcx, [rdi + rdi]
cmp rcx, rax
cmova rax, rcx
cmp rax, 9
mov r14d, 8
cmovae r14, rax
mov rdx, r14
not rdx
shr rdx, 0x3f
test rdi, rdi
je 0x1400745c3
mov rax, qword [rsi + 8]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], rdi
jmp 0x1400745cc
mov qword [rsp + 0x38], 0
lea rcx, [rsp + 0x50]
lea r9, [rsp + 0x30]
mov r8, r14
call fcn.14009dbd0
cmp qword [rsp + 0x50], 0
mov rax, qword [rsp + 0x58]
je 0x14007460a
movabs rcx, 0x8000000000000001
cmp rax, rcx
movzx r8d, byte [rsp + 0x27]
je 0x140074617
mov eax, 0x53
jmp 0x140074702
mov qword [rsi + 8], rax
mov qword [rsi], r14
movzx r8d, byte [rsp + 0x27]
mov r14, qword [rsi + 8]
movzx eax, byte [rsp + 0x2c]
mov byte [r14 + rbx + 4], al
mov eax, dword [rsp + 0x28]
mov dword [r14 + rbx], eax
add rbx, 5
mov qword [rsi + 0x10], rbx
test r8b, r8b
je 0x14007469c
not ebp
movzx eax, byte [rsp + 0x28]
xor al, bpl
movzx ecx, al
lea rax, [0x1400e5ed8]
shr ebp, 8
xor ebp, dword [rax + rcx*4]
movzx ecx, byte [rsp + 0x29]
xor cl, bpl
movzx ecx, cl
shr ebp, 8
xor ebp, dword [rax + rcx*4]
movzx ecx, byte [rsp + 0x2a]
xor cl, bpl
movzx ecx, cl
shr ebp, 8
xor ebp, dword [rax + rcx*4]
movzx ecx, byte [rsp + 0x2b]
xor cl, bpl
movzx ecx, cl
shr ebp, 8
xor ebp, dword [rax + rcx*4]
movzx ecx, byte [rsp + 0x2c]
xor cl, bpl
movzx ecx, cl
shr ebp, 8
xor ebp, dword [rax + rcx*4]
not ebp
jmp 0x1400746b0
lea rdx, [rsp + 0x28]
mov r8d, 5
mov ecx, ebp
call fcn.14000b8a0
mov ebp, eax
mov rcx, rbx
sub rcx, r15
add rcx, 0xfffffffffffffff8
mov eax, 0x4d
mov edx, 0x80000000
cmp rcx, rdx
ja 0x140074702
lea rdx, [r15 + 4]
cmp r15, 0xfffffffffffffffb
ja 0x140074770
cmp rdx, rbx
ja 0x14007477f
bswap ecx
mov dword [r14 + r15], ecx
bswap ebp
mov rax, qword [rsi]
sub rax, rbx
cmp rax, 3
jbe 0x140074755
mov dword [r14 + rbx], ebp
add rbx, 4
mov qword [rsi + 0x10], rbx
xor eax, eax
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.1400e1dd0
mov r8b, 1
test al, 2
jne 0x1400742e1
jmp 0x1400742fa
mov r8d, 4
mov rcx, rsi
mov rdx, r15
call fcn.1400e1240
movzx r8d, byte [rsp + 0x27]
mov rdi, qword [rsi]
mov rbx, qword [rsi + 0x10]
jmp 0x140074315
call fcn.1400e1dd0
jmp 0x1400742f1
mov r8d, 4
mov rcx, rsi
mov rdx, rbx
call fcn.1400e1240
mov r14, qword [rsi + 8]
mov rbx, qword [rsi + 0x10]
jmp 0x1400746f4
lea r8, str.F:Compilers_Stuff.cargo_registry_srcindex.crates.io_6f17d22bba15001flodepng_3.10.0_src_rustimpl.rs
mov rcx, r15
call fcn.1400db4d0
lea r8, str.F:Compilers_Stuff.cargo_registry_srcindex.crates.io_6f17d22bba15001flodepng_3.10.0_src_rustimpl.rs
mov rcx, rdx
mov rdx, rbx
call fcn.1400db210
int3