Function at 0x100beee0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x740
push ebx
push esi
push edi
lea edi, [ebp - 0x500]
mov ecx, 0x140
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
mov eax, dword [0x101d6d64]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, 0x101e94ce
call fcn.1019d101
mov byte [ebp - 0x411], 0
mov byte [ebp - 0x41d], 0
mov dword [ebp - 0x438], 0
mov dword [ebp - 0x444], 0
mov dword [ebp - 0x45c], 0
mov dword [ebp - 0x468], 1
mov eax, dword [ebp + 8]
mov dword [ebp - 0x480], eax
mov eax, dword [ebp - 0x480]
push eax
call fcn.100b8350
add esp, 4
test eax, eax
jne 0x100bef6b
xor eax, eax
jmp 0x100bf9ad
cmp dword [ebp + 0xc], 1
jne 0x100bef7b
mov eax, 1
jmp 0x100bf9ad
jmp 0x100bef87
mov dword [ebp - 0x468], 0
mov eax, dword [ebp - 0x480]
push eax
call fcn.100bb720
add esp, 4
mov dword [ebp - 0x734], eax
mov dword [ebp - 0x730], edx
mov ecx, dword [ebp - 0x734]
mov edx, dword [ebp - 0x730]
mov dword [ebp - 0x490], ecx
mov dword [ebp - 0x48c], edx
cmp dword [ebp - 0x468], 0
je 0x100befe1
cmp dword [ebp - 0x48c], 0x49484452
je 0x100befe1
push str.Corrupt_PNG
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
mov eax, dword [ebp - 0x48c]
mov dword [ebp - 0x73c], eax
cmp dword [ebp - 0x73c], 0x49484452
ja 0x100bf02a
cmp dword [ebp - 0x73c], 0x49484452
je 0x100bf04f
cmp dword [ebp - 0x73c], 0x49444154
je 0x100bf586
cmp dword [ebp - 0x73c], 0x49454e44
je 0x100bf73d
jmp 0x100bf90f
cmp dword [ebp - 0x73c], 0x504c5445
je 0x100bf32d
cmp dword [ebp - 0x73c], 0x74524e53
je 0x100bf416
jmp 0x100bf90f
cmp dword [ebp - 0x468], 0
jne 0x100bf06a
push str.Corrupt_PNG
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
cmp dword [ebp - 0x490], 0xd
je 0x100bf085
push str.Corrupt_PNG
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
mov eax, dword [ebp - 0x480]
push eax
call fcn.100bb550
add esp, 4
mov ecx, dword [ebp - 0x480]
mov dword [ecx], eax
mov eax, dword [ebp - 0x480]
cmp dword [eax], 0x1000000
jbe 0x100bf0bc
push str.Very_large_image__corrupt__
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
mov eax, dword [ebp - 0x480]
push eax
call fcn.100bb550
add esp, 4
mov ecx, dword [ebp - 0x480]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x480]
cmp dword [eax + 4], 0x1000000
jbe 0x100bf0f5
push str.Very_large_image__corrupt__
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
mov eax, dword [ebp - 0x480]
push eax
call fcn.100bb610
add esp, 4
mov dword [ebp - 0x49c], eax
cmp dword [ebp - 0x49c], 8
je 0x100bf125
push str.PNG_not_supported:_8_bit_only
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
mov eax, dword [ebp - 0x480]
push eax
call fcn.100bb610
add esp, 4
mov dword [ebp - 0x4a8], eax
cmp dword [ebp - 0x4a8], 6
jle 0x100bf155
push str.Corrupt_PNG
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
cmp dword [ebp - 0x4a8], 3
jne 0x100bf167
mov byte [ebp - 0x411], 3
jmp 0x100bf184
mov eax, dword [ebp - 0x4a8]
and eax, 1
je 0x100bf184
push str.Corrupt_PNG
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
mov eax, dword [ebp - 0x480]
push eax
call fcn.100bb610
add esp, 4
mov dword [ebp - 0x4c0], eax
cmp dword [ebp - 0x4c0], 0
je 0x100bf1b4
push str.Corrupt_PNG
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
mov eax, dword [ebp - 0x480]
push eax
call fcn.100bb610
add esp, 4
mov dword [ebp - 0x4cc], eax
cmp dword [ebp - 0x4cc], 0
je 0x100bf1e4
push str.Corrupt_PNG
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
mov eax, dword [ebp - 0x480]
push eax
call fcn.100bb610
add esp, 4
mov dword [ebp - 0x4b4], eax
cmp dword [ebp - 0x4b4], 0
je 0x100bf214
push str.PNG_not_supported:_interlaced_mode
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
mov eax, dword [ebp - 0x480]
cmp dword [eax], 0
je 0x100bf22b
mov eax, dword [ebp - 0x480]
cmp dword [eax + 4], 0
jne 0x100bf23d
push str.Corrupt_PNG
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
movzx eax, byte [ebp - 0x411]
test eax, eax
jne 0x100bf2ec
mov eax, dword [ebp - 0x4a8]
and eax, 2
je 0x100bf263
mov dword [ebp - 0x73c], 3
jmp 0x100bf26d
mov dword [ebp - 0x73c], 1
mov ecx, dword [ebp - 0x4a8]
and ecx, 4
je 0x100bf284
mov dword [ebp - 0x740], 1
jmp 0x100bf28e
mov dword [ebp - 0x740], 0
mov edx, dword [ebp - 0x73c]
add edx, dword [ebp - 0x740]
mov eax, dword [ebp - 0x480]
mov dword [eax + 8], edx
mov ecx, dword [ebp - 0x480]
mov eax, 0x40000000
xor edx, edx
div dword [ecx]
mov ecx, dword [ebp - 0x480]
xor edx, edx
div dword [ecx + 8]
mov edx, dword [ebp - 0x480]
cmp eax, dword [edx + 4]
jae 0x100bf2da
push str.Image_too_large_to_decode
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
cmp dword [ebp + 0xc], 2
jne 0x100bf2ea
mov eax, 1
jmp 0x100bf9ad
jmp 0x100bf328
mov eax, dword [ebp - 0x480]
mov dword [eax + 8], 1
mov ecx, dword [ebp - 0x480]
mov eax, 0x40000000
xor edx, edx
div dword [ecx]
shr eax, 2
mov edx, dword [ebp - 0x480]
cmp eax, dword [edx + 4]
jae 0x100bf328
push str.Corrupt_PNG
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
jmp 0x100bf999
cmp dword [ebp - 0x490], 0x300
jbe 0x100bf34b
push str.Corrupt_PNG
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
mov eax, dword [ebp - 0x490]
xor edx, edx
mov ecx, 3
div ecx
mov dword [ebp - 0x45c], eax
imul eax, dword [ebp - 0x45c], 3
cmp eax, dword [ebp - 0x490]
je 0x100bf381
push str.Corrupt_PNG
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
mov dword [ebp - 0x450], 0
jmp 0x100bf39c
mov eax, dword [ebp - 0x450]
add eax, 1
mov dword [ebp - 0x450], eax
mov eax, dword [ebp - 0x450]
cmp eax, dword [ebp - 0x45c]
jae 0x100bf411
mov eax, dword [ebp - 0x480]
push eax
call fcn.100bb6d0
add esp, 4
mov ecx, dword [ebp - 0x450]
mov byte [ebp + ecx*4 - 0x408], al
mov eax, dword [ebp - 0x480]
push eax
call fcn.100bb6d0
add esp, 4
mov ecx, dword [ebp - 0x450]
mov byte [ebp + ecx*4 - 0x407], al
mov eax, dword [ebp - 0x480]
push eax
call fcn.100bb6d0
add esp, 4
mov ecx, dword [ebp - 0x450]
mov byte [ebp + ecx*4 - 0x406], al
mov eax, dword [ebp - 0x450]
mov byte [ebp + eax*4 - 0x405], 0xff
jmp 0x100bf38d
jmp 0x100bf999
mov eax, dword [ebp + 8]
cmp dword [eax + 0x1c], 0
je 0x100bf431
push str.Corrupt_PNG
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
movzx eax, byte [ebp - 0x411]
test eax, eax
je 0x100bf4eb
cmp dword [ebp + 0xc], 2
jne 0x100bf45d
mov eax, dword [ebp - 0x480]
mov dword [eax + 8], 4
mov eax, 1
jmp 0x100bf9ad
cmp dword [ebp - 0x45c], 0
jne 0x100bf478
push str.Corrupt_PNG
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
mov eax, dword [ebp - 0x490]
cmp eax, dword [ebp - 0x45c]
jbe 0x100bf498
push str.Corrupt_PNG
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
mov byte [ebp - 0x411], 4
mov dword [ebp - 0x450], 0
jmp 0x100bf4ba
mov eax, dword [ebp - 0x450]
add eax, 1
mov dword [ebp - 0x450], eax
mov eax, dword [ebp - 0x450]
cmp eax, dword [ebp - 0x490]
jae 0x100bf4e6
mov eax, dword [ebp - 0x480]
push eax
call fcn.100bb6d0
add esp, 4
mov ecx, dword [ebp - 0x450]
mov byte [ebp + ecx*4 - 0x405], al
jmp 0x100bf4ab
jmp 0x100bf581
mov eax, dword [ebp - 0x480]
mov ecx, dword [eax + 8]
and ecx, 1
jne 0x100bf50b
push str.Corrupt_PNG
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
mov eax, dword [ebp - 0x480]
mov ecx, dword [eax + 8]
shl ecx, 1
cmp dword [ebp - 0x490], ecx
je 0x100bf530
push str.Corrupt_PNG
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
mov byte [ebp - 0x41d], 1
mov dword [ebp - 0x474], 0
jmp 0x100bf552
mov eax, dword [ebp - 0x474]
add eax, 1
mov dword [ebp - 0x474], eax
mov eax, dword [ebp - 0x480]
mov ecx, dword [ebp - 0x474]
cmp ecx, dword [eax + 8]
jge 0x100bf581
mov eax, dword [ebp - 0x480]
push eax
call fcn.100bb490
add esp, 4
mov ecx, dword [ebp - 0x474]
mov byte [ebp + ecx - 0x42c], al
jmp 0x100bf543
jmp 0x100bf999
movzx eax, byte [ebp - 0x411]
test eax, eax
je 0x100bf5ac
cmp dword [ebp - 0x45c], 0
jne 0x100bf5ac
push str.Corrupt_PNG
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
cmp dword [ebp + 0xc], 2
jne 0x100bf5cc
movzx eax, byte [ebp - 0x411]
mov ecx, dword [ebp - 0x480]
mov dword [ecx + 8], eax
mov eax, 1
jmp 0x100bf9ad
mov eax, dword [ebp - 0x438]
add eax, dword [ebp - 0x490]
cmp eax, dword [ebp - 0x444]
jbe 0x100bf68e
cmp dword [ebp - 0x444], 0
jne 0x100bf61d
cmp dword [ebp - 0x490], 0x1000
jbe 0x100bf607
mov eax, dword [ebp - 0x490]
mov dword [ebp - 0x73c], eax
jmp 0x100bf611
mov dword [ebp - 0x73c], 0x1000
mov ecx, dword [ebp - 0x73c]
mov dword [ebp - 0x444], ecx
mov eax, dword [ebp - 0x438]
add eax, dword [ebp - 0x490]
cmp eax, dword [ebp - 0x444]
jbe 0x100bf641
mov eax, dword [ebp - 0x444]
shl eax, 1
mov dword [ebp - 0x444], eax
jmp 0x100bf61d
mov esi, esp
mov eax, dword [ebp - 0x444]
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x1c]
push edx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
add esp, 8
cmp esi, esp
call fcn.1019d0de
mov dword [ebp - 0x4d8], eax
cmp dword [ebp - 0x4d8], 0
jne 0x100bf682
push str.Out_of_memory
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x4d8]
mov dword [eax + 0x1c], ecx
mov eax, dword [ebp - 0x480]
cmp dword [eax + 0x10], 0
je 0x100bf6e8
mov esi, esp
mov eax, dword [ebp - 0x480]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0x490]
push edx
push 1
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1c]
add ecx, dword [ebp - 0x438]
push ecx
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
add esp, 0x10
cmp esi, esp
call fcn.1019d0de
cmp eax, dword [ebp - 0x490]
je 0x100bf6e6
push str.Corrupt_PNG
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
jmp 0x100bf726
mov eax, dword [ebp - 0x490]
push eax
mov ecx, dword [ebp - 0x480]
mov edx, dword [ecx + 0x14]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1c]
add ecx, dword [ebp - 0x438]
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x480]
mov ecx, dword [eax + 0x14]
add ecx, dword [ebp - 0x490]
mov edx, dword [ebp - 0x480]
mov dword [edx + 0x14], ecx
mov eax, dword [ebp - 0x438]
add eax, dword [ebp - 0x490]
mov dword [ebp - 0x438], eax
jmp 0x100bf999
cmp dword [ebp + 0xc], 0
je 0x100bf74d
mov eax, 1
jmp 0x100bf9ad
mov eax, dword [ebp + 8]
cmp dword [eax + 0x1c], 0
jne 0x100bf768
push str.Corrupt_PNG
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
lea eax, [ebp - 0x4e4]
push eax
mov ecx, dword [ebp - 0x438]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x1c]
push eax
call fcn.100c6500
add esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x20], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0x20], 0
jne 0x100bf79b
xor eax, eax
jmp 0x100bf9ad
mov esi, esp
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1c]
push ecx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
cmp esi, esp
call fcn.1019d0de
mov eax, dword [ebp + 8]
mov dword [eax + 0x1c], 0
mov eax, dword [ebp - 0x480]
mov ecx, dword [eax + 8]
add ecx, 1
cmp dword [ebp + 0x10], ecx
jne 0x100bf7e0
cmp dword [ebp + 0x10], 3
je 0x100bf7e0
movzx eax, byte [ebp - 0x411]
test eax, eax
je 0x100bf7eb
movzx eax, byte [ebp - 0x41d]
test eax, eax
je 0x100bf802
mov eax, dword [ebp - 0x480]
mov ecx, dword [eax + 8]
add ecx, 1
mov edx, dword [ebp - 0x480]
mov dword [edx + 0xc], ecx
jmp 0x100bf814
mov eax, dword [ebp - 0x480]
mov ecx, dword [ebp - 0x480]
mov edx, dword [ecx + 8]
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 0x480]
mov ecx, dword [eax + 0xc]
push ecx
mov edx, dword [ebp - 0x4e4]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.100b9330
add esp, 0x10
test eax, eax
jne 0x100bf843
xor eax, eax
jmp 0x100bf9ad
movzx eax, byte [ebp - 0x41d]
test eax, eax
je 0x100bf876
mov eax, dword [ebp - 0x480]
mov ecx, dword [eax + 0xc]
push ecx
lea edx, [ebp - 0x42c]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.100b8900
add esp, 0xc
test eax, eax
jne 0x100bf876
xor eax, eax
jmp 0x100bf9ad
movzx eax, byte [ebp - 0x411]
test eax, eax
je 0x100bf8e2
movzx eax, byte [ebp - 0x411]
mov ecx, dword [ebp - 0x480]
mov dword [ecx + 8], eax
movzx eax, byte [ebp - 0x411]
mov ecx, dword [ebp - 0x480]
mov dword [ecx + 0xc], eax
cmp dword [ebp + 0x10], 3
jl 0x100bf8b3
mov eax, dword [ebp - 0x480]
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 0x480]
mov ecx, dword [eax + 0xc]
push ecx
mov edx, dword [ebp - 0x45c]
push edx
lea eax, [ebp - 0x408]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.100bb120
add esp, 0x10
test eax, eax
jne 0x100bf8e2
xor eax, eax
jmp 0x100bf9ad
mov esi, esp
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
push ecx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
cmp esi, esp
call fcn.1019d0de
mov eax, dword [ebp + 8]
mov dword [eax + 0x20], 0
mov eax, 1
jmp 0x100bf9ad
mov eax, dword [ebp - 0x48c]
and eax, 0x20000000
jne 0x100bf983
mov eax, dword [ebp - 0x48c]
shr eax, 0x18
mov ecx, 1
imul edx, ecx, 0
mov byte [edx + str.XXXX_chunk_not_known], al
mov eax, dword [ebp - 0x48c]
shr eax, 0x10
mov ecx, 1
shl ecx, 0
mov byte [ecx + str.XXXX_chunk_not_known], al
mov eax, dword [ebp - 0x48c]
shr eax, 8
mov ecx, 1
shl ecx, 1
mov byte [ecx + str.XXXX_chunk_not_known], al
mov eax, 1
imul ecx, eax, 3
mov dl, byte [ebp - 0x48c]
mov byte [ecx + str.XXXX_chunk_not_known], dl
push str.PNG_not_supported:_unknown_chunk_type
call fcn.100baff0
add esp, 4
jmp 0x100bf9ad
mov eax, dword [ebp - 0x490]
push eax
mov ecx, dword [ebp - 0x480]
push ecx
call fcn.100c16c0
add esp, 8
mov eax, dword [ebp - 0x480]
push eax
call fcn.100bb550
add esp, 4
jmp 0x100bef7d
push edx
mov ecx, ebp
push eax
lea edx, [0x100bf9dc]
call fcn.1019d088
pop eax
pop edx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1019d133
add esp, 0x740
cmp ebp, esp
call fcn.1019d0de
mov esp, ebp
pop ebp
ret