Function at 0x43caa0
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
xor r12d, r12d
lea r14, [rsp + 0x40]
mov r9, rcx
mov rbx, rcx
mov rbp, rdx
mov r13, r8
mov edx, 8
mov r8d, 1
mov rcx, r14
call sub.msvcrt.dll_fread
dec rax
jne 0x43cf94
mov r8d, 8
lea rdx, [0x00533308]
mov rcx, r14
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x43cf94
lea rdi, [rsp + 0x58]
mov ecx, 0x16
lea r12, [rsp + 0x58]
mov dword [rbp], 0
rep stosd dword [rdi], eax
mov r8d, 0x58
mov rcx, r12
mov dword [r13], 0
mov qword [rsp + 0x30], 0
lea rdx, [0x00533220]
call fcn.004bc06b
test eax, eax
jne 0x43ce54
mov r14, qword [sym.imp.WS2_32.dll_htonl]
xor esi, esi
lea rcx, [rsp + 0x38]
mov r9, rbx
mov r8d, 1
mov edx, 8
call sub.msvcrt.dll_fread
dec rax
je 0x43cb75
lea rdx, str.ERROR:_could_not_read_chunk_header
jmp 0x43cbaf
mov ecx, dword [rsp + 0x3c]
call qword [sym.imp.WS2_32.dll_ntohl]
mov ecx, dword [rsp + 0x38]
mov r15d, eax
call qword [sym.imp.WS2_32.dll_ntohl]
mov edi, eax
cmp r15d, 0x49484452
jne 0x43cd7f
cmp eax, 0xd
je 0x43cbc8
mov rcx, r12
call fcn.004bd217
lea rdx, str.ERROR:_bad_png_header_size
mov rcx, qword [0x0053bb30]
call fcn.004d0399
mov rcx, rax
call fcn.004d075f
jmp 0x43ce54
lea rcx, [rsp + 0x48]
mov r9, rbx
mov r8d, 1
mov edx, 0xd
call sub.msvcrt.dll_fread
dec rax
je 0x43cc05
mov rcx, qword [0x0053bb30]
lea rdx, str.ERROR:_could_not_read_inline_png_header
call fcn.004d0399
mov rcx, rax
call fcn.004d075f
jmp 0x43cd90
mov ecx, dword [rsp + 0x48]
call r14
mov ecx, dword [rsp + 0x4c]
mov dword [rbp], eax
call r14
mov dword [r13], eax
mov edx, dword [rbp]
lea esi, [rdx*4 + 1]
imul esi, eax
mov ecx, esi
call sub.msvcrt.dll_malloc
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x30], rax
test rcx, rcx
je 0x43cc42
call fcn.004d4108
mov rax, qword [rsp + 0x30]
cmp byte [rsp + 0x50], 8
mov dword [rsp + 0x70], esi
mov qword [rsp + 0x68], rax
jne 0x43cc70
cmp byte [rsp + 0x51], 6
jne 0x43cc70
mov al, byte [rsp + 0x53]
or eax, dword [rsp + 0x54]
or al, byte [rsp + 0x52]
je 0x43cd6f
mov rcx, qword [0x0053bb30]
lea rdx, str.ERROR:_unsupported_png_format
call fcn.004d0399
mov rcx, rax
call fcn.004d075f
mov rcx, qword [0x0053bb30]
lea rdx, str.depth
call fcn.004d0399
movzx edx, byte [rsp + 0x50]
mov rcx, rax
call fcn.004d0482
lea rdx, [0x005332b1]
mov rcx, rax
call fcn.004d0399
mov rcx, qword [0x0053bb30]
lea rdx, str.color_type
call fcn.004d0399
movzx edx, byte [rsp + 0x51]
mov rcx, rax
call fcn.004d0482
lea rdx, [0x005332b1]
mov rcx, rax
call fcn.004d0399
mov rcx, qword [0x0053bb30]
lea rdx, str.compression
call fcn.004d0399
movzx edx, byte [rsp + 0x52]
mov rcx, rax
call fcn.004d0482
lea rdx, [0x005332b1]
mov rcx, rax
call fcn.004d0399
mov rcx, qword [0x0053bb30]
lea rdx, [0x005332cd]
call fcn.004d0399
movzx edx, byte [rsp + 0x53]
mov rcx, rax
call fcn.004d0482
lea rdx, [0x005332b1]
mov rcx, rax
call fcn.004d0399
mov rcx, qword [0x0053bb30]
lea rdx, str.interlace
call fcn.004d0399
movzx edx, byte [rsp + 0x54]
mov rcx, rax
call fcn.004d0482
mov rcx, rax
call fcn.004d075f
mov r8d, 1
mov edx, 4
jmp 0x43ce47
cmp r15d, 0x49444154
jne 0x43ce35
test esi, esi
jne 0x43cd9d
mov rcx, r12
call fcn.004bd217
jmp 0x43ce54
mov r15d, eax
mov rcx, r15
call sub.msvcrt.dll_malloc
mov rdx, r15
mov r9, rbx
mov r8d, 1
mov rcx, rax
mov qword [rsp + 0x48], rax
lea r15, [rsp + 0x48]
call sub.msvcrt.dll_fread
dec rax
jne 0x43ce03
mov rax, qword [rsp + 0x48]
xor edx, edx
mov rcx, r12
mov dword [rsp + 0x60], edi
mov qword [rsp + 0x58], rax
call fcn.004bc07b
cmp eax, 1
jbe 0x43ce15
mov rcx, qword [0x0053bb30]
lea rdx, str.png_gunzip_failed
call fcn.004d0399
mov rcx, rax
call fcn.004d075f
mov rcx, r12
call fcn.004bd217
mov rcx, r15
call fcn.0043ca88
jmp 0x43ce54
mov rcx, rbx
mov r8d, 1
mov edx, 4
call sub.msvcrt.dll_fseek
mov rcx, r15
call fcn.0043ca88
jmp 0x43cb4f
cmp r15d, 0x49454e44
je 0x43ce5c
lea edx, [rax + 4]
mov r8d, 1
mov rcx, rbx
call sub.msvcrt.dll_fseek
jmp 0x43cb4f
xor r12d, r12d
jmp 0x43cf68
mov rcx, r12
call fcn.004bd217
test esi, esi
je 0x43ce54
mov eax, dword [r13]
mov ebx, dword [rbp]
mov r12d, 0xfffffffc
xor ebp, ebp
mov ecx, eax
mov dword [rsp + 0x24], eax
imul ecx, ebx
shl ebx, 2
sub r12d, ebx
shl ecx, 2
call sub.msvcrt.dll_malloc
mov r14, qword [rsp + 0x30]
mov qword [rsp + 0x48], rax
mov rdi, rax
movsxd rax, r12d
mov qword [rsp + 0x28], rax
cmp dword [rsp + 0x24], ebp
je 0x43cf50
movzx eax, byte [r14]
cmp eax, 4
ja 0x43cf74
lea rdx, [0x00533320]
lea r12, [r14 + 2]
xor r13d, r13d
mov rsi, rdi
mov r15, qword [rdx + rax*8]
cmp ebx, r13d
jle 0x43cf35
cmp r13d, 3
jle 0x43cf07
test ebp, ebp
je 0x43cef5
mov eax, ebx
neg eax
cdqe
movzx r9d, byte [rsi + rax]
mov rax, qword [rsp + 0x28]
movzx r8d, byte [rsi + rax]
jmp 0x43cefb
xor r9d, r9d
xor r8d, r8d
movzx edx, byte [rsi - 4]
movzx ecx, byte [r12 - 1]
jmp 0x43cf24
xor r9d, r9d
test ebp, ebp
je 0x43cf19
mov eax, ebx
neg eax
cdqe
movzx r9d, byte [rsi + rax]
movzx ecx, byte [r12 - 1]
xor r8d, r8d
xor edx, edx
call r15
inc rsi
inc r13d
inc r12
mov byte [rsi - 1], al
jmp 0x43cecf
test ebx, ebx
mov eax, 0
cmovns eax, ebx
inc ebp
cdqe
add rdi, rax
lea r14, [r14 + rax + 1]
jmp 0x43cea3
mov r12, qword [rsp + 0x48]
mov qword [rsp + 0x48], 0
lea rcx, [rsp + 0x48]
call fcn.0043ca88
lea rcx, [rsp + 0x30]
call fcn.0043ca88
jmp 0x43cf94
mov rcx, qword [0x0053bb30]
lea rdx, str.png_defilter_failed
xor r12d, r12d
call fcn.004d0399
mov rcx, rax
call fcn.004d075f
jmp 0x43cf5e
mov rax, r12
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret