Function at 0x43bb29
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x68]
push ebx
xor ebx, ebx
sub esp, 0x9c
mov esi, dword [ebp + 8]
mov dword [esp + 8], 1
mov dword [esp + 0xc], esi
mov dword [esp + 4], 8
mov dword [esp], edi
call sub.msvcrt.dll_fread
dec eax
jne 0x43c07e
mov dword [esp + 8], 8
mov dword [esp + 4], 0x525208
mov dword [esp], edi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x43c07e
mov ecx, dword [ebp + 0xc]
lea edi, [ebp - 0x50]
mov dword [ebp - 0x74], 0
mov dword [ecx], 0
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0
mov ecx, 0xe
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x50]
mov dword [esp + 8], 0x38
mov dword [esp + 4], 0x525120
mov dword [esp], eax
call fcn.004b6be4
test eax, eax
jne 0x43bf18
xor ebx, ebx
lea eax, [ebp - 0x70]
mov dword [esp + 0xc], esi
mov dword [esp + 8], 1
mov dword [esp + 4], 8
mov dword [esp], eax
call sub.msvcrt.dll_fread
dec eax
je 0x43bbf4
mov dword [esp + 4], str.ERROR:_could_not_read_chunk_header
jmp 0x43bc38
mov eax, dword [ebp - 0x6c]
mov edi, dword [sym.imp.WS2_32.dll_ntohl]
mov dword [esp], eax
call edi
push edx
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x70]
mov dword [esp], eax
call edi
mov edx, dword [ebp - 0x7c]
mov edi, eax
push ecx
cmp edx, 0x49484452
jne 0x43be32
cmp eax, 0xd
je 0x43bc51
lea eax, [ebp - 0x50]
mov dword [esp], eax
call fcn.004b7ecc
mov dword [esp + 4], str.ERROR:_bad_png_header_size
mov dword [esp], 0x5694e0
call fcn.004c8905
mov dword [esp], eax
call fcn.004c8cf3
jmp 0x43bf18
lea eax, [ebp - 0x60]
mov dword [esp + 0xc], esi
mov dword [esp + 8], 1
mov dword [esp + 4], 0xd
mov dword [esp], eax
call sub.msvcrt.dll_fread
dec eax
je 0x43bc94
mov dword [esp + 4], str.ERROR:_could_not_read_inline_png_header
mov dword [esp], 0x5694e0
call fcn.004c8905
mov dword [esp], eax
call fcn.004c8cf3
jmp 0x43be42
mov eax, dword [ebp - 0x60]
mov ebx, dword [sym.imp.WS2_32.dll_htonl]
mov dword [esp], eax
call ebx
mov ecx, dword [ebp + 0xc]
push edx
mov dword [ecx], eax
mov eax, dword [ebp - 0x5c]
mov dword [esp], eax
call ebx
push ecx
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
lea ebx, [edx*4 + 1]
imul ebx, eax
mov dword [esp], ebx
call sub.msvcrt.dll_malloc
mov edx, eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x74], edx
test eax, eax
je 0x43bce1
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0x74]
cmp byte [ebp - 0x58], 8
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x44], eax
jne 0x43bd05
cmp byte [ebp - 0x57], 6
jne 0x43bd05
mov al, byte [ebp - 0x55]
or eax, dword [ebp - 0x54]
or al, byte [ebp - 0x56]
je 0x43be1d
mov dword [esp + 4], str.ERROR:_unsupported_png_format
mov dword [esp], 0x5694e0
call fcn.004c8905
mov dword [esp], eax
call fcn.004c8cf3
mov dword [esp + 4], str.depth
mov dword [esp], 0x5694e0
call fcn.004c8905
movzx edx, byte [ebp - 0x58]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004c8a58
mov dword [esp + 4], 0x5251b1
mov dword [esp], eax
call fcn.004c8905
mov dword [esp + 4], str.color_type
mov dword [esp], 0x5694e0
call fcn.004c8905
movzx edx, byte [ebp - 0x57]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004c8a58
mov dword [esp + 4], 0x5251b1
mov dword [esp], eax
call fcn.004c8905
mov dword [esp + 4], str.compression
mov dword [esp], 0x5694e0
call fcn.004c8905
movzx edx, byte [ebp - 0x56]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004c8a58
mov dword [esp + 4], 0x5251b1
mov dword [esp], eax
call fcn.004c8905
mov dword [esp + 4], 0x5251cd
mov dword [esp], 0x5694e0
call fcn.004c8905
movzx edx, byte [ebp - 0x55]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004c8a58
mov dword [esp + 4], 0x5251b1
mov dword [esp], eax
call fcn.004c8905
mov dword [esp + 4], str.interlace
mov dword [esp], 0x5694e0
call fcn.004c8905
movzx edx, byte [ebp - 0x54]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004c8a58
mov dword [esp], eax
call fcn.004c8cf3
mov dword [esp + 8], 1
mov dword [esp + 4], 4
jmp 0x43bf0b
cmp edx, 0x49444154
jne 0x43bef4
test ebx, ebx
jne 0x43be52
lea eax, [ebp - 0x50]
mov dword [esp], eax
call fcn.004b7ecc
jmp 0x43bf18
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [esp + 0xc], esi
mov dword [esp + 8], 1
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [ebp - 0x60], eax
call sub.msvcrt.dll_fread
dec eax
je 0x43be80
lea eax, [ebp - 0x50]
mov dword [esp], eax
jmp 0x43bec0
mov dword [ebp - 0x4c], edi
lea edi, [ebp - 0x50]
mov eax, dword [ebp - 0x60]
mov dword [esp + 4], 0
mov dword [esp], edi
mov dword [ebp - 0x50], eax
call fcn.004b6c0d
cmp eax, 1
jbe 0x43becf
mov dword [esp + 4], str.png_gunzip_failed
mov dword [esp], 0x5694e0
call fcn.004c8905
mov dword [esp], eax
call fcn.004c8cf3
mov dword [esp], edi
call fcn.004b7ecc
lea eax, [ebp - 0x60]
call fcn.0043bb0c
jmp 0x43bf18
mov dword [esp + 8], 1
mov dword [esp + 4], 4
mov dword [esp], esi
call sub.msvcrt.dll_fseek
lea eax, [ebp - 0x60]
call fcn.0043bb0c
jmp 0x43bbc8
cmp edx, 0x49454e44
je 0x43bf1f
add edi, 4
mov dword [esp + 8], 1
mov dword [esp + 4], edi
mov dword [esp], esi
call sub.msvcrt.dll_fseek
jmp 0x43bbc8
xor ebx, ebx
jmp 0x43c054
lea eax, [ebp - 0x50]
mov dword [esp], eax
call fcn.004b7ecc
test ebx, ebx
je 0x43bf18
mov eax, dword [ebp + 0xc]
xor edi, edi
mov esi, dword [eax]
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov dword [ebp - 0x88], eax
imul eax, esi
shl eax, 2
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, dword [ebp - 0x74]
mov dword [ebp - 0x60], eax
mov ebx, eax
lea eax, [esi*4]
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x88], edi
je 0x43c042
movzx eax, byte [edx]
cmp eax, 4
ja 0x43c05e
mov eax, dword [eax*4 + 0x525210]
xor esi, esi
mov dword [ebp - 0x8c], eax
lea eax, [edx + 2]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x7c]
neg eax
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x7c], esi
jle 0x43c029
cmp esi, 3
jle 0x43bfd5
test edi, edi
je 0x43bfb8
mov eax, dword [ebp - 0x80]
movzx ecx, byte [ebx + eax]
movzx eax, byte [ebx + eax - 4]
jmp 0x43bfbc
xor ecx, ecx
xor eax, eax
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
movzx eax, byte [ebx + esi - 4]
mov dword [ebp - 0x90], edx
mov dword [esp + 4], eax
jmp 0x43bffc
xor eax, eax
test edi, edi
je 0x43bfe2
mov eax, dword [ebp - 0x80]
movzx eax, byte [ebx + eax]
mov dword [ebp - 0x90], edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x84]
movzx eax, byte [eax - 1]
mov dword [esp], eax
mov eax, dword [ebp - 0x8c]
call eax
mov byte [ebx + esi], al
inc esi
mov edx, dword [ebp - 0x90]
inc dword [ebp - 0x84]
inc dword [ebp - 0x80]
jmp 0x43bf98
cmp dword [ebp - 0x7c], 0
mov eax, 0
cmovns eax, dword [ebp - 0x7c]
inc edi
add ebx, eax
lea edx, [edx + eax + 1]
jmp 0x43bf60
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x60], 0
lea eax, [ebp - 0x60]
call fcn.0043bb0c
lea eax, [ebp - 0x74]
call fcn.0043bb0c
jmp 0x43c07e
mov dword [esp + 4], str.png_defilter_failed
xor ebx, ebx
mov dword [esp], 0x5694e0
call fcn.004c8905
mov dword [esp], eax
call fcn.004c8cf3
jmp 0x43c04c
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret