Function at 0x43cfa0
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 0x43d494
mov r8d, 8
lea rdx, [0x00534328]
mov rcx, r14
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x43d494
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, [0x00534240]
call fcn.004bcccb
test eax, eax
jne 0x43d354
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 0x43d075
lea rdx, str.ERROR:_could_not_read_chunk_header
jmp 0x43d0af
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 0x43d27f
cmp eax, 0xd
je 0x43d0c8
mov rcx, r12
call fcn.004bde77
lea rdx, str.ERROR:_bad_png_header_size
mov rcx, qword [0x0053cb90]
call fcn.004d0ff9
mov rcx, rax
call fcn.004d13bf
jmp 0x43d354
lea rcx, [rsp + 0x48]
mov r9, rbx
mov r8d, 1
mov edx, 0xd
call sub.msvcrt.dll_fread
dec rax
je 0x43d105
mov rcx, qword [0x0053cb90]
lea rdx, str.ERROR:_could_not_read_inline_png_header
call fcn.004d0ff9
mov rcx, rax
call fcn.004d13bf
jmp 0x43d290
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 0x43d142
call fcn.004d4d78
mov rax, qword [rsp + 0x30]
cmp byte [rsp + 0x50], 8
mov dword [rsp + 0x70], esi
mov qword [rsp + 0x68], rax
jne 0x43d170
cmp byte [rsp + 0x51], 6
jne 0x43d170
mov al, byte [rsp + 0x53]
or eax, dword [rsp + 0x54]
or al, byte [rsp + 0x52]
je 0x43d26f
mov rcx, qword [0x0053cb90]
lea rdx, str.ERROR:_unsupported_png_format
call fcn.004d0ff9
mov rcx, rax
call fcn.004d13bf
mov rcx, qword [0x0053cb90]
lea rdx, str.depth
call fcn.004d0ff9
movzx edx, byte [rsp + 0x50]
mov rcx, rax
call fcn.004d10e2
lea rdx, [0x005342d1]
mov rcx, rax
call fcn.004d0ff9
mov rcx, qword [0x0053cb90]
lea rdx, str.color_type
call fcn.004d0ff9
movzx edx, byte [rsp + 0x51]
mov rcx, rax
call fcn.004d10e2
lea rdx, [0x005342d1]
mov rcx, rax
call fcn.004d0ff9
mov rcx, qword [0x0053cb90]
lea rdx, str.compression
call fcn.004d0ff9
movzx edx, byte [rsp + 0x52]
mov rcx, rax
call fcn.004d10e2
lea rdx, [0x005342d1]
mov rcx, rax
call fcn.004d0ff9
mov rcx, qword [0x0053cb90]
lea rdx, [0x005342ed]
call fcn.004d0ff9
movzx edx, byte [rsp + 0x53]
mov rcx, rax
call fcn.004d10e2
lea rdx, [0x005342d1]
mov rcx, rax
call fcn.004d0ff9
mov rcx, qword [0x0053cb90]
lea rdx, str.interlace
call fcn.004d0ff9
movzx edx, byte [rsp + 0x54]
mov rcx, rax
call fcn.004d10e2
mov rcx, rax
call fcn.004d13bf
mov r8d, 1
mov edx, 4
jmp 0x43d347
cmp r15d, 0x49444154
jne 0x43d335
test esi, esi
jne 0x43d29d
mov rcx, r12
call fcn.004bde77
jmp 0x43d354
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 0x43d303
mov rax, qword [rsp + 0x48]
xor edx, edx
mov rcx, r12
mov dword [rsp + 0x60], edi
mov qword [rsp + 0x58], rax
call fcn.004bccdb
cmp eax, 1
jbe 0x43d315
mov rcx, qword [0x0053cb90]
lea rdx, str.png_gunzip_failed
call fcn.004d0ff9
mov rcx, rax
call fcn.004d13bf
mov rcx, r12
call fcn.004bde77
mov rcx, r15
call fcn.0043cf88
jmp 0x43d354
mov rcx, rbx
mov r8d, 1
mov edx, 4
call sub.msvcrt.dll_fseek
mov rcx, r15
call fcn.0043cf88
jmp 0x43d04f
cmp r15d, 0x49454e44
je 0x43d35c
lea edx, [rax + 4]
mov r8d, 1
mov rcx, rbx
call sub.msvcrt.dll_fseek
jmp 0x43d04f
xor r12d, r12d
jmp 0x43d468
mov rcx, r12
call fcn.004bde77
test esi, esi
je 0x43d354
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 0x43d450
movzx eax, byte [r14]
cmp eax, 4
ja 0x43d474
lea rdx, [0x00534340]
lea r12, [r14 + 2]
xor r13d, r13d
mov rsi, rdi
mov r15, qword [rdx + rax*8]
cmp ebx, r13d
jle 0x43d435
cmp r13d, 3
jle 0x43d407
test ebp, ebp
je 0x43d3f5
mov eax, ebx
neg eax
cdqe
movzx r9d, byte [rsi + rax]
mov rax, qword [rsp + 0x28]
movzx r8d, byte [rsi + rax]
jmp 0x43d3fb
xor r9d, r9d
xor r8d, r8d
movzx edx, byte [rsi - 4]
movzx ecx, byte [r12 - 1]
jmp 0x43d424
xor r9d, r9d
test ebp, ebp
je 0x43d419
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 0x43d3cf
test ebx, ebx
mov eax, 0
cmovns eax, ebx
inc ebp
cdqe
add rdi, rax
lea r14, [r14 + rax + 1]
jmp 0x43d3a3
mov r12, qword [rsp + 0x48]
mov qword [rsp + 0x48], 0
lea rcx, [rsp + 0x48]
call fcn.0043cf88
lea rcx, [rsp + 0x30]
call fcn.0043cf88
jmp 0x43d494
mov rcx, qword [0x0053cb90]
lea rdx, str.png_defilter_failed
xor r12d, r12d
call fcn.004d0ff9
mov rcx, rax
call fcn.004d13bf
jmp 0x43d45e
mov rax, r12
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret