Function at 0x140074e70
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov rdi, r9
mov qword [rsp + 0x80], r8
mov ebp, edx
mov rsi, rcx
mov r13, qword [rcx + 0x10]
mov rax, qword [0x14019b240]
test rax, rax
je 0x140074eae
test al, 2
jne 0x140074eb7
xor r15d, r15d
mov bl, 1
jmp 0x140074ed5
call fcn.1400e1dd0
test al, 2
je 0x140074ea7
mov r15, qword [0x14019b240]
test r15, r15
je 0x1400757a0
and r15d, 0x400
sete bl
shr r15d, 0xa
mov rax, qword [rsi]
mov rdx, qword [rsi + 0x10]
sub rax, rdx
cmp rax, 3
jbe 0x1400754be
mov rax, qword [rsi + 8]
mov dword [rax + rdx], 0
mov rax, qword [rsi]
mov r14, qword [rsi + 0x10]
add r14, 4
mov qword [rsi + 0x10], r14
mov rcx, rax
sub rcx, r14
cmp rcx, 3
ja 0x140074f5d
mov rcx, r14
add rcx, 4
jb 0x140075006
lea rdx, [rax + rax]
cmp rdx, rcx
cmova rcx, rdx
cmp rcx, 9
mov r12d, 8
cmovae r12, rcx
mov rdx, r12
not rdx
shr rdx, 0x3f
test rax, rax
je 0x140074fb7
mov rcx, qword [rsi + 8]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], 1
mov qword [rsp + 0x60], rax
jmp 0x140074fc0
mov r12, rax
mov rdx, qword [rsi + 0x10]
sub r12, rdx
cmp r12, 3
jbe 0x1400756f1
mov rax, qword [rsi + 8]
mov dword [rax + rdx], 0x74585469
mov r14, qword [rsi + 0x10]
add r14, 4
mov qword [rsi + 0x10], r14
test bl, bl
je 0x140074f99
mov r12d, 0x29d58380
mov ebx, 4
jmp 0x14007500b
lea rdx, [0x1401797fc]
mov ebx, 4
mov r8d, 4
xor ecx, ecx
call fcn.14000b8a0
mov r12d, eax
jmp 0x14007500b
mov qword [rsp + 0x58], 0
lea rcx, [rsp + 0x68]
lea r9, [rsp + 0x50]
mov r8, r12
call fcn.14009dbd0
cmp qword [rsp + 0x68], 0
mov rax, qword [rsp + 0x70]
je 0x140074ff6
movabs rcx, 0x8000000000000001
cmp rax, rcx
jne 0x140075002
mov r12, qword [rsi]
jmp 0x140074f60
mov qword [rsi + 8], rax
mov qword [rsi], r12
jmp 0x140074f60
mov r14, qword [rsi + 0x10]
xor ebx, ebx
xor r12d, r12d
mov dword [rsp + 0x30], r15d
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], r13
mov rax, qword [rsi]
mov rcx, rax
sub rcx, r14
cmp rcx, rdi
jae 0x140075081
mov r15d, ebp
mov ebp, 0x53
add r14, rdi
jb 0x14007578a
lea rcx, [rax + rax]
cmp rcx, r14
cmova r14, rcx
cmp r14, 9
mov r13d, 8
cmovae r13, r14
mov rdx, r13
not rdx
shr rdx, 0x3f
test rax, rax
je 0x1400752be
mov rcx, qword [rsi + 8]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], 1
mov qword [rsp + 0x60], rax
jmp 0x1400752c7
mov r13, rax
mov r15, qword [rsi + 0x10]
sub r13, r15
cmp r13, rdi
jb 0x140075318
mov r14, qword [rsp + 0x80]
mov rcx, qword [rsi + 8]
add rcx, r15
mov rdx, r14
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
add r15, rdi
mov qword [rsi + 0x10], r15
add rbx, rdi
mov qword [rsp + 0x38], rbx
cmp dword [rsp + 0x30], 0
je 0x14007511e
mov ecx, r12d
mov rdx, r14
mov r8, rdi
call fcn.14000b8a0
mov dword [rsp + 0x34], eax
mov byte [rsp + 0x50], 0
cmp r15, qword [rsi]
jne 0x1400750ef
mov rcx, rsi
mov rdx, r15
call fcn.140090310
mov r15, qword [rsi + 0x10]
mov rax, qword [rsi + 8]
mov byte [rax + r15], 0
inc qword [rsi + 0x10]
inc qword [rsp + 0x38]
cmp dword [rsp + 0x30], 0
je 0x14007513c
mov ecx, dword [rsp + 0x34]
lea rdx, [rsp + 0x50]
mov r8d, 1
call fcn.14000b8a0
jmp 0x14007515b
mov ecx, r12d
mov rdx, r14
mov r8, rdi
call fcn.14000b430
mov dword [rsp + 0x34], eax
mov byte [rsp + 0x50], 0
cmp r15, qword [rsi]
je 0x1400750e0
jmp 0x1400750ef
mov eax, dword [rsp + 0x34]
not eax
movzx ecx, byte [rsp + 0x50]
xor cl, al
movzx ecx, cl
lea rdx, [0x1400e5ed8]
shr eax, 8
xor eax, dword [rdx + rcx*4]
not eax
mov dword [rsp + 0x34], eax
mov byte [rsp + 0x50], bpl
mov rsi, qword [rsp + 0x40]
mov rdx, qword [rsi + 0x10]
cmp rdx, qword [rsi]
jne 0x14007517e
mov rcx, rsi
call fcn.140090310
mov rdx, qword [rsi + 0x10]
mov rax, qword [rsi + 8]
mov byte [rax + rdx], bpl
inc qword [rsi + 0x10]
inc qword [rsp + 0x38]
cmp dword [rsp + 0x30], 0
je 0x1400751ac
mov ecx, dword [rsp + 0x34]
lea rdx, [rsp + 0x50]
mov r8d, 1
call fcn.14000b8a0
jmp 0x1400751cb
mov eax, dword [rsp + 0x34]
not eax
movzx ecx, byte [rsp + 0x50]
xor cl, al
movzx ecx, cl
lea rdx, [0x1400e5ed8]
shr eax, 8
xor eax, dword [rdx + rcx*4]
not eax
mov dword [rsp + 0x34], eax
mov byte [rsp + 0x50], 0
mov rsi, qword [rsp + 0x40]
mov rdx, qword [rsi + 0x10]
cmp rdx, qword [rsi]
jne 0x1400751ee
mov rcx, rsi
call fcn.140090310
mov rdx, qword [rsi + 0x10]
mov rax, qword [rsi + 8]
mov byte [rax + rdx], 0
inc qword [rsi + 0x10]
inc qword [rsp + 0x38]
mov rsi, qword [rsp + 0xf8]
cmp dword [rsp + 0x30], 0
je 0x140075224
mov ecx, dword [rsp + 0x34]
lea rdx, [rsp + 0x50]
mov r8d, 1
call fcn.14000b8a0
jmp 0x140075243
mov eax, dword [rsp + 0x34]
not eax
movzx ecx, byte [rsp + 0x50]
xor cl, al
movzx ecx, cl
lea rdx, [0x1400e5ed8]
shr eax, 8
xor eax, dword [rdx + rcx*4]
not eax
mov dword [rsp + 0x34], eax
mov rdi, qword [rsp + 0x40]
mov rax, qword [rdi]
mov rcx, qword [rdi + 0x10]
mov rdx, rax
sub rdx, rcx
cmp rdx, rsi
jae 0x1400752b6
mov ebx, ebp
mov ebp, 0x53
add rcx, rsi
jb 0x14007578a
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 0x14007532f
mov rcx, qword [rdi + 8]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], 1
mov qword [rsp + 0x60], rax
jmp 0x140075338
mov r14, rax
jmp 0x140075378
mov qword [rsp + 0x58], 0
lea rcx, [rsp + 0x68]
lea r9, [rsp + 0x50]
mov r8, r13
call fcn.14009dbd0
cmp qword [rsp + 0x68], 0
mov rax, qword [rsp + 0x70]
je 0x1400752fe
movabs rcx, 0x8000000000000001
cmp rax, rcx
jne 0x14007578a
mov r13, qword [rsi]
jmp 0x140075305
mov qword [rsi + 8], rax
mov qword [rsi], r13
mov ebp, r15d
mov r15, qword [rsi + 0x10]
sub r13, r15
cmp r13, rdi
jae 0x140075094
mov rcx, rsi
mov rdx, r15
mov r8, rdi
call fcn.1400e1240
mov r15, qword [rsi + 0x10]
jmp 0x140075094
mov qword [rsp + 0x58], 0
lea rcx, [rsp + 0x68]
lea r9, [rsp + 0x50]
mov r8, r14
call fcn.14009dbd0
cmp qword [rsp + 0x68], 0
mov rax, qword [rsp + 0x70]
je 0x14007536f
movabs rcx, 0x8000000000000001
cmp rax, rcx
jne 0x14007578a
mov r14, qword [rdi]
jmp 0x140075376
mov qword [rdi + 8], rax
mov qword [rdi], r14
mov ebp, ebx
mov r15, qword [rsp + 0xf0]
mov r12, qword [rdi + 0x10]
sub r14, r12
cmp r14, rsi
jb 0x1400757ad
mov rcx, qword [rdi + 8]
add rcx, r12
mov rdx, r15
mov r8, rsi
call sub.VCRUNTIME140.dll_memcpy
add r12, rsi
mov qword [rdi + 0x10], r12
add qword [rsp + 0x38], rsi
cmp dword [rsp + 0x30], 0
je 0x1400753c6
mov ecx, dword [rsp + 0x34]
mov rdx, r15
mov r8, rsi
call fcn.14000b8a0
jmp 0x1400753d5
mov ecx, dword [rsp + 0x34]
mov rdx, r15
mov r8, rsi
call fcn.14000b430
mov dword [rsp + 0x34], eax
mov byte [rsp + 0x50], 0
mov rsi, qword [rsp + 0x40]
mov rdx, qword [rsi + 0x10]
cmp rdx, qword [rsi]
jne 0x1400753f8
mov rcx, rsi
call fcn.140090310
mov rdx, qword [rsi + 0x10]
mov rax, qword [rsi + 8]
mov byte [rax + rdx], 0
inc qword [rsi + 0x10]
inc qword [rsp + 0x38]
mov rsi, qword [rsp + 0x108]
cmp dword [rsp + 0x30], 0
je 0x14007542e
mov ecx, dword [rsp + 0x34]
lea rdx, [rsp + 0x50]
mov r8d, 1
call fcn.14000b8a0
jmp 0x14007544d
mov eax, dword [rsp + 0x34]
not eax
movzx ecx, byte [rsp + 0x50]
xor cl, al
movzx ecx, cl
lea rdx, [0x1400e5ed8]
shr eax, 8
xor eax, dword [rdx + rcx*4]
not eax
mov dword [rsp + 0x34], eax
mov rdi, qword [rsp + 0x40]
mov rax, qword [rdi]
mov rcx, qword [rdi + 0x10]
mov rdx, rax
sub rdx, rcx
cmp rdx, rsi
jae 0x1400754b9
mov ebx, ebp
mov ebp, 0x53
add rcx, rsi
jb 0x14007578a
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 0x1400754d5
mov rcx, qword [rdi + 8]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], 1
mov qword [rsp + 0x60], rax
jmp 0x1400754de
mov r14, rax
jmp 0x14007551e
mov r8d, 4
mov rcx, rsi
call fcn.1400e1240
mov rdx, qword [rsi + 0x10]
jmp 0x140074ee9
mov qword [rsp + 0x58], 0
lea rcx, [rsp + 0x68]
lea r9, [rsp + 0x50]
mov r8, r14
call fcn.14009dbd0
cmp qword [rsp + 0x68], 0
mov rax, qword [rsp + 0x70]
je 0x140075515
movabs rcx, 0x8000000000000001
cmp rax, rcx
jne 0x14007578a
mov r14, qword [rdi]
jmp 0x14007551c
mov qword [rdi + 8], rax
mov qword [rdi], r14
mov ebp, ebx
mov r15, qword [rsp + 0x100]
mov r12, qword [rdi + 0x10]
sub r14, r12
cmp r14, rsi
jb 0x1400757c4
mov rcx, qword [rdi + 8]
add rcx, r12
mov rdx, r15
mov r8, rsi
call sub.VCRUNTIME140.dll_memcpy
add r12, rsi
mov qword [rdi + 0x10], r12
add qword [rsp + 0x38], rsi
cmp dword [rsp + 0x30], 0
je 0x14007556c
mov ecx, dword [rsp + 0x34]
mov rdx, r15
mov r8, rsi
call fcn.14000b8a0
jmp 0x14007557b
mov ecx, dword [rsp + 0x34]
mov rdx, r15
mov r8, rsi
call fcn.14000b430
mov dword [rsp + 0x34], eax
mov byte [rsp + 0x50], 0
mov rsi, qword [rsp + 0x40]
mov rdx, qword [rsi + 0x10]
cmp rdx, qword [rsi]
jne 0x14007559e
mov rcx, rsi
call fcn.140090310
mov rdx, qword [rsi + 0x10]
mov rax, qword [rsi + 8]
mov byte [rax + rdx], 0
inc qword [rsi + 0x10]
inc qword [rsp + 0x38]
cmp dword [rsp + 0x30], 0
je 0x1400755cc
mov ecx, dword [rsp + 0x34]
lea rdx, [rsp + 0x50]
mov r8d, 1
call fcn.14000b8a0
jmp 0x1400755eb
mov eax, dword [rsp + 0x34]
not eax
movzx ecx, byte [rsp + 0x50]
xor cl, al
movzx ecx, cl
lea rdx, [0x1400e5ed8]
shr eax, 8
xor eax, dword [rdx + rcx*4]
not eax
mov rsi, qword [rsp + 0x118]
mov rdi, qword [rsp + 0x110]
mov dword [rsp + 0x34], eax
test bpl, bpl
je 0x14007563b
mov rax, qword [rsp + 0x120]
mov qword [rsp + 0x20], rax
lea rdx, [0x140179750]
lea rcx, [rsp + 0x30]
mov r8, rdi
mov r9, rsi
call fcn.14007d310
mov ebp, eax
test eax, eax
jne 0x14007578a
mov esi, dword [rsp + 0x34]
jmp 0x14007571d
mov rbx, qword [rsp + 0x40]
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
mov rdx, rax
sub rdx, rcx
cmp rdx, rsi
jae 0x1400756a8
mov ebp, 0x53
add rcx, rsi
jb 0x14007578a
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 0x1400757db
mov rcx, qword [rbx + 8]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], 1
mov qword [rsp + 0x60], rax
jmp 0x1400757e4
mov r14, rax
mov r15, qword [rbx + 0x10]
sub r14, r15
cmp r14, rsi
jb 0x14007582a
mov rcx, qword [rbx + 8]
add rcx, r15
mov rdx, rdi
mov r8, rsi
call sub.VCRUNTIME140.dll_memcpy
add r15, rsi
mov qword [rbx + 0x10], r15
add qword [rsp + 0x38], rsi
cmp dword [rsp + 0x30], 0
je 0x140075708
mov ecx, dword [rsp + 0x34]
mov rdx, rdi
mov r8, rsi
call fcn.14000b8a0
jmp 0x140075717
mov r8d, 4
mov rcx, rsi
call fcn.1400e1240
mov rdx, qword [rsi + 0x10]
jmp 0x140074f71
mov ecx, dword [rsp + 0x34]
mov rdx, rdi
mov r8, rsi
call fcn.14000b430
mov esi, eax
mov dword [rsp + 0x34], eax
mov rdi, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rdi + 0x10]
mov r8, rdx
sub r8, rcx
add r8, 0xfffffffffffffff8
mov ebp, 0x4d
mov eax, 0x80000000
cmp r8, rax
ja 0x14007578a
lea rax, [rcx + 4]
cmp rcx, 0xfffffffffffffffb
ja 0x140075858
cmp rax, rdx
ja 0x140075867
mov rax, qword [rdi + 8]
bswap r8d
mov dword [rax + rcx], r8d
bswap esi
mov rax, qword [rdi]
mov rdx, qword [rdi + 0x10]
sub rax, rdx
cmp rax, 3
jbe 0x140075841
mov rax, qword [rdi + 8]
mov dword [rax + rdx], esi
add qword [rdi + 0x10], 4
xor ebp, ebp
mov eax, ebp
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.1400e1dd0
mov r15, rax
jmp 0x140074ec7
mov rcx, rdi
mov rdx, r12
mov r8, rsi
call fcn.1400e1240
mov r12, qword [rdi + 0x10]
jmp 0x140075390
mov rcx, rdi
mov rdx, r12
mov r8, rsi
call fcn.1400e1240
mov r12, qword [rdi + 0x10]
jmp 0x140075536
mov qword [rsp + 0x58], 0
lea rcx, [rsp + 0x68]
lea r9, [rsp + 0x50]
mov r8, r14
call fcn.14009dbd0
cmp qword [rsp + 0x68], 0
mov rax, qword [rsp + 0x70]
je 0x14007581e
movabs rcx, 0x8000000000000001
cmp rax, rcx
jne 0x14007578a
mov r14, qword [rbx]
jmp 0x1400756ab
mov qword [rbx + 8], rax
mov qword [rbx], r14
jmp 0x1400756ab
mov rcx, rbx
mov rdx, r15
mov r8, rsi
call fcn.1400e1240
mov r15, qword [rbx + 0x10]
jmp 0x1400756bb
mov r8d, 4
mov rcx, rdi
call fcn.1400e1240
mov rdx, qword [rdi + 0x10]
jmp 0x14007577c
lea r8, str.F:Compilers_Stuff.cargo_registry_srcindex.crates.io_6f17d22bba15001flodepng_3.10.0_src_rustimpl.rs
mov rdx, rax
call fcn.1400db4d0
lea r8, str.F:Compilers_Stuff.cargo_registry_srcindex.crates.io_6f17d22bba15001flodepng_3.10.0_src_rustimpl.rs
mov rcx, rax
call fcn.1400db210
int3