Function at 0x43bc29
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 0x43c17e
mov dword [esp + 8], 8
mov dword [esp + 4], 0x525208
mov dword [esp], edi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x43c17e
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.004b6e8c
test eax, eax
jne 0x43c018
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 0x43bcf4
mov dword [esp + 4], str.ERROR:_could_not_read_chunk_header
jmp 0x43bd38
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 0x43bf32
cmp eax, 0xd
je 0x43bd51
lea eax, [ebp - 0x50]
mov dword [esp], eax
call fcn.004b8174
mov dword [esp + 4], str.ERROR:_bad_png_header_size
mov dword [esp], 0x569500
call fcn.004c8bb5
mov dword [esp], eax
call fcn.004c8fa3
jmp 0x43c018
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 0x43bd94
mov dword [esp + 4], str.ERROR:_could_not_read_inline_png_header
mov dword [esp], 0x569500
call fcn.004c8bb5
mov dword [esp], eax
call fcn.004c8fa3
jmp 0x43bf42
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 0x43bde1
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 0x43be05
cmp byte [ebp - 0x57], 6
jne 0x43be05
mov al, byte [ebp - 0x55]
or eax, dword [ebp - 0x54]
or al, byte [ebp - 0x56]
je 0x43bf1d
mov dword [esp + 4], str.ERROR:_unsupported_png_format
mov dword [esp], 0x569500
call fcn.004c8bb5
mov dword [esp], eax
call fcn.004c8fa3
mov dword [esp + 4], str.depth
mov dword [esp], 0x569500
call fcn.004c8bb5
movzx edx, byte [ebp - 0x58]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004c8d08
mov dword [esp + 4], 0x5251b1
mov dword [esp], eax
call fcn.004c8bb5
mov dword [esp + 4], str.color_type
mov dword [esp], 0x569500
call fcn.004c8bb5
movzx edx, byte [ebp - 0x57]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004c8d08
mov dword [esp + 4], 0x5251b1
mov dword [esp], eax
call fcn.004c8bb5
mov dword [esp + 4], str.compression
mov dword [esp], 0x569500
call fcn.004c8bb5
movzx edx, byte [ebp - 0x56]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004c8d08
mov dword [esp + 4], 0x5251b1
mov dword [esp], eax
call fcn.004c8bb5
mov dword [esp + 4], 0x5251cd
mov dword [esp], 0x569500
call fcn.004c8bb5
movzx edx, byte [ebp - 0x55]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004c8d08
mov dword [esp + 4], 0x5251b1
mov dword [esp], eax
call fcn.004c8bb5
mov dword [esp + 4], str.interlace
mov dword [esp], 0x569500
call fcn.004c8bb5
movzx edx, byte [ebp - 0x54]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004c8d08
mov dword [esp], eax
call fcn.004c8fa3
mov dword [esp + 8], 1
mov dword [esp + 4], 4
jmp 0x43c00b
cmp edx, 0x49444154
jne 0x43bff4
test ebx, ebx
jne 0x43bf52
lea eax, [ebp - 0x50]
mov dword [esp], eax
call fcn.004b8174
jmp 0x43c018
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 0x43bf80
lea eax, [ebp - 0x50]
mov dword [esp], eax
jmp 0x43bfc0
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.004b6eb5
cmp eax, 1
jbe 0x43bfcf
mov dword [esp + 4], str.png_gunzip_failed
mov dword [esp], 0x569500
call fcn.004c8bb5
mov dword [esp], eax
call fcn.004c8fa3
mov dword [esp], edi
call fcn.004b8174
lea eax, [ebp - 0x60]
call fcn.0043bc0c
jmp 0x43c018
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.0043bc0c
jmp 0x43bcc8
cmp edx, 0x49454e44
je 0x43c01f
add edi, 4
mov dword [esp + 8], 1
mov dword [esp + 4], edi
mov dword [esp], esi
call sub.msvcrt.dll_fseek
jmp 0x43bcc8
xor ebx, ebx
jmp 0x43c154
lea eax, [ebp - 0x50]
mov dword [esp], eax
call fcn.004b8174
test ebx, ebx
je 0x43c018
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 0x43c142
movzx eax, byte [edx]
cmp eax, 4
ja 0x43c15e
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 0x43c129
cmp esi, 3
jle 0x43c0d5
test edi, edi
je 0x43c0b8
mov eax, dword [ebp - 0x80]
movzx ecx, byte [ebx + eax]
movzx eax, byte [ebx + eax - 4]
jmp 0x43c0bc
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 0x43c0fc
xor eax, eax
test edi, edi
je 0x43c0e2
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 0x43c098
cmp dword [ebp - 0x7c], 0
mov eax, 0
cmovns eax, dword [ebp - 0x7c]
inc edi
add ebx, eax
lea edx, [edx + eax + 1]
jmp 0x43c060
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x60], 0
lea eax, [ebp - 0x60]
call fcn.0043bc0c
lea eax, [ebp - 0x74]
call fcn.0043bc0c
jmp 0x43c17e
mov dword [esp + 4], str.png_defilter_failed
xor ebx, ebx
mov dword [esp], 0x569500
call fcn.004c8bb5
mov dword [esp], eax
call fcn.004c8fa3
jmp 0x43c14c
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret