Function at 0x140072fd0
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 0x14007329b
mov dil, 1
test al, 2
je 0x14007301a
mov rax, qword [0x14019b240]
test rax, rax
je 0x1400736dd
test eax, 0x400
sete dil
mov rcx, qword [rsi]
sub rcx, r15
mov rax, r15
cmp rcx, 3
jbe 0x1400732b0
mov r13, qword [rsi + 8]
mov dword [r13 + rax], 0
mov rax, qword [rsi]
mov rbx, qword [rsi + 0x10]
add rbx, 4
mov qword [rsi + 0x10], rbx
mov rcx, rax
sub rcx, rbx
cmp rcx, 3
mov byte [rsp + 0x2f], dil
ja 0x140073100
xor ebp, ebp
mov rcx, rbx
add rcx, 4
jb 0x140073135
mov rdi, r15
lea rdx, [rax + rax]
cmp rdx, rcx
cmova rcx, rdx
cmp rcx, 9
mov r15d, 8
cmovae r15, rcx
mov rdx, r15
not rdx
shr rdx, 0x3f
test rax, rax
je 0x1400730ad
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], rax
jmp 0x1400730b6
mov qword [rsp + 0x38], 0
lea rcx, [rsp + 0x48]
lea r9, [rsp + 0x30]
mov r8, r15
call fcn.14009dbd0
cmp qword [rsp + 0x48], 0
mov rax, qword [rsp + 0x50]
je 0x1400730ee
movabs rcx, 0x8000000000000001
cmp rax, rcx
mov r15, rdi
movzx edi, byte [rsp + 0x2f]
je 0x140073100
jmp 0x140073135
mov qword [rsi + 8], rax
mov qword [rsi], r15
mov r13, rax
mov r15, rdi
movzx edi, byte [rsp + 0x2f]
mov dword [r13 + rbx], 0x44474b62
mov rbx, qword [rsi + 0x10]
add rbx, 4
mov qword [rsi + 0x10], rbx
mov ebp, 0x22ddefe
test dil, dil
jne 0x140073135
lea rdx, [0x140179800]
mov r8d, 4
xor ecx, ecx
call fcn.14000b8a0
mov ebp, eax
mov eax, dword [r14 + 8]
cmp rax, 6
ja case.0x140073151.1
lea rcx, [0x1401858ec]
movsxd rdx, dword [rcx + rax*4]
add rdx, rcx
jmp rdx
movzx edi, word [r14 + 0x32]
rol di, 8
mov word [rsp + 0x2c], di
mov rax, qword [rsi]
mov rcx, rax
sub rcx, rbx
cmp rcx, 1
ja 0x140073377
mov rcx, rbx
add rcx, 2
jb 0x14007367f
lea rdx, [rax + rax]
cmp rdx, rcx
cmova rcx, rdx
cmp rcx, 9
mov r14d, 8
cmovae r14, rcx
mov rdx, r14
not rdx
shr rdx, 0x3f
test rax, rax
je 0x1400732da
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], rax
jmp 0x1400732e3
movzx eax, word [r14 + 0x32]
rol ax, 8
mov word [rsp + 0x2c], ax
mov r12, qword [rsi]
mov rax, r12
sub rax, rbx
cmp rax, 1
mov qword [rsp + 0x60], r15
ja 0x1400733e7
mov rax, rbx
add rax, 2
jb 0x14007335a
lea rcx, [r12 + r12]
cmp rcx, rax
cmova rax, rcx
cmp rax, 9
mov r15d, 8
cmovae r15, rax
mov rdx, r15
not rdx
shr rdx, 0x3f
test r12, r12
je 0x140073316
mov r13, qword [rsi + 8]
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], r12
jmp 0x14007331f
cmp eax, 3
jne 0x14007367f
movzx edi, byte [r14 + 0x32]
mov byte [rsp + 0x30], dil
cmp rbx, qword [rsi]
jne 0x14007326b
mov rcx, rsi
mov rdx, rbx
call fcn.140090310
mov r13, qword [rsi + 8]
mov rbx, qword [rsi + 0x10]
mov byte [r13 + rbx], dil
mov rbx, qword [rsi + 0x10]
inc rbx
mov qword [rsi + 0x10], rbx
cmp byte [rsp + 0x2f], 0
je 0x1400732ca
not ebp
movzx eax, byte [rsp + 0x30]
xor al, bpl
movzx eax, al
lea rcx, [0x1400e5ed8]
jmp 0x1400733b5
call fcn.1400e1dd0
mov dil, 1
test al, 2
jne 0x140073001
jmp 0x14007301a
mov r8d, 4
mov rcx, rsi
mov rdx, r15
call fcn.1400e1240
mov rax, qword [rsi + 0x10]
jmp 0x14007302d
lea rdx, [rsp + 0x30]
mov r8d, 1
jmp 0x1400733cd
mov qword [rsp + 0x38], 0
lea rcx, [rsp + 0x48]
lea r9, [rsp + 0x30]
mov r8, r14
call fcn.14009dbd0
cmp qword [rsp + 0x48], 0
mov rax, qword [rsp + 0x50]
je 0x14007336d
movabs rcx, 0x8000000000000001
cmp rax, rcx
je 0x140073377
jmp 0x14007367f
mov qword [rsp + 0x38], 0
lea rcx, [rsp + 0x48]
lea r9, [rsp + 0x30]
mov r8, r15
call fcn.14009dbd0
cmp qword [rsp + 0x48], 0
mov rax, qword [rsp + 0x50]
je 0x1400733db
movabs rcx, 0x8000000000000001
cmp rax, rcx
movzx edi, byte [rsp + 0x2f]
je 0x1400733e7
movzx edi, word [r14 + 0x34]
rol di, 8
mov word [rsp + 0x2c], di
jmp 0x14007346b
mov qword [rsi + 8], rax
mov qword [rsi], r14
mov r13, rax
mov word [r13 + rbx], di
mov rbx, qword [rsi + 0x10]
add rbx, 2
mov qword [rsi + 0x10], rbx
cmp byte [rsp + 0x2f], 0
je 0x1400733c2
not ebp
movzx eax, byte [rsp + 0x2c]
xor al, bpl
movzx eax, al
lea rcx, [0x1400e5ed8]
shr ebp, 8
xor ebp, dword [rcx + rax*4]
movzx eax, byte [rsp + 0x2d]
xor al, bpl
movzx eax, al
shr ebp, 8
xor ebp, dword [rcx + rax*4]
not ebp
jmp 0x14007367f
lea rdx, [rsp + 0x2c]
mov r8d, 2
mov ecx, ebp
call fcn.14000b8a0
mov ebp, eax
jmp 0x14007367f
mov qword [rsi + 8], rax
mov qword [rsi], r15
movzx edi, byte [rsp + 0x2f]
mov r13, qword [rsi + 8]
movzx eax, word [rsp + 0x2c]
mov word [r13 + rbx], ax
mov rbx, qword [rsi + 0x10]
add rbx, 2
mov qword [rsi + 0x10], rbx
test dil, dil
je 0x140073436
not ebp
movzx eax, byte [rsp + 0x2c]
xor al, bpl
movzx eax, al
lea rcx, [0x1400e5ed8]
shr ebp, 8
xor ebp, dword [rcx + rax*4]
movzx eax, byte [rsp + 0x2d]
xor al, bpl
movzx eax, al
shr ebp, 8
xor ebp, dword [rcx + rax*4]
not ebp
jmp 0x14007344a
lea rdx, [rsp + 0x2c]
mov r8d, 2
mov ecx, ebp
call fcn.14000b8a0
mov ebp, eax
mov r12, qword [rsi]
mov rax, r12
sub rax, rbx
movzx edi, word [r14 + 0x34]
rol di, 8
mov word [rsp + 0x2c], di
cmp rax, 1
ja 0x14007350d
mov rax, rbx
add rax, 2
jb 0x1400734ec
lea rcx, [r12 + r12]
cmp rcx, rax
cmova rax, rcx
cmp rax, 9
mov r15d, 8
cmovae r15, rax
mov rdx, r15
not rdx
shr rdx, 0x3f
test r12, r12
je 0x1400734b5
mov r13, qword [rsi + 8]
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], r12
jmp 0x1400734be
mov qword [rsp + 0x38], 0
lea rcx, [rsp + 0x48]
lea r9, [rsp + 0x30]
mov r8, r15
call fcn.14009dbd0
cmp qword [rsp + 0x48], 0
mov rax, qword [rsp + 0x50]
je 0x140073506
movabs rcx, 0x8000000000000001
cmp rax, rcx
je 0x14007350d
movzx r15d, word [r14 + 0x36]
rol r15w, 8
mov word [rsp + 0x2c], r15w
movzx edi, byte [rsp + 0x2f]
jmp 0x140073593
mov qword [rsi + 8], rax
mov qword [rsi], r15
mov r13, qword [rsi + 8]
mov word [r13 + rbx], di
mov rbx, qword [rsi + 0x10]
add rbx, 2
mov qword [rsi + 0x10], rbx
movzx edi, byte [rsp + 0x2f]
test dil, dil
je 0x14007355c
not ebp
movzx eax, byte [rsp + 0x2c]
xor al, bpl
movzx eax, al
lea rcx, [0x1400e5ed8]
shr ebp, 8
xor ebp, dword [rcx + rax*4]
movzx eax, byte [rsp + 0x2d]
xor al, bpl
movzx eax, al
shr ebp, 8
xor ebp, dword [rcx + rax*4]
not ebp
jmp 0x140073570
lea rdx, [rsp + 0x2c]
mov r8d, 2
mov ecx, ebp
call fcn.14000b8a0
mov ebp, eax
mov r12, qword [rsi]
mov rax, r12
sub rax, rbx
movzx r15d, word [r14 + 0x36]
rol r15w, 8
mov word [rsp + 0x2c], r15w
cmp rax, 1
ja 0x140073620
mov rax, rbx
add rax, 2
jb 0x14007367a
lea rcx, [r12 + r12]
cmp rcx, rax
cmova rax, rcx
cmp rax, 9
mov r14d, 8
cmovae r14, rax
mov rdx, r14
not rdx
shr rdx, 0x3f
test r12, r12
je 0x1400735dd
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], r12
jmp 0x1400735e6
mov qword [rsp + 0x38], 0
lea rcx, [rsp + 0x48]
lea r9, [rsp + 0x30]
mov r8, r14
call fcn.14009dbd0
cmp qword [rsp + 0x48], 0
mov rax, qword [rsp + 0x50]
je 0x140073616
movabs rcx, 0x8000000000000001
cmp rax, rcx
je 0x140073620
jmp 0x14007367a
mov qword [rsi + 8], rax
mov qword [rsi], r14
mov r13, rax
mov word [r13 + rbx], r15w
mov rbx, qword [rsi + 0x10]
add rbx, 2
mov qword [rsi + 0x10], rbx
test dil, dil
je 0x140073666
not ebp
movzx eax, byte [rsp + 0x2c]
xor al, bpl
movzx eax, al
lea rcx, [0x1400e5ed8]
shr ebp, 8
xor ebp, dword [rcx + rax*4]
movzx eax, byte [rsp + 0x2d]
xor al, bpl
movzx eax, al
shr ebp, 8
xor ebp, dword [rcx + rax*4]
not ebp
jmp 0x14007367a
lea rdx, [rsp + 0x2c]
mov r8d, 2
mov ecx, ebp
call fcn.14000b8a0
mov ebp, eax
mov r15, qword [rsp + 0x60]
mov rcx, rbx
sub rcx, r15
add rcx, 0xfffffffffffffff8
mov eax, 0x4d
mov edx, 0x80000000
cmp rcx, rdx
ja 0x1400736cc
lea rdx, [r15 + 4]
cmp r15, 0xfffffffffffffffb
ja 0x140073702
cmp rdx, rbx
ja 0x140073711
mov rax, qword [rsi + 8]
bswap ecx
mov dword [rax + r15], ecx
bswap ebp
mov rcx, qword [rsi]
sub rcx, rbx
cmp rcx, 3
jbe 0x1400736e7
mov dword [rax + 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
jmp 0x140073011
mov r8d, 4
mov rcx, rsi
mov rdx, rbx
call fcn.1400e1240
mov rax, qword [rsi + 8]
mov rbx, qword [rsi + 0x10]
jmp 0x1400736bf
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