Function at 0x657ea0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [0x8d0454]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x10]
cmp eax, dword [ecx + 8]
jbe 0x6585f8
sub esp, 0x90
mov edx, dword [esp + 0x94]
mov ebx, dword [edx + 4]
cmp ebx, 1
jb 0x6585eb
mov ebp, dword [edx]
mov esi, dword [edx + 8]
dec esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 1
mov edi, dword [edx + 0x10]
add ebp, esi
cmp edi, 1
jb 0x6585df
mov esi, dword [edx + 0xc]
mov eax, dword [edx + 0x14]
dec eax
neg eax
sar eax, 0x1f
and eax, 1
mov ecx, dword [edx + 0x1c]
add esi, eax
cmp ecx, 1
jb 0x6585d3
mov dword [esp + 0x84], esi
mov dword [esp + 0x4c], edi
mov eax, dword [edx + 0x18]
mov esi, dword [edx + 0x20]
dec esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 1
mov edi, dword [edx + 0x28]
add esi, eax
cmp edi, 1
jb 0x6585c7
mov dword [esp + 0x80], esi
mov dword [esp + 0x48], edi
mov eax, dword [edx + 0x24]
mov edi, dword [edx + 0x2c]
dec edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 1
mov esi, dword [edx + 0x34]
add edi, eax
cmp esi, 1
jb 0x6585bb
mov eax, dword [edx + 0x30]
mov edx, dword [edx + 0x38]
dec edx
neg edx
sar edx, 0x1f
and edx, 1
add edx, eax
mov eax, edi
mov edi, dword [esp + 0x9c]
cmp edi, 1
jb 0x6585af
mov dword [esp + 0x8c], eax
mov dword [esp + 0x7c], edx
mov dword [esp + 0x44], esi
mov edx, dword [esp + 0xa0]
dec edx
neg edx
sar edx, 0x1f
and edx, 1
dec ebx
dec ecx
mov esi, dword [esp + 0x98]
add edx, esi
mov dword [esp + 0x78], edx
lea esi, [edi - 1]
mov edi, dword [esp + 0x80]
mov dword [esp + 0x70], eax
xor eax, eax
mov dword [esp + 0x30], eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0x70]
jmp 0x657fff
inc edi
mov edx, dword [esp + 8]
add eax, edx
mov edx, dword [esp + 0x80]
mov edx, dword [esp + 0x78]
mov dword [esp + 0x30], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x80]
mov edi, dword [esp + 0x30]
cmp edi, ebx
jge 0x658041
movzx eax, byte [edi + ebp]
cmp edi, esi
jae 0x6585a6
movzx edx, byte [edi + edx]
sub eax, edx
cmp edi, ecx
jae 0x65859f
mov edx, dword [esp + 0x80]
mov byte [edx + edi], al
cmp al, 0x80
jae 0x658035
movzx eax, al
jmp 0x657fd7
movzx eax, al
add eax, 0xffffff00
neg eax
jmp 0x657fd7
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0x44]
lea ecx, [edi - 1]
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x68], eax
xor eax, eax
mov dword [esp + 0x2c], eax
xor eax, eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x68]
jmp 0x65808c
inc edx
mov esi, dword [esp + 0x44]
add eax, esi
mov esi, dword [esp + 0x7c]
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x78]
mov edi, dword [esp + 0xa4]
mov edx, dword [esp + 0x2c]
cmp edi, edx
jle 0x6580de
cmp edx, ebx
jae 0x658596
movzx eax, byte [edx + ebp]
cmp edx, esi
jae 0x65858d
mov esi, dword [esp + 0x78]
movzx esi, byte [edx + esi]
sub eax, esi
cmp edx, ecx
jae 0x658586
mov esi, dword [esp + 0x7c]
mov byte [esi + edx], al
cmp al, 0x80
jae 0x6580d2
movzx eax, al
jmp 0x658066
movzx eax, al
add eax, 0xffffff00
neg eax
jmp 0x658066
mov dword [esp + 0x10], ebx
mov dword [esp + 0x88], ebp
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x78]
jmp 0x65811a
lea edi, [ecx + 1]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x8c]
mov ecx, ebx
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x88]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x78]
cmp edi, ebx
jge 0x6581da
mov dword [esp + 0x28], edi
mov edx, dword [esp + 0xa4]
sub edi, edx
cmp edi, ebx
jae 0x65857d
movzx eax, byte [edi + ebp]
mov edx, dword [esp + 0x28]
cmp edx, esi
jae 0x658574
mov ebx, dword [esp + 0x78]
movzx ecx, byte [edx + ebx]
cmp edi, esi
jae 0x65856b
movzx edx, byte [edi + ebx]
mov byte [esp], al
mov byte [esp + 1], cl
mov byte [esp + 2], dl
call sym.image_png.paeth
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x28]
movzx edx, byte [ecx + eax]
movzx ebx, byte [esp + 4]
sub edx, ebx
mov ebx, dword [esp + 0x38]
cmp ecx, ebx
jae 0x658562
mov ebp, dword [esp + 0x7c]
mov byte [ebp + ecx], dl
cmp dl, 0x80
jae 0x65819f
movzx edx, dl
jmp 0x6581aa
movzx esi, dl
lea edx, [esi - 0x100]
neg edx
mov esi, dword [esp + 0x44]
add edx, esi
mov esi, dword [esp + 8]
cmp esi, edx
jg 0x6580f3
mov eax, dword [esp + 0x8c]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x88]
mov esi, dword [esp + 0xc]
mov ecx, edx
mov edx, dword [esp + 0x78]
jmp 0x6581de
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 8]
cmp ecx, edi
jge 0x6581ed
mov edi, 4
jmp 0x6581f4
mov ecx, edi
mov edi, 2
mov dword [esp + 0x60], eax
xor eax, eax
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0x60]
jmp 0x658224
lea eax, [edx + 1]
mov edx, dword [esp + 0x78]
mov dword [esp + 0x24], eax
mov dword [esp + 8], esi
mov eax, dword [esp + 0x8c]
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x24]
cmp edx, ebx
jge 0x65825d
movzx eax, byte [edx + ebp]
cmp al, 0x80
jae 0x65823a
movzx eax, al
jmp 0x658244
movzx eax, al
add eax, 0xffffff00
neg eax
mov esi, dword [esp + 8]
add esi, eax
cmp ecx, esi
jg 0x65820a
mov eax, dword [esp + 0x8c]
mov edx, esi
mov esi, dword [esp + 0xc]
jmp 0x658261
mov edx, dword [esp + 8]
cmp edx, ecx
jge 0x658269
xor edi, edi
jmp 0x65826b
mov edx, ecx
mov dword [esp + 0x34], edi
mov dword [esp + 0x40], edx
mov ecx, esi
mov esi, dword [esp + 0x4c]
dec esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x58], eax
xor eax, eax
mov dword [esp + 0x20], eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0x58]
jmp 0x6582be
inc edx
mov ecx, dword [esp + 8]
add eax, ecx
mov ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x20], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0xa4]
mov edx, dword [esp + 0x20]
cmp edi, edx
jle 0x658301
cmp edx, ebx
jae 0x658559
movzx eax, byte [edx + ebp]
cmp edx, esi
jae 0x658550
mov esi, dword [esp + 0x84]
mov byte [esi + edx], al
cmp al, 0x80
jae 0x6582f5
movzx eax, al
jmp 0x658294
movzx eax, al
add eax, 0xffffff00
neg eax
jmp 0x658294
mov edx, dword [esp + 0x40]
jmp 0x65831b
inc edx
mov esi, eax
mov dword [esp + 8], edi
mov eax, dword [esp + 0x8c]
mov edi, edx
mov edx, dword [esp + 0x40]
cmp edi, ebx
jge 0x658381
jae 0x658547
mov dword [esp + 0x1c], edi
mov edx, dword [esp + 0xa4]
sub edi, edx
mov edx, dword [esp + 0x1c]
movzx eax, byte [edx + ebp]
cmp edi, ebx
jae 0x65853e
movzx edi, byte [ebp + edi]
sub eax, edi
cmp edx, esi
jae 0x658535
mov edi, dword [esp + 0x84]
mov byte [edi + edx], al
cmp al, 0x80
jae 0x658365
movzx eax, al
jmp 0x65836f
movzx eax, al
add eax, 0xffffff00
neg eax
mov edi, dword [esp + 8]
add edi, eax
mov eax, esi
mov esi, dword [esp + 0x40]
cmp esi, edi
jg 0x658307
jmp 0x658387
mov esi, edx
mov edi, dword [esp + 8]
cmp edi, esi
jge 0x658392
mov eax, 1
jmp 0x658398
mov edi, esi
mov eax, dword [esp + 0x34]
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], edi
mov edx, dword [esp + 0x48]
dec edx
mov esi, dword [esp + 0xa4]
mov dword [esp + 0x50], eax
xor eax, eax
mov dword [esp + 0x18], eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0x50]
jmp 0x6583e7
inc edi
mov ebp, dword [esp + 8]
add eax, ebp
mov ebp, dword [esp + 0x8c]
mov ebp, dword [esp + 0x88]
mov dword [esp + 0x18], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x40]
mov edi, dword [esp + 0x18]
cmp esi, edi
jle 0x65843a
cmp edi, ebx
jae 0x65852c
movzx eax, byte [edi + ebp]
cmp edi, ecx
jae 0x658525
mov ebp, dword [esp + 0x78]
movzx ebp, byte [edi + ebp]
xchg ebp, eax
shr al, 1
xchg ebp, eax
sub eax, ebp
cmp edi, edx
jae 0x65851c
mov ebp, dword [esp + 0x8c]
mov byte [ebp + edi], al
cmp al, 0x80
jae 0x65842e
movzx eax, al
jmp 0x6583c2
movzx eax, al
add eax, 0xffffff00
neg eax
jmp 0x6583c2
mov edi, dword [esp + 0x40]
jmp 0x658456
inc edi
mov eax, dword [esp + 0x34]
mov esi, edi
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x88]
mov edi, dword [esp + 0x40]
cmp esi, ebx
jge 0x6584d7
jae 0x658513
mov dword [esp + 0x14], esi
mov edi, dword [esp + 0xa4]
sub esi, edi
mov edi, dword [esp + 0x14]
movzx eax, byte [edi + ebp]
cmp esi, ebx
jae 0x65850a
movzx esi, byte [ebp + esi]
cmp edi, ecx
jae 0x658503
mov ebp, dword [esp + 0x78]
movzx ebp, byte [edi + ebp]
add ebp, esi
mov esi, ebp
shr ebp, 0x1f
add ebp, esi
sar ebp, 1
sub eax, ebp
cmp edi, edx
jae 0x6584fa
mov ebp, dword [esp + 0x8c]
mov byte [ebp + edi], al
cmp al, 0x80
jae 0x6584b4
movzx esi, al
jmp 0x6584c3
movzx eax, al
lea esi, [eax - 0x100]
xchg esi, ebx
neg ebx
xchg esi, ebx
mov ebp, dword [esp + 8]
add ebp, esi
mov esi, dword [esp + 0x40]
cmp esi, ebp
jg 0x658440
jmp 0x6584dd
mov esi, edi
mov ebp, dword [esp + 8]
cmp ebp, esi
jge 0x6584e8
mov eax, 3
jmp 0x6584ec
mov eax, dword [esp + 0x34]
mov dword [esp + 0xa8], eax
add esp, 0x90
ret
mov eax, edi
mov ecx, edx
call sym.runtime.panicIndex
mov eax, edi
call sym.runtime.panicIndex
mov eax, esi
mov ecx, ebx
call sym.runtime.panicIndex
mov eax, esi
mov ecx, ebx
call sym.runtime.panicIndex
mov eax, edi
mov ecx, edx
call sym.runtime.panicIndex
mov eax, edi
call sym.runtime.panicIndex
mov eax, edi
mov ecx, ebx
call sym.runtime.panicIndex
mov eax, edx
mov ecx, esi
call sym.runtime.panicIndex
mov eax, edi
mov ecx, ebx
call sym.runtime.panicIndex
mov eax, edi
mov ecx, ebx
call sym.runtime.panicIndex
mov eax, edx
mov ecx, esi
call sym.runtime.panicIndex
mov eax, edx
mov ecx, ebx
call sym.runtime.panicIndex
mov eax, ecx
mov ecx, ebx
call sym.runtime.panicIndex
mov eax, edi
mov ecx, esi
call sym.runtime.panicIndex
mov eax, edx
mov ecx, esi
call sym.runtime.panicIndex
mov eax, edi
mov ecx, ebx
call sym.runtime.panicIndex
mov eax, edx
call sym.runtime.panicIndex
mov eax, edx
mov ecx, esi
call sym.runtime.panicIndex
mov eax, edx
mov ecx, ebx
call sym.runtime.panicIndex
mov eax, edi
call sym.runtime.panicIndex
mov eax, edi
mov ecx, esi
call sym.runtime.panicIndex
mov eax, 1
xor ecx, ecx
call sym.runtime.panicSliceB
mov eax, 1
xor ecx, ecx
call sym.runtime.panicSliceB
mov eax, 1
xor ecx, ecx
call sym.runtime.panicSliceB
mov eax, 1
xor ecx, ecx
call sym.runtime.panicSliceB
mov eax, 1
xor ecx, ecx
call sym.runtime.panicSliceB
mov eax, 1
xor ecx, ecx
call sym.runtime.panicSliceB
nop
call sym.runtime.morestack_noctxt
jmp sym.image_png.filter