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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
mov esi, dword [edi + 0x124]
test esi, esi
je 0x46dc06
mov eax, dword [edi + 0x78]
and eax, 0x4040
cmp eax, 0x4000
je 0x46dc16
mov eax, dword [edi + 0x7c]
test ah, 0x10
je 0x46aba3
cmp byte [ebp + 8], 3
je 0x46bc45
cmp word [edi + 0x148], 0
je 0x46ab97
test eax, 0x2000000
jne 0x46bc00
lea edx, [esi + 1]
xor ecx, ecx
mov eax, ebp
call fcn.00468040
mov edx, dword [edi + 0x7c]
mov ecx, edx
mov eax, edx
and ecx, 0x40080
cmp ecx, 0x40000
je 0x46b6d1
test eax, 0x600000
jne 0x46b550
test ah, 0x40
jne 0x46b0a0
test al, 0x80
jne 0x46b0c5
mov eax, dword [edi + 0x7c]
mov ecx, eax
mov edx, eax
and ecx, 0x602000
cmp ecx, 0x2000
je 0x46bbf2
and edx, 0x40080
cmp edx, 0x40080
je 0x46b6a0
mov edx, dword [edi + 0x7c]
test edx, 0x800000
jne 0x46b345
test edx, 0x4000000
jne 0x46b395
test dh, 4
jne 0x46b490
test dl, 0x40
jne 0x46b410
test dh, 2
jne 0x46b431
test dh, 0x40
jne 0x46ad10
test dl, 0x20
jne 0x46ad40
test edx, 0x80000
jne 0x46ad64
test dl, 8
jne 0x46adc0
and edx, 4
jne 0x46aef1
cmp byte [ebp + 8], 3
je 0x46af50
mov eax, dword [edi + 0x7c]
test al, 1
jne 0x46af75
test eax, 0x10000
jne 0x46af98
test ah, 0x80
jne 0x46afb9
test eax, 0x20000
jne 0x46b6f0
test al, 0x10
jne 0x46b532
test eax, 0x100000
je 0x46ad04
mov edx, dword [edi + 0x64]
test edx, edx
je 0x46acc9
mov eax, dword [edi + 0x124]
mov dword [esp + 4], ebp
mov dword [esp], edi
add eax, 1
mov dword [esp + 8], eax
call edx
movzx eax, byte [edi + 0x70]
test al, al
jne 0x46b500
movzx edx, byte [edi + 0x71]
movzx eax, byte [ebp + 9]
test dl, dl
jne 0x46b50f
movzx edx, byte [ebp + 0xa]
imul eax, edx
cmp al, 7
mov byte [ebp + 0xb], al
jbe 0x46b520
shr al, 3
movzx eax, al
imul eax, dword [ebp]
mov dword [ebp + 4], eax
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
test byte [edi + 0x75], 8
je 0x46ac42
mov eax, dword [edi + 0x124]
lea edx, [eax + 1]
mov eax, ebp
call fcn.00467eb0
mov edx, dword [edi + 0x7c]
test dl, 0x20
je 0x46ac4b
lea esi, [esi]
lea edi, [edi]
mov eax, dword [edi + 0x124]
mov dword [esp], ebp
add eax, 1
mov dword [esp + 4], eax
call fcn.00475710
mov edx, dword [edi + 0x7c]
test edx, 0x80000
je 0x46ac57
movzx ecx, byte [ebp + 8]
mov eax, dword [edi + 0x124]
mov esi, dword [ebp]
add eax, 1
cmp cl, 6
je 0x46bc15
cmp cl, 4
jne 0x46ac57
cmp byte [ebp + 9], 8
mov ebx, eax
je 0x46cc82
add ebx, dword [ebp + 4]
test esi, esi
je 0x46b834
xor eax, eax
nop
add eax, 1
not byte [ebx - 1]
not byte [ebx - 2]
sub ebx, 4
cmp esi, eax
jne 0x46ada0
mov edx, dword [edi + 0x7c]
test dl, 8
je 0x46ac60
lea esi, [esi]
movzx ecx, byte [ebp + 8]
mov eax, dword [edi + 0x124]
add eax, 1
cmp cl, 3
je 0x46bf90
movzx ebx, byte [ebp + 9]
test cl, 2
mov byte [esp + 0x24], bl
je 0x46b845
movzx edx, byte [edi + 0x1a9]
mov esi, ebx
mov dword [esp + 0x20], 3
sub esi, edx
movzx edx, byte [edi + 0x1aa]
mov dword [esp + 0x40], esi
mov esi, ebx
sub esi, edx
movzx edx, byte [edi + 0x1ab]
mov dword [esp + 0x44], esi
mov esi, ebx
sub esi, edx
mov dword [esp + 0x48], esi
and ecx, 4
je 0x46ae3d
movzx edx, byte [edi + 0x1ad]
mov esi, ebx
sub esi, edx
mov edx, esi
mov esi, dword [esp + 0x20]
mov dword [esp + esi*4 + 0x40], edx
add esi, 1
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x20]
lea edx, [esp + 0x40]
mov dword [esp + 0x1c], 0
lea esi, [edx + esi*4]
mov ecx, dword [edx]
test ecx, ecx
jle 0x46bb40
cmp ecx, ebx
jge 0x46bb40
mov dword [esp + 0x1c], 1
add edx, 4
cmp edx, esi
jne 0x46ae50
mov edx, dword [esp + 0x1c]
test edx, edx
je 0x46aee5
cmp byte [esp + 0x24], 4
je 0x46cbd0
jbe 0x46c900
movzx ebx, byte [esp + 0x24]
cmp bl, 8
je 0x46c093
cmp bl, 0x10
jne 0x46aee5
mov esi, dword [ebp + 4]
add esi, eax
cmp esi, eax
jbe 0x46aee5
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x20]
xor ebx, ebx
movzx edx, byte [eax]
movzx ecx, byte [eax + 1]
shl edx, 8
add edx, ecx
mov ecx, dword [esp + ebx*4 + 0x40]
add ebx, 1
sar edx, cl
cmp edi, ebx
mov ecx, 0
cmovle ebx, ecx
mov ecx, edx
add eax, 2
sar ecx, 8
mov byte [eax - 2], cl
cmp esi, eax
mov byte [eax - 1], dl
ja 0x46aeb0
mov edi, dword [esp + 0x70]
mov edx, dword [edi + 0x7c]
and edx, 4
je 0x46ac69
mov eax, dword [edi + 0x124]
add eax, 1
movzx edx, byte [ebp + 9]
cmp dl, 7
ja 0x46ac69
cmp dl, 2
mov ebx, dword [ebp]
je 0x46c812
cmp dl, 4
je 0x46c7c0
cmp dl, 1
je 0x46c760
movzx eax, byte [ebp + 0xa]
mov byte [ebp + 9], 8
imul ebx, eax
cmp byte [ebp + 8], 3
lea edx, [eax*8]
mov byte [ebp + 0xb], dl
mov dword [ebp + 4], ebx
jne 0x46ac73
mov esi, esi
lea edi, [edi]
mov eax, dword [edi + 0x144]
test eax, eax
js 0x46ac73
mov dword [esp + 4], ebp
mov dword [esp], edi
call fcn.00475b60
mov eax, dword [edi + 0x7c]
test al, 1
je 0x46ac7e
mov eax, dword [edi + 0x124]
mov dword [esp], ebp
add eax, 1
mov dword [esp + 4], eax
call fcn.00475a50
mov eax, dword [edi + 0x7c]
test eax, 0x10000
je 0x46ac89
mov eax, dword [edi + 0x124]
mov dword [esp], ebp
add eax, 1
mov dword [esp + 4], eax
call fcn.004757d0
mov eax, dword [edi + 0x7c]
test ah, 0x80
je 0x46ac92
mov esi, dword [edi + 0x78]
mov dword [esp + 0x20], esi
movzx esi, word [edi + 0x15a]
mov ecx, esi
mov word [esp + 0x24], si
mov esi, dword [edi + 0x124]
mov ebx, ecx
movzx ebx, bh
mov dword [esp + 0x28], ebx
mov byte [esp + 0x1c], bl
lea edx, [esi + 1]
movzx ebx, byte [ebp + 8]
mov esi, dword [ebp]
test bl, bl
jne 0x46b765
movzx ebx, byte [ebp + 9]
cmp bl, 8
je 0x46c882
cmp bl, 0x10
jne 0x46ac9d
test byte [esp + 0x20], 0x80
lea ebx, [edx + esi*2]
lea eax, [edx + esi*4]
je 0x46ceb0
cmp esi, 1
mov dword [esp + 0x20], eax
jbe 0x46b06a
mov dword [esp + 0x70], edi
mov edx, 1
mov edi, ecx
nop
mov ecx, edi
sub ebx, 2
add edx, 1
mov byte [eax - 1], cl
movzx ecx, byte [esp + 0x1c]
sub eax, 4
mov byte [eax + 2], cl
movzx ecx, byte [ebx + 1]
mov byte [eax + 1], cl
movzx ecx, byte [ebx]
cmp esi, edx
mov byte [eax], cl
jne 0x46b030
mov ebx, dword [esp + 0x20]
mov eax, esi
mov edi, dword [esp + 0x70]
neg eax
lea eax, [ebx + eax*4 + 4]
mov dword [esp + 0x20], eax
movzx eax, byte [esp + 0x24]
mov ebx, dword [esp + 0x20]
mov byte [ebx - 1], al
movzx eax, byte [esp + 0x28]
mov byte [ebx - 2], al
lea eax, [esi*4]
mov byte [ebp + 0xa], 2
mov byte [ebp + 0xb], 0x20
mov dword [ebp + 4], eax
mov eax, dword [edi + 0x7c]
jmp 0x46ac92
test byte [edi + 0x75], 8
jne 0x46abd0
mov eax, dword [edi + 0x124]
lea edx, [eax + 1]
mov eax, ebp
call fcn.00467eb0
mov eax, dword [edi + 0x7c]
test al, 0x80
je 0x46abd8
mov eax, dword [edi + 0x18c]
mov esi, dword [edi + 0x124]
mov dword [esp + 0x30], eax
mov eax, dword [edi + 0x194]
lea ebx, [esi + 1]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x198]
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x190]
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x19c]
mov dword [esp + 0x34], eax
mov eax, dword [edi + 0x1a0]
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x184]
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x78]
and eax, 0x2000
mov dword [esp + 0x24], eax
mov eax, dword [ebp]
mov dword [esp + 0x1c], eax
movzx eax, byte [ebp + 8]
cmp al, 2
je 0x46bd22
jbe 0x46b861
cmp al, 4
je 0x46be90
cmp al, 6
jne case.0x46b877.0
cmp byte [ebp + 9], 8
je 0x46c232
mov eax, dword [esp + 0x2c]
test eax, eax
mov eax, dword [esp + 0x34]
setne dl
test eax, eax
setne al
test dl, al
je 0x46d22d
mov eax, dword [esp + 0x28]
test eax, eax
je 0x46d22d
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x46ce30
xor esi, esi
mov dword [esp + 0x74], ebp
mov dword [esp + 0x30], esi
jmp 0x46b1e2
movzx eax, byte [edi + 0x167]
mov byte [ebx], al
movzx eax, word [edi + 0x166]
mov byte [ebx + 1], al
movzx eax, byte [edi + 0x169]
mov byte [ebx + 2], al
movzx eax, word [edi + 0x168]
mov byte [ebx + 3], al
movzx eax, byte [edi + 0x16b]
mov byte [ebx + 4], al
movzx eax, word [edi + 0x16a]
mov byte [ebx + 5], al
add dword [esp + 0x30], 1
add ebx, 8
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x1c], eax
je 0x46b9d0
movzx eax, byte [ebx + 6]
movzx edx, byte [ebx + 7]
shl eax, 8
add eax, edx
cmp ax, 0xffff
je 0x46c6f0
test ax, ax
je 0x46b191
movzx eax, ax
mov ecx, 0xffff
movzx edx, byte [ebx + 1]
sub ecx, eax
mov esi, dword [esp + 0x28]
mov ebp, ecx
mov dword [esp + 0x38], ecx
movzx ecx, byte [esp + 0x20]
sar edx, cl
movzx ecx, byte [ebx]
mov edx, dword [esi + edx*4]
movzx ecx, word [edx + ecx*2]
movzx edx, word [edi + 0x170]
imul ecx, eax
imul edx, ebp
mov ebp, dword [esp + 0x24]
lea edx, [ecx + edx + 0x8000]
mov ecx, edx
shr ecx, 0x10
add edx, ecx
shr edx, 0x10
test ebp, ebp
mov ecx, edx
jne 0x46b267
movzx ecx, byte [esp + 0x20]
mov esi, dword [esp + 0x34]
movzx ebp, dl
shr edx, 8
sar ebp, cl
mov ecx, dword [esi + ebp*4]
movzx ecx, word [ecx + edx*2]
mov edx, ecx
mov byte [ebx + 1], cl
movzx ecx, byte [esp + 0x20]
shr dx, 8
mov esi, dword [esp + 0x28]
mov byte [ebx], dl
movzx edx, byte [ebx + 3]
sar edx, cl
movzx ecx, byte [ebx + 2]
mov edx, dword [esi + edx*4]
mov esi, dword [esp + 0x24]
movzx ecx, word [edx + ecx*2]
movzx edx, word [edi + 0x172]
imul edx, dword [esp + 0x38]
imul ecx, eax
lea edx, [ecx + edx + 0x8000]
mov ecx, edx
shr ecx, 0x10
add edx, ecx
shr edx, 0x10
test esi, esi
mov ecx, edx
jne 0x46b2ce
movzx ecx, byte [esp + 0x20]
mov esi, dword [esp + 0x34]
movzx ebp, dl
shr edx, 8
sar ebp, cl
mov ecx, dword [esi + ebp*4]
movzx ecx, word [ecx + edx*2]
mov edx, ecx
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x28]
shr dx, 8
mov byte [ebx + 3], cl
mov byte [ebx + 2], dl
movzx edx, byte [ebx + 5]
mov ecx, ebp
sar edx, cl
movzx ecx, byte [ebx + 4]
mov edx, dword [esi + edx*4]
movzx edx, word [edx + ecx*2]
mov ecx, dword [esp + 0x24]
imul eax, edx
movzx edx, word [edi + 0x174]
imul edx, dword [esp + 0x38]
lea eax, [eax + edx + 0x8000]
mov edx, eax
shr edx, 0x10
add eax, edx
shr eax, 0x10
test ecx, ecx
mov edx, eax
jne 0x46b334
mov esi, dword [esp + 0x34]
movzx edx, al
mov ecx, ebp
sar edx, cl
shr eax, 8
mov edx, dword [esi + edx*4]
movzx edx, word [edx + eax*2]
mov eax, edx
mov byte [ebx + 5], dl
shr ax, 8
mov byte [ebx + 4], al
jmp 0x46b1cc
movzx ecx, byte [ebp + 8]
test cl, 4
je 0x46ac12
mov eax, dword [ebp]
mov esi, dword [edi + 0x124]
mov dword [esp + 0x1c], eax
movzx eax, byte [ebp + 9]
lea ebx, [esi + 1]
cmp al, 8
je 0x46cab0
cmp al, 0x10
je 0x46cda0
mov dword [esp + 4], str.png_do_encode_alpha:_unexpected_call
mov dword [esp], edi
call fcn.004609b0
mov edx, dword [edi + 0x7c]
test edx, 0x4000000
je 0x46ac1e
cmp byte [ebp + 9], 0x10
jne 0x46ac27
mov eax, dword [edi + 0x124]
lea ebx, [eax + 1]
mov eax, dword [ebp + 4]
mov esi, ebx
add eax, ebx
cmp eax, ebx
jbe 0x46b3e9
mov dword [esp + 0x70], edi
mov edi, eax
lea esi, [esi]
movzx ecx, byte [ebx]
add ebx, 2
add esi, 1
movzx edx, byte [ebx - 1]
sub edx, ecx
sub edx, 0xffffff80
mov eax, edx
shl eax, 0x10
sub eax, edx
sar eax, 0x18
add ecx, eax
mov byte [esi - 1], cl
cmp edi, ebx
ja 0x46b3c0
mov edi, dword [esp + 0x70]
movzx eax, byte [ebp + 0xa]
mov byte [ebp + 9], 8
lea edx, [eax*8]
imul eax, dword [ebp]
mov byte [ebp + 0xb], dl
mov edx, dword [edi + 0x7c]
test dl, 0x40
mov dword [ebp + 4], eax
je 0x46ac30
nop
cmp byte [ebp + 9], 8
je 0x46b955
mov eax, dword [ebp + 4]
test eax, eax
je 0x46dc26
mov edx, dword [edi + 0x7c]
test dh, 2
je 0x46ac39
cmp byte [ebp + 9], 8
jne 0x46ac39
cmp byte [ebp + 8], 3
je 0x46ac39
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x124]
lea edx, [eax + ecx + 1]
lea eax, [edx + ecx]
cmp edx, eax
jae 0x46b475
lea esi, [esi]
sub edx, 1
movzx ecx, byte [edx]
sub eax, 2
mov byte [eax + 1], cl
mov byte [eax], cl
cmp edx, eax
jb 0x46b460
mov ecx, dword [ebp + 4]
movzx eax, byte [ebp + 0xa]
add ecx, ecx
mov byte [ebp + 9], 0x10
mov dword [ebp + 4], ecx
shl eax, 4
mov byte [ebp + 0xb], al
mov edx, dword [edi + 0x7c]
jmp 0x46ac39
cmp byte [ebp + 9], 0x10
jne 0x46ac27
mov esi, dword [edi + 0x124]
mov ebx, dword [ebp + 4]
lea edx, [esi + 1]
mov eax, edx
add ebx, edx
cmp edx, ebx
jae 0x46b4c0
nop
movzx ecx, byte [edx]
add edx, 2
add eax, 1
mov byte [eax - 1], cl
cmp ebx, edx
ja 0x46b4b0
movzx eax, byte [ebp + 0xa]
mov esi, dword [ebp]
mov byte [ebp + 9], 8
mov dword [esp + 0x1c], esi
lea edx, [eax*8]
imul eax, esi
mov byte [ebp + 0xb], dl
mov edx, dword [edi + 0x7c]
mov dword [ebp + 4], eax
test dl, 0x40
jne 0x46c864
test dh, 2
je 0x46ac39
jmp 0x46b43b
mov byte [ebp + 9], al
movzx edx, byte [edi + 0x71]
test dl, dl
je 0x46ace5
imul eax, edx
mov byte [ebp + 0xa], dl
cmp al, 7
mov byte [ebp + 0xb], al
ja 0x46acf7
movzx eax, al
imul eax, dword [ebp]
add eax, 7
shr eax, 3
jmp 0x46ad01
mov eax, dword [edi + 0x124]
mov dword [esp], ebp
add eax, 1
mov dword [esp + 4], eax
call fcn.00475790
mov eax, dword [edi + 0x7c]
jmp 0x46aca5
movzx ecx, byte [ebp + 8]
mov edx, ecx
and edx, 3
cmp dl, 2
jne 0x46abc7
mov eax, dword [edi + 0x124]
movzx esi, word [edi + 0x24c]
mov edx, 0x8000
add eax, 1
mov dword [esp + 0x28], eax
movzx eax, word [edi + 0x24a]
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], eax
add eax, esi
sub edx, eax
mov eax, dword [ebp]
mov dword [esp + 0x38], edx
movzx edx, byte [ebp + 9]
mov dword [esp + 0x20], eax
mov eax, ecx
and eax, 4
cmp dl, 8
mov byte [esp + 0x24], al
je 0x46c9c2
mov eax, dword [edi + 0x1a0]
test eax, eax
je 0x46ccd0
mov esi, dword [edi + 0x19c]
test esi, esi
je 0x46ccd0
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x46d220
mov eax, dword [esp + 0x28]
xor ebx, ebx
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], ebp
mov dword [esp + 0x1c], 0
mov ebp, ebx
mov esi, eax
mov edi, eax
jmp 0x46b60e
add esi, 6
add edi, 2
add dword [esp + 0x1c], 1
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x20], eax
je 0x46bfa0
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
movzx ecx, byte [esi + 3]
movzx ebx, byte [esi + 4]
shl eax, 8
or eax, edx
movzx edx, byte [esi + 2]
shl ebx, 8
shl edx, 8
or edx, ecx
movzx ecx, byte [esi + 5]
or ebx, ecx
cmp ax, dx
jne 0x46bb50
cmp ax, bx
jne 0x46bb50
mov ebx, dword [esp + 0x70]
mov ebx, dword [ebx + 0x190]
test ebx, ebx
je 0x46b66d
mov ecx, dword [esp + 0x70]
movzx edx, al
movzx eax, ah
mov ecx, dword [ecx + 0x184]
sar edx, cl
mov edx, dword [ebx + edx*4]
movzx eax, word [edx + eax*2]
mov edx, eax
mov byte [edi + 1], al
shr dx, 8
cmp byte [esp + 0x24], 0
mov byte [edi], dl
je 0x46b5f5
movzx eax, byte [esi + 6]
add edi, 4
add esi, 8
mov byte [edi - 2], al
movzx eax, byte [esi - 1]
mov byte [edi - 1], al
jmp 0x46b5fb
movzx eax, byte [ebp + 8]
and eax, 0xfffffffd
cmp al, 4
jne 0x46ac03
mov esi, dword [edi + 0x124]
lea edx, [esi + 1]
mov dword [esp + 8], 0
mov dword [esp], ebp
mov dword [esp + 4], edx
call fcn.00475830
jmp 0x46ac03
movzx eax, byte [ebp + 8]
and eax, 0xfffffffd
cmp al, 4
je 0x46b930
mov eax, edx
jmp 0x46abbc
movzx ebx, byte [ebp + 8]
mov esi, dword [edi + 0x124]
mov ecx, dword [ebp]
lea edx, [esi + 1]
cmp bl, 6
je 0x46b880
cmp bl, 4
jne 0x46ac9d
cmp byte [ebp + 9], 8
je 0x46cca2
add edx, dword [ebp + 4]
test ecx, ecx
je 0x46ac9d
xor eax, eax
mov esi, ecx
nop
lea esi, [esi]
movzx ecx, byte [edx - 1]
movzx ebx, byte [edx - 2]
sub edx, 4
add eax, 1
mov byte [esp + 0x1c], cl
movzx ecx, byte [edx + 1]
mov byte [edx + 3], cl
movzx ecx, byte [edx]
cmp esi, eax
mov byte [edx], bl
mov byte [edx + 2], cl
movzx ecx, byte [esp + 0x1c]
mov byte [edx + 1], cl
jne 0x46b730
mov eax, dword [edi + 0x7c]
jmp 0x46ac9d
cmp bl, 2
jne 0x46ac92
movzx ebx, byte [ebp + 9]
cmp bl, 8
je 0x46c3b0
cmp bl, 0x10
jne 0x46ac9d
test byte [esp + 0x20], 0x80
je 0x46d19a
lea ebx, [esi + esi]
cmp esi, 1
lea eax, [ebx + esi]
lea edx, [edx + eax*2]
lea eax, [edx + ebx]
mov dword [esp + 0x20], eax
jbe 0x46b806
mov dword [esp + 0x70], edi
mov ebx, 1
mov edi, ecx
nop
mov ecx, edi
sub edx, 6
add ebx, 1
mov byte [eax - 1], cl
movzx ecx, byte [esp + 0x1c]
sub eax, 8
mov byte [eax + 6], cl
movzx ecx, byte [edx + 5]
mov byte [eax + 5], cl
movzx ecx, byte [edx + 4]
mov byte [eax + 4], cl
movzx ecx, byte [edx + 3]
mov byte [eax + 3], cl
movzx ecx, byte [edx + 2]
mov byte [eax + 2], cl
movzx ecx, byte [edx + 1]
mov byte [eax + 1], cl
movzx ecx, byte [edx]
cmp esi, ebx
mov byte [eax], cl
jne 0x46b7b0
mov ebx, dword [esp + 0x20]
mov eax, esi
mov edi, dword [esp + 0x70]
neg eax
lea eax, [ebx + eax*8 + 8]
mov dword [esp + 0x20], eax
movzx eax, byte [esp + 0x24]
mov ebx, dword [esp + 0x20]
mov byte [ebx - 1], al
movzx eax, byte [esp + 0x28]
mov byte [ebx - 2], al
lea eax, [esi*8]
mov byte [ebp + 0xa], 4
mov byte [ebp + 0xb], 0x40
mov dword [ebp + 4], eax
mov eax, dword [edi + 0x7c]
jmp 0x46ac92
test dl, 8
je 0x46ac60
movzx ebx, byte [ebp + 9]
mov byte [esp + 0x24], bl
movzx edx, byte [edi + 0x1ac]
mov esi, ebx
mov dword [esp + 0x20], 1
sub esi, edx
mov dword [esp + 0x40], esi
jmp 0x46ae1c
test al, al
jne case.0x46b877.0
cmp byte [ebp + 9], 0x10
ja case.0x46b877.0
movzx eax, byte [ebp + 9]
jmp dword [eax*4 + 0x65cab8]
cmp byte [ebp + 9], 8
je 0x46cc20
add edx, dword [ebp + 4]
test ecx, ecx
je 0x46ac9d
xor eax, eax
mov esi, ecx
lea esi, [esi]
movzx ecx, byte [edx - 1]
movzx ebx, byte [edx - 2]
sub edx, 8
add eax, 1
mov byte [esp + 0x1c], cl
movzx ecx, byte [edx + 5]
mov byte [edx + 7], cl
movzx ecx, byte [edx + 4]
mov byte [edx + 6], cl
movzx ecx, byte [edx + 3]
mov byte [edx + 5], cl
movzx ecx, byte [edx + 2]
mov byte [edx + 4], cl
movzx ecx, byte [edx + 1]
mov byte [edx + 3], cl
movzx ecx, byte [edx]
cmp esi, eax
mov byte [edx], bl
mov byte [edx + 2], cl
movzx ecx, byte [esp + 0x1c]
mov byte [edx + 1], cl
jne 0x46b8a0
jmp 0x46b75d
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
mov eax, dword [esp + 0x1c]
mov byte [ebp + 9], 8
mov byte [ebp + 0xb], 0x20
mov byte [ebp + 8], 6
mov byte [ebp + 0xa], 4
shl eax, 2
mov dword [ebp + 4], eax
mov eax, dword [edi + 0x7c]
mov edx, eax
and edx, 0x40080
cmp edx, 0x40000
jne 0x46abbc
mov esi, esi
lea edi, [edi]
mov dword [esp + 8], 0
mov eax, dword [edi + 0x124]
mov dword [esp], ebp
add eax, 1
mov dword [esp + 4], eax
call fcn.00475830
mov eax, dword [edi + 0x7c]
jmp 0x46abbc
mov eax, dword [edi + 0x204]
mov esi, dword [ebp]
mov ecx, dword [edi + 0x208]
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x124]
mov dword [esp + 0x1c], esi
add eax, 1
movzx edx, byte [ebp + 8]
cmp dl, 2
je 0x46c940
cmp dl, 6
je 0x46cb20
cmp dl, 3
jne 0x46b41a
test ecx, ecx
je 0x46b41a
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x46b41a
mov ebx, esi
add ebx, eax
lea esi, [esi]
movzx edx, byte [eax]
add eax, 1
movzx edx, byte [ecx + edx]
mov byte [eax - 1], dl
cmp eax, ebx
jne 0x46b9b0
jmp 0x46b41a
mov ebp, dword [esp + 0x74]
mov eax, dword [edi + 0x7c]
mov ecx, eax
mov edx, eax
and ecx, 0x602000
cmp ecx, 0x2000
jne 0x46abf1
test al, 0x80
je 0x46bbf2
cmp word [edi + 0x148], 0
jne 0x46bb30
movzx edx, byte [edi + 0x14f]
test dl, 4
jne 0x46bb30
cmp dl, 3
je 0x46bb30
movzx ebx, byte [ebp + 9]
mov esi, dword [edi + 0x190]
mov ecx, dword [edi + 0x18c]
mov dword [esp + 0x28], esi
cmp bl, 8
mov byte [esp + 0x1c], bl
ja 0x46c040
test ecx, ecx
je 0x46bb30
mov edx, dword [edi + 0x184]
mov esi, dword [edi + 0x124]
mov dword [esp + 0x20], edx
mov edx, dword [ebp]
lea ebx, [esi + 1]
mov dword [esp + 0x24], edx
movzx edx, byte [ebp + 8]
cmp dl, 2
je 0x46cfc4
jbe 0x46cf40
cmp dl, 4
je 0x46d066
cmp dl, 6
jne 0x46bb30
cmp byte [esp + 0x1c], 8
je 0x46d5f4
mov ecx, dword [esp + 0x24]
xor edx, edx
test ecx, ecx
je 0x46da68
mov dword [esp + 0x70], edi
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x74], ebp
movzx eax, byte [ebx + 1]
movzx ebp, byte [ebx]
add ebx, 8
add dword [esp + 0x1c], 1
sar eax, cl
mov eax, dword [esi + eax*4]
movzx eax, word [eax + ebp*2]
mov byte [ebx - 7], al
mov ebp, eax
movzx eax, byte [ebx - 5]
shr bp, 8
mov edx, ebp
movzx ebp, byte [ebx - 6]
mov byte [ebx - 8], dl
sar eax, cl
mov eax, dword [esi + eax*4]
movzx eax, word [eax + ebp*2]
mov byte [ebx - 5], al
mov ebp, eax
movzx eax, byte [ebx - 3]
shr bp, 8
mov edx, ebp
movzx ebp, byte [ebx - 4]
mov byte [ebx - 6], dl
sar eax, cl
mov eax, dword [esi + eax*4]
movzx eax, word [eax + ebp*2]
mov byte [ebx - 3], al
mov ebp, eax
mov eax, dword [esp + 0x1c]
shr bp, 8
mov edx, ebp
mov byte [ebx - 4], dl
cmp edi, eax
jne 0x46bab5
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
lea esi, [esi]
mov edx, dword [edi + 0x7c]
jmp 0x46abf1
mov dword [edx], 0
jmp 0x46ae6a
mov ecx, dword [esp + 0x70]
mov ebp, dword [esp + 0x70]
mov ecx, dword [ecx + 0x1a0]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 0x184]
movzx ebp, al
movzx eax, ah
mov dword [esp + 0x2c], ecx
sar ebp, cl
mov ecx, dword [esp + 0x28]
mov ebp, dword [ecx + ebp*4]
movzx ecx, byte [esp + 0x2c]
movzx eax, word [ebp + eax*2]
movzx ebp, dl
movzx edx, dh
sar ebp, cl
mov ecx, dword [esp + 0x28]
imul eax, dword [esp + 0x30]
mov ebp, dword [ecx + ebp*4]
movzx edx, word [ebp + edx*2]
mov ebp, dword [esp + 0x2c]
imul edx, dword [esp + 0x34]
mov ecx, ebp
lea edx, [eax + edx + 0x4000]
movzx eax, bl
movzx ebx, bh
sar eax, cl
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + eax*4]
mov ecx, ebp
mov ebp, 1
movzx eax, word [eax + ebx*2]
mov ebx, dword [esp + 0x70]
imul eax, dword [esp + 0x38]
add edx, eax
shr edx, 0xf
movzx eax, dl
movzx edx, dh
sar eax, cl
mov ecx, dword [ebx + 0x19c]
mov eax, dword [ecx + eax*4]
movzx eax, word [eax + edx*2]
jmp 0x46b66d
movzx edx, byte [edi + 0x14f]
jmp 0x46ba13
lea ecx, [edi + 0x1b4]
lea edx, [esi + 1]
mov eax, ebp
call fcn.00468040
jmp 0x46aba3
cmp byte [ebp + 9], 8
mov ebx, eax
je 0x46cc60
add ebx, dword [ebp + 4]
test esi, esi
je 0x46d200
xor eax, eax
nop
add eax, 1
not byte [ebx - 1]
not byte [ebx - 2]
sub ebx, 8
cmp esi, eax
jne 0x46bc30
jmp 0x46adb0
movzx ebx, word [edi + 0x148]
movzx edx, byte [ebp + 9]
add esi, 1
mov ecx, dword [ebp]
mov dword [esp + 0x20], esi
mov word [esp + 0x24], bx
mov ebx, dword [edi + 0x1b0]
cmp dl, 7
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], ebx
mov ebx, dword [edi + 0x13c]
jbe 0x46c060
cmp dl, 8
jne 0x46abbc
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
lea eax, [eax + esi - 1]
movzx esi, word [esp + 0x24]
test esi, esi
je 0x46d7ff
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
lea edx, [edx + ecx*4 - 2]
mov dword [esp + 0x24], edx
mov edx, eax
sub edx, ecx
test ecx, ecx
mov dword [esp + 0x20], edx
je 0x46b8f6
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], ebp
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x28]
jmp 0x46bd11
mov byte [edx + 1], 0xff
movzx ecx, byte [eax]
sub eax, 1
sub edx, 4
lea ecx, [ecx + ecx*2]
movzx ecx, byte [ebx + ecx + 2]
mov byte [edx + 4], cl
movzx ecx, byte [eax + 1]
lea ecx, [ecx + ecx*2]
movzx ecx, byte [ebx + ecx + 1]
mov byte [edx + 3], cl
movzx ecx, byte [eax + 1]
lea ecx, [ecx + ecx*2]
movzx ecx, byte [ebx + ecx]
mov byte [edx + 2], cl
cmp eax, edi
je 0x46b8ee
movzx ecx, byte [eax]
cmp esi, ecx
jle 0x46bcd4
movzx ecx, byte [ebp + ecx]
mov byte [edx + 1], cl
jmp 0x46bcd8
cmp byte [ebp + 9], 8
je 0x46c0d5
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x46d377
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x46ce30
mov dword [esp + 0x74], ebp
mov dword [esp + 0x24], 0
mov dword [esp + 0x70], edi
mov ebp, dword [esp + 0x2c]
jmp 0x46bdd3
mov edi, dword [esp + 0x20]
mov ecx, edi
sar eax, cl
mov ecx, esi
mov eax, dword [ebp + eax*4]
movzx esi, cl
movzx eax, word [eax + esi*2]
mov ecx, eax
mov byte [ebx + 1], al
shr cx, 8
mov byte [ebx], cl
mov ecx, edi
movzx edi, byte [esp + 0x28]
sar edx, cl
mov eax, dword [ebp + edx*4]
movzx eax, word [eax + edi*2]
mov byte [ebx + 3], al
mov edx, eax
movzx eax, byte [esp + 0x30]
shr dx, 8
mov byte [ebx + 2], dl
movzx edx, byte [esp + 0x2c]
sar eax, cl
mov eax, dword [ebp + eax*4]
movzx eax, word [eax + edx*2]
mov edx, eax
mov byte [ebx + 5], al
shr dx, 8
mov byte [ebx + 4], dl
add dword [esp + 0x24], 1
add ebx, 6
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x1c], eax
je 0x46c6b0
movzx ecx, byte [ebx + 2]
movzx esi, byte [ebx]
movzx eax, byte [ebx + 1]
movzx edx, byte [ebx + 3]
mov byte [esp + 0x28], cl
movzx ecx, byte [ebx + 4]
mov edi, esi
shl edi, 8
mov byte [esp + 0x2c], cl
movzx ecx, byte [ebx + 5]
mov byte [esp + 0x30], cl
movzx ecx, al
add ecx, edi
mov edi, dword [esp + 0x70]
cmp cx, word [edi + 0x1b6]
jne 0x46bd60
movzx edi, word [esp + 0x28]
movzx ecx, dl
shl edi, 8
add ecx, edi
mov edi, dword [esp + 0x70]
cmp cx, word [edi + 0x1b8]
jne 0x46bd60
movzx edi, word [esp + 0x2c]
movzx ecx, byte [esp + 0x30]
shl edi, 8
add ecx, edi
mov edi, dword [esp + 0x70]
cmp cx, word [edi + 0x1ba]
jne 0x46bd60
movzx eax, byte [edi + 0x167]
mov byte [ebx], al
movzx eax, word [edi + 0x166]
mov byte [ebx + 1], al
movzx eax, byte [edi + 0x169]
mov byte [ebx + 2], al
movzx eax, word [edi + 0x168]
mov byte [ebx + 3], al
movzx eax, byte [edi + 0x16b]
mov byte [ebx + 4], al
movzx eax, word [edi + 0x16a]
mov byte [ebx + 5], al
jmp 0x46bdbd
cmp byte [ebp + 9], 8
je 0x46c175
mov eax, dword [esp + 0x2c]
test eax, eax
mov eax, dword [esp + 0x34]
setne dl
test eax, eax
setne al
test dl, al
je 0x46d423
mov eax, dword [esp + 0x28]
test eax, eax
je 0x46d423
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x46ce30
xor edx, edx
mov dword [esp + 0x74], ebp
jmp 0x46bef7
movzx eax, byte [edi + 0x16d]
mov byte [esi + edx*4 + 1], al
movzx eax, word [edi + 0x16c]
mov byte [esi + edx*4 + 2], al
add edx, 1
cmp dword [esp + 0x1c], edx
je 0x46b9d0
movzx eax, byte [esi + edx*4 + 3]
movzx ecx, byte [esi + edx*4 + 4]
shl eax, 8
add eax, ecx
cmp ax, 0xffff
je 0x46c6c0
test ax, ax
je 0x46bed4
movzx ecx, byte [esp + 0x20]
movzx ebx, byte [esi + edx*4 + 2]
movzx eax, ax
mov ebp, dword [esp + 0x28]
sar ebx, cl
movzx ecx, byte [esi + edx*4 + 1]
mov ebx, dword [ebp + ebx*4]
mov ebp, 0xffff
sub ebp, eax
movzx ecx, word [ebx + ecx*2]
movzx ebx, word [edi + 0x176]
imul ecx, eax
imul ebx, ebp
lea eax, [ecx + ebx + 0x8000]
mov ebx, dword [esp + 0x24]
mov ecx, eax
shr ecx, 0x10
add eax, ecx
shr eax, 0x10
test ebx, ebx
mov ecx, eax
jne 0x46bf7c
movzx ecx, byte [esp + 0x20]
movzx ebx, al
shr eax, 8
sar ebx, cl
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + ebx*4]
movzx ecx, word [ecx + eax*2]
mov eax, ecx
mov byte [esi + edx*4 + 2], cl
shr ax, 8
mov byte [esi + edx*4 + 1], al
jmp 0x46beea
and edx, 4
je 0x46af50
jmp 0x46aefa
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
movzx ecx, byte [ebp + 8]
movzx edx, byte [ebp + 9]
movzx eax, byte [ebp + 0xa]
and ecx, 0xfffffffd
mov byte [ebp + 8], cl
sub eax, 2
mov byte [ebp + 0xa], al
imul eax, edx
cmp al, 7
mov byte [ebp + 0xb], al
jbe 0x46c030
shr al, 3
movzx eax, al
imul eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [ebp + 4], eax
test edx, edx
je 0x46dc36
mov eax, dword [edi + 0x7c]
mov byte [edi + 0x248], 1
mov edx, eax
and edx, 0x600000
cmp edx, 0x400000
je 0x46ce95
mov edx, eax
and edx, 0x600000
cmp edx, 0x200000
jne 0x46abc7
mov dword [esp + 4], str.png_do_rgb_to_gray_found_nongray_pixel
mov dword [esp], edi
call fcn.00460d80
lea esi, [esi]
movzx eax, al
imul eax, dword [esp + 0x20]
add eax, 7
shr eax, 3
jmp 0x46bfd9
cmp byte [esp + 0x1c], 0x10
jne 0x46bb30
mov edx, dword [esp + 0x28]
test edx, edx
jne 0x46ba45
jmp 0x46bb30
cmp dl, 2
je 0x46d590
cmp dl, 4
je 0x46d52e
cmp dl, 1
lea eax, [esi + ecx - 1]
je 0x46d4c3
mov esi, dword [esp + 0x1c]
mov byte [ebp + 9], 8
mov byte [ebp + 0xb], 8
mov dword [ebp + 4], esi
jmp 0x46bc91
mov esi, dword [ebp + 4]
add esi, eax
cmp esi, eax
jbe 0x46aee5
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x20]
xor edx, edx
lea esi, [esi]
movzx ebx, byte [eax]
mov ecx, dword [esp + edx*4 + 0x40]
add edx, 1
sar ebx, cl
cmp edi, edx
mov ecx, 0
cmovle edx, ecx
add eax, 1
cmp esi, eax
mov byte [eax - 1], bl
jne 0x46c0b0
jmp 0x46aee1
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
test edx, edx
je 0x46d9c1
test eax, eax
je 0x46ce30
lea eax, [eax + eax*2 + 1]
mov dword [esp + 0x74], ebp
add esi, eax
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x30]
jmp 0x46c12a
movzx edx, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
movzx eax, byte [esi + eax]
mov byte [ebx], al
movzx eax, byte [esi + edx]
mov byte [ebx + 1], al
movzx eax, byte [esi + ecx]
mov byte [ebx + 2], al
add ebx, 3
cmp ebx, dword [esp + 0x1c]
je 0x46b9d0
movzx edx, byte [ebx]
cmp dx, word [edi + 0x1b6]
mov eax, edx
jne 0x46c101
movzx ecx, byte [ebx + 1]
cmp cx, word [edi + 0x1b8]
mov edx, ecx
jne 0x46c105
movzx ebp, byte [ebx + 2]
cmp bp, word [edi + 0x1ba]
mov ecx, ebp
jne 0x46c109
movzx eax, word [edi + 0x166]
mov byte [ebx], al
movzx eax, word [edi + 0x168]
mov byte [ebx + 1], al
movzx eax, word [edi + 0x16a]
mov byte [ebx + 2], al
jmp 0x46c11d
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
test edx, edx
setne dl
test ecx, ecx
setne al
test dl, al
je 0x46d886
mov eax, dword [esp + 0x30]
test eax, eax
je 0x46d886
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x46ce30
mov dword [esp + 0x74], ebp
xor ecx, ecx
mov dword [esp + 0x70], edi
mov ebp, eax
jmp 0x46c1cf
mov eax, dword [esp + 0x70]
movzx eax, word [eax + 0x16c]
mov byte [esi + ecx*2 + 1], al
add ecx, 1
cmp ebp, ecx
je 0x46c6b0
movzx edx, byte [esi + ecx*2 + 2]
cmp dx, 0xff
mov eax, edx
je 0x46cf20
test dx, dx
je 0x46c1b5
mov ebx, 0xff
movzx edi, byte [esi + ecx*2 + 1]
sub ebx, edx
mov edx, ebx
mov ebx, dword [esp + 0x70]
imul dx, word [ebx + 0x176]
mov ebx, dword [esp + 0x38]
mul byte [ebx + edi]
lea edx, [edx + eax + 0x80]
mov eax, dword [esp + 0x24]
movzx ebx, dh
movzx edx, dx
add edx, ebx
sar edx, 8
test eax, eax
jne 0x46c22c
mov eax, dword [esp + 0x3c]
movzx edx, dl
movzx edx, byte [eax + edx]
mov byte [esi + ecx*2 + 1], dl
jmp 0x46c1c4
mov eax, dword [esp + 0x38]
test eax, eax
mov eax, dword [esp + 0x3c]
setne dl
test eax, eax
setne al
test dl, al
je 0x46d8f4
mov eax, dword [esp + 0x30]
test eax, eax
je 0x46d8f4
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x46ce30
xor ecx, ecx
mov dword [esp + 0x74], ebp
jmp 0x46c29e
movzx eax, word [edi + 0x166]
mov byte [esi + ecx*4 + 1], al
movzx eax, word [edi + 0x168]
mov byte [esi + ecx*4 + 2], al
movzx eax, word [edi + 0x16a]
mov byte [esi + ecx*4 + 3], al
add ecx, 1
cmp dword [esp + 0x1c], ecx
je 0x46b9d0
movzx edx, byte [esi + ecx*4 + 4]
cmp dl, 0xff
je 0x46cef0
test dl, dl
je 0x46c270
movzx eax, dl
mov ebx, 0xff
movzx ebp, byte [esi + ecx*4 + 1]
sub ebx, eax
mov eax, edx
mov word [esp + 0x20], bx
imul bx, word [edi + 0x170]
mov word [esp + 0x28], bx
mov ebx, dword [esp + 0x38]
mul byte [ebx + ebp]
movzx ebx, word [esp + 0x28]
lea ebx, [ebx + eax + 0x80]
mov eax, dword [esp + 0x24]
movzx ebp, bh
movzx ebx, bx
add ebx, ebp
sar ebx, 8
test eax, eax
jne 0x46c304
mov eax, dword [esp + 0x3c]
movzx ebx, bl
movzx ebx, byte [eax + ebx]
mov byte [esi + ecx*4 + 1], bl
movzx ebx, word [esp + 0x20]
mov eax, edx
imul bx, word [edi + 0x172]
movzx ebp, byte [esi + ecx*4 + 2]
mov word [esp + 0x28], bx
mov ebx, dword [esp + 0x38]
mul byte [ebx + ebp]
movzx ebx, word [esp + 0x28]
lea ebx, [ebx + eax + 0x80]
movzx ebp, bh
movzx ebx, bx
add ebx, ebp
mov ebp, dword [esp + 0x24]
sar ebx, 8
test ebp, ebp
jne 0x46c352
mov eax, dword [esp + 0x3c]
movzx ebx, bl
movzx ebx, byte [eax + ebx]
movzx ebp, word [esp + 0x20]
mov byte [esi + ecx*4 + 2], bl
mov eax, edx
imul bp, word [edi + 0x174]
movzx ebx, byte [esi + ecx*4 + 3]
mov edx, dword [esp + 0x24]
mov word [esp + 0x20], bp
mov ebp, dword [esp + 0x38]
mul byte [ebp + ebx]
movzx ebx, word [esp + 0x20]
lea eax, [ebx + eax + 0x80]
movzx ebx, ah
movzx eax, ax
add eax, ebx
sar eax, 8
test edx, edx
jne 0x46c3a1
mov ebx, dword [esp + 0x3c]
movzx eax, al
movzx eax, byte [ebx + eax]
mov byte [esi + ecx*4 + 3], al
jmp 0x46c291
lea eax, [esi + esi*2]
add edx, eax
test byte [esp + 0x20], 0x80
je 0x46d152
lea ebx, [edx + esi]
cmp esi, 1
mov dword [esp + 0x20], ebx
jbe 0x46c415
neg eax
mov byte [esp + 0x1c], cl
lea ebx, [edx + eax + 3]
lea eax, [edx + esi]
lea esi, [esi]
movzx ecx, byte [esp + 0x1c]
sub edx, 3
sub eax, 4
mov byte [eax + 3], cl
movzx ecx, byte [edx + 2]
mov byte [eax + 2], cl
movzx ecx, byte [edx + 1]
mov byte [eax + 1], cl
movzx ecx, byte [edx]
cmp ebx, edx
mov byte [eax], cl
jne 0x46c3e0
mov ebx, dword [esp + 0x20]
mov eax, esi
neg eax
lea eax, [ebx + eax*4 + 4]
mov dword [esp + 0x20], eax
movzx eax, byte [esp + 0x24]
mov ebx, dword [esp + 0x20]
mov byte [ebx - 1], al
lea eax, [esi*4]
mov byte [ebp + 0xa], 4
mov byte [ebp + 0xb], 0x20
mov dword [ebp + 4], eax
mov eax, dword [edi + 0x7c]
jmp 0x46ac92
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x46dba8
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x46ce30
xor eax, eax
mov dword [esp + 0x74], ebp
jmp 0x46c48d
movzx ecx, byte [esp + 0x20]
sar edx, cl
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + edx*4]
movzx edx, word [edx + ebx*2]
mov ecx, edx
mov byte [esi + eax*2 + 2], dl
shr cx, 8
mov byte [esi + eax*2 + 1], cl
add eax, 1
cmp dword [esp + 0x1c], eax
je 0x46b9d0
movzx ebx, byte [esi + eax*2 + 1]
movzx ecx, byte [esi + eax*2 + 2]
mov ebp, ebx
mov edx, ecx
shl ebp, 8
add ecx, ebp
cmp cx, word [edi + 0x1bc]
jne 0x46c460
movzx edx, byte [edi + 0x16d]
mov byte [esi + eax*2 + 1], dl
movzx edx, word [edi + 0x16c]
mov byte [esi + eax*2 + 2], dl
jmp 0x46c480
mov eax, dword [esp + 0x30]
test eax, eax
je 0x46da97
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x46ce30
xor eax, eax
mov dword [esp + 0x74], ebp
mov esi, 4
mov dword [esp + 0x70], edi
mov ebp, eax
jmp 0x46c505
add ebx, 1
mov esi, 4
add ebp, 1
cmp dword [esp + 0x1c], ebp
je 0x46c6b0
movzx eax, byte [ebx]
mov edi, dword [esp + 0x70]
mov ecx, esi
mov edx, eax
sar edx, cl
movzx ecx, word [edi + 0x1bc]
and edx, 0xf
cmp edx, ecx
mov ecx, 4
je 0x46cb90
sub ecx, esi
mov edi, 0xf0f
sar edi, cl
mov ecx, edx
and eax, edi
mov edi, dword [esp + 0x30]
shl ecx, 4
or edx, ecx
mov ecx, esi
movzx edx, byte [edi + edx]
shr dl, 4
movzx edx, dl
shl edx, cl
or eax, edx
mov byte [ebx], al
test esi, esi
je 0x46c4f0
sub esi, 4
jmp 0x46c4f8
mov eax, dword [esp + 0x30]
test eax, eax
je 0x46db37
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x46ce30
xor eax, eax
mov dword [esp + 0x70], edi
mov esi, 6
mov edi, eax
mov dword [esp + 0x74], ebp
jmp 0x46c59a
add ebx, 1
mov esi, 6
add edi, 1
cmp dword [esp + 0x1c], edi
je 0x46c6b0
movzx ebp, byte [ebx]
mov ecx, esi
mov eax, ebp
sar eax, cl
mov ecx, dword [esp + 0x70]
and eax, 3
movzx edx, word [ecx + 0x1bc]
mov ecx, 6
sub ecx, esi
cmp eax, edx
mov edx, 0x3f3f
je 0x46cbb0
sar edx, cl
mov ecx, eax
and edx, ebp
lea ebp, [eax*4]
shl ecx, 4
or ecx, ebp
or ecx, eax
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x30]
movzx eax, byte [ecx + eax]
mov ecx, esi
shr al, 6
movzx eax, al
shl eax, cl
or edx, eax
mov byte [ebx], dl
test esi, esi
je 0x46c585
sub esi, 2
jmp 0x46c58d
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x46ce30
xor esi, esi
mov edx, 7
mov dword [esp + 0x74], ebp
jmp 0x46c635
add ebx, 1
mov edx, 7
add esi, 1
cmp dword [esp + 0x1c], esi
je 0x46b9d0
movzx ebp, byte [ebx]
mov ecx, edx
mov eax, ebp
sar eax, cl
movzx ecx, word [edi + 0x1bc]
and eax, 1
cmp eax, ecx
je 0x46caf5
test edx, edx
je 0x46c620
sub edx, 1
jmp 0x46c628
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
test edx, edx
je 0x46db08
test eax, eax
je 0x46ce30
lea edx, [esi + eax + 1]
mov ecx, dword [esp + 0x30]
jmp 0x46c691
movzx eax, byte [ecx + esi]
mov byte [ebx], al
add ebx, 1
cmp ebx, edx
je case.0x46b877.0
movzx esi, byte [ebx]
cmp si, word [edi + 0x1bc]
jne 0x46c680
movzx eax, word [edi + 0x16c]
mov byte [ebx], al
jmp 0x46c686
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
jmp case.0x46b877.0
movzx eax, byte [esi + edx*4 + 2]
movzx ecx, byte [esp + 0x20]
mov ebx, dword [esp + 0x2c]
sar eax, cl
movzx ecx, byte [esi + edx*4 + 1]
mov eax, dword [ebx + eax*4]
movzx eax, word [eax + ecx*2]
mov ecx, eax
mov byte [esi + edx*4 + 2], al
shr cx, 8
mov byte [esi + edx*4 + 1], cl
jmp 0x46beea
mov esi, dword [esp + 0x20]
movzx eax, byte [ebx + 1]
mov ebp, dword [esp + 0x2c]
movzx edx, byte [ebx]
mov ecx, esi
sar eax, cl
mov ecx, esi
mov eax, dword [ebp + eax*4]
movzx eax, word [eax + edx*2]
mov byte [ebx + 1], al
mov edx, eax
movzx eax, byte [ebx + 3]
shr dx, 8
mov byte [ebx], dl
movzx edx, byte [ebx + 2]
sar eax, cl
mov ecx, esi
mov eax, dword [ebp + eax*4]
movzx eax, word [eax + edx*2]
mov byte [ebx + 3], al
mov edx, eax
movzx eax, byte [ebx + 5]
shr dx, 8
mov byte [ebx + 2], dl
movzx edx, byte [ebx + 4]
sar eax, cl
mov eax, dword [ebp + eax*4]
movzx eax, word [eax + edx*2]
mov edx, eax
mov byte [ebx + 5], al
shr dx, 8
mov byte [ebx + 4], dl
jmp 0x46b1cc
lea edx, [ebx - 1]
lea ecx, [ebx + 7]
mov esi, edx
not ecx
shr esi, 3
and ecx, 7
add esi, eax
add eax, edx
mov edx, eax
sub edx, ebx
test ebx, ebx
je 0x46af25
mov dword [esp + 0x1c], ebx
mov ebx, edx
jmp 0x46c79a
add ecx, 1
sub eax, 1
cmp eax, ebx
je 0x46c7b0
movzx edx, byte [esi]
sar edx, cl
and edx, 1
cmp ecx, 7
mov byte [eax], dl
jne 0x46c790
sub esi, 1
xor ecx, ecx
jmp 0x46c793
mov ebx, dword [esp + 0x1c]
jmp 0x46af25
lea edx, [ebx - 1]
mov esi, edx
shr esi, 1
add esi, eax
add eax, edx
lea edx, [ebx + 1]
and edx, 1
cmp edx, 1
sbb ecx, ecx
and ecx, 4
test ebx, ebx
je 0x46af25
mov edx, eax
mov dword [esp + 0x1c], ebx
sub edx, ebx
mov ebx, edx
jmp 0x46c7fc
mov ecx, 4
sub eax, 1
cmp ebx, eax
je 0x46c7b0
movzx edx, byte [esi]
sar edx, cl
and edx, 0xf
cmp ecx, 4
mov byte [eax], dl
jne 0x46c7f0
sub esi, 1
xor ecx, ecx
jmp 0x46c7f5
lea edx, [ebx - 1]
lea ecx, [ebx + 3]
mov esi, edx
not ecx
shr esi, 2
and ecx, 3
add esi, eax
add ecx, ecx
add eax, edx
test ebx, ebx
je 0x46af25
mov edx, eax
mov dword [esp + 0x1c], ebx
sub edx, ebx
mov ebx, edx
jmp 0x46c84e
add ecx, 2
sub eax, 1
cmp ebx, eax
je 0x46c7b0
movzx edx, byte [esi]
sar edx, cl
and edx, 3
cmp ecx, 6
mov byte [eax], dl
jne 0x46c840
sub esi, 1
xor ecx, ecx
jmp 0x46c843
mov eax, dword [edi + 0x204]
mov ecx, dword [edi + 0x208]
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x124]
add eax, 1
jmp 0x46b975
add edx, esi
test byte [esp + 0x20], 0x80
lea eax, [edx + esi]
je 0x46ce50
cmp esi, 1
mov dword [esp + 0x20], eax
jbe 0x46c8d7
mov ebx, edx
lea eax, [edx + esi]
mov byte [esp + 0x1c], cl
sub ebx, esi
lea ebx, [ebx + 1]
lea esi, [esi]
movzx ecx, byte [esp + 0x1c]
sub edx, 1
sub eax, 2
mov byte [eax + 1], cl
movzx ecx, byte [edx]
cmp edx, ebx
mov byte [eax], cl
jne 0x46c8b0
mov ebx, dword [esp + 0x20]
mov eax, esi
neg eax
lea eax, [ebx + eax*2 + 2]
mov dword [esp + 0x20], eax
movzx eax, byte [esp + 0x24]
mov ebx, dword [esp + 0x20]
mov byte [ebx - 1], al
lea eax, [esi + esi]
mov byte [ebp + 0xa], 2
mov byte [ebp + 0xb], 0x10
mov dword [ebp + 4], eax
mov eax, dword [edi + 0x7c]
jmp 0x46ac92
cmp byte [esp + 0x24], 2
jne 0x46aee5
mov ecx, dword [ebp + 4]
add ecx, eax
cmp ecx, eax
jbe 0x46aee5
nop
lea esi, [esi]
movzx edx, byte [eax]
add eax, 1
shr dl, 1
and edx, 0x55
cmp ecx, eax
mov byte [eax - 1], dl
jne 0x46c920
jmp 0x46aee5
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x46b41a
mov esi, dword [esp + 0x1c]
lea ebx, [eax + esi]
test esi, esi
mov ecx, ebx
mov ebx, eax
je 0x46c998
mov esi, dword [esp + 0x20]
mov dword [esp + 0x70], edi
mov edi, ecx
movzx ecx, byte [ebx]
movzx edx, byte [ebx + 1]
add ebx, 3
add eax, 1
sar ecx, 3
sar edx, 3
shl ecx, 0xa
shl edx, 5
or edx, ecx
movzx ecx, byte [ebx - 1]
sar ecx, 3
or edx, ecx
cmp eax, edi
movzx edx, byte [esi + edx]
mov byte [eax - 1], dl
jne 0x46c965
mov edi, dword [esp + 0x70]
movzx eax, byte [ebp + 9]
mov byte [ebp + 8], 3
mov byte [ebp + 0xa], 1
cmp al, 7
mov byte [ebp + 0xb], al
jbe 0x46cc10
shr al, 3
movzx eax, al
imul eax, dword [esp + 0x1c]
mov dword [ebp + 4], eax
jmp 0x46b41d
mov eax, dword [edi + 0x194]
test eax, eax
je 0x46d0c4
mov eax, dword [edi + 0x198]
test eax, eax
je 0x46d0c4
mov eax, dword [esp + 0x20]
test eax, eax
je 0x46d220
mov edx, dword [esp + 0x28]
xor esi, esi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x74], ebp
jmp 0x46ca1a
add edx, 3
mov dword [esp + 0x28], ecx
add dword [esp + 0x1c], 1
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x20], eax
je 0x46ce80
movzx eax, byte [edx]
movzx ecx, byte [edx + 1]
movzx ebx, byte [edx + 2]
cmp al, cl
jne 0x46ca60
cmp al, bl
jne 0x46ca60
mov ecx, dword [edi + 0x18c]
test ecx, ecx
je 0x46ca3b
movzx eax, byte [ecx + eax]
mov ebx, dword [esp + 0x28]
lea ecx, [ebx + 1]
mov byte [ebx], al
cmp byte [esp + 0x24], 0
je 0x46ca00
lea eax, [ecx + 1]
add edx, 4
mov dword [esp + 0x28], eax
movzx eax, byte [edx - 1]
mov byte [ecx], al
jmp 0x46ca07
mov esi, dword [edi + 0x198]
movzx ebp, cl
mov ecx, dword [esp + 0x28]
movzx eax, byte [esi + eax]
movzx ebp, byte [esi + ebp]
add ecx, 1
imul eax, dword [esp + 0x30]
imul ebp, dword [esp + 0x34]
movzx esi, byte [esi + ebx]
imul esi, dword [esp + 0x38]
lea eax, [eax + ebp + 0x4000]
add eax, esi
mov esi, dword [edi + 0x194]
shr eax, 0xf
movzx eax, byte [esi + eax]
mov esi, dword [esp + 0x28]
mov byte [esi], al
mov esi, 1
jmp 0x46ca44
mov esi, dword [edi + 0x194]
test esi, esi
je 0x46b376
and ecx, 2
cmp cl, 1
sbb eax, eax
and eax, 0xfffffffe
mov ecx, eax
lea ebx, [ebx + eax + 3]
mov eax, dword [esp + 0x1c]
add ecx, 4
test eax, eax
je 0x46da57
nop
movzx edx, byte [ebx]
movzx edx, byte [esi + edx]
mov byte [ebx], dl
add ebx, ecx
sub eax, 1
jne 0x46cae0
jmp 0x46b386
mov ecx, 7
mov eax, 0x7f7f
sub ecx, edx
sar eax, cl
mov ecx, edx
and ebp, eax
movzx eax, word [edi + 0x16c]
shl eax, cl
or eax, ebp
mov byte [ebx], al
jmp 0x46c650
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x46b41a
mov ebx, dword [esp + 0x1c]
mov esi, ebx
add esi, eax
test ebx, ebx
mov ecx, esi
mov esi, eax
je 0x46c998
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x74], ebp
mov ebp, ecx
nop
movzx ebx, byte [esi]
movzx edx, byte [esi + 1]
add eax, 1
movzx ecx, byte [esi + 2]
add esi, 4
sar ebx, 3
sar edx, 3
shl ebx, 0xa
shl edx, 5
sar ecx, 3
or edx, ebx
or edx, ecx
cmp eax, ebp
movzx edx, byte [edi + edx]
mov byte [eax - 1], dl
jne 0x46cb50
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
jmp 0x46c998
sub ecx, esi
mov edx, 0xf0f
sar edx, cl
mov ecx, esi
and eax, edx
movzx edx, word [edi + 0x16c]
shl edx, cl
or eax, edx
mov byte [ebx], al
jmp 0x46c551
mov eax, dword [esp + 0x70]
sar edx, cl
mov ecx, esi
and edx, ebp
movzx ebp, word [eax + 0x16c]
shl ebp, cl
or edx, ebp
mov byte [ebx], dl
jmp 0x46c5f4
mov ecx, dword [esp + 0x40]
mov esi, dword [ebp + 4]
mov ebx, 0xf
sar ebx, cl
add esi, eax
mov edx, ebx
shl ebx, 4
or ebx, edx
cmp esi, eax
jbe 0x46aee5
nop
movzx edx, byte [eax]
add eax, 1
sar edx, cl
and edx, ebx
cmp esi, eax
mov byte [eax - 1], dl
jne 0x46cbf0
jmp 0x46aee5
imul eax, dword [esp + 0x1c]
add eax, 7
shr eax, 3
jmp 0x46c9ba
add edx, dword [ebp + 4]
test ecx, ecx
je 0x46ac9d
xor ebx, ebx
mov esi, ecx
nop
movzx ecx, byte [edx - 2]
movzx eax, byte [edx - 1]
sub edx, 4
add ebx, 1
mov byte [edx + 3], cl
movzx ecx, byte [edx + 1]
mov byte [edx + 2], cl
movzx ecx, byte [edx]
cmp esi, ebx
mov byte [edx], al
mov byte [edx + 1], cl
jne 0x46cc30
jmp 0x46b75d
add ebx, dword [ebp + 4]
test esi, esi
je 0x46d200
xor eax, eax
lea esi, [esi]
add eax, 1
not byte [ebx - 1]
sub ebx, 4
cmp esi, eax
jne 0x46cc70
jmp 0x46adb0
add ebx, dword [ebp + 4]
test esi, esi
je 0x46b834
xor eax, eax
nop
add eax, 1
not byte [ebx - 1]
sub ebx, 2
cmp esi, eax
jne 0x46cc90
jmp 0x46adb0
add edx, dword [ebp + 4]
test ecx, ecx
je 0x46ac9d
xor ebx, ebx
mov esi, ecx
movzx eax, byte [edx - 1]
sub edx, 2
add ebx, 1
movzx ecx, byte [edx]
cmp esi, ebx
mov byte [edx], al
mov byte [edx + 1], cl
jne 0x46ccb1
jmp 0x46b75d
mov ebx, dword [esp + 0x20]
xor eax, eax
mov esi, dword [esp + 0x28]
mov dword [esp + 0x1c], 0
test ebx, ebx
je 0x46d7f2
mov dword [esp + 0x70], edi
mov ebx, dword [esp + 0x28]
mov edi, eax
mov dword [esp + 0x74], ebp
jmp 0x46cd13
add ebx, 6
add esi, 2
add edi, 1
cmp dword [esp + 0x20], edi
je 0x46bfa4
movzx edx, byte [ebx]
movzx eax, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
movzx ebp, byte [ebx + 5]
shl edx, 8
or edx, eax
movzx eax, byte [ebx + 3]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 4]
shl eax, 8
or eax, ebp
cmp dx, cx
jne 0x46cd92
cmp dx, ax
jne 0x46cd92
movzx edx, dx
movzx ecx, cx
movzx eax, ax
imul edx, dword [esp + 0x30]
imul ecx, dword [esp + 0x34]
imul eax, dword [esp + 0x38]
lea edx, [edx + ecx + 0x4000]
add eax, edx
shr eax, 0xf
mov edx, eax
mov byte [esi + 1], al
shr dx, 8
cmp byte [esp + 0x24], 0
mov byte [esi], dl
je 0x46cd00
movzx eax, byte [ebx + 6]
add esi, 4
add ebx, 8
mov byte [esi - 2], al
movzx eax, byte [ebx - 1]
mov byte [esi - 1], al
jmp 0x46cd06
mov dword [esp + 0x1c], 1
jmp 0x46cd43
mov eax, dword [edi + 0x19c]
test eax, eax
mov dword [esp + 0x20], eax
je 0x46b376
and ecx, 2
cmp cl, 1
sbb eax, eax
and eax, 0xfffffffc
mov ecx, eax
lea eax, [ebx + eax + 6]
add ecx, 8
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x46da7d
mov ecx, dword [edi + 0x184]
mov dword [esp + 0x70], edi
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x74], ebp
mov dword [esp + 0x1c], ecx
movzx edx, byte [eax + 1]
movzx ecx, byte [esp + 0x1c]
movzx ebp, byte [eax]
sar edx, cl
mov edx, dword [esi + edx*4]
movzx edx, word [edx + ebp*2]
mov ebp, edx
mov byte [eax + 1], dl
shr bp, 8
mov ecx, ebp
mov byte [eax], cl
add eax, edi
sub ebx, 1
jne 0x46cdf4
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
mov edx, dword [edi + 0x7c]
jmp 0x46ac12
mov eax, dword [edi + 0x7c]
mov ecx, eax
mov edx, eax
and ecx, 0x602000
cmp ecx, 0x2000
jne 0x46abf1
jmp 0x46b9f5
mov ebx, edx
sub ebx, esi
test esi, esi
je 0x46c8e3
mov byte [esp + 0x1c], cl
sub edx, 1
movzx ecx, byte [edx]
sub eax, 2
mov byte [eax + 1], cl
movzx ecx, byte [esp + 0x1c]
cmp ebx, edx
mov byte [eax], cl
jne 0x46ce60
jmp 0x46c8e3
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x1c], esi
movzx ecx, byte [ebp + 8]
movzx edx, byte [ebp + 9]
jmp 0x46bfb4
mov dword [esp + 4], str.png_do_rgb_to_gray_found_nongray_pixel
mov dword [esp], edi
call fcn.004609b0
mov eax, dword [edi + 0x7c]
jmp 0x46c006
xor edx, edx
test esi, esi
je 0x46b07e
mov dword [esp + 0x70], edi
mov edi, ecx
movzx ecx, byte [ebx - 1]
sub ebx, 2
add edx, 1
sub eax, 4
mov byte [eax + 3], cl
movzx ecx, byte [ebx]
mov byte [eax + 2], cl
mov ecx, edi
mov byte [eax + 1], cl
movzx ecx, byte [esp + 0x1c]
cmp esi, edx
mov byte [eax], cl
jne 0x46cec0
mov edi, dword [esp + 0x70]
jmp 0x46b07e
movzx eax, byte [esi + ecx*4 + 1]
mov ebx, dword [esp + 0x30]
movzx eax, byte [ebx + eax]
mov byte [esi + ecx*4 + 1], al
movzx eax, byte [esi + ecx*4 + 2]
movzx eax, byte [ebx + eax]
mov byte [esi + ecx*4 + 2], al
movzx eax, byte [esi + ecx*4 + 3]
movzx eax, byte [ebx + eax]
mov byte [esi + ecx*4 + 3], al
jmp 0x46c291
movzx eax, byte [esi + ecx*2 + 1]
mov ebx, dword [esp + 0x30]
movzx eax, byte [ebx + eax]
mov byte [esi + ecx*2 + 1], al
jmp 0x46c1c4
test dl, dl
jne 0x46bb30
cmp byte [esp + 0x1c], 2
je 0x46d6a9
cmp byte [esp + 0x1c], 4
je 0x46da20
cmp byte [esp + 0x1c], 8
je 0x46da31
cmp byte [esp + 0x1c], 0x10
jne 0x46bb30
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x46bb30
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x70], edi
xor eax, eax
mov edi, ecx
mov dword [esp + 0x74], ebp
movzx edx, byte [esi + eax*2 + 2]
movzx ecx, byte [esp + 0x20]
movzx ebp, byte [esi + eax*2 + 1]
sar edx, cl
mov edx, dword [ebx + edx*4]
movzx edx, word [edx + ebp*2]
mov ebp, edx
mov byte [esi + eax*2 + 2], dl
shr bp, 8
mov ecx, ebp
mov byte [esi + eax*2 + 1], cl
add eax, 1
cmp edi, eax
jne 0x46cf90
jmp 0x46bb21
cmp byte [esp + 0x1c], 8
je 0x46d63f
mov esi, dword [esp + 0x24]
xor edx, edx
test esi, esi
je 0x46b386
mov dword [esp + 0x70], edi
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x74], ebp
movzx eax, byte [ebx + 1]
movzx ebp, byte [ebx]
add ebx, 6
add dword [esp + 0x1c], 1
sar eax, cl
mov eax, dword [esi + eax*4]
movzx eax, word [eax + ebp*2]
mov byte [ebx - 5], al
mov ebp, eax
movzx eax, byte [ebx - 3]
shr bp, 8
mov edx, ebp
movzx ebp, byte [ebx - 4]
mov byte [ebx - 6], dl
sar eax, cl
mov eax, dword [esi + eax*4]
movzx eax, word [eax + ebp*2]
mov byte [ebx - 3], al
mov ebp, eax
movzx eax, byte [ebx - 1]
shr bp, 8
mov edx, ebp
movzx ebp, byte [ebx - 2]
mov byte [ebx - 4], dl
sar eax, cl
mov eax, dword [esi + eax*4]
movzx eax, word [eax + ebp*2]
mov byte [ebx - 1], al
mov ebp, eax
mov eax, dword [esp + 0x1c]
shr bp, 8
mov edx, ebp
mov byte [ebx - 2], dl
cmp edi, eax
jne 0x46cff5
jmp 0x46bb21
cmp byte [esp + 0x1c], 8
je 0x46d67d
mov ecx, dword [esp + 0x24]
xor edx, edx
test ecx, ecx
je 0x46da68
mov dword [esp + 0x70], edi
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x74], ebp
nop
movzx eax, byte [esi + edx*4 + 2]
movzx ecx, byte [esp + 0x20]
movzx ebp, byte [esi + edx*4 + 1]
sar eax, cl
mov eax, dword [ebx + eax*4]
movzx eax, word [eax + ebp*2]
mov ebp, eax
mov byte [esi + edx*4 + 2], al
shr bp, 8
mov ecx, ebp
mov byte [esi + edx*4 + 1], cl
add edx, 1
cmp edi, edx
jne 0x46d090
jmp 0x46bb21
mov eax, dword [esp + 0x20]
xor ebx, ebx
mov esi, dword [esp + 0x28]
mov dword [esp + 0x1c], 0
test eax, eax
je 0x46d7f2
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], ebp
mov edi, dword [esp + 0x28]
jmp 0x46d102
add esi, 3
mov edi, ebp
add ebx, 1
cmp dword [esp + 0x20], ebx
je 0x46bfa4
movzx edx, byte [esi]
movzx ecx, byte [esi + 1]
lea ebp, [edi + 1]
movzx eax, byte [esi + 2]
cmp dl, cl
jne 0x46d130
cmp dl, al
jne 0x46d130
mov byte [edi], dl
cmp byte [esp + 0x24], 0
je 0x46d0f0
movzx eax, byte [esi + 3]
lea edi, [ebp + 1]
add esi, 4
mov byte [ebp], al
jmp 0x46d0f5
imul edx, dword [esp + 0x30]
imul ecx, dword [esp + 0x34]
imul eax, dword [esp + 0x38]
mov dword [esp + 0x1c], 1
add edx, ecx
add edx, eax
shr edx, 0xf
mov byte [edi], dl
jmp 0x46d11a
lea eax, [edx + esi]
mov ebx, esi
neg ebx
test esi, esi
lea ebx, [eax + ebx*4]
je 0x46c421
mov byte [esp + 0x1c], cl
nop
lea esi, [esi]
movzx ecx, byte [edx - 1]
sub edx, 3
sub eax, 4
mov byte [eax + 3], cl
movzx ecx, byte [edx + 1]
mov byte [eax + 2], cl
movzx ecx, byte [edx]
mov byte [eax + 1], cl
movzx ecx, byte [esp + 0x1c]
cmp ebx, edx
mov byte [eax], cl
jne 0x46d170
jmp 0x46c421
lea eax, [esi + esi]
lea ebx, [eax + esi]
lea edx, [edx + ebx*2]
xor ebx, ebx
add eax, edx
test esi, esi
je 0x46b81a
mov dword [esp + 0x70], edi
mov edi, ecx
movzx ecx, byte [edx - 1]
sub edx, 6
add ebx, 1
sub eax, 8
mov byte [eax + 7], cl
movzx ecx, byte [edx + 4]
mov byte [eax + 6], cl
movzx ecx, byte [edx + 3]
mov byte [eax + 5], cl
movzx ecx, byte [edx + 2]
mov byte [eax + 4], cl
movzx ecx, byte [edx + 1]
mov byte [eax + 3], cl
movzx ecx, byte [edx]
mov byte [eax + 2], cl
mov ecx, edi
mov byte [eax + 1], cl
movzx ecx, byte [esp + 0x1c]
cmp esi, ebx
mov byte [eax], cl
jne 0x46d1b5
mov edi, dword [esp + 0x70]
jmp 0x46b81a
test dl, 8
je 0x46ac60
movzx ebx, byte [ebp + 9]
mov byte [esp + 0x24], bl
jmp 0x46ade7
mov dword [esp + 0x1c], 0
jmp 0x46bfb4
mov eax, dword [esp + 0x1c]
xor esi, esi
test eax, eax
je 0x46ce30
mov dword [esp + 0x74], ebp
jmp 0x46d28c
movzx eax, byte [edi + 0x167]
mov byte [ebx], al
movzx eax, word [edi + 0x166]
mov byte [ebx + 1], al
movzx eax, byte [edi + 0x169]
mov byte [ebx + 2], al
movzx eax, word [edi + 0x168]
mov byte [ebx + 3], al
movzx eax, byte [edi + 0x16b]
mov byte [ebx + 4], al
movzx eax, word [edi + 0x16a]
mov byte [ebx + 5], al
add esi, 1
add ebx, 8
cmp dword [esp + 0x1c], esi
je 0x46b9d0
movzx eax, byte [ebx + 6]
movzx edx, byte [ebx + 7]
shl eax, 8
add ax, dx
je 0x46d241
cmp ax, 0xffff
je 0x46d27c
movzx edx, byte [ebx + 2]
movzx ecx, byte [ebx + 3]
movzx eax, ax
movzx ebp, byte [ebx]
shl edx, 8
add ecx, edx
movzx edx, byte [ebx + 4]
shl ebp, 8
mov word [esp + 0x24], cx
movzx ecx, byte [ebx + 5]
shl edx, 8
add edx, ecx
mov ecx, 0xffff
mov word [esp + 0x28], dx
movzx edx, byte [ebx + 1]
sub ecx, eax
mov dword [esp + 0x20], ecx
add edx, ebp
movzx ebp, word [edi + 0x166]
movzx edx, dx
imul edx, eax
imul ebp, ecx
lea edx, [edx + ebp + 0x8000]
mov ebp, edx
shr ebp, 0x10
add edx, ebp
shr edx, 0x10
mov ebp, edx
mov byte [ebx + 1], dl
shr bp, 8
mov ecx, ebp
movzx ebp, word [esp + 0x24]
mov byte [ebx], cl
movzx edx, word [edi + 0x168]
imul edx, dword [esp + 0x20]
imul ebp, eax
lea edx, [edx + ebp + 0x8000]
mov ebp, edx
shr ebp, 0x10
add edx, ebp
shr edx, 0x10
mov ebp, edx
mov byte [ebx + 3], dl
shr bp, 8
mov ecx, ebp
mov byte [ebx + 2], cl
movzx ecx, word [esp + 0x28]
movzx edx, word [edi + 0x16a]
imul edx, dword [esp + 0x20]
imul ecx, eax
lea eax, [edx + ecx + 0x8000]
mov edx, eax
shr edx, 0x10
add eax, edx
shr eax, 0x10
mov edx, eax
mov byte [ebx + 5], al
shr dx, 8
mov byte [ebx + 4], dl
jmp 0x46d27c
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov edx, dword [esp + 0x1c]
test eax, eax
jne 0x46d39e
jmp 0x46ce30
add ecx, 1
add ebx, 6
cmp edx, ecx
je case.0x46b877.0
movzx eax, byte [ebx]
movzx esi, byte [ebx + 1]
shl eax, 8
add eax, esi
cmp ax, word [edi + 0x1b6]
jne 0x46d390
movzx eax, byte [ebx + 2]
shl eax, 8
mov esi, eax
movzx eax, byte [ebx + 3]
add eax, esi
cmp ax, word [edi + 0x1b8]
jne 0x46d390
movzx eax, byte [ebx + 4]
shl eax, 8
mov esi, eax
movzx eax, byte [ebx + 5]
add eax, esi
cmp ax, word [edi + 0x1ba]
jne 0x46d390
movzx eax, byte [edi + 0x167]
mov byte [ebx], al
movzx eax, word [edi + 0x166]
mov byte [ebx + 1], al
movzx eax, byte [edi + 0x169]
mov byte [ebx + 2], al
movzx eax, word [edi + 0x168]
mov byte [ebx + 3], al
movzx eax, byte [edi + 0x16b]
mov byte [ebx + 4], al
movzx eax, word [edi + 0x16a]
mov byte [ebx + 5], al
jmp 0x46d390
mov esi, dword [esp + 0x1c]
xor ecx, ecx
test esi, esi
je 0x46ce30
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x74], ebp
jmp 0x46d461
movzx eax, byte [edi + 0x16d]
mov byte [ebx], al
movzx eax, word [edi + 0x16c]
mov byte [ebx + 1], al
add ecx, 1
add ebx, 4
cmp esi, ecx
je 0x46b9d0
movzx eax, byte [ebx + 2]
movzx edx, byte [ebx + 3]
shl eax, 8
add ax, dx
je 0x46d440
cmp ax, 0xffff
je 0x46d453
movzx ebp, byte [ebx]
movzx edx, byte [ebx + 1]
movzx eax, ax
shl ebp, 8
add edx, ebp
movzx ebp, word [edi + 0x16c]
movzx edx, dx
imul edx, eax
mov dword [esp + 0x1c], edx
mov edx, 0xffff
sub edx, eax
mov eax, dword [esp + 0x1c]
imul ebp, edx
lea eax, [eax + ebp + 0x8000]
mov edx, eax
shr edx, 0x10
add eax, edx
shr eax, 0x10
mov edx, eax
mov byte [ebx + 1], al
shr dx, 8
mov byte [ebx], dl
jmp 0x46d453
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov eax, ecx
sub eax, 1
mov esi, eax
add eax, edx
shr esi, 3
mov dword [esp + 0x2c], eax
add esi, edx
mov edx, eax
mov eax, ecx
lea ecx, [ecx + 7]
not ecx
and ecx, 7
test eax, eax
je 0x46dbfd
sub edx, eax
mov dword [esp + 0x30], ebx
mov eax, edx
mov edx, dword [esp + 0x2c]
mov ebx, eax
jmp 0x46d50b
add ecx, 1
sub edx, 1
cmp edx, ebx
je 0x46d521
movzx eax, byte [esi]
sar eax, cl
and eax, 1
cmp ecx, 7
mov byte [edx], al
jne 0x46d501
sub esi, 1
xor ecx, ecx
jmp 0x46d504
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
jmp 0x46c07f
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov eax, ecx
sub eax, 1
mov esi, eax
add eax, edx
shr esi, 1
mov dword [esp + 0x2c], eax
add esi, edx
mov edx, eax
mov eax, ecx
and ecx, 1
shl ecx, 2
test eax, eax
je 0x46dbfd
sub edx, eax
mov dword [esp + 0x30], ebx
mov eax, edx
mov edx, dword [esp + 0x2c]
mov ebx, eax
jmp 0x46d57a
add ecx, 4
sub edx, 1
cmp ebx, edx
je 0x46d521
movzx eax, byte [esi]
sar eax, cl
and eax, 0xf
cmp ecx, 4
mov byte [edx], al
jne 0x46d570
sub esi, 1
xor ecx, ecx
jmp 0x46d573
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov eax, ecx
sub eax, 1
mov esi, eax
add eax, edx
shr esi, 2
mov dword [esp + 0x2c], eax
add esi, edx
mov edx, eax
mov eax, ecx
lea ecx, [ecx + 3]
not ecx
and ecx, 3
add ecx, ecx
test eax, eax
je 0x46dbfd
sub edx, eax
mov dword [esp + 0x30], ebx
mov eax, edx
mov edx, dword [esp + 0x2c]
mov ebx, eax
jmp 0x46d5de
add ecx, 2
sub edx, 1
cmp ebx, edx
je 0x46d521
movzx eax, byte [esi]
sar eax, cl
and eax, 3
cmp ecx, 6
mov byte [edx], al
jne 0x46d5d0
sub esi, 1
xor ecx, ecx
jmp 0x46d5d3
mov edx, dword [esp + 0x24]
test edx, edx
je 0x46da68
mov esi, dword [esp + 0x24]
xor edx, edx
lea esi, [esi]
lea edi, [edi]
movzx eax, byte [ebx]
add edx, 1
add ebx, 4
movzx eax, byte [ecx + eax]
mov byte [ebx - 4], al
movzx eax, byte [ebx - 3]
movzx eax, byte [ecx + eax]
mov byte [ebx - 3], al
movzx eax, byte [ebx - 2]
movzx eax, byte [ecx + eax]
mov byte [ebx - 2], al
cmp esi, edx
jne 0x46d610
jmp 0x46bb30
mov eax, dword [esp + 0x24]
test eax, eax
je 0x46b386
lea edx, [eax + eax*2 + 1]
add edx, esi
movzx eax, byte [ebx]
add ebx, 3
movzx eax, byte [ecx + eax]
mov byte [ebx - 3], al
movzx eax, byte [ebx - 2]
movzx eax, byte [ecx + eax]
mov byte [ebx - 2], al
movzx eax, byte [ebx - 1]
movzx eax, byte [ecx + eax]
mov byte [ebx - 1], al
cmp ebx, edx
jne 0x46d651
jmp 0x46bb30
mov ebx, dword [esp + 0x24]
test ebx, ebx
je 0x46da68
xor edx, edx
nop
lea esi, [esi]
movzx eax, byte [esi + edx*2 + 1]
movzx eax, byte [ecx + eax]
mov byte [esi + edx*2 + 1], al
add edx, 1
cmp ebx, edx
jne 0x46d690
jmp 0x46bb30
mov eax, dword [esp + 0x24]
test eax, eax
je 0x46bb30
mov dword [esp + 0x74], ebp
mov dword [esp + 0x1c], 0
mov ebp, ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x70], edi
mov dword [esp + 0x34], esi
nop
movzx eax, byte [ebp]
mov esi, eax
mov ebx, eax
mov edx, eax
and esi, 0xc0
and eax, 3
and ebx, 0x30
mov edi, esi
and edx, 0xc
sar edi, 2
mov dword [esp + 0x2c], edi
mov edi, esi
sar edi, 4
or edi, dword [esp + 0x2c]
or edi, esi
sar esi, 6
or esi, edi
movzx edi, byte [ecx + esi]
mov esi, eax
shl esi, 6
mov dword [esp + 0x2c], esi
mov esi, eax
shl esi, 4
or esi, dword [esp + 0x2c]
and edi, 0xffffffc0
or esi, eax
shl eax, 2
or eax, esi
lea esi, [ebx*4]
movzx eax, byte [ecx + eax]
shr al, 6
or edi, eax
mov eax, ebx
sar eax, 2
or eax, esi
or eax, ebx
sar ebx, 4
or ebx, eax
movzx eax, byte [ecx + ebx]
mov ebx, edx
shl ebx, 4
shr al, 2
and eax, 0x30
or edi, eax
lea eax, [edx*4]
or eax, ebx
or eax, edx
sar edx, 2
or edx, eax
movzx eax, byte [ecx + edx]
shr al, 4
add dword [esp + 0x1c], 4
add ebp, 1
and eax, 0xc
or eax, edi
mov byte [ebp - 1], al
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x24], eax
ja 0x46d6d0
mov ebp, dword [esp + 0x74]
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x34]
movzx eax, byte [ebp + 9]
cmp al, 4
mov byte [esp + 0x1c], al
jne 0x46cf5e
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x24]
xor esi, esi
mov dword [esp + 0x74], ebp
movzx eax, byte [ebx]
add esi, 2
add ebx, 1
mov edx, eax
and eax, 0xf
and edx, 0xf0
mov ebp, edx
sar ebp, 4
or edx, ebp
mov ebp, eax
shl ebp, 4
movzx edx, byte [ecx + edx]
or eax, ebp
movzx eax, byte [ecx + eax]
and edx, 0xfffffff0
shr al, 4
or edx, eax
mov byte [ebx - 1], dl
cmp edi, esi
ja 0x46d7b4
jmp 0x46bb21
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
jmp 0x46bfb4
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
lea ecx, [esi + esi*2]
mov dword [esp + 0x24], ecx
lea edx, [edx + ecx - 1]
mov ecx, eax
sub ecx, esi
test esi, esi
je 0x46d857
mov dword [esp + 0x1c], ecx
nop
movzx esi, byte [eax]
sub edx, 3
sub eax, 1
lea esi, [esi + esi*2]
movzx ecx, byte [ebx + esi + 2]
mov byte [edx + 3], cl
movzx esi, byte [eax + 1]
lea esi, [esi + esi*2]
movzx ecx, byte [ebx + esi + 1]
mov byte [edx + 2], cl
movzx esi, byte [eax + 1]
cmp eax, dword [esp + 0x1c]
lea esi, [esi + esi*2]
movzx ecx, byte [ebx + esi]
mov byte [edx + 1], cl
jne 0x46d820
mov eax, dword [esp + 0x24]
mov byte [ebp + 9], 8
mov byte [ebp + 0xb], 0x18
mov byte [ebp + 8], 2
mov byte [ebp + 0xa], 3
mov dword [ebp + 4], eax
mov eax, dword [edi + 0x7c]
test eax, 0x600000
je 0x46abc7
mov ecx, 2
jmp 0x46b562
mov eax, dword [esp + 0x1c]
xor ebx, ebx
test eax, eax
je 0x46ce30
mov dword [esp + 0x74], ebp
mov ebp, dword [esp + 0x1c]
jmp 0x46d8b6
movzx eax, word [edi + 0x16c]
mov byte [esi + ebx*2 + 1], al
add ebx, 1
cmp ebp, ebx
je 0x46b9d0
movzx ecx, byte [esi + ebx*2 + 2]
test cl, cl
je 0x46d8a0
cmp cl, 0xff
je 0x46d8ab
movzx eax, cl
mov edx, 0xff
sub edx, eax
mov eax, ecx
imul dx, word [edi + 0x16c]
mul byte [esi + ebx*2 + 1]
lea eax, [edx + eax + 0x80]
movzx ecx, ah
movzx eax, ax
add eax, ecx
sar eax, 8
mov byte [esi + ebx*2 + 1], al
jmp 0x46d8ab
mov eax, dword [esp + 0x1c]
xor esi, esi
test eax, eax
je 0x46ce30
mov dword [esp + 0x74], ebp
jmp 0x46d93d
movzx eax, word [edi + 0x166]
mov byte [ebx], al
movzx eax, word [edi + 0x168]
mov byte [ebx + 1], al
movzx eax, word [edi + 0x16a]
mov byte [ebx + 2], al
add esi, 1
add ebx, 4
cmp dword [esp + 0x1c], esi
je 0x46b9d0
movzx ecx, byte [ebx + 3]
test cl, cl
je 0x46d910
cmp cl, 0xff
je 0x46d92d
movzx eax, cl
mov edx, 0xff
sub edx, eax
mov eax, ecx
mov ebp, edx
mul byte [ebx]
imul bp, word [edi + 0x166]
lea eax, [ebp + eax + 0x80]
movzx ebp, ah
movzx eax, ax
add eax, ebp
mov ebp, edx
sar eax, 8
mov byte [ebx], al
mov eax, ecx
imul bp, word [edi + 0x168]
mul byte [ebx + 1]
lea eax, [ebp + eax + 0x80]
movzx ebp, ah
movzx eax, ax
add eax, ebp
sar eax, 8
mov byte [ebx + 1], al
mov eax, ecx
imul dx, word [edi + 0x16a]
mul byte [ebx + 2]
lea edx, [edx + eax + 0x80]
movzx ebp, dh
movzx eax, dx
add eax, ebp
sar eax, 8
mov byte [ebx + 2], al
jmp 0x46d92d
lea edx, [eax + eax*2 + 1]
add edx, esi
test eax, eax
jne 0x46d9db
jmp 0x46ce30
add ebx, 3
cmp edx, ebx
je case.0x46b877.0
movzx eax, byte [ebx]
cmp ax, word [edi + 0x1b6]
jne 0x46d9d0
movzx eax, byte [ebx + 1]
cmp ax, word [edi + 0x1b8]
jne 0x46d9d0
movzx eax, byte [ebx + 2]
cmp ax, word [edi + 0x1ba]
jne 0x46d9d0
movzx eax, word [edi + 0x166]
mov byte [ebx], al
movzx eax, word [edi + 0x168]
mov byte [ebx + 1], al
movzx eax, word [edi + 0x16a]
mov byte [ebx + 2], al
jmp 0x46d9d0
mov esi, dword [esp + 0x24]
test esi, esi
jne 0x46d7a6
jmp 0x46bb30
mov eax, dword [esp + 0x24]
test eax, eax
je 0x46bb30
lea edx, [esi + eax + 1]
movzx eax, byte [ebx]
add ebx, 1
movzx eax, byte [ecx + eax]
mov byte [ebx - 1], al
cmp edx, ebx
jne 0x46da41
jmp 0x46bb30
test edx, 0x4000000
je 0x46ac1e
jmp 0x46ac27
and eax, 0x40080
cmp eax, 0x40080
jne 0x46ac03
jmp 0x46b6b5
test edx, 0x4000000
jne 0x46b3a8
test dh, 4
je 0x46ac27
jmp 0x46b4a0
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov esi, 4
test eax, eax
je 0x46ce30
mov edx, ecx
mov dword [esp + 0x74], ebp
jmp 0x46dac7
add ebx, 1
mov esi, 4
add edx, 1
cmp dword [esp + 0x1c], edx
je 0x46b9d0
movzx ebp, byte [ebx]
mov ecx, esi
mov eax, ebp
sar eax, cl
movzx ecx, word [edi + 0x1bc]
and eax, 0xf
cmp eax, ecx
je 0x46dae7
test esi, esi
je 0x46dab2
sub esi, 4
jmp 0x46daba
mov ecx, 4
mov eax, 0xf0f
sub ecx, esi
sar eax, cl
mov ecx, esi
and ebp, eax
movzx eax, word [edi + 0x16c]
shl eax, cl
or eax, ebp
mov byte [ebx], al
jmp 0x46dade
test eax, eax
lea edx, [esi + eax + 1]
jne 0x46db20
jmp 0x46ce30
add ebx, 1
cmp edx, ebx
je case.0x46b877.0
movzx eax, byte [ebx]
cmp ax, word [edi + 0x1bc]
jne 0x46db15
movzx eax, word [edi + 0x16c]
mov byte [ebx], al
jmp 0x46db15
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov esi, 6
test eax, eax
je 0x46ce30
mov edx, ecx
mov dword [esp + 0x74], ebp
jmp 0x46db67
add ebx, 1
mov esi, 6
add edx, 1
cmp dword [esp + 0x1c], edx
je 0x46b9d0
movzx ebp, byte [ebx]
mov ecx, esi
mov eax, ebp
sar eax, cl
movzx ecx, word [edi + 0x1bc]
and eax, 3
cmp eax, ecx
je 0x46db87
test esi, esi
je 0x46db52
sub esi, 2
jmp 0x46db5a
mov ecx, 6
mov eax, 0x3f3f
sub ecx, esi
sar eax, cl
mov ecx, esi
and ebp, eax
movzx eax, word [edi + 0x16c]
shl eax, cl
or eax, ebp
mov byte [ebx], al
jmp 0x46db7e
mov ebx, dword [esp + 0x1c]
xor edx, edx
mov ecx, dword [esp + 0x1c]
test ebx, ebx
jne 0x46dbcb
jmp 0x46ce30
add edx, 1
cmp ecx, edx
je case.0x46b877.0
movzx eax, byte [esi + edx*2 + 1]
shl eax, 8
mov ebx, eax
movzx eax, byte [esi + edx*2 + 2]
add eax, ebx
cmp ax, word [edi + 0x1bc]
jne 0x46dbc0
movzx eax, byte [edi + 0x16d]
mov byte [esi + edx*2 + 1], al
movzx eax, word [edi + 0x16c]
mov byte [esi + edx*2 + 2], al
jmp 0x46dbc0
mov eax, dword [esp + 0x2c]
jmp 0x46c07f
mov dword [esp + 4], str.NULL_row_buffer
mov dword [esp], edi
call fcn.00460d80
mov dword [esp + 4], str.Uninitialized_row
mov dword [esp], edi
call fcn.00460d80
mov dword [esp + 4], str.png_do_quantize_returned_rowbytes0
mov dword [esp], edi
call fcn.00460d80
mov eax, dword [edi + 0x7c]
jmp 0x46abc7