Function at 0x475760
Capabilities:
Terminate process

Disassembly:
sub esp, 0x38
mov eax, dword [0x4d16b0]
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 0x4757ac
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.00482d6f
add esp, 0x14
lea edi, [esp + 8]
mov eax, ebp
jmp fcn.004665a0
mov eax, dword [ebp + 0x74]
test eax, 0x1000
push ebx
mov bl, 3
je 0x47581e
cmp byte [ebp + 0x108], bl
jne 0x4757ea
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.004780d0
add esp, 0xc
jmp 0x47581e
cmp word [ebp + 0x11a], 0
je 0x47580a
test eax, 0x2000000
je 0x47580a
lea edx, [ebp + 0x100]
lea eax, [ebp + 0x18c]
push edx
jmp 0x475813
lea eax, [ebp + 0x100]
push eax
xor eax, eax
add ecx, 1
call fcn.00478320
add esp, 4
mov eax, dword [ebp + 0x70]
and eax, 0x400000
je 0x475846
or eax, 0x80
push eax
mov eax, dword [ebp + 0xec]
lea ecx, [ebp + 0x100]
add eax, 1
push ecx
call fcn.00465290
add esp, 8
test dword [ebp + 0x74], 0x600000
push esi
je 0x4758b0
mov edx, dword [ebp + 0xec]
add edx, 1
push edx
lea eax, [ebp + 0x100]
push eax
mov eax, ebp
call fcn.00476620
add esp, 8
test eax, eax
je 0x4758b0
mov ecx, dword [ebp + 0x74]
and ecx, 0x600000
cmp ecx, 0x400000
mov byte [ebp + 0x228], 1
jne 0x475893
mov ecx, str.png_do_rgb_to_gray_found_nongray_pixel
mov esi, ebp
call fcn.004665c0
mov edx, dword [ebp + 0x74]
and edx, 0x600000
cmp edx, 0x200000
jne 0x4758b0
mov edi, str.png_do_rgb_to_gray_found_nongray_pixel
mov eax, ebp
jmp fcn.004665a0
test dword [ebp + 0x74], 0x4000
je 0x4758d6
test dword [ebp + 0x6c], 0x800
jne 0x4758d6
mov eax, dword [ebp + 0xec]
add eax, 1
lea edi, [ebp + 0x100]
call fcn.00476470
test byte [ebp + 0x74], 0x80
je 0x47594d
cmp word [ebp + 0x11a], 0
jne 0x4758ef
test byte [ebp + 0x126], 4
je 0x47594d
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.00476d10
add esp, 0x2c
mov eax, dword [ebp + 0x74]
test eax, 0x2000
je 0x4759a4
test al, al
jns 0x47596e
cmp word [ebp + 0x11a], 0
jne 0x4759a4
test byte [ebp + 0x126], 4
jne 0x4759a4
cmp byte [ebp + 0x126], bl
je 0x4759a4
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.00477d10
add esp, 0x14
test dword [ebp + 0x74], 0x400
je 0x4759c1
mov eax, dword [ebp + 0xec]
add eax, 1
lea esi, [ebp + 0x100]
call fcn.00475ed0
test byte [ebp + 0x74], 0x40
je 0x475a00
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.00478770
add esp, 4
cmp dword [ebp + 0x104], 0
jne 0x475a00
mov edi, str.png_do_quantize_returned_rowbytes0
mov eax, ebp
jmp fcn.004665a0
test byte [ebp + 0x74], 0x20
je 0x475a1a
mov eax, dword [ebp + 0xec]
add eax, 1
lea ecx, [ebp + 0x100]
call fcn.00465180
test byte [ebp + 0x74], 8
je 0x475a3f
mov ecx, dword [ebp + 0xec]
lea eax, [ebp + 0x181]
push eax
add ecx, 1
push ecx
lea edx, [ebp + 0x100]
call fcn.00475d00
add esp, 8
test byte [ebp + 0x74], 4
je 0x475a5d
mov eax, dword [ebp + 0xec]
lea edx, [ebp + 0x100]
add eax, 1
push edx
call fcn.00475bd0
add esp, 4
test byte [ebp + 0x74], 1
je 0x475a77
mov eax, dword [ebp + 0xec]
add eax, 1
lea edx, [ebp + 0x100]
call fcn.00465530
test dword [ebp + 0x74], 0x10000
je 0x475a94
mov eax, dword [ebp + 0xec]
add eax, 1
lea ecx, [ebp + 0x100]
call fcn.00465240
test dword [ebp + 0x74], 0x4000
je 0x475aba
test dword [ebp + 0x6c], 0x800
je 0x475aba
mov eax, dword [ebp + 0xec]
add eax, 1
lea edi, [ebp + 0x100]
call fcn.00476470
test dword [ebp + 0x74], 0x8000
je 0x475ae6
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.00476170
add esp, 8
test dword [ebp + 0x74], 0x80000
je 0x475b03
mov ecx, dword [ebp + 0xec]
add ecx, 1
lea eax, [ebp + 0x100]
call fcn.004760a0
test dword [ebp + 0x74], 0x20000
je 0x475b20
mov ecx, dword [ebp + 0xec]
add ecx, 1
lea eax, [ebp + 0x100]
call fcn.00475f20
test byte [ebp + 0x74], 0x10
je 0x475b3a
mov eax, dword [ebp + 0xec]
add eax, 1
lea edx, [ebp + 0x100]
call fcn.00465210
test dword [ebp + 0x74], 0x100000
je 0x475bb3
mov eax, dword [ebp + 0x5c]
test eax, eax
je 0x475b61
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 0x475b6e
mov byte [ebp + 0x109], al
mov al, byte [ebp + 0x69]
test al, al
je 0x475b7b
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 0x475ba0
shr eax, 3
imul eax, dword [ebp + 0x100]
jmp 0x475bad
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.0047f460
add esp, 0x38
ret