Function at 0x1007ff40
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x141c
call fcn.10125ce0
mov eax, dword [0x101e6b6c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
mov ecx, 0x102b7ffd
push edi
mov dword [ebp - 0x1408], esi
call fcn.10124b2c
xor eax, eax
mov byte [ebp - 0x13ed], 0
xor bl, bl
mov dword [ebp - 0x1404], eax
mov byte [ebp - 0x13ee], bl
xor edi, edi
mov dword [ebp - 0x13f8], eax
mov dword [ebp - 0x1400], eax
mov dword [ebp - 0x13f4], 1
nop dword [eax]
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1007ffbc
push eax
call fcn.101393c8
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x1007ffcf
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x1007ffcd
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
jmp 0x1007ffcf
xor ecx, ecx
movzx eax, byte [edi + 0x101e6484]
cmp ecx, eax
jne 0x1008091c
inc edi
cmp edi, 8
jl 0x1007ffa0
cmp dword [ebp + 0xc], 1
je 0x10080906
nop
push esi
call fcn.1007ddb0
push esi
mov ebx, eax
call fcn.1007ddb0
shl ebx, 0x10
push esi
add ebx, eax
call fcn.1007ddb0
push esi
mov edi, eax
call fcn.1007ddb0
shl edi, 0x10
add esp, 0x10
lea ecx, [edi + eax]
mov eax, dword [ebp - 0x13f4]
mov dword [ebp - 0x140c], ecx
test eax, eax
je 0x10080036
cmp ecx, 0x49484452
jne 0x10080219
cmp ecx, 0x49484452
ja 0x10080435
je 0x10080256
cmp ecx, 0x49444154
je 0x1008018b
cmp ecx, 0x49454e44
jne 0x10080449
cmp dword [ebp + 0xc], 0
jne 0x10080906
mov edi, dword [esi + 0x1c]
test edi, edi
je 0x10080219
push 0x4000
call fcn.101365ad
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x10080814
mov eax, dword [ebp - 0x1404]
add eax, edi
mov dword [ebp - 0x13ec], edi
mov dword [ebp - 0x13e8], eax
lea eax, [ecx + 0x4000]
mov dword [ebp - 0x13d4], eax
lea eax, [ebp - 0x13ec]
push 1
push eax
mov dword [ebp - 0x13d8], ecx
mov dword [ebp - 0x13dc], ecx
mov dword [ebp - 0x13d0], 1
call fcn.10080a40
add esp, 8
test eax, eax
je 0x10080806
mov eax, dword [ebp - 0x13d8]
mov edi, dword [ebp - 0x13dc]
sub edi, eax
mov dword [esi + 0x20], eax
test eax, eax
je 0x10080926
push dword [esi + 0x1c]
call fcn.10136592
mov edx, dword [ebp + 0x10]
add esp, 4
mov bh, byte [ebp - 0x13ed]
mov dword [esi + 0x1c], 0
mov ecx, dword [esi + 8]
lea eax, [ecx + 1]
cmp edx, eax
jne 0x10080126
cmp edx, 3
je 0x10080126
test bh, bh
je 0x100806a3
mov bl, byte [ebp - 0x13ee]
test bl, bl
jne 0x10080132
mov eax, ecx
push eax
push edi
mov dword [esi + 0xc], eax
push dword [esi + 0x20]
push esi
call fcn.1007c2b0
add esp, 0x10
test eax, eax
je 0x10080926
test bl, bl
je 0x100806da
mov edx, dword [esi + 4]
imul edx, dword [esi]
mov ecx, dword [esi + 0x24]
test edx, edx
je 0x100806da
cmp dword [esi + 0xc], 2
jne 0x100806ae
mov bl, byte [ebp - 0x13fc]
cmp byte [ecx], bl
lea ecx, [ecx + 2]
sete al
dec al
mov byte [ecx - 1], al
sub edx, 1
jne 0x10080174
jmp 0x100806da
mov al, byte [ebp - 0x13ed]
test al, al
je 0x1008019e
cmp dword [ebp - 0x1400], 0
je 0x10080219
cmp dword [ebp + 0xc], 2
je 0x1008082e
mov ecx, dword [ebp - 0x1404]
mov eax, dword [ebp - 0x13f8]
lea edi, [ebx + ecx]
cmp edi, eax
jbe 0x100801fc
test eax, eax
jne 0x100801cf
mov eax, 0x1000
cmp ebx, eax
cmova eax, ebx
mov dword [ebp - 0x13f8], eax
cmp edi, eax
jbe 0x100801df
add eax, eax
cmp edi, eax
ja 0x100801d3
mov dword [ebp - 0x13f8], eax
push eax
push dword [esi + 0x1c]
call fcn.101394df
add esp, 8
test eax, eax
je 0x1008071f
mov ecx, dword [ebp - 0x1404]
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x10]
test eax, eax
je 0x10080236
push eax
mov eax, dword [esi + 0x1c]
push ebx
add eax, ecx
push 1
push eax
call fcn.10135779
add esp, 0x10
cmp eax, ebx
je 0x1008024b
pop edi
pop esi
mov dword [0x101e8bb0], 0x1018bb98
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10124b5e
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x1c]
push ebx
push dword [esi + 0x14]
add eax, ecx
push eax
call fcn.101294d0
add esp, 0xc
add dword [esi + 0x14], ebx
mov dword [ebp - 0x1404], edi
jmp 0x10080685
test eax, eax
je 0x10080219
cmp ebx, 0xd
jne 0x10080219
push esi
call fcn.1007ddb0
push esi
mov edi, eax
call fcn.1007ddb0
shl edi, 0x10
add esp, 8
add eax, edi
mov dword [esi], eax
cmp eax, 0x1000000
ja 0x100808a1
push esi
call fcn.1007ddb0
push esi
mov edi, eax
call fcn.1007ddb0
shl edi, 0x10
add esp, 8
add eax, edi
mov dword [esi + 4], eax
cmp eax, 0x1000000
ja 0x100808a1
mov eax, dword [esi + 0x10]
test eax, eax
je 0x100802c2
push eax
call fcn.101393c8
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x100802d5
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x10080884
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
cmp ecx, 8
jne 0x10080884
mov eax, dword [esi + 0x10]
test eax, eax
je 0x100802fa
push eax
call fcn.101393c8
mov edi, eax
add esp, 4
xor eax, eax
cmp edi, 0xffffffff
cmove edi, eax
jmp 0x10080309
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x1008032e
movzx edi, byte [eax]
inc eax
mov dword [esi + 0x14], eax
mov eax, edi
cmp edi, 6
jg 0x10080219
cmp edi, 3
jne 0x10080322
mov byte [ebp - 0x13ed], 3
jmp 0x10080330
mov edi, eax
test al, 1
jne 0x10080219
jmp 0x10080330
xor edi, edi
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1008034c
push eax
call fcn.101393c8
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x1008035b
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x10080363
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
test ecx, ecx
jne 0x10080219
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1008037f
push eax
call fcn.101393c8
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x1008038e
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x10080396
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
test ecx, ecx
jne 0x10080219
mov eax, dword [esi + 0x10]
test eax, eax
je 0x100803b2
push eax
call fcn.101393c8
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x100803c1
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x100803c9
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
test ecx, ecx
jne 0x1008084a
mov ecx, dword [esi]
test ecx, ecx
je 0x10080219
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x10080219
xor edx, edx
mov eax, 0x40000000
div ecx
cmp byte [ebp - 0x13ed], 0
jne 0x1008041e
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
jb 0x10080867
cmp dword [ebp + 0xc], 2
je 0x10080906
jmp 0x10080685
shr eax, 2
mov dword [esi + 8], 1
cmp eax, ebx
jb 0x10080219
jmp 0x10080685
cmp ecx, 0x504c5445
je 0x10080543
cmp ecx, 0x74524e53
je 0x10080475
test ecx, 0x20000000
je 0x100808be
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1008046d
push 1
push ebx
push eax
call fcn.10135b48
add esp, 0xc
jmp 0x10080685
add dword [esi + 0x14], ebx
jmp 0x10080685
cmp dword [esi + 0x1c], 0
jne 0x10080219
cmp byte [ebp - 0x13ed], 0
je 0x10080500
cmp dword [ebp + 0xc], 2
je 0x100808ff
mov eax, dword [ebp - 0x1400]
test eax, eax
je 0x10080219
cmp ebx, eax
ja 0x10080219
xor edi, edi
mov byte [ebp - 0x13ed], 4
test ebx, ebx
je 0x10080685
nop dword [eax]
mov eax, dword [esi + 0x10]
test eax, eax
je 0x100804dc
push eax
call fcn.101393c8
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x100804ef
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x100804ed
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
jmp 0x100804ef
xor ecx, ecx
mov byte [ebp + edi*4 - 0x401], cl
inc edi
cmp edi, ebx
jb 0x100804c0
jmp 0x10080685
mov ecx, dword [esi + 8]
test cl, 1
je 0x10080219
lea eax, [ecx + ecx]
cmp ebx, eax
jne 0x10080219
xor edi, edi
mov byte [ebp - 0x13ee], 1
test ecx, ecx
jle 0x10080685
push esi
call fcn.1007ddb0
mov byte [ebp + edi - 0x13fc], al
add esp, 4
inc edi
cmp edi, dword [esi + 8]
jl 0x10080528
jmp 0x10080685
cmp ebx, 0x300
ja 0x10080219
mov eax, 0xaaaaaaab
mul ebx
mov ecx, edx
shr ecx, 1
mov dword [ebp - 0x1400], ecx
lea eax, [ecx + ecx*2]
cmp eax, ebx
jne 0x10080219
mov dword [ebp - 0x13f4], 0
test ecx, ecx
je 0x10080685
lea ebx, [esi + 0x18]
lea edi, [esi + 0x14]
mov eax, dword [esi + 0x10]
mov edx, edi
mov dword [ebp - 0x140c], edi
mov dword [ebp - 0x141c], ebx
mov dword [ebp - 0x1414], edx
mov dword [ebp - 0x1418], ebx
test eax, eax
je 0x100805bb
push eax
call fcn.101393c8
mov ecx, eax
add esp, 4
xor eax, eax
mov edx, edi
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x100805cb
mov eax, dword [edi]
cmp eax, dword [ebx]
jae 0x100805c9
movzx ecx, byte [eax]
inc eax
mov dword [edi], eax
jmp 0x100805cb
xor ecx, ecx
mov eax, dword [ebp - 0x13f4]
mov byte [ebp + eax*4 - 0x404], cl
mov eax, dword [esi + 0x10]
test eax, eax
je 0x100805fa
push eax
call fcn.101393c8
mov ecx, eax
lea ebx, [esi + 0x18]
xor eax, eax
lea edi, [esi + 0x14]
add esp, 4
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x10080614
mov ecx, dword [ebp - 0x1418]
mov edi, edx
mov eax, dword [edx]
mov ebx, ecx
cmp eax, dword [ecx]
jae 0x10080612
movzx ecx, byte [eax]
inc eax
mov dword [edx], eax
jmp 0x10080614
xor ecx, ecx
mov eax, dword [ebp - 0x13f4]
mov byte [ebp + eax*4 - 0x403], cl
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1008063d
push eax
call fcn.101393c8
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x1008065d
mov edx, dword [ebp - 0x140c]
mov edi, edx
mov ecx, dword [ebp - 0x141c]
mov ebx, ecx
mov eax, dword [edx]
cmp eax, dword [ecx]
jae 0x1008065b
movzx ecx, byte [eax]
inc eax
mov dword [edx], eax
jmp 0x1008065d
xor ecx, ecx
mov eax, dword [ebp - 0x13f4]
mov byte [ebp + eax*4 - 0x402], cl
mov byte [ebp + eax*4 - 0x401], 0xff
inc eax
mov dword [ebp - 0x13f4], eax
cmp eax, dword [ebp - 0x1400]
jb 0x10080583
push esi
call fcn.1007ddb0
push esi
call fcn.1007ddb0
add esp, 8
mov dword [ebp - 0x13f4], 0
jmp 0x1007fff0
mov bl, byte [ebp - 0x13ee]
jmp 0x10080132
mov al, byte [ebp - 0x13fa]
mov bl, byte [ebp - 0x13fb]
mov ah, byte [ebp - 0x13fc]
cmp byte [ecx], ah
jne 0x100806d2
cmp byte [ecx + 1], bl
jne 0x100806d2
cmp byte [ecx + 2], al
jne 0x100806d2
mov byte [ecx + 3], 0
add ecx, 4
sub edx, 1
jne 0x100806c0
test bh, bh
je 0x100807de
mov eax, dword [ebp + 0x10]
movzx edi, bh
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
cmp eax, 3
jl 0x100806f8
mov dword [esi + 0xc], eax
mov edi, eax
mov ebx, dword [esi + 4]
imul ebx, dword [esi]
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x13f8], eax
mov eax, edi
imul eax, ebx
push eax
call fcn.101365ad
add esp, 4
mov dword [ebp - 0x140c], eax
test eax, eax
jne 0x1008073c
pop edi
pop esi
mov dword [0x101e8bb0], 0x1018bad0
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10124b5e
mov esp, ebp
pop ebp
ret
cmp edi, 3
jne 0x10080780
xor edi, edi
test ebx, ebx
je 0x100807ca
mov esi, dword [ebp - 0x13f8]
lea edx, [eax + 2]
movzx ecx, byte [edi + esi]
lea edx, [edx + 3]
inc edi
mov al, byte [ebp + ecx*4 - 0x404]
mov byte [edx - 5], al
mov al, byte [ebp + ecx*4 - 0x403]
mov byte [edx - 4], al
mov al, byte [ebp + ecx*4 - 0x402]
mov byte [edx - 3], al
cmp edi, ebx
jb 0x10080754
jmp 0x100807c4
xor edi, edi
test ebx, ebx
je 0x100807ca
mov esi, dword [ebp - 0x13f8]
lea edx, [eax + 2]
nop
movzx ecx, byte [edi + esi]
lea edx, [edx + 4]
inc edi
mov al, byte [ebp + ecx*4 - 0x404]
mov byte [edx - 6], al
mov al, byte [ebp + ecx*4 - 0x403]
mov byte [edx - 5], al
mov al, byte [ebp + ecx*4 - 0x402]
mov byte [edx - 4], al
mov al, byte [ebp + ecx*4 - 0x401]
mov byte [edx - 3], al
cmp edi, ebx
jb 0x10080790
mov esi, dword [ebp - 0x1408]
push dword [esi + 0x24]
call fcn.10136592
mov eax, dword [ebp - 0x140c]
add esp, 4
mov dword [esi + 0x24], eax
push dword [esi + 0x20]
call fcn.10136592
add esp, 4
mov dword [esi + 0x20], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10124b5e
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x13d8]
call fcn.10136592
add esp, 4
pop edi
mov dword [esi + 0x20], 0
xor eax, eax
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10124b5e
mov esp, ebp
pop ebp
ret
movzx eax, al
pop edi
mov dword [esi + 8], eax
mov eax, 1
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10124b5e
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov dword [0x101e8bb0], 0x1018bbec
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10124b5e
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov dword [0x101e8bb0], 0x1018bb6c
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10124b5e
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov dword [0x101e8bb0], 0x1018bbcc
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10124b5e
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov dword [0x101e8bb0], 0x1018bbb0
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10124b5e
mov esp, ebp
pop ebp
ret
mov eax, ecx
mov byte [0x101e648f], cl
shr eax, 0x18
mov byte [0x101e648c], al
mov eax, ecx
shr eax, 0x10
mov byte [0x101e648d], al
mov eax, ecx
pop edi
shr eax, 8
pop esi
mov byte [0x101e648e], al
xor eax, eax
mov dword [0x101e8bb0], 0x1018bc10
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10124b5e
mov esp, ebp
pop ebp
ret
mov dword [esi + 8], 4
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10124b5e
mov esp, ebp
pop ebp
ret
mov dword [0x101e8bb0], str.Not_a_PNG
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10124b5e
mov esp, ebp
pop ebp
ret