Function at 0x140006220
Capabilities:
Hash data with crc32

Disassembly:
push rdi
sub rsp, 0x50
mov rax, qword [0x14000e8e8]
xor rax, rsp
mov qword [rsp + 0x28], rax
mov rax, qword [rcx]
mov rdi, rcx
or dword [rcx + 0x18], 4
test byte [rax], 0xe0
je 0x140006291
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rdx, rax
lea rcx, str._SYNC
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputs]
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov ecx, dword [rdi + 0x15c]
mov rdx, rax
call fcn.140006650
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rdx, rax
mov ecx, 0xa
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_putc]
mov rcx, qword [rdi + 0x40]
lea rdx, [rdi + 0x150]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fsetpos]
test eax, eax
jne 0x14000651e
mov qword [rsp + 0x68], rbx
lea rdx, [rsp + 0x20]
mov qword [rsp + 0x70], rbp
mov rcx, rdi
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r15
mov dword [rdi + 0x164], 8
call fcn.1400051e0
cmp eax, 4
jne 0x14000653d
mov r13d, dword [rdi + 0x15c]
lea rbp, [0x14000e010]
mov r14d, dword [rsp + 0x20]
mov ecx, r13d
not ecx
mov r8d, r13d
shr rcx, 0x18
shr r8, 8
mov edx, dword [rbp + rcx*4]
mov ecx, r13d
xor edx, 0xffffff
shr rcx, 0x10
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
mov ecx, dword [rbp + rax*4]
xor ecx, edx
mov eax, ecx
shr ecx, 8
xor r8, rax
movzx eax, r8b
mov edx, dword [rbp + rax*4]
xor edx, ecx
mov eax, edx
shr edx, 8
xor rax, r13
movzx ecx, al
mov r15d, dword [rbp + rcx*4]
xor r15d, edx
xor ebx, ebx
mov esi, ebx
mov r12d, ebx
nop
mov eax, r15d
not eax
cmp eax, r14d
jne 0x14000646e
cmp r13d, 0x49454e44
je 0x14000650f
lea ebp, [rsi + 8]
cmp ebx, ebp
jae 0x1400063a2
mov rcx, rdi
call fcn.140005300
cmp eax, 0xffffffff
je 0x14000653d
mov ecx, ebx
inc ebx
and ecx, 7
mov byte [rsp + rcx + 0x20], al
cmp ebx, ebp
jb 0x140006382
mov eax, esi
and eax, 0xfffffff8
sub esi, eax
sub ebx, eax
movsxd rdx, esi
lea rax, [rdx + 1]
and eax, 7
movzx r8d, byte [rsp + rax + 0x20]
lea rax, [rdx + 2]
and eax, 7
shl r8d, 0x10
movzx ecx, byte [rsp + rax + 0x20]
mov rax, rdx
shl ecx, 8
and eax, 7
add r8d, ecx
movzx ecx, byte [rsp + rax + 0x20]
lea rax, [rdx + 3]
shl ecx, 0x18
and eax, 7
add r8d, ecx
movzx ecx, byte [rsp + rax + 0x20]
add r8d, ecx
cmp r8d, 0x7fffffff
jae 0x140006467
lea rax, [rdx - 4]
and eax, 7
movzx r9d, byte [rsp + rax + 0x20]
lea rax, [rdx - 3]
and eax, 7
shl r9d, 0x18
movzx ecx, byte [rsp + rax + 0x20]
lea rax, [rdx - 2]
shl ecx, 0x10
and eax, 7
add r9d, ecx
movzx ecx, byte [rsp + rax + 0x20]
lea rax, [rdx - 1]
shl ecx, 8
and eax, 7
add r9d, ecx
movzx ecx, byte [rsp + rax + 0x20]
add r9d, ecx
mov ecx, 0x19191919
mov edx, r9d
and edx, 0xdfdfffdf
mov eax, edx
add edx, 0xbebebebf
sub ecx, edx
xor eax, 0x40404040
or ecx, eax
or ecx, edx
test ecx, 0xe0e0e0e0
je 0x1400064c7
lea rbp, [0x14000e010]
cmp ebx, esi
ja 0x140006487
mov rcx, rdi
call fcn.140005300
mov edx, eax
cmp eax, 0xffffffff
je 0x14000653d
jmp 0x140006493
inc esi
mov eax, esi
and eax, 7
movzx edx, byte [rsp + rax + 0x20]
mov eax, r15d
mov ecx, r14d
shr rcx, 0x18
inc r12d
xor rcx, rax
shl r14d, 8
shr eax, 8
add r14d, edx
movzx ecx, cl
mov r15d, dword [rbp + rcx*4]
xor r15d, eax
cmp r12d, 0x7fffffff
jbe 0x140006360
jmp 0x14000653d
add dword [rdi + 0x164], 0xfffffff8
mov edx, r14d
mov rcx, rdi
call fcn.140004ae0
mov r14, qword [rsp + 0x38]
mov r13, qword [rsp + 0x40]
mov r12, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x68]
mov r15, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.140007ba0
add rsp, 0x50
pop rdi
ret
xor r9d, r9d
mov dword [rdi + 0x158], r12d
xor r8d, r8d
jmp 0x1400064ce
mov rcx, qword [rdi + 8]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_perror]
lea r8, [0x14000b728]
mov edx, 5
mov rcx, rdi
call fcn.140005fe0
int3
lea r8, str.damaged_PNG_stream
mov edx, 5
mov rcx, rdi
call fcn.140005fe0
int3