Function at 0x1004ea20
Capabilities:
Read file on windows

Disassembly:
mov eax, 0x1418
call fcn.100aafb0
mov eax, dword [0x10106040]
xor eax, esp
mov dword [esp + 0x1414], eax
push ebx
xor eax, eax
mov byte [esp + 0xa], 0
push ebp
push esi
mov ebx, edx
mov byte [esp + 0x13], 0
push edi
mov dword [esp + 0x24], ebx
lea ebp, [eax + 1]
mov esi, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], eax
xor edi, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004ea7d
push eax
call fcn.100bc447
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x1004ea90
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x1004ea8e
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
jmp 0x1004ea90
xor ecx, ecx
movzx eax, byte [edi + 0x100eef5c]
cmp ecx, eax
jne 0x1004f264
inc edi
cmp edi, 8
jl 0x1004ea61
cmp ebx, 1
je 0x1004f1f4
nop
mov ecx, esi
call fcn.1004a670
mov ecx, esi
mov ebx, eax
call fcn.1004a670
shl ebx, 0x10
mov ecx, esi
add ebx, eax
call fcn.1004a670
mov ecx, esi
mov edi, eax
call fcn.1004a670
shl edi, 0x10
lea ecx, [eax + edi]
test ebp, ebp
je 0x1004eaeb
cmp ecx, 0x49484452
jne 0x1004ecd0
cmp ecx, 0x49484452
ja 0x1004eed8
je 0x1004ecff
cmp ecx, 0x49444154
je 0x1004ec5f
cmp ecx, 0x49454e44
jne 0x1004eeec
cmp dword [esp + 0x24], 0
jne 0x1004f1f4
mov edi, dword [esi + 0x1c]
test edi, edi
je 0x1004ecd0
push 0x4000
call fcn.100bb798
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1004f207
mov eax, dword [esp + 0x20]
add eax, edi
mov dword [esp + 0x44], ecx
mov dword [esp + 0x34], eax
lea eax, [ecx + 0x4000]
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x30]
mov dword [esp + 0x30], edi
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], 1
call fcn.1004db30
test eax, eax
je 0x1004f1fb
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
sub edi, eax
mov dword [esi + 0x20], eax
test eax, eax
je 0x1004f26e
push dword [esi + 0x1c]
call fcn.100b61b5
mov ebp, dword [esp + 0x1430]
add esp, 4
mov dword [esi + 0x1c], 0
mov ecx, dword [esi + 8]
lea eax, [ecx + 1]
cmp ebp, eax
jne 0x1004ebba
cmp byte [esp + 0x16], 0
je 0x1004ebc3
cmp byte [esp + 0x17], 0
jne 0x1004ebc3
mov eax, ecx
mov edx, 0xc
mov ecx, esi
lea ebx, [ecx + edx]
mov dword [ebx], eax
mov edx, dword [esi + 0x20]
push eax
push edi
call fcn.1004dcc0
add esp, 8
test eax, eax
je 0x1004f26e
cmp byte [esp + 0x17], 0
je 0x1004f0f7
mov edi, dword [esi + 4]
mov eax, dword [ebx]
imul edi, dword [esi]
mov ebx, dword [esi + 0x24]
cmp eax, 2
je 0x1004f0da
cmp eax, 4
je 0x1004ec1f
push 0x870
push str.C:UsersPCDesktopheadcoreHeadCoreincludesSoil_stb_image_aug.cpp
push str.out_n__2__out_n__4
call fcn.100bb717
add esp, 0xc
test edi, edi
je 0x1004f0f7
mov cl, byte [esp + 0x101e]
lea eax, [ebx + 2]
mov dl, byte [esp + 0x101d]
mov bl, byte [esp + 0x101c]
nop
cmp byte [eax - 2], bl
jne 0x1004ec52
cmp byte [eax - 1], dl
jne 0x1004ec52
cmp byte [eax], cl
jne 0x1004ec52
mov byte [eax + 1], 0
add eax, 4
sub edi, 1
jne 0x1004ec40
jmp 0x1004f0f7
cmp byte [esp + 0x16], 0
je 0x1004ec6d
cmp dword [esp + 0x1c], 0
je 0x1004ecd0
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
lea eax, [ebx + ebp]
cmp eax, ecx
jbe 0x1004ecb3
test ecx, ecx
jne 0x1004ec8e
mov ecx, 0x1000
cmp ebx, ecx
cmova ecx, ebx
mov dword [esp + 0x18], ecx
cmp eax, ecx
jbe 0x1004ec9c
add ecx, ecx
cmp eax, ecx
ja 0x1004ec92
mov dword [esp + 0x18], ecx
push ecx
push dword [esi + 0x1c]
call fcn.100bc400
add esp, 8
test eax, eax
je 0x1004f13d
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004ecdf
push eax
mov eax, dword [esi + 0x1c]
push ebx
add eax, ebp
push 1
push eax
call fcn.100b63fb
add esp, 0x10
cmp eax, ebx
je 0x1004ecf4
mov dword [0x101109d0], str.Corrupt_PNG
jmp 0x1004f26e
mov eax, dword [esi + 0x1c]
push ebx
push dword [esi + 0x14]
add eax, ebp
push eax
call fcn.100ab8d0
add esp, 0xc
add dword [esi + 0x14], ebx
add ebp, ebx
mov dword [esp + 0x20], ebp
jmp 0x1004f0c5
test ebp, ebp
je 0x1004ecd0
cmp ebx, 0xd
jne 0x1004ecd0
mov ecx, esi
call fcn.1004a670
mov ecx, esi
mov edi, eax
call fcn.1004a670
shl edi, 0x10
add eax, edi
mov dword [esi], eax
cmp eax, 0x1000000
ja 0x1004f228
mov ecx, esi
call fcn.1004a670
mov ecx, esi
mov edi, eax
call fcn.1004a670
shl edi, 0x10
add eax, edi
mov dword [esi + 4], eax
cmp eax, 0x1000000
ja 0x1004f228
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004ed69
push eax
call fcn.100bc447
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x1004ed7c
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x1004f21c
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
cmp ecx, 8
jne 0x1004f21c
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004eda1
push eax
call fcn.100bc447
mov edi, eax
add esp, 4
xor eax, eax
cmp edi, 0xffffffff
cmove edi, eax
jmp 0x1004edb0
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x1004edd3
movzx edi, byte [eax]
inc eax
mov dword [esi + 0x14], eax
mov eax, edi
cmp edi, 6
jg 0x1004ecd0
cmp edi, 3
jne 0x1004edc7
mov byte [esp + 0x16], 3
jmp 0x1004edd5
mov edi, eax
test al, 1
jne 0x1004ecd0
jmp 0x1004edd5
xor edi, edi
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004edf1
push eax
call fcn.100bc447
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x1004ee00
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x1004ee08
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
test ecx, ecx
jne 0x1004ecd0
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004ee24
push eax
call fcn.100bc447
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x1004ee33
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x1004ee3b
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
test ecx, ecx
jne 0x1004ecd0
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004ee57
push eax
call fcn.100bc447
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x1004ee66
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x1004ee6e
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
test ecx, ecx
jne 0x1004f210
mov ecx, dword [esi]
test ecx, ecx
je 0x1004ecd0
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x1004ecd0
xor edx, edx
mov eax, 0x40000000
div ecx
cmp byte [esp + 0x16], 0
jne 0x1004eec1
mov ecx, edi
xor edx, edx
shr ecx, 2
and edi, 2
and ecx, 1
or edi, 1
add ecx, edi
div ecx
mov dword [esi + 8], ecx
cmp eax, ebx
jae 0x1004f0c5
mov dword [0x101109d0], str.Image_too_large_to_decode
jmp 0x1004f26e
shr eax, 2
mov dword [esi + 8], 1
cmp eax, ebx
jb 0x1004ecd0
jmp 0x1004f0c5
cmp ecx, 0x504c5445
je 0x1004efcf
cmp ecx, 0x74524e53
je 0x1004ef18
test ecx, 0x20000000
je 0x1004f234
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004ef10
push 1
push ebx
push eax
call fcn.100b033b
add esp, 0xc
jmp 0x1004f0c5
add dword [esi + 0x14], ebx
jmp 0x1004f0c5
cmp dword [esi + 0x1c], 0
jne 0x1004ecd0
cmp byte [esp + 0x16], 0
je 0x1004ef90
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x1004ecd0
cmp ebx, eax
ja 0x1004ecd0
xor edi, edi
mov byte [esp + 0x16], 4
test ebx, ebx
je 0x1004f0c5
nop dword [eax]
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004ef6c
push eax
call fcn.100bc447
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x1004ef7f
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x1004ef7d
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
jmp 0x1004ef7f
xor ecx, ecx
mov byte [esp + edi*4 + 0x1023], cl
inc edi
cmp edi, ebx
jb 0x1004ef50
jmp 0x1004f0c5
mov ecx, dword [esi + 8]
test cl, 1
je 0x1004ecd0
lea eax, [ecx + ecx]
cmp ebx, eax
jne 0x1004ecd0
xor edi, edi
mov byte [esp + 0x17], 1
test ecx, ecx
jle 0x1004f0c5
mov ecx, esi
call fcn.1004a670
mov byte [esp + edi + 0x101c], al
inc edi
cmp edi, dword [esi + 8]
jl 0x1004efb6
jmp 0x1004f0c5
cmp ebx, 0x300
ja 0x1004ecd0
mov eax, 0xaaaaaaab
mul ebx
mov ebp, edx
shr ebp, 1
mov dword [esp + 0x1c], ebp
lea eax, [ebp*2]
add eax, ebp
cmp eax, ebx
jne 0x1004ecd0
xor edi, edi
test ebp, ebp
je 0x1004f0c5
lea ebx, [esp + 0x1022]
nop dword [eax]
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004f02c
push eax
call fcn.100bc447
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x1004f03f
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x1004f03d
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
jmp 0x1004f03f
xor ecx, ecx
lea eax, [esp + 0x1020]
mov byte [eax + edi*4], cl
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004f065
push eax
call fcn.100bc447
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x1004f078
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x1004f076
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
jmp 0x1004f078
xor ecx, ecx
mov eax, dword [esi + 0x10]
mov byte [esp + edi*4 + 0x1021], cl
test eax, eax
je 0x1004f09b
push eax
call fcn.100bc447
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x1004f0ae
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x1004f0ac
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
jmp 0x1004f0ae
xor ecx, ecx
lea eax, [esp + 0x1023]
mov byte [ebx + edi*4], cl
mov byte [eax + edi*4], 0xff
inc edi
cmp edi, ebp
jb 0x1004f010
mov ecx, esi
call fcn.1004a670
mov ecx, esi
call fcn.1004a670
xor ebp, ebp
jmp 0x1004eab0
test edi, edi
je 0x1004f0f7
mov cl, byte [esp + 0x101c]
cmp byte [ebx], cl
lea ebx, [ebx + 2]
sete al
dec al
mov byte [ebx - 1], al
sub edi, 1
jne 0x1004f0e5
mov al, byte [esp + 0x16]
test al, al
je 0x1004f1e2
movzx edi, al
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
cmp ebp, 3
jl 0x1004f116
mov dword [esi + 0xc], ebp
mov edi, ebp
mov ebx, dword [esi + 4]
xor ecx, ecx
imul ebx, dword [esi]
mov ebp, dword [esi + 0x24]
mov eax, ebx
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.100bb798
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
jne 0x1004f14c
mov dword [0x101109d0], str.Out_of_memory
jmp 0x1004f26e
cmp edi, 3
jne 0x1004f18f
xor edi, edi
test ebx, ebx
je 0x1004f1d0
lea edx, [eax + 2]
nop word [eax + eax]
movzx ecx, byte [edi + ebp]
lea edx, [edx + 3]
inc edi
movzx eax, byte [esp + ecx*4 + 0x1020]
mov byte [edx - 5], al
movzx eax, byte [esp + ecx*4 + 0x1021]
mov byte [edx - 4], al
movzx eax, byte [esp + ecx*4 + 0x1022]
mov byte [edx - 3], al
cmp edi, ebx
jb 0x1004f160
jmp 0x1004f1d0
xor edi, edi
test ebx, ebx
je 0x1004f1d0
lea edx, [eax + 2]
movzx ecx, byte [edi + ebp]
lea edx, [edx + 4]
inc edi
movzx eax, byte [esp + ecx*4 + 0x1020]
mov byte [edx - 6], al
movzx eax, byte [esp + ecx*4 + 0x1021]
mov byte [edx - 5], al
movzx eax, byte [esp + ecx*4 + 0x1022]
mov byte [edx - 4], al
movzx eax, byte [esp + ecx*4 + 0x1023]
mov byte [edx - 3], al
cmp edi, ebx
jb 0x1004f198
push dword [esi + 0x24]
call fcn.100b61b5
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esi + 0x24], eax
push dword [esi + 0x20]
call fcn.100b61b5
add esp, 4
mov dword [esi + 0x20], 0
mov eax, 1
jmp 0x1004f270
push dword [esp + 0x44]
call fcn.100b61b5
add esp, 4
mov dword [esi + 0x20], 0
jmp 0x1004f26e
mov dword [0x101109d0], str.PNG_not_supported:_interlaced_mode
jmp 0x1004f26e
mov dword [0x101109d0], str.PNG_not_supported:_8_bit_only
jmp 0x1004f26e
mov dword [0x101109d0], str.Very_large_image__corrupt__
jmp 0x1004f26e
mov eax, ecx
mov byte [0x1010cd13], cl
shr eax, 0x18
mov byte [str.XXXX_chunk_not_known], al
mov eax, ecx
shr eax, 0x10
mov byte [0x1010cd11], al
mov eax, ecx
shr eax, 8
mov byte [0x1010cd12], al
mov dword [0x101109d0], 0x100eed74
jmp 0x1004f26e
mov dword [0x101109d0], str.Not_a_PNG
xor eax, eax
mov ecx, dword [esp + 0x1424]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100a9d10
add esp, 0x1418
ret