Function at 0x55b500
Capabilities:
Terminate process

Disassembly:
sub esp, 0x38
mov eax, dword [0x6687b8]
xor eax, esp
mov dword [esp + 0x34], eax
push ebp
mov ebp, dword [esp + 0x40]
mov ecx, dword [ebp + 0xec]
test ecx, ecx
push edi
jne 0x55b54c
movzx eax, byte [ebp + 0x124]
mov ecx, dword [ebp + 0xe4]
push eax
push ecx
push str.NULL_row_buffer_for_row__ld__pass__d
lea edx, [esp + 0x14]
push 0x32
push edx
call fcn.005d7813
add esp, 0x14
lea edi, [esp + 8]
mov eax, ebp
jmp fcn.0054c480
mov eax, dword [ebp + 0x74]
test eax, 0x1000
push ebx
mov bl, 3
je 0x55b5be
cmp byte [ebp + 0x108], bl
jne 0x55b58a
movzx eax, word [ebp + 0x11a]
mov edx, dword [ebp + 0x188]
push eax
lea eax, [ecx + 1]
push edx
lea ecx, [ebp + 0x100]
push ecx
mov ecx, dword [ebp + 0x114]
call fcn.0055de70
add esp, 0xc
jmp 0x55b5be
cmp word [ebp + 0x11a], 0
je 0x55b5aa
test eax, 0x2000000
je 0x55b5aa
lea edx, [ebp + 0x100]
lea eax, [ebp + 0x18c]
push edx
jmp 0x55b5b3
lea eax, [ebp + 0x100]
push eax
xor eax, eax
add ecx, 1
call fcn.0055e0c0
add esp, 4
mov eax, dword [ebp + 0x70]
and eax, 0x400000
je 0x55b5e6
or eax, 0x80
push eax
mov eax, dword [ebp + 0xec]
lea ecx, [ebp + 0x100]
add eax, 1
push ecx
call fcn.0054c860
add esp, 8
test dword [ebp + 0x74], 0x600000
push esi
je 0x55b650
mov edx, dword [ebp + 0xec]
add edx, 1
push edx
lea eax, [ebp + 0x100]
push eax
mov eax, ebp
call fcn.0055c3c0
add esp, 8
test eax, eax
je 0x55b650
mov ecx, dword [ebp + 0x74]
and ecx, 0x600000
cmp ecx, 0x400000
mov byte [ebp + 0x228], 1
jne 0x55b633
mov ecx, str.png_do_rgb_to_gray_found_nongray_pixel
mov esi, ebp
call fcn.0054c4a0
mov edx, dword [ebp + 0x74]
and edx, 0x600000
cmp edx, 0x200000
jne 0x55b650
mov edi, str.png_do_rgb_to_gray_found_nongray_pixel
mov eax, ebp
jmp fcn.0054c480
test dword [ebp + 0x74], 0x4000
je 0x55b676
test dword [ebp + 0x6c], 0x800
jne 0x55b676
mov eax, dword [ebp + 0xec]
add eax, 1
lea edi, [ebp + 0x100]
call fcn.0055c210
test byte [ebp + 0x74], 0x80
je 0x55b6ed
cmp word [ebp + 0x11a], 0
jne 0x55b68f
test byte [ebp + 0x126], 4
je 0x55b6ed
mov eax, dword [ebp + 0x158]
mov ecx, dword [ebp + 0x178]
mov edx, dword [ebp + 0x174]
push eax
mov eax, dword [ebp + 0x170]
push ecx
mov ecx, dword [ebp + 0x16c]
push edx
mov edx, dword [ebp + 0x168]
push eax
mov eax, dword [ebp + 0x164]
push ecx
push edx
push eax
lea ecx, [ebp + 0x142]
push ecx
lea edx, [ebp + 0x138]
push edx
mov edx, dword [ebp + 0xec]
lea eax, [ebp + 0x18c]
push eax
lea ecx, [ebp + 0x100]
add edx, 1
push ecx
call fcn.0055cab0
add esp, 0x2c
mov eax, dword [ebp + 0x74]
test eax, 0x2000
je 0x55b744
test al, al
jns 0x55b70e
cmp word [ebp + 0x11a], 0
jne 0x55b744
test byte [ebp + 0x126], 4
jne 0x55b744
cmp byte [ebp + 0x126], bl
je 0x55b744
mov edx, dword [ebp + 0x158]
mov eax, dword [ebp + 0x170]
mov ecx, dword [ebp + 0x164]
push edx
mov edx, dword [ebp + 0xec]
push eax
push ecx
add edx, 1
push edx
lea eax, [ebp + 0x100]
push eax
call fcn.0055dab0
add esp, 0x14
test dword [ebp + 0x74], 0x400
je 0x55b761
mov eax, dword [ebp + 0xec]
add eax, 1
lea esi, [ebp + 0x100]
call fcn.0055bc70
test byte [ebp + 0x74], 0x40
je 0x55b7a0
mov ecx, dword [ebp + 0xec]
mov ebx, dword [ebp + 0x1ec]
lea edx, [ebp + 0x100]
push edx
mov edx, dword [ebp + 0x1f0]
add ecx, 1
call fcn.0055e510
add esp, 4
cmp dword [ebp + 0x104], 0
jne 0x55b7a0
mov edi, str.png_do_quantize_returned_rowbytes0
mov eax, ebp
jmp fcn.0054c480
test byte [ebp + 0x74], 0x20
je 0x55b7ba
mov eax, dword [ebp + 0xec]
add eax, 1
lea ecx, [ebp + 0x100]
call fcn.0054c750
test byte [ebp + 0x74], 8
je 0x55b7df
mov ecx, dword [ebp + 0xec]
lea eax, [ebp + 0x181]
push eax
add ecx, 1
push ecx
lea edx, [ebp + 0x100]
call fcn.0055baa0
add esp, 8
test byte [ebp + 0x74], 4
je 0x55b7fd
mov eax, dword [ebp + 0xec]
lea edx, [ebp + 0x100]
add eax, 1
push edx
call fcn.0055b970
add esp, 4
test byte [ebp + 0x74], 1
je 0x55b817
mov eax, dword [ebp + 0xec]
add eax, 1
lea edx, [ebp + 0x100]
call fcn.0054cb00
test dword [ebp + 0x74], 0x10000
je 0x55b834
mov eax, dword [ebp + 0xec]
add eax, 1
lea ecx, [ebp + 0x100]
call fcn.0054c810
test dword [ebp + 0x74], 0x4000
je 0x55b85a
test dword [ebp + 0x6c], 0x800
je 0x55b85a
mov eax, dword [ebp + 0xec]
add eax, 1
lea edi, [ebp + 0x100]
call fcn.0055c210
test dword [ebp + 0x74], 0x8000
je 0x55b886
mov eax, dword [ebp + 0x70]
movzx edx, word [ebp + 0x12e]
push eax
mov eax, dword [ebp + 0xec]
lea ecx, [ebp + 0x100]
add eax, 1
push ecx
call fcn.0055bf10
add esp, 8
test dword [ebp + 0x74], 0x80000
je 0x55b8a3
mov ecx, dword [ebp + 0xec]
add ecx, 1
lea eax, [ebp + 0x100]
call fcn.0055be40
test dword [ebp + 0x74], 0x20000
je 0x55b8c0
mov ecx, dword [ebp + 0xec]
add ecx, 1
lea eax, [ebp + 0x100]
call fcn.0055bcc0
test byte [ebp + 0x74], 0x10
je 0x55b8da
mov eax, dword [ebp + 0xec]
add eax, 1
lea edx, [ebp + 0x100]
call fcn.0054c7e0
test dword [ebp + 0x74], 0x100000
je 0x55b953
mov eax, dword [ebp + 0x5c]
test eax, eax
je 0x55b901
mov edx, dword [ebp + 0xec]
add edx, 1
push edx
lea ecx, [ebp + 0x100]
push ecx
push ebp
call eax
add esp, 0xc
mov al, byte [ebp + 0x68]
test al, al
je 0x55b90e
mov byte [ebp + 0x109], al
mov al, byte [ebp + 0x69]
test al, al
je 0x55b91b
mov byte [ebp + 0x10a], al
mov al, byte [ebp + 0x10a]
imul byte [ebp + 0x109]
mov byte [ebp + 0x10b], al
cmp al, 8
movzx eax, al
jb 0x55b940
shr eax, 3
imul eax, dword [ebp + 0x100]
jmp 0x55b94d
imul eax, dword [ebp + 0x100]
add eax, 7
shr eax, 3
mov dword [ebp + 0x104], eax
mov ecx, dword [esp + 0x44]
pop esi
pop ebx
pop edi
pop ebp
xor ecx, esp
call fcn.005d28b3
add esp, 0x38
ret