Function at 0x4a9150
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x45c
mov eax, dword [0x6c9294]
xor eax, ebp
mov dword [ebp - 4], eax
mov byte [ebp - 0x411], 0
mov byte [ebp - 0x412], 0
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x424], 0
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x43c], 1
mov eax, dword [ebp + 8]
mov dword [ebp - 0x410], eax
mov ecx, dword [ebp - 0x410]
push ecx
call fcn.004a3b40
add esp, 4
test eax, eax
jne 0x4a91bc
xor eax, eax
jmp 0x4a9bbf
cmp dword [ebp + 0xc], 1
jne 0x4a91cc
mov eax, 1
jmp 0x4a9bbf
jmp 0x4a91d8
mov dword [ebp - 0x43c], 0
mov edx, dword [ebp - 0x410]
push edx
call fcn.004a6650
add esp, 4
mov dword [ebp - 0x420], eax
mov dword [ebp - 0x41c], edx
cmp dword [ebp - 0x43c], 0
je 0x4a921a
cmp dword [ebp - 0x41c], 0x49484452
je 0x4a921a
push 0x51c5ac
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
mov eax, dword [ebp - 0x41c]
mov dword [ebp - 0x430], eax
cmp dword [ebp - 0x430], 0x49484452
ja 0x4a9263
cmp dword [ebp - 0x430], 0x49484452
je 0x4a9288
cmp dword [ebp - 0x430], 0x49444154
je 0x4a97bf
cmp dword [ebp - 0x430], 0x49454e44
je 0x4a9962
jmp 0x4a9b20
cmp dword [ebp - 0x430], 0x504c5445
je 0x4a9566
cmp dword [ebp - 0x430], 0x74524e53
je 0x4a964f
jmp 0x4a9b20
cmp dword [ebp - 0x43c], 0
jne 0x4a92a3
push 0x51c5b8
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
cmp dword [ebp - 0x420], 0xd
je 0x4a92be
push 0x51c5c4
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
mov ecx, dword [ebp - 0x410]
push ecx
call fcn.004a6560
add esp, 4
mov edx, dword [ebp - 0x410]
mov dword [edx], eax
mov eax, dword [ebp - 0x410]
cmp dword [eax], 0x1000000
jbe 0x4a92f5
push 0x51c5d0
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
mov ecx, dword [ebp - 0x410]
push ecx
call fcn.004a6560
add esp, 4
mov edx, dword [ebp - 0x410]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x410]
cmp dword [eax + 4], 0x1000000
jbe 0x4a932e
push str.Very_large_image__corrupt__
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
mov ecx, dword [ebp - 0x410]
push ecx
call fcn.004a65c0
add esp, 4
mov dword [ebp - 0x450], eax
cmp dword [ebp - 0x450], 8
je 0x4a935e
push str.PNG_not_supported:_8_bit_only
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
mov edx, dword [ebp - 0x410]
push edx
call fcn.004a65c0
add esp, 4
mov dword [ebp - 0x434], eax
cmp dword [ebp - 0x434], 6
jle 0x4a938e
push 0x51c628
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
cmp dword [ebp - 0x434], 3
jne 0x4a93a0
mov byte [ebp - 0x411], 3
jmp 0x4a93bd
mov eax, dword [ebp - 0x434]
and eax, 1
je 0x4a93bd
push 0x51c634
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
mov ecx, dword [ebp - 0x410]
push ecx
call fcn.004a65c0
add esp, 4
mov dword [ebp - 0x454], eax
cmp dword [ebp - 0x454], 0
je 0x4a93ed
push 0x51c640
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
mov edx, dword [ebp - 0x410]
push edx
call fcn.004a65c0
add esp, 4
mov dword [ebp - 0x458], eax
cmp dword [ebp - 0x458], 0
je 0x4a941d
push 0x51c64c
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
mov eax, dword [ebp - 0x410]
push eax
call fcn.004a65c0
add esp, 4
mov dword [ebp - 0x45c], eax
cmp dword [ebp - 0x45c], 0
je 0x4a944d
push str.PNG_not_supported:_interlaced_mode
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
mov ecx, dword [ebp - 0x410]
cmp dword [ecx], 0
je 0x4a9464
mov edx, dword [ebp - 0x410]
cmp dword [edx + 4], 0
jne 0x4a9476
push 0x51c67c
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
movzx eax, byte [ebp - 0x411]
test eax, eax
jne 0x4a9525
mov ecx, dword [ebp - 0x434]
and ecx, 2
je 0x4a949c
mov dword [ebp - 0x440], 3
jmp 0x4a94a6
mov dword [ebp - 0x440], 1
mov edx, dword [ebp - 0x434]
and edx, 4
je 0x4a94bd
mov dword [ebp - 0x444], 1
jmp 0x4a94c7
mov dword [ebp - 0x444], 0
mov eax, dword [ebp - 0x440]
add eax, dword [ebp - 0x444]
mov ecx, dword [ebp - 0x410]
mov dword [ecx + 8], eax
mov ecx, dword [ebp - 0x410]
mov eax, 0x40000000
xor edx, edx
div dword [ecx]
mov ecx, dword [ebp - 0x410]
xor edx, edx
div dword [ecx + 8]
mov edx, dword [ebp - 0x410]
cmp eax, dword [edx + 4]
jae 0x4a9513
push 0x51c688
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
cmp dword [ebp + 0xc], 2
jne 0x4a9523
mov eax, 1
jmp 0x4a9bbf
jmp 0x4a9561
mov eax, dword [ebp - 0x410]
mov dword [eax + 8], 1
mov ecx, dword [ebp - 0x410]
mov eax, 0x40000000
xor edx, edx
div dword [ecx]
shr eax, 2
mov edx, dword [ebp - 0x410]
cmp eax, dword [edx + 4]
jae 0x4a9561
push 0x51c6a4
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
jmp 0x4a9bab
cmp dword [ebp - 0x420], 0x300
jbe 0x4a9584
push 0x51c6b0
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
mov eax, dword [ebp - 0x420]
xor edx, edx
mov ecx, 3
div ecx
mov dword [ebp - 0x42c], eax
imul edx, dword [ebp - 0x42c], 3
cmp edx, dword [ebp - 0x420]
je 0x4a95ba
push 0x51c6bc
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
mov dword [ebp - 0x418], 0
jmp 0x4a95d5
mov eax, dword [ebp - 0x418]
add eax, 1
mov dword [ebp - 0x418], eax
mov ecx, dword [ebp - 0x418]
cmp ecx, dword [ebp - 0x42c]
jae 0x4a964a
mov edx, dword [ebp - 0x410]
push edx
call fcn.004a6630
add esp, 4
mov ecx, dword [ebp - 0x418]
mov byte [ebp + ecx*4 - 0x404], al
mov edx, dword [ebp - 0x410]
push edx
call fcn.004a6630
add esp, 4
mov ecx, dword [ebp - 0x418]
mov byte [ebp + ecx*4 - 0x403], al
mov edx, dword [ebp - 0x410]
push edx
call fcn.004a6630
add esp, 4
mov ecx, dword [ebp - 0x418]
mov byte [ebp + ecx*4 - 0x402], al
mov edx, dword [ebp - 0x418]
mov byte [ebp + edx*4 - 0x401], 0xff
jmp 0x4a95c6
jmp 0x4a9bab
mov eax, dword [ebp + 8]
cmp dword [eax + 0x1c], 0
je 0x4a966a
push 0x51c6c8
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
movzx ecx, byte [ebp - 0x411]
test ecx, ecx
je 0x4a9724
cmp dword [ebp + 0xc], 2
jne 0x4a9696
mov edx, dword [ebp - 0x410]
mov dword [edx + 8], 4
mov eax, 1
jmp 0x4a9bbf
cmp dword [ebp - 0x42c], 0
jne 0x4a96b1
push 0x51c6d4
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
mov eax, dword [ebp - 0x420]
cmp eax, dword [ebp - 0x42c]
jbe 0x4a96d1
push 0x51c6e0
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
mov byte [ebp - 0x411], 4
mov dword [ebp - 0x418], 0
jmp 0x4a96f3
mov ecx, dword [ebp - 0x418]
add ecx, 1
mov dword [ebp - 0x418], ecx
mov edx, dword [ebp - 0x418]
cmp edx, dword [ebp - 0x420]
jae 0x4a971f
mov eax, dword [ebp - 0x410]
push eax
call fcn.004a6630
add esp, 4
mov ecx, dword [ebp - 0x418]
mov byte [ebp + ecx*4 - 0x401], al
jmp 0x4a96e4
jmp 0x4a97ba
mov edx, dword [ebp - 0x410]
mov eax, dword [edx + 8]
and eax, 1
jne 0x4a9744
push 0x51c6ec
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
mov ecx, dword [ebp - 0x410]
mov edx, dword [ecx + 8]
shl edx, 1
cmp dword [ebp - 0x420], edx
je 0x4a9769
push 0x51c6f8
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
mov byte [ebp - 0x412], 1
mov dword [ebp - 0x438], 0
jmp 0x4a978b
mov eax, dword [ebp - 0x438]
add eax, 1
mov dword [ebp - 0x438], eax
mov ecx, dword [ebp - 0x410]
mov edx, dword [ebp - 0x438]
cmp edx, dword [ecx + 8]
jge 0x4a97ba
mov eax, dword [ebp - 0x410]
push eax
call fcn.004a6500
add esp, 4
mov ecx, dword [ebp - 0x438]
mov byte [ebp + ecx - 0x408], al
jmp 0x4a977c
jmp 0x4a9bab
movzx edx, byte [ebp - 0x411]
test edx, edx
je 0x4a97e5
cmp dword [ebp - 0x42c], 0
jne 0x4a97e5
push 0x51c704
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
cmp dword [ebp + 0xc], 2
jne 0x4a9805
movzx eax, byte [ebp - 0x411]
mov ecx, dword [ebp - 0x410]
mov dword [ecx + 8], eax
mov eax, 1
jmp 0x4a9bbf
mov edx, dword [ebp - 0x428]
add edx, dword [ebp - 0x420]
cmp edx, dword [ebp - 0x424]
jbe 0x4a98bd
cmp dword [ebp - 0x424], 0
jne 0x4a9856
cmp dword [ebp - 0x420], 0x1000
jbe 0x4a9840
mov eax, dword [ebp - 0x420]
mov dword [ebp - 0x448], eax
jmp 0x4a984a
mov dword [ebp - 0x448], 0x1000
mov ecx, dword [ebp - 0x448]
mov dword [ebp - 0x424], ecx
mov edx, dword [ebp - 0x428]
add edx, dword [ebp - 0x420]
cmp edx, dword [ebp - 0x424]
jbe 0x4a987a
mov eax, dword [ebp - 0x424]
shl eax, 1
mov dword [ebp - 0x424], eax
jmp 0x4a9856
mov ecx, dword [ebp - 0x424]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x1c]
push eax
call fcn.004e4517
add esp, 8
mov dword [ebp - 0x44c], eax
cmp dword [ebp - 0x44c], 0
jne 0x4a98b1
push 0x51c710
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x44c]
mov dword [ecx + 0x1c], edx
mov eax, dword [ebp - 0x410]
cmp dword [eax + 0x10], 0
je 0x4a990d
mov ecx, dword [ebp - 0x410]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0x420]
push eax
push 1
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x1c]
add edx, dword [ebp - 0x428]
push edx
call fcn.004d8aee
add esp, 0x10
cmp eax, dword [ebp - 0x420]
je 0x4a990b
push 0x51c720
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
jmp 0x4a994b
mov eax, dword [ebp - 0x420]
push eax
mov ecx, dword [ebp - 0x410]
mov edx, dword [ecx + 0x14]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1c]
add ecx, dword [ebp - 0x428]
push ecx
call fcn.004ce670
add esp, 0xc
mov edx, dword [ebp - 0x410]
mov eax, dword [edx + 0x14]
add eax, dword [ebp - 0x420]
mov ecx, dword [ebp - 0x410]
mov dword [ecx + 0x14], eax
mov edx, dword [ebp - 0x428]
add edx, dword [ebp - 0x420]
mov dword [ebp - 0x428], edx
jmp 0x4a9bab
cmp dword [ebp + 0xc], 0
je 0x4a9972
mov eax, 1
jmp 0x4a9bbf
mov eax, dword [ebp + 8]
cmp dword [eax + 0x1c], 0
jne 0x4a998d
push 0x51c72c
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
lea ecx, [ebp - 0x40c]
push ecx
mov edx, dword [ebp - 0x428]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1c]
push ecx
call fcn.004ad280
add esp, 0xc
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0x20], 0
jne 0x4a99c0
xor eax, eax
jmp 0x4a9bbf
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x1c]
push edx
call fcn.004e125f
add esp, 4
mov eax, dword [ebp + 8]
mov dword [eax + 0x1c], 0
mov ecx, dword [ebp - 0x410]
mov edx, dword [ecx + 8]
add edx, 1
cmp dword [ebp + 0x10], edx
jne 0x4a99fb
cmp dword [ebp + 0x10], 3
je 0x4a99fb
movzx eax, byte [ebp - 0x411]
test eax, eax
je 0x4a9a06
movzx ecx, byte [ebp - 0x412]
test ecx, ecx
je 0x4a9a1d
mov edx, dword [ebp - 0x410]
mov eax, dword [edx + 8]
add eax, 1
mov ecx, dword [ebp - 0x410]
mov dword [ecx + 0xc], eax
jmp 0x4a9a2f
mov edx, dword [ebp - 0x410]
mov eax, dword [ebp - 0x410]
mov ecx, dword [eax + 8]
mov dword [edx + 0xc], ecx
mov edx, dword [ebp - 0x410]
mov eax, dword [edx + 0xc]
push eax
mov ecx, dword [ebp - 0x40c]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x20]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004a4820
add esp, 0x10
test eax, eax
jne 0x4a9a5e
xor eax, eax
jmp 0x4a9bbf
movzx edx, byte [ebp - 0x412]
test edx, edx
je 0x4a9a91
mov eax, dword [ebp - 0x410]
mov ecx, dword [eax + 0xc]
push ecx
lea edx, [ebp - 0x408]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004a3f50
add esp, 0xc
test eax, eax
jne 0x4a9a91
xor eax, eax
jmp 0x4a9bbf
movzx ecx, byte [ebp - 0x411]
test ecx, ecx
je 0x4a9afd
movzx edx, byte [ebp - 0x411]
mov eax, dword [ebp - 0x410]
mov dword [eax + 8], edx
movzx ecx, byte [ebp - 0x411]
mov edx, dword [ebp - 0x410]
mov dword [edx + 0xc], ecx
cmp dword [ebp + 0x10], 3
jl 0x4a9ace
mov eax, dword [ebp - 0x410]
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0xc], ecx
mov edx, dword [ebp - 0x410]
mov eax, dword [edx + 0xc]
push eax
mov ecx, dword [ebp - 0x42c]
push ecx
lea edx, [ebp - 0x404]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004a6280
add esp, 0x10
test eax, eax
jne 0x4a9afd
xor eax, eax
jmp 0x4a9bbf
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x20]
push edx
call fcn.004e125f
add esp, 4
mov eax, dword [ebp + 8]
mov dword [eax + 0x20], 0
mov eax, 1
jmp 0x4a9bbf
mov ecx, dword [ebp - 0x41c]
and ecx, 0x20000000
jne 0x4a9b95
mov edx, dword [ebp - 0x41c]
shr edx, 0x18
mov eax, 1
imul ecx, eax, 0
mov byte [ecx + 0x6c922c], dl
mov edx, dword [ebp - 0x41c]
shr edx, 0x10
mov eax, 1
shl eax, 0
mov byte [eax + 0x6c922c], dl
mov ecx, dword [ebp - 0x41c]
shr ecx, 8
mov edx, 1
shl edx, 1
mov byte [edx + 0x6c922c], cl
mov eax, 1
imul ecx, eax, 3
mov dl, byte [ebp - 0x41c]
mov byte [ecx + 0x6c922c], dl
push str.PNG_not_supported:_unknown_chunk_type
call fcn.004a61c0
add esp, 4
jmp 0x4a9bbf
mov eax, dword [ebp - 0x420]
push eax
mov ecx, dword [ebp - 0x410]
push ecx
call fcn.004ab380
add esp, 8
mov edx, dword [ebp - 0x410]
push edx
call fcn.004a6560
add esp, 4
jmp 0x4a91ce
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004b4fea
mov esp, ebp
pop ebp
ret